一种增强保护的非对称密钥协商方法转让专利

申请号 : CN201010606995.8

文献号 : CN102035647B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 何泾沙韦潜张兴张婷朱娜斐

申请人 : 北京工业大学

摘要 :

一种增强保护的非对称密钥协商方法属于信息安全领域。本发明用于通信网络中两个节点在事先没有任何秘密约定的条件下协商建立共享密钥。本发明在密钥协商发起阶段利用签密技术增强保护共享密钥生成元素,在密钥协商应答阶段利用对称加密技术增强保护共享密钥生成元素,利用带密钥杂凑函数实现密钥源的认证,以解决基于签密技术的对称密钥协商方法需要较多计算资源和通信资源的技术问题。

权利要求 :

1.一种增强保护的非对称密钥协商方法,其特征在于,该方法是基于离散对数签密技术的技术方案或者基于椭圆曲线签密技术的技术方案;

基于离散对数签密技术的技术方案包括密钥协商发起阶段、密钥协商应答阶段和密钥确认阶段三个阶段;

a1密钥协商发起阶段

密钥协商发起阶段包括以下具体步骤:

a1.1密钥协商的发起者随机选择整数x,满足x∈[1,…,q-1];

整数x是取自乘法群 的随机数,q是p-1的素因子,p是一个大素数;

a1.2密钥协商的发起者计算临时密钥 将临时密钥k按照步骤a1.3和a1.4采用的加密算法和签名算法所需要的密钥长度分成临时加密密钥k1和临时签名密钥k2;

hash是强无碰撞的单向杂凑函数,密钥协商的应答者的私钥为xb,满足xb∈[1,…,q-1],密钥协商的应答者相应的公钥 g是乘法群 中的一个q阶元素,mod是代数模运算;

x

a1.3密钥协商的发起者利用临时加密密钥k1加密共享密钥生成元素g,得到 是采用密钥k1的对称密钥加密算法,IDa是密钥协商的发起者的标识,IDb是密钥协商的应答者的标识,TQa是密钥协商的发起者采用的保持消息新鲜性的新鲜值,TQa是一个时间戳,或者是一个随机数,或者是一个序列号;

a1.4密钥协商的发起者计算签名 和s=x/(r+xa);

是带密钥k2的强无碰撞的单向杂凑函数,密钥协商的发起者的私钥为xa,满足xa∈[1,…,q-1],密钥协商的发起者相应的公钥 a1.5密钥协商的发起者发送签密密文消息{c,r,s}给密钥协商的应答者;

a2密钥协商应答阶段

密钥协商应答阶段包括以下具体步骤:

a2.1密钥协商的应答者利用{r,s,g,p,q,ya,xb}计算u=(s·xb)mod q,恢复临时密r u钥k=hash((ya·g)modp),并将临时密钥k按照步骤a2.2和a2.3采用的解密算法和签名验证算法所需要的密钥长度分成临时加密密钥k1和临时签名密钥k2;

a2.2密钥协商的 应答者利用临时 加密密钥k1解密密文消息c,得 到 是采用密钥k1的对称密钥解密算法,与采用密钥k1的对称密钥加密算法 相对应;

a2.3如果TQa是新鲜的,IDa和IDb是有效的,并且 的计算结果x

等于r,则密钥协商的应答者接受g 作为密钥协商的发起者产生的共享密钥生成元素,继续步骤a2.4,否则,密钥协商的应答者放弃签密密文消息{c,r,s},终止密钥协商过程;

a2.4密钥协商的应答者随机选择整数y,满足y∈[1,…,q-1],计算共享密钥σ=x y(g) ;

y

a2.5密钥协商的应答者利用临时加密密钥k1加密共享密钥生成元素g,得到加密密文 TQb是密钥协商的应答者采用的保持消息新鲜性的新鲜值,TQb是一个时间戳,或者是一个随机数,或者是一个序列号;

a2.6密钥协商的 应答者利用临时签 名密钥k2计 算密钥源认证消 息 * *

a2.7密钥协商的应答者发送密文消息{c,r}给密钥协商的发起者;

a3密钥确认阶段

密钥确认阶段包括以下具体步骤:

*

a3.1密钥协商的发起者利用临时加密密钥k1解密密文消息c,得到 * y x

a3.2密钥协商的发起者计算共享密钥σ =(g) ;

a3.3如果TQb是新鲜的,IDa和IDb是有效的,并且 的计算结* * y x

果等于r,则密钥协商的发起者接受σ =(g) 作为密钥协商的发起者和密钥协商的应答者之间的共享密钥,密钥协商的发起者确信密钥协商的应答者已经拥有和密钥协商的发起* y x *者之间的共享密钥σ =(g),继续步骤a3.4,否则,密钥协商的发起者放弃密文消息{c,*r},终止密钥协商过程;

* y x

a3.4密钥协商的发起者利用共享密钥σ =(g) 产生密 钥确认消息 将密钥确认消息{v}发送给密钥协商的应答者;

* *

是采用密钥σ 的对称密钥加密算法,与采用密钥σ 的对称密钥解密算法 相对应,TQ′a是密钥协商的发起者采用的保持消息新鲜性的新鲜值,TQ′a是一个时间戳,或者是一个随机数,或者是一个序列号;

x y

a3.5密钥协商的应答者利用共享密钥σ=(g) 解密密钥确认消息v,得到(IDa,IDb,TQ′a)=Dσ(v),如果TQ′a是新鲜的,IDa和IDb是有效的,密钥协商的应答者确信密钥x y y x *协商的发起者已经拥有和密钥协商的应答者之间的共享密钥 σ=(g) =(g) =σ,否则,密钥协商的应答者无法确认密钥协商的发起者是否已经拥有和密钥协商的应答者之间x y y x *的共享密钥σ=(g) =(g) =σ ;

Dσ是采用密钥σ的对称密钥解密算法,与采用密钥σ的对称密钥加密算法Eσ相对应;

基于椭圆曲线签密技术的技术方案包括密钥协商发起阶段、密钥协商应答阶段和密钥确认阶段三个阶段;

b1密钥协商发起阶段

密钥协商发起阶段包括以下具体步骤:

b1.1密钥协商的发起者随机选择整数x,满足x∈[1,…,n-1];

整数x是取自乘法群 的随机数,n是一个大素数,n的安全长度约等于|p|,p是一个大素数,满足p>2160;

b1.2密钥协商的发起者计算临时密钥k=hash((xPb)mod p),将临时密钥k按照步骤b1.3和b1.4采用的加密算法和签名算法所需要的密钥长度分成临时加密密钥k1和临时签名密钥k2;

hash是强无碰撞的单向杂凑函数,密钥协商的应答者的私钥为xb,满足xn∈[1,…,n-1],密钥协商的应答者相应的公钥Pb=(xbG)modp,G是有限域Fp=[0,…,p-1]上椭

2 3

圆曲线E的一个基点,有限域Fp=[0,…,p-1]上的椭圆曲线E是满足E:y ≡(x+ax+b)modp的所有解与无穷远点O的并集,椭圆曲线方程参数a和b满足a,b∈Fp且 n是基点G在椭圆曲线E上的一个素数阶,xbG=xb·G和xPb=x·Pb是有限域Fp=[0,…,p-1]上椭圆曲线E的点乘,mod是代数模运算;

b1.3密钥协商的发起者利用临时加密密钥K1加密共享密钥生成元素xG,得到 是采用密钥k1的对称密钥加密算法,IDa是密钥协商的发起者的标识,IDb是密钥协商的应答者的标识,TQa是密钥协商的发起者采用的保持消息新鲜性的新鲜值,TQa是一个时间戳,或者是一个随机数,或者是一个序列号,xG=x·G是有限域Fp=[0,…,p-1]上椭圆曲线E的点乘;

b1.4密钥协商的发起者计算签名 和s=x/(r+xa);

是带密钥k2的强无碰撞的单向杂凑函数,密钥协商的发起者的私钥为xa,满足xa∈[1,…,n-1],密钥协商的发起者相应的公钥Pa=(xaG)mod p,xaG=xa·G是有限域Fp=[0,…,p-1]上椭圆曲线E的点乘;

b1.5密钥协商的发起者发送签密密文消息{c,r,s}给密钥协商的应答者; b2密钥协商应答阶段密钥协商应答阶段包括以下具体步骤:

b2.1密钥协商的应答者利用{r,s,G,p,n,Pa,xb}计算u=(s·xb)mod n,恢复临时密钥k=hash((u·Pa+u·r·G)modp),并将临时密钥k按照步骤b2.2和b2.3采用的解密算法和签名验证算法所需要的密钥长度分成临时加密密钥k1和临时签名密钥k2;

u·Pa和u·r·G是有限域Fp=[0,…,p-1]上椭圆曲线E的点乘,(u·Pa+u·r·G)是有限域Fp=[0,…,p-1]上椭圆曲线E的点加;

b2.2密钥协商的 应答者利用临时 加密密钥k1解密密文消息c,得 到 是采用密钥k1的对称密钥解密算法,与采用密钥k1的对称密钥加密算法 相对应;

b2.3如果TQa是新鲜的,IDa和IDb是有效的,并且 的计算结果等于r,则密钥协商的应答者接受xG作为密钥协商的发起者产生的共享密钥生成元素,继续步骤b2.4,否则,密钥协商的应答者放弃签密密文消息{c,r,s},终止密钥协商过程;

b2.4密钥协商的应答者随机选择整数y,满足y∈[1,…,n-1],计算共享密钥σ=y·(xG);

y·(xG)=y·(x·G)是有限域Fp=[0,…,p-1]上椭圆曲线E的点乘;

b2.5密钥协商的应答者利用临时加密密钥k1加密共享密钥生成元素yG,得到加密密文 yG=y·G是有限域Fp=[0,…,p-1]上椭圆曲线E的点乘,TQb是密钥协商的应答者采用的保持消息新鲜性的新鲜值,TQb是一个时间戳,或者是一个随机数,或者是一个序列号;

b2.6密钥协商的 应答者利用临时 签名密钥k2计 算密钥源认证消 息 * *

b2.7密钥协商的应答者发送密文消息{c,r}给密钥协商的发起者;

b3密钥确认阶段

密钥确认阶段包括以下具体步骤:

*

b3.1密钥协商的发起者利用临时加密密钥k1解密密文消息c,得到 b3.2密钥协商的发起者计算共享密钥σ*=x·(yG);

x·(yG)=x·(y·G)是有限域Fp=[0,…,p-1]上椭圆曲线E的点乘; b3.3如果TQb是新鲜的,IDa和IDb是有效的,并且 的计算* *

结果等于r,则密钥协商的发起者接受σ =x·(yG)作为密钥协商的发起者和密钥协商的应答者之间的共享密钥,密钥协商的发起者确信密钥协商的应答者已经拥有和密钥协商*的发起者之间的共享密钥σ =x·(yG),继续步骤b3.4,否则,密钥协商的发起者放弃密* *文消息{c,r},终止密钥协商过程;

*

b3.4密钥协商的发起者利用共享密钥σ =x·(yG)产生密钥确认消息 将密钥确认消息{v}发送给密钥协商的应答者;

是采用密钥σ*的对称密钥加密算法,与采用密钥σ*的对称密钥解密算法 相对应,TQ′a是密钥协商的发起者采用的保持消息新鲜性的新鲜值,TQ′a是一个时间戳,或者是一个随机数,或者是一个序列号;

b3.5密钥协商的应答者利用共享密钥σ=y·(xG)解密密钥确认消息v,得到(IDa,IDb,TQ′a)=Dσ(v),如果TQ′a是新鲜的,IDa和IDb是有效的,密钥协商的应答者确信密钥协商的发起者已经拥有和密钥协商的应答者之间的共享密钥σ=y·(xG)=x·(yG)*=σ,否则,密钥协商的应答者无法确认密钥协商的发起者是否已经拥有和密钥协商的应*答者之间的共享密钥σ=y·(xG)=x·(yG)=σ ;

Dσ是采用密钥σ的对称密钥解密算法,与采用密钥σ的对称密钥加密算法Eσ相对应。

说明书 :

一种增强保护的非对称密钥协商方法

技术领域

[0001] 本发明涉及密钥协商,具体是一种利用签密技术增强保护共享密钥生成元素的非对称密钥协商方法,适合于通信网络中两个节点之间共享密钥的协商,属于信息安全领域。

背景技术

[0002] 密钥协商协议被广泛应用于有线和无线的通信网络环境中,用以提供两个节点或者多个节点在事先没有任何秘密约定的条件下,在完全公开的信道上,建立双方或者多方共享密钥的方法。由W.Diffie和M.Hellman在1976年发明的密钥协商协议是最具有代表性的密钥协商协议(W.Diffie,M.E.Hellman,“New direction in cryptography,”IEEE Trans.,1976,22,644-654),目前常用的密钥协商方法大都基于Diffie-Hellman密钥协商协议。Y.Zheng在1997年首次提出签密(Signcryption)概念,旨在一个操作步骤内同时完成加密和签名,同时计算复杂性和数据量远小于传统的先签名再加密机制(Y.Zheng,“Digital signcryption or how to achieve cost(signature&encryption)<<cost(signature)+cost(encryption),”Advance in Cryptology,LNCS,1997,1294,165-180)。Y.Zheng在1998年将签密技术应用于密钥协商,发明DKEUTS(Direct Key Exchange Using a Time-Stamp)密钥协商协议(Y.Zheng,“Shortened digital signature,signcryption and compact and unforgeable key agreement schemes,”IEEE P1363a:Standard Specifications for Public-Key Cryptography:Additional Techniques,1998)。
[0003] Y.Zheng发明的密钥协商协议DKEUTS是一种利用签密技术增强保护共享密钥生成元素的对称密钥协商方法,即在密钥协商发起阶段和密钥协商应答阶段采用一致的签密技术,需要较多的计算资源和通信资源。

发明内容

[0004] 本发明的目的在于提供一种增强保护的非对称密钥协商方法,用于通信网络中两个节点在事先没有任何秘密约定的条件下协商建立共享密钥。本发明在密钥协商发起阶段利用签密技术增强保护共享密钥生成元素,在密钥协商应答阶段利用对称加密技术增强保护共享密钥生成元素,利用带密钥杂凑函数实现密钥源的认证,以解决基于签密技术的对称密钥协商方法需要较多计算资源和通信资源的技术问题。
[0005] 为实现上述目的,本发明采取以下技术方案:
[0006] 整个技术方案包括密钥协商发起阶段、密钥协商应答阶段和密钥确认阶段三个阶段。
[0007] 首先,在密钥协商发起阶段,密钥协商的发起者将产生的随机数与密钥协商的应答者的公钥结合产生临时加密密钥和临时签名密钥,密钥协商的发起者利用签密技术对密钥协商的发起者产生的共享密钥生成元素进行签密,并将签密密文消息发送给密钥协商的应答者;
[0008] 然后,在密钥协商应答阶段,密钥协商的应答者利用密钥协商的发起者的公钥和密钥协商的应答者的私钥解签密密文消息,得到临时加密密钥、临时签名密钥和密钥协商的发起者产生的共享密钥生成元素,并验证共享密钥生成元素的有效性,如果共享密钥生成元素被验证无效,则密钥协商的应答者放弃接收到的签密密文消息,终止密钥协商过程,如果共享密钥生成元素被验证有效,则密钥协商的应答者利用密钥协商的应答者产生的共享密钥生成元素和密钥协商的发起者产生的共享密钥生成元素产生密钥协商的发起者和密钥协商的应答者之间的共享密钥,利用对称加密技术对密钥协商的应答者产生的共享密钥生成元素进行加密,利用带密钥杂凑函数将共享密钥与密钥协商的发起者的标识、密钥协商的应答者的标识和保持消息新鲜性的新鲜值相结合产生密钥源认证消息,并将加密密文消息和密钥源认证消息一起发送给密钥协商的发起者;
[0009] 最后,在密钥确认阶段,密钥协商的发起者利用临时加密密钥解密加密密文消息,得到密钥协商的应答者产生的共享密钥生成元素,密钥协商的发起者利用密钥协商的发起者产生的共享密钥生成元素和密钥协商的应答者产生的共享密钥生成元素产生密钥协商的发起者和密钥协商的应答者之间的共享密钥,密钥协商的发起者利用密钥源认证消息验证共享密钥的有效性,如果共享密钥被验证无效,则密钥协商的发起者放弃接收到的密文消息,终止密钥协商过程,如果共享密钥被验证有效,则密钥协商的发起者确信密钥协商的应答者已经拥有和密钥协商的发起者之间的共享密钥,密钥协商的发起者利用共享密钥将密钥协商的发起者的标识、密钥协商的应答者的标识和保持消息新鲜性的新鲜值相结合产生密钥确认消息,并将密钥确认消息发送给密钥协商的应答者,密钥协商的应答者利用共享密钥解密密钥确认消息,验证密钥确认消息的有效性,如果密钥确认消息被验证有效,则密钥协商的应答者确信密钥协商的发起者已经拥有和密钥协商的应答者之间的共享密钥,如果密钥确认消息被验证无效,则密钥协商的应答者无法确认密钥协商的发起者是否已经拥有和密钥协商的应答者之间的共享密钥。
[0010] 本发明技术方案可以是基于离散对数签密技术的技术方案和基于椭圆曲线签密技术的技术方案。
[0011] 基于离散对数签密技术的技术方案包括密钥协商发起阶段、密钥协商应答阶段和密钥确认阶段三个阶段。
[0012] a1密钥协商发起阶段
[0013] 密钥协商发起阶段包括以下具体步骤:
[0014] a1.1密钥协商的发起者随机选择整数x,满足x∈[1,…,q-1];
[0015] 整数x是取自乘法群 的随机数,q是p-1的素因子,p是一个大素数;
[0016] a1.2密钥协商的发起者计算临时密钥 将临时密钥k按照步骤a1.3和a1.4采用的加密算法和签名算法所需要的密钥长度分成临时加密密钥k1和临时签名密钥k2;
[0017] hash是强无碰撞的单向杂凑函数,密钥协商的应答者的私钥为xb,满足xb∈[1,…,q-1],密钥协商的应答者相应的公钥 g是乘法群
[0018] 中的一个q阶元素,mod是代数模运算;x
[0019] a1.3密钥协商的发起者利用临时加密密钥k1加密共享密钥生成元素g,得到[0020] 是采用密钥k1的对称密钥加密算法,IDa是密钥协商的发起者的标识,IDb是密钥协商的应答者的标识,TQa是密钥协商的发起者采用的保持消息新鲜性的新鲜值,TQa是一个时间戳,或者是一个随机数,或者是一个序列号;
[0021] a1.4密钥协商的发起者计算签名 和s=x/(r+xa);
[0022] 是带密钥k2的强无碰撞的单向杂凑函数,密钥协商的发起者的私钥为xa,满足xa∈[1,…,q-1],密钥协商的发起者相应的公钥
[0023] a1.5密钥协商的发起者发送签密密文消息{c,r,s}给密钥协商的应答者;
[0024] a2密钥协商应答阶段
[0025] 密钥协商应答阶段包括以下具体步骤:
[0026] a2.1密钥协商的应答者利用{r,s,g,p,q,ya,xb}计算u=(s·xb)modq,恢复临时密钥k=hash((ya·gr)umodp),并将临时密钥k按照步骤a2.2和a2.3采用的解密算法和签名验证算法所需要的密钥长度分成临时加密密钥k1和临时签名密钥k2;
[0027] a2.2密钥协商的应答者利用临时加密密钥k1解密密文消息c,得到[0028] 是采用密钥k1的对称密钥解密算法,与采用密钥k1的对称密钥加密算法 相对应;
[0029] a2.3如果TQa是新鲜的,IDa和IDb是有效的,并且 的计算x
结果等于r,则密钥协商的应答者接受g 作为密钥协商的发起者产生的共享密钥生成元素,继续步骤a2.4,否则,密钥协商的应答者放弃签密密文消息{c,r,s},终止密钥协商过程;
[0030] a2.4密钥协商的应答者随机选择整数y,满足y∈[1,…,q-1],计算共享密钥σx y=(g) ;
y
[0031] a2.5密钥协商的应答者利用临时加密密钥k1加密共享密钥生成元素g,得到加密密文
[0032] TQb是密钥协商的应答者采用的保持消息新鲜性的新鲜值,TQb是一个时间戳,或者是一个随机数,或者是一个序列号;
[0033] a2.6密钥协商的应答者利用临时签名密钥k2计算密钥源认证消息[0034] a2.7密钥协商的应答者发送密文消息{c*,r*}给密钥协商的发起者;
[0035] a3密钥确认阶段
[0036] 密钥确认阶段包括以下具体步骤:
[0037] a3.1密钥协商的发起者利用临时加密密钥k1解密密文消息c*,得到[0038] a3.2密钥协商的发起者计算共享密钥σ*=(gy)x;
[0039] a3.3如果TQb是新鲜的,IDa和IDb是有效的,并且 的计* * y x
算结果等于r,则密钥协商的发起者接受σ =(g) 作为密钥协商的发起者和密钥协商的应答者之间的共享密钥,密钥协商的发起者确信密钥协商的应答者已经拥有和密钥协商的* y x
发起者之间的共享密钥σ =(g),继续步骤a3.4,否则,密钥协商的发起者放弃密文消息* *
{c,r},终止密钥协商过程;
[0040] a3.4密钥协商的发起者利用共享密钥σ*=(gy)x产生密钥确认消息将密钥确认消息{v}发送给密钥协商的应答者;
[0041] 是采用密钥σ*的对称密钥加密算法,与采用密钥σ*的对称密钥解密算法相对应,TQ′a是密钥协商的发起者采用的保持消息新鲜性的新鲜值,TQ′a是一个时间戳,或者是一个随机数,或者是一个序列号;x y
[0042] a3.5密钥协商的应答者利用共享密钥σ=(g) 解密密钥确认消息v,得到(IDa,IDb,TQ′a)=Dσ(v),如果TQ′a是新鲜的,IDa和IDb是有效的,密钥协商的应答者确信密x y y x *钥协商的发起者已经拥有和密钥协商的应答者之间的共享密钥σ=(g) =(g) =σ,否则,密钥协商的应答者无法确认密钥协商的发起者是否已经拥有和密钥协商的应答者之x y y x *
间的共享密钥σ=(g) =(g) =σ ;
[0043] Dσ是采用密钥σ的对称密钥解密算法,与采用密钥σ的对称密钥加密算法Eσ相对应。
[0044] 基于椭圆曲线签密技术的技术方案包括密钥协商发起阶段、密钥协商应答阶段和密钥确认阶段三个阶段。
[0045] b1密钥协商发起阶段
[0046] 密钥协商发起阶段包括以下具体步骤:
[0047] b1.1密钥协商的发起者随机选择整数x,满足x∈[1,…,n-1];
[0048] 整数x是取自乘法群 的随机数,n是一个大素数,n的安全长度约等160
于|p|,p是一个大素数,满足p>2 ;
[0049] b1.2密钥协商的发起者计算临时密钥k=hash((xPb)modp),将临时密钥k按照步骤b1.3和b1.4采用的加密算法和签名算法所需要的密钥长度分成临时加密密钥k1和临时签名密钥k2;
[0050] hash是强无碰撞的单向杂凑函数,密钥协商的应答者的私钥为xb,满足xb∈[1,…,n-1],密钥协商的应答者相应的公钥Pb=(xbG)modp,G是有限域Fp=[0,…,p-1]上椭圆曲线E的一个基点,有限域Fp=[0,…,p-1]上的椭圆曲线E是满足E:2 3
y ≡(x+ax+b)mod p的所有解与无穷远点O的并集,椭圆曲线方程参数a和b满足a,b∈Fp且 n是基点G在椭圆曲线E上的一个素数阶,xbG=xb·G和xPb=
x·Pb是有限域Fp=[0,…,p-1]上椭圆曲线E的点乘,mod是代数模运算;
[0051] b1.3密钥协商的发起者利用临时加密密钥k1加密共享密钥生成元素xG,得到[0052] 是采用密钥k1的对称密钥加密算法,IDa是密钥协商的发起者的标识,IDb是密钥协商的应答者的标识,TQa是密钥协商的发起者采用的保持消息新鲜性的新鲜值,TQa是一个时间戳,或者是一个随机数,或者是一个序列号,xG=x·G是有限域Fp=[0,…,p-1]上椭圆曲线E的点乘;
[0053] b1.4密钥协商的发起者计算签名 和s=x/(r+xa);
[0054] 是带密钥k2的强无碰撞的单向杂凑函数,密钥协商的发起者的私钥为xa,满足xa∈[1,…,n-1],密钥协商的发起者相应的公钥Pa=(xaG)modp,xaG=xa·G是有限域Fp=[0,…,p-1]上椭圆曲线E的点乘;
[0055] b1.5密钥协商的发起者发送签密密文消息{c,r,s}给密钥协商的应答者;
[0056] b2密钥协商应答阶段
[0057] 密钥协商应答阶段包括以下具体步骤:
[0058] b2.1密钥协商的应答者利用{r,s,G,p,n,Pa,xb}计算u=(s·xb)modn,恢复临时密钥k=hash((u·Pa+u·r·G)modp),并将临时密钥k按照步骤b2.2和b2.3采用的解密算法和签名验证算法所需要的密钥长度分成临时加密密钥k1和临时签名密钥k2;
[0059] u·Pa和u·r·G是有限域Fp=[0,…,p-1]上椭圆曲线E的点乘,(u·Pa+u·r·G)是有限域Fp=[0,…,p-1]上椭圆曲线E的点加;
[0060] b2.2密钥协商的应答者利用临时加密密钥k1解密密文消息c,得到[0061] 是采用密钥k1的对称密钥解密算法,与采用密钥k1的对称密钥加密算法 相对应;
[0062] b2.3如果TQa是新鲜的,IDa和IDb是有效的,并且 的计算结果等于r,则密钥协商的应答者接受xG作为密钥协商的发起者产生的共享密钥生成元素,继续步骤b2.4,否则,密钥协商的应答者放弃签密密文消息{c,r,s},终止密钥协商过程;
[0063] b2.4密钥协商的应答者随机选择整数y,满足y∈[1,…,n-1],计算共享密钥σ=y·(xG);
[0064] y·(xG)=y·(x·G)是有限域Fp=[0,…,p-1]上椭圆曲线E的点乘;
[0065] b2.5密钥协商的应答者利用临时加密密钥k1加密共享密钥生成元素yG,得到加密密文
[0066] yG=y·G是有限域Fp=[0,…,p-1]上椭圆曲线E的点乘,TQb是密钥协商的应答者采用的保持消息新鲜性的新鲜值,TQb是一个时间戳,或者是一个随机数,或者是一个序列号;
[0067] b2.6密钥协商的应答者利用临时签名密钥k2计算密钥源认证消息* *
[0068] b2.7密钥协商的应答者发送密文消息{c,r}给密钥协商的发起者;
[0069] b3密钥确认阶段
[0070] 密钥确认阶段包括以下具体步骤:*
[0071] b3.1密钥协商的发起者利用临时加密密钥k1解密密文消息c,得到[0072] b3.2密钥协商的发起者计算共享密钥σ*=x·(yG);
[0073] x·(yG)=x·(y·G)是有限域Fp=[0,…,p-1]上椭圆曲线E的点乘;
[0074] b3.3如果TQb是新鲜的,IDa和IDb是有效的,并且 的计* *
算结果等于r,则密钥协商的发起者接受σ =x·(yG)作为密钥协商的发起者和密钥协商的应答者之间的共享密钥,密钥协商的发起者确信密钥协商的应答者已经拥有和密钥协*
商的发起者之间的共享密钥σ =x·(yG),继续步骤b3.4,否则,密钥协商的发起者放弃* *
密文消息{c,r},终止密钥协商过程;
[0075] b3.4密钥协商的发起者利用共享密钥σ*=x·(yG)产生密钥确认消息将密钥确认消息{v}发送给密钥协商的应答者;
[0076] 是采用密钥σ*的对称密钥加密算法,与采用密钥σ*的对称密钥解密算法相对应,TQ′a是密钥协商的发起者采用的保持消息新鲜性的新鲜值,TQ′a是一个时间戳,或者是一个随机数,或者是一个序列号;
[0077] b3.5密钥协商的应答者利用共享密钥σ=y·(xG)解密密钥确认消息v,得到(IDa,IDb,TQ′a)=Dσ(v),如果TQ′a是新鲜的,IDa和IDb是有效的,密钥协商的应答者确信密钥协商的发起者已经拥有和密钥协商的应答者之间的共享密钥σ=y·(xG)=*x·(yG)=σ,否则,密钥协商的应答者无法确认密钥协商的发起者是否已经拥有和密钥*
协商的应答者之间的共享密钥σ=y·(xG)=x·(yG)=σ ;
[0078] Dσ是采用密钥σ的对称密钥解密算法,与采用密钥σ的对称密钥加密算法Eσ相对应。
[0079] 本发明提出的一种增强保护的非对称密钥协商方法,在密钥协商发起阶段利用签密技术增强保护共享密钥生成元素,在密钥协商应答阶段利用对称加密技术增强保护共享密钥生成元素,利用带密钥杂凑函数实现密钥源的认证,从而充分利用了签密技术较传统先签名再加密技术计算复杂性低和数据量小的特点,充分利用了杂凑函数较传统数字签名技术需要计算资源少的特点,解决了基于签密技术的对称密钥协商方法需要较多计算资源和通信资源的技术问题。

具体实施方式

[0080] 本发明基于Diffie-Hellman密钥协商协议,采用签密技术和对称加密技术增强保护共享密钥生成元素,采用带密钥杂凑函数实现密钥源的认证。本发明在保证密钥协商安全性的同时,节省了计算资源和通信资源的需要量。
[0081] 实施例1
[0082] 本发明实施例1与本发明基于离散对数签密技术的技术方案相对应。通信双方是通信网络中的节点A和节点B,节点A是密钥协商的发起者,节点B是密钥协商的应答者,在执行密钥协商之前,系统参数已经正确建立,通信双方已经拥有对方的正确公钥和有效标识。
[0083] 系统参数描述如下:
[0084] p:一个大素数;
[0085] q:p-1的素因子;
[0086] g:乘法群 中的一个q阶元素;
[0087] hash:强无碰撞的单向杂凑函数,安全长度至少128位;
[0088] KH:带密钥的强无碰撞的单向杂凑函数;
[0089] (Ek,Dk):利用密钥k的对称加密算法和解密算法;
[0090] IDa:节点A的标识;
[0091] IDb:节点B的标识;
[0092] xa:节点A的私钥,满足xa∈[1,…,q-1];
[0093] ya:节点A的公钥,满足
[0094] xb:节点B的私钥,满足xb∈[1,…,q-1];
[0095] yb:节点B的公钥,满足
[0096] TQa和TQ′a:节点A采用的保持消息新鲜性的新鲜值;
[0097] TQb:节点B采用的保持消息新鲜性的新鲜值;
[0098] mod:代数模运算;
[0099] 实施例1包括密钥协商发起阶段、密钥协商应答阶段和密钥确认阶段三个阶段。
[0100] pa1密钥协商发起阶段
[0101] 密钥协商发起阶段包括以下具体步骤:
[0102] pa1.1节点A随机选择整数x,满足x∈[1,…,q-1];
[0103] pa1.2节点A计算临时密钥 将临时密钥k按照步骤pa1.3和pa1.4采用的加密算法和签名算法所需要的密钥长度分成临时加密密钥k1和临时签名密钥k2;
x
[0104] pa1.3节点A利用临时加密密钥k1加密共享密钥生成元素g,得到[0105] pa1.4节点A计算签名 和s=x/(r+xa);
[0106] pa1.5节点A发送签密密文消息{c,r,s}给节点B;
[0107] pa2密钥协商应答阶段
[0108] 密钥协商应答阶段包括以下具体步骤:
[0109] pa2.1节点B利用{r,s,g,p,q,ya,xb}计算u=(s·xb)mod q,恢复临时密钥k=hash((ya·gr)umod p),并将临时密钥k按照步骤pa2.2和pa2.3采用的解密算法和签名验证算法所需要的密钥长度分成临时加密密钥k1和临时签名密钥k2;
[0110] pa2.2 节 点 B 利 用 临 时 加 密 密 钥 k1解 密 密 文 消 息 c,得 到[0111] pa2.3如果TQa是新鲜的,IDa和IDb是有效的,并且 的计算x
结果等于r,则节点B接受g 作为节点A产生的共享密钥生成元素,继续步骤pa2.4,否则,节点B放弃签密密文消息{c,r,s},终止密钥协商过程;
[0112] pa2.4节点B随机选择整数y,满足y∈[1,…,q-1],计算共享密钥σ=(gx)y;
[0113] pa2.5节点B利用临时加密密钥k1加密共享密钥生成元素gy,得到加密密文[0114] pa2.6 节 点 B 利 用 临 时 签 名 密 钥 k2 计 算 密 钥 源 认 证 消 息[0115] pa2.7节点B发送密文消息{c*,r*}给节点A;
[0116] pa3密钥确认阶段
[0117] 密钥确认阶段包括以下具体步骤:
[0118] pa3.1 节 点 A 利 用 临 时 加 密 密 钥 k1 解 密 密 文 消 息 c*,得 到[0119] pa3.2节点A计算共享密钥σ*=(gy)x;
[0120] pa3.3如果TQb是新鲜的,IDa和IDb是有效的,并且 的* * y x
计算结果等于r,则节点A接受σ =(g) 作为节点A和节点B之间的共享密钥,节点A确* y x
信节点B已经拥有和节点A之间的共享密钥σ =(g),继续步骤pa3.4,否则,节点A放* *
弃密文消息{c,r},终止密钥协商过程;
* y x
[0121] pa3.4节点A利用共享密钥σ =(g) 产生密钥确认消息将密钥确认消息{v}发送给节点B;
[0122] pa3.5节点B利用共享密钥σ=(gx)y解密密钥确认消息v,得到(IDa,IDb,TQ′a)=Dσ(v),如果TQ′a是新鲜的,IDa和IDb是有效的,节点B确信节点A已经拥有和节点Bx y y x *之间的共享密钥σ=(g) =(g) =σ,否则,节点B无法确认节点A是否已经拥有和节x y y x *
点B之间的共享密钥σ=(g) =(g) =σ。
[0123] 实施例2
[0124] 本发明实施例2与本发明基于椭圆曲线签密技术的技术方案相对应。通信双方是通信网络中的节点A和节点B,节点A是密钥协商的发起者,节点B是密钥协商的应答者,在执行密钥协商之前,系统参数已经正确建立,通信双方已经拥有对方的正确公钥和有效标识。
[0125] 系统参数描述如下:
[0126] p:一个大素数,满足p>2160;
[0127] Fp:有限域Fp=[0,…,p-1];
[0128] E:有限域Fp=[0,…,p-1]上的椭圆曲线,满足E:y2≡(x3+ax+b)mod p;
[0129] a和b:椭圆曲线方程参数,满足a,b∈Fp且
[0130] G:有限域Fp=[0,…,p-1]上椭圆曲线E的一个基点;
[0131] n:基点G在椭圆曲线E上的一个素数阶;
[0132] hash:强无碰撞的单向杂凑函数,安全长度至少128位;
[0133] KH:带密钥的强无碰撞的单向杂凑函数;
[0134] (Ek,Dk):利用密钥k的对称加密和解密算法;
[0135] IDa:节点A的标识;
[0136] IDb:节点B的标识;
[0137] xa:节点A的私钥,满足xa∈[1,…,n-1];
[0138] Pa:节点A的公钥,满足Pa=(xaG)mod p,有限域Fp上椭圆曲线E的一个点;
[0139] xb:节点B的私钥,满足xb∈[1,…,n-1];
[0140] Pb:节点B的公钥,满足Pb=(xbG)mod p,有限域Fp上椭圆曲线E的一个点;
[0141] TQa和TQ′a:节点A采用的保持消息新鲜性的新鲜值;
[0142] TQb:节点B采用的保持消息新鲜性的新鲜值;
[0143] mod:代数模运算;
[0144] 实施例2包括密钥协商发起阶段、密钥协商应答阶段和密钥确认阶段三个阶段。
[0145] pb1密钥协商发起阶段
[0146] 密钥协商发起阶段包括以下具体步骤:
[0147] pb1.1节点A随机选择整数x,满足x∈[1,…,n-1];
[0148] pb1.2节点A计算临时密钥k=hash((xPb)modp),将临时密钥k按照步骤pb1.3和pb1.4采用的加密算法和签名算法所需要的密钥长度分成临时加密密钥k1和临时签名密钥k2;
[0149] pb1.3节点A利用临时加密密钥k1加密共享密钥生成元素xG,得到[0150] pb1.4节点A计算签名 和s=x/(r+xa);
[0151] pb1.5节点A发送签密密文消息{c,r,s}给节点B;
[0152] pb2密钥协商应答阶段
[0153] 密钥协商应答阶段包括以下具体步骤:
[0154] pb2.1节点B利用{r,s,G,p,n,Pa,xb}计算u=(s·xb)mod n,恢复临时密钥k=hash((u·Pa+u·r·G)mod p),并将临时密钥k按照步骤pb2.2和pb2.3采用的解密算法和签名验证算法所需要的密钥长度分成临时加密密钥k1和临时签名密钥k2;
[0155] pb2.2 节 点 B 利 用 临 时 加 密 密 钥 k1解 密 密 文 消 息 c,得 到[0156] pb2.3如果TQa是新鲜的,IDa和IDb是有效的,并且 的计算结果等于r,则节点B接受xG作为节点A产生的共享密钥生成元素,继续步骤pb2.4,否则,节点B放弃签密密文消息{c,r,s},终止密钥协商过程;
[0157] pb2.4节点B随机选择整数y,满足y∈[1,…,n-1],计算共享密钥σ=y·(xG);
[0158] pb2.5节点B利用临时加密密钥k1加密共享密钥生成元素yG,得到加密密文[0159] pb2.6 节 点 B 利 用 临 时 签 名 密 钥 k2 计 算 密 钥 源 认 证 消 息* *
[0160] pb2.7节点B发送密文消息{c,r}给节点A;
[0161] pb3密钥确认阶段
[0162] 密钥确认阶段包括以下具体步骤:*
[0163] pb3.1 节 点 A 利 用 临 时 加 密 密 钥 k1 解 密 密 文 消 息 c,得 到[0164] pb3.2节点A计算共享密钥σ*=x·(yG);
[0165] pb3.3如果TQb是新鲜的,IDa和IDb是有效的,并且 的* *
计算结果等于r,则节点A接受σ =x·(yG)作为节点A和节点B之间的共享密钥,节点*
A确信节点B已经拥有和节点A之间的共享密钥σ =x·(yG),继续步骤pb3.4,否则,节* *
点A放弃密文消息{c,r},终止密钥协商过程;
[0166] pb3.4节 点 A利 用 共 享 密 钥σ* =x·(yG) 产 生 密 钥 确 认 消 息将密钥确认消息{v}发送给节点B;
[0167] pb3.5节点B利用共享密钥σ=y·(xG)解密密钥确认消息v,得到(IDa,IDb,TQ′a)=Dσ(v),如果TQ′a是新鲜的,IDa和IDb是有效的,节点B确信节点A已经拥有和*节点B之间的共享密钥σ=y·(xG)=x·(yG)=σ,否则,节点B无法确认节点A是否已经拥有和节点B之间的共享密钥
[0168] σ=y·(xG)=x·(yG)=σ*。
[0169] 本发明实施例1和实施例2的计算代价和通信代价如表1和表2所示。为讨论问题的方便,我们假设在基于离散对数签密技术的技术方案中,
[0170]
[0171] 即带密钥杂凑函数的安全长度|KH(.)|约等于q的安全长度|q|的一半,q的安全长度|q|约等于p的安全长度|p|的1/3,在基于椭圆曲线签密技术的技术方案中,[0172] |n|≈|p|
[0173] 即带密钥杂凑函数的安全长度|KH(.)|约等于n的安全长度|n|的一半,n的安全长度|n|约等于p的安全长度|p|。
[0174] 本发明实施例1和实施例2与扩展应用离散对数签密技术和椭圆曲线签密技术的DKEUTS方法进行比较。依据表1中消耗计算资源最多的幂指数模运算和椭圆曲线点乘运算的统计结果,本发明实施例1在计算代价上较DKEUTS方法节省了
[0175]
[0176] mod ulo exp onentiation表示幂指数模运算,本发明实施例2在计算代价上较DKEUTS方法节省了
[0177]
[0178] po int multiplica tive表示有限域上椭圆曲线的点乘运算。本发明实施例1在通信代价上较DKEUTS节省了
[0179]
[0180] 本发明实施例2在通信代价上较DKEUTS节省了
[0181]
[0182] 由以上讨论可知,本发明实施例1和实施例2在计算代价上较DKEUTS方法节省了12.5%,在通信代价上较DKEUTS方法节省了33.3%。本发明在保证密钥协商安全性的同时,节省了计算资源和通信资源的需要量。
[0183] 表1计算代价和通信代价统计
[0184]
[0185]
[0186] 表2计算代价和通信代价符号说明