1

我想实现一个算法/函数(一种许可算法),我们称它为 F1,它为所有输入值返回一个固定键,比如 mac 地址。然后实现反函数(例如 F2),如果 2 个输入是: - 先前从 F1 生成的密钥 - 属于先前提供给 F1 的地址范围的有效输入 mac 地址,则该函数应返回 true

更具体地说明我为什么要这样做:我正在为 BT(蓝牙)平台(芯片/模块)实现一个 SW 代码,该代码只能在特定范围的 BT mac 地址上工作。用户应该向我们提供一系列 BT 地址(即起始地址 - 结束地址),然后使用 F1 我们应该为他提供许可证密钥(他的所有 BT 地址具有固定值)。

然后在BT模块的MP(批量生产)过程中,模块制造商应将此密钥存储在模块的EEPROM中。

模块上电时,函数 F2 应读取 EEPROM 中 key 的值(作为输入 1),并读取模块的 BT mac 地址(作为输入 2),如果该地址属于 BT,则返回 true使用 F1 生成密钥的地址范围。

  • 有任何想法吗?
  • 我应该从哪里开始阅读?有关键字吗?
4

1 回答 1

0

嗯,假设你有两个不同的重叠范围,R1 和 R2,你的 F1 函数提供了两个不同的键,K1 和 K2。然后,如果 F2 读取 K1 或 K2 以获取重叠中的 MAC 地址,F2 应该返回 true,对吗?在这种情况下,您需要 F1 作为反向加密算法,该算法采用 start&end 或 start&mask(如果合适)并通过某个密钥将其转换为“密码短语”,然后 F2 将使用相同的密钥或私钥来解密存储的值,解析输出与 MAC 并返回是否在范围内。因此,我认为其中一种解决方案是通过非对称密钥进行加密/解密,一个您用作私有密钥并用于加密范围,另一个您作为公共提供(因为它将明确存储在某个地方以在 F2 中使用)给您的制造商解密您的加密范围。

于 2013-07-19T15:54:57.890 回答