一种基于口令的轻量级密钥协商方法与流程

文档序号:12182261阅读:来源:国知局

技术特征:

1.一种基于口令的轻量级密钥协商方法,包括正向传递和反向传递两轮执行,其特征在于,所述密钥协商方法包括以下步骤:

A.密钥协商初始化;

B.第一轮正向传递,数据由用户U1向用户Un传递,然后用户Un将数据发给可信服务器S;

C.第二轮反向传递,数据由可信服务器S验证后传递给用户Un,然后数据由用户Un向传U1递。

2.如权利要求1所述的轻量级密钥协商方法,其特征在于,所述步骤A包括下述步骤:

A1.所述密钥协商采用密钥协商协议,所述密钥协商协议包括n个用户U1,…,Un和一个可信服务器S;设用户U1为密钥协商的发起者,用户Un为最后一个用户并与可信服务器S相邻;

A2.可信服务器S向N个用户U1,…,Un公开自己的公钥Ppub,保留自己的私钥Ppri;N个用户U1,…,Un可向可信服务器S发送加密信息,服务器用自己的私钥解密;N个用户U1,…,Un两两之间未共享任何信息;

A3.每个用户Ui与可信服务器S之间共享一个口令pwi,其中i=1,…,n;

A4.定义p阶有限循环群G,任取p阶有限循环群G上一个元素g;

A5.定义三个哈希函数h1,h2,h3;其中哈希函数h1用于生成会话标识,哈希函数h2用于进行正确性验证,哈希函数h3用于生成会话密钥;l1、l2、l3均表示固定的长度;*表示任意长度,l1、l2、l3根据实际需要选取512bits,1024bits。

3.如权利要求1所述的轻量级密钥协商方法,其特征在于,所述步骤B包括下述步骤:

B1.对于密钥协商发起者用户U1:计算会话标识sid=h1(U1,…,Un),然后选择两个随机数x1,R1∈Zp,Zp表示以p为模的素数域;计算并把(sid,U1,…,Un,N1,M1)发给下一个用户U2;x1表示是以p为模的素数域Zp中的随机数,E代表加密,是用Ppub为密钥进行加密,N1、M1均为计算的中间结果;

B2.对于用户Ui,i=1,…,n-1:选择两个随机数xi,Ri∈Zp,计算并把(sid,U1,…,Un,N1,M1,…,Ni,Mi)发给下一个用户Ui+1

B3.对于用户Un:与其他n-1个用户操作相同,把最终的(sid,U1,…,Un,N1,M1,…,Nn,Mn)发送给可信服务器S。

4.如权利要求1所述的轻量级密钥协商方法,其特征在于,所述步骤C包括下述步骤:

C1.对于可信服务器S:收到(sid,U1,…,Un,N1,M1,…,Nn,Mn)后,所述可信服务器S用自己的私钥解密得到会话标识sid到用户U1以及随机数R1,首先验证会话标识sid=h1(U1,…,Un);然后检查是否等于收到的N1与会话标识sid与用户U1共享的pw1相异或的结果;若相等,所述可信服务器S继续对N2,M2,…,Nn,Mn做相同检查;若有一项失败,则程序终止;所有检查都通过后,所述可信服务器S确认(sid,U1,…,Un,N1,M1,…,Nn,Mn)合法;并选择随机数s∈Zp,计算i=2,…,n,M′i=h2(sid||Ui||Ri||N),i=1,…,n,将生成的发送给用户Un

C2.对于用户Un:收到后,首先验证会话标识sid=h1(U1,…,Un),依次计算和哈希函数h2(sid||Un||Rn||N)并验证哈希函数h2(sid||Un||Rn||N)=M′n;若验证通过,依次计算会话密钥K=h3(sid||N)和 <mrow> <msubsup> <mi>N</mi> <mi>i</mi> <mrow> <mo>(</mo> <mi>n</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </msubsup> <mo>=</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>N</mi> <mi>i</mi> <mrow> <mo>(</mo> <mi>n</mi> <mo>)</mo> </mrow> </msubsup> <mo>)</mo> </mrow> <msub> <mi>x</mi> <mi>n</mi> </msub> </msup> <mo>=</mo> <msup> <mi>g</mi> <mrow> <msub> <mi>sx</mi> <mn>1</mn> </msub> <mn>.....</mn> <msub> <mi>x</mi> <mrow> <mi>i</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>&CenterDot;</mo> <msub> <mi>x</mi> <mi>n</mi> </msub> </mrow> </msup> <mo>,</mo> </mrow>i=1,…,n,将发送给用户Un-1;若验证失败,则发送错误信息;

C3.对于用户Ui,i=2,…,n-1:收到后,首先验证会话标识sid=h1(U1,…,Un),依次计算和哈希函数h2(sid||Ui||Ri||N)并验证哈希函数h2(sid||Ui||Ri||N)=M′i;若验证通过,依次计算会话密钥K=h3(sid||N)和 <mrow> <msubsup> <mi>N</mi> <mn>1</mn> <mrow> <mo>(</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </msubsup> <mo>=</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>N</mi> <mn>1</mn> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msubsup> <mo>)</mo> </mrow> <msub> <mi>x</mi> <mi>i</mi> </msub> </msup> <mo>=</mo> <msup> <mi>g</mi> <mrow> <msub> <mi>sx</mi> <mn>1</mn> </msub> <mn>.....</mn> <msub> <mi>x</mi> <mi>n</mi> </msub> </mrow> </msup> <mo>,</mo> </mrow>…, <mrow> <msubsup> <mi>N</mi> <mrow> <mi>i</mi> <mo>-</mo> <mn>1</mn> </mrow> <mrow> <mo>(</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </msubsup> <mo>=</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>N</mi> <mrow> <mi>i</mi> <mo>-</mo> <mn>1</mn> </mrow> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> </msubsup> <mo>)</mo> </mrow> <msub> <mi>x</mi> <mi>i</mi> </msub> </msup> <mo>=</mo> <msup> <mi>g</mi> <mrow> <msub> <mi>sx</mi> <mn>1</mn> </msub> <mn>.....</mn> <msub> <mi>x</mi> <mrow> <mi>i</mi> <mo>-</mo> <mn>2</mn> </mrow> </msub> <msub> <mi>x</mi> <mi>i</mi> </msub> <mn>.....</mn> <msub> <mi>x</mi> <mi>n</mi> </msub> </mrow> </msup> <mo>,</mo> </mrow>发送给用户Ui-1;如验证失败,则发送错误信息;

C4.对于用户U1:收到后,首先验证会话标识sid=h1(U1,…,Un),依次计算和哈希函数h2(sid||u1||R1||N),并验证哈希函数h2(sid||U1||R1||N)=M′1若验证通过,计算会话密钥K=h3(sid||N);若验证失效,则发送错误信息;

其中:N1、M1、N2,M2,…,Nn,MnM′1,…,M′n均为计算的中间结果;、x1·…·xn均表示是以p为模的素数域Zp中的随机数;g表示p阶有限循环群G上一个元素。

5.如权利要求1所述的基于口令的轻量级密钥协商方法,其特征在于,密钥协商协议N 个用户的每个用户发送一次数据,接收一次数据,密钥协商协议在密钥协商的发起者收到传回的数据后结束。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1