《第2章信息加密技术.pptx》由会员分享,可在线阅读,更多相关《第2章信息加密技术.pptx(84页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、电子商务安全与支付电子商务安全与支付( (第二版第二版) )课程教学课程教学PPTPPT加密与解密基本知识加密与解密基本知识2.1数字数字信封技术信封技术2.2对称加密与非对称加密对称加密与非对称加密2.3数字签名技术数字签名技术2.4电子商务认证技术电子商务认证技术2.5电子邮件加密电子邮件加密2.6数据库安全数据库安全2.7网络传输加密网络传输加密2.8第第2章章 信息加密技术信息加密技术2022-5-3042.1加密与解密基本知识加密与解密基本知识2.1加密与解密基本知识加密与解密基本知识加密的基本思想是伪装明文以隐藏它的真实内容,即将明加密的基本思想是伪装明文以隐藏它的真实内容,即将明
2、文文X X伪装成密文伪装成密文Y Y,伪装的操作称为加密,伪装的操作称为加密。其其逆过程,即由密文恢复出原明文的过程称为解密逆过程,即由密文恢复出原明文的过程称为解密。传统传统密码体制所用的加密密钥和解密密钥相同或实质上等密码体制所用的加密密钥和解密密钥相同或实质上等同,即从一个易于得出另一个,则称为单钥密码体制或同,即从一个易于得出另一个,则称为单钥密码体制或对称密码体制对称密码体制。若若加密密钥和解密密钥不相同,从一个难以推出另一个,加密密钥和解密密钥不相同,从一个难以推出另一个,则称为双钥密码或非对称密码体制则称为双钥密码或非对称密码体制。密钥密钥可以看作是密码算法中的可变参数。从数学的
3、角度来可以看作是密码算法中的可变参数。从数学的角度来看,改变了密钥,实际上也就改变了明文与密文之间等看,改变了密钥,实际上也就改变了明文与密文之间等价的数学函数关系价的数学函数关系2022-5-3052.1加密与解密基本知识加密与解密基本知识凯撒密码算法就是把每个英文字母向前推移凯撒密码算法就是把每个英文字母向前推移K K位。例如,位。例如,K=3K=3便有明文便有明文和密文的对应关系如下:和密文的对应关系如下:明文:明文:a b c d e f g h I g k l m n o p q r s t u v w x y za b c d e f g h I g k l m n o p q r
4、 s t u v w x y z密文:密文:D E F G H I J K L M N 0 P Q R S T U V W X Y Z A B CD E F G H I J K L M N 0 P Q R S T U V W X Y Z A B C对明文加密的算法仅仅是用明文字母下面的那个字母代替自身,解密对明文加密的算法仅仅是用明文字母下面的那个字母代替自身,解密算法则是加密算法的逆过程。例如:算法则是加密算法的逆过程。例如:明文:明文:caesarcaesar was a great solider was a great solider密文:密文:FDHVDU ZDV D JUHDW V
5、ROGLHUFDHVDU ZDV D JUHDW VROGLHU如果用数字如果用数字0 0,1 1,2 2,2525分别和字母分别和字母A A,B B,C C,Z Z相对应,相对应,那么凯撒密码变换实际上是:那么凯撒密码变换实际上是:c=c=p+kp+k mode 26 mode 26其中,其中,p p是明文对应的数据;是明文对应的数据;c c是明文对应的密文数据;是明文对应的密文数据;k k是加密用的参是加密用的参数,即密钥。数,即密钥。2022-5-3062.1加密与解密基本知识加密与解密基本知识为了保护信息保密性,抗击密码分析,保密系统应当满足为了保护信息保密性,抗击密码分析,保密系统应
6、当满足下述要求:下述要求:(1)系统即使达不到理论上是不可攻破的,也应当为实)系统即使达不到理论上是不可攻破的,也应当为实际上不可攻破的。就是说,从截获的密文或某些已知明际上不可攻破的。就是说,从截获的密文或某些已知明文密文对,要决定密钥或者任意明文在计算上是不可行文密文对,要决定密钥或者任意明文在计算上是不可行的。的。(2)系统的保密性不依赖于对加密体制或者算法的保密,)系统的保密性不依赖于对加密体制或者算法的保密,而依赖于密钥,这就是著名的而依赖于密钥,这就是著名的Kerckhoff原则。原则。(3)加密和解密算法适用于所有密钥空间中的元素。)加密和解密算法适用于所有密钥空间中的元素。(4
7、)整个系统便于实现和使用方便。)整个系统便于实现和使用方便。2022-5-3072.2对称加密与非对称加密对称加密与非对称加密2.2.1 对称加密1对称密钥加密概述对称密钥加密概述对称密钥加密(对称密钥加密(Symmetric Cryptography)技术也称单)技术也称单钥体制加密技术。在这种技术中,加密方和解密方除必钥体制加密技术。在这种技术中,加密方和解密方除必须保证使用同一种加密算法外,还需要共享同一个密钥须保证使用同一种加密算法外,还需要共享同一个密钥(如图(如图2.2所示)。由于加密和解密使用同一个密钥,所示)。由于加密和解密使用同一个密钥,所以,如果第三方获取该密钥就会造成失密
8、。因此,网所以,如果第三方获取该密钥就会造成失密。因此,网络中络中N个用户之间进行加密通信时,需要个用户之间进行加密通信时,需要N*(N一一1)对密钥才能保证任意两方收发密文,第三方无法解密。对密钥才能保证任意两方收发密文,第三方无法解密。2022-5-3082.2.1 对称加密2022-5-3092对称密钥算法介绍对称密钥算法介绍(1)DES算法算法DES技术采用技术采用64位密钥长度,其中位密钥长度,其中8位用于奇偶校验,剩余的位用于奇偶校验,剩余的56位可以被用户使用。位可以被用户使用。DES加密算法可分为加密处理、加密变换及子密钥的生成几个部分。算法输入的是加密算法可分为加密处理、加密
9、变换及子密钥的生成几个部分。算法输入的是64比特的明文,在比特的明文,在64比特的密钥控制下,通过初始换位比特的密钥控制下,通过初始换位IP变成变成T0=IP(T),再对,再对T0进进行分块,左边的行分块,左边的32位记为位记为L0,右边的,右边的32位记为位记为R0,经过,经过16次的加密变换,最后通次的加密变换,最后通过逆初始变换(也称最后变换)得到过逆初始变换(也称最后变换)得到64比特的密文。密文的每一比特都是由明文的比特的密文。密文的每一比特都是由明文的每一比特和密钥的每一比特联合确定的。加密过程可用数学公式表示如下:每一比特和密钥的每一比特联合确定的。加密过程可用数学公式表示如下:
10、 其中其中的圈函数的圈函数f对对32比特的串做如下操作:首先将这比特的串做如下操作:首先将这32比特的串扩展成比特的串扩展成48比特的串。其比特的串。其次将这次将这48比特的串和比特的串和48比特的密钥进行组合并将组合结果作为比特的密钥进行组合并将组合结果作为8个不同个不同S盒的输入,盒的输入,每个每个S盒的输入是盒的输入是6比特,输出是比特,输出是4比特。然后将比特。然后将S盒的盒的32比特做置换,作为圈函数比特做置换,作为圈函数f的输出。的输出。2022-5-3010(2)改进的)改进的DES算法算法DES算法目前已广泛用于电子商务系统中。随着研究的发展,针对以上算法目前已广泛用于电子商务
11、系统中。随着研究的发展,针对以上DES的缺陷,的缺陷,DES算法在基本不改变加密强度的条件下,发展了许多变形算法在基本不改变加密强度的条件下,发展了许多变形DES。人们提出了解几。人们提出了解几种增强种增强DES安全性的方法,主要有以下几种:安全性的方法,主要有以下几种:多重多重DES。为了增加密钥的长度,人们建议将一种分组密码进行级联,在不同的密钥。为了增加密钥的长度,人们建议将一种分组密码进行级联,在不同的密钥作用下,连续多次对一组明文进行加密,通常把这种技术称为多重加密技术。对作用下,连续多次对一组明文进行加密,通常把这种技术称为多重加密技术。对DES,人们建议使用三重,人们建议使用三重
12、DES,这一点目前基本上达成了共识。,这一点目前基本上达成了共识。三重三重DES算法的基本原理是将算法的基本原理是将128比特的密钥分为比特的密钥分为64比特的两组,对明文多次进行普通比特的两组,对明文多次进行普通的的DES加解密操作,从而增强加密强度。加解密操作,从而增强加密强度。这种方法用两个密钥对明文进行三次加密。假设两个密钥是这种方法用两个密钥对明文进行三次加密。假设两个密钥是K1和和K2:首先需要用密钥:首先需要用密钥K1进行进行DES加密;然后用加密;然后用K2对对K1加密的结果进行加密的结果进行DES解密;最后用上一个的结果解密;最后用上一个的结果使用密钥使用密钥K1进行进行DE
13、S加密。加密。三重三重DES是是DES算法扩展其密钥长度的一种方法,可使加密密钥长度扩展到算法扩展其密钥长度的一种方法,可使加密密钥长度扩展到128比特比特(112比特有效)或比特有效)或192比特(比特(168比特有效)。此方法为密码专家默克尔(比特有效)。此方法为密码专家默克尔(Merle)及赫尔曼(及赫尔曼(Hellman)推荐的。据称,目前尚无人找到针对此方案的攻击方法。)推荐的。据称,目前尚无人找到针对此方案的攻击方法。2022-5-3011(2)改进的)改进的DES算法算法S盒可选择的盒可选择的DES算法(也称带用交换算法(也称带用交换S盒的盒的DES算法)。算法)。比哈姆(比哈姆
14、(Biham)和沙米尔()和沙米尔(Shamir)证明通过优化)证明通过优化S盒盒的设计,甚至的设计,甚至S盒本身的顺序,可以抵抗差分密码分析,盒本身的顺序,可以抵抗差分密码分析,以达到进一步增强以达到进一步增强DES算法的加密强度的目的。算法的加密强度的目的。在一些设计中,将在一些设计中,将DES做如下改进:使做如下改进:使S盒的次序随密盒的次序随密钥而变化或使钥而变化或使S盒的内容本身是可变的;盒的内容本身是可变的;8个个DES的的S盒的改变可使得盒的改变可使得DES变弱许多,使用某些特定次序的变弱许多,使用某些特定次序的S盒的盒的16圈圈DES,仅需要大约,仅需要大约2个选择明文就能用差
15、分分个选择明文就能用差分分析方法破译。采用随机的析方法破译。采用随机的S盒的盒的DES很容易被破译,即很容易被破译,即使是对使是对DES的一个的一个S盒的数字稍做改变也会导致盒的数字稍做改变也会导致DES易易于破译。结论:不管怎样随机选择于破译。结论:不管怎样随机选择S盒都不会比盒都不会比DES更更安全。安全。2022-5-3012(2)改进的)改进的DES算法算法具有独立子密钥的具有独立子密钥的DES算法算法DES的另一种变形是每圈迭代都使用不同的子密的另一种变形是每圈迭代都使用不同的子密钥,而不是由单个的钥,而不是由单个的56比特密钥来产生。因为比特密钥来产生。因为16圈圈DES的每圈都需
16、要的每圈都需要48比特密钥,所以这种比特密钥,所以这种变形的变形的DES的密钥长度是的密钥长度是768比特。这一方法比特。这一方法可以增强可以增强DES的加密强度,大大增加了破译的加密强度,大大增加了破译DES密钥的难度。密钥的难度。但据密码专家比哈姆及沙米尔证明,利用但据密码专家比哈姆及沙米尔证明,利用261个个选择明文便可破译这个选择明文便可破译这个DES变形,而不是人们变形,而不是人们所希望的所希望的2768个选择明文。所以这种改变并不个选择明文。所以这种改变并不能使能使DES变得更安全。变得更安全。2022-5-3013(2)改进的)改进的DES算法算法G-DES算法算法G-DES是广
17、义的是广义的DES的缩写,设计它的目的是为的缩写,设计它的目的是为了提高了提高DES的速度和强度。它总的分组长度增的速度和强度。它总的分组长度增加了(分组长度是可变的),但圈函数加了(分组长度是可变的),但圈函数f保持不保持不变。变。Biham和和Shamir仅使用仅使用16个已知明文就个已知明文就能用差分分析破译分组长度为能用差分分析破译分组长度为256比特的比特的16圈圈GDES。使用。使用48个选择明文就能用差分分析个选择明文就能用差分分析破译分组长度为破译分组长度为256比特的比特的22圈圈GDES。即使。即使是分组长度为是分组长度为256比特的比特的64圈圈G-DES也比也比16圈圈
18、DES弱。事实证明,比弱。事实证明,比DES快的任何快的任何GDES也也就更不安全。就更不安全。2022-5-3014(2)流密码)流密码流密码的原理是将明文划分成字符(如单个字母)流密码的原理是将明文划分成字符(如单个字母)或其编码的基本单元(如或其编码的基本单元(如0、1数字),字符分数字),字符分别与密钥流作用进行加密,解密时以同步产生别与密钥流作用进行加密,解密时以同步产生的同样的密钥流来实现。流密码强度完全依赖的同样的密钥流来实现。流密码强度完全依赖于密钥流产生器所生成序列的随机性和不可预于密钥流产生器所生成序列的随机性和不可预测性。其核心问题是密钥流生成器的设计。保测性。其核心问题
19、是密钥流生成器的设计。保持收发两端密钥流的精确同步是实现可靠解密持收发两端密钥流的精确同步是实现可靠解密的关键技术。的关键技术。2022-5-3015同步流密码同步流密码流密码分为两类。一类是同步流密码(流密码分为两类。一类是同步流密码(SSC,Synchronous Stream Cipher)。同步流密码)。同步流密码的密钥流独立于明文,对于明文而言,这类加的密钥流独立于明文,对于明文而言,这类加密变换是无记忆的,但它是时变的。因为同一密变换是无记忆的,但它是时变的。因为同一明文字符在不同时刻由于密钥不同而被加密成明文字符在不同时刻由于密钥不同而被加密成不同的密文字符。此类密码只要收发两端
20、的密不同的密文字符。此类密码只要收发两端的密钥流生成器的初始密钥和初始状态相同,输出钥流生成器的初始密钥和初始状态相同,输出的密钥就一样。因此,保持两端精确同步才能的密钥就一样。因此,保持两端精确同步才能正常工作,一旦失步就不能正确解密,必须等正常工作,一旦失步就不能正确解密,必须等到重新同步才能恢复正常工作。这是其主要缺到重新同步才能恢复正常工作。这是其主要缺点。但由于其对失步的敏感性,使得系统在有点。但由于其对失步的敏感性,使得系统在有窜扰者进行注入、删除、重放等主动攻击时异窜扰者进行注入、删除、重放等主动攻击时异常敏感,有利于检测。此类体制的优点是传输常敏感,有利于检测。此类体制的优点是
21、传输中出现的一些偶然错误只影响相应位的恢复消中出现的一些偶然错误只影响相应位的恢复消息,没有差错传播。息,没有差错传播。2022-5-3016自同步流密码自同步流密码另一类是自同步流密码(另一类是自同步流密码(SSSC,Self Synchronous Stream Cipher)。密文)。密文ci不仅与当前输入不仅与当前输入mi有关,而且与以前的输入有关,而且与以前的输入m1,m2,mi-1有关。一般在有限的有关。一般在有限的n级存储下将与级存储下将与mi-1,mi-n有关。一种有有关。一种有n级移位寄存器存储的密文反馈型流密码,每个密文级移位寄存器存储的密文反馈型流密码,每个密文数字将影响
22、以后数字将影响以后n个输入明文数字的加密结果。此时的密钥流个输入明文数字的加密结果。此时的密钥流 。由。由于于ci与与mi的关系,的关系,ki最终是受输入明文数字影响的。自同步流密码最终是受输入明文数字影响的。自同步流密码传输过程中有一位(如传输过程中有一位(如ci位)出错,在解密过程中,它将在移位寄位)出错,在解密过程中,它将在移位寄存器中存活存器中存活n个节拍,因而会影响其后个节拍,因而会影响其后n位密钥的正确性,相应恢位密钥的正确性,相应恢复的明文消息连续复的明文消息连续n位会受到影响。其差错传播是有限的,但接收位会受到影响。其差错传播是有限的,但接收端只要连续正确收到端只要连续正确收到
23、n位密文,则在相同密钥位密文,则在相同密钥Ki作用下就会产生相作用下就会产生相同的密钥,因而它具有自同步能力。这种自恢复同步性使得它对窜同的密钥,因而它具有自同步能力。这种自恢复同步性使得它对窜扰者的一些主动攻击不像同步流密码体制那样敏感,它将明文每个扰者的一些主动攻击不像同步流密码体制那样敏感,它将明文每个字符扩散在密文多个字符中,从而强化了其抗统计分析的能力。字符扩散在密文多个字符中,从而强化了其抗统计分析的能力。2022-5-3017自同步流密码自同步流密码密钥流生成器的输出序列应当满足以下条件:密钥流生成器的输出序列应当满足以下条件:周期周期p要足够大,如大于要足够大,如大于1064。
24、伪随机性好。伪随机性好。易于高速生成。易于高速生成。输出序列的任何部分暴露时,要分析整个序列,输出序列的任何部分暴露时,要分析整个序列,提取产生它的电路结构信息,在计算机上是不提取产生它的电路结构信息,在计算机上是不可行的,称此为不可预测性。可行的,称此为不可预测性。对密钥流生成器输出的密钥序列必须进行必要的对密钥流生成器输出的密钥序列必须进行必要的统计检验,以确保密钥序列的伪随机性和安全统计检验,以确保密钥序列的伪随机性和安全性。性。2022-5-3018(3)分组密码分组密码即对固定长度的一组明文进行加密的算法,它将分组密码即对固定长度的一组明文进行加密的算法,它将明文按一定的位长分组,明
25、文组和密钥组的全部经过加明文按一定的位长分组,明文组和密钥组的全部经过加密运算得到密文组。解密时密文组和密钥组经过解密运密运算得到密文组。解密时密文组和密钥组经过解密运算(加密运算的逆运算),还原成明文组。它与流密码算(加密运算的逆运算),还原成明文组。它与流密码的不同之处在于输出的每一位数字不只是与相应时刻输的不同之处在于输出的每一位数字不只是与相应时刻输入的明文数字有关,而是与一组长为入的明文数字有关,而是与一组长为m的明文数字有关。的明文数字有关。分组密码的特点是:密钥可以在一定时间内固定,不必每分组密码的特点是:密钥可以在一定时间内固定,不必每次变换,因此给密钥配发带来了方便。但是,由
26、于分组次变换,因此给密钥配发带来了方便。但是,由于分组密码存在着密文传输错误在明文中扩散的问题,因此在密码存在着密文传输错误在明文中扩散的问题,因此在信道质量较差的情况下无法使用。信道质量较差的情况下无法使用。2022-5-3019几种常用的分组密码的加密算法。几种常用的分组密码的加密算法。IDEA算法算法IDEA算法的密钥长度为算法的密钥长度为128位。设计者尽最大努力使该算位。设计者尽最大努力使该算法不受差分密码分析的影响,来学嘉已证明法不受差分密码分析的影响,来学嘉已证明IDEA算法算法在其在其8圈迭代的第圈迭代的第4圈之后便不受差分密码分析的影响了。圈之后便不受差分密码分析的影响了。假
27、定穷举法攻击有效的话,那么即使设计一种每秒钟可假定穷举法攻击有效的话,那么即使设计一种每秒钟可以试验以试验10亿个密钥的专用芯片,并将亿个密钥的专用芯片,并将10亿片这样的芯亿片这样的芯片用于此项工作,仍需片用于此项工作,仍需1013年才能解决问题;另一方年才能解决问题;另一方面,若用面,若用1024片这样的芯片,有可能在一天内找到密片这样的芯片,有可能在一天内找到密钥,不过人们还无法找到足够的硅原子来制造这样一台钥,不过人们还无法找到足够的硅原子来制造这样一台机器。目前,尚无一篇公开发表的试图对机器。目前,尚无一篇公开发表的试图对IDEA进行密进行密码分析的文章。因此就现在来看,应当说码分析
28、的文章。因此就现在来看,应当说IDEA是非常是非常安全的。安全的。2022-5-3020FEAL-8密码算法密码算法FEAL密码算法是日本密码算法是日本NTT (日本电报电话公司)的清水(日本电报电话公司)的清水(Shimizi)和宫口)和宫口 (Miyaguchi) 设计的。作为一种设计的。作为一种分组密码,与分组密码,与DES相比,其主要想法为增加每一圈迭代相比,其主要想法为增加每一圈迭代的算法强度,因此可以通过减少迭代次数而提高运算速的算法强度,因此可以通过减少迭代次数而提高运算速度。度。FEAL-8即为即为8圈迭代的圈迭代的FEAL密码算法。密码算法。FEAL密码算法推密码算法推出之后
29、,引起有关专家的注意。密码专家比哈姆和沙米出之后,引起有关专家的注意。密码专家比哈姆和沙米尔利用密码分析技术发现,可以用比穷举法更快的速度尔利用密码分析技术发现,可以用比穷举法更快的速度破译破译FEAL密码。如密码。如FEAL-8只需只需2000个选择明文即可个选择明文即可破译,而破译,而FEAL-4更只需更只需8个精心选择的明文便可破译。个精心选择的明文便可破译。2022-5-3021SAFER K-64算法算法SAFER K-64是是Massey于于1993年提出的一种面向字节的迭代分组密年提出的一种面向字节的迭代分组密码,它的分组长度和密钥长度均为码,它的分组长度和密钥长度均为64比特。
30、比特。SAFER K-64既适合于既适合于硬件实现又适合于软件实现。硬件实现又适合于软件实现。1995年年Massey将将SAFER K-64的密的密钥长度修改为钥长度修改为128比特。设计者建议使用比特。设计者建议使用6圈圈SAFER K-64,实际,实际上,它可以是任意圈。每一圈都使用了两个面向字节的不同的非线上,它可以是任意圈。每一圈都使用了两个面向字节的不同的非线性变换,两个性变换,两个64比特长的子密钥和一个三级线性层的伪比特长的子密钥和一个三级线性层的伪Hadamard变换。伪变换。伪Hadamard变换的作用是实现变换的作用是实现“扩散扩散”。最。最后一圈末,再经过一个输出变换形
31、成密文。后一圈末,再经过一个输出变换形成密文。SAFER K-64是一种是一种Markov密码,而密码,而Markov密码关于能抵抗差分分密码关于能抵抗差分分析的能力的研究已有一些成果。析的能力的研究已有一些成果。Massey认为认为6圈圈SAFER K-64就能就能抵抗差分分析。抵抗差分分析。2022-5-3022RC5是由是由Ron Rivets(公钥算法(公钥算法RSA的创始人之一)的创始人之一) 在在1994年开发出来的,其前身年开发出来的,其前身RC4的源代码在的源代码在1994年年9月被人匿名张贴到月被人匿名张贴到Cypherpunks邮件列表中,泄露了邮件列表中,泄露了RC4的算
32、法。的算法。RC5是在是在RFC 2040中定义的,中定义的,RSA数据安全公司的很多数据安全公司的很多产品都已经使用了产品都已经使用了RC5。它的特点是:分组长度。它的特点是:分组长度W、密、密钥长度钥长度b和圈数和圈数r都是可变的,简记为都是可变的,简记为RC5-W/r/b。该。该密码既适合于硬件实现又适合于软件实现,实现速度非密码既适合于硬件实现又适合于软件实现,实现速度非常快。它主要通过数据循环来实现数据的扩散和混淆。常快。它主要通过数据循环来实现数据的扩散和混淆。每次循环的次数都依赖于输入数据,事先不可预测。每次循环的次数都依赖于输入数据,事先不可预测。2022-5-3023 AES
33、算法算法NIST对对AES候选算法有候选算法有3条基本要求:是对称条基本要求:是对称密码体制,亦即秘密密钥算法;算法应为分密码体制,亦即秘密密钥算法;算法应为分组密码算法;算法明密文分组长度为组密码算法;算法明密文分组长度为128比比特,应支持特,应支持128比特、比特、192比特、比特、256比特的密比特的密钥长度。钥长度。2022-5-30242.2.2 非对称加密1非对称密钥加密概述非对称密钥加密概述非对称密钥加密体制又称双钥加密体制。该加密体制是由非对称密钥加密体制又称双钥加密体制。该加密体制是由Diffie和和Hellman于于1976年首先引入的。采用双钥体制年首先引入的。采用双钥
34、体制的每个用户都有一对选定的密钥,一个是可以公开的,的每个用户都有一对选定的密钥,一个是可以公开的,另一个则是秘密的。公开的密钥可以像电话号码一样进另一个则是秘密的。公开的密钥可以像电话号码一样进行注册公布。行注册公布。非对称密钥加密技术使用两个不同的密钥,一个用来加密非对称密钥加密技术使用两个不同的密钥,一个用来加密信息,称为加密密钥;另一个用解密信息,称为解密密信息,称为加密密钥;另一个用解密信息,称为解密密钥(如图钥(如图2.3所示)。加密密钥与解密密钥是数学相关所示)。加密密钥与解密密钥是数学相关的,它们成对出现,但却不能由加密密钥计算出解密密的,它们成对出现,但却不能由加密密钥计算出
35、解密密钥。信息用某用户的加密密钥加密后所得到的数据只能钥。信息用某用户的加密密钥加密后所得到的数据只能用该用户的解密密钥才能解密用该用户的解密密钥才能解密2022-5-3025非对称加密2022-5-30262非对称密钥算法介绍非对称密钥算法介绍RSA算法算法 RSA算法的原理算法的原理RSA公钥密码算法是基于数论中的同余理论。如果用公钥密码算法是基于数论中的同余理论。如果用m代表明文,代表明文,c代表密文,代表密文,E(m)代表加密运算,代表加密运算,D(c)代表解密运算,用代表解密运算,用x=y(modulo z)表示表示x和和y模模z同余,则加密和解密算法简单表示如下:同余,则加密和解密
36、算法简单表示如下:c=E(m)=me (modulo n)m=D(c)=cd (modulo n)其中加密密钥其中加密密钥n、e和解密密钥和解密密钥n、d满足以下各项要求:满足以下各项要求:素数素数p和和q(保密的)。(保密的)。n=pq(公开的)。(公开的)。 (即(即n的欧拉函数,保密的)。的欧拉函数,保密的)。加密密钥加密密钥e(公开的),满足(公开的),满足OE ,且,且e和和 互素。互素。解密密钥解密密钥d(保密的),满足(保密的),满足de=1(module o(n),即,即d和和e相对于模相对于模 互互为逆元素。为逆元素。2022-5-3027RSA算法的缺点算法的缺点产生密钥很
37、麻烦,受到素数产生技术的限制,因而难以做产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。到一次一密。分组长度太大,为保证安全性,分组长度太大,为保证安全性,n至少也要至少也要600比特以上,比特以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级,且随着大数分解技术的发展,这个长度还几个数量级,且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,在增加,不利于数据格式的标准化。目前,SET(Secure Electronic Transaction)协议中要求)协议中要求CA采采用用2048比特长的
38、密钥,其他实体使用比特长的密钥,其他实体使用1024比特的密钥。比特的密钥。由于进行的都是大数计算,使得由于进行的都是大数计算,使得RSA最快的情况也比最快的情况也比DES慢上慢上100倍,无论是软件还是硬件实现。速度一直是倍,无论是软件还是硬件实现。速度一直是RSA的缺陷,一般来说它只用于少量数据加密。的缺陷,一般来说它只用于少量数据加密。2022-5-3028RSA算法的安全性算法的安全性RSA算法之所以具有安全性,是基于数论中的一个特性事实,即将两算法之所以具有安全性,是基于数论中的一个特性事实,即将两个大的质数合成一个大数很容易,而相反的过程则非常困难。在当个大的质数合成一个大数很容易
39、,而相反的过程则非常困难。在当今技术条件下,当今技术条件下,当n足够大时,为了找到足够大时,为了找到d,欲从,欲从n中通过质因子分中通过质因子分解试图找到与解试图找到与d对应的对应的p、q是极其困难甚至是不可能的。由此可见,是极其困难甚至是不可能的。由此可见,RSA的安全性是依赖于作为公钥的大数的安全性是依赖于作为公钥的大数n的位数长度的。为保证足的位数长度的。为保证足够的安全性,一般认为现在的个人应用需要用够的安全性,一般认为现在的个人应用需要用384比特或比特或512比特比特的的n,公司需要用,公司需要用1024比特的比特的n,极其重要的场合应该用,极其重要的场合应该用2048比比特的特的
40、n。公钥和私钥都是两个大素数(大于公钥和私钥都是两个大素数(大于100个十进制位)的函数。据猜测,个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。2022-5-3029Elgamal算法算法1985年,年,Elgamal构造了一种基于离散对数的公钥密码体制,这就是构造了一种基于离散对数的公钥密码体制,这就是Elgamal公钥体公钥体制。有限域制。有限域Zp上的离散对数问题是这样的:上的离散对数问题是这样的:I=(p,a,b)。p为素数,为素数,a是是Zp的一个本的一个本原元,且原元,且b属于属于Zp
41、,则求一个唯一的,则求一个唯一的a(0ap-2),使得),使得aa= b(mod p)是一个是一个离散对数问题。如果离散对数问题。如果p是经过仔细选择的,则上述离散对数问题是一个难解性问题。是经过仔细选择的,则上述离散对数问题是一个难解性问题。因为因为Elgamal公钥体制的密文不仅依赖于待加密的明文,而且依赖于随机数公钥体制的密文不仅依赖于待加密的明文,而且依赖于随机数k,所以用,所以用户选择的随机参数不同,即使加密相同的明文,得到的密文也是不同的。由于这种户选择的随机参数不同,即使加密相同的明文,得到的密文也是不同的。由于这种加密算法的非确定性,所以又称其为概率加密体制。在确定性加密算法中
42、,如果破加密算法的非确定性,所以又称其为概率加密体制。在确定性加密算法中,如果破译者对某些关键信息感兴趣,则他可事先将这些信息加密后存储起来,一旦以后截译者对某些关键信息感兴趣,则他可事先将这些信息加密后存储起来,一旦以后截获密文,就可以直接在存储的密文中进行查找,从而求得相应的明文。概率加密体获密文,就可以直接在存储的密文中进行查找,从而求得相应的明文。概率加密体制弥补了这种不足,提高了安全性。为了抵抗已知明文攻击,制弥补了这种不足,提高了安全性。为了抵抗已知明文攻击,p至少需要至少需要150位位(十进制),而且(十进制),而且p-1必须至少有一个大素数因子。必须至少有一个大素数因子。与既能
43、作公钥加密又能作数字签名的与既能作公钥加密又能作数字签名的RSA不同,不同,Elgamal体制是在体制是在1985年仅为数字签年仅为数字签名而构造的签名体制。名而构造的签名体制。NIST采用修改后的采用修改后的Elgamal签名体制作为数字签名体制标准。签名体制作为数字签名体制标准。破译破译Elgamal签名体制等价于求解离散对数问题。签名体制等价于求解离散对数问题。2022-5-3030背包公钥体制背包公钥体制背包公钥体制背包公钥体制是是1978年由年由Metkle和和Hellman提出的。背包算法的思提出的。背包算法的思路是假定某人拥有大量的物品,重量各不相同。此人通过秘密地选路是假定某人
44、拥有大量的物品,重量各不相同。此人通过秘密地选择一部分物品并将它们放到背包中来加密消息。背包中的物品总重择一部分物品并将它们放到背包中来加密消息。背包中的物品总重量是公开的,所有可能的物品也是公开的,但背包中的物品却是保量是公开的,所有可能的物品也是公开的,但背包中的物品却是保密的。附加一定的限制条件,给出重量,而要列出可能的物品,在密的。附加一定的限制条件,给出重量,而要列出可能的物品,在计算上是不可实现的。这就是公开密钥算法的基本思想。计算上是不可实现的。这就是公开密钥算法的基本思想。大多数公钥密码体制都会涉及高次幂运算,不仅加密速度慢,而且会大多数公钥密码体制都会涉及高次幂运算,不仅加密
45、速度慢,而且会占用大量的存储空间。背包问题是熟知的不可计算问题,背包体制占用大量的存储空间。背包问题是熟知的不可计算问题,背包体制以其加密、解密速度快而引人注目。但是,大多数一次背包体制均以其加密、解密速度快而引人注目。但是,大多数一次背包体制均被破译了,因此很少有人使用它。被破译了,因此很少有人使用它。2022-5-30314)椭圆曲线密码技术()椭圆曲线密码技术(ECC)在公钥密码算法中,在公钥密码算法中,1985年,年,Koblitz和和Miller相互独立地提出了在密码学中应用椭圆相互独立地提出了在密码学中应用椭圆曲线的思想,成为构造非对称密钥密码体制的一个有力工具。它的基本原理是:设
46、曲线的思想,成为构造非对称密钥密码体制的一个有力工具。它的基本原理是:设K表示一个有限域,表示一个有限域,E是域是域K上的椭圆曲线,则上的椭圆曲线,则E是一个点的集合:是一个点的集合:E/K=(x,y)|y2+a1xy+a3y=x3+a2x2+a4x+a6,a1,a3,a2,a4,a6,x,yKo,其中,其中o表示无穷远点。表示无穷远点。在在E上定义上定义“+”运算,运算,P+Q=R,R是过是过P、Q的直线与曲线的另一交点(关于的直线与曲线的另一交点(关于x轴的对轴的对称点),当称点),当P=Q时,时,R是是P点的切线与曲线的另一交点(关于点的切线与曲线的另一交点(关于x轴的对称点)。这样,轴
47、的对称点)。这样,(E,+)构成可换群(构成可换群(Abel群),群),o是加法单位元(零元)。是加法单位元(零元)。椭圆曲线离散对数问题(椭圆曲线离散对数问题(ECDLP)定义如下:给定定义在)定义如下:给定定义在K上的椭圆曲线上的椭圆曲线E,一个,一个n阶的阶的点点PE/K和点和点QE/K,如果存在,如果存在l,确定整数,确定整数l,0ln-1,Q=IP。我们知道。我们知道RSA是基于因子分解,其算法的核心就是如何寻找大数的因子分解,但是基于因子分解,其算法的核心就是如何寻找大数的因子分解,但ECDLP是比是比因子分解难得多的问题。因子分解难得多的问题。2022-5-30322.2.3 对
48、称加密与非对称加密算法的比较对称加密算法是应用较早的加密算法,技术成熟。在对称对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,行解密,才能使其恢复成可读明文。在对称
49、加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证同样钥匙,安全性得不到保证。2022-5-3033不对称加密算法不对称加密算法使用两把完全不同但又是完全匹配的不对称加密算法不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙
50、一对钥匙公钥和私钥。在使用不对称加密算法加密文件时,只有公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信