📜  传统密码

📅  最后修改于: 2021-01-12 04:42:00             🧑  作者: Mango


在第二章中,我们讨论了现代密码学的基础。我们将加密技术等同于一个工具包,其中各种加密技术被视为基本工具。这些工具之一是对称密钥加密,其中用于加密和解密的密钥是相同的。

在本章中,我们将进一步讨论该技术及其在开发各种密码系统中的应用。

较早的密码系统

在继续之前,您需要了解有关历史密码系统的一些事实-

  • 所有这些系统均基于对称密钥加密方案。

  • 这些系统提供的唯一安全服务是信息的机密性。

  • 与现代的数字系统和将数据视为二进制数字的现代系统不同,早期的系统将字母作为基本元素。

这些较早的密码系统也称为密码。通常,密码只是用于执行加密和相应解密的一组步骤(一种算法)。

凯撒密码

它是一种单字母密码,其中明文的每个字母都被另一个字母替代以形成密文。它是替代密码方案的最简单形式。

该密码系统通常称为Shift Cipher 。这个概念是将每个字母替换为另一个字母,该字母“偏移”了0到25之间的某个固定数字。

对于这种类型的方案,发送方和接收方都同意使用“秘密移位号码”来移位字母。这个介于0到25之间的数字成为加密密钥。

当使用“三班制”时,偶尔会使用名称“凯撒密码”来描述班次密码。

密码转换过程

  • 为了加密明文字母,发送方将滑动标尺放在第一组明文字母的下面,并将其按秘密移位的位置数向左滑动。

  • 然后,将明文字母在下面的滑尺上加密为密文字母。下图描述了此过程的结果,以商定的三个位置进行平移。在这种情况下,明文“教程”被加密为密文“ WXWRULDO”。这是Shift 3的密文字母-

密码转换过程

  • 在接收到密文后,也知道秘密移位的接收者将其滑动标尺放在密文字母下方,然后将其滑动到RIGHT商定的移位号(在这种情况下为3)。

  • 然后,他用下面的滑尺上的明文字母替换了密文字母。因此,密文“ WXWRULDO”被解密为“教程”。要解密以Shift 3编码的消息,请使用’-3’移位生成纯文本字母,如下所示-

密码转换过程1

安全价值

凯撒密码不是安全的密码系统,因为只有26种可能的密钥可供试用。攻击者可以利用可用的有限计算资源来进行详尽的密钥搜索。

简单替代密码

这是对Caesar Cipher的改进。该方案不是将字母移位某个数字,而是使用字母中字母的某种排列方式。

例如,AB…..YZ和ZY……BA是字母中所有字母的两个明显排列。排列不过是一组混杂的字母。

使用26个字母的字母,可能的排列为26! (Factorial of 26)等于4×10 26 。发送者和接收者可以选择这些可能排列中的任何一个作为密文字母。这种排列是该方案的秘密。

简单替换密码的过程

  • 以自然顺序写字母A,B,C,…,Z。

  • 发送者和接收者决定随机选择的字母组合。

  • 在自然顺序字母下面,写出所选字母字母的排列。对于加密,发件人通过替换表中直接位于其下方的置换字母来替换每个纯文本字母。下图显示了此过程。在此示例中,选择的排列为K,D,G,…,O。明文“点”被加密为“ MJBXZ”。

这是一个混乱的密文字母,密文字母的顺序是一个关键。

简单替代密码

  • 在接收到密文后,也知道随机选择的排列的接收者将底行中的每个密文字母替换为顶行中的相应明文字母。密文“ MJBXZ”被解密为“点”。

安全价值

简单替代密码是对凯撒密码的重大改进。可能的密钥数量很大(26!),甚至现代的计算机系统都还不够强大,无法舒适地发起蛮力攻击来破坏系统。然而,简单替换密码具有简单的设计,并且容易产生设计缺陷,例如选择明显的排列,该密码系统很容易被破坏。

单字母和多字母密码

单字母密码是一种替换密码,其中对于给定的密钥,每个普通字母的密码字母在整个加密过程中都是固定的。例如,如果将“ A”加密为“ D”,则对于该明文中出现的任何次数,“ A”将始终加密为“ D”。

我们在本章前面讨论过的所有替换密码都是单字母的。这些密码极易受到密码分析的影响。

多字母密码是一种替换密码,在加密过程中,纯字母的密码字母在不同位置可能会有所不同。接下来的两个示例playfair和Vigenere Cipher是多字母密码

Playfair密码

在这种方案中,对字母进行加密,而不是像简单替换密码那样对单个字母进行加密。

在公平游戏密码中,最初会创建一个密钥表。密钥表是一个5×5的字母网格,用作加密明文的密钥。 25个字母中的每个字母必须唯一,并且表中省略了一个字母(通常为J),因为我们只需要25个字母而不是26个字母。如果明文包含J,则将其替换为I。

发送者和接收者都在使用特定的密钥(例如“教程”)。在密钥表中,表中的第一个字符(从左到右)是短语,不包括重复的字母。表格的其余部分将以自然顺序填充剩余的字母。密钥表计算为-

关键表

Playfair密码的过程

  • 首先,将纯文本消息分成两个字母(图)对。如果字母的奇数个数,则将Z添加到最后一个字母。假设我们要加密“隐藏金钱”消息。它将被写为-

    海德蒙兹

  • 加密的规则是-

    • 如果两个字母都在同一列中,则取每个字母下方的字母(如果在底部,则返回顶部)

  • T U O R I ‘H’ and ‘I’ are in same column, hence take letter below them to replace. HI → QC
    A L S B C
    D E F G H
    K M N P Q
    V W X Y Z
  • 如果两个字母都在同一行中,则将每个字母右边的字母(如果最右边的字母返回到左侧)

  • T U O R I ‘D’ and ‘E’ are in same row, hence take letter to the right of them to replace. DE → EF
    A L S B C
    D E F G H
    K M N P Q
    V W X Y Z
  • 如果前面两个规则都不成立,则用两个字母组成一个矩形,并在矩形的水平相对角上取字母。

Playfair密码

使用这些规则,使用“教程”的密钥对“隐藏金钱”进行加密的结果将是-

QC EF NU MF ZV

解密Playfair密码与执行相反的过程一样简单。接收方具有相同的密钥,可以创建相同的密钥表,然后解密使用该密钥发出的任何消息。

安全价值

它也是一个替换密码,与简单替换密码相比很难破解。与替换密码的情况一样,在Playfair密码上也可以进行密码分析,但是这将针对625个可能的字母对(25×25个字母),而不是26个可能的字母。

Playfair密码主要用于保护重要但非关键的秘密,因为它使用方便并且不需要特殊设备。

Vigenere密码

这种密码方案使用文本字符串(例如,单词)作为密钥,然后将其用于对明文进行多次移位。

例如,假设键为“ point”。键的每个字母都会转换为各自的数值:在这种情况下,

p→16,o→15,i→9,n→14和t→20

因此,关键是:16 15 9 14 20。

Vigenere密码的过程

  • 发送者和接收者决定密钥。说“点”是关键。该密钥的数字表示为“ 16 15 9 14 20”。

  • 发件人希望对邮件进行加密,例如“来自东南的攻击”。他将按以下方式安排明文和数字键-

Vigenere密码

  • 现在,他将每个明文字母移位其下方写的数字以创建密文,如下所示:

创建密文

  • 在此,每个明文字符已移动了不同的数量-该数量由按键确定。密钥必须小于或等于消息的大小。

  • 为了解密,接收器使用相同的密钥,并以相反的顺序移动接收到的密文以获得明文。

密文反序

安全价值

Vigenere Cipher是通过调整标准Caesar密码而设计的,以降低对密文进行密码分析的有效性,并使密码系统更强大。它比常规的凯撒密码安全得多

在历史上,它经常被用来保护敏感的政治和军事信息。由于它给密码分析带来了困难,因此被称为不可破解密码。

Vigenere密码的变体

Vigenere密码有两种特殊情况-

  • 关键字长度与原告消息相同。这种情况称为Vernam Cipher 。它比典型的Vigenere密码更安全。

  • Vigenere密码成为具有完美保密性的密码系统,称为一次性密码

一次性垫

情况是-

  • 关键字的长度与明文的长度相同。
  • 关键字是随机生成的字母字符串。
  • 该关键字仅使用一次。

安全价值

让我们将Shift密码与一次性密码进行比较。

移位密码-容易破解

在使用Shift密码的情况下,整个邮件的移位可能在1到25之间。这是一个很小的大小,并且非常容易被暴力破解。但是,由于每个字符现在都有自己的1到26之间的偏移,因此可能的键对于消息呈指数增长。

一次性垫-不可能破裂

让我们说,我们用一次性密码垫加密“点”这个名称。这是5个字母的文字。要用蛮力破解密文,您需要尝试各种可能性的密钥并进行(26 x 26 x 26 x 26 x 26)= 26 5 = 11881376次的计算。这是一条带有5个字母的消息。因此,对于更长的消息,计算量随每个附加字母成指数增长。这使得在计算上不可能通过强力破解密文。

换位密码

这是另一种密码,其中明文中的字母顺序被重新排列以创建密文。实际的纯文本字母不会被替换。

一个示例是“简单列换位”密码,其中明文以一定字母宽度水平书写。然后如图所示垂直读取密文。

例如,明文是“金色雕像在第十一窟”,而选择的秘密随机密钥是“五个”。我们将此文本水平排列在表中,列数等于键值。结果文本如下所示。

换位密码

密文是通过从第一列到最后一列垂直向下读取列而获得的。密文是“ gnuneaoseenvltiltedasehetivc”。

为了解密,接收者准备类似的表。列数等于键号。通过将总密文字母的数目除以键值并将商四舍五入为下一个整数值来获得行数。

然后,接收器将接收到的密文垂直向下并从左至右写入。为了获取文本,他从左到右以及从上到下水平阅读。