示例种子和密钥算法

信息安全 访问控制 算法 编程 嵌入式系统
2021-09-07 21:15:20

我正在尝试为发动机控制单元设计种子和关键算法。这用于保护资源,例如重新编程 ECU 的能力。这个想法是我向 ECU 请求一个种子,它以字节串的形式给出。ECU 和我都执行了一些秘密计算,将种子值转换为键值。然后我将计算出的密钥提交给 ECU,如果它与 ECU 的计算匹配,则资源被解锁。

我一直在寻找一个示例计算来推导出我自己的计算,但到目前为止,我只是想出了仅描述上述概念的资源。有人有我可以使用的具体例子吗?

1个回答

这是通过多种不同的方式完成的,没有一种方法是完美的。通常它以一种或另一种方式涉及预共享密钥。

这是通用汽车公司的一个示例,它使用远程数据库(假定安全)将两个值(ECU ID 和质询)与相应的键值或算法(不可逆算法,如模运算符)进行匹配。

  1. 诊断 PC 发送 3 级安全访问请求
  2. ECU 以 ID 和伪随机质询响应
  3. 诊断 PC 将 ID 与 ECU 及其安全密钥的(远程?)数据库进行对比。
  4. 诊断 PC(或服务器,如 GM 实现)计算并发送响应(例如 key mod challenge)
  5. ECU 将此与自己的密钥模式挑战计算进行比较,如果匹配,则输入所需的运行级别。

这种方法将确保每次挑战都不同,从而使该过程不易被窃听。但是,更大的安全问题仍未解决(例如会话劫持)。