我是加密专家,因此我正在寻找软件解密建议。我的例子涉及硬件,但我的问题是寻求关于软件解决方案是否可行,可行和合理的软件建议。
背景:
在我们的产品上,我们正在考虑在RFID钥匙上添加加密功能。我们当前的固件不支持这一点,我们的硬件人员现在想升级硬件以添加随机数生成器芯片。
如上所述,我不是加密方面的专家,但我总是认为加密需要一个随机数生成器,但不能用于解密?
其他信息:我们使用的是低功耗ARM处理器(此时不知道该型号)。
所以我的问题如下:
最后,
提前谢谢!
答案 0 :(得分:5)
您的困惑是因为在这种情况下,随机数不会用于随机性。许多加密算法(例如RC4)基于使用密钥作为种子初始化的加密安全伪随机数随机数发生器(CSPRNG)对明文进行异或。 (伪随机数表示随机数生成器使用算法生成值)然后再次使用带有密钥的CSPRNG对数据进行解密,并将其与密文进行异或。
- 如果是这样,为什么标准C语言库不足够?
醇>
不,因为几乎所有rand()实现都使用LCG,这是不安全的,不适合加密目的。
如果我们确实需要随机数字来破译,任何有经验的人都可以 评论硬件与软件的利弊 随机数?示例:是解密的随机数部分 只占整个处理的1%,因此我不一定会加速 事情呢?
如上所述,使用CSPRNG生成值几乎占用了加密所需的所有计算能力;唯一的另一个步骤是使用明文/密文对CSPRNG进行异或。但是,我认为您不需要硬件加速伪随机生成器,因为RC4在Pentium上只需要7个字节的周期,而大多数实用的加密算法每个字节少于100个周期。如果它需要加密速度超过每秒数百兆字节,那么硬件加速伪随机生成器将显着加速加密。