1、网络安全原理与实网络安全原理与实务务 信息加密技术信息加密技术 7 7 1 1 概述概述 信息加密技术信息加密技术 7 7 1 1 概述概述 信息加密技术信息加密技术 7 7 1 1 概述概述 数据加密系统组成:加密算法、明文、密文、密钥数据加密系统组成:加密算法、明文、密文、密钥 它必须满足它必须满足P=DK(EK(P)函数!)函数!明文明文 PE加密算法加密算法D解密算法解密算法加密密钥加密密钥 K解密密钥解密密钥K明文明文 P密文密文 Y=EK(P)截取者截取者截获截获篡改篡改密钥源密钥源安全信道安全信道 信息加密技术信息加密技术 7 7 1 1 概述概述 密码术可以实现五种安全功能密码
2、术可以实现五种安全功能 保护描述机密性只允许授权用户访问信息认证确认发送人及其身份完整性相信信息未被改动认可确保发送人或接收人不能否认信息的发送或接收访问控制限制信息访问。信息加密技术信息加密技术 7 7 2 2 数据加密技术数据加密技术 :对传输中的数据流进行加密,常用的有对传输中的数据流进行加密,常用的有 链路加密链路加密 节点加密节点加密 端到端加密三种方式端到端加密三种方式 信息加密技术信息加密技术 7 7 2 2 数据加密技术数据加密技术 不但要加密报文,还要加密报头。要传输到下一个节点必须解密再加不但要加密报文,还要加密报头。要传输到下一个节点必须解密再加密,直到到达目的节点密,直
3、到到达目的节点,数据链路层进行加密。数据链路层进行加密。在传输中的节点设置一个加、解密保护装置完成密钥转换。除保护装在传输中的节点设置一个加、解密保护装置完成密钥转换。除保护装置外不出现明文置外不出现明文,安全模块中进行。安全模块中进行。在发送、接收端才加、解密,中间节点不解密在发送、接收端才加、解密,中间节点不解密,采用端采用端-端加密是在端加密是在应用层完成应用层完成 。信息加密技术信息加密技术 7 7 7 7 数据加密算法数据加密算法 1 1)古典密码:包括替代加密、置换加密)古典密码:包括替代加密、置换加密 2 2)对称密钥密码:包括)对称密钥密码:包括DESDES和和AESAES 3
4、 3)公开密钥密码:包括)公开密钥密码:包括RSA RSA、背包密码、背包密码、McElieceMcEliece密码、密码、RabinRabin、椭圆曲线等、椭圆曲线等 4 4)哈希算法)哈希算法:包括包括MD2,MD4,MD5,MD2,MD4,MD5,安全哈安全哈希算法希算法 (SHA-1)(SHA-1)等等信息加密技术信息加密技术 替代密码替代密码(substitution cipher)(substitution cipher)的原理的原理可用一个例子来说明。(密钥是可用一个例子来说明。(密钥是 3 3)abcdefghijklmnopqrstuvwxyzDEFGHIJKLMNOPQRS
5、TUVWXYZABCcaesar cipherFDHVDU FLSKHU明文明文密文密文明文明文 c c 变成了密文变成了密文 F F7 7信息加密技术信息加密技术 置换密码置换密码(transposition cipher)(transposition cipher)则是则是按照某一规则重新排列消息中的比特或按照某一规则重新排列消息中的比特或字符顺序。字符顺序。CIPHER145726attackbeginsatfour密钥密钥顺序顺序明文明文7 7密文的得出密文的得出CIPHER145726attackbeginsatfour密钥密钥顺序顺序明文明文因此密文就是:因此密文就是:abacnu
6、aiotettgfksr 7 7信息加密技术信息加密技术 CIPHER145726attackbeginsatfour接收端收到密文后按列写下接收端收到密文后按列写下密钥密钥顺序顺序明文明文先写下第先写下第 1 1 列密文列密文 aba 收到的密文:收到的密文:abacnuaiotettgfksr 7 7信息加密技术信息加密技术 CIPHER145726attackbeginsatfour密钥密钥顺序顺序明文明文再写下第再写下第 2 2 列密文列密文 cnu 收到的密文:收到的密文:abacnuaiotettgfksr 接收端收到密文后按列写下接收端收到密文后按列写下7 7信息加密技术信息加密
7、技术 CIPHER145726attackbeginsatfour密钥密钥顺序顺序明文明文再写下第再写下第 7 7 列密文列密文 aio 收到的密文:收到的密文:abacnuaiotettgfksr 接收端收到密文后按列写下接收端收到密文后按列写下7 7信息加密技术信息加密技术 CIPHER145726attackbeginsatfour密钥密钥顺序顺序明文明文再写下第再写下第 4 4 列密文列密文 tet 收到的密文:收到的密文:abacnuaiotettgfksr 接收端收到密文后按列写下接收端收到密文后按列写下7 7信息加密技术信息加密技术 CIPHER145726attackbegin
8、satfour密钥密钥顺序顺序明文明文再写下第再写下第 5 5 列密文列密文 tgf 收到的密文:收到的密文:abacnuaiotettgfksr 接收端收到密文后按列写下接收端收到密文后按列写下7 7信息加密技术信息加密技术 CIPHER145726attackbeginsatfour密钥密钥顺序顺序明文明文最后写下第最后写下第 6 6 列密文列密文 ksr 收到的密文:收到的密文:abacnuaiotettgfksr 接收端收到密文后按列写下接收端收到密文后按列写下7 7信息加密技术信息加密技术 CIPHER145726attackbeginsatfour接收端从密文解出明文接收端从密文解
9、出明文密钥密钥顺序顺序明文明文最后按行读出明文最后按行读出明文收到的密文:收到的密文:abacnuaiotettgfksr 得出明文:得出明文:attackbeginsatfour 7 7信息加密技术信息加密技术 信息加密技术信息加密技术 7 7 7 7 数据加密算法数据加密算法 对称对称密码密码非对称非对称密码密码 信息加密技术信息加密技术 7 7 7 7 数据加密算法数据加密算法 n原理:原理:n加密和解密使用相同密钥加密和解密使用相同密钥n加密强度基本由其密钥长度决定加密强度基本由其密钥长度决定n目前一般至少为目前一般至少为128128位位n主要优缺点:主要优缺点:n加密速度快加密速度快
10、n管理复杂,风险大管理复杂,风险大 信息加密技术信息加密技术 7 7 3 3 数据加密算法数据加密算法 n原理原理n有两把成对的密钥,称为公钥和私钥,其有两把成对的密钥,称为公钥和私钥,其中公钥可以对外公布中公钥可以对外公布n用一把密钥加密的数据只有用配对的另一用一把密钥加密的数据只有用配对的另一把密钥才能正确解密把密钥才能正确解密n特点:特点:n密钥易于管理,公钥不怕被窃取密钥易于管理,公钥不怕被窃取n但速度一般比对称加密算法慢很多但速度一般比对称加密算法慢很多 信息加密技术信息加密技术 7 7 4 4 哈希算法哈希算法 哈希哈希算法将任意长度的算法将任意长度的二进制二进制值值映射映射为固定
11、长度为固定长度的较小二进制值,这个小的二进制值称为哈希值。的较小二进制值,这个小的二进制值称为哈希值。如果散列一段明文而且哪怕只更改该段落的一个如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的可能的,所以数据的哈希值哈希值可以检验数据的完整可以检验数据的完整性。性。信息加密技术信息加密技术 7 7 4 4 哈希算法哈希算法 哈希算法安全性:哈希算法安全性:不可能使不同信息产生相同的哈希值,改变信息不可能使不同信息产生
12、相同的哈希值,改变信息中的一位应该产生完全不同的哈希值。中的一位应该产生完全不同的哈希值。不可能产生可获得预定哈希值的信息。不可能产生可获得预定哈希值的信息。不可能逆转哈希算法。不可能逆转哈希算法。哈希算法无需保密,其安全性来自于产生单向哈哈希算法无需保密,其安全性来自于产生单向哈希的能力。希的能力。产生固定大小的哈希值。长、短信息均产生相同产生固定大小的哈希值。长、短信息均产生相同长度的哈希值。长度的哈希值。信息加密技术信息加密技术 7 7 4 4 哈希算法哈希算法 哈希算法可以把纯文本转化为密码文本。然而,哈希算法可以把纯文本转化为密码文本。然而,加密文本就不需再解密了。相反,它是用来确认
13、加密文本就不需再解密了。相反,它是用来确认目的的对比。目的的对比。输入值乘数公式结果12345143值*乘数1765335纯文本密钥算法密码文本 信息加密技术信息加密技术 7 7 4 4 哈希算法哈希算法 哈希算法应用,确认密码的真实性。哈希算法应用,确认密码的真实性。信息加密技术信息加密技术 7 7 4 4 哈希算法哈希算法 哈希算法应用,防止中间人攻击。哈希算法应用,防止中间人攻击。信息加密技术信息加密技术 7 7 4 4 哈希算法哈希算法 信息摘要算法经信息摘要算法经MD2MD2、MD3MD3和和MD4MD4发展而来。它的作发展而来。它的作用是让大容量信息在用用是让大容量信息在用数字签名
14、数字签名软件签署私人软件签署私人密密钥钥前被前被“压缩压缩”成一种保密的格式(就是把一个成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不任意长度的字节串变换成一定长的大整数)。不管是管是MD2MD2、MD4MD4还是还是MD5MD5,它们都需要获得一个随机,它们都需要获得一个随机长度的信息并产生一个长度的信息并产生一个128128位的信息摘要。位的信息摘要。MD5MD5最广泛被用于各种软件的密码认证和钥匙识别最广泛被用于各种软件的密码认证和钥匙识别上。通俗的讲就是人们讲的序列号。上。通俗的讲就是人们讲的序列号。信息加密技术信息加密技术 7 7 5 5 数据加密标准数据加密
15、标准DESDES思想思想 1 1)DESDES算法的历史算法的历史 美国国家标准局美国国家标准局(NBS)(NBS)于于19771977年正式颁布年正式颁布DESDES 2 2)DESDES算法的安全性算法的安全性 一是加密算法必须是足够强一是加密算法必须是足够强 二是安全性依赖于密钥的秘密性二是安全性依赖于密钥的秘密性 3 3)DESDES算法的特点算法的特点 优点:加密和解密速度快;缺点:密钥分发优点:加密和解密速度快;缺点:密钥分发 信息加密技术信息加密技术 7 7 5 5 数据加密标准数据加密标准DESDES思想思想对称密码算法是指有了加密密钥就可以推算出解密对称密码算法是指有了加密密
16、钥就可以推算出解密密钥,有了解密密钥就可以推算出加密密钥的的算密钥,有了解密密钥就可以推算出加密密钥的的算法。公式表示:法。公式表示:E EK1K1(P)=C(P)=C,D DK2K2(C)=P(C)=P其中其中E E为加密算法,为加密算法,D D为解密算法,为解密算法,P P为明文,为明文,C C为密为密文,文,K1K1为加密密钥,为加密密钥,K2K2为解密密钥。在对称密码算为解密密钥。在对称密码算法中,有了法中,有了K1K1,就可以推算出,就可以推算出K2K2,而有了,而有了K2K2,也可,也可以推算出以推算出K1K1。信息加密技术信息加密技术 7 7 5 5 数据加密标准数据加密标准DE
17、SDES思想思想实际应用的大多数对称密码算法中,实际应用的大多数对称密码算法中,K1K1与与K2K2相同。因此对称密码算法的加密与解密关系相同。因此对称密码算法的加密与解密关系如下:如下:E EK K(P)=C(P)=C D DK K(C)=P(C)=P加密与解密都使用密钥加密与解密都使用密钥K K。信息加密技术信息加密技术 7 7 5 5 数据加密标准数据加密标准DESDES思想思想DESDES算法使用的密钥长度表示为算法使用的密钥长度表示为6464位位(bit)(bit),但每个,但每个第第8 8为都用作奇偶校验,密钥长度是为都用作奇偶校验,密钥长度是5656位。位。信息加密技术信息加密技
18、术 7 7 5 5 数据加密标准数据加密标准DESDES思想思想三重三重DESDES:加密过程为加密过程为“加加密密-解密解密-加密加密”解密过程为解密过程为“解解密密-加密加密-解密解密”信息加密技术信息加密技术 7 7 6 6 公开密钥算法公开密钥算法 用做加密的密钥不同于用作解密的密钥,而且用做加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合解密密钥不能根据加密密钥计算出来(至少在合理假定的长时间内)理假定的长时间内)源节点源节点节点节点2目的节点目的节点解密解密加密加密密文密文密文密文明文明文明文明文加密加密Key可公开可公开解密解密Key 信息加密技术信
19、息加密技术 7 7 6 6 公开密钥算法公开密钥算法 安全性:公开密钥算法是基于复杂的数学难题安全性:公开密钥算法是基于复杂的数学难题 1.1.大整数因子分解系统(大整数因子分解系统(RSARSA)2.2.离散对数系统(离散对数系统(DSA,ElGamalDSA,ElGamal)3.3.椭圆曲线离散对数系统(椭圆曲线离散对数系统(ECDSAECDSA)信息加密技术信息加密技术 7 7 6 6 公开密钥算法公开密钥算法 下表列出了用下表列出了用现代最快速的现代最快速的分解算法,在分解算法,在大型计算机上大型计算机上分解一个大整分解一个大整数所需的时数所需的时间间 整数的位数操作次数所需时间501
20、.41010 7.9小时759.01012 104天1002.71015 74年2001.21027 7.8109年7001.71029 4.91015年5001.710794.21017亿年 信息加密技术信息加密技术 7 7 7 RSA 7 RSA公开密钥密码系统公开密钥密码系统 单向函数:单向函数:19761976年,狄菲和海尔曼在年,狄菲和海尔曼在密码学的密码学的新方向新方向一文中,提出采用一文中,提出采用“单向函数单向函数”来设计来设计公钥体制的思路公钥体制的思路 所谓所谓“单向函数单向函数”,是指加密函数,是指加密函数E E和解密函数和解密函数D D的运算都容易实现,但由的运算都容易
21、实现,但由E E求其逆运算求其逆运算D D却非常困却非常困难难.这样,即使把加密函数这样,即使把加密函数E E和具体的加密与解密和具体的加密与解密的算法过程都公开,如果不知道解密函数的算法过程都公开,如果不知道解密函数D D,把,把密文解密成明文的计算也无法实现。密文解密成明文的计算也无法实现。信息加密技术信息加密技术 7 7 7 RSA 7 RSA公开密钥密码系统公开密钥密码系统 RSARSA定理相关的数论知识定理相关的数论知识(1 1)一个大于)一个大于1 1的整数的整数p p,如果除,如果除1 1和它本身外没有和它本身外没有其它正整数因数,称其它正整数因数,称p p是是素数素数(2 2)
22、若整数)若整数a a、b b的最大公因数为的最大公因数为1 1(记为(记为(a a,b b)=1=1),称),称a a、b b互素互素 信息加密技术信息加密技术 7 7 7 RSA 7 RSA公开密钥密码系统公开密钥密码系统 RSARSA密钥生成体制密钥生成体制 1 1)选择两个大的质数)选择两个大的质数p p和和q q,p p不等于不等于q q,计算,计算N=N=pqpq ;2 2)根据欧拉函数,不大于)根据欧拉函数,不大于N N且与且与N N互质的整数个数为互质的整数个数为(p-1)(q-1)(p-1)(q-1);3 3)选择一个整数)选择一个整数e e与与(p-1)(q-1)(p-1)(
23、q-1)互质,并且互质,并且e e小于小于(p-1)(q-1)(p-1)(q-1);4 4)用以下这个公式计算)用以下这个公式计算d d:d d e 1(mod(p-1)(q-1);e 1(mod(p-1)(q-1);5 5)公开密钥为:)公开密钥为:PK=(nPK=(n,e)e),用于加密,可以公开出去,用于加密,可以公开出去;6 6)秘密密钥为:)秘密密钥为:SK=(nSK=(n,d)d),用于解密,必须保密。,用于解密,必须保密。信息加密技术信息加密技术 7 7 7 RSA 7 RSA公开密钥密码系统公开密钥密码系统 RSARSA加解密过程加解密过程 1 1)加密:设)加密:设m m为要
24、传送的明文,利用公开密钥(为要传送的明文,利用公开密钥(n n,e e)加)加密,密,c c为加密后的密文。为加密后的密文。则加密公式为:则加密公式为:c=c=meme mod n mod n,(,(0cn0cn););2 2)解密:利用秘密密钥()解密:利用秘密密钥(n n,d d)解密。)解密。则解密公式为:则解密公式为:m=m=cdcd mod n mod n,(,(0mn0mn)。)。信息加密技术信息加密技术 7 7 7 RSA 7 RSA公开密钥密码系统公开密钥密码系统 RSARSA加解密举例加解密举例 1 1)选取)选取p=11p=11,q=7q=7。则则n=pn=p*q=77q=
25、77,z=(p-1)z=(p-1)*(q-1)=6(q-1)=6*10=6010=60;2 2)选取)选取e=7e=7,计算其逆,计算其逆,7 7*d=1 mod 60=43d=1 mod 60=43;3 3)那么公钥)那么公钥PKPK为(为(7777,7 7),私钥),私钥SKSK为(为(7777,4343)。)。信息加密技术信息加密技术 7 7 7 RSA 7 RSA公开密钥密码系统公开密钥密码系统 RSARSA加解密课堂练习加解密课堂练习 RSA RSA的安全基于大数分解的难度,其公开密钥和私的安全基于大数分解的难度,其公开密钥和私人密钥是一对大素数的函数。设人密钥是一对大素数的函数。设
26、 p=7,q=17,p=7,q=17,求求公开密钥公开密钥(n,en,e)、私人密钥、私人密钥 (n,dn,d)并对明文并对明文m=19m=19加密和解密。加密和解密。信息加密技术信息加密技术 7 7 7 RSA 7 RSA公开密钥密码系统公开密钥密码系统 RSARSA加解密课堂练习加解密课堂练习 第(第(1 1)步:产生一对密钥)步:产生一对密钥 两个素数两个素数p=7p=7,q=17q=17。计算计算N Npqpq=7x17=119=7x17=119。计算计算N N的欧拉函数的欧拉函数(N)=(p(N)=(p一一1)(q1)(q1)=6x16=961)=6x16=96。从从00,9595间
27、选一个与间选一个与9696互为素数的数互为素数的数e=5e=5,根据式,根据式d d5-5-1 1(mod96mod96),解得解得d=77d=77,因为,因为eded=5x77=385=4x96+1=1mod96=5x77=385=4x96+1=1mod96。于是得到公钥。于是得到公钥PK=PK=(e e,N N)=(5=(5,119)119);私钥;私钥SK=(77SK=(77,119)119)。信息加密技术信息加密技术 7 7 7 RSA 7 RSA公开密钥密码系统公开密钥密码系统 RSARSA加解密课堂练习加解密课堂练习 第(第(2 2)步:对密钥进行加密解密)步:对密钥进行加密解密 用公钥用公钥PK=(5PK=(5,119)119)加密。先计算加密。先计算XeXe=195=246099=195=246099;再除;再除以以119119,得商,得商2080720807,余,余6666。即得密文。即得密文6666。用私钥用私钥SK=(77SK=(77,119)119)解密。先计算解密。先计算Yd=6677=127Yd=6677=127;再;再除以除以119119,得余数,得余数1919,即明文。,即明文。