发明名称 一种身份隐藏且强安全的签密方法
摘要 本发明提供了一种身份隐藏且强安全的签密方法,包括:第一设备计算X′=AX<sup>d</sup>,其中X=g<sup>x</sup>和d=h<sub>d</sub>(X,aux<sub>d</sub>),并根据DH-指数x、私钥a以及第二设备的公钥B=g<sup>b</sup>确定预先共享密钥S,基于S确定K<sub>A</sub>,并根据K<sub>A</sub>确定C<sub>A</sub>=AE(K<sub>A</sub>,(I<sub>A</sub>,A,CERT<sub>A</sub>,X,Data<sub>A</sub>)),并将{X′,C<sub>A</sub>}发送给第二设备;第二设备根据收到的X′以及第二设备的私钥b确定预先共享密钥S,基于S确定K<sub>A</sub>,并根据K<sub>A</sub>对C<sub>A</sub>进行解密得到(I<sub>A</sub>,A,CERT<sub>A</sub>,X,Data<sub>A</sub>);若公钥证书CERT<sub>A</sub>有效且X′=AX<sup>d</sup>有效则接受Data<sub>A</sub>。在发明的签密方法中,第一设备的身份和公钥信息得到了隐藏,并且第一设备仅需运行2.5个模指数运算,而第二设备仅需运行1.5个模指数运算。另外,本发明方法耗费的带宽比现有签密方案更少,并且临时DH-指数x的泄露不会影响发明方案的安全性。
申请公布号 CN105306212A 申请公布日期 2016.02.03
申请号 CN201510546068.4 申请日期 2015.08.31
申请人 赵运磊 发明人 赵运磊
分类号 H04L9/32(2006.01)I;H04L9/30(2006.01)I 主分类号 H04L9/32(2006.01)I
代理机构 代理人
主权项 一种身份隐藏且强安全的签密方法,其特征在于,所述方法包括:第一设备根据其生成的DH‑指数x∈Z<sub>q</sub>和第一设备的公钥A=g<sup>a</sup>∈G,第一辅助信息aux<sub>A</sub>其可为空的数据集合,以及第一设备需加密传输的数据集合Data<sub>A</sub>,确定第一参数X′=AX<sup>d</sup>∈G或X′=A<sup>d</sup>X∈G,其中X=g<sup>x</sup>∈G,d=h<sub>d</sub>(X,aux<sub>d</sub>),<img file="FSA0000120627140000012.GIF" wi="372" he="65" />是一个转换函数,1≤L<sub>d</sub>≤|q|,|q|表示q的二进制长度,<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>aux</mi><mi>d</mi></msub><mo>&SubsetEqual;</mo><msub><mi>aux</mi><mi>A</mi></msub><mo>&cup;</mo><mo>{</mo><msub><mi>I</mi><mi>A</mi></msub><mo>,</mo><mi>A</mi><mo>,</mo><msub><mi>CERT</mi><mi>A</mi></msub><mo>,</mo><msub><mi>I</mi><mi>B</mi></msub><mo>,</mo><mi>B</mi><mo>,</mo><msub><mi>CERT</mi><mi>B</mi></msub><mo>}</mo><mo>&cup;</mo><msub><mi>Data</mi><mi>A</mi></msub><mo>,</mo></mrow>]]></math><img file="FSA0000120627140000011.GIF" wi="1024" he="59" /></maths>g表示有限群G′的循环子群G的阶为q的生成元,a∈Z<sub>q</sub>是第一设备的私钥,I<sub>A</sub>表示第一设备的身份,CERT<sub>A</sub>是第一设备的公钥证书,CERT<sub>B</sub>是第二设备的公钥证书,I<sub>B</sub>表示第二设备的身份,B=g<sup>b</sup>∈G是第二设备的公钥,b∈Z<sub>q</sub>是第二设备的私钥,所述第一设备根据(a,x,I<sub>B</sub>,B,CERT<sub>B</sub>)以及辅助信息aux<sub>A</sub>和aux<sub>d</sub>确定预先共享密钥S,根据S以及{X′aux<sub>A</sub>,I<sub>A</sub>,A,I<sub>B</sub>,B}的一个子集利用密钥导出函数KDF确定第一设备和第二设备的加密密钥K<sub>A</sub>和K<sub>B</sub>以及辅助密钥K′,其中K<sub>A</sub>和K<sub>B</sub>相等或不等且K′可为空,第一设备计算C<sub>A</sub>=AE(K<sub>A</sub>,(I<sub>A</sub>,A,CERT<sub>A</sub>,X,Data<sub>A</sub>)),其中AE是一个对称加密算法,第一设备将{X′,aux<sub>A</sub>,C<sub>A</sub>}发送给第二设备;收到第一设备发送过来的{X′,aux<sub>A</sub>,C<sub>A</sub>)后,第二设备根据其私钥b∈Z<sub>q</sub>以及{X′,aux<sub>A</sub>),确定预先共享密钥S,根据S以及{X′,aux<sub>A</sub>,I<sub>A</sub>,A,I<sub>B</sub>,B}的一个子集利用密钥导出函数KDF确定第一设备和第二设备的加密密钥K<sub>A</sub>和K<sub>B</sub>以及辅助密钥K′,所述第二设备利用K<sub>A</sub>解密接收到的所述C<sub>A</sub>得到(I<sub>A</sub>,A,CERT<sub>A</sub>,X,Data<sub>A</sub>),验证公钥证书CERT<sub>A</sub>和第一参数X′的有效性,若验证结果不正确则终止运行,若验证结果正确则接受Data<sub>A</sub>。
地址 200433 上海市杨浦区邯郸路220号复旦大学