密码学4-公钥密码ppt课件.ppt
《密码学4-公钥密码ppt课件.ppt》由会员分享,可在线阅读,更多相关《密码学4-公钥密码ppt课件.ppt(90页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、密码学4公钥密码ppt课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望4.1 密码学中常用数学知识密码学中常用数学知识4.2 公钥密码体制的基本概念公钥密码体制的基本概念4.3 RSA算法算法4.4 背包体制背包体制4.5 Rabin体制体制 4.6 NTRU公钥密码系统公钥密码系统4.7 椭圆曲线密码体制椭圆曲线密码体制4.8 基于身份的密码体制基于身份的密码体制本章提要本章提要24.1 密码学中的常用数学知识密码学中的常用数学知识群、环、域、素数群、环、域
2、、素数模运算模运算费尔马定理费尔马定理lap-1=1 mod p,p是素数是素数欧拉函数欧拉函数l(n):小小于于n的的且且与与n互互素素的的正正整数个数整数个数la(n)=1 mod n 素性检验素性检验l1.爱爱拉拉托托斯斯散散筛筛法法(Eratosthenes)l依次删去小于依次删去小于 素数的倍数素数的倍数l2.Miller-Rabin概率检测法概率检测法l3.AKS欧几里得算法、扩展欧几里德算法欧几里得算法、扩展欧几里德算法l求最大公约数和乘法的逆元求最大公约数和乘法的逆元中国剩余定理中国剩余定理l求一次同余方程组的解求一次同余方程组的解离散对数,本原根离散对数,本原根平方剩余平方剩
3、余计算复杂性计算复杂性34.2 公钥密码体制的基本概念公钥密码体制的基本概念公钥密码体制的出现在密码学史上是一个最大的而公钥密码体制的出现在密码学史上是一个最大的而且是惟一真正的革命。为密码学发展提供了新的理且是惟一真正的革命。为密码学发展提供了新的理论和技术基础论和技术基础l公钥密码算法公钥密码算法基本工具不再是代换和置换,而是数学函基本工具不再是代换和置换,而是数学函数数l以非对称的形式使用两个密钥以非对称的形式使用两个密钥,两个密钥的使用对保密,两个密钥的使用对保密性、密钥分配、认证等都有着深刻的意义。性、密钥分配、认证等都有着深刻的意义。公钥密码体制的概念公钥密码体制的概念是在解决单钥
4、密码体制中最难是在解决单钥密码体制中最难解决的两个问题时解决的两个问题时提出的提出的,即,即密钥分配和数字签字密钥分配和数字签字4对称密码算法的缺陷对称密码算法的缺陷l密钥分配问题密钥分配问题:通信双方加密通信前通信双方加密通信前要通过秘密的安全要通过秘密的安全信道协商加密密钥,这种安全信道可能很难实现信道协商加密密钥,这种安全信道可能很难实现;对这;对这个个信道安全性的要求信道安全性的要求比正常传送消息信道的安全性要比正常传送消息信道的安全性要高高l密钥管理问题密钥管理问题:在多用户网络中,任何两个用户之间都在多用户网络中,任何两个用户之间都需要有共享的秘密钥,需要有共享的秘密钥,n个用户需
5、要个用户需要Cn2=n(n-1)/2个密钥,个密钥,n=5000时,时,Cn2=12,497,500,系统开销非常大,系统开销非常大l没有签名功能没有签名功能:当主体当主体A收到主体收到主体B的电子文挡时,无的电子文挡时,无法向第三方证明此电子文档确实来源于法向第三方证明此电子文档确实来源于B,传统单钥加传统单钥加密算法无法实现抗抵赖的需求密算法无法实现抗抵赖的需求5公钥密码的主要作用公钥密码的主要作用公钥加密公钥加密l用于加密任何消息,象分组密码一样使用用于加密任何消息,象分组密码一样使用 l任何人可以用公钥加密消息,私钥的拥有者可以解密消息任何人可以用公钥加密消息,私钥的拥有者可以解密消息
6、 数字签名数字签名(Digital Signature)l用于生成对某消息的数字签名用于生成对某消息的数字签名l私钥的拥有者生成数字签名,任何人可以用公钥验证签名私钥的拥有者生成数字签名,任何人可以用公钥验证签名l签名时可将公钥加密算法逆用来实现,也可单独设计公钥签名算法签名时可将公钥加密算法逆用来实现,也可单独设计公钥签名算法基于公钥的密钥分配基于公钥的密钥分配(Key Distribution)l用于交换秘密信息,常用于协商对称加密算法的密钥用于交换秘密信息,常用于协商对称加密算法的密钥l可采用公钥加密的算法实现密钥分配可采用公钥加密的算法实现密钥分配l也可使用单独设计的密钥交换算法,如也
7、可使用单独设计的密钥交换算法,如DH密钥交换协议实现密钥分配密钥交换协议实现密钥分配其它应用:其它应用:l零知识证明,公平抛币等等,(用于各种目的的认证)零知识证明,公平抛币等等,(用于各种目的的认证)6公钥密码的发展概况公钥密码的发展概况l1976年年Diffie和和Hellman在其在其“密码学新方向密码学新方向”一文中提出公钥密码:一文中提出公钥密码:lW.Diffie and M.E.Hellman,“New Directions in Cryptography”,IEEE Transaction on Information Theory,V.IT-22.No.6,Nov 1976:
8、644-654l1978年年Merkle和和Hellman基于背包问题提出了首个公钥密码体制,但基于背包问题提出了首个公钥密码体制,但两年后被破译两年后被破译l1978年年Rivest,Shamir&Adleman基于大数分解的困难性提出了基于大数分解的困难性提出了RSA公钥算法,成为迄今为止最为成熟和完善的公钥密码体制公钥算法,成为迄今为止最为成熟和完善的公钥密码体制l1985年出现了基于求解离散对数困难性的公钥密码算法年出现了基于求解离散对数困难性的公钥密码算法DLPl90年代逐步出现椭圆曲线年代逐步出现椭圆曲线(ECC)等其他公钥算法等其他公钥算法l当前的公钥密码算法主要是当前的公钥密码
9、算法主要是基于大数分解困难性基于大数分解困难性和和离散对数困难性离散对数困难性来构来构造的,造的,椭圆曲线椭圆曲线上也可构造这类体制,相同密钥长度下其安全性更高上也可构造这类体制,相同密钥长度下其安全性更高参考资料:公钥密码学等参考资料:公钥密码学等74.2.1 公钥密码体制的原理公钥密码体制的原理公钥密码算法的最大特点是公钥密码算法的最大特点是采用两个相关密钥将采用两个相关密钥将加密和解密能力分开加密和解密能力分开l一个密钥是公开的一个密钥是公开的,称为,称为公开密钥公开密钥,简称,简称公开钥公开钥,用于,用于加密、验证签名加密、验证签名,可以被任何人知道,可以被任何人知道l另一个密钥是为用
10、户专用另一个密钥是为用户专用,因而是保密的因而是保密的,只能被消息,只能被消息的接收者或签名者知道,称为的接收者或签名者知道,称为秘密密钥秘密密钥,简称,简称秘密钥秘密钥,用于用于解密、产生签名解密、产生签名l因此公钥密码体制也称为因此公钥密码体制也称为双钥密码体制双钥密码体制算法有以下重要特性:算法有以下重要特性:已知密码算法和加密密钥,已知密码算法和加密密钥,求解密密钥在计算上是不可行的求解密密钥在计算上是不可行的l因此加密和签名的验证者不能解密和生成签名因此加密和签名的验证者不能解密和生成签名8公钥体制的加密过程公钥体制的加密过程l 密钥的产生密钥的产生:要求接收消息的端系统,产生一对用
11、来加密和解密的:要求接收消息的端系统,产生一对用来加密和解密的密钥密钥PKB和和SKB,如图中的接收者,如图中的接收者B,其中,其中PKB是公开钥,是公开钥,SKB是秘密是秘密钥。因此,公钥可以发布给其他人钥。因此,公钥可以发布给其他人l 公开钥的分发公开钥的分发:端系统:端系统B将加密密钥将加密密钥(PKB)予以公开。另一密钥则被予以公开。另一密钥则被保密保密(SKB)l 加密加密:A要想向要想向B发送消息发送消息m,则使用,则使用B的公开钥加密的公开钥加密m,表示为,表示为c=EPKBm其中其中c是密文,是密文,E是加密算法是加密算法l 解密解密:B收到密文收到密文c后,用自己的秘密钥后,
12、用自己的秘密钥SKB解密,即解密,即m=DSKBc,其中其中D是解密算法。因为只有是解密算法。因为只有B知道知道SKB,所以其他人都无法对,所以其他人都无法对c解密。解密。9公钥体制的认证过程公钥体制的认证过程l公钥加密算法不仅能用于加、解密,还能用于对发方公钥加密算法不仅能用于加、解密,还能用于对发方A发发送的消息送的消息m提供认证提供认证l用户用户A用自己的秘密钥用自己的秘密钥SKA对对m加密,表示为加密,表示为c=ESKAml将将c发往发往B。B用用A的公开钥的公开钥PKA对对c解密,表示为解密,表示为m=DPKAcl因为从因为从m得到得到c是经过是经过A的秘密钥的秘密钥SKA加密,加密
13、,只有只有A才能做才能做到到。因此。因此c可当做可当做A对对m的数字签字。的数字签字。l任何人只要得不到任何人只要得不到A A的秘密钥的秘密钥SKSKA A就不能篡改就不能篡改mm,所以以上过程获,所以以上过程获得了得了对消息来源对消息来源和和消息完整性消息完整性的认证。的认证。10认证符:认证符:l通过通过单向压缩函数解决长文件的签字单向压缩函数解决长文件的签字(hash)l用户数目很多时,单纯加解密的认证方法需要用户数目很多时,单纯加解密的认证方法需要很大的存储空间很大的存储空间l因为每个文件都必须以明文形式存储以方便因为每个文件都必须以明文形式存储以方便实际使用,同时还实际使用,同时还必
14、须存储每个文件被加密必须存储每个文件被加密后的密文形式即数字签字后的密文形式即数字签字,以便在有争议时,以便在有争议时用来认证文件的来源和内容用来认证文件的来源和内容l改进的方法是改进的方法是减小文件的数字签字的大小减小文件的数字签字的大小,即即先将文件经过一个函数压缩成长度较小的先将文件经过一个函数压缩成长度较小的比特串比特串,得到的,得到的比特串称为认证符比特串称为认证符11认证符具有这样一个性质:认证符具有这样一个性质:l如果保持认证符的值不变而修改文件,在计算如果保持认证符的值不变而修改文件,在计算上是不可行的上是不可行的签名过程中,往往用发送者的秘密钥对认签名过程中,往往用发送者的秘
15、密钥对认证符加密,加密后的结果为原文件的数字证符加密,加密后的结果为原文件的数字签字。签字。l(详见第详见第7章章)12公钥体制同时提供加密和认证的过程公钥体制同时提供加密和认证的过程l认证过程中,由于消息是由用户自己的秘密钥加密的,所以消息不能被他人认证过程中,由于消息是由用户自己的秘密钥加密的,所以消息不能被他人篡改,但却能被他人窃听。这是因为任何人都能用用户的公开钥对消息解密。篡改,但却能被他人窃听。这是因为任何人都能用用户的公开钥对消息解密。为了同时提供认证功能和保密性,可使用双重加、解密为了同时提供认证功能和保密性,可使用双重加、解密l先签名后加密先签名后加密:发方首先用自己的秘密钥
16、:发方首先用自己的秘密钥SKA对消息对消息m加密,用于提供数字签加密,用于提供数字签字。再用收方的公开钥字。再用收方的公开钥PKB第第2次加密,表示为次加密,表示为c=EPKBESKAml先解密再验证先解密再验证:解密过程为:解密过程为m=DPKADSKBcl即收方先用自己的秘密钥,再用发方的公开钥对收到的密文两次解密。即收方先用自己的秘密钥,再用发方的公开钥对收到的密文两次解密。l如果先加密后签名是不安全的,别人可以先将签名去掉,再签上自己的签名,如果先加密后签名是不安全的,别人可以先将签名去掉,再签上自己的签名,从而实现了篡改。从而实现了篡改。134.2.2 公钥密码算法应满足的要求公钥密
17、码算法应满足的要求公钥密码算法应满足以下要求公钥密码算法应满足以下要求l 收方收方B产生密钥对产生密钥对(公开钥(公开钥PKB和秘密钥和秘密钥SKB)在)在计算上是容易的计算上是容易的。由私钥及其他密码信息容易计算出公开密钥由私钥及其他密码信息容易计算出公开密钥(P问题问题)l 发方发方A用收方的公开钥对消息用收方的公开钥对消息m加密加密以产生密文以产生密文c,即,即c=EPKBm在在计算上是容易的计算上是容易的l 收方收方B用自己的秘密钥对用自己的秘密钥对c解密解密,即,即m=DSKBc在在计算上是容易计算上是容易的的l 敌手敌手由由B的公开钥的公开钥PKB求秘密钥求秘密钥SKB在在计算上是
18、不可行计算上是不可行的的l 敌手敌手由密文由密文c和和B的公开钥的公开钥PKB恢复明文恢复明文m在在计算上是不可行计算上是不可行的的l 加、解密次序可换加、解密次序可换,即,即EPKBDSKB(m)=DSKBEPKB(m)其中最后一条虽然非常有用,但不是对所有的算法都作要求。在构建盲其中最后一条虽然非常有用,但不是对所有的算法都作要求。在构建盲签字等算法时需要类似要求签字等算法时需要类似要求以上要求的本质之处在于要求一个以上要求的本质之处在于要求一个陷门单向函数陷门单向函数。14单向函数单向函数l是两个集合是两个集合X、Y之间的一个映射之间的一个映射,使得,使得Y中每一中每一元素元素y都有惟一
19、的一个原像都有惟一的一个原像xX,且由,且由x易于计算易于计算它的像它的像y,由,由y计算它的原像计算它的原像x是不可行的是不可行的l“易于计算易于计算”是指函数值能在其输入长度的多项是指函数值能在其输入长度的多项式时间内求出式时间内求出,即如果输入长,即如果输入长n比特,则比特,则求函数值求函数值的计算时间是的计算时间是na 的某个倍数的某个倍数,其中,其中a是一固定的常是一固定的常数数l这时称求函数值的算法属于多项式类这时称求函数值的算法属于多项式类P,否则就是,否则就是不可行的,例如,函数的输入是不可行的,例如,函数的输入是n比特,比特,如果求函如果求函数值所用的时间是数值所用的时间是2
20、n的某个倍数的某个倍数,则认为求函数,则认为求函数值是值是不可行不可行的的15易于计算和不可行两个概念与计算复杂性易于计算和不可行两个概念与计算复杂性理论中复杂度的概念极为相似,然而又存理论中复杂度的概念极为相似,然而又存在着在着本质的区别本质的区别l在复杂性理论中,算法的复杂度是以算法在复杂性理论中,算法的复杂度是以算法在最在最坏情况或平均情况时坏情况或平均情况时的复杂度来度量的。这时的复杂度来度量的。这时可能对某些情况很容易求解,复杂度很低可能对某些情况很容易求解,复杂度很低l而在此所说的两个概念是指算法在而在此所说的两个概念是指算法在几乎所有情几乎所有情况下的情形况下的情形16陷门单向函
21、数陷门单向函数l称一个函数是陷门单向函数称一个函数是陷门单向函数,是指该函数,是指该函数是易于计算的是易于计算的,但但求它的逆是不可行的求它的逆是不可行的,除非再已知某些附加信息除非再已知某些附加信息。当。当附加信息给定后,求逆可在多项式时间完成附加信息给定后,求逆可在多项式时间完成总结为:总结为:陷门单向函数是一族可逆函数陷门单向函数是一族可逆函数fk,满足,满足l当当k和和X已知时,已知时,Y=fk(X)易于计算易于计算l当当k和和Y已知时,已知时,X=fk-1(Y)易于计算易于计算l当当Y已知但已知但k未知时,未知时,X=fk-1(Y)计算上是不可行的计算上是不可行的研究公钥密码算法就是
22、要找出合适的陷门单向函数研究公钥密码算法就是要找出合适的陷门单向函数174.2.3 对公钥密码体制的攻击对公钥密码体制的攻击 以下讨论的攻击是指对所有公钥密码体制都有效以下讨论的攻击是指对所有公钥密码体制都有效的平凡的攻击的平凡的攻击l涉及到公钥算法所基于的困难问题的安全性和参数空间涉及到公钥算法所基于的困难问题的安全性和参数空间大小的安全性大小的安全性第一种平凡的攻击:(穷搜索攻击与密钥长度)第一种平凡的攻击:(穷搜索攻击与密钥长度)l如果密钥太短如果密钥太短,公钥密码体制也易受到,公钥密码体制也易受到穷搜索穷搜索攻击攻击l然而又由于公钥密码体制所使用的可逆函数的计算复杂然而又由于公钥密码体
23、制所使用的可逆函数的计算复杂性与密钥长度常常不是呈线性关系,而是增大得更快。性与密钥长度常常不是呈线性关系,而是增大得更快。所以所以密钥长度太大又会使得加解密运算太慢而不实用密钥长度太大又会使得加解密运算太慢而不实用l因此公因此公钥密码体制目前主要用于密钥管理和数字签字钥密码体制目前主要用于密钥管理和数字签字。即即处理短消息如密钥和处理短消息如密钥和hash值值18第二种平凡的攻击第二种平凡的攻击l是寻找从公开钥计算秘密钥的方法是寻找从公开钥计算秘密钥的方法l目前为止,对常用公钥算法还都目前为止,对常用公钥算法还都未能够证明这种攻击是不可行未能够证明这种攻击是不可行的的第三种平凡的攻击:第三种
24、平凡的攻击:(可能字攻击可能字攻击)l仅适用于对公钥密码算法的攻击仅适用于对公钥密码算法的攻击l例如对例如对56比特的比特的DES密钥用公钥密码算法加密后发送,敌手用算密钥用公钥密码算法加密后发送,敌手用算法的公开钥法的公开钥对所有可能的密钥加密后与截获的密文相比较对所有可能的密钥加密后与截获的密文相比较l如果一样,则相应的明文即如果一样,则相应的明文即DES密钥就被找出。因此不管公钥算密钥就被找出。因此不管公钥算法的密钥多长,法的密钥多长,攻击的本质是对攻击的本质是对56比特比特DES密钥的穷搜索攻击密钥的穷搜索攻击l抵抗方法抵抗方法是在欲发送的明文消息后是在欲发送的明文消息后添加一些随机比
25、特添加一些随机比特不同的公钥密码算法在设计和实现中的密码协议是影响安不同的公钥密码算法在设计和实现中的密码协议是影响安全性的主要方面,不同算法的攻击不同。全性的主要方面,不同算法的攻击不同。公钥的安全性是指计算上的安全性公钥的安全性是指计算上的安全性194.3 RSA算法算法1978年由年由R.Rivest,A.Shamir和和L.Adleman提出提出的一种用数论构造的、也是迄今为止理论上最为的一种用数论构造的、也是迄今为止理论上最为成熟完善的公钥密码体制,已得到广泛的应用成熟完善的公钥密码体制,已得到广泛的应用lR L Rivest,A Shamir,L Adleman,On Digita
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码学 密码 ppt 课件
限制150内