04第四章 数字签名与身份认证
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.1 数字签名Baidu Nhomakorabea术
一个签名方案由签署算法与验证算法两部分构成。可用五元关系组 (P,A,K,S,y) 表示,其中,P是由一切可能消息(messages)所构成的有限集合; A是一切可能的签名的有限集合;K为有限密钥空间,是一些可能 密钥的有限集合;任意k∈K,有签署算法Sigk∈S,Sigk:P→A, 对任意x∈P,有s=Sigk(x),那么s∈S为消息x的签名,将(x,s)发 送到签名验证者。对于密钥集合K,有对应的验证算法Verk∈y, 满足: Verk:P×A→{真,假}
4.1 数字签名技术
利用散列函数进行数字签名和验证的文件传输过程 : (1)发送方首先用哈希函数从原文得到数字摘要,然后采用公开密 钥体系用发送方的私有密钥对数字摘要进行签名,并把签名后的数 字摘要附加在要发送的原文后面。 (2)发送一方选择一个秘密密钥对文件进行加密,并把加密后的文 件通过网络传输到接收方。 (3)发送方用接收方的公开密钥对秘密密钥进行加密,并通过网络 把加密后的秘密密钥传输到接收方。 (4)接受方使用自己的私有密钥对密钥信息进行解密,得到秘密密 钥的明文。 (5)接收方用秘密密钥对文件进行解密,得到经过加密的数字摘要。 (6)接收方用发送方的公开密钥对数字签名进行解密,得到数字摘 要的明文。 (7)接收方用得到的明文和哈希函数重新计算数字摘要,并与解密 后的数字摘要进行对比。如果两个数字签名是相同的,说明文件在 传输过程中没有被破坏。
4.1 数字签名技术
DSA的一个重要特点是两个素数公开,这样,当使用别人的p和q 时,即使不知道私钥,也能确认它们是否是随机产生的。而RSA 算法确做不到。图4-4描述了DSS的签名和验证函数。
图4-4 DSS签名和验证
4.1 数字签名技术
椭圆曲线数字签名算法(ECDSA) 1. ECDSA的签名算法 签名的时候,自然有待签署的消息m;全局参数D=(q, FR, a, b, G, n, h),还有签名者的公钥私钥对(Q,d)。 (1)选择一个随机数k,k ∈[1,n—1]; (2)计算kG=(x1,y1); (3)计算r=xl mod n;如果r=0,则回到步骤(1); (4)计算k-1 mod n; (5)计算e=SHA1(m); (6)计算s=k-1(e+dr) mod n,如果s=0,则回到步骤(1); (7)对消息的签名为(r,s); 最后签名者就可以把消息m和签名(r,s)发送给接收者。
4.1 数字签名技术
1.数字签名的特点 (1)信息是由签名者发送的; (2)信息自签发后到收到为止未曾做过任何修改; (3)如果A否认对信息的签名,可以通过仲裁解决A和B之间的争议 (4)数字签名又不同于手写签名: 数字签名随文本的变化而变化,手写签字反映某个人个性特征, 是不变的;数字签名与文本信息是不可分割的,而用手写签字是附 加在文本之后的,与文本信息是分离的。 2.数字签名的形式化定义 “数字签名”系指在数据电文中,以电子形式所含、所附或在逻 辑上与数据电文有联系的数据,和与数据电文有关的任何方法,它 可用于数据电文有关的签字持有人和表明此人认可数据电文所含信 息。
第四章 数字签名与身份认证
数字签名技术
身份认证技术
4.1 数字签名技术
4.1.1 数字签名基本原理
数字签名的概念和特点
数据摘要 散列函数对消息处理产生的散列值,也称其为消息的散列值, 摘要信息在数字签名中应用过程可以概述为:首先使用某种散列算 法,对要发送的数据进行处理,生成数据摘要信息;然后采用公钥 密码算法,用私钥加密数据摘要信息 一个签名体制一般包括两个部分 一是发送方的签名部分,对消息M签名,可以记作S=Sig(K, M),签字算法使用的密钥是秘密的,即是签字者的私钥。 二是接收方的认证部分,对签名S的验证可以记作Ver(M,S, K)— {真,假},认证算法使用的密钥是发送方(即签名者)的公钥。
签名者收到(x,s)后,计算Verk(x,y),若y=Sigk(x),则Verk(x,y)= 真;若y≠Sigk(x),则Verk(x,y)=假。其中:①任意是k∈K,函数Sigk和 Verk都为多项式时间函数。②Verk为公开的函数,而Sigk为秘密函数。③ 如果坏人要伪造B对x的签名,在计算上是不可能的。也即,给定x,仅有 B能计算出签名y,使得Verk(x,y)=真。④一个签名方案不能是五条件安 全的,有足够的时间,第三方总能伪造B的签名。
4.1 数字签名技术
(2)签名及验证协议 p产生随机数k,k﹤q。 p计算r=(gk mod p) mod q 和s=(k-1(H(m)+xr)) mod q。签名结果 是(m, r, s)。 验证时,计算 w=s-1 mod q u1=(H(m)· mod q w) u2=(r· mod q w) v=((gu1· yu2) mod p) mod q 若v=r,则认为签名有效。
4.1 数字签名技术
DSS数字签名体制 1. DSS介绍
图4-3 DSS数字签名体制
4.1 数字签名技术
2.数字签名算法(DSA) (1)DSA算法参数说明 DSA算法中应用了下述参数: P:L bit长的素数。L是64的倍数,范围是512-1024; Q:p-1的160bit的素因子; G:g=h(p-1)/q mod p ,h满足1<h<p-1, h(p-1)/q mod p >1; X:1<x<q,x为私钥; Y:y=gx mod p , (p, q, g, y)为公钥; H(x):单向Hash函数。在DSS中选用安全散列算法(Secure Hash Algorithm, SHA)[3]。 P, q, g:可由一组用户共享,但在实际应用中,使用公开模数可能 会带来一定的威胁。
4.1 数字签名技术
3.数字签名的功能 (1)身份认证。收方通过发方的电子签名能够确认发方的确切身份, 但无法伪造。 (2)保密。双方的通信内容高度保密,第三方无从知晓。 (3)完整性。通信的内容无法被篡改。 (4)不可抵赖。发方一旦将电子签字的信息发出,就不能再否认。 数字签名与数据加密完全独立。数据可以只签名或只加密,也 可既签名又加密,当然,也可以既不签名也不加密。
4.1 数字签名技术
2.一个简单的群签名协议 该协议使用了一个可信赖的第三方,假设该团体有n个成员,下面 简单的描述该协议的步骤: (1)第三方产生n×m对密钥(公钥私钥对);然后给每一个成员m对互异 的密钥; (2)第三方把n×m个公钥用随机的顺序加以公开,作为群体的公钥表; 并且第三方记住每—个成员对应哪m对密钥: (3)当群体中某—个成员签名时,从自己的m个私钥中随机选择一个, 进行签名。 (4)而验证签名时,用该团体的公钥表进行签名认证即可。 (5)当发生争议时,第三方知道密钥对与成员之间的对应关系,所以 可以确定出签名者是团体中哪一个成员。 当然,上述协议的较大缺陷在于需要—个第三方。
4.电子签名的法律地位
4.1 数字签名技术
数字签名与手写签名的区别
1.数字签名与手书签名的区别在于,手书签名是模拟的,且因人而 异 2.数字签名是0和1的数字串,因消息而异 3.数字签名与消息认证的区别在于,消息认证使收方能验证消息发 送者及所发消息内容是否被篡改过 4.当收者和发者之间有利害冲突时,单纯用消息认证技术就无法解 决他们之间的纠纷,此时须借助满足前述要求的数字签名技术。 5.任何一种产生签名的算法或函数都应当提供这两种信息,而且从 公开的信息很难推测出用于产生签名的机密信息 6.任何一种数字签名的实现都有赖于精心设计的通信协议
4.1 数字签名技术
上述流程 :
图4—1 数字签名过程
4.1 数字签名技术
4.1.2 常规数字签名体制
RSA数字签名体制 1.数字签名框图
图4-2 RSA数字签名框图
4.1 数字签名技术
2.签名过程 (1)计算消息的散列值H(M)。 (2)用私钥(d,n)加密散列值:s=(H(M))d mod n。答名结果就是s。 (3)发送消息和签名(M,s)。当然,消息M很短的时候,可以直接对 M用私钥加密,可以表达为:s=Sig(M)=Md mod n,签名时使用 私钥(d,n)。 3.认证过程 接收方收到(M,s)之后 (1)取得发送方的公钥(e,n) (2)解密签名s:h=se mod n。 (3)计算消息的散列值H(M)。 (4)比较,如果h=H(M),表示签名有效;否则,签名无效。 如果消息M很短的时候,可以直接对M用公钥解密以验证签名的有效 性,可以表达为:Ver(M,s)=真〈=〉M=se mod n
4.1 数字签名技术
数字签名使用模式与使用原理
1.数字签名使用模式 (1)智慧卡式 (2)密码式 (3)生物测定式
2.数字签名使用原理 数字签名使用的是发送方的密钥对,发送方用自己的私有密钥 进行加密,接收方用发送方的公开密钥进行解密 这是一个一对多的关系:任何拥有发送方公开密钥的人都可以 验证数字签名的正确性。而私有密钥的加密解密则使用的是接收方 的密钥对,这是多对一的关系:任何知道接收方公开密钥的人都可 以向接收方发送加密信息,只有唯一拥有接收方私有密钥的人才能 对信息解密。 通常一个用户拥有两个密钥对,另一个密钥对用来对数字签名 进行加密解密,一个密钥对用来对私有密钥进行加密解密。这种方 式提供了更高的安全性。
4.1 数字签名技术
数字签名方案的分类
1.基于数学难题的分类 (1)基于离散对数问题的签名方案 (2)基于素因子分解问题的签名方案 (3)上述两种的结合签名方案 2.基于签名用户的分类 (1)单个用户签名的数字签名方案 (2)多个用户的数字签名方案。 3.基于数字签名所具有特性的分类 (1)不具有自动恢复特性的数字签名方案 (2)具有消息自动恢复特性的数字签名方案 4.基于数字签名所涉及的通信角色分类 (1)直接数字签名(仅涉及通信的源和目的两方) (2)需仲裁的数字签名(除通信双方外,还有仲裁方)
4.1 数字签名技术
2.ECDSA的认证算法 签名的时候,自然有待签署的消息m;全局参数D=(q, FR, a, b, G, n, h),还有签名者的公钥私钥对(Q,d)。当接收者收到消息m 和签名(r,s)之后,验证对消息签名的有效性,需要取得这些参 数:全局参数D=(q,FR,a,b,G,n,h),发送者的公钥Q。 (1)检查r、s,要求r、s∈[1,n-1]; (2)计算e=SHA1(m); (3)计算w=s-1 mod n; (4)计算u1=ew mod n; u2=rw mod n; (5)计算X=ulG十u2Q; (6)如果X=O,表示签名无效;否则,X=(x1,y1),计算v=x1 mod n; (7)如果v=r,表示签名有效;否则表示签名无效:
盲签名
图4-5 盲签名原理
4.1 数字签名技术
完全盲签名 签名者在文件上的签名是有效的,签名是其签署文件的证据。如果 把文件给签名者看,他可确信他签署过这份文件。但是,签名者不 能把签署文件的行为与签署了的文件相关联。即使他记下了他所做 的每一个盲签名,他也不能确定他在什么时候签署了该文件。 批量签名 批量签名(Batch Signature),是指能够用一次签名动作,完成对若 干个不同的消息的签名;并且以后可以对每一条消息独立的进行认 证。 群签名 1.群签名特点 (1)只有团体内的成员才能够代表团体签名; (2)接收到签名的人可以验证该签名是属于某—团体的; (3)但是,接收者不知道签名的是该团体中的哪一个成员; (4)在出现争议时,可以由团体的成员或第三方识别出签字者。
4.1 数字签名技术
4.1.3 特殊数字签名体制
不可否认数字签名 失败-终止数字签名
对每个可能的公开密钥,对应着很多的私有密钥,它们都可以正常工作。 而签名者仅仅持有并知道众多私有密钥中的一个;所以强大的攻击者恢复 出来的私有密钥,刚好是签名者持有的私有密钥的情况出现概率是非常小 的。而不同的私有密钥产生的签名是不相同的,以此可以鉴别出伪造者的 签名。