密码学(3)

87 阅读6分钟

单表代替密码的分析

语言的统计特性

研究保密性和密码破译方法的实质:研究明文信息在密文信息中有多少程度的泄露。

假设讨论的语言是某种语言的文字:

设字母表为X={x0,x1,……,xm-1}

为了方便起见,字母表也用0~(m-1)之间的数字i来表示,此时字母表为Z={0,1,……,m-1}

语言的一阶统计特性

语言的一阶统计特性:

称P={p0,p1,……,pm-1}为语言的一阶统计特性。其中,pi(0≤i≤m-1)代表字母i在该语言中出现的概率。

英文的一阶统计特性:

统计单个英文字母在一段足够长的英文课文中出现的概率。

语言的一阶特性至少在以下两个方面没有反映出英文的一阶统计特性

(只反映了单字母的统计特性)

1.双字母出现的概率

例如QE出现的概率。按照一阶特性计算QE出现的概率,p(QE)=p(Q)×p(E),但是在英文课文中QE根本不会出现。

2.四字母SEND和SEDN在一阶统计特性下出现的概率是相等的,不符合实际。

语言的二阶统计特性

双字母出现的频数表示为:N(i,j) i=j=0,1,2,(m-1)

双字母出现的概率p(xi,yi)近似的可以表示为p(xi,xj)=N(i,j)/(N-1), 可以看到英文双字母的概率最大的30对字母按概率大小排列。

语言的三阶统计特性

三字母出现的概率可以近似的表示为p(xi,xj,xk)=N(i,j,k)/(N-2).

注意

1.在利用统计分析法时,密文量要足够大,否则,会加大密码攻击的难度。

2.在实际的通信中除了字母外还有数字,标点符号等,他们的统计特性也要考虑进去。

3.另外数据格式,报头信息对于密码体制的安全有重要意义,在密码分析中起着非常重要的作用。

英文的其他统计特性

在分析或攻击一份密报时利用英文的下述统计特性很有帮助。

1.冠词the对英文的统计特性影响比较大,它使t,h,th,he和the在单字母、双字母和三字母的统计中都为高概率的元素。

2.英文中大约有一半的词以e,s,d和t结尾。

3.文中大约有一半的词以t,a,s和w开头。

猜字法(攻击单表代替密码的方法)

主要根据是每个密文字母在密文中出现的概率和自然语言的文字结合规律。

攻击单表代替密码的步骤如下:

1.做出密文中每个字母出现的频次统计表,算出每个每个密文字母出现的概率,并与明文字母集的概率分布进行对照,区分哪些是高概率字母,哪些是低概率字母。

2.用以上得到的信息和自然语言的文字结合规律,即自然语言的双字母和三字母的统计特性,推断出一些可能的明密对应关系。

3.利用自然语言的文字结合规律验证上面推出的明密对应关系,同时还可能推断出一些新的明密对应关系。

4.利用模式字或模式短语。

自然语言的文字结合规律主要有:

1.一些字母在词头频繁出现,另一些字母在词尾频繁出现。

2.辅音和元音的结合规律。这主要靠研究双字母、三字母和四字母组合。这样的组合中一般比含有一个元音。根据这些组合很可能确定出表示元音的那些密文字母。

具体步骤:

第一步:做出密文字母出现频次分布表。

第二步:确定加密密表类型。由密文字母出现的频次不难看出,此段密文是单表代替加密的可能性很大。

第三步:根据密文字母的频次统计,确定某些密文字母对应的明文字母可能属于表中的哪个类型或哪几个字母组成的集合。

第四步:利用自然语言的文字结合规律进行猜测。(在可能的范围内根据经验进行猜测)

多表代替密码

多表代替密码的定义

单表代替密码的缺陷:单表代替密码之所以容易被攻击,是因为每个密文字母都是用同一个代替密表加密而成的,相同的密文字母对应着相同的明文字母,从而每个密文字母出现的概率、重复字模式、字母的结合方式等统计特性、除了字母的名称改变以外,都没有发生改变。

令明文字母表为Zq,k=(σ1,σ2,……)为代替表序列,明文n=m1,m2,……,则相应的密文为:c=Ek(m)=σ1(m1),σ2(m2),……

若k是非周期的无限序列,则相应的密码为非周期多表代替密码。

对每个明文字母都采用不同的代替表进行加密,称之为一次一密密码。

为了减少密钥量,在实际运用中多采用周期多表代替密码即代替表个数有限且重复的使用,此时猜题表序列k=(σ1,σ2,……,σd,σ1,σ2,……,σd,σ1,σ2,……) 相应于明文m的密文 c=σ1(m1)σ2(m2)……σd(md)σ1(md+1)σd(m2d)……

当d=1时退化为单表代替密码。

常见的多表代替密码————维吉尼亚密码

加密

方式一:数学公式计算

1.设明文P=p1p2…pn,密钥k=k1k2…kn,密文C=c1c2…cn

2.加密:c=pi+ki(mod 26), i=1,2,…,n. 说明:若明文长度大于n,则k重复使用。

方式二:查表法(密钥k,明文P)————密文C

0E9D3EA3D471D1AD62012EDEFCEBE5B9.jpg

解密

方法一:数学公式计算

pi=ci-ki(mod 26), i=1,2,…,n;

方法二:查表

密钥k行里密文C所在列的顶部字母————明文。

维吉尼亚密码的安全性

强度在于:每个明文字母对应着多个密文字母,明、密文字母不是一一对应关系,字母的统计规律进一步降低,密钥与明文最好一样长,维吉尼亚密码的代换表中的每一行就是一凯撒密码。