我想实现一个算法/函数(一种许可算法),我们称之为F1,它返回一个固定的键,用于输出全范围的输入值,比如mac地址。 然后实现反函数(比如F2),如果2个输入是: - 来自F1的先前生成的密钥 - 有效的输入mac地址,属于先前提供给F1的地址范围
更具体地说明我想要做的事情: 我正在为BT(蓝牙)平台(芯片/模块)实现一个SW代码,该代码只适用于特定范围的BT mac地址。 用户应该向我们提供一系列BT地址(即起始地址 - 结束地址),然后使用F1我们应该向他提供许可证密钥(所有BT地址都有固定值)。
然后在BT模块的MP(批量生产)期间,模块制造商应将此密钥存储在模块的EEPROM中。
模块上电时,功能F2应读取EEPROM中的键值(作为输入1),&读取模块的BT mac地址(作为输入2),如果该地址属于用于生成F1键的BT地址范围,则应返回true。
答案 0 :(得分:0)
嗯,假设您有两个不同的重叠范围,R1和R2,由F1功能K1和K2提供两个不同的键。然后,如果在重叠中读取MAC地址的K1或K2,则F2应返回true,对吗?在这种情况下,你需要F1作为反向加密算法,它采用开始和结束或启动和掩码(如果适当)并通过某个键将其转换为“密码”,然后F2将使用相同的密钥或私钥解密存储的值,解析输出与MAC并返回它是否在范围内。因此,我认为其中一个解决方案是通过非对称密钥进行加密/解密,一个用作私有密钥和用于加密范围,另一个用于公开(因为它将明确存储在某个地方用于F2)给您的制造商解密你的加密范围。