随机数的质量对密码算法和协议的安全性和强度起着非常重要的作用,因为它直接影响到绕过安全系统的安全机制的难度。
在一个安全系统中,随机数经常被用来产生:
•不可预测的加密密钥数据;
•密码算法中的初始化向量,Salt,填充值;
•安全协议中的Nonces 和 Challenges;
用于加密目的的随机数序列必须不允许对手学习或预测以前或以后的值,因为安全协议依赖于随机数的强熵来确保消息的新鲜度和灵活性, 在挑战-响应协议中,双方都使用随机数来展示对预共享密文的了解。 这提供了防止重放攻击的保护,在重放攻击中,对手保存旧消息并将它们重放回系统。 汽车电气应用中的密码应用示例如下:
安全访问
•用于确保“Send Key”命令的新鲜度和灵活性,解锁诊断服务。
TLS(传输层安全)
•设置安全通信到VCC云服务。 设置会话密钥,保证消息的新鲜度。
SecOC
•ecu之间的安全通信。 用于确保每条信息的新鲜和灵活。
关于随机数生成的建议可以在NIST SP 800-90A - C文件或BSI文件“Application Notes and Interpretation of the Scheme” AIS 20 & AIS 31”中找到。
为了测试随机数的熵,可以使用ENT工具。
链接: