收藏 分享(赏)

电子商务安全课件1第2章2.5.ppt

上传人:bubibi 文档编号:19605892 上传时间:2023-11-19 格式:PPT 页数:72 大小:1.93MB
下载 相关 举报
电子商务安全课件1第2章2.5.ppt_第1页
第1页 / 共72页
电子商务安全课件1第2章2.5.ppt_第2页
第2页 / 共72页
电子商务安全课件1第2章2.5.ppt_第3页
第3页 / 共72页
电子商务安全课件1第2章2.5.ppt_第4页
第4页 / 共72页
电子商务安全课件1第2章2.5.ppt_第5页
第5页 / 共72页
亲,该文档总共72页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、目录 2.5公钥密码体制解决的问题 2.6 数字信封 2.7 单向散列函数 2.8 数字签名12.5 公钥密码体制解决的问题2对称密码体制已经能够对信息进行加密,对称密码体制已经能够对信息进行加密,为什么还需要公钥密码体制呢?为什么还需要公钥密码体制呢?公钥密码体制仅仅比对称密钥密码体制多用公钥密码体制仅仅比对称密钥密码体制多用了一个密钥而已吗,两个密钥好在哪里呢?了一个密钥而已吗,两个密钥好在哪里呢?思考本节提纲 密钥分配 密码系统密钥管理问题 数字签名问题32.5.1 密钥分配4用密钥用密钥K加密的密文加密的密文生成密钥生成密钥K攻击者攻击者接收方接收方B发送方发送方A明文可能被窃听明文可

2、能被窃听信息的明文信息的明文信息是否安全了呢信息是否安全了呢密文加密后可防止被窃听密文加密后可防止被窃听发送方生成密钥加密明文 问题:密钥K可能被窃取5用密钥用密钥K加密的密文加密的密文密钥密钥K(明文形式)(明文形式)生成密钥生成密钥K攻击者攻击者接收方接收方B发送方发送方A问题:密钥可能被窃取问题:密钥可能被窃取改进第一步:接收方生成密钥 改进传递加密信息的过程(第一步)6用密钥用密钥K加密的密文加密的密文密钥密钥K(明文形式)(明文形式)生成密钥生成密钥K攻击者攻击者接收方接收方B发送方发送方A窃取密钥为了解密窃取密钥为了解密使发送方和攻击者获取密钥的目的不同。使发送方和攻击者获取密钥的

3、目的不同。获得密钥为了加密获得密钥为了加密改进第二步:接收方生成公钥7用公钥用公钥KUB加密的密文加密的密文公钥公钥KUB:明文形式明文形式生成生成公钥公钥KUB和私钥和私钥KRB攻击者攻击者接收方接收方B发送方发送方A公钥被窃取也不能解密公钥被窃取也不能解密总结 解决密钥分配问题的关键有两点:第一,线路上传输的必须是公钥;第二,这个公钥必须是接收方的。提示:如果A、B双方需要使用公钥加密算法相互发送加密的信息给对方,则需要两对公/私钥,即A用B的公钥加密信息发送给B,B用A的公钥加密信息发送给A。8要防止攻击者假冒公钥 这样,发送方用接收方的公钥加密信息,接收方用该公钥对应的私钥解密信息,攻

4、击者即使截获公钥也不能解密信息。但要防止接收方的公钥被假冒 即攻击者也生成一对公私钥,然后把自己的公钥Ku冒充接收方B的公钥Ku发给发送方,发送方没有察觉,于是用该假冒的公钥Ku加密信息,攻击者就能用其对应的私钥Kr解密该信息了。9攻击者假冒公钥10用用公公钥钥KUB加加密密的密文的密文假冒的公钥假冒的公钥KUB生成公钥生成公钥KUB和私和私钥钥KRB攻击者攻击者接收方接收方B发送方发送方A生成公钥生成公钥KUB和和私钥私钥KRB窃窃 取取 KUB加密的密文加密的密文2.5公钥密码体制解决的问题 密钥分配 密码系统密钥管理问题 数字签名问题11对称密码系统需要的密钥数 思考:在一个密码系统中,

5、用户通常不止A和B两个人,有时候有几千人之间要相互发送加密信息,能否使用对称密钥进行操作呢?假设A要与两个人(B和C)安全通信,A能否用同一个密钥处理与B和与C的消息?当然,这是不行的,否则怎么保证B不会打开A给C的信,C不会打开A给B的信?12对称密码系统需要的密钥数 因此,A为了和两个人安全通信,必须使用两个密钥(A-B与A-C),如果B要与C通信,则要另一个密钥(B-C),因此三方通信的话需要3个密钥。对称密码系统有n人需要安全通信时,这n人中两两之间需要一个密钥,需要的密钥数是:密钥数与参与通信人数的平方成正比 13公钥密码系统需要的密钥数 采用公钥密码系统,假设A要与n个人进行安全通

6、信,他只需把他的公钥发布出去,让这n人知道就可以了。也就是说,A与n人之间安全通信,只需要一对密钥,同样,B与n人之间安全通信,也只需要一对密钥。对于公钥密码系统,有n人之间需要相互安全通信时,只需要n对密钥即可,密钥量大大减少。这n对密钥中的私钥由用户自己保存,公钥由专门的公钥管理机构保管和分发。14两种系统密钥管理的比较 公钥密码系统所需管理的密钥数(n对)比对称密码系统所需的密钥数(n2个)大大减少 对称密码系统和公钥密码系统都需要一个密钥分配中心(KDC)。因此,不要误认为公钥密码技术使得密钥管理非常简单,事实上,仍需要一个代理中心。只是它需要管理的密钥可以大大减少152.5公钥密码体

7、制解决的问题 密钥分配 密码系统密钥管理问题 数字签名问题162.5.3 数字签名问题 公钥密码算法的加密机制是:下面考虑另外一种机制:A的公钥是公开的,从而无法实现保密性。17如果如果A是发送方,是发送方,B是接收方,则是接收方,则A用用B的公钥的公钥加密信息,并将其发送给加密信息,并将其发送给B如果如果A是发送方,是发送方,B是接收方,则是接收方,则A用用A的私钥的私钥加密信息,并将其发送给加密信息,并将其发送给B数字签名的基本原理 18A的私钥的私钥发送方发送方A明明文文-密密文文?加密加密A的公钥的公钥接收方接收方B明明文文密密文文?解密解密实现消息认证 接收方用A的公钥解密,如果解密

8、成功,则B可以断定这个消息是A发来的。因为,用A的私钥加密的信息只能用A的公钥解密,反过来说,用A的公钥能解密成功就证明消息一定是用A的私钥加密的。19实现不可抵赖性 如果今后发生争议,A也无法否认自己发了消息,因为B可以拿出加密信息,用A 的公钥解密,从而证明这个消息是A发来的。20总结:数字签名的作用 消息认证:证实某个消息确实是某用户发出的。实现不可抵赖性:消息的发送方不能否认他曾经发过该消息。完整性保证:如果消息能够用公钥解密成功,还可确信消息在传输过程中没有被篡改过。21目录 2.5公钥密码体制解决的问题 2.6 数字信封 2.7 单向散列函数 2.8 数字签名22公钥密码体制的优缺

9、点 公钥密码体制存在一个严重的缺点,就是加、解密速度很慢23例如:例如:512比特模数的比特模数的RSA算法与算法与DES算法相算法相比,用软件实现的话比,用软件实现的话RSA大约比大约比DES慢慢1000倍,倍,用硬件实现的话用硬件实现的话RSA大约比大约比DES慢慢1500倍倍对称密钥加密与公钥加密比较 特征特征对称密称密钥加密加密公公钥加密加密加密加密/解密所用解密所用的密的密钥相同相同不同不同加密加密/解密速度解密速度 快快慢慢得到的密文得到的密文长度度通常等于或小于明通常等于或小于明文文长度度大于明文大于明文长度度密密钥分配分配大大问题没没问题系系统所需密所需密钥总数数大大约为参与者

10、的平参与者的平方个方个等于参与者的个数等于参与者的个数用法用法主要用于加密主要用于加密/解解密密主要用于加密会主要用于加密会话密密钥,数字数字签名名24数字信封(混合密码体制)数字信封用一个对称密钥加密明文,而用公钥密码体制的公钥加密这个对称密钥 这样既能使加密有很高的效率,又不必担心对称密钥在传输中被窃取,实现了两全其美的效果 过程:发送方A首先利用随机产生的对称密钥加密信息,再利用接收方B的公钥加密该对称密钥,被公钥加密后的对称密钥被称之为数字信封。25数字信封的工作过程 在实际中,公钥密码体制更多的用来加密对称密码体制的密钥,而不是加密普通的明文信息。明文信息一般用对称密钥加密。此时对称

11、密钥也被称为会话密钥,为了防止攻击者截获大量的密文分析出会话密钥,该会话密钥需要经常更换。26发送方发送方A接收方接收方B对称对称密钥密钥对称对称密钥密钥明文密文?加密加密A的公钥明文解密解密接收方接收方公钥公钥加密加密?密文?接收方接收方私钥私钥解密?数数 字字 信信封封目录 2.5公钥密码体制解决的问题 2.6 数字信封 2.7 单向散列函数 2.8 数字签名27不可逆加密体制 不可逆加密体制又称为单向密码体制,它是一种从明文到密文的不可逆变换 通常在明文到密文的转换中存在信息的损失,因此密文无法恢复成明文,实现不可逆密码体制的方法是通过单向散列函数。单向散列函数用于某些只需要加密、不需要

12、解密的特殊场合,例如:文件完整性保证口令存储28单向散列函数的性质 函数的输入(明文)可以是任意长度;函数的输出(密文)是固定长度的;已知明文m,求H(m)较为容易,可用硬件或软件实现;已知散列值h,求使得H(m)=h的明文m在计算上是不可行的,称为函数的单向性,称H(m)为单向散列函数;散列函数具有防伪造性(又称弱抗冲突性),即已知m,找出m(mm)使得H(m)=H(m)在计算上是不可行的;散列函数具有很好的抵抗攻击的能力(又称强抗冲突性),即找出任意两个不同的输入x、y,使得H(y)=H(x)在计算上是不可行的。29单向散列函数的性质和种类 提示:强抗冲突性自然包含弱抗冲突性。第和第个条件

13、给出了散列函数无碰撞性的概念,如果散列函数对不同的输入可产生相同的输出,则称该函数具有碰撞性collision。常见的单向散列函数有MD5和SHA-1,散列函数的安全性主要来源于它的单向性。30散列函数算法被破解的含义 MD5的散列码长度是128比特,而SHA-1的散列码长度是160比特。近年来有报道称已可以在24小时内找到MD5的一个冲突,使得MD5对于不同的输入有相同的输出结果,因此说MD5算法已经被破解。注意:说MD5算法被破解,只是说可以通过密文找到与明文有相同散列值的一个碰撞,而绝不是说可以将MD5算法加密的密文还原成明文。312.7.2 对散列函数的攻击 由于单向散列函数接受的输入

14、长度是任意的,而它的输出长度是固定值,因此单向散列函数将带来数据的压缩,单向散列函数肯定会存在碰撞的可能。如果用单向散列函数对消息求散列值,是不希望发生碰撞的,否则攻击者可以把消息修改成特定的模式,使其和原始消息具有相同的散列值,而用户却无法通过计算散列值发现数据已经被修改 因此散列函数又被称为数字指纹,就是说一般每个不同的消息都有其独特的散列值。32两类生日攻击 对单向散列函数的攻击是指找到散列函数对不同输入的碰撞,这称为生日攻击,它包括两类,分别对应攻击散列函数的弱抗冲突性和强抗冲突性 1.第类生日攻击 2.第类生日攻击(基于生日悖论)33第类生日攻击 已知一散列函数H有n个可能的输出,H

15、(x)是一个特定的输出,如果对H随机取k个输入,则至少有一个输入y使得H(y)=H(x)的概率为0.5时,k有多大?由(1+x)k1+kx,其中|x|1,可得1-1-1/nk1-1-k/n=k/n 若使上述概率等于0.5,则k=n/2。特别地,如果H的输出为m比特长,即可能的输出个数n=2m,则k=2m-1 34第类生日攻击(基于生日悖论)生日悖论是指:任意找23个人,则他们中有两个人生日相同的概率会大于50%,如果有30人,则此概率大约为70%,这比我们凭感觉认为的概率要大得多,因此称为生日悖论。设散列函数H有2m个可能的输出(即输出长为m比特),如果H的k个随机输入中至少有两个产生相同输出

16、的概率大于0.5,则k=2m/2。称寻找函数H的具有相同输出的两个任意输入的攻击方式为第类生日攻击。35两类生日攻击的难度比较 可看出第类生日攻击比第类生日攻击容易,因为它只需要寻找2m/2个输入。因此抵抗第类生日攻击(对应强抗冲突性)比抵抗第类生日攻击(对应弱抗冲突性)要难。例子:针对散列函数的第类生日攻击的方法 36散列函数的设计及MD5算法 一个好的散列函数的设计有一些基本原则:1)对不同的输入,要尽量不产生相同的散列值(抗冲突性)。2)两个明文即使只有微小的差别(如只有一位不同),它们的散列值也会有很多位都发生变化(扩散性),这样根本不能从散列值看出两个明文的相似性。3)将明文的长度信

17、息记录在散列值中,这样可以更好的防止冲突 37MD5散列算法38散列函数的分类 1)带秘密密钥的Hash函数:消息的散列值由只有通信双方知道的秘密密钥K来控制。此时,散列码称作MAC(Message Authentication Code,消息认证码)39原文消息摘要MACHash函数密钥密钥k消息认证码的实现 MAC的实现的一个简单方法是先对消息求散列值,再用一个对称密钥加密该散列值,这样,接收方必须知道该对称密钥才能够提取这个散列值,并将该散列值与对消息求出的散列值进行比较。由于散列函数并不是专为MAC而设计的,它不使用密钥,并不能直接构造MAC。于是人们想出了将密钥直接加到原文中再求ha

18、sh值方法构造MAC,传输前把密钥K移去。这种方案的一种实现叫做HMAC 40HMAC41Hash密钥K原文MAC原文MAC原文密钥KHashMAC比较MDC 2)不带秘密密钥的散列函数:消息散列值的产生无需使用密钥,任何人都可以使用公开的散列函数算法对散列值进行验证,这就是普通的散列函数。此时,散列值称作MDC(Manipulation detection code,篡改检验码)。MDC通常用来检测文件或报文的完整性。42根据散列函数使用的算法 根据散列函数使用的算法,目前的散列函数主要分为两类,MD5 128位散列值 SHA-1(Secure Hash Algorithm)160位散列值

19、43散列链 美国人兰帕德(Lamport)提出 将散列函数h(x)循环地用于一个字符串。(即将所得散列值再次传递给散列函数得到其散列值)例:h(h(h(h(x)一个长度为4哈希链,通常记h4(x)44目录 2.5公钥密码体制解决的问题 2.6 数字信封 2.7 单向散列函数 2.8 数字签名45本节提纲 2.8.1 数字签名的特点 2.8.2 数字签名的过程 2.8.3 数字签名的算法实现 2.8.4 特殊的数字签名46对签名的基本要求 在工作中,经常需要领导对文件进行签名,对签名的基本要求是:无法伪造,容易鉴别,不可抵赖 而数字签名和手写签名的功能非常类似,好的数字签名比手写签名更能够防止别

20、人伪造。47数字签名的特点 签名是可以被确认的,即收方可以确认或证实签名确实是由发方签名的;签名是不可伪造的,即收方和第三方都不能伪造签名(unforgeable);签名不可重用,即签名是消息(文件)的一部分(绑定在一起),不能把签名移到其它消息(文件)上;签名是不可抵赖的,即发方不能否认他所签发的消息;第三方可以确认收发双方之间的消息传送但不能篡改消息。48本节提纲 2.8.1 数字签名的特点 2.8.2 数字签名的过程 2.8.3 数字签名的算法实现 2.8.4 特殊的数字签名49数字签名的过程 最简单的数字签名就是发送方将整个消息用自己的私钥加密,接收方用发送方的公钥解密,解密成功就可验

21、证确实是发送方的签名。在实际中一般是先对消息用Hash函数求消息摘要(散列值),然后发送方用其私钥加密该散列值,这个被发送方私钥加密的散列值就是数字签名,将其附在文件后,一起发送给接收方就可以让其验证签名了 50数字签名的基本过程 51发送方A接收方B明文Hash消息摘要A的 私 钥 签名消息摘要?明文消息摘要?明文消息摘要-HashA的 公 钥 验证消息摘要-比较数 字 签名带有保密性要求的数字签名方案 52发送方A接收方B对称密钥消息摘要?明文对称密钥密文?加密A的公钥解密B的公钥加密?密文?B的私钥解密?数字信封密消息摘要?明文实现同时签名和加密的要求 注意:带有保密性的数字签名使用了两

22、对公私钥。因为公钥密码体制如果作为数字签名使用,则无法同时实现保密性,反之如果作为加解密使用,则无法同时实现签名。如果要用公钥密码体制同时实现数字签名和加密,则需要使用两次公钥密码算法,一次用于加密,一次用于签名。这需要两对公私钥才能实现,一对是发送方的,一对是接收方的。53本节提纲 2.8.1 数字签名的特点 2.8.2 数字签名的过程 2.8.3 数字签名的算法实现 2.8.4 特殊的数字签名54数字签名的算法实现 理论上讲,只要是双向可逆的公钥加密算法都能用于实现数字签名,常见的算法有RSA、ECC、ElGamal。如果用RSA算法实现数字签名,一定要先对消息求消息摘要,再用私钥签名;或

23、者签名的密钥对专门用于签名,而用另外一对公/私钥对进行加/解密 55对RSA数字签名的攻击 这是因为,你的公钥e和n是公开的,攻击者如果截获别人发给你的密文c(c是别人用你的公钥加密得到的,即c=me mod n),则攻击者可以任意选择一个小于n且与n互素的数r,计算:x=r e mod ny=x c mod n 将y发给你请你签名,如果你随随便便就用自己的私钥d给他发来的y签名,即:u=y d mod n56对RSA数字签名的攻击 则攻击者得到签名u后,就可以轻而易举地恢复出c对应的明文m。他首先计算r的乘法逆元t,即t=r 1 mod n,再把t和u相乘即得到m,这是因为:t u=r 1

24、y d mod n=r 1 (x c)d mod n=r 1 x d c d mod n=r 1 r e d c d mod n=r 1 r k(n)+1 c d mod n=r 1 r c d mod n=c d mod n=m57DSADSA(Digital Signature AlgorithmDigital Signature Algorithm DSA(Digital Signature Algorithm)。DSA是一种单向不可逆的公钥密码体制,它只能用于数字签名,而不能用于加密解密和密钥分配。DSA在每次签名时候,使用了随机数,所以对同一个消息签名,每次签名的结果是不同的。所以称

25、DSA的数字签名方式为随机化数字签名,而RSA的数字签名方式为确定性数字签名。由于RSA存在共模攻击,用RSA签名每次都要使用不同的n,而DSA没有这个需要,因此在实际中DSA签名比RSA签名更加方便 582.8.4 EIGamal数字签名算法 ElGamal数字签名算法是一种非确定性地签名方案,它需要使用随机数,但ElGamal数字签名算法的运算过程并非是ElGamal加密算法的逆过程。签名方A对消息M进行散列压缩后得到消息散列码H(M),再计算:r=ak mod p s=(H(M)-x r)k-1 mod(p-1)将(r,s)作为用户A对消息M的数字签名,与消息M一起发送给接收方592.8

26、.4 EIGamal数字签名算法 3.验证签名的过程 接收方B在收到消息M与数字签名(r,s)后,先计算消息M的散列码H(M)。然后计算:如果上式成立,则可确信(r,s)为有效签名,否则认为签名是伪造的。602.8.6 前向安全数字签名 公钥密码体制的安全性基于私钥不会被窃取这一假设私钥不会在Internet上传输,很难被窃取,所以该假设在一般情况下是成立的 但是,对于银行来说,一旦私钥被窃取,则银行以前用其私钥签名发行的电子现金就都作废了。前向安全签名是指,如果当前的签名私钥泄露,攻击者也不可能伪造以前的签名,实现的途径(私钥是经常变化的)61前向安全数字签名 前向安全的基本思想:在普通数字

27、签名算法中添加密钥进化算法。密钥进化算法将私钥的生命期分为T个阶段,公钥在这T个时间段总保持不变,而私钥随着时间段的推进而不断更新。具体实现:散列链62SK1SK0阶段阶段2阶段阶段1阶段阶段TSK2 SKT ffff签名私钥:签名私钥:PK|Ti验验证证:公公钥钥+时时间段编号间段编号强前向安全的概念强前向安全的概念 问题:如果攻击者获得了第i时间段的私钥,并且签名方也没有发觉自己的私钥已经被窃取,那么攻击者就可以跟签名方一样进行私钥的更新,得到i时间段以后的所有私钥。有了这些私钥就可以伪造i时间段及i时间段以后的所有签名,直到被签名者发现。前向安全签名无法保证签名在将来的安全性(即后向安全

28、性)强前向安全签名:即使攻击者获得了i时间段的私钥,它也不能伪造i时间段以前的签名和i时间段以后的签名 63本节提纲 2.8.1 数字签名的特点 2.8.2 数字签名的过程 2.8.3 数字签名的算法实现 2.8.4 特殊的数字签名64特殊的数字签名 根据电子商务等应用的需要,产生了许多种特殊的数字签名方式,如盲签名、群签名、门限签名、不可争辩签名、数字时间戳等 65盲签名 在一般的数字签名中,文件的签名者都知道他们在签署什么。但有时可能需要某人对一个文件签名,却又不想让他知道文件的内容。例如某人立遗嘱时。盲签名最主要的用途是实现电子现金的匿名性 66盲签名的过程 67MMMM SignSig

29、nSignM脱盲运算脱盲运算SignM签名运算名运算X验证签名名正确正确盲化盲化H文件文件拥有者有者签名者名者验证者者M|SignM图2 盲签名的原理分析 盲签名的基本原理是两个可交换算法的应用:第一个是加密算法,它用来隐藏消息,实现盲化处理;第二个是签名算法,用来对消息进行签名。只有当这两个算法是可交换的,即Sign k(mh)=Sign k(m)*h(h为盲化因子),盲签名才能有效。盲签名与普通数字签名相比,有两个显著的特点:消息的内容对签名者是不可见的;在签名消息被接收者公开后,签名者不能追踪签名,如图2.28中签名者即使看到Sign,仍然不能把它和M联系起来,即盲签名具有不可追踪性 6

30、8群签名群签名 群签名是指:某个群组中任何一个成员都可以以群组的名义匿名签发消息,验证者可以确认签名来自该群组,但不能确认是群组中的哪一个成员进行的签名。但当出现争议时,借助于一个可信的机构或群成员的联合就能识别出那个签名者 69门限签名门限签名 在有n个成员的群体中,至少有t个成员才能代表群体对文件进行有效的数字签名。例如:银行金库大门的打开申请需要一个正行长和一个副行长同时签名或者三个副行长同时签名才能生效。这就需要门限签名。门限签名可通过共享密钥的方法实现,它将密钥分为n份,只有当超过t份的子密钥组合在一起才能重构出密钥 70数字时间戳 数字时间戳DTS(Digital time-stamp)产生的一般过程是:用户首先对需要加时间戳的文件用Hash函数计算其摘要,然后将摘要发送给TSA,TSA将收到文件摘要时的日期时间信息附加到文件中,再用TSA的私钥对该文件进行加密(TSA的数字签名),然后送回用户,71数字时间戳的产生过程72原始文件摘要摘要|时间数字时间戳Hash函数生成摘要摘要加时间数字时间戳TSA私钥加密发送方时间戳权威TSA

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 网络技术 > 前端技术

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报