第七章密码技术7.1 数据加密技术1.基本概念——术语●消息被称为明文(plain text)●用某种方法伪装消息以隐藏它的内容的过程称为加密(encryption,encipher)●加了密的消息称为密文(cipher text)●而把密文转变为明文的过程称为解密(decryption, decipher)。
●使消息保密的技术和科学叫做密码编码学(cryptography)。
●从事此行的叫密码编码者(cryptographer)●破译密文的科学和技术叫做密码分析学(cryptanalysis)●从事密码分析的专业人员叫做密码分析者(cryptanalyst)●密码学包括密码编码学和密码分析学两者。
现代的密码学家通常也是理论数学家。
2. 基本概念——密码学的在网络通信上的作用●保密:保护信息在传输的过程中,内容不会泄露给热合非法截收的第三者。
●鉴别:消息的接收者应该能够确认消息的来源;入侵者不可能伪装成他人。
●完整性:消息的接收者因该能够验证在传送过程中没有被修改;入侵者不可能用假消息代替合法消息。
●抗抵赖:发送者事后不可能虚假地否认他发送的消息(不可否认性)。
3.密码通信模型①算法密码算法也叫密码,是用于加密和解密的数学函数。
通常情况下,有两个相关的函数:一个用作加密,另一个用作解密。
明文用M(消息),密文用C表示,加密函数E作用于M得到密文C,用数学表示为:E(M)=C.相反地,解密函数D作用于C产生MD(C)=M.先加密后再解密消息,原始的明文将恢复出来,下面的等式必须成立:D(E(M))=M②受限制的算法如果算法的保密性是基于保持算法的秘密,这种算法称为受限制的算法。
如果有人无意暴露了这个秘密,所有人都必须改变他们的算法。
③现代密码学现代密码学用密钥解决了这个问题,密钥用K表示。
用K作为加密、解密函数中的参数。
密钥K的可能值的范围叫做密钥空间。
加密和解密运算都使用这个密钥,加/解密函数现在变成:E k(M)=CD k(C)=MD k(E(M))=M图见书。
4. 密码体制①对称密钥体制加密和解密时使用同一个密钥,或者加密密钥能够从解密密钥中推算出来,反过来也成立。
又称为对称密钥体制或单钥密钥体制。
对称密码体制的代表:1977年美国国家标准局颁布的DES算法对称密钥体制的缺陷:a.密钥管理麻烦通信双方事先要通过保密信道交换密钥。
算法是公开的,密钥是对称密钥体制的核心,一定不能泄露。
密钥管理问题:用户数为n,系统拥有密钥总数为n(n-1)/2b.数字签名问题(缺乏对接收端的证实)可以证实发送端:只有掌握解密密钥的合法接收者才能恢复出明文。
不能证实接收端:接收方收到文件后可以伪造或篡改文件。
c.缺乏自动检测保密密钥泄密的能力一旦密钥泄露,在一段密钥有效期内,能顺利破译出该密钥加密的所有信息而不被发现。
②公钥密钥体制(非对称密钥体制)③混合加密体制5. 公钥密钥体制①基本概念应用两个不同的密钥:一个是公开的,一个是秘密的。
从公开密钥(以下简称为公钥)很难推断出私人密钥(以下简称为私钥)。
持有公钥的任何人都可以加密消息,但却无法解密。
只有持有私钥的人才能够解密。
②加密/解密基本步骤假设A要给B发送数据。
一般的情况下,网络中的用户约定一个共同的公开密钥密码系统,每个用户都有自己的公钥和私钥,并且所有的公钥都保存在某个公开的数据库中,任何用户都可以访问此数据库。
这样加密协议如下:A.A从公开数据库中取出B的公开密钥。
B.A用B的公开密钥加密她的消息,然后传送给B。
C.B用他的私钥解密A的消息。
③公钥/私钥特点:A.公钥和私钥是两个相互关联的密钥,但是由公钥很难推出私钥。
B.公钥加密的文件只能由私钥解密。
C.私钥加密的文件只能由公钥解密。
④优点从以上的介绍中可以看出,与对称密码技术相比较,利用非对称密码技术进行安全通信,有以下优点:A.通信双方事先不需要通过保密信道交换密钥。
B.密钥持有量大大减少。
在n个用户的团体中进行通信,每一用户只需要持有自己的私钥,而公钥可放置在公共数据库上,供其它用户取用。
这样,整个团体仅需拥有n对密钥,就可以满足相互之间进行安全通信的需求。
(实际中,因安全方面的考虑,每一用户可能持有多个密钥,分别用于数字签名、加密等用途。
此种情况下,整个团体拥有的密钥对数为n的倍数。
但即使如此,与使用对称密码技术时需要n2/2个不同的密钥相比,需要管理的密钥数量仍显著减少。
)C.非对称密码技术还提供了对称密码技术无法或很难提供的服务:如与哈希函数联合运用可生成数字签名(以后介绍),可证明的安全伪随机数发生器的构造,零知识证明等。
⑤缺点算法比较复杂,加密速度慢。
6.混合加密体制加解密采用传统密码,密钥传送采用公钥密钥。
同时解决密钥管理困难和加解密速度的问题。
步骤:A.产生一个会话密钥K,用B的公钥对K加密,得到CkB.用K和对称加密算法对明文P加密得密文CC.A发送C和Ck给BD.B用他的私钥对Ck解密得会话密钥KE.B用会话密钥K解密出消息。
图见书。
7.2网络加密方式1.链路加密方式在数据链路层上进行加密,对传输的数据报文的每一个比特进行加密,每个节点配置安全单元,用于进行加密解密。
不但对数据报文正文加密,并对路由信息、校验和等控制信息加密传输过程:网络节点内数据为明文木桶原理:一个木桶由许多块木板组成,如果组成木桶的这些木板长短不一,那么这个木桶的最大容量不取决于长的木板,而取决于最短的那块木板。
采用链路加密方式,从起点到终点,要经过许多中间节点,在每个节点地均要暴露明文,如果链路上的某一节点安全防护比较薄弱,那么按照木桶原理(木桶水量是由最低一块木板决定),虽然采取了加密措施,但整个链路的安全只相当于最薄弱的节点处的安全状况。
2.节点对节点的加密方式是对链路加密方式的改进。
和链路加密方式不同的是:只对数据报文加密,不对路由信息和校验和这些控制信息加密,在节点处进行路由选择和差错检测,但是在节点先把收到的消息进行解密,然后采用另一个不同的密钥进行加密,连接保密组件,消息的加密/解密都在保密装置中进行,明文不在节点处出现。
3.端对端的加密方式发送端和接收端数据在发送端被加密,在最终目的地(接收端)解密,中间节点处不以明文的形式出现。
在应用层完成7.3密码算法介绍7.3.1古典密码算法●在计算机出现前,密码学由基于字符的密码算法构成。
不同的密码算法是字符之间互相代换或者是互相之间移位,好的密码算法是结合这两种方法,每次进行多次运算。
●现在事情变得复杂多了,但原理还是没变。
重要的变化是算法对比特而不是对字母进行变换,实际上这只是字母表长度上的改变,从26个元素变为2个元素。
大多数好的密码算法仍然是移位和置换的元素组合。
例如:移位算法凯撒密码:著名的凯撒密码就是一种简单的代替密码,它的每一个明文字符都由其右边第K 个(模26)字符代替(若K=3,A由D代替,B由E代替,W由Z代替,X由A代替,Y由B 代替,Z由C代替)。
它实际上更简单,因为密文字符是明文字符的环移,并且不是任意置换。
⏹ABCDEFGHIJKLMNOPQRSTUVWXYZ⏹DEFGHIJKLMNOPQRSTUVWXYZABC仅有25个可能的密钥,非常不安全。
例如:移位算法就是明文中每一个字符被替换成密文中的另外一个字符。
接收者对密文进行逆替换就恢复出明文来。
简单代替密码:就是明文的一个字符用相应的一个密文字符代替。
多字母代替密码:字符块被成组加密,例如“ABA”可能对应于“RTQ”,ABB可能对应于“SLL”等。
7.3.2数据加密标准(DES)1.DES加密算法的背景●发明人:美国IBM公司W. Tuchman 和C. Meyer 1971-1972年研制成功。
●产生:美国国家标准局(NBS)1973年5月到1974年8月两次发布通告,公开征求用于电子计算机的加密算法。
经评选从一大批算法中采纳了IBM的LUCIFER方案。
●标准化:DES算法1975年3月公开发表,1977年1月15日由美国国家标准局颁布为数据加密标准(Data Encryption Standard),于1977年7月15日生效。
DES出现之后,很多专家学者对它进行分析论证,证明它是一种性能良好的数据加密算法,不仅随机特性好,线性复杂度高,而且易于实现,能够标准化和通用化,因此在国际上得到了广泛的应用2.DES加密算法的基本思想DES是一种对称密码体制,加密和解密的密钥相同。
DES算法入口参数:●64bit的数据(Data),●64bit的初始密钥(Key)K●模式(Mode)DES算法工作过程:如果Mode为加密模式,则用Key去把数据Data进行加密,生成Data的密码形式(64bit)作为DES输出结果;若Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64bit)作为DES的输出结果。
DES利用传统的移位和置换的方法。
主要包括三部分:密钥产生部分、换位操作部分、与密钥有关的乘积变换部分。
图见书113页而异或则是按位“异或”,相同为“0”,相异为“1”。
例:10011000异或01100001结果11111001或运算10011000或01100001结果111110017.3.3 RSA公钥密码算法MH——背包公钥体制RSA算法是R.Rivest、A.Shamir和L.Adleman于1977年在美国麻省理工学院开发,于1978年首次公布。
1.理论准备●单向函数一个单向函数是满足下列条件的函数:它将一个定义域映射到值域,使得每个函数值有一个唯一的原像,同时还要满足下列条件:函数值计算很容易,而逆计算是不可行的。
单项陷门函数:所谓单向陷门函数是这样的函数,即除非知道某种附加的信息,否则这样的函数在一个方向上容易计算,而在另外的方向上要计算是不可行的。
有了附加的信息,函数的逆就可以在多项式时间内计算出来。
一个实用的公开密钥密码系统的建立和发展依赖于找到一个单向陷门函数。
●素数只能被1和它本身整除的自然数;否则为合数。
每个合数都可以唯一的分解出素数因子6=2×315851=131×11×11999999=3×3×3×7×11×13×37互质:如果两个数的最大公约数是1,我们就说这两个数是互质数。
1.和1互质的数:2,3,4,5,6,7,8;2.和2互质的数:3,5,7;3.和3互质的数:4,5,7,8;●素因子分解速度采用运算速度为100万次每秒的计算机整数n的十进制位数因子分解运算次数计算时间50 1.4*1010 3.9小时75 9.0*1012104天100 2.3*101574年200 1.2*1023 3.8*109年300 1.5*1029 4.0*1015年500 1.3*1039 4.2*1025年●模运算求余数例如:2 mod 7=28 mod 3=5●同余问题如果a和b都是整数,而m是一个固定的正整数,则当m能够整数a-b时,称a,b 对模m同余,记为a≡b(mod m)例如:5≡2(mod 3)5-2能整除3●模运算性质如果a 与n互素,则存在b使得a ×b ≡ 1(mod n)例如:a=2, n=3 2×2≡1(mod 3) 2×5≡1(mod 3) 注:b不唯一!●欧拉函数φ(n):小于n,但与n互素的正整数的个数。