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