密码学 - 一次性密码本密码



一次性密码本算法是维吉尼亚密码的增强版本。它是唯一已知的不可破解的加密方法,提供完全的安全性。此算法使用替换技术对字母文本进行加密,为明文中的每个字符分配数字。

要有效地使用一次性密码本,必须满足三个条件

  • 加密密钥的长度与秘密消息的长度匹配。

  • 加密密钥仅由随机生成的符号组成。

  • 每个加密密钥仅使用一次,并且永远不会重复用于多条消息。

在一次性密码本加密系统中,每条消息都使用与消息一样长的唯一密钥进行加密。加密的消息(称为密文)看起来像是完全随机的,与原始消息(称为明文)没有相似之处。这使得在没有正确密钥的情况下很难破译。

一次性密码本如何工作?

一次性密码本涉及创建一系列字符或数字,其长度等于或长于预期的最长消息。此序列是随机生成的,通常使用具有随机数生成器的计算机程序。这些值以物理方式记录在便笺簿或可读设备上。便笺簿分发给可能交换敏感消息的个人。它们可以作为多个密钥分发,每个密钥分配给特定的一天或特定数量的使用次数,确保每个密钥仅使用一次,然后丢弃。

发送消息时,发送方使用秘密密钥逐字符对其进行加密。使用计算机,字符中的每个比特(通常为 8 个比特)与密钥中的相应比特使用 XOR 运算组合。在一次性密码本系统中,XOR 是加密方法。如果密钥的随机性不确定,则可以将其与 MD5 等算法结合使用。这种类型的加密就像向消息中添加随机噪声一样,只有发送方和接收方有办法去除噪声。一次性密码本仅使用一次,并且不得重复使用。重复使用便笺簿会使拦截者能够比较消息并可能破译它们。

为了说明一次性密码本的工作原理,请考虑消息“TEST”。生成长度相等的一组秘密密钥“FVEB”。每个字母都分配一个数字,TEST:19、4、18、19 和 FVEB:5、21、4、1。添加与明文和密钥相对应的数字:24、25、22、20。将这些数字转换回字母:加密消息:YZWU 要解密,只需反转该过程即可,即可显示原始消息“TEST”。

One time Pad

为什么一次性密码本是不可破解的?

一次性密码本 (OTP) 的不可破解性被认为是不可破解的,因为与可以通过模式分析破解的维吉尼亚密码不同,OTP 密钥与消息本身一样长。每个可能的加密符号都有相同的几率表示相同的原始符号,这使得频率分析在揭示正确消息方面无效。

使用的密钥完全随机且与消息长度匹配,消除了黑客可以利用的任何可预测的模式。每个消息交换后都会丢弃密钥。没有它,即使是发送方和接收方也无法破译消息。因为密钥是随机的并且仅使用一次,所以它不会留下黑客可以猜测以破解代码的任何提示或模式。

一次性密码本加密

假设用户 1 想向用户 2 发送一条私人消息。用户 1 写下“HELLO”并创建一个唯一密钥“QWERT”。-

  • 为了保密,用户 1 将“HELLO”的每个字母与“QWERT”中的相应字母匹配。例如,H = A + Q,E = B + W。

  • 用户 1 的加密消息变为“QGNNQ”。

  • 用户 2 收到加密消息并使用相同的“QWERT”密钥对其进行解码。

  • 他反转规则:H - A = Q,E - W = G。

  • 用户 2 恢复原始消息“HELLO”。

由于密钥仅使用一次且完全不可预测,因此任何拦截加密消息的人在没有密钥的情况下都无法对其进行破译。这就是一次性密码本被认为是不可破解的原因。

一次性密码本解密

要使用一次性密码本解密消息,请按照以下步骤操作 -

  • 收集加密的消息和加密密钥。

  • 反转加密过程中执行的操作:- 如果添加了字母,则减去它们。

  • 使用解密密钥对每个字母应用反向操作。

  • 通过反转所有转换来获取原始的解密消息。

示例

要使用密钥“WORLD”解密“QKRRU”:- 从“Q”中减去“W”得到“H”。- 从“K”中减去“O”得到“E”。- 对所有字母继续此过程。- 生成的消息“HELLO”是解密的明文。

优点

以下是一次性密码本密码的一些优点,我们在使用此密码时应考虑 -

  • 一次性密码本加密通过使用保密且仅使用一次的密钥提供尽可能强的保护。

  • 与其他加密技术不同,它不受诸如暴力破解或已知明文攻击等弱点的影响。

  • 一次性密码本加密可以轻松适应文本数据和二进制数据。

  • 它的实现很简单,允许手动执行或在计算机的支持下执行。

OTP 的用例

请参见下面一次性密码的用例 -

  • 关键通信 - 军事和政府行动所需的至关重要的通信,需要最高的安全性。

  • 外交保密 - 最高官员、外交官和情报机构之间的安全通信。

  • 商业机密 − 保护敏感的财务和商业信息免受竞争对手的侵害。

  • 个人隐私 − 保护私人和机密信息,包括医疗记录和法律文件。

缺点

虽然 OTP 在正确使用时提供牢不可破的安全性,但其在密钥管理和分发方面的实际限制和挑战使其在许多现实世界应用中相比其他加密方法不太适用。

总结

一次性密码密码通过为每条消息使用唯一的密钥来提供高安全性,这使得未经授权的方在没有相关密钥的情况下无法解密加密数据。加密和解密过程可以通过各种方法实现,例如模运算、加减法、异或运算或利用 Python 的 onetimepad 模块。

加密和解密过程均保证转换后的字符保持在允许的 ASCII 值范围内,从而实现准确的反向转换。

广告