一次性加密(one time pad)的程序实现

一次性密码是什么?
在密码学中,一次性密码是一种系统,其中使用一次性生成的私钥仅用于加密一条消息,然后接收方使用匹配的一次性密码和密钥解密该消息。

一次性密码本(OTP)是理论上无法被破解的密码系统。然而,在实际应用中,它的可用性有限,因为它要求预先共享的密钥长度至少与消息长度相同。生成真正随机的密钥并安全地进行预共享是一个具有挑战性的问题。如果你拥有密钥,这个工具可以帮助你对一次性密码本进行编码或解码。
特点:
一次性密码本在理论上是100%安全的。它也是一种易于手动执行的密码系统。
它首次由Frank Miller在1882年描述,然后在1917年重新发明。它基于模加法,类似于维吉尼亚密码,但没有重复使用密钥。
在1919年,一次性密码本的一种变体,Vernam密码,由Gilbert S Vernam获得了专利。它基于异或运算,而不是模加法。
为了让密码系统达到100%的安全性,需要满足以下要求:
密钥必须是真正随机的。
密钥的长度必须至少与明文长度相同。
密钥不能被重用(包括部分密钥)。
密钥必须完全保密。
一次性密码本在历史上曾被KGB官员和各种间谍组织使用过。它在数字版本中仍在使用。
有一些历史案例显示,一次性密码本曾被破解过。这些情况发生是因为出现了错误,比如没有使用真正随机的密钥或重复使用相同的密钥。

基于随机性的密钥加密的消息具有一个重要优势,理论上无法通过分析一系列消息来破解代码。每次加密都是独一无二的,与下一次加密毫无关系,因此无法检测出模式。但是,在一次性密码中,解密方必须能够访问用于加密消息的相同密钥,这就引发了如何安全地将密钥传递给解密方࿰

你可能感兴趣的:(图像加密,前端,计算机视觉,人工智能,图像处理,算法)