0

可以为数字实施一次密码吗?如果是的话,你能告诉我同样的算法或工作代码(最好是java)吗?

另外,一次性密码和异或密码有什么区别。

4

1 回答 1

1

当(且仅当)以下假设为真时,OTP 和您描述为 xor cipher 的内容是相同的:

  • 您的密钥至少与明文一样大(换句话说:每个明文位至少有一个唯一的密钥位)
  • 您的密钥由同等分布的真实随机二进制数据组成
  • 您的密钥永远不会被重复使用
  • 你的密钥是保密的

这些是一些相当沉重的假设

例如,如果您想加密一张 DVD,您的密钥也将与一张 DVD 一样大,必须安全地传送给接收者,而且该密钥 DVD 可能仅用于该单一数据交换并且可能永远不会被重复使用

您可能不会简单地通过使用随机类来创建随机位...... OTP 需要真正的随机性......没有伪随机数生成器......甚至不是加密安全的...... OTP 定义要求真正的随机值...... . 为什么连 CSPRNG 都不行?因为 OTP 的强度是牢不可破的……一旦你依赖的东西不是真正的随机源,整体密码强度就会从无限下降到 CSPRNG 的密码强度……这可能是一种密码强度相当好,但有限……有可能打破它……对于真正的 OTP,已经证明即使有无限的资源,从信息论方面来看,系统也无法破解,这很了不起,因为它是唯一已知的具有此属性的密码系统

OTP 对于我们通常的日常加密应用程序通常是不切实际的,并且通常仅在您处理特殊情况时使用,例如间谍与他/她工作的秘密机构之间的通信......

算法本身是众所周知的......

有一个适用于上述所有假设的密钥

与明文按位异或

完毕

于 2019-04-29T22:08:00.083 回答