文档库

最新最全的文档下载
当前位置:文档库 > 古典密码技术

古典密码技术

替代密码(代换密码)

替代密码就是明文中每一个字符被替换成密文中的另外一个字符。接收者对密文进行逆替换就恢复出明文来。替代法加密是用另一个字母表中的字母替代明文中的字母。

加密算法Ek(m)是一个代换函数,将每一个m∈M代换为相应的c ∈C,代换函数的参数是秘钥k;解密算法Dk(c)只是逆代换。

在替代法加密体制中,使用了密钥字母表。它可以由单个字母表构成,也可以由多个字母表构成。

如果是由一个字母表构成的替代密码,称为单表密码。其替代过程是在明文和密码字符之间进行一对一的映射。

如果是由多个字母表构成的替代密码,称为多表密码。

1.单表替代密码

单表替代密码的一种典型方法是凯撒(Caesar)密码,又叫循环移位密码。它的加密方法就是把明文中所有字母都用它右边的第k个字母替代,并认为Z后边又是A。这种映射关系表示为如下函数:F(a)=(a+k) mod n

其中:a表示明文字母;n为字符集中字母个数;k为密钥。

凯撒(Caesar)密码k=3.

映射表中,明文字母中在字母表中的相应位置数为C,(如A=1,B=2,…Y=25,Z=0)形式如下:

设k=3;对于明文P=COMPUTE SYSTEMS则

f(C)=(3+3)mod 26=6=F

f(O)=(15+3)mod 26=18=R

f(M)=(13+3)mod 26=16=P

f(S)=(19+3)mod 26=22=V

密文C= Ek(P)=FRPSXRWHUVBVWHPV。

除了凯撒密码,在其他的单表替代法中,有的字母表被打乱。比如,在字母表中首先排列出密钥中出现的字母,然后在密钥后面填上剩余的字母。如密钥是HOW,那么新的字母表就是:HOWABCDEFGIJKLMNPQRSTUVXYZ

这个密钥很短,多数明文字母离开其密文等价字母,仅有一个或几个位置。若用长的密钥字,则距离变大,因而便难于判断是何文字密钥。

2.多表替代密码

周期替代密码,又称为维吉尼亚(Vigenere)密码。

循环的使用有限个字母来实现替代的一种方法。若明文信息mlm2m3…mn,采用n个字母(n个字母为B1,B2,…Bn)替代法,那么,ml将根据字母Bn的特征来替代,mn+l 又将根据B1的特征来替代,mn+2又将根据B2的特征来替代……,如此循环。可见B1,B2,…Bn就是加密的密钥。

以字母表移位为基础把26个英文字母进行循环移位,排列在一起,形成26×26的方阵。该方阵被称为维吉尼亚表。采用的算法为:f(a)=(a+Bi)mod n (i=(1,2,…,n))例如:以YOUR为密钥,加密明码文HOW AREYOU。

P =HOW AREYOU

K =YOURYOURY

Ek(P) =FCQRPSSFS

H=7,Y=24, 31 MOD 26=5

查佛吉尼亚表,其加密过程就是以明文字母选择列,以密钥字母选择行,两者的交点就

是加密生成的密码文字母。解密时,以密钥字母选择行,从中找到密文字母,密文字母所在列的列名即为明文字母。

换位密码

换位密码是采用移位法进行加密的。它把明文中的字母重新排列,本身不变,但位置变了。如:把明文中的字母的顺序倒过来写,然后以固定长度的字母组发送或记录。

明文:computer systems

密文:sm etsy sretupmoc

(l)列换位法:将明文字符分割成为五个一列的分组并按一组后面跟着另一组的形式排好。如明文是:WHAT YOU CAN LEARN FROM THIS BOOK

分组排列为:

密文则以下面的形式读出:WOFHOHURIKACOSXTAMBXYNTOX

这里的密钥是数字5。

(2)矩阵换位法:这种加密是把明文中的字母按给定的顺序安排在一个矩阵中,然后用另一种顺序选出矩阵的字母来产生密文。如将明文ENGINEERING按行排在3*4矩阵中,如下所示:

古典密码技术

现在根据给定的置换,按第2列,第4列,第1列,第3列的次序排列,就得得到密文:NIEGERNEN IG

在这个加密方案中,密钥就是矩阵的行数m和列数n,即m*n=3*4,以及给定的置换矩阵。也就是:k=(m*n,f)

古典密码技术

古典密码技术

其解密过程是将密文根据3*4矩阵,按行、列的顺序写出,再根据给定置换产生新的矩阵,恢复明文为:ENGINEERING

古典密码技术

4 简单异或

异或(XOR)在C语言中是“^”操作,或者用数学表达式⊕表示。它是对位的标准操作,有以下一些运算:0⊕0=0 0⊕1=1 1⊕0=1 1⊕1=0

也要注意:a⊕a=0 a⊕b⊕b=a