发明名称 授权可撤销的有向代理签名方法
摘要 本发明公开了一种授权可撤销的有向代理签名方法,用于解决现有可撤销代理签名方法安全性差的技术问题。技术方案是包括系统建立过程、密钥提取过程、原始签名者的授权过程、授权验证过程、代理签名生成过程、代理签名验证过程、签名公开验证过程以及代理撤销过程。该方法由安全中介SEM负责验证授权和协助代理签名者生成代理签名。安全中介SEM检查签名是否在有效代理期限中,代理签名者是否在公开撤销列表中,验证有效,安全中介SEM为代理签名者发送由安全中介SEM得到的部分代理签名,代理签名者借助安全中介SEM的部分代理签名生成代理签名。反之,安全中介SEM不会为代理签名者提供部分代理签名,提高了可撤销代理签名的安全性。
申请公布号 CN103825739A 申请公布日期 2014.05.28
申请号 CN201410016089.0 申请日期 2014.01.14
申请人 西安电子科技大学 发明人 庞辽军;周霞;李慧贤
分类号 H04L9/32(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L9/32(2006.01)I
代理机构 西北工业大学专利中心 61204 代理人 黄毅新
主权项 1.一种授权可撤销的有向代理签名方法,其特征在于包括以下步骤:(1)系统建立过程;密钥生成中心KGC根据安全参数l选取一个大素数p,其中p&gt;2<sup>l</sup>,构造一个p阶加法循环群G<sub>1</sub>和p阶乘法循环群G<sub>2</sub>,构造一个双线性映射e:G<sub>1</sub>×G<sub>1</sub>→G<sub>2</sub>,从p阶加法循环群G<sub>1</sub>中选取生成元g,从p阶加法循环群G<sub>1</sub>中随机选取g<sub>1</sub>,u′,v′,u<sub>1</sub>,u<sub>2</sub>,…,u<sub>n</sub>,v<sub>1</sub>,v<sub>2</sub>,…,v<sub>n</sub>,构造向量u=(u<sub>1</sub>,u<sub>2</sub>,…,u<sub>n</sub>)和v=(v<sub>1</sub>,v<sub>2</sub>,…,v<sub>n</sub>),n为待签名消息m的长度;密钥生成中心KGC构造并公开系统公共参数π,π构造方法为:π=(G<sub>1</sub>,G<sub>2</sub>,e,p,g,g<sub>1</sub>,u′,v′,u,v)(2)密钥提取过程;原始签名者A随机选择整数x<sub>A</sub>∈Z<sub>p</sub>,得到原始签名者A的私钥sk<sub>A</sub>=x<sub>A</sub>;代理签名者B随机选择整数x<sub>B</sub>∈Z<sub>p</sub>,得到代理签名者B的私钥sk<sub>B</sub>=x<sub>B</sub>;签名验证者C随机选择整数x<sub>C</sub>∈Z<sub>p</sub>,得到签名验证者C的私钥sk<sub>C</sub>=x<sub>C</sub>,并将私钥信息向密钥生成中心KGC提交;密钥生成中心KGC根据系统公共参数π和原始签名者A,代理签名者B和签名验证者C的私钥分别计算并公开原始签名者A的公钥<img file="FDA0000456714930000013.GIF" wi="246" he="63" />代理签名者B的公钥<img file="FDA0000456714930000014.GIF" wi="190" he="55" />和签名验证者C的公钥<img file="FDA0000456714930000015.GIF" wi="231" he="63" />其中,Z<sub>p</sub>为不超过大素数p的正整数集合;(3)原始签名者的授权过程;3a)原始签名者A随机选择两个整数x<sub>A1</sub>,x<sub>A2</sub>∈Z<sub>p</sub>,使得x<sub>A1</sub>+x<sub>A2</sub>=x<sub>A</sub>,同时随机选择两个整数r<sub>A1</sub>,r<sub>A2</sub>∈Z<sub>p</sub>,并计算整数r<sub>A</sub>=r<sub>A1</sub>+r<sub>A2</sub>和代理签名者B的身份<img file="FDA0000456714930000016.GIF" wi="191" he="62" />其中x<sub>A</sub>=sk<sub>A</sub>,sk<sub>A</sub>为原始签名者A的私钥,Z<sub>p</sub>为不超过大素数p的正整数集合,g为由密钥生成中心KGC选取的p阶加法循环群G<sub>1</sub>的生成元;3b)原始签名者A计算代理签名者B的部分授权密钥σ<sub>B</sub>和安全中介SEM的部分授权密钥σ<sub>S</sub>,然后,向代理签名者B发送代理签名者B的部分授权密钥σ<sub>B</sub>,同时向安全中介SEM发送安全中介SEM的部分授权私钥σ<sub>S</sub>;σ<sub>B</sub>和σ<sub>S</sub>的计算方法如下:<maths num="0001"><![CDATA[<math><mrow><msub><mi>&sigma;</mi><mi>B</mi></msub><mo>=</mo><mrow><mo>(</mo><msub><mi>&sigma;</mi><mrow><mi>B</mi><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>&sigma;</mi><mrow><mi>B</mi><mn>2</mn></mrow></msub><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><msubsup><mi>g</mi><mn>1</mn><msub><mi>x</mi><mrow><mi>A</mi><mn>1</mn></mrow></msub></msubsup><msup><mrow><mo>(</mo><msup><mi>u</mi><mo>&prime;</mo></msup><munder><mi>&Pi;</mi><mrow><mi>i</mi><mo>&Element;</mo><mi>W</mi></mrow></munder><msub><mi>u</mi><mi>i</mi></msub><mo>)</mo></mrow><msub><mi>r</mi><mrow><mi>A</mi><mn>1</mn></mrow></msub></msup><mo>,</mo><msup><mi>g</mi><msub><mi>r</mi><mrow><mi>A</mi><mn>1</mn></mrow></msub></msup><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><msub><mi>&sigma;</mi><mi>S</mi></msub><mo>=</mo><mrow><mo>(</mo><msub><mi>&sigma;</mi><mrow><mi>S</mi><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>&sigma;</mi><mrow><mi>S</mi><mn>2</mn></mrow></msub><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><msubsup><mi>g</mi><mn>1</mn><msub><mi>x</mi><mrow><mi>A</mi><mn>2</mn></mrow></msub></msubsup><msup><mrow><mo>(</mo><msup><mi>u</mi><mo>&prime;</mo></msup><munder><mi>&Pi;</mi><mrow><mi>i</mi><mo>&Element;</mo><mi>W</mi></mrow></munder><msub><mi>u</mi><mi>i</mi></msub><mo>)</mo></mrow><msub><mi>r</mi><mrow><mi>A</mi><mn>2</mn></mrow></msub></msup><mo>,</mo><msup><mi>g</mi><msub><mi>r</mi><mrow><mi>A</mi><mn>2</mn></mrow></msub></msup><mo>)</mo></mrow></mrow></math>]]></maths>其中,g<sub>1</sub>、u′和u<sub>1</sub>,u<sub>2</sub>,…,u<sub>n</sub>为密钥生成中心KGC选取的p阶加法循环群G<sub>1</sub>中的元素,W={i|ω<sub>i</sub>=1,i=1,2,…,n}为委任状ω中元素不为0的下标集合,n为待签名消息m的长度,σ<sub>B1</sub>和σ<sub>B2</sub>分别为代理签名者B的部分授权密钥σ<sub>B</sub>的第一部分和第二部分,σ<sub>S1</sub>和σ<sub>S2</sub>分别为安全中介SEM的部分授权密钥σ<sub>S</sub>的第一部分和第二部分;3c)原始签名者A向代理签名者B发送ω,σ<sub>B</sub>和R<sub>A</sub>,同时向安全中介SEM发送ω,σ<sub>S</sub>和R<sub>A</sub>;(4)授权验证过程;代理签名者B和安全中介SEM联合验证授权的有效性,首先代理签名者B计算R<sub>B</sub>=e(σ<sub>B1</sub>,g),并向安全中介SEM发送ω和R<sub>B</sub>,同时安全中介SEM计算R<sub>S</sub>=e(σ<sub>S1</sub>,g),并向代理签名者B发送ω和R<sub>S</sub>;代理签名者B与安全中介SEM验证等式<img file="FDA0000456714930000021.GIF" wi="714" he="130" />是否成立;若不成立,代理签名者B与安全中介SEM要求原始签名者A重新发送授权;若成立,代理签名者B代替原始签名者A进行签名,执行代理签名的生成过程;其中,pk<sub>A</sub>是原始签名者A的公钥,e为密钥生成中心KGC选取的G<sub>1</sub>和G<sub>2</sub>上的双线性变换,G<sub>1</sub>为密钥生成中心KGC选取的p阶加法循环群,G<sub>2</sub>为密钥生成中心KGC选取的p阶乘法循环群;(5)代理签名生成过程;5a)代理签名者B向安全中介SEM发送ω,m,R<sub>A</sub>和R<sub>B</sub>,安全中介SEM检查ω,m,R<sub>A</sub>和R<sub>B</sub>是否与步骤3c)和步骤(4)收到的ω,m,R<sub>A</sub>和R<sub>B</sub>完全相同;如果不完全相同,安全中介SEM不为代理签名者B生成部分代理签名;如果完全相同,安全中介SEM检验下面的两个条件是否成立:第一,授权是否在委任状ω规定的有效代理期限内;第二,ω和R<sub>A</sub>是否在公开撤销列表中;若授权在委任状ω规定的有效代理期限内且ω和R<sub>A</sub>均不在公开撤销列表中,安全中介SEM向代理签名者B提供部分代理签名;否则,安全中介SEM不为代理签名者B提供部分代理签名;其中,m是待签名消息;5b)安全中介SEM协助代理签名者B产生代理签名;首先,安全中介SEM随机选取两个整数r<sub>S</sub>,r<sub>M</sub>∈Z<sub>p</sub>,计算部分代理签名σ<sub>PS</sub>如下:<maths num="0003"><![CDATA[<math><mrow><msub><mi>&sigma;</mi><mi>PS</mi></msub><mo>=</mo><mrow><mo>(</mo><msub><mi>&sigma;</mi><mrow><mi>PS</mi><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>&sigma;</mi><mrow><mi>PS</mi><mn>2</mn></mrow></msub><mo>,</mo><msub><mi>&sigma;</mi><mrow><mi>PS</mi><mn>3</mn></mrow></msub><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><msubsup><mi>g</mi><mn>1</mn><msub><mi>x</mi><mrow><mi>A</mi><mn>2</mn></mrow></msub></msubsup><msup><mrow><mo>(</mo><msup><mi>u</mi><mo>&prime;</mo></msup><munder><mi>&Pi;</mi><mrow><mi>i</mi><mo>&Element;</mo><mi>W</mi></mrow></munder><msub><mi>u</mi><mi>i</mi></msub><mo>)</mo></mrow><msub><mrow><msub><mi>r</mi><mi>S</mi></msub><mo>+</mo><mi>r</mi></mrow><mrow><mi>A</mi><mn>2</mn></mrow></msub></msup><msup><mrow><mo>(</mo><msup><mi>v</mi><mo>&prime;</mo></msup><munder><mi>&Pi;</mi><mrow><mi>j</mi><mo>&Element;</mo><mi>M</mi></mrow></munder><msub><mi>v</mi><mi>j</mi></msub><mo>)</mo></mrow><msub><mi>r</mi><mi>M</mi></msub></msup><mo>,</mo><msup><mi>g</mi><msub><mi>r</mi><mi>S</mi></msub></msup><mo>,</mo><msup><mi>g</mi><msub><mi>r</mi><mi>M</mi></msub></msup><mo>)</mo></mrow></mrow></math>]]></maths>同时,安全中介SEM将部分代理签名σ<sub>PS</sub>发给代理签名者B;其中,v′和v<sub>1</sub>,v<sub>2</sub>,…,v<sub>n</sub>是由密钥生成中心KGC选取的p阶加法循环群G<sub>1</sub>中的元素,M={i|m<sub>i</sub>=1,i=1,2,…,n}为待签名消息m中元素不为0的下标集合,σ<sub>PS1</sub>,σ<sub>PS2</sub>和σ<sub>PS3</sub>分别为部分代理签名σ<sub>PS</sub>的第一部分、第二部分和第三部分;5c)代理签名者B收到安全中介SEM产生的部分代理签名σ<sub>PS</sub>,首先检查下式是否成立<maths num="0004"><![CDATA[<math><mrow><mi>e</mi><mrow><mo>(</mo><msub><mi>&sigma;</mi><mrow><mi>PS</mi><mn>1</mn></mrow></msub><mo>,</mo><mi>g</mi><mo>)</mo></mrow><msub><mi>R</mi><mi>B</mi></msub><mo>=</mo><mi>e</mi><mrow><mo>(</mo><msub><mi>g</mi><mn>1</mn></msub><mo>,</mo><msub><mi>pk</mi><mi>A</mi></msub><mo>)</mo></mrow><mi>e</mi><mrow><mo>(</mo><msup><mi>u</mi><mo>&prime;</mo></msup><munder><mi>&Pi;</mi><mrow><mi>i</mi><mo>&Element;</mo><mi>W</mi></mrow></munder><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>&sigma;</mi><mrow><mi>PS</mi><mn>2</mn></mrow></msub><msub><mi>R</mi><mi>A</mi></msub><mo>)</mo></mrow><mi>e</mi><mrow><mo>(</mo><msup><mi>v</mi><mo>&prime;</mo></msup><munder><mi>&Pi;</mi><mrow><mi>j</mi><mo>&Element;</mo><mi>M</mi></mrow></munder><msub><mi>v</mi><mi>j</mi></msub><mo>,</mo><msub><mi>&sigma;</mi><mrow><mi>PS</mi><mn>3</mn></mrow></msub><mo>)</mo></mrow></mrow></math>]]></maths>若不成立,则代理签名者B不产生代理签名;若成立,则代理签名者B生成代理签名:首先随机选择两个整数r<sub>B</sub>,r′<sub>M</sub>∈Z<sub>p</sub>,计算:<maths num="0005"><![CDATA[<math><mrow><msub><mi>&sigma;</mi><mn>1</mn></msub><mo>=</mo><mrow><mo>(</mo><msub><mi>&sigma;</mi><mrow><mi>PS</mi><mn>2</mn></mrow></msub><msup><mi>g</mi><msub><mi>r</mi><mi>B</mi></msub></msup><msub><mi>R</mi><mi>A</mi></msub><mo>)</mo></mrow><mo>&CirclePlus;</mo><msup><mrow><mo>(</mo><msub><mi>g</mi><mn>1</mn></msub><mo>,</mo><msub><mi>pk</mi><mi>C</mi></msub><mo>)</mo></mrow><mrow><msub><mi>r</mi><mi>M</mi></msub><mo>+</mo><msubsup><mi>r</mi><mi>M</mi><mo>&prime;</mo></msubsup></mrow></msup></mrow></math>]]></maths><maths num="0006"><![CDATA[<math><mrow><msub><mi>&sigma;</mi><mn>2</mn></msub><mo>=</mo><msub><mi>&sigma;</mi><mrow><mi>PS</mi><mn>3</mn></mrow></msub><msup><mi>g</mi><msubsup><mi>r</mi><mi>M</mi><mo>&prime;</mo></msubsup></msup></mrow></math>]]></maths><maths num="0007"><![CDATA[<math><mrow><msub><mi>&sigma;</mi><mn>3</mn></msub><mo>=</mo><msubsup><mi>g</mi><mn>1</mn><msub><mi>x</mi><mi>B</mi></msub></msubsup><msub><mi>&sigma;</mi><mrow><mi>PS</mi><mn>1</mn></mrow></msub><msub><mi>&sigma;</mi><mrow><mi>B</mi><mn>1</mn></mrow></msub><msup><mrow><mo>(</mo><msup><mi>u</mi><mo>&prime;</mo></msup><munder><mi>&Pi;</mi><mrow><mi>i</mi><mo>&Element;</mo><mi>W</mi></mrow></munder><msub><mi>u</mi><mi>i</mi></msub><mo>)</mo></mrow><msub><mi>r</mi><mi>B</mi></msub></msup><msup><mrow><mo>(</mo><msup><mi>v</mi><mo>&prime;</mo></msup><munder><mi>&Pi;</mi><mrow><mi>j</mi><mo>&Element;</mo><mi>M</mi></mrow></munder><msub><mi>v</mi><mi>j</mi></msub><mo>)</mo></mrow><msubsup><mi>r</mi><mi>M</mi><mo>&prime;</mo></msubsup></msup></mrow></math>]]></maths>其中,x<sub>B</sub>=sk<sub>B</sub>,sk<sub>B</sub>为代理签名者B的私钥,pk<sub>C</sub>为签名验证者C的公钥,σ<sub>1</sub>、σ<sub>2</sub>和σ<sub>3</sub>分别为代理签名σ的第一部分、第二部分和第三部分;代理签名为σ=(σ<sub>1</sub>,σ<sub>2</sub>,σ<sub>3</sub>);代理签名者B向签名验证者C发送σ,ω和m;(6)代理签名验证过程;当签名验证者C得到σ,ω和m之后,验证代理签名的有效性;首先利用代理签名σ计算辅助信息<img file="FDA0000456714930000037.GIF" wi="451" he="69" />然后验证下面等式是否成立:<maths num="0008"><![CDATA[<math><mrow><mi>e</mi><mrow><mo>(</mo><msub><mi>&sigma;</mi><mn>3</mn></msub><mo>,</mo><mi>g</mi><mo>)</mo></mrow><mo>=</mo><mi>e</mi><mrow><mo>(</mo><msub><mi>g</mi><mn>1</mn></msub><mo>,</mo><msub><mi>pk</mi><mi>A</mi></msub><mo>)</mo></mrow><mi>e</mi><mrow><mo>(</mo><msub><mi>g</mi><mn>1</mn></msub><mo>,</mo><msub><mi>pk</mi><mi>B</mi></msub><mo>)</mo></mrow><mi>e</mi><mrow><mo>(</mo><msup><mi>u</mi><mo>&prime;</mo></msup><munder><mi>&Pi;</mi><mrow><mi>i</mi><mo>&Element;</mo><mi>W</mi></mrow></munder><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><mi>&theta;</mi><mo>)</mo></mrow><mi>e</mi><mrow><mo>(</mo><msup><mi>v</mi><mo>&prime;</mo></msup><munder><mi>&Pi;</mi><mrow><mi>j</mi><mo>&Element;</mo><mi>M</mi></mrow></munder><msub><mi>v</mi><mi>j</mi></msub><mo>,</mo><msub><mi>&sigma;</mi><mn>2</mn></msub><mo>)</mo></mrow></mrow></math>]]></maths>其中,x<sub>C</sub>=sk<sub>C</sub>,sk<sub>C</sub>为签名验证者C的私钥,pk<sub>B</sub>为代理签名者B的公钥;若成立,则代理签名是有效的,否则,代理签名无效;(7)签名公开验证过程;代理签名者B或者签名验证者C向仲裁验证代理签名的有效性;首先代理签名者B或者签名验证者C计算辅助信息<img file="FDA0000456714930000041.GIF" wi="484" he="84" />然后代理签名者B与签名验证者C向仲裁发送代理签名σ和θ;仲裁利用代理签名σ和辅助信息θ,通过下式验证代理签名的有效性:<maths num="0009"><![CDATA[<math><mrow><mi>e</mi><mrow><mo>(</mo><msub><mi>&sigma;</mi><mn>3</mn></msub><mo>,</mo><mi>g</mi><mo>)</mo></mrow><mo>=</mo><mi>e</mi><mrow><mo>(</mo><msub><mi>g</mi><mn>1</mn></msub><mo>,</mo><msub><mi>pk</mi><mi>A</mi></msub><mo>)</mo></mrow><mi>e</mi><mrow><mo>(</mo><msub><mi>g</mi><mn>1</mn></msub><mo>,</mo><msub><mi>pk</mi><mi>B</mi></msub><mo>)</mo></mrow><mi>e</mi><mrow><mo>(</mo><msup><mi>u</mi><mo>&prime;</mo></msup><munder><mi>&Pi;</mi><mrow><mi>i</mi><mo>&Element;</mo><mi>W</mi></mrow></munder><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><mi>&theta;</mi><mo>)</mo></mrow><mi>e</mi><mrow><mo>(</mo><msup><mi>v</mi><mo>&prime;</mo></msup><munder><mi>&Pi;</mi><mrow><mi>j</mi><mo>&Element;</mo><mi>M</mi></mrow></munder><msub><mi>v</mi><mi>j</mi></msub><mo>,</mo><msub><mi>&sigma;</mi><mn>2</mn></msub><mo>)</mo></mrow></mrow></math>]]></maths>若成立,则说明签名验证者C和代理签名者B成功地向仲裁证明了代理签名的有效性;若不成立,说明签名验证者C与代理签名者B不能向仲裁证明代理签名的有效性,代理签名是无效的;(8)授权撤销过程;当原始签名者A需要撤销对代理签名者B的授权时,原始签名者A向安全中介SEM发送ω和R<sub>A</sub>,并要求安全中介SEM将ω和R<sub>A</sub>放入公开撤销列表。
地址 710071 陕西省西安市太白南路2号
您可能感兴趣的专利