------------恢复内容开始------------
密码的发展按时间分为古典密码和现代密码,现在我们先讨论古典密码。
密码技术的功能分为两种:一种为加密解密,一种是认证。
密码学有以下基本概念:
1、被加密的原始信息称为明文
2、加密后的信息为密文
3、将明文变换为密文的过程为加密
4、将密文变换为明文的过程为解密
今天我们主要讨论两种密码:对称算法、非对称算法
一、对称密码
加解密使用同一个密钥,所以如何安全的传递密钥成了最头疼的问题。
明文和密文加密解密使用的密钥相同,在此举例S-DES密码以助于读者理解:
首先要生成两个子密钥;具体过程如下:
10位密钥 key = 01111 11101
对key做P10置换得到 11111 10011 (3,5,2,7,4,10,1,9,8,6)
记左半(高位)的为Lk=11111,右半(低位)为Rk=10011
Lk和Rk均循环左移1位,得到Lk=11111,Rk=00111
对Lk和Rk组合得到的11111 00111做P8置换选择,得到子密钥K1=0101 1111(6,3,7,4,8,5,10,9)
Lk和Rk均再次循环左移2位,得到Lk=11111,Rk=11100
对Lk和Rk组合得到的11111 11100做P8置换选择,的到子密钥K2=1111 1100(6,3,7,4,8,5,10,9)
以上,通过密钥得到了算法所需的子密钥
然后根据以下流程图对已知明文进行加密和加密
IP置换:(2,6,3,1,4,8,5,7);
SW:左、右四位交换位置;
第一次循环
记左半(高位)为Lm=0100,右半(低位)为Rm=1001
对Rm做EP扩展(4,1,2,3,2,3,4,1)置换,得Rm’=1100 0011
Rm’与子密钥K1按位异或,得Rm’=1001 1100
Rm’左半1001进入S0盒替代选择得11,右半1100进入S1盒替代选择的01,组合后得Rm’=1101
对Rm’做P4(2,4,3,1)置换,得Rm’=1101
Rm’与Lm按位异或,得Lm’=1001
Lm’与Rm(最开始的那个Rm)组合得到输出 1001(Lm’) 1001(Rm)
至此完成第一次循环
然后交换高低位,作为第二次循环的输入,即1001(Rm) 1001(Lm’)作为输入
开始第二次循环
记左半为Ln=1001,右半为Rn=1001
对Rn做EP扩展置换(4,1,2,3,2,3,4,1),得Rn’=1100 0011
Rn’与子密钥K2按位异或,得Rn’=0011 1111
Rn’左半0011进入S0盒替代选择得10,右半1111进入S1盒替代选择的11,组合后得Rn’=1011
对Rn’做P4置换(2,4,3,1),得Rn’=0111
Rn’与Ln按位异或,得Ln’=1110
Ln’与Rn(最开始的那个Rn)组合得到输出 1110(Ln’) 1001(Rn)
至此完成第二次循环
最后进行逆初始置换对上面的输出m’=1110 1001做IPI(4,1,3,5,7,2,8,6)置换得到密文m’=0111 0110
解密过程和加密基本一致,只是解密过程时先使用K2,再使用K1。
由于双方采用统一密钥规则,在传递和保持中如何保证密钥的安全,就成了头疼的问题。
二、非对称算法
加解密采用不同密钥,称为公钥和私钥,公私钥成对出现,采用公钥加密,只能用配对的私钥解密
此处列举RSA密码作为示例:
(1) 乙方生成一对公私钥,并将公钥给甲方
(2) 甲方利用乙方给的公钥将明文加密,生成密文,传输给乙方
(3) 乙方接收到密文,用配对的私钥解密。这种方式私钥严格保密,公钥可以对外公布,解决了密钥传递和保存中的安全性问题。
公钥、私钥生成的具体方法如下: