第10章 数字签名与鉴别协议.ppt

上传人:s****8 文档编号:67320344 上传时间:2022-12-24 格式:PPT 页数:44 大小:280.50KB
返回 下载 相关 举报
第10章 数字签名与鉴别协议.ppt_第1页
第1页 / 共44页
第10章 数字签名与鉴别协议.ppt_第2页
第2页 / 共44页
点击查看更多>>
资源描述

《第10章 数字签名与鉴别协议.ppt》由会员分享,可在线阅读,更多相关《第10章 数字签名与鉴别协议.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第1010章章 数字签名和鉴别协议数字签名和鉴别协议1.数字签名2.鉴别协议3.数字签名标准(DSS)1.数字签名数字签名报文鉴别示例报文鉴别示例:1.数字签名数字签名报文鉴别示例的安全性分析报文鉴别示例的安全性分析:可用来保护通信双方免受任何第三方的攻击。无法用来防止通信双方的互相攻击,无法解决通信双方可能存在多种形式的争执。原因:原因:1.接收方可能伪造并声称它来自发送方。接收方只要简单地生成一个报文,并附加使用由发送方和接收方所共享的密钥生成的鉴别码即可。2.发送方可以否认发送过该报文。因为接收方伪造一个报文是可能的,无法证明发送方发送过该报文这一事实。1.数字签名数字签名解决方案解决

2、方案:由于发方和收方之间存在欺骗或抵赖,因此除了采用防止第三方攻击的鉴别之外还需要采用防止当事双方相互攻击的手段。最吸引人的解决方案是笔迹签名的模拟数字签名。数字签名必须拥有的基本性质:数字签名必须拥有的基本性质:必须能证实作者签名和签名的日期和时间。在签名时必须能对内容进行鉴别。签名必须能被第三方证实以便解决争端。1.数字签名数字签名密码学上对数字签名的需求密码学上对数字签名的需求:签名必须是依赖于要签名报文的比特模式。签名必须使用对发送者来说是惟一的信息,以防伪造和抵赖。数字签名的产生必须相对简单。数字签名的识别和证实必须相对简单。伪造一个数字签名在计算上是不可行的,无论是通过对已有的数字

3、签名来构造新报文,还是对给定的报文构造一个虚假的数字签名。保留一个数字签名的备份在存储上是现实可行的。数字签名的方法:数字签名的方法:直接的需仲裁的1.数字签名数字签名直接数字签名直接数字签名方案实施方案实施涉及通信方发方和收方密码方案非对称密码学使用前提收方知道发方的公开密钥签名实施可以通过使用发方的私有密钥对整个报文进行加密,或通过使用发方的私有密钥对报文的散列码进行加密来形成。保密方案可通过对整个报文和签名进行更进一步的加密来实现,可采用收方的公用密钥(公开加密)或采用双方共享的密钥(常规加密)来进行加密。实施关键实施关键收方应假定发方对私有密钥的完全控制1.数字签名数字签名直接数字签名

4、直接数字签名实施示例实施示例1.数字签名数字签名直接数字签名直接数字签名方案弱点方案弱点方案的有效性依赖于发方私有密钥的安全性。弱点分析弱点分析发方若想否认发送过某个报文,则可以声称该私有密钥丢失或被盗用,且伪造了他(她)的签名。X的私有密钥真的可能在时间T被盗。获得该密钥的人便能发送带有X的签名报文并附上小于等于T的时间戳。1.数字签名数字签名需仲裁的数字签名需仲裁的数字签名方案实施方案实施每个从X发往收方Y的签名报文首先被送给仲裁者A,仲裁者A对该报文和它的签名进行一系列的测试以检验它的出处和内容。然后对报文注明日期,附上一个已经经过仲裁证实属实的说明后发给Y。A的存在解决了直接签名方案所

5、面临的问题:X可能否认发送过该报文。实施关键实施关键所有通信方必须充分信任仲裁机构。1.数字签名数字签名需仲裁的数字签名需仲裁的数字签名方案示例方案示例(a)常规加密,仲裁能看到报文内容1.X A:M|EKxaIDx|H(M)2.A Y:EKayIDx|M|EKxaIDx|H(M)|T(b)常规加密,仲裁不能看到报文内容1.X A:IDX|EKxyM|EKxaIDX|H(EKxyM)2.A Y:EKayIDX|EKxyM|EKxaIDX|H(EKxyM)|T(c)公开密钥加密,仲裁不能看到报文内容1.X A:IDX|EKRxIDX|EKUy(EKRxM)2.A Y:EKRaIDX|EKUyEK

6、RxM|T1.数字签名数字签名需仲裁的数字签名需仲裁的数字签名方案示例讨论方案示例讨论方案方案(a)和和(b)存在的问题存在的问题1.X必须确信A不会泄露Kxa,也不会产生虚假的签名。(仲裁能和收方结成联盟来伪造发方的签名。)2.Y必须确信A只有在散列码正确且确是X签名的情况下才发送。(仲裁能和发方结成联盟来否认一个签名报文。)3.双方必须确信A能公平地解决争端。(仲裁作用。)方案方案(c)的优点的优点1.通信前各方没有共享任何信息,可防止结盟欺骗的发生。2.假定KRa是安全的,即使KRx已不安全,日期不对的报文不会被发送。3.从X发给Y的报文内容对A和其他任何人都是保密的。2.鉴别协议鉴别协

7、议主要涉及内容主要涉及内容在报文鉴别的基础上,进行更深层次的通信对象和通信内容有效性的鉴别。相互鉴别相互鉴别单向鉴别单向鉴别2.鉴别协议鉴别协议相互鉴别相互鉴别相互鉴别的必要性相互鉴别的必要性通信对象的确认通信各方相互证实对方的身份信息交换的机密性防止信息的篡改和泄漏 信息交换的时效性 防止报文重放的威胁报文重放威胁的表现报文重放威胁的表现最好情况一个成功的重放会通过为通信方提供用似是而非的报文而打乱正常的操作。最差情况可能允许对手获取会话密钥或成功地假扮为通信的另一方。2.鉴别协议鉴别协议相互鉴别相互鉴别重放攻击的常用方法示例重放攻击的常用方法示例简单重放:对手简单地拷贝一个报文并在后来重放

8、。能被日志记录的重复:对手可以在有效的时间窗口内重放有时间戳的报文。能被日志记录的重复:对手可以在有效的时间窗口内重放有时间戳的报文。没有修改的退回重放:这是一种报文返回发方的重放。如果使用常规加密,这种攻击是可能的,并且发方不容易依据内容识别发送过的报文与收到的报文间的不同。2.鉴别协议鉴别协议相互鉴别相互鉴别对付重放攻击的常用方法对付重放攻击的常用方法为每个用来鉴别交换的报文分配一个序号,新的报文只有在它的序号满足一种正确的次序时才被接收。这种方法的难点在于它需要通信各方记录已处理的最近一个序号。因为有这种负担,序号一般不用于鉴别和密钥交换。时间戳:A方接收一个报文,只有当报文包含的时间戳

9、(经A判断后)与A了解的当前时间足够接近,才认为报文是新的。这种方法的难点在于它需要通信各方的时钟保持同步。首先,需要某种协议来维持不同处理机时钟的同步,这个协议还必须是容错的和安全的,即要能对付网络的故障和恶意的攻击。其次,如果暂时失去同步会导致一方的时钟机制出错,那攻击成功的机率将大为增加。最后,因为网络时延的可变性和不可预知性,很难期望分布时钟能保持精确的同步。因此,任何基于时间戳的过程必须申请足够大的时间窗口以适应网络时延,同时又要使时间窗口足够小以使攻击成功的机率最小。盘问/响应:若A方期望从B接收一个新近的报文,就先要向B发送一个现时报文(nonce)(即盘问),然后要求随后从B接

10、收的报文(即响应)包含正确的现时值。这种方法不大适合面向无连接的应用,因为在任何无连接传输之前它需要有握手的负担,这将在很大程度上丢失无连接传输的主要特征。2.鉴别协议鉴别协议相互鉴别相互鉴别相互鉴别的常规加密原始方案示意图相互鉴别的常规加密原始方案示意图2.鉴别协议鉴别协议相互鉴别相互鉴别相互鉴别的常规加密原始方案过程描述相互鉴别的常规加密原始方案过程描述1.A KDC:IDA|IDB|N12.KDC A:EKaKs|IDB|N1|EKbKs|IDA3.A B:EKbKs|IDA4.B A:EKsN25.A B:EKsf(N2)相互鉴别的常规加密原始方案可能存在的攻击模式相互鉴别的常规加密原

11、始方案可能存在的攻击模式简单地对第3步进行观察、记录并重放,加重通信负担。假定X是一个对手,已经获得了一个旧的会话密钥,则X可冒充A,使用旧密钥通过简单的重放第3步就可以欺骗B。除非B一直牢记所有与A的会话密钥,否则B无法确定这是一个重放。2.鉴别协议鉴别协议相互鉴别相互鉴别相互鉴别的常规加密原始方案改进相互鉴别的常规加密原始方案改进1过程描述过程描述1.A KDC:IDA|IDB2.KDC A:EKaKs|IDB|T|EKbKs|IDA|T3.A B:EKbKs|IDA|T4.B A:EKsN15.A B:EKsf(N1)相互鉴别的常规加密原始方案改进相互鉴别的常规加密原始方案改进1的防重发

12、机制的防重发机制增加时间戳 T,它能向A和B确保该会话密钥是刚产生的。这样,A和B双方都知道这个密钥分配是一个最新的交换。A和B通过验证下式来证实时效性:|Clock T|t1+t2其中t1是估计的KDC时钟与本地时钟(A或B)的正常偏差,t2是预期的网络时延。每个结点可参照某些标准参考源设置自己的时钟。时间戳T是用主密钥加密的,即使对手获得旧的会话密钥,由于步骤3的重放将会被B检测出不及时而不会成功。2.鉴别协议鉴别协议相互鉴别相互鉴别相互鉴别的常规加密原始方案改进相互鉴别的常规加密原始方案改进1存在的危险存在的危险分布时钟由于阴谋破坏或同步时钟、同步机制的故障变得不同步。当发方的时钟快于预

13、想的收方时钟时,这个问题就会发生。在这种情况下,对手可截获发自A的报文,当报文中的时间戳变成收方的当前时间时就重放该报文。这种重放可导致不可预料的结果。这样的攻击被称为抑制重放攻击。相互鉴别的常规加密原始方案改进相互鉴别的常规加密原始方案改进1的可能改进的可能改进加强通信各方定期与KDC时钟的校准。避免时钟同步的需求,依赖使用现时的握手。(依然会带来其它问题,其原因是因为收方选择的现时对发送方是不可预测的。)2.鉴别协议鉴别协议相互鉴别相互鉴别相互鉴别的常规加密改进方案相互鉴别的常规加密改进方案1.A B:IDA|Na2.B KDC:IDB|Nb|EKbIDA|Na|Tb3.KDC A:EKa

14、IDB|Na|Ks|Tb|EKbIDA|Ks|Tb|Nb4.A B:EKbIDA|Ks|Tb|EKsNb相互鉴别的常规加密改进方案的优点相互鉴别的常规加密改进方案的优点信任状的过期时间Tb是相对于B的时钟。这样,这个时间戳不需要同步时钟,因为B只检查自身产生的时间戳。A和B分别检查各自生成的现时Na和Nb,确保不是重放。信任状的过期时间Tb的使用使得在有效时间内A又想与B建立新的会话时,双方不必重复多次与鉴别服务器联系的必要。2.鉴别协议鉴别协议相互鉴别相互鉴别相互鉴别的常规加密改进方案建立新会话的方案相互鉴别的常规加密改进方案建立新会话的方案1.A B:EKbIDA|Ks|Tb,Na2.B

15、A:Nb,EKaNa3.A B:EKaNb建立新会话的方案的安全保障建立新会话的方案的安全保障信任状的过期时间Tb验证报文中的票据没有过期。新产生的现时Na和Nb将向每方保证这不是重放攻击。2.鉴别协议鉴别协议相互鉴别相互鉴别相互鉴别的公开密钥加密原始方案相互鉴别的公开密钥加密原始方案1.A AS:IDA|IDB2.AS A:EKRasIDA|KUa|T|EKRasIDB|KUb|T3.A B:EKRasIDA|KUa|T|EKRasIDB|KUb|T|EKUbEKRaKs|T相互鉴别的公开密钥加密原始方案特点相互鉴别的公开密钥加密原始方案特点中心系统被称为鉴别服务器(AS),因为实际上它并不

16、负责密钥的分配。AS实际上提供公开密钥证书。会话密钥的选择和加密由A完成;因此没有AS泄漏密钥的危险。时间戳防止危及密钥安全的重放攻击,但需要时钟的同步。2.鉴别协议鉴别协议相互鉴别相互鉴别相互鉴别的公开密钥加密改进方案相互鉴别的公开密钥加密改进方案11.A KDC:IDA|IDB2.KDC A:EKRauthIDB|KUb3.A B:EKUbNa|IDA4.B KDC:IDB|IDA|EKUauthNa5.KDC B:EKRauthIDA|KUa|EKUbEKRauthNa|Ks|IDB6.B A:EKUaEKRauthNa|Ks|IDB|Nb7.A B:EKsNb相互鉴别的公开密钥加密改进

17、方案相互鉴别的公开密钥加密改进方案1特点特点使用现时,不需要时钟的同步。会话密钥由KDC代表B产生。存在安全漏洞(步骤5)。2.鉴别协议鉴别协议相互鉴别相互鉴别相互鉴别的公开密钥加密改进方案相互鉴别的公开密钥加密改进方案1的改进的改进1.A KDC:IDA|IDB2.KDC A:EKRauthIDB|KUb3.A B:EKUbNa|IDA4.B KDC:IDB|IDA|EKUauthNa5.KDC B:EKRauthIDA|KUa|EKUbEKRauthNa|Ks|IDA|IDB6.B A:EKUaEKRauthNa|Ks|IDA|IDB|Nb7.A B:EKsNb2.鉴别协议鉴别协议单向鉴别

18、单向鉴别单向鉴别的必要性单向鉴别的必要性通信对象的确认通信的接收方证实发送方的身份信息交换的机密性防止信息的篡改和泄漏2.鉴别协议鉴别协议单向鉴别单向鉴别单向鉴别的常规加密方案过程描述单向鉴别的常规加密方案过程描述1.A KDC:IDA|IDB|N12.KDC A:EKaKs|IDB|N1|EKbKs|IDA3.A B:EKbKs,IDA|EKsM单向鉴别的常规加密方案可能存在的攻击模式单向鉴别的常规加密方案可能存在的攻击模式1.无法防止重放攻击。由于潜在的时延,即使采用时间戳,其作用也有限。2.假定X是一个对手,已经获得了一个旧的会话密钥及相应的EKbKs,IDA,则X就可以简单地进行信息伪

19、造。2.鉴别协议鉴别协议单向鉴别单向鉴别单向鉴别的公开密钥加密方案示意图单向鉴别的公开密钥加密方案示意图2.鉴别协议鉴别协议单向鉴别单向鉴别单向鉴别的公开密钥加密方案描述单向鉴别的公开密钥加密方案描述关心机密性关心机密性A B:EKUbKs|EKsM方案优点方案优点这种方法比简单地用B的公开密钥对整个报文进行加密的方法高效得多。方案缺点方案缺点无法确认信息M来自于A。2.鉴别协议鉴别协议单向鉴别单向鉴别单向鉴别的公开密钥加密方案描述单向鉴别的公开密钥加密方案描述关心鉴别关心鉴别A B:M|EKRaH(M)方案优点方案优点保证A随后无法否认发送过该报文。方案缺点方案缺点1.难以防止用户X对信息M

20、的剽窃。X B:M|EKRxH(M)2.要求B知道A的公开密钥,并确信它并未过时。2.鉴别协议鉴别协议单向鉴别单向鉴别单向鉴别的公开密钥加密方案描述单向鉴别的公开密钥加密方案描述鉴别和加密鉴别和加密A B:EKUbM|EKRaH(M)A B:EKUbKs|EKsM|EKRaH(M)方案优点方案优点1.保证A随后无法否认发送过该报文。2.保证信息的安全性。方案缺点方案缺点要求B知道A的公开密钥,并确信它并未过时。2.鉴别协议鉴别协议单向鉴别单向鉴别单向鉴别的基于数字证书的公开密钥加密方案描述单向鉴别的基于数字证书的公开密钥加密方案描述鉴别鉴别A B:M|EKRaH(M)|EKRasT|IDA|K

21、Ua方案优点方案优点通过鉴别服务器的数字签名确认发方的公开密钥并验证它是可信的。方案缺点方案缺点难以防止用户X对信息M的剽窃。X B:M|EKRxH(M)|EKRasT|IDX|KUx3.数字签名标准数字签名标准(DSS)算法由来算法由来美国国家标准技术研究所(NIST)已经公布了联邦信息处理标准FIPS PUB 86,即所谓的数字签名标准(DSS)。DSS利用了安全散列算法(SHA)并提出了一种新的数字签名技术,即数字签名算法。DSS最早发表于1991年,并根据公众对该体制安全性担心的反应在1993年进行了修改。1996年又进行了更进一步的小修改。算法特征DSS使用一个算法,该算法设计用来提

22、供惟一的数字签名函数。不像RSA,它不能用作加密或密钥交换。然而,它是一种公开密钥技术。3.数字签名标准数字签名标准(DSS)DSS签名算法与签名算法与RSA签名算法使用的差异签名算法使用的差异1.除了采用散列函数和私有密钥外,还需要下述2个参数:每个报文需要一个随机数k全局公开密钥KUG。2.签名值为两个数r和s3.数字签名标准数字签名标准(DSS)密钥选择密钥选择全局公开密钥选定全局公开密钥选定1.选择一个160 bit的素数q。2.选择一个素数p,要求长度在512到1024 bit之间且(p-l)能被q整除。3.选择g等于h(p 1)/q mod p,其中h是大于1小于(p-l)的整数,

23、要求g大于l。私有密钥选定私有密钥选定1到(p-l)之间的随机数或伪随机数。公开密钥计算公开密钥计算y=gx mod p每个报文的密数每个报文的密数k选择选择0 k q的随机或伪随机整数。3.数字签名标准数字签名标准(DSS)算法描述算法描述签名算法签名算法r=(gk mod p)mod qs=k-1(H(M)+xr)mod q验证算法验证算法w=(s)-1 mod qu1=H(M)w mod qu2=(r)w mod qv=(gu1yu2)mod p mod q验证:v=r其中:M,s,r=接收到的M,s和r版本3.数字签名标准数字签名标准(DSS)算法描述等价框图算法描述等价框图签名算法示

24、意图签名算法示意图 验证算法示意图验证算法示意图3.数字签名标准数字签名标准(DSS)数字签名算法的证明数字签名算法的证明1.对任何整数t,若g=h(p 1)/q mod p,则gt mod p=gt mod q mod p证明:gnq mod p=(h(p 1)/q mod p)nq mod p =h(p 1)/q)nq mod p mod p =h(p 1)n mod p mod p =(h(p 1)mod p)n mod p因此,对非负整数n和z,有:gnq+z mod p=(gnqgz)mod p =(gnq mod p)(gz mod p)mod p =gz mod p由于任意非负整

25、数t可惟一表示为t=nq+z,其中n和z是非负整数,且0zq。因此z=t mod q。因而结论成立。3.数字签名标准数字签名标准(DSS)数字签名算法的证明数字签名算法的证明2.对非负的整数a和b,g(a mod q+b mod q)mod p=g(a+b)mod q mod p证明:由于gt mod p=gt mod q mod p,因此g(a mod q+b mod q)mod p=g(a mod q+b mod q)mod q mod p =g(a+b)mod q mod p3.y(nw)mod q mod p=g(xnw)mod q mod p证明:由于y=gx mod p,那么:y(

26、nw)mod q mod p=(gx mod p)(nw)mod q mod p =gx(nw)mod q)mod p =g(x(nw)mod q)mod q mod p =g(xnw)mod q mod p3.数字签名标准数字签名标准(DSS)数字签名算法的证明数字签名算法的证明4.(H(M)+xr)w)mod q=k证明:由于s=(k-1(H(M)+xr)mod q。此外,由于q是素数,任何小于q的非负整数存在一个逆元,因此(kk-1)mod q=l。(ks)mod q=(k(k-1(H(M)+xr)mod q)mod q =(k(k-1(H(M)+xr)mod q =(k(k-1(H(M

27、)+xr)mod q =(kk-1)mod q)(H(M)+xr)mod q =(H(M)+xr)mod q 根据定义,w=s-1 mod q,(ws)mod q=1。因此:(H(M)+xr)w)mod q=(H(M)+xr)mod q)(w mod q)mod q =(ks)mod q)(w mod q)mod q =(ksw)mod q =(k mod q)(ws)mod q)mod q =k mod q =k3.数字签名标准数字签名标准(DSS)数字签名算法的证明数字签名算法的证明5.v=r证明:v=(gu1yu2)mod p)mod q =(g(H(M)w)mod qy(nw)mod

28、q)mod p)mod q =(g(H(M)w)mod qg(xnw)mod q)mod p)mod q =(g(H(M)w)mod q+(xnw)mod q)mod p)mod q =(g(H(M)w+xnw)mod q)mod p)mod q =(g(H(M)+xn)w)mod q)mod p)mod q =(gk mod p)mod q =r 3.数字签名标准数字签名标准(DSS)算法特点算法特点r 的值不依赖于报文,r是k和三个全局公开密钥分量的函数。签名时要计算(gk mod p)mod q。因为这个值不依赖于要签名的报文,可预先计算出来,因此,用户可以预先计算出许多r值以备用于文档

29、的签名。另一个需要完成的工作只是确定逆元k-1,这个值也可预先算出。算法安全性算法安全性1.公开密钥由私有密钥经过y=gx mod p计算得出。给定x计算y是很简单的。然而,给定公开密钥y,要确定x,即y以g为底数模p的离散对数,据信这在计算上是安全的。2.根据计算离散对数的难度,对手通过r恢复出k,或通过s恢复出x都是难以办到的。3.数字签名标准数字签名标准(DSS)对对DSA算法的反对评论算法的反对评论1.DSA不能用于加密和密钥分发2.DSA由NSA设计,算法中可能会有陷门3.DSA比RSA慢4.RSA是事实上的标准5.DSA中的选择处理不公开,这给分析提供了充足的时间6.DSA可能侵犯

30、其它专利7.密钥太短3.数字签名标准数字签名标准(DSS)DSA素数生成素数生成NIST推荐了一种生成二个素数p和q的方法,用q除p-1,其中素数p为512至1024比特并是64比特的倍数,素数q为160比特。令L-1n*160b,其中L为p的长度,n和b为二个数。1.选择一个至少160比特的任意序列,称之为S,设g为S的比特数2.计算USHA(S)XOR SHA(S+1)mod 2g)3.把U的最高位和最低位设置为1而得到q4.检验q是否为素数5.如果q不是素数,回到16.设C0和N27.对于k0,1,n,设VkSHA(SNk)mod 2g)8.设WV0V1*2160 Vn-1*2(n-1)

31、*16 (Vn mod 2b)*2n*160 XW2L-1注意X为2L比特的数9.设pX-(X mod 2q)1),注意p模2q同余于110.如果p2L-1,转1311.检验p是否为素数12.如果p为素数,转1513.令CC1和NN114.如果C4096,则转1,否则转7 15.保存用于生成q和q的S值和C值习题习题1.如何将相互鉴别的公开密钥加密改进方案1的改进中的7个步骤改为5个步骤,这5个步骤的顺序是:a.A B:b.B KDC:c.KDC B:d.B A:e.A B:说明在每一步中传递的报文。提示:在这个协议中最后的报文内容与原协议的相同。2.用DSS,因为每个签名将产生不同的k值,因此即使分别在不同的场合对相同的报文签名,产生的签名也不相同。RSA签名是不能这样的。这样的不同有什么实际意义?

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

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁