密码学(4)

523 阅读7分钟

常见的多表代替密码————博福特密码

博福特密码是按mod q减法运算的一种周期代替密码

即ci+td=σi(mi+td)≡(ki-mi+td)(mod q)

所以,它和维吉尼亚密码类似,以ki为密钥的代替表是密文字母表为英文字母表逆序排列进行循环右移ki+1次形成的。

博福特密码的解密变换为mi+td=σi(mi+td)≡(ki-ci+td)(mod q),因此,博福特密码的解密变换与加密变换相同。

1.按博福特密码,以密钥ki加密相当于按下式的维吉尼亚密表加密:

ci+td=[(q-1)-mi+kd+(ki+1)] (mod q)

2.若按下式加密:

ci+td≡(mi+td-ki)(mod q)

就得到变异的博福特密码,相应代替表是将明文字母表循环右移ki次而成。

3.所以维吉尼亚密码和变异的博福特密码互为逆变换,若一个是加密运算,则另一个就是解密运算。 1.png

常见的多表代替密码————滚动密钥密码

1.对于周期多表代替密码,保密性将随周期d加大而增加。

2.当d的长度和明文一样长时就变成了滚动密钥密码。

3.如果其中所采用的密钥不重复就是依次一密体制。

4.一般,密钥可取一本书或者一篇报告作为密钥源,可由书名、章节号及标题来确定密钥其实位置。

常见的多表代替密码————弗纳姆密码

1.当字母表字母数q=2时的滚动密钥密码就变成弗纳姆密码。它将英文字母编成五单元波多电码。

2.选择随机选择二元数字序列作为密钥,以k=k1,k2,…,ki,…(ki∈F2)表示。明文字母变成二元向量后也可以表示成二元序列m=m1,m2,…,mi,…(mi∈F2),k和m都分别记录在穿孔纸上。 2.png

常见的多表代替密码————一次一密

滚动密钥中,如果所采用的密钥不重复就是一次一密体制。

1.理论上不可破:这种密码对于明文的特点可实现完全隐蔽。

2.实际上不可行:产生大量的随机密钥堆;密钥分配与保护更难。

置换技术

置换:对明文字母的某种置换

栅栏技术:按对角线的顺序写出明文,以行的顺序读出作为密文。

易破译(矩阵排列法)

纯转换密码易识别(多次置换:多阶段加密,安全性更高)

转轮机

在现代密码之前,转轮密码是最广泛使用的复杂的密码,广泛用于第二次世界大战中。

实现了复杂多变的多表代替密码,多层加密。

转轮机有多个独立转动的圆柱体组成,每个圆柱体有26个输入、输出引脚、代替26个字母;单个圆柱体定义一个单表代换;每个圆柱体每次定义的单表代换算法不同;单个圆柱体定义了周期为26的多表代换。

隐写术

隐藏信息的存在:“藏头诗”、字符标记、用不可见的墨水、打字机的色带校正。

缺点

1.开销大:需要额外的付出来隐藏相对较少的信息。

2.一旦被发现,就会完全失去价值。

一个可选方案:先加密,然后用隐写术隐藏。

多表代替密码的分析

所谓多表代替密码,是指其密文中每个字母将根据它在明文字母序列中的位置确定采用哪个密表,这就是说,相同的明文字母也许加密成不同的密文字母,而相同的密文字母也许是不同的明文字母加密得到的。这样,明文的统计特性通过多个表的作用而被隐蔽起来。

多表代替密码至少含有两个以上不同的代替表,用密钥k=(k1,k2,……)表示。如果要加密的明文是m=(m1,m2,……),则加密mi用的密表为ki(i=1,2,……)。如果所有这些ki(i=1,2,…)两两不同,则称这个多表代替密码是一次一密体制。一次一密体制是很难实现的,实践中多数采用周期多表代替密码。 4.png

由于单表代替密码是可破译的,所以在具有一定量的明文的条件下,周期表多表代替棉麻也是可破译的,其破译方法就是将周期多表代替密码转换为单表代替密码。

但是,经过这种转换后的单表代替密码的破译比破译一般的单表代替密码要难很多。

多表代替密码的分析步骤:

1.判断加密类型是单表代替密码还是多表代替密码;

2.初步判定多表代替密码所使用的密表数;

3.确定多表代替密码所用的密表数;

4.密表匹配。

识别周期多表代替密码的参数

5.png

粗糙度:

定义它为每个密文字母出现的频率与均匀分布时每个字母出现的频率的理查的平方和,简记为M.R。

若研究的对象是英文报文,即q=26。在均匀分布下,每个英文字母出现的概率是1/26。若各密文字母出现的概率记为pi,i=0,1,2,…,25。

6.png 7.png

重合指数

1.如果没有足够数量的密文,就不可能得到密文字母出现的频率的精确值,因而也就无法确定密文的粗糙度。

2.可以通过下述方法给出它的近似估计。

确定密表数的方法

一、移位法

对密文进行移位并和原来的密文进行逐位比较以求重码数,根据重码数来确定密表数d,简称为移位法。

假如收到密文c=c1,c2,…,cn,移位法的步骤如下: 1.将密文右移一位再与c对应,即c1对应c2,c2对应,…,cn对应c1。如果ci与ci+1相同,称ci和ci+1是一对重码。计算密文c和c右移一位后的密文相应位置上的重码数R1。

2.将密文右移两位,计算密文c和c右移两位后密文对应位置上的重码数R2,如此下去,算出重码数R1,R2,……

3.根据具有较大重码数的右移位数的公因数确定密表数d。

重复字模式分析法

基本原理如下:

1.如果有某个单词或字母序列在意则明文信息中重复出现一般说来他们是用不同的密表加密的因而产生了不同的密文序列但如果明文序列的位置能使每个序列的第一个字母用相同的密钥字 加密则它可以产生相同的密文序列。

2.当收到密文后可以找到密文中重复字模式并计算它们之间的距离此距离可能是密钥字长的倍数寻求重复字模式并计算它们之间的距离的过程称为重复字模式分析法。

密表的匹配

1.确定了密表d后,可将密文写成d行,是同一行密文为同一代替表加密而成,如能确定各代替表就能恢复原明文。

2.每一行的密文字母数要足够大,至少要比密钥字长的多,否则攻击难度就很大。

3.明文的双码、三码等统计特性都很难使用,就确定各行的代替表比单表代替密码要难的多。

当单表代替密码均为加法密码时,只要找到其中一行密文的代替表,就可以将所有行的代替表确定。然而,若每行采用的是一般的单表代替密码,确定各代替表就要比加法密码困难得多。常用的方法是密表匹配,即把夺标密码加密的密文变成一个已知移位数的单表代替密码加密的密文,然后再采用代表代替密码的破译方法进行破译。