他们通过事先选取两根长度与宽度类似的木棒,外加用于加密的布条,完成整个加解密的过程。我们可以用下图来具体的说明它的加密过程。
我们先用虚线来表示所选的木棒,在用斜直线表示在这木板上所藏的布条。
假设输入的铭文是如下所示,
翻译成中文就是在凌晨发动攻击。为了加密上述明文,我们首先需要根据所用的布条大小,将铭文按照行的顺序逐行的填写到布条上,即将输入的铭文分割成 3 行 4 列的分块,
那这就完成了整个的加密过程。
而后呢我们再将布条取下交给信使发送给接收方。注意到此时的布条上的字母的排列顺序呢是按照列的输出及对应的输出密文是 ACDTKATAWATN,由于敌人并不知道加密木棒的长度信息,他因此也无法直接将密文恢复成对应的明文。那在上述算法中呢,我们可以把密钥看成是由木棒的长度和宽度信息所决定。
相传此密码是由罗马凯撒大帝所发明,其加密方法就是将字母表中的每个字母用它后面的第三个字母代替,具体可以看如下表。
在以输入明文是 ACCTACK AT DOWN 为例,考察其在凯撒密码加密下的输出明文。我们可以发现它的输出密文呢是
DWWDFNDWGDZQ,注意到我们将其向后循环移位了三位,那这个呢就是我们在这个加密算法中的密钥信息利用上述密钥信息 ,消息接收者可以很容易的将密文恢复成对应的明文。
隐写术:通过隐藏消息的存在来保护消息
反射器使得操作者可以使用同一台 ENIGMA 进行加密和解密操作。
由于对称密码在加解密操作时的计算效率非常高,因此呢它在信息安全领域有着非常广泛的应用。如我们手机的信用卡加密或者网络支付的加密场景等等,我们可以用下图来演示对称密码加解密的具体过程。首先通信双方甲和乙他们要共享一个相同的加密参数及共享一个密钥。而后甲利用上述密钥信息加密所需要发送的明文信息,并利用网络的方式加密文信息发送给乙,乙在收到密文后,再利用共享的密钥来进行解密操作,得到对应的明文。
分组密码的工作方式是将明文分成固定长度的分组,如 N bit 长度的分组,再由相应的对称密码算法和对应的输入密钥对明文进行加密,最后输出 N bit 长的密文。
目前国际上比较有名的分组密码算法
DES 分组加密算法是美国政府于 1977 年公布的数据加密标准,它是世界上最著名的分组密码算法之一,DES 算法通过接受 56 比特的输入密钥,能将 64 比特的输入明文转换成对应的 64 比特的输出密文。
DES 算法的缺陷和不足:
①DES 的设计可能隐含有陷阱,S 盒的设计原理至今未公布。
② 密钥容量太小:56 位不太可能提供足够的安全性
1997 年密码工作者通过穷举算法根绝当时的运算速度,只需要 59 天既可以破解 DES 算法。
在原有 DES 基础上连续三次调用 DES 算法进行加密,提高 DES 算法安全性。
3DES 缺陷::3DES 运行效率要比原有 DES 算法低的多
1997 年,美国国家标准技术研究所发起征集高级加密标准 AES 的活动,活动目的是选出一个分组密码算法,作为新的数据加密标准。
对 AES 的基本要求:支持 128、192 以及 256 比特这三种不同长度的密钥输入,并且每次能加密 128 比特的输入明文。
相比于 DES,AES 算法的加密明文长度更长,由于分组密码每次只能加密固定长度的明文信息,比如 DES 算法,它每次只能加密 64 比特的明文,那如果我们现在需要加密的明文比特数是 200 比特,那要怎么办呢?那为了解决上述问题,我们需要引入分组密码的几种工作模式
这里介绍一下最简单的 ECB 模式
ECB 模式也叫做电子密码本模式。在 ECB 模式下,我们首先需要将这 200 比特的输入明文填充成 64 比特的最小整数倍,即 256 比特,而后再将其分割成 4 个 64 比特分组,在不停的调用 DES 算法对其中每一个分组按顺序来进行加密操作,得到对应的密文。
那除了分组密码外流密码也是一种重要的对称密码算法,相比于分组密码,流密码具有
的特点。
具体的加密过程可以如下图所示
首先利用有限状态自动机生成与明文序列等长的密钥流序列再通过向主比特异或等等操作方式来生成对应的密文序列。
公钥密码可以克服上述问题
对称密码存在如下不足:
介绍一下数字签名:
数字签名:是指如何为数字化的消息或文件提供一种类似于书面文件手书签字的方法。
通信爽啊所持有的密钥不同,即加解密所需输入的参数不同。
古典密码、机械密码以及对称密码,都是采用代换和置换这两种基本设计思想。
采用这种设计思路的密码算法,要求加解密密钥相同。
公钥密码所采用的基本工具不再是代换和置换,而是以困难数学问题为基础,如大整数分解问题,离散对数问题等。
公钥密码构造了两个密钥,将加解密操作分开。一个密钥是公开的称为公钥用于加密操作,一个是保密的被称为私钥的用于解密操作。 只有与公钥对应的私钥才能解密相应的公钥的加密信息。因此公钥密码算法也被称为双钥密码。
已知密码算法和加密密钥,求解密 密钥在计算上是不可行的。
该算法是以初等数论中的 Euler(欧拉)定理为基础,并建立在大整数分解的困难性问题之上。
现实生活中: