首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一次一密数字密码

一次一密数字密码
EN

Stack Overflow用户
提问于 2019-04-30 05:25:45
回答 1查看 180关注 0票数 0

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

还有,一次一密和异或密码有什么区别?

EN

回答 1

Stack Overflow用户

发布于 2019-04-30 06:08:00

当(且仅当)以下假设成立时,OTP和您所描述的xor密码是相同的:

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

>F29

这些都是一些非常沉重的假设

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

您可能不会简单地通过使用random类来创建随机位...动态口令要求真正的随机性...没有伪随机数生成器...甚至不是一个加密的安全的。OTP定义要求提供真正的随机值...为什么不是CSPRNG呢?因为OTP的力量是牢不可破的。一旦你依赖不是真正的随机源的东西,总体加密强度就会从无限下降到CSPRNG的加密强度……这可能是一个相当好的密码强度,但有限的.有可能打破它……对于真正的动态口令来说,即使拥有无限的资源,从信息论的角度来看,该系统也是不可破解的,这一点值得注意,因为它是已知的唯一具有这种性质的密码系统。

OTP通常不适用于我们日常的加密应用程序,并且通常只在处理特殊情况时使用,例如间谍和他/她工作的秘密机构之间的通信。

算法本身是众所周知的。

有一个对上述所有假设都成立的密钥

与明文进行逐位xor运算

完成

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55911022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档