一种将非认证密钥交换协议转化为认证的密钥交换协议的方法

文档序号:7569112阅读:172来源:国知局
专利名称:一种将非认证密钥交换协议转化为认证的密钥交换协议的方法
技术领域
本发明属于通信技术领域,具体涉及一种将非认证密钥交换协议转化为认证的密 钥交换协议的方法。
背景技术
密钥交换协议是一个密码学原语。顾名思义,密钥交换协议就是通过参与者的合 作建立会话密钥。密钥交换协议允许两个或多个参与者间在攻击者控制的非安全信道中交 换信息,并通过这些交互的信息协商出一个共同的会话密钥。这个会话密钥在将来的安全 通信中使用,这个会话密钥的存在保证了非安全信道上的安全通信。这样,安全的密钥交换 协议可以作为构造安全、复杂、高层协议的基本模块。按是否带有认证性,密钥交换协议可以分为非认证的密钥交换协议和认证的密钥 交换协议。非认证的密钥交换协议没有对协议参与者的身份进行验证,使得协议参与者可 以冒充别人,也可能被别人冒充,而认证的密钥交换协议在协议执行的过程中,参与者之间 会有一个相互认证的过程,这使得每个参与者可以确定协议的其他参与者的身份,即可以 确定和谁共享了 一个会话密钥。按照能力大小的不同,密钥交换协议的攻击者可以分为被动攻击者和主动攻击 者。被动攻击者只能被动的监听网络中传递的消息,而一个主动攻击者除了监听外,还可以 对网络中传递的消息进行拦截、篡改、延迟,重放消息等其他主动行为。一般来讲,非认证的密钥交换协议只能抵抗被动攻击者的攻击。在当今社会,网络 攻击正在呈爆发式增长,并且攻击手段也越来越高,仅仅假设攻击者为被动的远远不能够 满足安全性要求。因此对非认证密钥交换协议的研究也就仅仅具有理论上的价值,在实际 应用中必须将研究出的非认证密钥交换协议转换成安全的认证协议,使得它可以抵抗主动 攻击。因此研究如何将非认证的密钥交换协议转换成认证的密钥交换协议具有很高的 研究价值。在这方面,国内外学者已经取得了具有很高价值的研究成果,如Jonathan Katz 与Moti Yung提出的K-Y编译器,以及Ratna Dutta与Rana Barua提出的D-B协议等。然 而由于对密钥交换协议的攻击太复杂,攻击手段太多样化,这些成果都有一定的缺陷。如 D-B协议由于会话标识没有充分在认证过程中得到利用,使得两个攻击者可以通过保存某 次协议运行的副本(在这个副本里,两个攻击者必须有共同的“邻居”),来达到欺骗的目 的,且其退出算法有明显的漏洞,使得不诚实的成员在退出群组后,可以计算出剩下的成员 共享的新密钥。K-Y协议虽然在安全上没有上面的这两个漏洞,但是它的效率上比较低,如 通信轮数为三轮,每个用户必须签名两个消息。

发明内容
本发明所要解决的问题是如何提供一种将非认证密钥交换协议转化为认证的密钥交换协议的方法,该方法能克服现有技术中所存在的安全性缺陷。本发明所提出的技术问题是这样解决的提供一种将非认证密钥交换协议转化为 认证的密钥交换协议的方法,采用数字签名方式,设DSig= (Gen, Sig, Ver)为一个标准的 数字签名算法,其中Gen是密钥生成算法,Sig是签名算法,Ver是签名验证算法,Gen为用 户Ui产生一对签名/验证密钥对和,其特征在于,包括以下步骤①在系统最初,对协议进行初始化根据安全参数k,选择一个长度为k比特的素 数q,且满足P = 2q+l也是一个素数,选择q阶元素fire Ζ; ,Ζ;为模素数ρ有限域的乘法群, 最后公布系统参数P,q和g;②密匙交换基本协议U = (U1, U2, ... , UJ是将要参与协议的所有参与者的集合,Ui表示组内第i个成 员,ΠΙ...,Π 是各参与者参与这次会话的实例,π ,成员Ui的第Cii个实例,表示为(Uydi);第一轮每一个成员Ui, i = 1,2,...,n,设置 pid = (U1, U2, . . .,Un),随机选择元 素ri e Zq, r,为第i个成员选择的随机数,广播A :=gn modP ,mod为模运算,每个用户 保留自己的随机数到会话结束;第二轮每一个成员设置会话标识5<: = {(CA,纩),...,(f/ ,sr")},《·<包含实
例Γβ,的会话的唯一标识,每个成员Ui, i = 1,2, ... , n,计算A广mod; ,
σ, = Sig ,M),其中 Zq = zn, zn+1 = Z1Mi=XA 械‘,然后广播 Xi | σ i ;密钥计算用户Ui;l彡i彡η收到第二轮其他用户发的消息后,通过第一轮 收到的消息以及Pid重组忍,,1彡j彡n,j乒i,运行验证算法^^(ρΑ^, ^,σ》,
i,验证第二轮收到的消息是否合法,如果存在不合法的消息,Ui设置=0, Skti =NULL,并且放弃协议,其中沉<取值为0或1,如果为1,则说明协议执行成功,否则表 明协议异常终止,Aj =NULL表示会话密钥为空。如果所有消息都通过验证,那么每个成员
Ui用密钥计算公式
SKi = (ζ,._, Γ . X” . X= ·. · Xq mod/7( 1 )计算会话密钥SKi,设置CWCdu = 1 , Skjl; = ,这时的会话密钥为ι = SK1 =mod ρ。按照本发明所提供的将非认证密钥交换协议转化为认证的密钥交换协议的方法, 其特征在于,成员加入协议时步骤如下设定群组U = (UijU2,.. .,UJ已经得到一个会话密钥SK,现在有m个成员要加入 会话群组,记为S = {Un+1,UnJ,新密钥的协商过程如下第一轮每一个成员Ui, i = 1,2,· · ·,n+m,设置 pid = (U1, U2, ... , UnJ,成员 U1 广播Z1 = gSKmodp,成员Ui e S,随机选择元素a e Zq,计算Zi :=gr· mod/ ,然后广播Zi。每 个用户保留自己的随机数到会话结束;第二轮每一个成员设置^^={{Ux,gSK),(U +}{Un+m,gr-)},成员 Ui, i
=1, n+l,· · ·,n+m,首先计算久= (zi+l f Zi^y mod ρ,其中 ζ0 = zn+m, z2 = zn+1, zn = zn+m
5=Z1,σ(. =Sig(^5Mi),其中 Μ, =’然后广播 Xj Oi5上面的两轮通信结束后,Ui;l彡i彡n+m,首先验证收到的消息与签名是否合法, 如果存在不合法的消息,设置= O,Skdu^ =NULL,如果所有消息都合法,运用基本协议的 密钥计算公式⑴计算出新的会话密钥SK' ρ并设置=1,<; =SK;,这时原有成员 和加入的成员将得到共享的会话密钥= SK; ^modp,而且对加入的成 员来说原来的密钥SK是无法计算的。按照本发明所提供的将非认证密钥交换协议转化为认证的密钥交换协议的方法, 其特征在于,成员退出协议时步骤如下设定群组U = IU1, U2,...,UJ已经得到一个共享的会话密钥SK,现在有m个成员 S = {Uti,Ul2,...,Ul}要退出会话群组,新密钥的协商过程如下令U' = U1-S = (V1, V2,... , VnJ,其中 Vi (1 彡 i 彡 η-m)是 U 中第 i 个未退出的 成员。第一轮每一个成员Vi, 1彡i彡n-m,设置pid = (V1, V2, ... , Vj,如果i为奇 数,取出保存的随机数如果i为偶数,需要重新选择随机数^ e Zq替换原来保存的随机 数,然后每个成员Vi, 1彡i彡n-m,广播z,_ 二 gr' mod ρ ,设置=W1^')),每个成员保留 自己的随机数到会话结束;第二轮每一个剩余成员设置sidA = {(V gr'),...,(Vn_m,gr-)},成员 Vi,
1 彡 i 彡 n-m,计算义,=(z,.+1 / Zi^Y' mod ρ = Sig^5Mi),其中 Ζ() = zn_m,zn_m+1 = Z1, Mi = Xi I Sidii,然后广播 XiI oi;上面的两轮通信结束后,Vi;l彡i彡n-m,首先验证收到的消息与签名是否合法, 如果存在不合法的消息,设置=0,< =NULL,如果所有消息都合法,运用公式⑴计 算出新的会话密钥SK' ρ设置= 1 ,skt = SK;,这时所有剩余成员将得到共享的会话 密钥级'二 SK =mod ρ ,其中ri是新的随机数,i为偶数,退出的成员无法计 算这个新密钥。之所以要第偶数个成员重新选择随机数是为了保证退出的成员不能够计算 新的会话密钥。因为如果存在相邻两个成员的随机数保持不变,那么退出的成员可以通过 保存退出群组前的协议副本计算出这两个成员之间的DH秘密,从而计算出新的会话密钥。本发明为一个认证密钥交换协议,用来在公开网络中不认识的成员通过交互实现 共享一个共同的会话密钥的目的。它弥补了现有方法的一些安全性缺陷,具有更高的安全 性,同时在计算量和通信量上,比现有方法有所改进,具有更好的运用前景。
具体实施例方式下面结合对本发明作进一步描述在介绍详细本发明之前,先介绍一下密钥交换协议中采用的一些常用符号,见表 1 表1采用的主要符号 实现认证目的可以有许多方式,本发明中采用的方式为数字签名。设DSig = (Gen, Sig, Ver)为一个标准的数字签名算法,其中Gen是密钥生成算法,Sig是签名算法, Ver是签名验证算法。Gen为用户Ui产生一对签名/验证密钥对AiJPjPti。会话一致性在认证密钥交换协议中是一个很重要的概念,它保证了所有参与 者处于同一个会话当中。本协议和其他的协议一样用唯一标识实例所参与 的会话。然而我们的本发明的会话标识的内容与其他协议不一样,本发明的会话标识 Sidii = {(U gr'),...,(Un,gr")},其中 U1, U2,... Un 是参与协议的所有成员,r1; r2,...,rn 是各 成员在协议第一轮选择的随机数。这样能保证会话标识和所有成员都有关联,并且保证不 同的会话的标识的唯一性。在系统最初,对协议进行初始化。其过程如下根据安全参数k,选择一个长度为k比特的素数q,且满足ρ = 2q+l也是一个素数。选择q阶元素ST e Z;。最后公布系统参数p,q和g。当然这些参数也可以由参与协议的所有成员临时协商。每个成员都已经产生自己合法的签名/验证密钥。协议描述 1.密钥交换基本协议AGKE. Run(U)U = {Ui;U2,.. . ,UJ是将要参与协议的所有参与者的集合,Π ,,…,是各参与者 参与这次会话的实例。协议过程如下第一轮每一个成员Ui, i = 1,2,···,n,设置pid = IU1, U2, · · ·,Uj,随机选择元 素ri G ZJZtl = {0,1,...,q-Ι}),r,为第i个成员选择的随机数,广播A :=纩mod mod 为模运算,每个用户保留自己的随机数到会话结束。第二轮每一个成员设置会话标识={(Ul,9r'),...,(Un,gr")},SiO包含
实例Γβ,的会话的唯一标识,每个成员Ui, i = 1,2,...,n,计算A =(zi+1/zymod; , σ, = Sig(5^,M,),其中 zQ = zn, zn+1 = ZvMi 二 Χ, I SiddJi,然后广播 Xi I σ ,密钥计算用户Ui, i = 1,2,...,η收到第二轮其他用户发的消息后,通过第一
轮收到的消息以及Pid重组硬,1 ^ j彡n,j乒1,运行签名验证算法^^(/7^ ,%,。),
1 ^ j ^ n, j ^ i,验证第二轮收到的消息是否合法,如果验证出存在不合法的消息,Ui设

并且放弃协议。其中%《取值为0或1,如果为1,则说明协议执行
成功,否则表明协议异常终止,=NULL表示会话密钥为空。如果所有消息都通过验证,那
么每个成员Ui用公式⑴计算会话密钥SKi,并设置= 1 ,<; = SKi,这时的会话密钥为 SK = SKi = Qf 奶 +明+...+ V, mod ρ。2.成员加入协议 AGKE. Join (U,S)设定群组
已经得到一个会话密钥SK,现在有m个成员要加入 会话群组,记为S = {Un+1,UnJ,新密钥的协商过程如下第一轮每一个成员Ui, i = 1,2,· · ·,n+m,设置 pid = (U1, U2, ... , UnJ,成员 U1 广播Z1 = gSKmodp,成员Ui e S,随机选择元素a e Zq, if ^zi :=gr modp,然后广播Zi。每 个用户保留自己的随机数到会话结束;第二轮每一个成员设置=^gsx),(U +},gr-),...,(Un+m,gr-)},成员Ui,
n+m,首先计算 Xi = (zM / ζ^l)"' mod ρ ’其中 z0 = zn+m, z2 = zn+1, =z,,+m = ζ,, σ, =,Mi) ’其中= Xi I SiddJi ’然后广播 Xi | σ i ;上面的两轮通信结束后,Ui;l彡i彡n+m,首先验证收到的消息与签名是否合法, 如果存在不合法的消息,设置=0,sk^ =NULL,如果所有消息都合法,运用基本协议的 密钥计算公式⑴计算出新的会话密钥SK' y并设置iifcc^ =Uskdui =SK;,这时原有成员 和加入的成员将得到共享的会话密钥SK' = SK; ^mo&p,而且对加入的成 员来说原来的密钥SK是无法计算的。3.成员退出协议 AGKE. Leave (U,S)设定群组U = IU1, U2,...,UJ已经得到一个共享的会话密钥SK,现在有m个成员 S 二队凡…’ Ul丨要退出会话群组,新密钥的协商过程如下令
VnJ,其中
是 U 中第 i 个未退出的 成员。第一轮每一个成员Vi, 1彡i彡n-m,设置pid = (V1, V2, ... , Vj,如果i为奇数,取出保存的随机数如果i为偶数,需要重新选择随机数^ e Zq替换原来保存的随机 数,然后每个成员Vi, 1≤i≤n-m,广播
设置
每个成员保留 自己的随机数到会话结束;第二轮每一个剩余成员设置
,成员 Vi, 1 ≤ i≤ n-m,计算;
其中 Ζ(ι = zn_m,zn_m+1 = Z1,
然后广播 XiI上面的两轮通信结束后,Vi;l≤i≤η-m,首先验证收到的消息与签名是否合法, 如果存在不合法的消息,设置
如果所有消息都合法,运用公式(1)计 算出新的会话密钥SK' i,设置
这时所有剩余成员将得到共享的会话 密钥
其中ri是新的随机数,i为偶数,退出的成员无法计 算这个新密钥。之所以要第偶数个成员重新选择随机数是为了保证退出的成员不能够计算 新的会话密钥。因为如果存在相邻两个成员的随机数保持不变,那么退出的成员可以通过 保存退出群组前的协议副本计算出这两个成员之间的DH秘密,从而计算出新的会话密钥。对于协议的安全性分析,在这里就不详细叙述,但是在Bresson等人提出的安全 模型下,本协议可以在DDH假设条件下得到安全性证明。当然也得指出的是,对密钥交换 协议的攻击是多种多样的,现在还没有一个安全模型能够模拟出所有的攻击,虽然Bresson 等人提出的安全模型被认为最好的安全模型,也是被采用最多的安全模型,但是这个安全 模型并不能模拟出多个用户的串谋攻击,当然还有其他一些巧妙攻击。例如D-B协议与K-Y 协议,虽然在这个安全模型下证明了自己的安全性,但是已经出现一些对这两个协议的攻 击,而本协议避免了这些攻击及一些模型中不能模拟的其他攻击,所以本协议在安全性上 要比D-B协议和K-Y协议要高,这主要是通过修改会话标识,以及用户签名的消息的内容来 达到的。下面对本发明的效率给出相应的分析,并与相关的协议进行比较。在效率的考察 指标上仍然主要考察通信轮数,单个用户的计算量,单个用户所发的消息量这三个方面。表2基本协议的基本指标 表2以及表3中B表示广播,PTP表示点对点信道,EXP表示指数运算,SIG表示签名,VER表示验证签名,η为原有成员数,m为加入或退出的成员数。从表2可以看出DB协议在在单个用户的消息量上比我们的小,然而正是由于它在 第一轮没有广播消息,使得它的会话标识过于简单,没有把第一轮所有成员所发的消息加 入到会话标识当中,使得重放攻击成为可能。而我们的协议在计算量上要小于另外两个协 议,尤其是减少了一次签名及验证计算,大大减少了成员的计算量。表3扩展协议的性能指标 从表3中可以看出我们的扩展协议在主要指标上有着一定的优势,优势就在于我 们的协议减少了第一轮对消息的数字签名。
权利要求
一种将非认证密钥交换协议转化为认证的密钥交换协议的方法,采用数字签名方式,设DSig=(Gen,Sig,Ver)为一个标准的数字签名算法,其中Gen是密钥生成算法,Sig是签名算法,Ver是签名验证算法,Gen为用户Ui产生一对签名/验证密钥对和其特征在于,包括以下步骤①在系统最初,对协议进行初始化根据安全参数k,选择一个长度为k比特的素数q,且满足p=2q+1也是一个素数,选择q阶元素为模素数p有限域的乘法群,最后公布系统参数p,q和g;②密匙交换基本协议U=(U1,U2,...,Un)是将要参与协议的所有参与者的集合,Ui表示组内第i个成员,是各参与者参与这次会话的实例,成员Ui的第di个实例,表示为(Ui,di);第一轮每一个成员Ui,i=1,2,...,n,设置pid=(U1,U2,...,Un),随机选择元素ri∈Zq,ri为第i个成员选择的随机数,广播mod为模运算,每个用户保留自己的随机数到会话结束;第二轮每一个成员设置会话标识包含实例的会话的唯一标识,每个成员Ui,i=1,2,...,n,计算其中z0=zn,zn+1=z1,然后广播Xi|σi;密钥计算用户Ui,1≤i≤n收到第二轮其他用户发的消息后,通过第一轮收到的消息以及pid重组1≤j≤n,j≠i,运行验证算法1≤j≤n,j≠i,验证第二轮收到的消息是否合法,如果存在不合法的消息,Ui设置并且放弃协议,其中取值为0或1,如果为1,则说明协议执行成功,否则表明协议异常终止,表示会话密钥为空。如果所有消息都通过验证,那么每个成员Ui用密钥计算公式 <mrow><msub> <mi>SK</mi> <mi>i</mi></msub><mo>=</mo><msup> <mrow><mo>(</mo><msub> <mi>z</mi> <mrow><mi>i</mi><mo>-</mo><mn>1</mn> </mrow></msub><mo>)</mo> </mrow> <msub><mi>nr</mi><mi>i</mi> </msub></msup><mo>&CenterDot;</mo><msubsup> <mi>X</mi> <mi>i</mi> <mrow><mi>n</mi><mo>-</mo><mn>1</mn> </mrow></msubsup><mo>&CenterDot;</mo><msubsup> <mi>X</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn> </mrow> <mrow><mi>n</mi><mo>-</mo><mn>2</mn> </mrow></msubsup><mo>.</mo><mo>.</mo><mo>.</mo><msub> <mi>X</mi> <mrow><mi>i</mi><mo>-</mo><mn>2</mn> </mrow></msub><mi>mod</mi><mi>p</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo></mrow> </mrow>计算会话密钥SKi,设置这时的会话密钥为FSA00000223265100011.tif,FSA00000223265100012.tif,FSA00000223265100013.tif,FSA00000223265100014.tif,FSA00000223265100015.tif,FSA00000223265100016.tif,FSA00000223265100017.tif,FSA00000223265100018.tif,FSA00000223265100019.tif,FSA000002232651000110.tif,FSA000002232651000111.tif,FSA000002232651000112.tif,FSA000002232651000113.tif,FSA000002232651000114.tif,FSA000002232651000115.tif,FSA000002232651000116.tif,FSA000002232651000117.tif,FSA000002232651000118.tif,FSA000002232651000119.tif,FSA000002232651000121.tif,FSA000002232651000122.tif,FSA000002232651000123.tif,FSA000002232651000124.tif
2.根据权利要求1所述的将非认证密钥交换协议转化为认证的密钥交换协议的方法, 其特征在于,成员加入协议时步骤如下设定群组U= IUpU2,...,UJ已经得到一个会话密钥SK,现在有m个成员要加入会话 群组,记为S = {Un+1,UnJ,新密钥的协商过程如下第一轮每一个成员 Ui, i = 1,2,...,n+m,设置 pid = IU1, U2, . . .,Un+m},成员 U1 广播 Z1 = gSKmodp,成员Ui e S,随机选择元素ri e Zq,计算Zi modp,然后广播Zi。每个用 户保留自己的随机数到会话结束;第二轮每一个成员设置Siddui = {(C/,,gSK),(C/ +1 ,gr-),...,(Un+m,gr-)\ ,成员 Ui,i = 1, n+1, · · · , n+m,首先计算义= (z,.+I / ζmod ρ ,其中 ζ0 = zn+m, ζ2 = ζη+1, = z +m = Z1,…=Sig(5^ ,Mi),其中Mi = Xi I Sidfli,然后广播 Xi I σ i ;上面的两轮通信结束后,n+m,首先验证收到的消息与签名是否合法,如果存在不合法的消息,设置=OiSkdui =NULL,如果所有消息都合法,运用基本协议的密钥 计算公式(1)计算出新的会话密钥SK' ρ并设置=SK;,这时原有成员和加 入的成员将得到共享的会话密钥欣‘=SK; =mod/ ,而且对加入的成员来说原来的密钥SK是无法计算的。
3.根据权利要求1所述的将非认证密钥交换协议转化为认证的密钥交换协议的方法, 其特征在于,成员退出协议时步骤如下设定群组U= IUpU2,..., UJ已经得到一个共享的会话密钥SK,现在有m个成员 S = IUl^Uu,...,Ul}要退出会话群组,新密钥的协商过程如下令u' =U1-S= {H...,Vn_m},其中Vi(l彡i彡n-m)是U中第i个未退出的成员。 第一轮每一个成员Vi, 1彡i彡n-m,设置pid = IV1, V2, ... , VnJ,如果i为奇数,取 出保存的随机数如果i为偶数,需要重新选择随机数^ e Zq替换原来保存的随机数,然 后每个成员Vi, 1彡i彡n-m,广播= gr' mod ρ ,设置·《‘< ={^,91},每个成员保留自己的 随机数到会话结束;第二轮每一个剩余成员设置XVii^gr-)),成员Vi, 1 彡 i 彡 n-m,计算I,· = O…/ z,_y· mod ρ ,σ( = Sig(^5Mi),其中 Zq = zn_m,zn_m+1 = Z1, Mi=XtI Siddui,然后广播 Xj oi;上面的两轮通信结束后,n-m,首先验证收到的消息与签名是否合法,如果 存在不合法的消息,设置《<‘ = O,skdK =NULL,如果所有消息都合法,运用公式⑴计算出 新的会话密钥SK' i,设置‘ = 1 ,Skdv; = SK;,这时所有剩余成员将得到共享的会话密钥 SK' = SK; = grw…+W modP,其中ri是新的随机数,i为偶数,退出的成员无法计算这 个新密钥。
全文摘要
本发明公开了一种将非认证密钥交换协议转化为认证的密钥交换协议的方法,采用数字签名方式,设DSig=(Gen,Sig,Ver)为一个标准的数字签名算法,其中Gen是密钥生成算法,Sig是签名算法,Ver是签名验证算法,Gen为用户Ui产生一对签名/验证密钥对和本发明同时也是一个认证密钥交换协议,用来在公开网络中不认识的成员通过交互实现共享一个共同的会话密钥的目的。它弥补了现有方法的一些安全性缺陷,具有更高的安全性,同时在计算量和通信量上,比现有方法有所改进,具有更好的运用前景。
文档编号H04L29/06GK101917427SQ201010249458
公开日2010年12月15日 申请日期2010年8月10日 优先权日2010年8月10日
发明者李成邦, 许春香 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1