【问题标题】:Function / algorithm to return fixed value for input range返回输入范围的固定值的函数/算法
【发布时间】:2013-07-24 23:05:01
【问题描述】:

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

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

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

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

  • 有什么想法吗?
  • 我应该从哪里开始阅读?有关键字吗?

【问题讨论】:

  • 似乎您想创建一个存储起始地址掩码并可能对其进行加密的字符串。还是不是这样?
  • 也许吧。我想一个解决方案是形成一串开始和结束地址并加密它。另一方面,可以解密并检查自己的BT地址是否在范围内。
  • 在这种情况下,我猜传统的哈希函数,SHA-1、2等都可以使用,对吧?

标签: algorithm bluetooth


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多