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

Jea*_*ach 3 random encryption

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

背景:

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

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

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

所以我的问题如下:

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

最后,

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

先感谢您!

Ram*_*pte 5

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

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

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

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

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

  • @Jeach种子是密钥,用于加密数据的秘密"密码". (2认同)