Random 我们需要一个随机数发生器来解密吗?

Random 我们需要一个随机数发生器来解密吗?,random,encryption,Random,Encryption,到目前为止,我是加密方面的专家,因此我正在寻求软件解密方面的建议。我下面的例子涉及硬件,但我的问题是就软件解决方案是否可行、可行和合理寻求软件建议 背景: 在我们的产品上,我们正在考虑在我们的RFID密钥上添加加密。我们目前的固件不支持这一点,我们的硬件人员现在想升级硬件,添加一个随机数发生器芯片 如上所述,我不是加密方面的专家,但我一直认为加密需要一个随机数生成器,而解密则不需要 附加信息:我们使用的是低功耗ARM处理器(目前不知道型号) 因此,我的问题如下: 你真的需要随机数来破译数据吗 如

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

背景:

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

如上所述,我不是加密方面的专家,但我一直认为加密需要一个随机数生成器,而解密则不需要

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

因此,我的问题如下:

  • 你真的需要随机数来破译数据吗
  • 如果是这样的话,为什么标准C语言库不够用呢
  • 最后

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

  • 提前谢谢你

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

  • 如果是这样的话,为什么标准C语言库不够用呢
  • 不,因为几乎所有的rand()实现都使用,这是不安全的,不适合用于加密目的

    如果我们真的需要随机数来破译,有经验的人可以吗 对硬件与软件的优缺点的评论 随机数?示例:是解密的随机数部分 只有总处理量的1%,因此我不一定会加快速度 出什么事了


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

    谢谢您的回答!你是说种子被保存在某个地方,结果被加密了吗?此外,给定一个种子,可以创建相同的随机数“集合”,对吗?@Jeach种子是密钥,是用来加密数据的秘密“密码”。好的,谢谢你的澄清。我一直在想一个加密文件系统(FS),不知道为什么在没有特殊硬件的情况下破译文件系统中的数据会起作用,但在我问题中描述的情况下,需要特殊的硬件。FS数据是否会比RFID密钥中的数据更不安全?@Jeach不需要特殊硬件,因为它只需要伪随机源(基于算法的随机数生成器),一个著名但不太安全的流密码在奔腾上每字节只需要7个周期。