chap10-2:密码协议基本理论_第1页
chap10-2:密码协议基本理论_第2页
chap10-2:密码协议基本理论_第3页
chap10-2:密码协议基本理论_第4页
chap10-2:密码协议基本理论_第5页
已阅读5页,还剩119页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

密码协议基本理论密码协议是指使用密码技术的信息交换协议。所谓协议,就是两个或者两个以上的参与者为完成某项特定的任务而采取的一系列步骤。包含三层含义:协议自始至终是有序的过程,在前一步没有执行之前,后面的步骤不能执行;协议至少需要两个参与者;通过协议必须能够完成某项任务。密码协议的基本概念算法、协议、密码协议算法:一系列步骤,完成一项任务。协议:一系列步骤,它包括两方或多方,设计它的目的是要完成一项任务。协议中的每个参与者都必须了解协议,并且预先知道所要完成的步骤协议中的每个参与者都必须同意并遵循该协议协议必须是清楚的,每一步必须明确定义,并且不会引起误解协议必须是完整的,对每种可能的情况必须规定具体的动作密码协议(CryptographicProtocol):是使用密码技术的协议协议的参与者可能是朋友和完全信任的人,或者也可能是敌人和互相完全不信任的人包含某种密码算法,但通常协议的目的不仅仅是为了简单的秘密性参与协议的各方可能为了计算一个数值想共享他们的秘密部分、共同产生随机系列,确定互相的身份或者同时签署合同等等使用密码的目的是防止或发现窃听者和欺骗密码协议的目的是运用密码学技术保证安全系统的安全性和保密性。但是,如果密码协议设计得不合理,则相当于设计者暴露了安全系统中的漏洞,攻击者根本不用去攻击安全的密码算法就能够达到入侵系统的目的。密码协议研究的主要领域包括:网络安全协议的设计和分析、密钥管理协议的设计与分析以及与它们相关领域的研究,如零知识证明、身份认证、密钥协商、秘密共享等。密码协议的分类系统通信中的密码协议按功能可以分成三类身份认证协议数字签名协议密钥分配协议

身份认证协议在安全系统中进行通信时,为了保证安全性,通信的一方需要知道另一方的身份,这就需要使用身份认证协议。在身份认证体系中被鉴别的消息是相对固定的,通信一方声称的身份可以立即被另一方确认或否认。数字签名协议数字签名协议和身份认证协议相似,但复杂的多。在数字签名协议中,消息是易变的,且具有生命期。数字签名在信息安全领域有很多应用,如公钥证书、数据完整性和匿名性等。

密钥分配协议密钥分配协议是指为了在通信中达到保密的目的,要求参与通信的两个或者多个实体之间具有会话密钥的一致性。这种协议可以采用对称密码体制(如DES等),也可以采用非对称密码体制(例如Diffie-Hellman公钥交换等)。密码协议的安全性目前许多密码协议都存在安全缺陷,造成协议存在安全缺陷的原因主要有两个:协议设计者误解或者采用了不恰当的密码技术;协议设计者对整体系统的安全需求考虑不足。密码协议的安全性是一个很难解决的问题,许多广泛应用的密码协议后来都被发现存在安全缺陷。因此,从安全性角度来看,在设计密码协议时应当对协议的安全性做出认真的分析。密码协议的分析目前,对密码协议进行分析的方法主要有两大类攻击检验方法:使用目前已知的所有的有效攻击方法,对密码协议进行攻击,检验密码协议是否能够抵抗这些攻击。在分析的过程中,主要使用自然语言和示意图对密码协议所交换的消息进行分析。当能够恰当的选择攻击方法时,这种分析方法往往是非常有效的,但这一要求很难满足。形式化的分析方法:指采用各种形式化的语言对密码协议进行描述,并按照规定的假设和分析、验证方法证明协议的安全性。目前,形式化的分析方法是研究的热点,但是就其实用性来说,还没有什么突破性的进展。由于密码协议本身的复杂性,目前并没有一种方法能够对密码协议的安全性进行充分必要的理论证明。每一类方法都有不同的侧重点,或者说或多或少存在不足之处,在使用上述方法分析安全协议的时候,应当仔细分析协议的特点、应用环境和需求,综合使用这些分析方法,以得到较为合理的结果。主要内容身份认证协议数字签名协议密钥分配协议分类口令鉴别挑战-响应式认证基于零知识证明的身份鉴别身份认证协议分类口令鉴别挑战-响应式认证基于零知识证明的身份鉴别身份认证协议在密码学中,挑战-响应式协议的思想是指一个实体通过知识证明来向另一个实体证明其身份。在此类协议中,挑战一般是一个随机值或秘密值,当攻击者窃听通信信道时,由于每次挑战值都不同,所以对挑战的响应不会暴露秘密信息。身份认证协议

采用分组密码技术的挑战-响应式认证

采用公钥密码技术的挑战-响应式认证身份认证协议采用分组密码技术认证方案此时认证的发起者和验证者间需要有共享密钥,在系统用户较少时,此要求容易满足,用户较多的情况下,需要使用可信的第三方。基于时间戳的单向认证基于随机数的单向认证基于随机数的双向认证采用分组密码技术的认证方案基于时间戳的单向认证验证方接受发起方传送的信息并对其解密,对解密后的消息进行验证,检验时间戳是否合法可以防止攻击者对传送消息的重用。分析:需要防止对时钟的恶意修改,在分布式环境下很难保证。同时,对已用时间戳的保存会浪费大量的存储空间。采用分组密码技术的认证方案基于随机数的单向认证首先验证方向发起方传送随机数,发起方对身份信息和随机数进行加密并送出,最后验证方解密得到消息并验证随机数。为防止选择明文攻击,发起方可在发送的消息中加入另一随机数。采用分组密码技术的认证方案基于随机数的双向认证协议中,验证方首先向发起方送出随机数r1,然后发起方选择另一随机数r2,并对身份信息和随机数r1、r2进行加密,然后送出。验证方解密得到的消息后,验证随机数r1,验证通过后,将随机数r1、r2加密后送给发起方,最后发起方通过验证随机数r1、r2来验证对方的身份。采用公钥密码技术的认证方案在利用公钥密码技术进行认证时,发起者通过两种方法来证明其身份:

对用其公钥加密过的随机数进行解密;

对随机数进行签名。为了保证安全性,认证协议的公私钥对不能在其他应用中使用;同时,协议还应能够抵抗选择密文攻击。采用公钥密码技术的认证方案简单的认证协议:认证方B选择随机数r,计算x=h(r),e=PA(r,B),(其中:h是哈希函数,PA是发起方A的公钥);B向A发送(x,B,e);A对接受到的信息进行解密得到r’和B’,并验证r’=r,B’=B;若通过验证,则A向B发送r;最后,B对r进行验证。基于随机数的单方公钥认证。认证方B选择随机数rB,并将其发送给发起方A;A在接收到rB之后,选取另一随机数rA,将(rA,B,SA(rA,rB,B))发送给B,(SA是A的私钥);B对接受到的信息进行解密并进行验证,这里,rA可用来防止选择消息攻击。采用公钥密码技术的认证方案主要内容身份认证协议数字签名协议密钥分配协议数字签名协议身份唯一性(不可伪造)被Alice签名的消息只能由Alice生成。其本质是:Bob在收到一个“被Alice签名的消息”时,他有办法检验,该签名是否真的被Alice签名的消息。或许攻击者Eve截获了大量的被Alice签名的消息,但他仍然不能伪造出一个新的,别人认可的“被Alice签名的消息”。如果无论Eve截获多少被Alice签名的消息,他伪造新的“被Alice签名的消息”的成功概率仍然没有丝毫提高,则称该签名算法是零知识的。不可否认性(公开可验证)被Alice签名的消息,在未来不能被Alice否认。其本质是:Bob在收到一个被Alice签名的消息时,他有办法向第三方证明该签名是真的被Alice签名的消息。如果一个数字签名具有不可伪造性,则Bob能够自行验证签名消息的真伪;而如果一个数字签名具有公开可验证性,则Bob能够向他人证明签名消息的真伪。数字签名协议公钥密码的签名思想既然要求数字签名具有这么多的性质,怎样来构造数字签名?以公钥密码为基础的数字签名算法。公钥密码:明文m,密文cAlice的加密密钥(公钥)是z,解密密钥(私钥)是k加密方程c=E(m,z),解密方程m=D(c,k)数字签名协议消息的数字签名就是指依赖于签名者私有信息的有关被签署消息的数字符号。在信息安全领域数字签名有很多应用,如公钥证书、数据完整性和匿名性等。

数字签名体系可分为两大类:消息附属(appendix)数字签名:在签名验证阶段需要原始的消息。较为典型的有DSA、ElGamal和Schnorr签名体系。消息自恢复数字签名:在签名验证阶段不需要原始的消息。较为典型的有RSA、Rabin和Nyberg-Rueppel公钥签名体系。数字签名协议按照明、密文的对应关系划分,上面每一类又可分为两个子类:一类是确定性数字签名,其明文与密文一一对应;另一类是随机数字签名,它对同一消息的签名是随机变化的。数字签名体系的分类消息认证可以保护信息交换不受第三方的攻击,但不能处理通信双方自身发生的攻击。数字签名提供了这种能力:验证签名者、签名的日期和时间认证消息内容可由第三方仲裁,以解决争执因此,数字签名具有认证功能数字签名应满足的条件签名值必须依赖于所签的消息产生签名比较容易识别和验证签名比较容易伪造数字签名在计算上是不可行的。包括已知数字签名,伪造新的消息已知消息,伪造数字签名保存数字签名的拷贝是可行的公钥密码的签名方案(一)Alice发消息m给BobAlice用自己的私钥k对消息m“解密”s=D(m,k),s是对消息m的签名值,(m,s)是一个签名消息。Alice将(m,s)发送给Bob。Bob收到(m,s)后,用Alice的公钥z,将消息m与签名s做如下的检验:是否m=E(s,z)。若是则(m,s)是Alice发送的签名消息。在上述方案中:“密文”变成了消息m,“解密方程”变成了签名方程s=D(m,k)。“明文”变成了签名值s,“加密方程”变成了验证方程m=E(s,z)。任何人只要拥有Alice的公钥z,都可以对签名消息(m,s)进行验证。是否只有Alice自己才能生成自己的签名消息呢?安全性分析(1):设Eve知道Alice的公钥z,选定消息m,对签名值s进行伪造。要想让伪造的签名值s通过检验,Eve必须选择s满足验证方程m=E(s,z)。然而在验证方程中是解不出s的,必须得到Alice的私钥k,用签名方程得到s:s=D(m,k)。这就是说,对事先设定的消息m来说,签名消息(m,s)具有身份唯一性和不可伪造性。安全性分析(2):设Eve知道Alice的公钥z,设定签名值s,反过来对消息m进行伪造。此时消息m的内容就不能是选定的。Eve选择一个“签名值”s,用验证方程计算“消息”m=E(s,z)。Eve冒充Alice将(m,s)发送给Bob。Bob用验证方程检验得m=E(s,z)。于是Bob认为(m,s)就是Alice发送的签名消息。攻击成功。为了抵抗这种攻击,合法签名消息(m,s)中的消息m必须是有意义的,而不是乱码。使用一个公开的杂凑函数H

设Alice欲发消息m给BobAlice用H将消息m进行处理,得h=H(m)。Alice用自己的私钥k对h“解密”s=D(h,k),s就是对消息m的签名值,(m,s)就是一个签名消息。Alice将(m,s)发送给Bob。Bob收到(m,s)后,用Alice的公钥z,将消息m与签名s做如下的检验:是否H(m)=E(s,z)。若是则(m,s)是Alice发送的签名消息。公钥密码的签名方案(二)在上述方案中:签名方程是s=D(H(m),k)验证方程是H(m)=E(s,z)任何人只要拥有Alice的公钥z,都可以对签名消息(m,s)进行验证设攻击者Eve知道Alice的公钥z,他试图伪造一个(m,s),让Bob相信(m,s)是Alice的签名消息。伪造的(m,s)必须满足验证方程H(m)=E(s,z)安全性分析:如果选定消息m,再匹配签名值s,则在验证方程H(m)=E(s,z)中无法解出s。(公钥密码的基本安全性)如果选定签名值s,再匹配消息m,则在验证方程H(m)=E(s,z)中能够解出H(m),却无法得到m。(杂凑函数的性质)如此看来,签名方案(二)似乎具有身份唯一性和不可伪造性。重放攻击:如果给Eve更加宽松的条件,假设他不但知道Alice的公钥z,而且已经截获了许多Alice的签名消息(m(1),s(1)),(m(2),s(2)),…,(m(n),s(n))。Eve伪造新的Alice的签名消息(m,s)是否更加容易?如果允许重复发送,则Eve的伪造是轻而易举的,他只需要发送(m(n),s(n))即可。抵抗重放攻击,通常使用两种方法:Alice已经发送过的签名消息必须存储备案,不得再次发送。一旦发现有再次发送,则肯定是重放攻击。但Eve可以根据公钥密码的结构缺陷来伪造,比如(m,s)=(m(1)m(2),s(1)s(2))。

Alice的签名消息中必须含有时间戳。一旦发现发送时间过于久远,则肯定是重放攻击,但“时间过于久远”的标准很模糊。RSA签名体系RSA签名体系的消息空间和密文空间都是Zn={0,1,2,…,n−1},n=p×q。这种签名体系是确定性的数字签名体系。1.RSA签名体系的密钥产生每个实体A进行以下操作:随即选择两个大素数p和q;计算n=p×q和

Φ(n)=(p−1)(q−1);随即选择e,满足1<e<Φ(n),gcd(e,Φ(n))=1;用欧几里得算法计算d,满足1<d<Φ(n),ed=1mod(n)。设A的公钥为(n,e),私钥为(n,d)。2.签名算法计算s=mdmodn;发送(m,s)。3.验证算法(1)计算m′=semodn;(2)验证m′是否等于m,若不等于,则拒绝;4.安全性分析如果攻击者能够进行模n的大整数分解,则它可计算Φ(n),从而利用欧几里得算法得到签名者的私钥。所以签名者必须小心地选择p和q。Rabin签名体系Rabin签名与RSA签名很相似,但其使用了一个偶数公钥参数e。为了使验证更简单,Rabin签名设定e=2。1.Rabin签名体系的密钥产生每个实体A进行以下操作:(1)随即选择两个大素数p和q;(2)计算n=p×q和

Φ(n)=(p−1)(q−1)。设A的公钥为n,私钥为(p,q)。2.签名算法(1)计算s,使s2=mmodn;(2)发送(m,s)。3.验证算法(1)计算m′=s2modn;(2)验证m′是否等于m,若不等于,则拒绝。4.安全性分析攻击者选一个x,求出x2=m′modn,并送给签名者。签名者将签名s送给攻击者。若s≠±x,则攻击者有1/2的机会分解n,从而可破解此系统。但RSA只是“相信等于”大整数分解的困难性(无法证明),因而无上述缺点。ElGamal签名方案ElGamal签名是一种随机附属签名机制,它可以对任意长度的二进制消息格式进行签名。1.ElGamal签名体系的密钥产生每个实体A进行以下操作:随机选择大素数p和上的本原元g;选择随机整数x,1≤x≤p-2;计算y=gxmodp设A的公钥为(p,g,y)A的私钥为xElGamal签名方案2.签名算法选择随机数k,1≤k≤p-2且gcd(k,p-1)=1;计算r=gkmodp;计算k-1modp-1;计算s=k-1(h(m)-xr)modp-1;m的签名为(r,s)。ElGamal签名方案3.验证算法验证1≤r≤p-1,若不满足则拒绝;计算v1=yrrsmodp;计算h(m)和v2=gh(m)modp;若v1=v2,则接收签名,否则拒绝。其中,s=k-1(h(m)-xr)modp-1,可得ks=(h(m)-xr)modp-1,即h(m)=(ks+xr)modp-1,从而有gh(m)=gks+xr=(gx)r˙rsmodp,因此有v1=v2。安全性分析攻击者要伪造签名就要确定s的值,离散对数问题是困难问题,则攻击者正确选择s的概率为1/p,当p足够大时,这个概率可忽略;每次签名时必须选择不同的k,否则,签名者的私钥有可能暴露。假设s1=k-1{h(m1)-xr}modp-1,s2=k-1{h(m2)-xr}modp-1,则(s1-s2)k={h(m1)-h(m2)}modp-1,若s1-s2≠0modp-1,则k=(s1-s2)-1{h(m1)-h(m2)}modp-1,这时计算x是方便的。ElGamal签名方案Schnorr签名方案参数设定:大素数p,2511<p<2512大素数q,2159<q,q|(p-1)g是域GF(p)的元素,且gq=1(modp)。用户私钥x:随机或伪随机整数,其中0<x<q公钥y=gxmodp签名:消息m,签名者选取随机整数k,0<k<q,且k与p-1互素r=gkmodpe=h(r,m)s=k+xe(modq)(m,e,s)即为消息m的数字签名。Schnorr签名方案验证:r’=gsy-e(modp)若e=h(r’,m)成立则接受,否则拒绝Schnorr签名方案Elgamal方案与Schnorr方案的比较g在ElGamal体制中,g为域GF(p)的本原元在Schnorr体制中,g只是域GF(p)的阶为q的元素,而非本原元安全性两者都是基于离散对数问题的困难性,然而ElGamal的离散对数阶为p-1,Schnorr的离散对数阶为q<p-1。从这个角度上说,ElGamal的安全性高于Schnorr。Schnorr签名方案Elgamal方案与Schnorr方案的比较签名长度ElGamal:(m,r,s),其中r的长度为|p|,s的长度为|p-1|。Schnorr:(m,e,s),其中e的长度为|q|,s的长度为|q|。计算速度在Schnorr签名中,r=gk(modp)可以预先计算,k与m无关,因而签名只需一次modq乘法和减法。所需计算量更少,速度更快。Schnorr签名方案DigitalSignatureStandard(DSA)1.数字签名算法(DSA)1991年8月,美国国家标准技术研究所(NIST)公布了一种数字签名算法(DSA),之后,DSA成为了美国联邦信息处理标准DSS(FIPS186),并成为第一个经过各国政府验证的数字签名方案。DSA是ElGamal签名方案的变种,它使用了安全哈希函数(SHA-1)。DSA美国政府的签名方案由NIST和NSA,在20世纪90年代设计1991年,作为FIPS-186发布1993,1996,2000进行了修改采用SHAhash算法

DSS是标准DSA算法。FIPS186-2(2000)包括可选的RSA和椭圆曲线签名算法DSA可以提供512-1024bit的安全性比RSA小且快仅是一个数字签名方案(不能用于加密)安全性依赖于计算离散对数的困难性是ElGamal和Schnorr方案的变体参数设定:大素数p,2L-1<p<2L,512<L<1024,且L为64的倍数:即比特长度在512到1024之间,长度增量为64比特。素数q,q|(p-1),且2159<q<2160g=h(p-1)/qmodp,h为整数,1<h<(p-1),h(p-1)/q(modp)>1用户私钥x:随机或伪随机整数,其中0<x<p-1公钥y=gxmodpDSS签名:对明文m(1,q),签名者选取随机整数k,1≤k≤p-2且k与p-1互素,计算r=(gkmodp)modqs=k-1(H(m)+xr)modq其中kk-1modq≡1(r,s)即为消息m的数字签名。DSS验证:计算w=s-1modqu1=H(m)wmodqu2=rwmodqv=[(gu1yu2)modp]modq检验v=r是否成立。DSSDSS系统构造:q=101,p=78*q+1=7879,3为GF(7879)中的一个本原元取g=378mod7879=170为模p的q次单位根,假设用户私钥x=75,则y=gx(mod7879)=4567签名者对消息m=1234签名:签名者选择随机数k=50,得k-1(mod101)=99计算签名:r=(17050(mod7879))(mod101)=2518(mod101)=94s=(1234+75*94)99(mod101)=97签名为(1234,94,97)DSS验证:

w=s-1

modq=97-1

mod101=25

u1=H(m)wmodq=1234*25mod101=45

u2=rwmodq=94*25mod101=27v=[(gu1yu2)modp]modq=(17045*456727(mod7879))(mod101)

=2518(mod101)=94=r因此该签名是有效的。DSS4)安全性分析DSA的安全依赖于两种不同的离散对数问题:一种是在上的离散对数问题,另一种是在阶为q的循环子群上的离散对数问题。DSSDSA不能用于加密或密钥分配DSA算法中可能设有陷门,DSA未经公开选择过程,还没有足够的时间进行分析证明DSA比RSA慢,RSA已是一个实际上的标准,而DSS与现行国际标准不相容DSA可能侵犯了其它算法的专利由512位所限定密钥量太小。现已改为512~1024中可被64除尽的即可供使用。DSSGroupsignature-群签名群签名在群管理员及一组群成员的参与下,使得每个群成员能够匿名的代表群生成签名,签名验证方仅能验证该签名的有效性及确实来自该群体,但无法确知(包括其他群成员)具体的签名人是哪一个群成员;发生纠纷的情况下,群管理员能够打开群签名的匿名性,找到生成签名的群成员。群签名若干用户组成一个群体,使用相关的签名方案群中心负责为群管理员和群成员分配密钥,群管理员则在必要的时候打开签名确定签名者的身份可用在电子投票、电子拍卖等领域群签名性质只有群成员能够代表群进行签名;群成员能够代表群进行匿名地签名;区分两个不同的群签名在计算上是不可行的;如果发生争执,群管理员可以打开签名来决定签名者的真实身份;群签名其他群成员、其他群成员的勾结或其他群成员与群管理员的勾结都不能伪造一个群成员的合法签名。匿名性、可追踪性、无关联性、不可伪造性、不可链接性、防陷害攻击、动态群签名等。群签名方案举例密钥生成群中心随机地生成两个大素数p,q,计算n=pq,选择公开hash函数h()。选择,并求d,使随机选择,使

选择素数,且,将()送给用户

做密钥;

Ui

验证,以确信消息是群中心送来的;密钥生成群中心将()送给群管理员,其中是群成员的身份;

设系统有k个成员,群中心利用中国剩余定理,可求同余方程组:

的解c;

群中心将(n,e,c)作为公钥,(d,p,q)为群中心的私钥。签名

群成员

要对消息m签名:首先计算h(m);再计算;则即为Ui

生成的签名。验证

若Bob要对

的签名

进行验证,Bob利用群公钥e计算:

得到,然后验证:

是否成立。若成立,签名合法,否则拒绝。群管理员通过

对应的IDi确定签名者的身份。成员的加入

在有成员加入时,群中心只需重新求解c的值并公布出去,而不必改变其他群成员的秘钥。群中心伪造群成员的签名显然,该方案中群中心知道所有的群成员的签名密钥,因此一个不诚实的群中心可以伪造其他群成员的合法签名而不能被检测。可能遭受的攻击联合攻击假设群成员

联合起来攻击方案,他们分别掌握

可知为和的公因子;联合成员越多,成功的可能越大也可以通过自己多次加入群实现可能遭受的攻击研究点群公钥的长度依赖于群的大小;群签名的长度依赖于群的大小;增加新成员需要重新启动整个系统,或者更改所有原有成员的密钥以及改变群公钥;撤销群成员需更改群公钥及所有成员的密钥;不能抵抗联合攻击;具有联结性(可以从两个不同的群签名来区分是否来自于同一个签名者)或广义伪造性(任何人可以对任意消息进行签名)。Ringsignature-环签名环签名是一类特殊的无条件匿名方案,因为其签名隐含的某个参数按照一定的规则组成环状而得名。而在之后提出的许多方案中不要求签名的构成结构成环形,只要签名的形成满足自发性、匿名性和群特性,也称之为环签名。环签名不同于群签名,一方面,签名者指定自己的匿名范围,该范围内的非签名者可能意识不到自己包含其中;另一方面,由于不设置管理员,签名接收者只能验证签名的有效性,而无法追踪签名者的身份,即环签名能实现无条件匿名。环签名性质无条件匿名性。攻击者即使非法获取了所有可能签名者的私钥,他能确定出真正的签名者的概率不超过1/n,这里n为环成员(可能签名者)的个数。不可伪造性。外部攻击者在不知道任何成员私钥的情况下,即使能够从一个产生环签名的随机预言者那里得到任何消息m的签名,他成功伪造一个合法签名的概率也是可以忽略的。环签名具有良好的特性:可以实现签名者的无条件匿名;签名者可以自由指定自己的匿名范围;构成优美的环形逻辑结构;可以实现群签名的主要功能但无需可信第三方或群管理员等。RST环签名方案参数选取:

E:对称加密算法,如AES;

H:安全Hash函数。一组用户B1,B2,……,Bn。用户Bi的RSA公私钥(ei,di),模数ni。设签名验证环签名的应用环签密;匿名泄漏信息一个公司经常要征求员工的意见或建议,为提高员工反馈意见的可靠性,往往需要多个员工联合提出意见或建议才生效。与此同时,为了防止上司的报复行为,保护提意见的员工,在获得员工反馈信息的同时还不能暴露员工的真实身份。这时就可以使用门限环签名方案,即达到某个门限值的员工以联合方式产生环签名。电子现金或电子投票系统对于追究一个投票者多次投票或用户二次花费的问题,可以应用关联环签名方案来解决。环签名的应用保护知识产权。指纹技术是保护数字产品,防止盗版的有效技术。应用改造后的Schnorr环签名方案构造了匿名指纹协议,来保护知识产权。若使用该协议,诚实购买者不会被陷害,而且当非法用户使用盗版产品时,可以被追溯其身份。ad-hoc、无线传感器网络ad-hoc和无线传感器网络的无中心、自组织等特点与环签名的构造有很多相似之处。因此对于ad-hoc网络中的诸多问题,如:成员的匿名认证等,都可以应用环签名来解决。问题和缺陷因为签名算法要使用所有成员的公钥,导致环公钥的长度依赖于环的大小;由于需要描述环成员的信息,环签名的长度依赖于群的大小;因为环签名自身的无条件匿名性,签名人可以诬陷群中的其他非真实签名人;由于可以选择任意的成员组成一个环,使得方案不能抵抗选择群公钥攻击。MeshSignature-网状签名Boyen在2007年欧密会上提出了网状签名的新概念,它是一种类似于环签名的匿名签名。但具有模块化设计的特点,有更强的签名匿名性表达能力,可以表示很复杂的接入结构,特别是允许将其中的签名组件替换为证书链,因此通过强制纳入成员,网状签名可以用作一种环签名。Proxysignature-代理签名代理签名体制通常包括:原始签名人(OriginalSigner),代理签名人(Proxy

Signer)和签名验证方(Verifer)三方的参与.代理签名人代表原始签名人生成的数字签名,称为代理签名(ProxySignature).原始签名人的安全性代理签名人的隐私保护代理签名的长度代理密码学Thresholdsignature-门限签名解决权力集中问题;(t,n)门限签名:是指n个成员中大于等于t个成员可代表群体生成签名,而小于t-1个成员则不能代表群体生成有效签名.现有的门限签名均存在恶意成员大于等于门限t时,可以获取系统秘密参数。(共谋攻击)Blindsignature-盲签名盲签名允许先将消息盲化,而后让消息签名者对盲化的消息进行签名,最后消息拥有者对签字除去盲因子,得到签名者关于原消息的签名。盲签名就是接收者在不让签名者获取所签署消息具体内容的情况下所采取的一种特殊的数字签名技术,它除了满足一般的数字签名条件外,还必须满足下面的两条性质:签名者对其所签署的消息是不可见的,即签名者不知道他所签署消息的具体内容。签名消息不可追踪,即当签名消息被公布后,签名者无法知道这是他哪次的签署的。具特殊性质的数字签名在不同的应用背景下,人们已经提出了60余种数字签名模型.指定验证人签名、不可否认签名、前向安全群签名等、基于身份的各类签名。Shortsignature-短签名当前最常用到的DSA和RSA数字签名方案,相对提供的安全水平而言,它们给出的签名,其长度都比较长。例如,当用1024bits模数时,RSA的签名长度为1024bits;DSA的签名长度是320bits,DSA的椭圆曲线变型ECDSA也提供320bits的签名长度。然而,即便是320bits,对于人工嵌入签名而言,仍然过长。基于双线性对的签名,能够保证短的签名长度。双线性对G1和G2是阶数为素数p的两个循环群,生成元分别为g1和g2。一个双线性对是具有以下性质的映射e:G1×G1→G2:双线性性:对任意的u∈G1,v∈G1,a、b∈Z*有:e(u^a,v^b)=e(u,v)^ab;非退化性:e(g1,g2)≠1;可计算性:存在有效的算法对所有的u,v∈G1来计算e(u,v)。基于双线性对的短签名密钥替换攻击密钥替换攻击主要内容身份认证协议数字签名协议密钥分配协议密钥分配协议密钥分配指的是如何在通信双方或多方内部同时使用一个秘密值的过程。一般来说,密钥分配可以分为密钥传输和密钥协商两种方式。密钥传输协议指的是通信一方产生密钥后,将密钥秘密地传送给另一方的密钥分配技术,而密钥协商指的是通信双方通过合作来生成通信密钥的密钥分配技术。密钥分配协议使用对称密码技术密钥传输协议密钥协商协议基于公钥密码技术密钥传输协议密钥协商协议密钥分配协议使用对称密码技术的密钥传输协议无可信第三方的密钥传输协议有可信第三方的密钥传输协议基于对称密码技术的密钥协商协议无可信第三方的密钥传输协议一、基于对称密码的点对点的密钥更新基于对称密码的点对点的密钥更新利用了通信双方间的长期对称密钥,通过这个长期密钥可以重复分配通信双方的会话密钥。设rA、tA和nA分别代表随机数、时间戳和序列数,E代表某种对称密码算法。给出几种密钥传输协议:无可信第三方的密钥传输协议(1)一轮密钥传输:A→B:EK(rA),此时会话密钥为rA。在此基础上可以为密钥传输增加一些额外的性质,如增加时间戳以保证密钥的新鲜性;增加冗余信息以检测消息是否被修改;增加接收者信息以防止对发送者的重放攻击如:A→B:EK(rA,tA*,B*)无可信第三方的密钥传输协议(2)挑战响应模式的密钥传输:A←B:nBA→B:EK(rA,nB,B*)同样,会话密钥仍然是rA。如果要求会话密钥与通信双方的输入都相关,则A可以在上述传输过程的第二步加入一次性随机数nA:A←B:nBA→B:EK(rA,nA,nB,B*)A←B:EK(rB,nB,nA,A*)无可信第三方的密钥传输协议密钥传输技术的缺点:上述几种密钥传输技术不能提供前向保密性,而且若长期密钥K暴露,则整个技术就会失效;同时,在不使用时间戳的情况下,密钥更新技术易受到重放攻击,所以其应用受到较大的限制。二、基于密钥获取和单向函数的点对点的密钥传输在每次会话时,通信一方利用另一方的随机输入,也可以达到密钥更新的目的。如A选择随机数rA,并将其发送给B,则二者通信密钥为EK(rA)。由于此技术本身并不需要解密,所以可以用恰当的单向函数代替加密操作。鉴别密钥交换协议(AKEP2):设A和B有两个共享长期密钥K,哈希函数h。协议步骤为:A选择随机数rA,并将其发送给B;B选择随机数rB,将(B,A,rA,rB)和hK(B,A,rA,rB)发送给A;A接收到消息后,对rA和hK(B,A,rA,rB)进行验证,若通过,则向B发送(A,rB)和hK(A,rB);B接收到消息后,对rB和hK(A,rB)进行验证;A和B的会话密钥为EK(rB)。在此协议中,可以使用哈希函数代替对称密码算法E,而且这并不影响协议的安全性。三、无前期共享密钥的密钥传输协议Shamir提出了一种密钥传输协议。在此协议中,每个通信者只需要有自己的对称密钥,而并不需要通信双方间的前期共享密钥,但这种协议只可以抵抗被动攻击者。Shamir无密钥协议定义如下:设p是公用的大素数,通信者A、B各自选择秘密值a和b,1≤a,b≤p-2,且a,b与p-1互素。协议步骤为:A选择随机值K,1≤K≤p-2,计算Kamodp并发送给B;B计算(Ka)bmodp,并将其发送给A;A计算(Kab)a-1modp=Kbmodp,并将其发送给B;B计算(Kb)b-1modp=Kmodp。K为A和B的通信密钥。任何可交换的密码算法都可以代替此协议中的模幂操作,但使用时要防止降低安全强度。2.有可信第三方的密钥传输协议下面讨论的密钥传输协议需要有可信第三方的参与,在整个系统中,每一个实体都与可信第三方有一个共享密钥。在这种协议中,可信第三方可以做为密钥分发中心(KDC)或密钥传输中心(KTC)。Kerberos协议X.509协议基于公钥密码技术的

密钥协商协议Diffie-Hellman密钥交换第一个公钥算法

1976由Diffie和Hellman提出DH算法是一个实用的密钥公开交换的算法算法本身只限于进行密钥交换已应用在许多商业产品中“Newdirectionsincryptography”Diffie-Hellman密钥交换是一个公钥分配方案不能用于交换任意的消息只限于进行公共密钥的建立只适用于通信双方已知的情形密钥的值依赖于通信的参与者(以及他们的私钥和公钥信息)有限域中的指数运算(模一个素数)是相对容易的,而离散对数的计算是相对困难的。Diffie-Hellman的建立所有用户均已知全局参数:一个大素整数(或多项式):q一个模q的本原根:α每个用户

(如xA)产生自己的密钥选择一个保密的随机数:xA<q计算其公钥:yA=αxAmodq

每个用户公开其公钥yADiffie-Hellman密钥交换用户A和B共享的会话密钥是KAB:KAB=αxAxBmodq=yxAxBmodq(whichBcancompute)=yxBxAmodq(whichAcancompute)会话密钥KAB作为A和B两个用户在传统密码体制中的共享密钥来使用的可以一直使用前面产生的会话密钥,直到想重新选择新的会话密钥为止。攻击者需要解出x,必须求解离散对数。Diffie-Hellman举例用户

Alice和

Bob想交换密钥:双方同意使用全局参数

q=353和α=3随机选择一个保密的私钥:A选择xA=97,B选择xB=233分别计算各自的公钥:yA=397mod353=40 (Alice)yB=3233mod353=248 (Bob)计算共享的会话密钥:KAB=yxBxAmod353=24897=160 (Alice)KAB=yxAxBmod353=40233=160 (Bob)密钥交换协议Diffie-Hellman协议除了可以在有限域上运行之外,还可以在椭圆曲线上运行。Diffie-Hellman密钥交换协议可以很容易的扩展到三人或更多的人。但是,Diffie-Hellman协议不含有交换双

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论