您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第05章消息认证与数字签名
1主要内容数字信封数字指纹数字证书数字签名数字水印密码管理第五章消息认证与数字签名2一、密码学通常的作用公钥密码(双钥密码、非对称密码),是1976年由Diffie和Hellman在其“密码学新方向”一文中提出的单向陷门函数是满足下列条件的函数f:(1)给定x,计算y=f(x)是容易的;(2)给定y,计算x使y=f(x)是非常困难的,无实际意义。(3)存在δ,已知δ时,对给定的任何y,若相应的x存在,则计算x使y=f(x)是容易的。注:1*.仅满足(1)、(2)两条的称为单向函数;第(3)条称为陷门性,δ称为陷门信息。第五章消息认证与数字签名3一、密码学通常的作用2*.当用陷门函数f作为加密函数时,可将f公开,这相当于公开加密密钥。此时加密密钥便称为公开密钥,记为Pk。f函数的设计者将δ保密,用作解密密钥,此时δ称为秘密钥匙,记为Sk。由于加密函数是公开的,任何人都可以将信息x加密成y=f(x),然后送给函数的设计者(可以通过不安全信道传送);由于设计者拥有Sk,他自然可以解出x=f-1(y)。3*.单向陷门函数的第(2)条性质表明窃听者由截获的密文y=f(x)推测x是不可行的。第五章消息认证与数字签名4Diffie-Hellman密钥交换算法Diffie和Hellman并没有给出公钥密码实例,也既没能找出一个真正带陷门的单向函数。然而,他们给出单向函数的实例,并且基于此提出D-H密钥交换算法。这个算法是基于有限域中计算离散对数的困难性问题之上的:对任意正整数x,计算gx是容易的;但是已知g和y求x使y=gx,是计算上几乎不可能的。这称为有限域上的离散对数问题。公钥密码学中使用最广泛的有限域为素域FP。D-H密钥交换算法拥有美国和加拿大的专利。第五章消息认证与数字签名5D-H密钥交换协议:A和B协商一个大素数p和大整数g,1gp,g最好是FP中的本原元,即gxmodp可生成1~p-1中的各整数,例:2是11的本原元。p和g公开。当A和B按如下步骤进行保密通信:(1)A取大的随机数x,并计算X=gx(modP)(2)B选取大的随机数y,并计算Y=gy(modP)(3)A将X传送给B;B将Y传送给A。(4)A计算K=YX(modP);B计算K=Xy(modP),易见,K=K=gxy(modP)。A和B已获得了相同的秘密值K。双方以K作为加解密钥以传统对称密钥算法进行保密通信。第五章消息认证与数字签名6公开密钥算法的主要特点如下:1)用加密密钥PK对明文A加密后得到密文,再用解密密钥SK对密文解密,即可恢复出明文A。DSK(EPK(A))=A2)加密密钥不能用来解密,即:DPK(EPK(A))≠A;DSK(ESK(A))≠A3)用SK加密的信息只能用PK解密;用PK加密的信息只能用SK解密。4)从已知的PK不可能推导出SK。5)加密和解密的运算可对调:EPK(DSK(A))=A第五章消息认证与数字签名7一、密码学通常的作用维持机密性加密,让别人看不懂传输中的公共信道和存储的计算机系统非常脆弱,系统容易受到被动攻击(截取、偷窃、拷贝信息),主动攻击(删除、更改、插入等操作)。用于鉴别由于网上的通信双方互不见面,必须在相互通信时(交换敏感信息时)确认对方的真实身份。即消息的接收者应该能够确认消息的来源;入侵者不可能伪装成他人。第五章消息认证与数字签名8一、密码学通常的作用保证完整性消息的接收者能够验证在传送过程中消息是否被篡改;入侵者不可能用假消息代替合法消息。用于抗抵赖在网上开展业务的各方在进行数据传输时,必须带有自身特有的、无法被别人复制的信息,以保证发生纠纷时有所对证。发送者事后不可能否认他发送的消息。第五章消息认证与数字签名9数字信封数字信封(DIGITALENVELOPE):对数据进行加密的密钥必须经常更换。数字信封解决两个难题:取长补短单钥体制:密钥分发困难;高效;数据的加密公钥体制:加解密时间长;灵活;密钥的加密目的:利用数据接收者的公钥来封装保护加密数据的密钥。第五章消息认证与数字签名10数字信封发方:A1:生成对称密钥,用该密钥对报文加密;A2:用收方的公钥加密上述对称密钥;A3:将A1、A2步骤的结果传给收方;收方:B1:用自己的私钥解密对称密钥;B2:用得到的对称密钥解密报文。第五章消息认证与数字签名11数字信封第五章消息认证与数字签名12密钥管理极其重要。包括密钥的产生、分配、存储、验证和使用等。1由密钥分发中心(KDC)为用户A和B分别分发公钥PkA、PKB和私钥SkA、SKB作为用户A、B的主密钥。2当A要向B发信时,由A随机产生一个大数作为A、B之间通信的工作密钥。3A用SkA和PKB对工作密钥进行加密并传送给B。4B用SKB和PkA进行解密,得到工作密钥5A、B双方用此工作密钥进行保密通信。第五章消息认证与数字签名13数字证书数字证书:标志通讯各方身份的数据。数字标识数字凭证“电子身份证”数字证书是一种安全分发公钥的方式。过去采用通行字,安全性差,现在一般采用交互式询问回答,在询问和回答过程中采用密码加密。特别是采用密码技术的带CPU的智能卡,安全性好。在电子商务系统中,所有参与活动的实体都需要用数字证书来表明自己的身份。第五章消息认证与数字签名14密钥管理中心负责密钥的发放、注销及验证。RSA公钥体制就是采用这种方式进行密钥管理的。密钥管理中心又称为证书授权中心(CA)。CA为每个申请公开密钥的用户发放一个证书,证明该用户拥有证书中列出的公钥。数字证书内容:持证人的个人信息(姓名、性别、地址、E-mail);持证人的公钥;证书过期时间;证书序列号CA的名称;CA的数字签名;CA的数字签名保证不能伪造和篡改该证书,因此,数字证书既能分配公钥,又实现了身份认证。第五章消息认证与数字签名15身份认证第五章消息认证与数字签名用户A用户B1用户A的标识符2y1=EPA(RB);y2=DSB(y1)3y3=EPB(RB)y1?EPB(y2)相等则确认BRB?DSB(y3)相等则确认A16身份认证首先,A将自己的身份传送给B,但B不能确定此信息是来自A还是窃密者T;B产生一很大的随机数RB,用PA加密RB得到EPA(RB)传送给A,并用SB做DSB(EPA(RB))运算,将结果传送给A。A对y1解密得到DSA(EPA(RB))=RB,由于只有A知道SA,因此只有A才可求得RB,然后A用PB将y2加密,得到EPA(RB),由于只有合法的B才拥有SB,因此可以通过将计算结果与EPA(RB)比较,A就可以确认通信对方是B;合法者A将求得的RB用PB加密传送给B,因为只有合法的A可以求得RB从而可以得到正确的EPB(RB);B只需用SB解密y3即可得到DSB(EPB(RB))=RB,将此RB与原来的RB对比就可确认对方是A。第五章消息认证与数字签名17二、数字指纹在数字签名中有重要作用的“报文摘要”算法,即生成报文“数字指纹”的方法,近年来倍受关注,构成了现代密码学的一个重要侧面。为防止传输和存储的消息被有意或无意地篡改,采用哈希函数对消息进行运算生成消息摘要,附在消息之后发出或与信息一起存储。它在票据防伪中具有重要应用(如税务的金税系统和银行的支付密码器)。第五章消息认证与数字签名18二、数字指纹数字指纹是通过一类特殊的散列函数(HASH函数)生成的,对这类HASH函数的特殊要求是:1.输入报文的长度没有限制;2.对输入任何报文,能生成固定长度的摘要(数字指纹);3.从报文能方便地算出摘要;4.极难从指定的摘要生成一个报文,而由该报文又反推算出该指定的摘要;5.两个不同的报文极难生成相同的摘要。第五章消息认证与数字签名19二、数字指纹哈希函数的安全因素:一致性:相同的输入产生相同的输出。随机性:消息摘要外观是随机的,以防被猜出源消息。唯一性:几乎不可能找到两个消息产生相同的消息摘要。单向性:即如果给出输出,则很难确定出输入消息。第五章消息认证与数字签名20二、数字指纹基本过程是:1.发送者写一消息,并作为单向哈希函数的输入。2.消息摘要连消息一齐发送3.接受者分离消息和消息摘要,并利用消息生成消息摘要。4.比较两消息摘要,如果相同,则消息在传送期间没被更改。第五章消息认证与数字签名21二、数字指纹可以使用公开密钥技术对消息摘要加密,防止同时更改消息和消息摘要。消息摘要算法中两种流行的方式是:MD2和MD5。一个消息摘要是一个加密校验和,不像CRC是一个算术校验和。常用的哈希函数有:消息摘要4(MD4)算法消息摘要5(MD5)算法安全哈希函数(SHA)第五章消息认证与数字签名22三、MD5算法MD5报文摘要算法RFC1321由Rivest于1992年提出。可对任意长的报文进行运算,得出128位的MD代码。MD5算法是对杂凑压缩信息块按512位进行处理的,首先它对杂凑信息进行填充,使信息的长度等于512的倍数。从八十年代末到九十年代,Rivest开发了好几种RSA公司专有的报文摘要算法,包括MD、MD2、MD5等。据称,可以花费一千万美元去制造一台专门的机器,针对MD5搜索两个不同的报文具有相同的摘要,即碰撞现象,平均用24天才能找到一个碰撞。,MD5被认为仍是一个安全的。第五章消息认证与数字签名23四、数字签名鉴别文件或书信真伪的传统做法亲笔签名或盖章。签名起到认证,核准,生效的作用。电子商务、政务要求对电子文档进行辨认和验证,因而产生数字签名。数字签名的作用:保证信息完整性;提供信息发送者的身份认证。与传统签名的区别:需要将签名与消息绑定在一起。通常任何人都可验证。要考虑防止签名的复制、重用。第五章消息认证与数字签名24四、数字签名数字签名(DigitalSignature)信息发送者使用公开密钥算法技术,产生别人无法伪造的一段数字串。发送者用自己的私有密钥加密数据传给接收者,接收者用发送者的公钥解开数据后,就可确定消息来自于谁,同时也是对发送者发送的信息的真实性的一个证明。发送者对所发信息不能抵赖。第五章消息认证与数字签名25四、数字签名数字签名的过程:假设A要发送一个电子文件给B。1.系统初始化:选择签名所需的算法、参数2.产生签名:A用其私钥加密文件并发送给B;3.签名验证:B用A的公钥解开A送来的文件签名体制的构成:签名算法;验证算法第五章消息认证与数字签名26四、数字签名数字签名必须保证:可验证:签字是可以被确认的防抵赖:发送者事后不承认发送报文并签名;防假冒:攻击者冒充发送者向收方发送文件;防篡改:收方对收到的文件进行篡改;防伪造:收方伪造对报文的签名。签名对安全、防伪、速度要求比加密更高。第五章消息认证与数字签名27消息认证与数字签名的区别:前者能验证消息来源及完整性,防范第三者;后者在收发双方产生利害冲突时,解决纠纷。数字签名需要解决的一些问题1.签字后的文件可能被B重复使用。如果签字后的文件是一张支票,B很容易多次用该电子支票兑换现金,为此A需要在文件中加上一些该支票的特有的凭证,如timestamp等,以防止上述情况发生。第五章消息认证与数字签名28四、数字签名2.公钥算法效率很低,不易用于长文件的加密。一般采用Hash函数,将原文件单向映射为H=Hash(P),H只有几百bit,并且由P可以很快生成H,但由于H几乎不可能生成P。将公钥算法作用在H上生成“签名”S,记为Ek1(H)=S,k1为A的私钥,A将(P,S)传给B,B收到(P,S)后,要验证S是A的签字。若Dk2(S)=Hash(P),则S就是A的签字。第五章消息认证与数字签名29四、数字签名第五章消息认证与数字签名30四、数字签名第五章消息认证与数字签名1)发方A用单向散列函数对信息生成摘要。2)A用自己的私钥签名信息摘要。3)A把信息本身和已签名的信息摘要一起发送出去。4)收方B通过使用同一个单向散列函数对接收的信息生成新摘要,再用A的公钥对数字签名解密,并与新生成的信息摘要比较,以确认发方的身份和信息是否被修改过。31第五章消息认证与数字签名加密和数字签名相结合。设SKA和SKB分别为
本文标题:第05章消息认证与数字签名
链接地址:https://www.777doc.com/doc-2152751 .html