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



到目前为止,我是加密专家,因此正在寻求软件解密建议。我下面的例子涉及硬件,但我的问题是就软件解决方案是否可行、可行和合理寻求软件建议。

背景:

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

如上所述,我不是加密专家,但我一直认为加密需要随机数生成器,但解密不需要?

附加信息:我们使用的是低功耗ARM处理器(目前还不知道型号)。

所以我的问题如下:

  1. 你真的需要随机数来破译数据吗
  2. 如果是这样,为什么一个标准的C语言库就不够了

最后,

  1. 如果我们确实需要随机数来解密,有经验的人能评论一下硬件随机数与软件随机数的优缺点吗?示例:解密的随机数部分是否只占总处理的1%,因此我不一定会加快速度

提前谢谢!

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

  1. 如果是这样,为什么一个标准的C语言库就不够了

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

如果我们确实需要随机数来解密,任何有经验的人都能硬件与软件的优缺点评述随机数?示例:是解密的随机数部分只有总处理的1%,因此我不一定会加快事情进展如何?

如前所述,使用CSPRNG生成值几乎占用了加密所需的所有计算能力;唯一的另一个步骤是将CSPRNG与明文/密文异或。然而,我认为您不需要硬件加速的伪随机生成器,因为RC4在奔腾上每字节只需要7个循环,而大多数实用的加密算法每字节不到100个循环。如果它需要以每秒数百兆字节以上的速度加密,那么硬件加速的伪随机生成器将显著加速加密。

相关内容

最新更新