古典密码学--移位密码

首先了解密码学的基本目的是使得两个在不安全的信道中通信的人,通常称为Alice和Bob,以一种使他们的敌手Oscar不能明白和理解通信内容的方式进行通信。
定义 一个密码体制是满足以下条件的五元组(P,C,K,E,D):

1.P代表所有可能的明文组成的有限集。
2.C代表所有可能的密文组成的有限集。
3.K代表密钥空间,由所有可能的秘钥组成的有限集。
4.对于每一个k∈K,都存在一个加密规则ek∈E和相应的解密规则dk∈D。并且对每对ek:P→C,dk:C→P,满足条件:对每一个明文x∈P,均有dk(ek(x))=x。

移位密码(Shift Cipher)
其基础是数论中的模运算。这里给出模运算的定义:

假设a和b均为整数,m是一正整数。若m整除b-a,则可将其表示为a≡b(mod m)。式a≡b(mod m)读作“a与b模m同余”,正整数m称为模数。
我们给出两个例子,计算101mod7,101=7x14+3,因为0<=3<=6,故101mod7=3。再计算(-101)mod7,因为-101=7x(-15)+4,故(-101)mod7=4。

注:许多计算机编程语言定义a mod m的取值在-m+1到m-1之间,并要求取值和a的正负号相同。在此定义下,(-101)mod7应为-3。但在这里,为了方便起见,我们要求a mod m恒为一非负值。

现在我们定义模m上的算术运算:令Zm表示集合{0,1,…,m-1},在其上定义两个运算加法(+)和乘法(x),其运算类似于普通的实数域上的加法和乘法,所不同的只是所得的值是取模以后的余数。
在此不加证明的列出这些法则:
1.对加法运算封闭:对任意的a,b∈Zm,有a+b∈Zm
2.加法运算满足交换律:对任意的a,b∈Zm,有a+b=b+a。
3.加法运算满足结合律:对任意的a,b,c∈Zm,有(a+b)+c=a+(b+c)。
4.0是加法单位元:对于任意的a∈Zm,有a+0=0+a=a。
5.任何元素存在加法逆元:a的加法逆元为m-a,因为a+(m-a)=(m-a)+a=0。
6.对乘法运算封闭:对任意的a,b∈Zm,有ab∈Zm
7.乘法运算满足交换律:对任意的a,b∈Zm,ab=ba。
8.乘法运算满足结合律:对任意的a,b,c∈Zm,有(ab)c=a(bc)。
9.1是乘法单位元:对任意的a∈Zm,有a×1=1×a=a。
10.乘法和加法之间存在分配律:对任意的a,b,c∈Zm,有(a+b)c=(ac)+(bc)。

密码体制-移位密码

令P=C=K=Z26,对0<=K<=25,任意的x,y∈Zm,定义

ek(x)=(x+K)mod 26

dk(y)=(y-K)mod26

注:若取K=3,则此密码体制通常称作凯撒密码(Caesar Cipher),因为他首先被儒勒.凯撒所使用。
使用移位密码可以用来加密普通的英文句子,但是必须建立英文字母和mod26剩余之间的意义对应关系:如A<–>0,B<–>1,…,Z<–>25。列表如下:

英文字母 对应剩余值
A 0
B 1
C 2
D 3
E 4
F 5
G 6
H 7
I 8
J 9
K 10
L 11
M 12
N 13
O 14
P 15
Q 16
R 17
S 18
T 19
U 20
V 21
W 22
X 23
Y 24
Z 25

下面给出一个实例:
假设以为密码的秘钥为K=11,明文为:wewillmeetatmidnight
首先将明文中字母对应于其相应的整数,得到如下字符串:
22、4、22/8、11、11、12、4、4、19、0、19、12、8、3、13、8、6、7、19
然后将每个数都与11相加,再对其取模26运算,可得
7、15、7、19、22、22、23、15、15、4、11、4、23、19、14、24、19、17、18、4
最后转为相应的字符串,即得密文HPHTWWPPELEXTOYTRSE,要解密只需执行相应的逆过程即可。

在已知密文y的情况下,试图得到秘钥K的过程,我们称其为密码分析。

显然,移位密码(mod26)是不安全的,可以通过密钥穷举法来破译,因为密钥空间小,只有26中可能的情况,所以很容易破解出来。
这也就表明,一个密码体制安全的必要条件是能抵抗穷尽密钥搜索攻击,普通的方法是使密钥空间必须足够大。但是,很大的密钥空间并不是保证密码体制安全的充分条件。

你可能感兴趣的:(密码学)