Python 密码学 - 一次一密密码

一次一密密码是一种 Vignere 维吉尼亚密码,它包括以下特征 −

  • 这是一个无法破解的密码。

  • 密钥与加密消息的长度完全相同。

  • 密钥由随机符号组成。

  • 顾名思义,密钥只能使用一次,绝不会再次用于任何其他要加密的消息。

正因为如此,加密的信息将容易受到密码分析者的攻击。 用于一次一密密码的密钥称为 pad,因为它印在纸本上。


为什么它无法破解?

由于以下特点,密钥是无法破解的 −

  • 密钥与给定的消息一样长。

  • 密钥是真正随机且专门自动生成的。

  • 按 10/26/2 取模计算的密钥和纯文本。

  • 每个密钥应使用一次并由发送方和接收方销毁。

  • 密钥应该有两份:一份与发送者有关,另一份与接收者有关。


加密

要加密信件,用户需要在明文下面写一个密钥。 明文字母放在最上面,关键字母放在左边。 两个字母之间的横截面是纯文本。 在下面的示例中进行了描述 −

OTP

解密

要解密信件,用户取左边的密钥字母并在该行中找到密文字母。 明文字母放在列的顶部,用户可以在其中找到密文字母。