我们需要一个随机数生成器来解密(解密)吗?

时间:2013-11-30 15:52:30

标签: random encryption

我是加密专家,因此我正在寻找软件解密建议。我的例子涉及硬件,但我的问题是寻求关于软件解决方案是否可行,可行和合理的软件建议。

背景:

在我们的产品上,我们正在考虑在RFID钥匙上添加加密功能。我们当前的固件不支持这一点,我们的硬件人员现在想升级硬件以添加随机数生成器芯片。

如上所述,我不是加密方面的专家,但我总是认为加密需要一个随机数生成器,但不能用于解密?

其他信息:我们使用的是低功耗ARM处理器(此时不知道该型号)。

所以我的问题如下:

  1. 你真的需要随机数来破译数据吗?
  2. 如果是这样,为什么标准C语言库不足够?
  3. 最后,

    1. 如果我们确实需要随机数来破译,那么任何有经验评论的人都可以评论硬件与软件随机数的利弊吗?示例:解码的随机数部分仅占总处理的1%,因此我不一定能加快速度吗?
    2. 提前谢谢!

1 个答案:

答案 0 :(得分:5)

您的困惑是因为在这种情况下,随机数不会用于随机性。许多加密算法(例如RC4)基于使用密钥作为种子初始化的加密安全伪随机数随机数发生器(CSPRNG)对明文进行异或。 (伪随机数表示随机数生成器使用算法生成值)然后再次使用带有密钥的CSPRNG对数据进行解密,并将其与密文进行异或。

  
      
  1. 如果是这样,为什么标准C语言库不足够?
  2.   

不,因为几乎所有rand()实现都使用LCG,这是不安全的,不适合加密目的。

  

如果我们确实需要随机数字来破译,任何有经验的人都可以   评论硬件与软件的利弊   随机数?示例:是解密的随机数部分   只占整个处理的1%,因此我不一定会加速   事情呢?

如上所述,使用CSPRNG生成值几乎占用了加密所需的所有计算能力;唯一的另一个步骤是使用明文/密文对CSPRNG进行异或。但是,我认为您不需要硬件加速伪随机生成器,因为RC4在Pentium上只需要7个字节的周期,而大多数实用的加密算法每个字节少于100个周期。如果它需要加密速度超过每秒数百兆字节,那么硬件加速伪随机生成器将显着加速加密。