课程主要内容 第1章 密码学概述 第2章 古典密码技术 第3章 对称密码体制 第4章 公钥密码体制 第5章 散列函数与消息鉴别 第1章 密码学概述 第2章 古典密码技术 第3章 对称密码体制 第4章 公钥密码体制 第5章 散列函数与消息鉴别 第6章 数字签名技术
本章主要内容 替代密码 单表替代密码 多表替代密码 置换密码 周期置换密码 列置换密码 转轮机密码 古典密码的统计分析 单表替代密码分析 第2章 古典密码技术 本章主要内容 替代密码 单表替代密码 多表替代密码 置换密码 周期置换密码 列置换密码 转轮机密码 古典密码的统计分析 单表替代密码分析 多表替代密码分析 对Hill密码的已知明文分析
加密变换过程就是将明文中的每一个字母替换为密文字母表的一个字母。而单表替代密码的密钥就是映射f或密文字母表。 第2章 古典密码技术 2.1.1 单表替代密码 单表替代密码对明文中的所有字母都使用一个固定的映射(明文字母表到密文字母表)。 加密变换过程就是将明文中的每一个字母替换为密文字母表的一个字母。而单表替代密码的密钥就是映射f或密文字母表。 经常密文字母表与明文字母表的字符集是相同的,这时的密钥就是映射f。下面给出几种典型的单表替代密码。
密钥,对明文消息中的每个字母依次进行变换。 【例2.1】设置换π的对应关系如下: 第2章 古典密码技术 2.1.1 单表替代密码(续) 一般单表替代密码 一般单表替代密码的原理是以26个英文字母集合上的一个置换π为 密钥,对明文消息中的每个字母依次进行变换。 【例2.1】设置换π的对应关系如下: a b c d e f g h i j k l m n o p q r s t u v w x y z q w e r t y u i o p a s d f g h j k l z x c v b n m 试用单表替代密码以π为密钥对明文消息message加密,然后写出逆置换 ,并对密文解密。 解:密文消息为 π(m) π(e) π(s) π(s) π(a) π(g) π(e)=dtllqut
密钥空间K很大,|K|=26!=4×1026 ,破译者穷举搜索计算不可行,1微秒试一个密钥,遍历全部密钥需要1013 年。 第2章 古典密码技术 2.1.1 单表替代密码(续) 一般单表替代密码算法特点: 密钥空间K很大,|K|=26!=4×1026 ,破译者穷举搜索计算不可行,1微秒试一个密钥,遍历全部密钥需要1013 年。 密钥π不便记忆。 针对一般替换密码密钥π不便记忆的问题,又衍生出了各种形式单表替代密码。
1、移位密码 把26个英文字母与整数0,1,2,…,25一一对应 加密变换: Ek (m) = m + k (mod26) 第2章 古典密码技术 1、移位密码 把26个英文字母与整数0,1,2,…,25一一对应 加密变换: Ek (m) = m + k (mod26) 解密变换: Dk (c) = c-k (mod26) 显然,移位密码是前面一般单表替代密码的一个特例。当移位密码的 密钥k=3时,就是历史上著名的凯撒密码(Caesar)。根据其加密函数特 点,移位密码也称为加法密码。
很明显,k1=1时即为移位密码,而k2=1则称为乘法 第2章 古典密码技术 2.1.1 单表替代密码(续) 2、仿射密码 仿射密码也是一般单表替代密码的一个特例,是一种线性变换。仿射密码的明文空间和密文空间与移位密码相同,但密钥空间为 K={(k1,k2)| k1,k2∈Z26,gcd(k1,26)=1} 对任意m∈M,c∈C,k = (k1,k2)∈K,定义加密变换为 c = Ek (m) = k1 m +k2 (mod 26) 相应解密变换为: m = Dk (c) = k1-1 (c-k2) (mod 26) 其中: 很明显,k1=1时即为移位密码,而k2=1则称为乘法 密码。
【例2.3】设明文消息为china,密钥 试用仿射密码对其进行加密,然后再进行解密。 解:利用扩展的欧几里德算法可计算出 加密变换为: 第2章 古典密码技术 2.1.1 单表替代密码(续) 【例2.3】设明文消息为china,密钥 试用仿射密码对其进行加密,然后再进行解密。 解:利用扩展的欧几里德算法可计算出 加密变换为: 解密变换为: 明文消息对应的数字依次为2,7,8,13,0,用仿射密码对明文进行加密 如下:
仿射密码要求(k1, 26)=1 ,否则就会有多个明文字母对应 第2章 古典密码技术 2.1.1 单表替代密码(续) 密文消息为unwpc。而解密过程如下: 即恢复明文消息为china。 仿射密码要求(k1, 26)=1 ,否则就会有多个明文字母对应 一个密文字母的情况。由于与26互素的整数有12个,故仿射密码密钥空间大小为|K|=12×26=312。 若将仿射密码的加密函数换为多项式函数时,即为多项式密码。
当选择上面的密钥进行加密时,若明文为“china”,则密文为“yfgmk”。 显然,不同的密钥可以得到不同的替换表。 第2章 古典密码技术 3、密钥短语密码 选用一个英文短语或单词串作为密钥,去掉其中重复的字母得到一个无重复字母的字符串,然后再将字母表中的其它字母依次写于此字母串后,就可构造出一个字母替代表。如密钥为key时,替代表如表2.2所示。 表2.2 密钥为key的单表替代密码 当选择上面的密钥进行加密时,若明文为“china”,则密文为“yfgmk”。 显然,不同的密钥可以得到不同的替换表。
单表替代密码表现出明文中单字母出现的频率分布与密文中相同, 第2章 古典密码技术 2.1.2 多表替代密码 单表替代密码表现出明文中单字母出现的频率分布与密文中相同, 多表替代密码使用从明文字母到密文字母的多个映射来隐藏单字母出现的频率分布,每个映射是简单替代密码中的一对一映射,多表替代密码将明文字母划分为长度相同的消息单元,称为明文分组,对明文成组地进行替代,同一个字母有不同的密文,改变了单表替代密码中密文的唯一性,使密码分析更加困难。
其中ci=(mi + ki)(mod26),i =1,2,…,n 对密文 c=(c1,c2,…,cn), 解密变换为: 第2章 古典密码技术 2.1.2 多表替代密码(续) 1.维吉尼亚密码 维吉尼亚密码是最古老而且最著名的多表替代密码体制之一,与位移密码体制相似,但维吉尼亚密码的密钥是动态周期变化的。该密码体制有一个参数n。在加解密时,同样把英文字母映射为0-25的数字再进行运算,并按n个字母一组进行变换。明文空间、密文空间及密钥空间都是长度为n的英文字母串的集合。设密钥 k=(k1,k2,…,kn), 明文m=(m1,m2,…,mn), 加密变换为: Ek(m)=(c1,c2,…,cn), 其中ci=(mi + ki)(mod26),i =1,2,…,n 对密文 c=(c1,c2,…,cn), 解密变换为: Dk(c)=(m1,m2,…,mn), 其中 mi=(ci -ki)(mod26),i =1,2,…,n
【例2.4】设密钥k =cipher,明文消息appliedcryptosystem, 试用维吉尼亚密码对其进行加密,然后再进行解密。 第2章 古典密码技术 2.1.2 多表替代密码(续) 【例2.4】设密钥k =cipher,明文消息appliedcryptosystem, 试用维吉尼亚密码对其进行加密,然后再进行解密。 解:由密钥k=cipher,得n=6,密钥对应的数字序列为 (2,8,15,7,4,17)。然后将明文按每6个字母进行分组,并转换这些明文字母为相应的数字,再用模26加上对应密钥数字,其加密过程如表2.3所示。 表2.3 密钥为cipher的维吉尼亚密码加密过程 密文为:cxtsmvfkgftkqanzxvo。 解密使用相同的密钥,但用模26的减法代替模26加法,这里不再赘述。
2.1.2 多表替代密码(续) 2.希尔(Hill)密码 第2章 古典密码技术 2.1.2 多表替代密码(续) 2.希尔(Hill)密码 Hill密码算法的基本思想是将n个明文字母通过线性变换,将它们转换为n个密文字母。解密只需做一次逆变换即可。 算法的密钥K =﹛ 上的 可逆矩阵﹜,明文M与密文C 均为n维向量,记为 其中, 或写成 解密变换则为:
第2章 古典密码技术 2.1.2 多表替代密码(续) 其中,K –1为K在模26上的逆矩阵,满足:K K –1 = K –1 K=I (mod 26) 这里 I 为单位矩阵。 定理2.1:假设A = ( ai,j) 为一个定义在Z26上的n×n矩阵,若A 在模26上可逆,则有: A –1= ( det A ) –1 A* (mod 26 ) ;这里A*为矩阵A的伴随矩阵 在n = 2的情况下,有下列推论: 假设 A= ,是一个Z26上的2×2矩阵,它的行列式: 是可逆的,那么: 例如,
2.1.2 多表替代密码(续) 第2章 古典密码技术 这时 ,所以K的逆矩阵为: 2.1.2 多表替代密码(续) 这时 ,所以K的逆矩阵为: 【例2.5】设明文消息为good,试用n=2,密钥 的Hill密码对其进 行加密,然后再进行解密。 解:将明文划分为两组:(g,o ) 和 (o,d ),即(6,14)和(14,3)。 加密过程如下: 因此,good的加密结果是wmwl。显然,明文不同位置的字母“o”加密成 的密文字母不同。为了解密,由前面计算有 ,可由密文解密计 算出明文:
2.1.2 多表替代密码(续) 第2章 古典密码技术 因此,解密得到正确的明文“good”。 Hill密码特点: 2.1.2 多表替代密码(续) 因此,解密得到正确的明文“good”。 Hill密码特点: 可以较好地抑制自然语言的统计特性,不再有单字母替换的一一 对应关系,对抗“惟密文攻击”有较高安全强度。 密钥空间较大,在忽略密钥矩阵K可逆限制条件下,|K|=26n×n 易受已知明文攻击及选择明文攻击。
若替代码的密钥是一个随机且不重复的字符序列,这种密码则称为一次一密密码,因为它的密钥只使用一次。 2.1.2 多表替代密码(续) 3.一次一密密码(One Time Pad) 若替代码的密钥是一个随机且不重复的字符序列,这种密码则称为一次一密密码,因为它的密钥只使用一次。 该密码体制是美国电话电报公司的Joseph Mauborgne在1917年为电报通信设计的一种密码,所以又称为Vernam密码。Vernam密码在对明文加密前首先将明文编码为(0,1)序列,然后再进行加密变换。 设m=(m1 m2 m3 … mi …)为明文,k=(k1 k2 k3 … ki …)为密钥,其中mi,ki ∈(0,1), i≥1, 则加密变换为: c=(c1 c2 c3 … ci …) ,其中ci = mi ki , i≥1, 这里为模2加法(或异或运算) 解密变换为: m=(m1 m2 m3 … mi …) ,其中mi = ci ki , i≥1,
2.1.2 多表替代密码(续) 第2章 古典密码技术 在应用Vernam密码时,如果对不同的明文使用不同的随机密钥,这时 2.1.2 多表替代密码(续) 在应用Vernam密码时,如果对不同的明文使用不同的随机密钥,这时 Vernam密码为一次一密密码。 由于每一密钥序列都是等概率随机产生的,敌手没有任何信息用来对密文进行密码分析。香农(Claude Shannon)从信息论的角度证明了这种密码体制在理论上是不可破译的。但如果重复使用同一个密钥加密不同的明文,则这时的Vernam密码就较为容易破译。 若敌手获得了一个密文c=(c1 c2 c3 … ci …) 和对应明文m=(m1 m2 m3 … mi …) 时,就很容易得出密钥 k=(k1 k2 k3 … ki …) ,其中ki = ci mi ,i≥1。 故若重复使用密钥,该密码体制就很不安全。
2.1.2 多表替代密码(续) ① 密钥是真正的随机序列; ② 密钥长度大于等于明文长度; ③ 每个密钥只用一次(一次一密)。 第2章 古典密码技术 2.1.2 多表替代密码(续) 实际上Vernam密码属于序列密码,加密解密方法都使用模2加,这使软硬件实现都非常简单。但是,这种密码体制虽然理论上是不可破译的,然而在实际应用中,真正的一次一密系统却受到很大的限制,其主要原因在于该密码体制要求: ① 密钥是真正的随机序列; ② 密钥长度大于等于明文长度; ③ 每个密钥只用一次(一次一密)。 这样,分发和存储这样的随机密钥序列,并确保密钥的安 全都是很因难的;另外,如何生成真正的随机序列也是一个 现实问题。因此,人们转而寻求实际上不对攻破的密码系统 。
2.1.2 多表替代密码(续) 4.Playfair密码 Playfair密码是一种著名的双字母单表替代密码,实际上Playfair密码属于一种多字母替代密码,它将明文中的双字母作为一个单元对待,并将这些单元转换为密文字母组合。 替代时基于一个5×5的字母矩阵。字母矩阵构造方法同密钥短语密码类似,即选用一个英文短语或单词串作为密钥,去掉其中重复的字母得到一个无重复字母的字符串,然后再将字母表中剩下的字母依次从左到右、从上往下填入矩阵中,字母I,j占同一个位置。
例如,密钥K= playfair is a digram cipher,去除重复字 第2章 古典密码技术 2.1.2 多表替代密码(续) 例如,密钥K= playfair is a digram cipher,去除重复字 母后,K=playfirsdgmche,可得字母矩阵如图2.1。 图2.1 Playfair密码字母矩阵示例
(1)若P1、P2在同一行,密文C1、C2分别是紧靠P1、P2右端的字母; 第2章 古典密码技术 2.1.2 多表替代密码(续) 对每一明文字母对P1、P2的加密方法如下: (1)若P1、P2在同一行,密文C1、C2分别是紧靠P1、P2右端的字母; (2)若P1、P2在同一列,密文C1、C2分别是紧靠P1、P2下方的字母; (3)若P1、P2不在同一行,也不在同一列,则C1、C2是由P1、P2确定的矩形其它两角的字母,且C1和P1在同一行,C2和P2在同一行; (4)若P1=P2,则两个字母间插入一个预先约定的字母,如x,并用前述方法处理; 如balloon,则以ba lx lo on 来加密。 (5)若明文字母数为奇数,则在明文尾填充约定字母。 算法还约定字母矩阵中第一列看做最后一列的右边一列, 表中第一行看做最后一行的下一行。
2.2 置换密码 ( Permutation Cipher ) 第2章 古典密码技术 2.2 置换密码 ( Permutation Cipher ) 置换密码又称为换位密码; 置换密码通过改变明文消息各元素的相对位置,但明文消息元素本身的取值或内容形式不变; 在前面的替代密码中,则可以认为是保持明文的符号顺序,但是将它们用其它符号来替代; 这种密码是把明文中各字符的位置次序重新排列来得到密文的一种密码体制。实现的方法多种多样。直接把明文顺序倒过来,然后排成固定长度的字母组作为密文就是一种最简单的置换密码。 下面再给出几种典型的置换密码算法。
2.2.1 周期置换密码 周期置换密码是将明文字符按一定长度n分组,把每组中的字符按1,2,…,n的一个置换π重排位置次序来得到密文的一种加密方法。 其中的密钥就是置换π,在π的描述中包含了分组长度的信息。 解密时,对密文字符按长度n分组,并按π的逆置换 把每组字符重排位置次序来得到明文。 周期置换密码可描述为: 设n为固定的正整数,P = C = (Z26)n , K是由 {1,2,…,n} 的所有 置换构成。对一个密钥π∈K,定义: 加密变换: E (m1, m2,.., mn) = (m(1),..., m(n)) =( c1, c2,.., cn) 解密变换: ;这里π-1为π的逆置换 注意,这里的加密与解密变换仅仅用了置换,无代数运算。
【例2.7】给定明文cryptography,试用密钥π= 第2章 古典密码技术 2.2.1 周期置换密码(续) 【例2.7】给定明文cryptography,试用密钥π= = (3 5 1 6 4 2)的置换密码对其进行加密,然后再对密文进行解密。 解:密钥长度是6,所以按周期长度6对明文分组,对每组字母用密钥π 进行重排得到对应的加密结果。 明文分组为:crypto|graphy,再利用置换密钥π进行加密变换,得:E (crypto) = (ytcopr); E (graphy) = (ahgypr) 即密文消息为ytcoprahgypr。 显然由加密置换可求出逆置换, =(3 6 1 5 2 4),根 据密文和逆置换 , 即可直接求出明文。
第2章 古典密码技术 2.2.2 列置换密码 这种密码的加密方法就是将明文按行填写到一个列宽固定(设为m)的表格或矩阵中;然后按(1,2,…,m)的一个置换交换列的位置次序,再按列读出即得密文。 解密时,将密文按列填写到一个行数固定(也为m)的表格或矩阵中,按置换的逆置换交换列的位置次序,然后按行读出即得到明文。置换可看成是算法的密钥。
密钥 CIPHER 顺序 145326 attack 明文 begins atfour 置换密码 置换密码(transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。 密钥 顺序 明文 CIPHER 145326 attack begins atfour 根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。同理,E 为第 2,H 为第 3,……,R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
密钥 CIPHER 顺序 145326 attack 明文 begins atfour 置换密码 置换密码(transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。 密钥 顺序 明文 CIPHER 145326 attack begins atfour 根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。同理,E 为第 2,H 为第 3,……,R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
密钥 CIPHER 顺序 145326 attack 明文 begins atfour 置换密码 置换密码(transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。 密钥 顺序 明文 CIPHER 145326 attack begins atfour 根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。同理,E 为第 2,H 为第 3,……,R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
密钥 CIPHER 顺序 145326 attack 明文 begins atfour 置换密码 置换密码(transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。 密钥 顺序 明文 CIPHER 145326 attack begins atfour 根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。同理,E 为第 2,H 为第 3,……,R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
密钥 CIPHER 顺序 145326 attack 明文 begins atfour 置换密码 置换密码(transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。 密钥 顺序 明文 CIPHER 145326 attack begins atfour 根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。同理,E 为第 2,H 为第 3,……,R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
密钥 CIPHER 顺序 145326 attack 明文 begins atfour 置换密码 置换密码(transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。 密钥 顺序 明文 CIPHER 145326 attack begins atfour 根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。同理,E 为第 2,H 为第 3,……,R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
收到的密文:abacnuaiotettgfksr 密文的得出 密钥 顺序 明文 CIPHER 145326 attack begins atfour 收到的密文:abacnuaiotettgfksr
密钥 CIPHER 顺序 145326 attack 明文 begins atfour 收到的密文:abacnuaiotettgfksr 接收端收到密文后按列写下 收到的密文:abacnuaiotettgfksr 密钥 顺序 明文 CIPHER 145326 attack begins atfour 先写下第 1 列密文 aba
密钥 CIPHER 顺序 145326 attack 明文 begins atfour 收到的密文:abacnuaiotettgfksr 接收端收到密文后按列写下 收到的密文:abacnuaiotettgfksr 密钥 顺序 明文 CIPHER 145326 attack begins atfour 最后写下第 6 列密文 ksr
密钥 CIPHER 顺序 145326 attack 明文 begins atfour 收到的密文:abacnuaiotettgfksr 接收端从密文解出明文 收到的密文:abacnuaiotettgfksr 密钥 顺序 明文 CIPHER 145326 attack begins atfour 最后按行读出明文 得出明文:attackbeginsatfour
第2章 古典密码技术 2.3 转轮机密码 转轮机的基本结构由一个键盘、若干灯泡和一系列转轮组成,如图所示。键盘一共有26个键,键盘上方就是标示了字母的26个小灯泡,当键盘上的某个键被按下时,与这个字母被加密后的密文字母所对应的小灯泡就亮了起来。在显示器的上方是几个转轮,每个转轮是26个字母的任意组合。
如图2.2是一个三转轮的原理示意图,图中3个矩形框代表3个转轮,从左到右分别称为慢转子、中转子和快转子。每个转轮有26个输入引脚和26个输出引脚,其内部连线将每个输入引脚连接到一个对应的输出引脚,这样每个转轮内部相当于一个单表替代。当按下某一键时,电信号从慢转子的输入引脚进入,通过内部连线经过每个转轮,最后从快转子的输出引脚信号输出对应密文字母(点亮)。 例如,在图2.2(a)中,如果按下字母B,则相应电信号被加到慢转子的输入引脚25,并通过内部连线连接到慢转子的输出引脚25,经过中转子的输入引脚22和输出引脚22,连接到快转子的输入引脚13,最后从快转子的输出引脚13输出密文字母(I)。
A→B B→I C→E …… A→E B→Q C→T …… 慢 中 快 慢 中 快 在一次击键后的设置 初始设置 ABCDEFGHIJKLMNOPQRSTUVWXYZ 2425260102030405060708091011121314151617181920212223 2103150119101426200816072204110517091223180225062413 2601020304050607080910111213141516171819202122232425 2001060415031412230516022219111825241307100821092617 0102030405060708091011121314151617181920212223242526 0818261720221003131104230524091225161906152102070114 慢 中 快 ABCDEFGHIJKLMNOPQRSTUVWXYZ 2425260102030405060708091011121314151617181920212223 2103150119101426200816072204110517091223180225062413 2601020304050607080910111213141516171819202122232425 2001060415031412230516022219111825241307100821092617 1408182617202210031311042305240912251619061521020701 慢 中 快 在一次击键后的设置 A→B B→I C→E …… A→E B→Q C→T …… 初始设置
第2章 古典密码技术 如果转轮密码机始终保持图2.2(a)的连接状态,则按下字母键B,输出密文字母始终是I(按下字母键A,输出的密文字母则始终是B,等等),转轮密码机为了能够实现复杂的多表替代密码,打破明文与密文之间固定的替代关系,在每次击键输出密文字母后,快转子都要转动一个位置,以改变中转子与快转子之间的对应关系。 转轮密码机的每个转子都有可能转动,当快转子转动26次后,中转子就转动一个位置;当中转子转动26次后,慢转子就转动一个位置。因此,在加密(或解密)26×26×26=17576个字母后,所有转轮就会恢复到初始状态。也就是说,有n个转轮的转轮密码机是一个周期长度为 的多表替代密码。
第2章 古典密码技术 使用转轮密码机通信时,发送方首先要调节各个转轮的位置(这个转轮的初始位置就是密钥),然后依次键入明文,并把显示器上灯泡闪亮的字母依次记下来,最后把记录下的闪亮字母按照顺序用正常的电报方式发送出去; 接收方收到电文后,只要也使用同样一台转轮机,并按照原来的约定,把转轮的位置调整到和发送方相同的初 始位置上,然后依次键入收到的密文,显示器上自动闪亮的字母就是明文了。
在对密码进行安全分析时,一般假设密码分析者知道密码体制,这就是Kerckhoffs假设,密码分析重点在获取密钥。 第2章 古典密码技术 2.4 古典密码的统计分析 在对密码进行安全分析时,一般假设密码分析者知道密码体制,这就是Kerckhoffs假设,密码分析重点在获取密钥。 移位密码、仿射密码、维吉尼亚密码、置换密码等对己知明文攻击都是非常脆弱的。即使用惟密文攻击,大多数古典密码体制都容易被攻破。大多数古典密码体制都不能很好隐藏明文消息的统计特征。 下面就针对单表替代密码、多表替代密码和Hill密码来介绍利用英文语言的统计特征和密码特点,运用惟密文攻击或已知明文攻击等方式破译古典密码的基本方法。
对于单表替代密码,加法密码和乘法密码的密钥量比较小,可利用穷举密钥的方法进行破译。 第2章 古典密码技术 2.4.1 单表替代密码分析(续) 对于单表替代密码,加法密码和乘法密码的密钥量比较小,可利用穷举密钥的方法进行破译。 穷举不是攻击密码的惟一方法,密码分析者还可利用语言的统计特性进行分析。如果明文语言的这种统计特性在明文中有所反映,密码分析者便可通过分析明文密文的统计规律而破译密码。 通过对大量英文语言的研究可以发现,每个字母出现的频率不一样,e出现的频率最高。如果所统计的文献足够长,便可发现各字母出现的频率比较稳定。如表2.4所示(表中字母出现频率为字母出现次数除以文本字母总数)。
2.4.1 单表替代密码分析(续) 第2章 古典密码技术 字母 出现频率 a 0.0856 n 0.0707 b 0.0139 o 2.4.1 单表替代密码分析(续) 表2.4 26个英文字母出现频率统计表 字母 出现频率 a 0.0856 n 0.0707 b 0.0139 o 0.0797 c 0.0279 p 0.0199 d 0.0378 q 0.0012 e 0.1304 r 0.0677 f 0.0289 s 0.0607 g t 0.1045 h 0.0528 u 0.0249 i 0.0627 v 0.0092 j 0.0013 w 0.0149 k 0.0042 x 0.0017 l 0.0339 y m z 0.0008
(2)t,a,o,i,n,s,h,r出现的频率约在0.06~0.1之 间; (3)d,l出现的频率在0.04附近; 第2章 古典密码技术 2.4.1 单表替代密码分析(续) 通过对26个英文字母出现频率的分析,可以有以下结果: (1)e出现的频率最大,约为0.13; (2)t,a,o,i,n,s,h,r出现的频率约在0.06~0.1之 间; (3)d,l出现的频率在0.04附近; (4)c,u,m,w,f,g,y,p,b出现的频率约在0.015~ 0.029之间; (5)v,k,j,x,q,z出现的频率小于0.01。 在密码分析中,除了考虑单字母统计特性外,掌握双字母、三字母的 统计特性以及字母之间的连缀关系等信息也是很有用的。 出现频率最高的30个双字母组合依次是: th he in er an re ed on es st en at to nt ha
第2章 古典密码技术 2.4.1 单表替代密码分析(续) nd ou ea ng as or ti is et it ar te se hi of 出现频率最高的20个三字母组合依次是: 特别的,the出现的频率几乎是ing的3倍,这在密码分析中很有用。此外,统计资料还表明:英文单词以e,s,d,t字母结尾的超过一半。英文单词以t,a,s,w为起始字母的约占一半。 以上这些统计数据是通过非专业性文献中的字母进行统计得到的。对于密码分析者来说,这些都是十分有用的信息。除此之外,密码分析者对明文相关知识的掌握对破译密码也是十分重要的。 the ing and her ere ent tha nth was eth for dth hat she ion int his sth ers ver
字母和字母组的统计数据对于密码分析者是十分重要的。因为它们可以提供有关密钥的许多信息。 第2章 古典密码技术 2.4.1 单表替代密码分析(续) 字母和字母组的统计数据对于密码分析者是十分重要的。因为它们可以提供有关密钥的许多信息。 对于字母e比其它字母的频率都高得多,如果是单表替代密码,可以预计大多数密文都将包含一个频率比其它字母都高的字母。当出现这种情况时,猜测这个字母所对应的明文字母为e,进一步比较密文和明文的各种统计数据及其分布,便可确定出密钥,从而破译单表替代密码。 下面通过一个具体实例来说明如何借助于英文语言的统计规律来破译单表替代密码。
【例2.9】设某一段明文经单表替代密码加密后的密文如下, YIFQ FMZR WQFY VECF MDZP CVM R ZWNM DZVE JBTX CDDUMJ NDIF EFMD ZCDM QZKC EYFC JMYR NCWJ CSZR EXCH ZUNMXZ NZUC DRJX YYSM RTMEYIFZ WDYV ZVYF ZUMR ZCRW NZDZJJ XZWG CHSM RNMD HNCM FQCH ZJMX JZWI EJYU CFWD JNZDIR 试分析出对应密文。为了表述更加清楚,本例的密文用大写字母,明文用小写字母。
2.4.1 单表替代密码分析(续) 第2章 古典密码技术 解:将加密变换记为Ek,解密变换记为Dk,密文中共有168个字母。 2.4.1 单表替代密码分析(续) 解:将加密变换记为Ek,解密变换记为Dk,密文中共有168个字母。 第一步:统计密文中各个字母的出现次数和频率,如表2.5所示。 表2.5 例2.9中各个密文字母的出现次数和频率
2.4.1 单表替代密码分析(续) 第2章 古典密码技术 并假定它们是英语言中出现频率较高的字母及字母组合对应的密文,逐步推测 2.4.1 单表替代密码分析(续) 第二步:从出现频率最高的几个字母及双字母组合、三字母组合开始, 并假定它们是英语言中出现频率较高的字母及字母组合对应的密文,逐步推测 各密文字母对应的明文字母。 从表2.5可以看出,密文字母Z出现的次数高于任何其他密文字母,出现 频率约为0.12。因此,可以猜测: ,除Z外,出现至少10次的密文字母 为C,D,F,J,M,R,Y,它们的出现频率约在0.06~0.095之间。因此,可以 猜测密文字母{C,D,F,J,M,R,Y}可能对应于明文字母集合{t,a,o,i, n,s,h,r} 中的字母,但不能肯定是哪一个。 因为已经假设密文Z解密成e,现在考虑密文中形如-Z和Z-的双字母的出 现情况,Z的双字母情况如表2.6所示。
2.4.1 单表替代密码分析(续) 第2章 古典密码技术 FZ,ZR,ZV,ZC,ZD和ZJ出现2次。 2.4.1 单表替代密码分析(续) 表2.6 例2.9密文中包含字母Z的双字母出现次数 从表2.6可以发现,DZ和ZW出现4次;NZ和ZU出现3次;RZ,HZ,XZ, FZ,ZR,ZV,ZC,ZD和ZJ出现2次。 由于ZW出现4次而WZ一次也为出现,同时W出现的频率为0.048,故可 猜测
密文会注意到密文开始部分出现的ZRW和RZW,并且在后 面还出现了RW,因为R在密文中频繁出现,而nd是一个 第2章 古典密码技术 2.4.1 单表替代密码分析(续) 又因为DZ出现4次,ZD出现2次,故可猜测 但具体是哪一个还不太清楚。 在 和 的假设前提下,继续观察 密文会注意到密文开始部分出现的ZRW和RZW,并且在后 面还出现了RW,因为R在密文中频繁出现,而nd是一个 明文中常见的双字母组,因此可以猜测 到目前为止,已经得到了3个密文字母可能对应的 明文字母,下面列出明文与密文的部分对应关系:
第2章 古典密码技术 2.4.1 单表替代密码分析(续)
2.4.1 单表替代密码分析(续) 第2章 古典密码技术 由于NZ是密文中出现较多的双字母组,而ZN不出现,所以可以猜测 2.4.1 单表替代密码分析(续) 由于NZ是密文中出现较多的双字母组,而ZN不出现,所以可以猜测 。如果这个猜测是正确的,则根据明文片段ne-ndhe又可以猜 测 。结合这个假设,明文与密文的部分对应关系进一步又有:
分析,已密文段RNM对应的明文为nh-,这说明h-可能 是一个明文单词的首字母,所以M可能代表明文中的一 第2章 古典密码技术 2.4.1 单表替代密码分析(续) 现在再考虑出现次数排在第二的密文字母M,由前面 分析,已密文段RNM对应的明文为nh-,这说明h-可能 是一个明文单词的首字母,所以M可能代表明文中的一 个元音字母。因为前面猜测已经使用了 和 所以猜测 。因为明文双字母ai比ao的出现次 数更多,所以可以先猜测 ,这样明文与密 文的部分对应关系进一步又有:
第2章 古典密码技术 2.4.1 单表替代密码分析(续)
下面再来确定明文o对应的密文。因为o是一个常见的明文 字母,所以可以猜测相应的密文字母是D、F、J、Y中的一个。 第2章 古典密码技术 2.4.1 单表替代密码分析(续) 下面再来确定明文o对应的密文。因为o是一个常见的明文 字母,所以可以猜测相应的密文字母是D、F、J、Y中的一个。 Y的可能性最大,否则由密文片段CFM或CJM将得到长串的元音 字母aoi,这在英文中是不太可能的。因此,可以猜测 剩下密文字母中三个出现次数较高的字母是D、F、J,可以 猜测它们 ,密文中三字母NMD出现了两 次,故可猜测 ,这样,密文NMD对应的明文三字母组 为his,这与前面假设 是一致的。 对于密文片段HNCMF,可猜测它对应的明文可能是chair, 由此又有 , 。这样,通过排除法有 。
第2章 古典密码技术 2.4.1 单表替代密码分析(续)
确定其余密文字母和明文字母的对应关系,最后,将得 到的明文加上标点符号,得到完整的明文如下: 第2章 古典密码技术 2.4.1 单表替代密码分析(续) 第三步:利用与上述分析类似的方法,可以很容易地 确定其余密文字母和明文字母的对应关系,最后,将得 到的明文加上标点符号,得到完整的明文如下: Our friend from Paris examined his empty glass with surprise,as if evaporation had taken place while he wasn’t looking.I poured some more wine and he settled back in his chair, face tilted up towards the sun. 以上讨论的是破解一般单表替代密码的统计分析方法, 如果已知所用的密码体制(例如,对于位移密码、加法密 码、乘法密码和仿射密码等),则相内的分析工作会更简 单一些。
从该例子可以看出,破译单表替代密码的大致过程 是: 首先,统计密文的各种统计特征,如果密文量比较 多,则完成这步后便可确定出大部分密文字母; 第2章 古典密码技术 2.4.1 单表替代密码分析(续) 从该例子可以看出,破译单表替代密码的大致过程 是: 首先,统计密文的各种统计特征,如果密文量比较 多,则完成这步后便可确定出大部分密文字母; 然后,分析双字母、三字母密文组,以区分元音和 辅音字母; 最后,分析字母较多的密文,在这一过程中大胆使 用猜测的方法,如果猜对一个或几个词,就会大大加快 破译过程。
2.4.2 多表替代密码分析 Kasiski测试 多表替代密码从一定程度上隐藏了明文消息的一些统计特征,破译相对较为困难; 第2章 古典密码技术 2.4.2 多表替代密码分析 多表替代密码从一定程度上隐藏了明文消息的一些统计特征,破译相对较为困难; 在多表替代密码的分析中,首先要确定密钥的长度,也就是要确定所使用的加密表的个数,然后再分析确定具体的密钥; 确定密钥长度的常用方法两种,即Kasiski测试法(Kasiski test)和重合指数法(index of coincidence)。 下面以维吉尼亚密码为例来说明多表替代密码的分析方法。 Kasiski测试 Kasiski测试的基本思想是: 用给定的n个字母表周期性地对明文字母加密,则当两个相同的明文段在明文序列中间隔的字母数为n的整数倍时,将加密成相同的密文段; 如果有两个相同的密文段,对应的明文段不一定相同,但相同的可能性大。将密文中相同的字母组找出来,并对其相同字母组的距离综合分析,找出它们相同字母组距离的最大公因子,就有可能提取出密钥的长度n。
出现这种情况反映了如下事实:序列est位于密钥长度(或周期)的整 第2章 古典密码技术 2.4.2 多表替代密码分析(续) 考虑下面一个维吉尼亚密码的简单例子: 明文:requests additional test 密钥:T E L E X T E L E X T E L E X T E L E X T E 密文:C A V K T B L T E U Q W S W J G E A L T B L 明文包含字母序列est两次,而这两次又碰巧被同样的密钥片段加密, 因而对应的密文都是TBL。 出现这种情况反映了如下事实:序列est位于密钥长度(或周期)的整 倍数处。显然,相同字母组的距离反映了密钥长度n的相关信息。 Kasiski的测试过程如下:搜索长度至少为2的相邻的一对对相同的密 文段,记下它们之间的距离。而密钥长度n可能就是这些距离的最大公因 子。
第2章 古典密码技术 2.4.2 多表替代密码分析(续) 表2.7 重复字母组及距离示例
2.4.2 多表替代密码分析(续) 2. 重合指数法 如果考虑来自26个字母表的完全随机文本,则每个字母都以相同的 第2章 古典密码技术 2.4.2 多表替代密码分析(续) 2. 重合指数法 如果考虑来自26个字母表的完全随机文本,则每个字母都以相同的 概率1/26出现,假定另一个随机文本放在第一个的下面,在上下位置出 现相同字母a的概率为 ,在两个随机文本的上下位置找到任意两个 相同字母总的概率为 。但实际上,由于英文字母出 现的概率是不同的(见表2.4),设字母a,b,c,…,z出现的概率分别 为 这样找到两个相同字母的概率为 。这 个值比随机文本的概率大得多,称为重合指数。 定义 设一个语言由n个字母构成,每个字母出现的概率 , 则重合指数是指其中两个随机元素相同的概率,记为 这样对于一个完全随机的文本CI=0.0385,与一个有意义的英语文本 CI=0.065,差异是比较明显的。
2.4.2 多表替代密码分析(续) 实际分析中,重合指数的利用体现在几个方面。 第2章 古典密码技术 2.4.2 多表替代密码分析(续) 实际分析中,重合指数的利用体现在几个方面。 如果密文的重合指数较低,那么就可能是多表替代密码。维吉尼亚密码将密文分行,每行是单表替代密码。 在单表替代时,明文的字母被其它字母代替,但不影响文本的统计属性,即加密后密文的重合指数仍不变,CI(明文)= CI(密文),由此可以判断文本是用单表还是用多表替代加密的。 如果密钥长度(即密文分行的列数)正确,同一行密文有相同字母的概率接近0.065;如果密钥长度不对,则概率将大大小于0.065,显得更随机,由此得到密钥长度(可与Kasiski测试的结果对比)。 重合指数的估算能用于分析两个不同密文,比如接收到两段文本C1,C2,如果它们用同样的方式加密,则 。 实际密文长度有限,从密文中计算的重合指数值总是不同于理论值, 所以通常用CI的估计值CI’,以字母出现的频度近似表示概率,则
2.4.2 多表替代密码分析(续) 其中L代表密文长, 是密文出现的频度(数目)。可以证明, CI’是CI的无偏估计值。 第2章 古典密码技术 2.4.2 多表替代密码分析(续) 其中L代表密文长, 是密文出现的频度(数目)。可以证明, CI’是CI的无偏估计值。 在古典密码的分析中,除了Kasiski测试和使用重合指数确定密钥 长度外,测试可用来确定是否采用了相同或不同的替代,也能用来简化 多表替代为单表替代。 测试(-test)提供了一个比较两个频率分布的直接方式。计 算下面的和: 其中, 表示符号在第一个分布发生的概率, 表示符号在第二个分 布中发生的概率。 当两个频率分布类似时,的值相对较高。假定收到两个密文 , , 它们都是位移密码加密的结果。设第一个替代表是通过源字母表移动 个字母得到,第二个替代表是源字母表移动 个字母得到的。如果 ,说明 , 是由同样位移替代密码加密的,这时值较大,因为 的统 计特性与 类似。反之, ,值将要小一些。
2.4.2 多表替代密码分析(续) 除了用来确定是否采用相同或不同的替代外,也能用来简化多表 替代为单表替代。 第2章 古典密码技术 2.4.2 多表替代密码分析(续) 除了用来确定是否采用相同或不同的替代外,也能用来简化多表 替代为单表替代。 【例2.10】一个密钥为RADIO,用Vigenere密码加密的明密文如下: 明文:execute these commands 密钥:R A D I O R A D I O R A D I O R A D I O 密文:V X H K I K E W P S J E F W A D A Q L G 为了还原密文到明文,用下面的矩阵表示(列数等于密钥长度): R A D I O V X H K I K E W P S J E F W A D A Q L G
2.4.2 多表替代密码分析(续) V O V T L K V K Y V J V T F D D R E U J 第2章 古典密码技术 2.4.2 多表替代密码分析(续) 可以看出,矩阵的第一行为密钥,第一列R下的密文字母通过“减”R 解密。第二列A下的密文字母通过“减”A解密,等等。密文的第一列和第 二列是两个不同的移位密码加密的结果。 考虑密钥中每个字母和第一个字母R在字母表中的相对距离如下: 现在,把第二列所有字母提前9个位置,第三列所有字母提前12个位 置,其它类似,可获得下面的文本块: V O V T L K V K Y V J V T F D D R E U J
加密的密文,即把基于多表替代密码的解密问题转化 为基于单表替代密码的解密问题。 尽管密码分析者可能没有密钥字母的相对距离这 第2章 古典密码技术 2.4.2 多表替代密码分析(续) 这样,用密钥RADIO加密的文字,就转化为只用R 加密的密文,即把基于多表替代密码的解密问题转化 为基于单表替代密码的解密问题。 尽管密码分析者可能没有密钥字母的相对距离这 个信息,然而,Chi测试提供了发现这个距离的线索。 在该例中,密文列被移位使得它们都用同一个替代 密码解密。如果两列是用同样单表替代加密的,则两 列的值将相同,而且是最大值。分析者通过尝试距离 值,直到得到这一列和第一列的最大值出现,然后就 可用和第一列同样的方式解密。
2.4.2 多表替代密码分析(续) 【例2.11】在很短的时间内收到两段密文: 密文C1: 第2章 古典密码技术 2.4.2 多表替代密码分析(续) 【例2.11】在很短的时间内收到两段密文: 密文C1: K O O M M A C O M O Q E G L X X M Q C C K U E Y F C U R Y L Y L I G Z S X C X V B C K M Y O P N P O G D G I A Z T X D D I A K N V O M X H I E M R D E Z V X B M Z R N L Z A Y Q I Q X G K K K P N E V H O V V B K K T C S S E P K G D H X Y V J M R D K B C J U E F M A K N T D R X B I E M R D P R R J B X F Q N E M X D R L B C J H P Z T V V I X Y E T N I I A W D R G N O M R Z R R E I K I O X R U S X C R E T V 密文C2: Z A O Z Y G Y U K N D W P I O U O RI Y R H H B Z X R C E A Y V X U V T X K C M A X S T X S E P B R X C S L R U K V B X T G Z U G G D W H X M X C S B I K T N S L R J Z H B X M S P U N G Z R G K U D X N A U F C M R Z X J R Y W Y M I
加密的。这个猜想可以通过计算两个文本的CI’值来证实( 计算过程从略): 这两个值近似相等,所以可假定这两段文本是用同样方 式加密的。 第2章 古典密码技术 2.4.2 多表替代密码分析(续) 由于这两段密文相隔时间很短,很有可能是用同样方式 加密的。这个猜想可以通过计算两个文本的CI’值来证实( 计算过程从略): 这两个值近似相等,所以可假定这两段文本是用同样方 式加密的。 考虑到CI’值处在随机文本和有意义的英语文本的CI’值之 间,因此可猜想是用多表替代加密的。 采用Kasiski测试,首先找到重复的字母序列及它们之间 的距离;分解这些距离值为素因子的乘积,数字7出现最频 繁,周期可能为7,现在把密文写成是7列的矩阵形式(见表 2.8)。
第2章 古典密码技术 2.4.2 多表替代密码分析(续) 表2.8 密文的矩阵表示
2.4.2 多表替代密码分析(续) 然后计算每列的重合指数,有: 第2章 古典密码技术 2.4.2 多表替代密码分析(续) 然后计算每列的重合指数,有: CI’(列1)=0.0522 CI’(列2)=0.0801 CI’(列3)=0.0734 CI’(列4)=0.0744 CI’(列5)=0.0705 CI’(列6)=0.0717 CI’(列7)=0.0606 但观察每一列的重合指数,似乎每一列都是用一个单表替代密码加 密的。现在试图将多表替代的密文转化为某个单表替代加密的密文。首 先,重复移动各列字母,移动的距离分别是1~25,并分别计算相对于 第一列的值,并把最大值用下划线标识出来。 列1和2:0.0388 0.0487 0.0317 0.0326 0.0274 0.0340 0.0421 0.0402 0.0321 0.0350 0.0425 0.0411 0.0662 0.0350 0.0317 0.0359 0.0491 0.0331 0.0236 0.0378 0.0345 0.0288 0.0567 0.0525 0.0302
第2章 古典密码技术 2.4.2 多表替代密码分析(续) 列1和3:0.0378 0.0274 0.0331 0.0331 0.0250 0.0581 0.0491 0.0458 0.0284 0.0383 0.0529 0.0491 0.0307 0.0250 0.0312 0.0444 0.0392 0.0359 0.0392 0.0354 0.0421 0.0657 0.0416 0.0269 0.0232 列1和4:0.0317 0.0369 0.0364 0.0312 0.0454 0.0383 0.0558 0.0302 0.0388 0.0345 0.0520 0.0250 0.0359 0.0336 0.0477 0.0260 0.0435 0.0520 0.0406 0.0369 0.0468 0.0468 0.0326 0.0307 0.0326 列1和5:0.0430 0.0586 0.0279 0.0274 0.0331 0.0473 0.0298 0.0359 0.0336 0.0354 0.0302 0.0491 0.0548 0.0265 0.0359 0.0406 0.0506 0.0312 0.0345 0.0336 0.0440 0.0354 0.0506 0.0411 0.0321
2.4.2 多表替代密码分析(续) 列2:13 列3:22 列4:7 列5:2 列6:19 列7:15 第2章 古典密码技术 2.4.2 多表替代密码分析(续) 列1和6:0.0382 0.0271 0.0502 0.0449 0.0295 0.0319 0.0440 0.0522 0.0372 0.0372 0.0343 0.0396 0.0391 0.0391 0.0280 0.0324 0.0454 0.0430 0.0614 0.0362 0.0324 0.0343 0.0498 0.0338 0.0275 列1和7:0.0285 0.0444 0.0362 0.0382 0.0357 0.0353 0.0343 0.0415 0.0377 0.0483 0.0333 0.0396 0.0425 0.0300 0.0565 0.0348 0.0329 0.0348 0.0454 0.0304 0.0377 0.0324 0.0449 0.0295 0.0444 根据以上结果推知,各列相对于第一列的距离分别是: 列2:13 列3:22 列4:7 列5:2 列6:19 列7:15
2.4.2 多表替代密码分析(续) 用这些值来转化密文C1,C2到下列文本: 第2章 古典密码技术 2.4.2 多表替代密码分析(续) 用这些值来转化密文C1,C2到下列文本: K B K T O T R O Z K X G Z A X K I X E V Z U R U M E N G Y Y U S K Z O S K Y G X U R K Z U V R G E O T Z N K T O T K Z K K T Z N I K T Z A X E Z N K G S K X O I G T G A Z N U X K J M G X G R R G T V U K C X U Z K G Y Z U X E K T Z O Z R K J Z N K M U R J H A M O T Z N G Z Y Z U X C Z N K R K G J O T M S G T M K Z Y N U R J U L G V O K I K U L V G X I N S K T Z C O Z N G T K T I X E V Z K J S K Y Y G M K Z N K G A Z N U X J K Y I X O H K Y K R G H U X G Z K R E N U C Z N K R K G J O T M S G T Z G I Q R K Y Z N K J K I X E V Z O U T C K Y A M M K Y Z Z U X K G J Z N K Y Z U X E O L E U A C G T Z Z U Q T U C N U C Z N G Z C G Y J U T K
2.4.3 对Hill密码的已知明文分析 Hill密码能较好地抵抗字母频率的统计分析,采用惟密文攻击是较 第2章 古典密码技术 2.4.3 对Hill密码的已知明文分析 Hill密码能较好地抵抗字母频率的统计分析,采用惟密文攻击是较 难攻破,但采用已知明文攻击就容易破译。 假定密码分析者知道加密分组长度n值,且有至少N(N>n)个不同 的明文/密文分组对,M1/ C1, M 2/ C 2,……, M N/ C N 满足: C 1= K M1(mod26), C 2= K M1(mod26),...,C N = K M N(mod26) 记为:(C1 C2 C3 … C N )=(M1 M2 M3 … M N )·K (mod26) 其中M i、C i(i=1,2,…,N)均为n维列向量,K为未知密钥方阵。 利用n个已知的明文/密文分组对定义两个n×n方阵: M =(M1 M2 M3 … M n ) , C = (C1 C2 C3 … C n ) 有矩阵方程:C = K M(mod26) 若提供的矩阵M是可逆的,则能计算出K = C M-1(mod26),从而破译该密码体制。 若方阵M关于模26不可逆,攻击者可通过尝试其它明文/密文对来产 生新的方阵M ,直到找到一个可逆的明文矩阵M就可破译Hill密码。
2.4.3 对Hill密码的已知明文分析(续) 【例2.12】假设明文worker利用n=2的Hill密码加密,得到密文qihryb, 第2章 古典密码技术 2.4.3 对Hill密码的已知明文分析(续) 【例2.12】假设明文worker利用n=2的Hill密码加密,得到密文qihryb, 求密钥K。 解:将明文、密文划分为三组:(w,o )、(r,k )、(e,r ) 和 (q,I ) 、(h,r ) 、(y,b ),即(22,14)、(17,10 ) 、(4,17 )和( 16,8)、(7,17 ) 、(24,1 ),分别满足: 利用前两个明文-密文对,构造矩阵方程: 计算明文方阵行列式, 由于(-18,26)≠1,即该矩阵没有逆元,于是考虑第二、第三组明 文-密文对,得到矩阵方程:
显然,通过对比第一个明文—密文对很容易验证该密钥。 如果密码分析者不知道加密分组长度l的值,那么可以通 过逐一尝试不同的l值来得到密钥。 第2章 古典密码技术 2.4.3 对Hill密码的已知明文分析(续) ∵ ∴ 显然,通过对比第一个明文—密文对很容易验证该密钥。 如果密码分析者不知道加密分组长度l的值,那么可以通 过逐一尝试不同的l值来得到密钥。 Hill密码体制的重要性在于它无可辩驳地表明数学方 法在密码学中的地位是不容置疑的。
本章小结 本章主要介绍了古典密码技术,包括替代密码,置 换密码以及转轮机密码,重点阐述了古典密码的统计分 析,包括: 单表替代密码分析 第2章 古典密码技术 本章小结 本章主要介绍了古典密码技术,包括替代密码,置 换密码以及转轮机密码,重点阐述了古典密码的统计分 析,包括: 单表替代密码分析 多表替代密码分析 对Hill密码的已知明文分析密码系统的安全性