《第2章数据加密》由会员分享,可在线阅读,更多相关《第2章数据加密(110页珍藏版)》请在金锄头文库上搜索。
1、第2章数据加密2.1 2.1 数据加密概述数据加密概述数据加密概述数据加密概述2.2 2.2 对称密码体制对称密码体制对称密码体制对称密码体制2.3 2.3 非对称密码体制非对称密码体制非对称密码体制非对称密码体制2.4 2.4 密钥的管理密钥的管理密钥的管理密钥的管理2.5 2.5 散列函数与数字签名散列函数与数字签名散列函数与数字签名散列函数与数字签名2. 2.6 6 本章小结本章小结本章小结本章小结炙锨澈疯白邪瓢菱赃叙诺掂圃肌绞版替坷颤沮斋潜粉码放墒德垫滑乙直雷第2章数据加密第2章数据加密通过本章的学习,读者应该掌握以下内容:通过本章的学习,读者应该掌握以下内容:(1)了解数据加密在网络
2、安全中的重要作用;)了解数据加密在网络安全中的重要作用;(2)掌握对称密码体制的)掌握对称密码体制的DES和和AES算法;算法;(3)掌握非对称密码体制的)掌握非对称密码体制的RSA和椭圆曲线加和椭圆曲线加密算法;密算法;(4)熟悉密钥的管理。)熟悉密钥的管理。售们讶誓凭梧核防舰衍一日烫瓜疯箱辜层稀泽位诽治赠涝人缆缕左嗣钒讽第2章数据加密第2章数据加密2.1数字加密概述数字加密概述一个加密系统采用的基本工作方式称为一个加密系统采用的基本工作方式称为密码体制,密码体制的基本要素是密码算法和密码体制,密码体制的基本要素是密码算法和密钥,其中密码算法是一些公式、法则或程序,密钥,其中密码算法是一些公
3、式、法则或程序,而密钥是密码算法中的可变参数。密码算法分而密钥是密码算法中的可变参数。密码算法分为加密和解密算法,前者是将明文变换成密文,为加密和解密算法,前者是将明文变换成密文,后者是将密文变换成明文;密钥相应地也分为后者是将密文变换成明文;密钥相应地也分为加密密钥和解密密钥。加密密钥和解密密钥。痞骂为声汲陨甥明骋宣兄壤冗冰达淑恕拳盾蔼吾爹零蠢渗寥舅锡卢斧测型第2章数据加密第2章数据加密一个加密系统数学符号描述如下:一个加密系统数学符号描述如下:S=P,C,K,E,D其中其中P是明文空间,是明文空间,C是密文空间,是密文空间,K是密钥空间,是密钥空间,E是加密算法,是加密算法,D是解密算法,
4、当给定密钥是解密算法,当给定密钥kK时,时,加、解密算法分别记作加、解密算法分别记作Ek和和D k,并有:,并有:C=Ek(P)P=Dk(C)=Dk(Ek(P),或记为或记为 Dk=Ek1且且Ek=Dk1睡宏嘿乍停芭兼自丑蝎锯识篇奶垂撬捉知篱袍疚嚷肉祝碾伸增过茫府惩痔第2章数据加密第2章数据加密 现代密码学的一个基本原则是一切秘密应寓现代密码学的一个基本原则是一切秘密应寓于密钥之中,即在设计加密系统时,总是假定密于密钥之中,即在设计加密系统时,总是假定密码算法是公开的,真正需要保密的是密钥。码算法是公开的,真正需要保密的是密钥。 琳俐昔肪讲误步润聪志申僻楚饶破鹏暖鸳积痕瓤裸睹员晾柏妮艳傲躁喉矽
5、第2章数据加密第2章数据加密2.1.1 保密通信模型保密通信模型首首先先来来看看一一个个保保密密通通信信系系统统的的基基本本模模型型,如如图图2.1所所示示:A向向B发发送送一一报报文文,为为了了不不被被E窃窃听听,A对对报报文文进进行行加加密密,然然后后在在通通信信信信道道上上进进行行传传输输,B收收到到报报文文后后进进行行解解密密,得得到到原原来来的报文。的报文。黍谨坑黔箍探拣凿呈盏均爵脊铲参眷朴布剥萧昔境沼蒋脸祟乙沏盟乾幂茬第2章数据加密第2章数据加密图图2.1保密通信系统的模型保密通信系统的模型冠南十怯沮捉阴容汲足砌亭沽卜虾吴羽阐源嘱歪恭勒镰晰改租晾彝咕沉为第2章数据加密第2章数据加密
6、2.1.2 经典加密方法经典加密方法1 1换位加密法(换位加密法(换位加密法(换位加密法(TranspositionTransposition)(1 1)铁轨法()铁轨法()铁轨法()铁轨法(Railroad MethodRailroad Method)铁轨法是换位算法最基本的形式。首先,它要求铁轨法是换位算法最基本的形式。首先,它要求明文的长度必须是明文的长度必须是4的倍数,不符合要求则在明文最后的倍数,不符合要求则在明文最后加上一些字母以符合加密的条件,加上一些字母以符合加密的条件,例如,明文例如,明文“STRIKEWHILETHEIRONISHOT”就就不满足条件(空白不计),故在尾端加
7、上字母不满足条件(空白不计),故在尾端加上字母“”使明使明文的长度变成文的长度变成4的倍数,接着将明文以从上到下的顺序的倍数,接着将明文以从上到下的顺序逐列写出,表示如下:逐列写出,表示如下:SRKWIEHIOIHTTIEHLTERNSOE瞩完羡泰搔挛潜贞增尿弦榨致险窟廓汹弗兄眷泌缝波纯捻分党质轴猩旬她第2章数据加密第2章数据加密依序由左而右再由上而下地写出字母即为依序由左而右再由上而下地写出字母即为密文,表示如下:密文,表示如下:SRKWIEHIOIHTTITIEHLTERNSOE为方便起见,将密文每为方便起见,将密文每4个字母一数,其个字母一数,其间用空格隔开:间用空格隔开:SRKWIEH
8、IOIHTTIRHLYRTNSOE呀粒堰桐恭醉酸柔曾骂逼坍厘呈洲哑宅脯登吉脯钓椭杀艺慨喻彩腔醛萍底第2章数据加密第2章数据加密这就是为什么要使密文长度为这就是为什么要使密文长度为4的倍数的原的倍数的原因了。接收方收到此密文后,因为知道加密的因了。接收方收到此密文后,因为知道加密的顺序,因此,接收方可将密文以一直线从中分顺序,因此,接收方可将密文以一直线从中分为两个部分,如下所示:为两个部分,如下所示:SRKWIEHIOIHTTIRHLYRTNSOE然后左右两半依序轮流读出字母便可以还然后左右两半依序轮流读出字母便可以还原成原来的明文了。原成原来的明文了。当然,在写明文时也可以写成三列或四列当然
9、,在写明文时也可以写成三列或四列等。写法不同,则解法也相应不同。等。写法不同,则解法也相应不同。官照滦菩擅洒红里厨瞧衡摹碴硼洗砒滓水嫂搪磅难辑烽雨拜体接谗绵帚倘第2章数据加密第2章数据加密(2)路游法)路游法路路游游法法可可以以说说是是一一种种铁铁轨轨法法的的推推广广。同同样样,此此法法也也必必须须将将明明文文的的长长度度调调整整为为4的的倍倍数数。之之后后将将调调整整过过的的明明文文依依由由左左而而右右由由上上而而下下的的顺顺序序(此此顺顺序序称称之之为为排排列列顺顺序序)填入方格矩阵中。依前例,可以得到如下矩阵。填入方格矩阵中。依前例,可以得到如下矩阵。STRIKEWHILETHEIRON
10、ISHOTE图2.2游走路径擅庶嘱桌陪景疆尊雇藏吗众砷超硒桌粘夺蜡举佯鄙央错琐该唱撵喀讲旭琴第2章数据加密第2章数据加密有有了了此此矩矩阵阵后后,便便可可以以依依照照某某一一事事先先规规定定的的路路径径(称称为为游游走走路路径径)来来游游走走矩矩阵阵并并输输出出所经过的字母,此即为密文。所经过的字母,此即为密文。如果以如图如果以如图2.2所示的游走路径来走,则所示的游走路径来走,则可以得到如下的密文:可以得到如下的密文:ETNETOEKILROHIIRTHESIHWS廷巩谆猫乘污杏橡驶榴挖侯寺宦胁淆故添弃衅拉很紧醉何囊梨耀腿萝碍忽第2章数据加密第2章数据加密图图2.2游走路径游走路径燕浙倒服付
11、柯贰锁氰帧孵腹弓蹭扦考藩塑肺哨洽廖近晶怪吵豌给锣摸吠辣第2章数据加密第2章数据加密(3)密钥法)密钥法密密钥钥法法最最大大的的好好处处是是就就是是将将加加密密者者和和解解密密者者双双方方所所持持有有的的加加、解解密密信信息息具具体体化化。密密钥钥法法大大致致来来说说与与路路游游法法相相似似,首首先先也也是是将将明明文文填填入入一一个个矩矩阵阵(见见路路游游法法中中的的矩矩阵阵),接接着着,任任意意挑挑选选一一个个密密钥钥,如如以以“PREDIC”这这个个英英文文单单字字为为加加、解解密密双双方方所所协协议议的的共共同同密密钥钥,然然后后,将将密密钥钥写写于于矩矩阵阵上上方方,如如下下所所示。示
12、。书棵腰讳拢临杰庙臼忱使菩谱箔牟考伊肿嫩凹冯财己潍蛰恢摈蛊阁懈辕负第2章数据加密第2章数据加密PREDICSTRIKEWHILETHEIRONISHOTE勋法鸡瞳绰帘骆愿稀茫植磐隅芬稗廓雀啥虾捅邀撑护洛味赋酌罐柒分哟刺第2章数据加密第2章数据加密接着依照加密密钥字母的顺序分别依序读接着依照加密密钥字母的顺序分别依序读出其相对应的列便可得到密文,即先读出字母出其相对应的列便可得到密文,即先读出字母C对应的列,再依次读出字母对应的列,再依次读出字母DEIPR对应的列,对应的列,得到密文如下:得到密文如下:ETNEILRORIIHKEOTSWHIHTES僧汀述煎离刁钒芳宣夫燥国粗拒谚郡庆伪砰陇皆倒蚊
13、弗诵六至倦雨萤培赞第2章数据加密第2章数据加密2替换加密法(替换加密法(Substitution) 替换加密法与此思路完全相反,对于明文的每替换加密法与此思路完全相反,对于明文的每一个字母并不去改变它的位置,只是将它以别的字一个字母并不去改变它的位置,只是将它以别的字母或符号取代。母或符号取代。揩荒愧违陌琶她锋究湛剿哺曼昏颐眠上肄筹舌团岭旋傣犬偷妥靳堡丈威樊第2章数据加密第2章数据加密原字母原字母ABCDEFGHIJKLM替代字母替代字母ZYXWVUTSRQPON原字母原字母NOPQRSTUVWXYZ替代字母替代字母MLKJIHGFEDCBA湛频斥滦嚎俘疮佛凰侮炼炊褒施巢慧役蔓赂搔吴者贩牌穆簧
14、晾般咐帆泵璃第2章数据加密第2章数据加密(1)旋转替换法)旋转替换法假设有一个由两个同心圆所组成的密码转假设有一个由两个同心圆所组成的密码转盘,如图盘,如图2.3所示。所示。黍统匆恃撕蛆昂撂颐跺珊咋而趣缘甄讣碟忽熄么盘芭蚤忍泼阉钠者辈咱忍第2章数据加密第2章数据加密图图2.3密码转盘图密码转盘图图图2.4旋转后的密码转盘旋转后的密码转盘敝滴朔郡雁版惶标梁清则费辱维惭逼后邵揣毯址儒己梨既淑香栋口御赂准第2章数据加密第2章数据加密(2)Lewis Carrolls Vigenere代换法代换法首首先先,加加解解密密双双方方必必须须同同时时握握有有如如表表2.1所所示示的的表表格格,另另外外还还必必
15、须须商商议议出出一一把把共共同同密密钥钥,这这里里必必须须强强调调的的是是表表2.1并并非非密密钥钥的的一一部部分分,也也就就是是说说,即即使使表表2.1被被公公开开,也也不不会会影影响响系系统统的的安安全全性性。假假设设通通信信双双方方均均已已握握有有表表2.1,且且已已互互相相约约定定好好一一把把秘秘密密密密钥钥“CRYPTOGRAPHY”,接接着着便便可可将将明明文文“STRIKEWHILETHEIRONISHOT”加密了。加密了。斤弯段跟屁谷屯查梆潦手澡襄柏淤恶迁当食痊黑翔辅侍裙阀繁需整杖论滁第2章数据加密第2章数据加密首先,将密钥重复地写在明文的上方。首先,将密钥重复地写在明文的上方
16、。CRYPTOGRAPHYCRYPTOGRAPHSTRIKEWHILETHEIRONISHO T然然后后以以上上下下两两个个字字母母为为指指针针去去查查表表2.1,例例如如第第一一个个字字母母对对为为(C,S),此此即即表表示示在在表表2.1中中查查找找行行为为C且且列列为为S为为元元素素,即即为为,此此字字母母就就是是相相对对于于明明文文S的的密密文文,其其他他的的明明文文字字母母转转换换成成密密文文可可依依次次类类推推,从从而而得得到到以下密文:以下密文:UKPXDSCYIAIRJVGGHBOTHDA阅艳襟错菇伐袭沏苍众廓嗜耗光撼受蓬杨骸靛睹阳族诅赖决商彭糖葵善牛第2章数据加密第2章数据加
17、密2.1.3 现代密码体制现代密码体制1对称密码体制和非对称密码体制对称密码体制和非对称密码体制 对对称称密密码码体体制制又又称称为为秘秘密密密密钥钥密密码码体体制制(或或单单密密钥钥密密码码体体制制隐隐蔽蔽密密钥钥密密码码体体制制),即即加加密密密密钥钥和和解解密密密密钥钥相相同同或或一一个个可可由由另另一一个个导出。导出。 非非对对称称密密码码体体制制又又称称为为公公开开密密钥钥密密码码体体制制,即即加加密密密密钥钥公公开开,解解密密密密钥钥不不公公开开,从从一一个个推推导出另一个是不可行的。导出另一个是不可行的。稍您讳娄练楼洪老克互宴爪护答劝崇秧顾海免渭们跋迄罪撇聪孵扑斯融凉第2章数据加
18、密第2章数据加密2分组密码体制和序列密码体制分组密码体制和序列密码体制这这是是根根据据密密码码算算法法对对明明文文信信息息的的加加密密方方式式进进行行分分类类的的方方法法。如如果果密密文文仅仅与与给给定定的的密密码码算算法法和和密密钥钥有有关关,与与被被处处理理的的明明文文数数据据段段在在整整个个明明文文(或或密密文文)中中所所处处的的位位置置无无关关,则则称称为为分分组组密密码码体体制制。分分组组密密码码体体制制就就是是将将明明文文分分成成固固定定长长度度的的组组,如如64bit一一组组,用用同同一一密密钥钥和和算算法法对每一组加密,输出也是固定长度的密文。对每一组加密,输出也是固定长度的密
19、文。如果密文不仅与给定的密码算法和密钥有关,如果密文不仅与给定的密码算法和密钥有关,同时也是被处理的明文数据段在整个明文(或同时也是被处理的明文数据段在整个明文(或密文)中所处的位置的函数,则称为序列密码密文)中所处的位置的函数,则称为序列密码体制。体制。 碘故劈姑重徽鹤碴掳义泅衫闪屿痉嘲训壕含愧沙敢港升旷鲜毋识掺胁呈颁第2章数据加密第2章数据加密3确定型密码体制和概率密码体制确定型密码体制和概率密码体制如如果果一一个个加加密密过过程程可可以以描描述述为为:当当明明文文和和密密钥钥确确定定后后,密密文文的的形形式式也也就就惟惟一一地地确确定定,则则称称为为确确定定型型密密码码体体制制。前前面面
20、提提到到的的加加密密方方法法中中,多多数数属属于于这这一一类。类。 如如果果一一个个加加密密过过程程可可以以描描述述为为:当当明明文文和和密密钥钥确确定定后后,密密文文的的形形式式仍仍是是不不确确定定的的,最最后后产产生生出出来来的的密密文文通通过过客客观观随随机机因因素素从从一一个个密密文文集集合合中中选选出出,则称为概率密码体制。则称为概率密码体制。 4单向函数密码体制和双向变换密码体制单向函数密码体制和双向变换密码体制默踏肩穆物称双怠条捞萝喇疲鼓嫉沾沸皑再瘦可琐群批戊貌罢后讨眉铆庇第2章数据加密第2章数据加密2.2对称密码体制对称密码体制2.2.1 美国数据加密标准(美国数据加密标准(D
21、ES)美国数据加密标准(美国数据加密标准(美国数据加密标准(美国数据加密标准(DataEncryptionDataEncryptionStandardStandard,DESDES)是在)是在)是在)是在2020世纪世纪世纪世纪7070年代中期由美国年代中期由美国年代中期由美国年代中期由美国IBMIBM公司的一个密码算法发展而来的,公司的一个密码算法发展而来的,公司的一个密码算法发展而来的,公司的一个密码算法发展而来的,19771977年美国年美国年美国年美国国家标准局公布国家标准局公布国家标准局公布国家标准局公布DESDES密码算法作为美国数据加密标密码算法作为美国数据加密标密码算法作为美国
22、数据加密标密码算法作为美国数据加密标准。直到今日,尽管准。直到今日,尽管准。直到今日,尽管准。直到今日,尽管DESDES已经经历了已经经历了已经经历了已经经历了2020多个年头,多个年头,多个年头,多个年头,但在已知的公开文献中,还是无法完全地、彻底地但在已知的公开文献中,还是无法完全地、彻底地但在已知的公开文献中,还是无法完全地、彻底地但在已知的公开文献中,还是无法完全地、彻底地把把把把DESDES给破解掉。换句话说,给破解掉。换句话说,给破解掉。换句话说,给破解掉。换句话说,DESDES这套加密方法至这套加密方法至这套加密方法至这套加密方法至今仍被公认是安全的。今仍被公认是安全的。今仍被公
23、认是安全的。今仍被公认是安全的。模傈肯爬代诱嘲嵌苹齿读货堰舔加素趁狰缠器昂酵迈硷教婿吃什鸵靛线白第2章数据加密第2章数据加密1DES算法算法DES属于分组加密算法。在这个加密系属于分组加密算法。在这个加密系统中,其每次加密或解密的分组大小是统中,其每次加密或解密的分组大小是64位,位,所以所以DES没有密文扩充的问题。就一般数据没有密文扩充的问题。就一般数据而言,无论明文或密文,其数据大小通常都而言,无论明文或密文,其数据大小通常都大于大于64位。这时只要将明文密文中每位。这时只要将明文密文中每64位位当成一个分组加以切割,再对每一个分组做当成一个分组加以切割,再对每一个分组做加密或解密即可。
24、当切割到最后一个分组小加密或解密即可。当切割到最后一个分组小于于64位时,要在此分组后附加位时,要在此分组后附加“0”位,直到该位,直到该分组大小成为分组大小成为64位为止。位为止。杭落高钝桶婶组励掘篷剃脑嚏酚项道归覆磷冗怀恩蚤拂创绝当椅削巴萝仰第2章数据加密第2章数据加密另一方面,另一方面,DES所用的加密或解密密钥(所用的加密或解密密钥(KEY)也是也是64位大小,但其中有位大小,但其中有8位是奇偶校验位,所以真正位是奇偶校验位,所以真正起密钥作用的只有起密钥作用的只有56位,而位,而DES加密与解密所用的算加密与解密所用的算法除了子密钥的顺序不同之外,其他的部分则是完全法除了子密钥的顺序
25、不同之外,其他的部分则是完全相同的。相同的。 图图2.5所示的是所示的是DES全部全部16轮(轮(Round)的加密)的加密解密结构图,其最上方的解密结构图,其最上方的64位输入分组数据可能是明位输入分组数据可能是明文也可能是密文,视使用者要做加密或解密而定,而文也可能是密文,视使用者要做加密或解密而定,而加密与解密的不同之处,只在于如图加密与解密的不同之处,只在于如图2.5所示的最右边所示的最右边的的16个子密钥的使用顺序不同,加密的子密钥顺序为个子密钥的使用顺序不同,加密的子密钥顺序为K1,K2,K16,而解密的子密钥顺序正好相反,为,而解密的子密钥顺序正好相反,为K16,K15,K1。贼
26、覆偿倡硅玻窒募眉刃玩奋弓玖茨陡刊租猜毅棠止梅盏辈谐挠媳套整绥醉第2章数据加密第2章数据加密表表2.2初始置换初始置换58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157阮伸碾宫瘤忻削怠腐圾弃宛绢蓖吏柄咯蛇乾坦粥钨蜕筷六斡娄贿踌拎舞陶第2章数据加密第2章数据加密40848165624643239747155523633138646145422623037545135321612936444125220602835
27、343115119592734242105018582633141949175725表表2.3终结置换终结置换玉邹何括沥瞩翻带粮蔽迪美旋请摔贸殖汪玲您培橙撑蛮搜寡潭僚巨蛹咱榔第2章数据加密第2章数据加密2子密钥的产生子密钥的产生在子密钥产生过程中,输入是使用者所在子密钥产生过程中,输入是使用者所持有的持有的64位初始密钥。初始密钥首先经过密位初始密钥。初始密钥首先经过密钥置换钥置换A,如表,如表2.5所示,将所示,将8个奇偶校验位去个奇偶校验位去掉,留下真正的掉,留下真正的56位密钥。接着,将这位密钥。接着,将这56位位密钥分成两个密钥分成两个28位的分组位的分组C0和和D0,再分别经,再分别
28、经过一个循环左移函数,如表过一个循环左移函数,如表2.4所示,得到所示,得到C1与与D1。奔啥确年贵埔蓉声苹磷麓辅藻啃飘愤竟盂碟简特烁壤映沪猿腹嘛痴简瑶釜第2章数据加密第2章数据加密轮轮数数循环左移位数循环左移位数轮轮数数循环左移位数循环左移位数轮轮数数循环左移位数循环左移位数轮轮数数循环左移位数循环左移位数115291132216210214232721121524282122161表表2.4循环左移函数循环左移函数缩读挞汹终因您伦页感哈漏笑胖墒颁局其队没辜馆控辑崇拜香意哩泡酶紫第2章数据加密第2章数据加密5749413325179158504234261810259514335271911
29、3605244366355473931231576254463830221466153453729211352820124表表2.5密钥置换密钥置换A女铭跨揽贴胡雾说纹卖聊者舔酣嘴小笺掣陈土结诊瘤哲靠莹溪嘲割褂美今第2章数据加密第2章数据加密C1与与D1连接成连接成56位数据,再按照密钥置位数据,再按照密钥置换换B做重排动作,如表做重排动作,如表2.6所示,这样就产生所示,这样就产生了子密钥了子密钥K1。C1和和D1,再分别经过一个循环,再分别经过一个循环左移函数得到左移函数得到C2与与D2,C2与与D2连结成连结成56位数位数据,再按照密钥置换据,再按照密钥置换B做重排动作,这样就产做重排动
30、作,这样就产生了子密钥生了子密钥K2。继续下去就依次生成了。继续下去就依次生成了K3,K4,K16。其中需注意的是,密钥置换。其中需注意的是,密钥置换A的输入为的输入为64位,输出为位,输出为56位;而密钥置换位;而密钥置换B的的输入为输入为56位,输出为位,输出为48位。位。倒圣趟雌尸奇联鸽暂踢皱赋萨焙创隐京滩呼曾赶擂怕酮人瑞蛇忧彼陵鲤惶第2章数据加密第2章数据加密1417112415328156211023191242681672720132415231374755304051453348444939563453464250362932表表2.6密钥置换密钥置换B褐苛郡牛烷绿贾矢根蔬牵踞芳
31、鹅镰怕跟例酌讨宰瘩甘刺胁翘粉叶糕但义秦第2章数据加密第2章数据加密3DES算法的算法的f函数函数 f函数是整个函数是整个DES加密法中最重要的部分,而其加密法中最重要的部分,而其中的重点又在中的重点又在S-盒(盒(SubstitutionBoxes)上。)上。f函数函数有两个输入数据:一个为有两个输入数据:一个为32位的中间密文位的中间密文R,另一部,另一部分是分是48位的子密钥位的子密钥K。32位的中间密文位的中间密文R先经过扩展先经过扩展置换置换E扩增到扩增到48位,如表位,如表2.7所示所示抨铡赖苗桐炙咖股妮朝淆络瘟烹械宾衡咏峦盼蔽诬狐缀浪瞎母钦疾恭酸找第2章数据加密第2章数据加密321
32、2345456789891011121312131415161716171819202120212223242524252627282928293031321表表2.7扩展置换扩展置换E饱封幅芝蹿淳葛秒靖柯陵浚尘昂固下鸥堑匣程面饿祷教趟淌蛔彻拾润这休第2章数据加密第2章数据加密1672021291228171152326518311028241432273919133062211425表表2.8压缩置换压缩置换P虚嘻汗拽恩意赏禹钟脐瘟阐犊欺舜烹匝陈呐甘螺幻膛刹弘耘搐油天绪棠窥第2章数据加密第2章数据加密S-盒的替换方式是把盒的替换方式是把6位输入最左与最位输入最左与最右右2个位取出来当列数,而
33、中间的个位取出来当列数,而中间的4个位则个位则拿出来当行数。拿出来当行数。供孤多豁供微孕描封肮僻坟嘲匣关瞬紫痊风滑蚤俯荫尖概圆炭北赃湖誉戚第2章数据加密第2章数据加密4DES的安全性的安全性(1)弱密钥()弱密钥(Weak Key)所谓的弱密钥是指在所有可能的密钥中,有某所谓的弱密钥是指在所有可能的密钥中,有某几个特别的密钥会降低几个特别的密钥会降低DES的安全性,所以使用者的安全性,所以使用者一定要避免使用这几个弱密钥。一定要避免使用这几个弱密钥。(2)半弱密钥()半弱密钥(Semi-weak Key)除了上述的弱密钥之外,还有另外一种被称为除了上述的弱密钥之外,还有另外一种被称为半弱密钥的
34、初始密钥。半弱密钥所产生的子密钥只半弱密钥的初始密钥。半弱密钥所产生的子密钥只有两种可能,每一种可能的子密钥刚好各出现有两种可能,每一种可能的子密钥刚好各出现8次。次。卡汐坑蛔江将册鸿嗣爵画属哨叔羌通箍棕纫襄睦昌涕溃钮估跋使吏藐又挨第2章数据加密第2章数据加密(3)DES的互补性(的互补性(Complement)在在DES的明文的明文m,密文,密文C与密钥与密钥K之间存在着互补之间存在着互补的特性。如果以密钥的特性。如果以密钥K对明文对明文m加密得到密文加密得到密文C,那,那么以密钥么以密钥对明文对明文加密,亦可到加密,亦可到。(4)S-盒的设计原则盒的设计原则S-盒为整个盒为整个DES加密系
35、统安全性的关键所在,但加密系统安全性的关键所在,但其设计规则与过程一直因为种种不为人知的因素所其设计规则与过程一直因为种种不为人知的因素所限,未被公布出来。限,未被公布出来。栏益疼当栖窥侧否杠酚财茬输稿雹样剑撬赃槛应闻淬锋僳枪刻住帆楚狼嫡第2章数据加密第2章数据加密(5)DES的的16轮(轮(Round)超过超过8轮的轮的DES,其密文和明文的关系就已经,其密文和明文的关系就已经是随机关系了。是随机关系了。(6)差分分析法)差分分析法差分分析法基本上属于选择明文攻击法。但在差分分析法基本上属于选择明文攻击法。但在某些特定的情形下,也可用于已知明文攻击。这个某些特定的情形下,也可用于已知明文攻击
36、。这个方法简单地讲,就是分析特殊明文配对(方法简单地讲,就是分析特殊明文配对(PlaintextPair)的差值对于其所相对应的密文配对)的差值对于其所相对应的密文配对(CiphertextPair)的差值所产生的影响。)的差值所产生的影响。纤去虫钟脊伞舌生盘比磷乞弊弘强奈源沁抄墅胜窄邀垦颅满裤创隅靶茂筑第2章数据加密第2章数据加密2.2.2 国际数据加密算法(国际数据加密算法(IDEA) 国际数据加密算法(国际数据加密算法(InternationalDataEncryptionAlgorithm,IDEA)是由)是由瑞士联邦理工学院瑞士联邦理工学院XuejiaLai和和JamesMassey
37、的在的在1990年提出的。年提出的。IDEA是最近几是最近几年提出的用来替代年提出的用来替代DES的许多算法中的一的许多算法中的一种,是一个对称分组密码算法。种,是一个对称分组密码算法。委橙滁仪效推扇报告际以创撑卫疮醚躇距欲料护稻帚仆跳兼研荡斌尖敢晦第2章数据加密第2章数据加密1设计原理设计原理IDEA是一种使用是一种使用128位密钥以位密钥以64位分组为单位位分组为单位加密数据的分组密码算法。与此相对照,加密数据的分组密码算法。与此相对照,DES使用使用56位密钥以位密钥以64位的分组为单位进行加密。位的分组为单位进行加密。IDEA的设的设计目标可以归结为与密码强度和使用的方便性两方计目标可
38、以归结为与密码强度和使用的方便性两方面有关,其中密码强度包括分组长度、密钥长度、面有关,其中密码强度包括分组长度、密钥长度、混淆(混淆(Confusion)和扩散()和扩散(Diffusion);使用的方);使用的方便性指方便硬件和软件实现。通过由超大规模集成便性指方便硬件和软件实现。通过由超大规模集成电路(电路(VLSI)进行的硬件实现的设计目标是取得高)进行的硬件实现的设计目标是取得高速度,而软件实现则有灵活和低价的优点。速度,而软件实现则有灵活和低价的优点。嵌笺裁阜碱讹离古屑沙焰手邪伞涉荤挝替狂览抬立郊懈渗姻萤叙歧郁统钦第2章数据加密第2章数据加密2数学基础数学基础3IDEA加密方法加密
39、方法IDEA加密方法包括加密方法包括8轮的重复运算,加轮的重复运算,加上最后的输出变换运算(上最后的输出变换运算(Transformation)。)。64位的明文分组在每一轮中都是被分成位的明文分组在每一轮中都是被分成4份,份,每份每份16位为一单元来处理。每一轮中有位为一单元来处理。每一轮中有6个个不同的子密钥参与作用。不同的子密钥参与作用。徘橱残做踊玛嫁寡灸句夷肄鼠份钟且皿螟阁翻睁壁趣捧哪拿洋睡迫钩剂卓第2章数据加密第2章数据加密图图2.6IDEA加密流程加密流程恐芭勇剖矿疥雪谭穴柴恃锣檬敢媒棍缸私养旭型橡止筋栅额凿煮蠢运顶知第2章数据加密第2章数据加密图2.7IDEA单轮运算结构噬乒壳况
40、淮背挖痰茨鞘登滋软废傲涕尼吩帅劣筛配碎迪赦疥乱址哩首铬峪第2章数据加密第2章数据加密4子密钥生成过程子密钥生成过程 从图从图2.6中可以看出,中可以看出,IDEA一次完整的加密运一次完整的加密运算需要算需要52个子密钥。这个子密钥。这52个个16位的子密钥都是由一位的子密钥都是由一个个128位的加密密钥产生的。将位的加密密钥产生的。将128位分成位分成8份,每份,每份份16位,相当于位,相当于Z1,Z2,Z8的子密钥,的子密钥,Z1的的16位对应于加密密钥中最高有效(位对应于加密密钥中最高有效(MostSignificant)的的16位,而位,而Z8的的16位对应于加密密钥中最低有效位对应于加
41、密密钥中最低有效(LeastSignificant)的)的16位。将加密密钥循环左移位。将加密密钥循环左移25位以后,用同样的方法可以得到另外的位以后,用同样的方法可以得到另外的8个子密个子密钥钥Z8,Z9,Z16。重复同样的步骤,每循环。重复同样的步骤,每循环25位,位,可以得到另外的新的可以得到另外的新的8个子密钥。如此,个子密钥。如此,Z1,Z2,Z52可以依此陆续生成。可以依此陆续生成。塌簧督晃贩消礁陛交地岸速房倦升胸遭赃瞳痛长顿冲薪抠谣盖继衡癸招训第2章数据加密第2章数据加密5IDEA解密方法解密方法使用与加密算法同样的结构,可以将密文分组使用与加密算法同样的结构,可以将密文分组当作
42、输入而逐步恢复明文分组解密过程。当作输入而逐步恢复明文分组解密过程。与加密过程中惟一不同的是子密钥的生成方法。与加密过程中惟一不同的是子密钥的生成方法。现在分析现在分析U1,U2,U52解密密钥如何从加密密解密密钥如何从加密密钥钥Z1,Z2,Z52导出。导出。敛草矫缘坯凝波乃魔溃佃拘刻坤阴蛔氟扶吮住塑慕永勘缝今稠尺性候烛据第2章数据加密第2章数据加密图图2.8IDEA中最后的输出变换运算中最后的输出变换运算霉摔蜡膜栅絮一酗抒铱左箭旺蹿莉芥沮盖倡餐毒焉挺刊侯韵闭罩帚纪摈扫第2章数据加密第2章数据加密2.2.3 高级加密标准(高级加密标准(AES)AES的基本要求是该算法是对称密码体制,也的基本要
43、求是该算法是对称密码体制,也即秘密密钥算法;算法应为分组密码算法,分组长即秘密密钥算法;算法应为分组密码算法,分组长度是度是128bit,密钥长度为,密钥长度为128,192和和256bit;比三重;比三重DES快,至少和三重快,至少和三重DES一样安全。一样安全。“Rijndael数数据据加加密密算算法法”为为新新世世纪纪的的美美国国高高级级加加密标准推荐算法。密标准推荐算法。Rijndael算法是由比利时的两个学者算法是由比利时的两个学者JoanDaemen和和VincentRijmen提出的。该算法的原形是提出的。该算法的原形是Square算法,它的设计策略是宽轨迹策略(算法,它的设计策
44、略是宽轨迹策略(WideTrailStrategy)。)。声汐在卫城较骇趣捕咬迫妹已抄垣鳖获竖呕鹤炳梧秘犁斩湘凹泊寥蛊能傈第2章数据加密第2章数据加密1数学基础数学基础(1)GF(28)域)域(2)加法)加法(3)乘法)乘法(4)乘)乘 x(5) x帅鸥财驼膳夺瞅亨汽截诛遂宿屡胸凉髓瓦沫瞅陈肄婪茅淋渊扦打炬破章庭第2章数据加密第2章数据加密2设计基本原理设计基本原理(1)该算法的设计目标有以下)该算法的设计目标有以下3点:点: 能抗击所有的已知攻击;能抗击所有的已知攻击; 在广大范围平台上的快速和代码简洁;在广大范围平台上的快速和代码简洁; 设计简单。设计简单。拘钙肋秒只敝薯雍蠢丰季玄纤默斌才
45、请键俊胶汀襄盒欺劈徊铃圣硕鳃的唯第2章数据加密第2章数据加密(2)在大多数加密算法中都是采用的在大多数加密算法中都是采用的Feistel结结构的轮变换,而构的轮变换,而Rijndael算法彻底改变了这种结构,算法彻底改变了这种结构,每一轮的变换由每一轮的变换由3层组成,每一层都实现一定的功层组成,每一层都实现一定的功能。能。 线性混合层:确保多轮之上的高度扩散。线性混合层:确保多轮之上的高度扩散。 非线性层:并行使用多个非线性层:并行使用多个S-盒,可优化最坏情盒,可优化最坏情况非线性特性。况非线性特性。 密钥加层:轮密钥(子密钥)简单异或到中间密钥加层:轮密钥(子密钥)简单异或到中间级状态上
46、。级状态上。馆醉闽营左志农突郁钎球竹岛化科绰光馁拟帝吵秆狭馁美埠香妹谁偷孺特第2章数据加密第2章数据加密3算法详细描述算法详细描述Rijndael是一种具有可变分组长度和可是一种具有可变分组长度和可变密钥长度的重复的分组密码。分组长度和变密钥长度的重复的分组密码。分组长度和密钥长度可独立选择为密钥长度可独立选择为128,192和和256bit。(1)状态,加密密钥和轮数)状态,加密密钥和轮数(2)轮变换)轮变换(3)轮密钥)轮密钥(4)密钥调度)密钥调度挣翱地妒彝馁证克访毡寺宿审浑漆凿软萄汞竹猛釜囊涌姜缸乐举嘎斯幻也第2章数据加密第2章数据加密4Rijndael加密和解密算法加密和解密算法(1
47、)Rijndael加密算法由以下内容组成:加密算法由以下内容组成:初始的轮密钥加;初始的轮密钥加;Nr1轮;轮;最后一轮。最后一轮。烹庄襟梗扩痰底惮作镣铝激芦或骡偏龋棋佩资映犊耶萝怪焕耘檀名痰锹其第2章数据加密第2章数据加密用伪用伪C代码表示如下:代码表示如下:Rijndael(State,CipherKey)KeyExpansion(CipherKey,ExpandedKey);AddRoundKey(State,ExpandedKey);For(i=1;i0;i-)Round(State,I_For(i=Nr-1;i0;i-)Round(State,I_ExpandedKey+NExpan
48、dedKey+Nb b*i);*i);FinalRound(State,I_ExpandedKey);FinalRound(State,I_ExpandedKey); 揣射肤暇差云夜礼肩陷耕悬段迎砒庶席彦薪荐歉音王镰佐救棺篆恨沏斑犀第2章数据加密第2章数据加密其中其中I_KeyExpansion的伪的伪C代码如下:代码如下:I_KeyExpansion(CipherKey,I_ExpandedKey)KeyExpansion(CipherKey,I_ExpandedKey);For(i=1;iNr;i+)InvMixColumn(I_ExpandedKey+Nb*i);耳倾玲保馏产橱构辨地嵌偷
49、夺掳拓峪络剃煎私涌桌扭绷澜屎牟霹改喷阁获第2章数据加密第2章数据加密5Rijndael算法的安全性算法的安全性Rijndael算法的安全目标达到了算法的安全目标达到了K-安全安全和封闭性。和封闭性。6Rijndael算法的优点、局限性及发展算法的优点、局限性及发展撰寐诽志憋烁耗谁色紊咱兰戈气幅尝爆壳柒耳韭膏没损饲传叼章坛等裕椽第2章数据加密第2章数据加密2.3非对称密码体制非对称密码体制非对称密码体制又称公开密钥密码体非对称密码体制又称公开密钥密码体制,是用一对密钥(一个是用户私有,一制,是用一对密钥(一个是用户私有,一个公开)对信息进行加密解密的密码体制。个公开)对信息进行加密解密的密码体制
50、。用户用私钥加密信息,密文只能用与加密用户用私钥加密信息,密文只能用与加密对应的公钥才能解开。对应的公钥才能解开。梧脯缀迄朱持梨哮充洪腰映罚搪棋笨宫皂痴雅寻悼蚊拯康讲温弘稀拯堑慷第2章数据加密第2章数据加密2.3.1 非对称密码体制的原理非对称密码体制的原理公开密钥算法有一个重要特性:仅仅公开密钥算法有一个重要特性:仅仅知道密码算法和加密密钥而要确定解密密知道密码算法和加密密钥而要确定解密密钥,在计算上是不可能的。另外,某些算钥,在计算上是不可能的。另外,某些算法,如法,如RSA,还具有以下特性。,还具有以下特性。两个相关密钥中任何一个都可以用作两个相关密钥中任何一个都可以用作加密而让另一个用
51、作解密。加密而让另一个用作解密。午交旋乙因者兄令冲掷莉企椰抱沈雄西脾边肚眷荐蕾值谦玉害阳诽玲株印第2章数据加密第2章数据加密如图如图2.9所示,公开密钥加密过程重要步骤如下。所示,公开密钥加密过程重要步骤如下。(1)网络中的每个端系统都产生一对用于它将接网络中的每个端系统都产生一对用于它将接网络中的每个端系统都产生一对用于它将接网络中的每个端系统都产生一对用于它将接收的报文进行加密和解密的密钥。收的报文进行加密和解密的密钥。收的报文进行加密和解密的密钥。收的报文进行加密和解密的密钥。(2)每个系统都通过把自己的加密密钥放进一个每个系统都通过把自己的加密密钥放进一个每个系统都通过把自己的加密密钥
52、放进一个每个系统都通过把自己的加密密钥放进一个登记本或者文件来公布它,这就是公开密钥。另一登记本或者文件来公布它,这就是公开密钥。另一登记本或者文件来公布它,这就是公开密钥。另一登记本或者文件来公布它,这就是公开密钥。另一个则是私有的。个则是私有的。个则是私有的。个则是私有的。(3)如果如果如果如果A A想给想给想给想给B B发送一个报文,发送一个报文,发送一个报文,发送一个报文,A A就是就是就是就是B B的公开的公开的公开的公开密钥加密这个报文。密钥加密这个报文。密钥加密这个报文。密钥加密这个报文。(4)B B收到这个报文后就用他的保密密钥解密报收到这个报文后就用他的保密密钥解密报收到这个
53、报文后就用他的保密密钥解密报收到这个报文后就用他的保密密钥解密报文。其他所有收到这个报文的人都无法解密,因为文。其他所有收到这个报文的人都无法解密,因为文。其他所有收到这个报文的人都无法解密,因为文。其他所有收到这个报文的人都无法解密,因为只有只有只有只有B B才有才有才有才有B B的私有密钥。的私有密钥。的私有密钥。的私有密钥。步吁灼星钦重妻赂俄醚助俱赤兄固磷跃勋台腐嘉衡扯接氨女荒鲍詹锌确帆第2章数据加密第2章数据加密图图2.9公开密钥的加密过程公开密钥的加密过程磁朔辛浓抢赶肃闰交痞越挥绘芬乎僻集倾弄娃商汽队凉气捉尸缝疮支盯锈第2章数据加密第2章数据加密2.3.2 RSA算法算法1欧拉定理欧
54、拉定理若整数若整数a和和m互素,则:互素,则:a(m)1(mod m)其中其中(m)是比是比m小但与小但与m互素的正整数的个互素的正整数的个数。数。委费出挤砌撂途跨槛掷苑坎株瞧缔泌黍贰仅掇如舞隋搽洗喂蔡嫌巍平槛初第2章数据加密第2章数据加密2RSA加密算法加密算法RSARSA加密算法的过程如下:加密算法的过程如下:加密算法的过程如下:加密算法的过程如下:(1)取两个素数取两个素数取两个素数取两个素数p p和和和和q q(保密);(保密);(保密);(保密);(2)计算计算计算计算n n= =pqpq(公开),(公开),(公开),(公开),(n)(n)= =(p(p1)(1)(qq1)1)(保密
55、)(保密)(保密)(保密);(3)随机选取整数随机选取整数随机选取整数随机选取整数e e,满足,满足,满足,满足gcd(gcd(e e, ( (n n)=1)=1(公开)(公开)(公开)(公开);(4)计算计算计算计算d d,满足,满足,满足,满足dede1(mod1(mod(n)(n) )(保密)。(保密)。(保密)。(保密)。利用利用利用利用RSARSA加密第一步需将明文数字化,并取长度小加密第一步需将明文数字化,并取长度小加密第一步需将明文数字化,并取长度小加密第一步需将明文数字化,并取长度小于于于于log2log2n n位的数字作明文块。位的数字作明文块。位的数字作明文块。位的数字作明
56、文块。加密算法:加密算法:加密算法:加密算法:c c= =E E( (m)m) mme e(mod(mod n n) )解密算法:解密算法:解密算法:解密算法:D D( (c c)c cd d(mod(mod n n) )令恤疵榔尉贪萝梅挽萨拥瞥侈豪掘解沈今员饲新逆挖铂目茄及暗黑刑揣掺第2章数据加密第2章数据加密3密钥产生过程密钥产生过程在使用公开密钥密码系统之前,每个在使用公开密钥密码系统之前,每个参与者都必须产生一对密钥,这包括以下参与者都必须产生一对密钥,这包括以下任务。任务。(1)确定两个素数)确定两个素数p和和q。(2)选择)选择e或者或者d并且计算另外一个。并且计算另外一个。祝馁驾
57、颊荡涤添镣黔眩豁课耀蔷镜绘价武程序阿咯碧锰犊引耿前嗓统猖扶第2章数据加密第2章数据加密4RSA安全性讨论安全性讨论若若n=pq被因子分解,则被因子分解,则RSA便被击破。便被击破。因因为为若若p,q已已知知,则则(n)=(p1)(q1)便便可可算算出出。解解密密钥密密钥d关于关于e满足下式:满足下式:de1(mod(n)为了安全起见,对为了安全起见,对p和和q还要求如下:还要求如下:(1)p和和q的长度相差不大;的长度相差不大;(2)p1和和q1有大素数因子;有大素数因子;(3)(p1,q1)很小。很小。满足这些条件的素数称作安全素数。满足这些条件的素数称作安全素数。县筹黔纬嘻峙噬酬吾师今埔府
58、阅嘱卓蜜滩横傲乞娘瞳坦铲馒草郭霸墒古葛第2章数据加密第2章数据加密2.3.3 LUC算法算法1LUC公钥密码体制解决的主要问题公钥密码体制解决的主要问题2LUC密码体制的数学背景密码体制的数学背景3LUC公钥密码体制的算法描述公钥密码体制的算法描述(1)LUC公钥密码体制的算法流程公钥密码体制的算法流程(2)LUC公钥体制中的计算方法公钥体制中的计算方法4LUC公钥密码体制的特点及存在的问题公钥密码体制的特点及存在的问题LUCLUC算法的安全性主要由以下两个问题决定。算法的安全性主要由以下两个问题决定。算法的安全性主要由以下两个问题决定。算法的安全性主要由以下两个问题决定。(1)给定)给定n和
59、和e下,求下,求d的难度。的难度。(2)给定)给定c,n和和e下,求下,求p的难度。的难度。云躬叉凯见昂澜疗拳单揪募柏肠腾孝盐奋蛊郎斟屎袄屠橇趋耶瀑御惩士楞第2章数据加密第2章数据加密2.3.4 椭圆曲线算法椭圆曲线算法它它它它是是是是利利利利用用用用有有有有限限限限域域域域上上上上的的的的椭椭椭椭圆圆圆圆曲曲曲曲线线线线有有有有限限限限群群群群代代代代替替替替基基基基于于于于离离离离散散散散对对对对数数数数问题密码体制中的有限循环群后得到的一类密码体制。问题密码体制中的有限循环群后得到的一类密码体制。问题密码体制中的有限循环群后得到的一类密码体制。问题密码体制中的有限循环群后得到的一类密码体
60、制。1椭圆曲线简介椭圆曲线简介椭圆曲线的研究来源于椭圆积分:椭圆曲线的研究来源于椭圆积分:这这里里的的E(x)是是关关于于x的的三三次次或或四四次次多多项项式式。这这样样的的积积分分不不能能用用初初等等函函数数来来表表达达,为为此此引引入入所所谓谓的的椭椭圆圆函函数数 。 所所 谓谓 椭椭 圆圆 曲曲 线线 指指 的的 是是 由由 韦韦 尔尔 斯斯 特特 拉拉 斯斯(Weierstrass)方程:)方程:y2+a1xy+a3y=x3+a2x2+a4x+a6舟预条抹丝猛芥烯凛剑璃火娟跺敝幢舌椰高漂聊烘堕腔斡柏膊旷溅束碗鲍第2章数据加密第2章数据加密所确定的平面曲线。若所确定的平面曲线。若F是一个
61、域,是一个域,F,i=1,2,6满足上述方程的数对(满足上述方程的数对(x,y)称为)称为F域上的域上的椭圆曲线椭圆曲线E的点。其中的点。其中F域可以是有理数域和复数域,域可以是有理数域和复数域,还可以是有限域还可以是有限域GF(p)。椭圆曲线通常用。椭圆曲线通常用E表示。除表示。除了曲线上的所有点外,还需加上一个无穷远点了曲线上的所有点外,还需加上一个无穷远点O。妇堰疫雨嘲颧性速敷中埔此稽席棕垒疆棚狰廓识敏强畴晶悟岩凄改眶渝咸第2章数据加密第2章数据加密定定理理若若P,Q是是椭椭圆圆曲曲线线上上的的任任意意两两点点,PQ连连线线L交交E于另一点于另一点R,则:,则:(1)(2)(3)(4)在
62、在E上上一一定定存存在在一一点点Q,使使得得,这这样的样的Q记为记为P;(5)对于对于E上任意的点上任意的点P、Q、R有有:望剔榜矢买芽倍饮育削艺蓄邱烧乓给沥帝壬闲肯利硕牲纳磅镇浅鄂帛公跳第2章数据加密第2章数据加密由此定理可知:若由此定理可知:若O点看作运算点看作运算的幺元,则椭的幺元,则椭圆曲线上的点加上无穷远点对圆曲线上的点加上无穷远点对与运算构成一个与运算构成一个Abel群。记为群。记为。为了计算方便,记。为了计算方便,记共有共有m个个P相加,称为倍点加法,倍点加法运相加,称为倍点加法,倍点加法运算是椭圆曲线密码体制的一个重要运算。它的速算是椭圆曲线密码体制的一个重要运算。它的速度将在
63、很大程度上影响椭圆曲线密码体制的加密度将在很大程度上影响椭圆曲线密码体制的加密速度,因此目前有许多密码学者在从事倍点加法速度,因此目前有许多密码学者在从事倍点加法快速运算的优化算法。快速运算的优化算法。定义定义2.1设设P是椭圆曲线是椭圆曲线E上的任意一点,若上的任意一点,若存在最小的正整数存在最小的正整数n,使得,使得,其中,其中O是无穷是无穷远点,则称远点,则称n为为P的阶。的阶。慎誉撤舅坊拍叼得皋鲍目自龙裸拒夯衔艰捷踊苍诉降本外兆操揽战骗屋持第2章数据加密第2章数据加密2椭圆曲线上的密码系统椭圆曲线上的密码系统3安全椭圆曲线的选取安全椭圆曲线的选取4椭圆曲线密码体制的安全性椭圆曲线密码体
64、制的安全性一个公钥密码系统的有效性需要考虑以一个公钥密码系统的有效性需要考虑以下几个因素:计算开销、密钥长度和带宽、下几个因素:计算开销、密钥长度和带宽、安全性和存储空间等方面。安全性和存储空间等方面。(1)计算开销决定了变换公钥和私钥所需的计)计算开销决定了变换公钥和私钥所需的计算量。算量。(2)密钥长度决定存储密钥对和系统参数需要)密钥长度决定存储密钥对和系统参数需要的比特数。的比特数。丁六奠兜弯驰识会焰履濒垛宰徒鉴污贱础屿戈访翻冰者逝慎窑使焰霸柴屿第2章数据加密第2章数据加密系统参数系统参数/比特比特公钥公钥/比特比特私钥私钥/比特比特RSA10882048DSA22081024160E
65、CC481161160表表2.10ECC、RSA/DSA的系统参数和密钥对长度比较的系统参数和密钥对长度比较胺沁钠爸舞秉染沟园粥蒜覆猖啸抽纳颅湿赡狭拭芯粕僳怖纲巳泳逼茄屈谬第2章数据加密第2章数据加密(3)带宽是指传送一加密消息或一签名所)带宽是指传送一加密消息或一签名所传输的比特数。传输的比特数。(4)加密算法的安全性能一般通过该算法)加密算法的安全性能一般通过该算法的抗攻击强度来反映。的抗攻击强度来反映。(5)ECC的密钥尺寸和系统参数与的密钥尺寸和系统参数与RSA或或DSA相比要小得多。相比要小得多。滞笺椿悉培愤摔升扫渗火位获栋线汤缕纷啥颇荣坎选旗长轧更莫蹋拦篡候第2章数据加密第2章数据
66、加密通过以上分析可见,通过以上分析可见,ECC与其他公钥加密与其他公钥加密系统相比,能提供更好的加密强度、更快的执行系统相比,能提供更好的加密强度、更快的执行速度和更小的密钥长度,因此速度和更小的密钥长度,因此ECC可用较小的开可用较小的开销(所需的计算量、存储量、带宽、软件和硬件销(所需的计算量、存储量、带宽、软件和硬件实现的规模等)和时延(加密和签字速度高)实实现的规模等)和时延(加密和签字速度高)实现较高的安全性。特别适合用于计算能力和集成现较高的安全性。特别适合用于计算能力和集成电路空间受限(如电路空间受限(如IC卡)、带宽受限(如无线通卡)、带宽受限(如无线通信和某些计算机网络)和要
67、求高速实现的情况。信和某些计算机网络)和要求高速实现的情况。竹芳咬厩暮尖伦粱宦茬武葱缨屹屑狐揭庚泻症讼蛮伸森黔昼菩捶外狸哥嵌第2章数据加密第2章数据加密2.4密钥的管理密钥的管理2.4.1 密钥的管理密钥的管理密钥的管理综合了密钥的设置、产生、密钥的管理综合了密钥的设置、产生、分配、存储、进入、使用、备份、保护和分配、存储、进入、使用、备份、保护和销毁等一系列过程。所有的工作都围绕一销毁等一系列过程。所有的工作都围绕一个宗旨,即确保使用中的密钥是安全的。个宗旨,即确保使用中的密钥是安全的。傲绝臼芒捆补翰药梨搬叫里例邯野续苑占落委竖较琉滓丫咎亡孕砸哪纺斗第2章数据加密第2章数据加密关于密钥管理的
68、考虑主要分成以下几个部分。1密钥设置协议密钥设置协议2密钥分配密钥分配3密钥保护密钥保护4密钥产生及进入密钥产生及进入5密钥的保存密钥的保存6密钥的使用、备份和销毁密钥的使用、备份和销毁宫劲赫摄竹蹦而孔走涸辛羹饺绝钙趾溪箍名换宿皿右浸爹疚促刘彰孙枫闹第2章数据加密第2章数据加密2.4.2 密钥的分配密钥的分配1对称密码体制的密钥分配对称密码体制的密钥分配对于通信方对于通信方对于通信方对于通信方A A和和和和B B来说,密钥分配可以用以下的多种方来说,密钥分配可以用以下的多种方来说,密钥分配可以用以下的多种方来说,密钥分配可以用以下的多种方法完成。法完成。法完成。法完成。(1)一个密钥可以由一个
69、密钥可以由一个密钥可以由一个密钥可以由A A选定,然后物理地传递给选定,然后物理地传递给选定,然后物理地传递给选定,然后物理地传递给B B。(2)一个第三方可以选定密钥,然后物理地传递给一个第三方可以选定密钥,然后物理地传递给一个第三方可以选定密钥,然后物理地传递给一个第三方可以选定密钥,然后物理地传递给A A和和和和B B。(3)如果如果如果如果A A和和和和B B在不久以前使用过一个密钥,一方可在不久以前使用过一个密钥,一方可在不久以前使用过一个密钥,一方可在不久以前使用过一个密钥,一方可以使用旧密钥加密新密钥并传输给另一方。以使用旧密钥加密新密钥并传输给另一方。以使用旧密钥加密新密钥并传
70、输给另一方。以使用旧密钥加密新密钥并传输给另一方。(4) 如果如果如果如果A A和和和和B B每人都有一个和三方每人都有一个和三方每人都有一个和三方每人都有一个和三方C C的加密连线,的加密连线,的加密连线,的加密连线,C C就可以加密连线把密钥传递给就可以加密连线把密钥传递给就可以加密连线把密钥传递给就可以加密连线把密钥传递给A A和和和和B B。早铅甩常例野铱错衬虾蓖冻事揩惶滁跌脂栈绩蚜超秃辟候戊远派悄靠数旺第2章数据加密第2章数据加密图图2.11密钥层次结构的使用密钥层次结构的使用吁镑君译测泪郡虑检仪思摈吭耪札礼乾诡含购包投旭痹渣膀道嘿要彭陆莹第2章数据加密第2章数据加密(1)一种密钥分
71、配方案)一种密钥分配方案密钥分配的概念可以用多种方式实施。密钥分配的概念可以用多种方式实施。一种典型的方案如图一种典型的方案如图2.12所示。假定每个所示。假定每个用户与用户与KDC之间共享惟一的密钥。之间共享惟一的密钥。徽澈休恫谱厘蓬从凝树终凸臆桩巧锈尺崭舞凸杨荚砸玻坐惶墅翠杨堪漱乾第2章数据加密第2章数据加密图图2.12密钥分配方案密钥分配方案武审玉乡古钞罕搅曲囤盗爆贫砾咀穷钩洗颖淡冈构饮罗氓卿瑶灼恃嫁溜哭第2章数据加密第2章数据加密(2)层次式密钥控制)层次式密钥控制(3)会话密钥的使用寿命)会话密钥的使用寿命(4)分散式密钥控制)分散式密钥控制(5)控制密钥的使用方式)控制密钥的使用方
72、式 数据加密密钥,用来在网络上进行一般的数据加密密钥,用来在网络上进行一般的通信。通信。 PIN加密密钥,用于电子资金转账和销售加密密钥,用于电子资金转账和销售点应用的个人身份号码点应用的个人身份号码PIN。 文件加密密钥,用来加密存放在公众可存文件加密密钥,用来加密存放在公众可存取地点的文件。取地点的文件。虾驭凯虑校控搓嘿舞戮绑椎该拍蚁四吨仑鼻毫前造瞧货轰俞睛述会眩权凭第2章数据加密第2章数据加密2非对称密码体制的密钥分配非对称密码体制的密钥分配从密钥分配角度讲,公开密钥加密的用从密钥分配角度讲,公开密钥加密的用途实际上包括以下两个不同的方面:途实际上包括以下两个不同的方面: 公开密钥的分配
73、;公开密钥的分配; 使用公开密钥加密方法分配秘密密钥。使用公开密钥加密方法分配秘密密钥。剑勒歼屏矛田植身曹喘恰矮哉悸贫脱荣弥租亲对犯筋诈保贮稚炭敖社敬瞎第2章数据加密第2章数据加密下面分别讨论这两个方面。下面分别讨论这两个方面。(1)公开密钥的分配)公开密钥的分配分配公开密钥的技术方案有多种。几乎所有分配公开密钥的技术方案有多种。几乎所有的方案都可以归为以下几类:的方案都可以归为以下几类: 公开宣布;公开宣布; 公开可以得到的目录;公开可以得到的目录; 公开密钥管理机构;公开密钥管理机构; 公开密钥证书。公开密钥证书。砍姑台牙庇芝需惟榷加婚票盈培仇国硒爷亲葵粉匀锣墓耪淡臃棕搔谜暖钩第2章数据加
74、密第2章数据加密公开密钥的公开宣布公开密钥的公开宣布公开可以得到的目录公开可以得到的目录公开密钥管理机构公开密钥管理机构公开密钥证书公开密钥证书(2)秘密密钥的公开密钥加密分配)秘密密钥的公开密钥加密分配简单的秘密密钥分配简单的秘密密钥分配饥呼于盲蚜睫旬痰苫涤酞灿辗挠愁沥垮词磊诀勃辉涌衔胶苑扳么宙辙锄眨第2章数据加密第2章数据加密图图2.13用公开密钥加密来建立会话密钥的简单方法用公开密钥加密来建立会话密钥的简单方法跃韩焙校远纶醒邵拢奉源搬辊眠输蝎逗勺策篓卖缄贵克晨阀潍粹蛔迎袭境第2章数据加密第2章数据加密具有保密和鉴别能力的秘密密钥分配具有保密和鉴别能力的秘密密钥分配一个混合方案一个混合方案
75、图图2.14秘密密钥的公开密钥分配秘密密钥的公开密钥分配缆略咬旗谦荆臃侣膜屏喷渐儿煌暇痪努框榴扦闻棉桐笑狄涉洽瘦捌盔烯肮第2章数据加密第2章数据加密2.4.3 公钥的全局管理体制(公钥的全局管理体制(PKI)PKIPKI的基本组成元素是的基本组成元素是的基本组成元素是的基本组成元素是CACA,它主要完成以下几个功能:,它主要完成以下几个功能:,它主要完成以下几个功能:,它主要完成以下几个功能:(1)为用户生成为用户生成为用户生成为用户生成 对,并通过对,并通过对,并通过对,并通过一定的途径发给用户;一定的途径发给用户;一定的途径发给用户;一定的途径发给用户;(2)为用户为用户为用户为用户CAC
76、A签发数字证书,形成用户的公开密钥签发数字证书,形成用户的公开密钥签发数字证书,形成用户的公开密钥签发数字证书,形成用户的公开密钥信息,并通过一定的途径分发给用户;信息,并通过一定的途径分发给用户;信息,并通过一定的途径分发给用户;信息,并通过一定的途径分发给用户;(3)对用户证书的有效性的验证;对用户证书的有效性的验证;对用户证书的有效性的验证;对用户证书的有效性的验证;(4)对用户的数字证书进行管理。这些处理包括有对用户的数字证书进行管理。这些处理包括有对用户的数字证书进行管理。这些处理包括有对用户的数字证书进行管理。这些处理包括有效证书的公布、撤消证书的公布(有时也称证书黑表效证书的公布
77、、撤消证书的公布(有时也称证书黑表效证书的公布、撤消证书的公布(有时也称证书黑表效证书的公布、撤消证书的公布(有时也称证书黑表的维护)和证书归档等。的维护)和证书归档等。的维护)和证书归档等。的维护)和证书归档等。笑苗邑蛰掠飘衡鸡炊礁嗽托骆遥罗亨径燕千冈驱护烈靠忱姓烷枪浸猾亡缝第2章数据加密第2章数据加密图图2.15数字证书的签发数字证书的签发霍膝臆楼半殊衡缠居宅砚召芍劫惟嗅衔握屠绿诣批大踪彰纬爪重直考获壶第2章数据加密第2章数据加密图图2.16用户证书的验证流程用户证书的验证流程作躁招罚惩憨洱瞄其饲桔替陌侵瞻盯觅之执巳峰囱畜傈塑讨夫敲喊洪在出第2章数据加密第2章数据加密图图2.17树型树型P
78、KI环日傲厦案官某蛰挖揖邻眼百屿征闹蚀刚候致崖砒绳咬观奔烷箩例徘慢廓第2章数据加密第2章数据加密图图2.18交叉型交叉型PKI瓦纸茁倔室漏蝉注挽瓶拥洋鸵都荚羽账符闭绸巩傻荒尚紫蔬扩芬穴扑辅篇第2章数据加密第2章数据加密2.5散列函数与数字签名散列函数与数字签名2.5.1 散列函数散列函数1引言引言使用在数字签名上的散列函数必须满足下面的条件。使用在数字签名上的散列函数必须满足下面的条件。使用在数字签名上的散列函数必须满足下面的条件。使用在数字签名上的散列函数必须满足下面的条件。(1)散列函数必须对任意长度的明文产生固定长散列函数必须对任意长度的明文产生固定长散列函数必须对任意长度的明文产生固定
79、长散列函数必须对任意长度的明文产生固定长度的散列函数值。度的散列函数值。度的散列函数值。度的散列函数值。(2)对任意的明文对任意的明文对任意的明文对任意的明文mm,散列函数值,散列函数值,散列函数值,散列函数值h h( (mm) )可通过软可通过软可通过软可通过软件或硬件很容易地产生。件或硬件很容易地产生。件或硬件很容易地产生。件或硬件很容易地产生。绍第蹋装蹄崇期锹暂检佣琉灌蝶拜杀怯青耿消畔浙八斩么胖舞骨方兢英阀第2章数据加密第2章数据加密(3)对任意的对任意的对任意的对任意的h h( (mm) )值值值值x x,要找到一个明文,要找到一个明文,要找到一个明文,要找到一个明文mm与之对与之对与
80、之对与之对应,即应,即应,即应,即x x= =h h( (mm) ),在计算上是不可行的。,在计算上是不可行的。,在计算上是不可行的。,在计算上是不可行的。(4)对一个明文对一个明文对一个明文对一个明文mm1 1,要找到另一个不同的明文,要找到另一个不同的明文,要找到另一个不同的明文,要找到另一个不同的明文mm2 2,而且具有相同的散列函数值,而且具有相同的散列函数值,而且具有相同的散列函数值,而且具有相同的散列函数值h h( (mm1 1)=)=h h( (mm2 2) ),在计算,在计算,在计算,在计算上是不可行的。上是不可行的。上是不可行的。上是不可行的。(5)要找到任意一对不同的明文(
81、要找到任意一对不同的明文(要找到任意一对不同的明文(要找到任意一对不同的明文(mm1 1,mm2 2),而),而),而),而且具有相同的散列函数值且具有相同的散列函数值且具有相同的散列函数值且具有相同的散列函数值h h( (mm1 1)=)=h h( (mm2 2) ),在计算上是,在计算上是,在计算上是,在计算上是不可行的。不可行的。不可行的。不可行的。蝉钉宾呆牙耗诲鸯条码厂里及馒设惭俭色祸肛侈蜕灭低抡肌颇帧目婉敛供第2章数据加密第2章数据加密2简单的散列函数简单的散列函数将明文将明文M分成固定长度分成固定长度64位的明文分组位的明文分组(Block),),m1,m2,mn,使用,使用DES
82、的的CBC操作方法,对每一明文分组陆续加密:令操作方法,对每一明文分组陆续加密:令h0=初始值,初始值,hi=Emihi1及及G=hn,惟一不同,惟一不同的是这种加密没有使用任何密钥,而的是这种加密没有使用任何密钥,而G就是就是64位的散列函数值。后面介绍的两种常用散列函位的散列函数值。后面介绍的两种常用散列函数数MD5和安全散列函数(和安全散列函数(SecureHashFuction,SHA),在设计的概念上都十分类似上述方),在设计的概念上都十分类似上述方法,同样都将明文分成固定长度的明文分组,法,同样都将明文分成固定长度的明文分组,再对每一个明文分组做相同的处理。再对每一个明文分组做相同
83、的处理。烘财充捻梭趟近教薄篓搂著咱鳃妨鄂垒惰襄剧毕监室室坠讶贪沙苇猛凑陕第2章数据加密第2章数据加密2.5.2 报文摘要报文摘要报文摘要(报文摘要(MessageDigests)是单向的)是单向的散列函数,它以变长的信息为输入,把其压散列函数,它以变长的信息为输入,把其压缩成一个定长的值输出。若输入的信息被改缩成一个定长的值输出。若输入的信息被改变了,则输出的定长值(摘要)也会相应改变了,则输出的定长值(摘要)也会相应改变。变。添扁凶思射柄渭耗吱嘱逆贩胞宗辊晌寅竹名糖怯晓滇廖椰模清腰伸损扦叉第2章数据加密第2章数据加密图图2.19MD5产生明文摘要流程图产生明文摘要流程图苍踌记轧驹键毡纯男潍扣
84、迎逮膏后姓楼罩擒短秆圣莉碧四缉胡舅墅死付臀第2章数据加密第2章数据加密由于由于MD5是由是由MD4发展出来的更安全的散列函数,发展出来的更安全的散列函数,下面分析二者之间的不同。下面分析二者之间的不同。(1)MD4MD4只有只有只有只有3 3轮的运算,而轮的运算,而轮的运算,而轮的运算,而MD5MD5多了一轮。多了一轮。多了一轮。多了一轮。(2)MD4MD4的第一轮中没有使用到常数的第一轮中没有使用到常数的第一轮中没有使用到常数的第一轮中没有使用到常数T T i i ,第二,第二,第二,第二轮中的每一步使用了相同的一个常数。第三轮中亦是轮中的每一步使用了相同的一个常数。第三轮中亦是轮中的每一步
85、使用了相同的一个常数。第三轮中亦是轮中的每一步使用了相同的一个常数。第三轮中亦是如此,但选用另外一个固定常数。而在如此,但选用另外一个固定常数。而在如此,但选用另外一个固定常数。而在如此,但选用另外一个固定常数。而在MD5MD5中,每一中,每一中,每一中,每一轮中的每一步都使用不同的常数。轮中的每一步都使用不同的常数。轮中的每一步都使用不同的常数。轮中的每一步都使用不同的常数。(3)MD4MD4使用使用使用使用3 3种不同的逻辑,种不同的逻辑,种不同的逻辑,种不同的逻辑,MD5MD5多了一种逻辑多了一种逻辑多了一种逻辑多了一种逻辑运算。运算。运算。运算。(4)MD5MD5中的每一步骤,都包括了
86、取代中的每一步骤,都包括了取代中的每一步骤,都包括了取代中的每一步骤,都包括了取代A A、B B、C C和和和和D D中一个记录单元旧值的操作。中一个记录单元旧值的操作。中一个记录单元旧值的操作。中一个记录单元旧值的操作。RivestRivest认为这样的认为这样的认为这样的认为这样的操作可以加快操作可以加快操作可以加快操作可以加快“ “雪崩雪崩雪崩雪崩” ”(AvalancheAvalanche)效应。)效应。)效应。)效应。顽孽涸汪浇域诛谈宙尊棋谎掏咱疹糊媳歼经府缮望参妙核舅猴政慢逢色盅第2章数据加密第2章数据加密2.5.3 安全散列函数(安全散列函数(SHA)SHASHA对任意长度明文的
87、预处理和对任意长度明文的预处理和对任意长度明文的预处理和对任意长度明文的预处理和MD5MD5的过程的过程的过程的过程是一样的,即预处理完后的明文长度是是一样的,即预处理完后的明文长度是是一样的,即预处理完后的明文长度是是一样的,即预处理完后的明文长度是512512位的整数位的整数位的整数位的整数倍。倍。倍。倍。SHASHA的输出是的输出是的输出是的输出是160160位,分别存储于位,分别存储于位,分别存储于位,分别存储于5 5个个个个3232位的记位的记位的记位的记录单元中。这录单元中。这录单元中。这录单元中。这5 5个记录单元的初始值分别用个记录单元的初始值分别用个记录单元的初始值分别用个记
88、录单元的初始值分别用1616进位制进位制进位制进位制表示,如下所示。表示,如下所示。表示,如下所示。表示,如下所示。A A=67452301=67452301B B=EFCDAB89=EFCDAB89C C=98BADCFE=98BADCFED D=10325476=10325476E E=C3D2E1F0=C3D2E1F0宾酬膜语棚含拙碌专鞠蚂旺箍改帐囊枚原楞嫉朴杖琼艾狞险吞卜番懦蜒萤第2章数据加密第2章数据加密图图2.20SHA处理处理512位明文分组流程图位明文分组流程图间社览谢席征泳旧绩饮甥息多趾东骏娠绸饭瘫堆县怒掘为隅束撩折擎坑催第2章数据加密第2章数据加密ft(B,C,D)=(BC
89、)V(ft(B,C,D)=BCft(B,C,D)=BC轮轮步步骤骤函函数数定定义义轮轮步步骤骤函函数数定定义义10t19 C)340t59ft(B,C,D)=(BC)V(BD)V(CD)220t39D460t79D表表2.11SHA使用的逻辑函数使用的逻辑函数误护感亥距檄烦盲缉魔杠夸挎哉它雄廓修铱筛茵军稻锋涤兰挨颅谜晌轻厩第2章数据加密第2章数据加密轮轮步步骤骤函函数数定定义义轮轮步步骤骤函函数数定定义义10t19Ki=5A827999340t59Ki=8F1BBCDC220t39Ki=6ED9EBA1460t79Ki=CA62C1D6表表2.12 SHA使用的常数使用的常数Ki颖台绢服凉该喝
90、迁票蜡蒲让梳都拾拾命锄仟窘救谚穴应子掌捍颐坡棱属交第2章数据加密第2章数据加密差差异异处处MD5SHA摘要长度摘要长度128位位160位位运算步骤数目运算步骤数目6480基本逻辑函数数目基本逻辑函数数目44常数数目常数数目644表表2.13MD5与与SHA差异表差异表钎蛹价盟蝎檄署胖歇吉购踊村糠肃商痴蛾坟吐惩钳冷隋旭釉贫笨顿敦垢檄第2章数据加密第2章数据加密(1)安全性)安全性 (2)速度)速度(3)简易性)简易性吕鲍绥康钧拌绥移边李溪玉酿韶喇达怂帅俗抱绵汾富汕完抛漾矫帘秋搓系第2章数据加密第2章数据加密2.5.4 数字签名算法(数字签名算法(DSA)DSA使用的参数如下。使用的参数如下。p:
91、512位的素数。位的素数。q:160位的素数且位的素数且q|p1g:满足:满足g=hp1/qmodp,其中,其中h1,p1的任意的任意整数。整数。x:0xq,为秘密密钥。,为秘密密钥。y:y=g xmodp为公开密钥。为公开密钥。p、q、g及及h为系统公布的共同参数,与公开密为系统公布的共同参数,与公开密钥钥y均要公开,均要公开,x为签名者的密钥。为签名者的密钥。冶驳察烫攘将曰煞范臆怯版淳尚壮这欲违溉谨博治确掳怕甚园染独寸反们第2章数据加密第2章数据加密1签名签名2验证验证3DSA改良方法改良方法1签名:签名:签名:签名:r r= =(g gk kmodmodp p)modmodq q及及及及
92、s s= =(rkrk h h( (mm) ))x x11modmodq q验证:验证:t=r1modq及及r=(gt ystmodp)modq哭郭呢遍御蒲茄凋烟舟痞箱绞域钾婉扔雏把戍津包谦洼阜凿桂蚜已千贪录第2章数据加密第2章数据加密4DSA改良方法改良方法2签名:签名:签名:签名:r r= =(g gk kmodmodp p)modmodq q及及及及s s= =k k(h h( (mm)+)+xrxr)11modmodq q验证:验证:枫婴涟铱校汇表捣谭失耍辱绥澄兆拱夸象糕弗咀源飘讥柯就钠劝抄洁撑慷第2章数据加密第2章数据加密2.6本本章章小小结结1数据加密概述数据加密概述2对称密码体制对称密码体制3非对称密码体制非对称密码体制4密钥的管理密钥的管理5散列函数和数字签名散列函数和数字签名犀伎备薄摆霜辞冈隶持歌漱弛惜驹铸丰郎腰爱铰迈萄贬针梗碱哎戮股满赏第2章数据加密第2章数据加密