一种应用于客户-服务器环境的认证密钥协商方法

文档序号:9813931阅读:437来源:国知局
一种应用于客户-服务器环境的认证密钥协商方法
【技术领域】
[0001] 本发明设及密码技术领域,具体地说,设及一种应用于客户-服务器环境的的认证 密钥协商方法。
【背景技术】
[0002] 认证密钥协商是密码理论及应用的核屯、内容,其中化S协议(传输层协议)是目前 应用最广泛的认证密钥协商协议的国际标准。TLS目前的最新版本是化Sl. 2,已经标准化和 应用多年。为了适应网络安全的新挑战和新需求,目前IETF国际标准化组织正在制订最新 的化S 1.3标准。
[0003] 目前的化Sl. 3钥协商协议大致运行过程如下:
[0004] 第一轮:第一用户(客户端)发送参数X = gx至第二用户,其中,g表示有限群护的循 环子群G的生成元,X表示第一用于的DH-指数;
[000引第二轮:第二用户(服务器)发送参数Y = gy至第一用户,第二用户还计算参数K = XY 和参数Cb=AE化,(Ib,B,C邸TB,FinishB)),其中B = gb,FinishB =邸尸口6,化乂,¥)),第二用户 将(Y,Cb)发送至第一用户。
[0006] 第S轮:第一用户计算参数K = YX和参数Ca = AE化,(lA,A,CERTA,SigA,FinishA)), 其中SigA是第一用户利用其私钥对(X,Y,Cb)的数字签名,FinishB = KDF(BX,H(X,Y,CB))。第 一用户将Cb发送至用户B,并运行邸F(Xy,Xb),第二用户检查SigA签名的有效性并运行邸F (xy,xb)导出会话密钥。
[0007] 密码算法的主要计算单元是模指数运算。国际数字签名标准DSA算法需要1个模指 数运算进行签名生成,签名验证需要2个模指数运算。而对于上述基于DSA数字签名的 化SI.3协议,第二用户(服务器)共计需运行4.5个模指数运算,第一用户(客户端)共计需运 行4个模指数运算。运使得化SI.3难W在计算受限的设备(例如手机、智能卡等移动设备)上 的配置和应用。
[0008] 因此,在移动互联大规模普及和应用的背景下,亟需一种更为高效的应用于客户 端-服务器环境的新型的高效认证密钥协商方法。

【发明内容】

[0009] 为解决上述问题,本发明提供了一种应用于客户-服务器环境的的认证密钥协商 方法,所述方法包括:
[0010] 第一设备根据其生成的DH-指数X和第一设备的公钥A = ga,确定第一参数^=AgX EG或公=AXEG,并将所述第一参数公W及第一辅助信息auxA发送给第二设备,其中,g表示 有限群护的循环子群G的阶为q的生成元,xeZq,AeG,aeZq是第一设备的私钥,auxA是可为 空的数据集合;
[0011] 第二设备根据其生成的DH-指数yeZq和第二设备的公钥B = gbeGW及第二辅助信 息auxB其是可为空的数据集合,其中beZq是第二设备的私钥,W及接受到所述第一参数r 及第一辅助信息auXA确定第二参数r =ByeeG或r =B叮EG,其中Y = gyeG,yeZq,e = h(Y =gY,auxh),片:{〇,1}' ~^化护I是一个哈希函数,l<Lh< |q|,|q|表示q的二进制长度 口 "而^^??,11顯:6 11{乂'^。,公,(:飾7;,/,,4〔巧?7;}11公加^,所述第二设备根据化,7)^及 第二辅助信息auxBW及接收到的所述第一参数公及所述第一辅助信息auxA,确定预先共享 密钥S,根据SW及村/,r,auxA,auxB}的一个子集利用密钥导出函数KDF确定第一设备和第 二设备的认证加密密钥Ka和Kb,其中Ka和Kb相等或不等,第二设备利用一个对称加密算法AE 计算Cb = AE化B,( Ib,B,C邸Tb,Y,DataB)),其中C邸Tb是第二设备的公钥证书,Ib表示第二设 备的身份,DataB是第二设备其它需加密传输的可为空的数据集合,CERTa是第一设备的公钥 证书,Ia表示第一设备的身份;所述第二设备将第二参数和Cb和auxB发送给所述第一设 备,并导出会话密钥;
[0012] 所述第一设备根据(a, X) W及所述第一辅助信息auxAW及接受到的所述第二参数 Y' W及第二辅助信息auxB确定S,根据SW及{X',Y',曰11別,曰11祉}的一个子集利用密钥导出函 数KDF确定第一设备和第二设备的认证加密密钥Ka和Kb,然后利用Kb解密接收到的所述Cb得 到(Ib,B,CERTb,Y);所述第一设备验证公钥证书CECTb和第二参数r的有效性,若验证结果 不正确则终止运行,若验证结果正确则计算Ca=AE化A,( Ia, A,CERTa,X,DataA)),其中Ia表示 第一设备的身份,CERTa是第一设备的公钥证书,DataA是第一设备其它需加密传输的可为空 的数据集合;第一设备将Ca发送给第二设备,并导出会话密钥;
[0013] 所述第二设备利用Ka解密接收到的所述Ca得到(Ia, A,CERTa,x),验证公钥证书 CERTa和第一参数r的有效性,若验证结果不正确则终止运行,若验证结果正确则导出会话 密钥;
[0014]具体实施中,推荐X' =AgXEG且Y' =ByeeG,或,X' =AXEG且Y' =ByeeG,或,X'= AgX^G 且 Y' =BeyeG,或,X' =AX^G 且 Y' =BeyeG;
[0015] 要求第一设备和第二设备应计算出相同的预先共享密钥S,并导出相同的会话密 钥。
[0016] 根据本发明的一个实施例,
[0017] e = h(IB,B,Y = gy,X',auxe)或e = h(IB,B,Y = gy,auxe),口!aeea似:^Ua^^?且可为 空,一般而言函数输入中的(Ib,B)可W用CECTb或CECTb的哈希来替代,同理函数输入中的 (Ia,A)可W用CERTa或CERTa的哈希来替代,建议auxe为空或包含一个时间戳和/或一个第二 设备选取的随机数n,其中n E auxB或n邱at加,在本发明中为了描述的方便,我们假设哈 希函数的输出与输入的顺序无关,具体而言,对于e = h(lB,B,Y = gy,X/,auxe)=h(Y = gy, auxh)而言,auxh = auxeU {Ib,B,X' };
[0018] 和/或,auxA包含第一设备生成的随机数和/或时间戳和/或第一设备的身份信息 和/或第一设备的IP地址信息,或auxA为空;auxB包含第二设备生成的随机数和/或时间戳 和/或第二设备的身份信息和/或第二设备的IP地址信息,或auxB为空;
[0019] 和/或,根据所需达到的安全强度需要,X的长度I X I W及y的长度I y I可变,即:0< x| 引 q|,0<|y| 引 q|,其中 |q|表示的是q 的长度,或x = hx(x',auxx),其中hx: {0,1}*一 {0, 1} Ixl是一个哈希函数,e {0,1 r是第一设备选取的保密的随机数且的长度I I与I q 是多项式关系,《?^^^?!1〇:,11{/,,4<::£^?7;},在发明方法的实际应用中,推荐^ =心^/,14, A)或x = hx(x',lA,A,tA),其中tA是一个时间戳信息,或X和y均直接从Zq的一个子集中随机选 取;
[0020] 和/或,所述第二设备确定出S后,还判断S是否为护中的单位元,如果S为单位元, 则停止执行后续步骤,否则继续后续步骤;和/或,所述第一设备确定出S后,还判断S是否为 护中的单位元,如果S为单位元,则停止执行后续步骤,否则继续后续步骤;
[0021] 和/或,AE是一个对称认证加密算法,AE可W是确定待状态或随机的算法,并可是 带有联合信息的认证加密函数(authenticated encryption with associated data, AEAD)并可W提供消息长度隐藏功能。
[0022] 根据本发明的一个实施例,
[002引 |x| = [ |q|/2]或 |x| = [ |q|/4]或 |x| = |q| ;和/或 |y| = [ |q|/2]或 |y| = [ |q|/4] 或I y I = I q I ;和/或Lh < [ I q I/2]或Lh < [ I q I/4]或U引q I,其中对于一个实数a,若a是小数 则|[0]表示的是〇的向上或向下取整。具体实施中,推荐山=[|9|/2]。
[0024] 根据本发明的一个实施例,
[0025] 所述第一设备和/或第二设备所述根据如下表达式确定第一设备和第二设备的认 证加密密钥Ka和Kb,
[0026] 化a,Kb,K'邸F(S,aux)
[0027] 幻10:引义',7|,。似_^,幻似:。}
[002引其中,KDF是密钥导出函数,表示额外的导出密钥,可为空;
[0029] 所述第一设备和第二设备将会话密钥设定为化a,Kb,KM或化a,Kb}或,或者,会 话密钥由K'或拟及auXf r,A公,。口,。口tog,,0??}导出。比如,会话密钥 由邸F化',TA I I re)或邸F化',TaI I Y),其中rA是第一设备选取的随机数且化taA或 auxA(推荐TAE DataA) JB是第二设备选取的随机数且TB E DataB或TB EaiiXB(推荐TB E DataB),或KDF化',x I IY)。
[0030] 根据本发明的一个实施例,
[0031 ]所述第二设备根据如下表达式确定S:
[0032] S=X'化+ye)t或S = X'化e+y)t
[0033] 所述第一设备根据如下表达式确定S:
[0034] S = Y'(a+x)t或S = Y'(axt)
[0035] 其中,t表示伴随因子,即
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1