发明名称 一种移动自组网门限密钥分发方法
摘要 本发明涉及一种移动自组网门限密钥分发方法,其特征在于:提出一种适合移动自组网安全要求的基于身份的多重签密算法,再将这种算法用于移动自组网密钥管理,给出一种高效、安全的移动自组网络门限密钥分发方法。本发明中多重签密技术的使用,增强了移动自组网门限密钥管理的可靠性,改进了现有技术中要求服务请求者有多个一跳步邻居服务节点的问题,实现了由服务节点联合进行密钥分发,更好地保障了移动自组网门限密钥分发的安全性和高效性。
申请公布号 CN102223629B 申请公布日期 2013.11.13
申请号 CN200910219160.4 申请日期 2009.11.26
申请人 中国人民解放军空军工程大学 发明人 张串绒
分类号 H04W12/04(2009.01)I;H04W84/18(2009.01)I;H04L9/32(2006.01)I;H04L9/30(2006.01)I 主分类号 H04W12/04(2009.01)I
代理机构 西北工业大学专利中心 61204 代理人 王鲜凯
主权项 1.一种移动自组网门限密钥分发方法,其特征在于步骤如下:步骤1:选择一个离线可信第三方作为PKG,由PKG选择参数,进行系统初始化,具体步骤如下:步骤a:PKG选择椭圆曲线上的两个q阶的循环群(G<sub>1</sub>,+)和(G<sub>2</sub>,·),G<sub>1</sub>的生成元P,G<sub>1</sub>和G<sub>2</sub>上的双线性变换e:G<sub>1</sub>×G<sub>1</sub>→G<sub>2</sub>,随机选取系统私钥<img file="FSB00001112062000011.GIF" wi="150" he="61" />并计算相应公钥P<sub>pub</sub>=σP∈G<sub>1</sub>,其中<img file="FSB00001112062000012.GIF" wi="47" he="62" />是椭圆曲线上的有限域;步骤b:PKG按门限密码体制将系统私钥σ分成n份σ<sub>i</sub>,i=1,2,…,n,n为门限密码体制中的参数;步骤c:PKG采用对称密码算法(E,D),采用三个散列函数H<sub>0</sub>:{0,1}<sup>*</sup>→G<sub>1</sub>,H<sub>1</sub>:G<sub>2</sub>→{0,1}<sup>b</sup>和H<sub>2</sub>:{0,1}<sup>b</sup>×G<sub>2</sub>→Z<sub>q</sub><sup>*</sup>其中b是明密文的比特长度,H<sub>0</sub>为任意长的0、1序列到G<sub>1</sub>上的变换,H<sub>1</sub>为G<sub>2</sub>到长度为b的0、1序列上的变换,H<sub>2</sub>由长度为b的0、1序列与G<sub>2</sub>构成的乘积空间到有限域<img file="FSB00001112062000013.GIF" wi="48" he="62" />上的变换;步骤d:PKG选择时间间隔l,将网络使用期划分为l长的时段;步骤2:每个网络用户到离线PKG处注册,提供自己的身份信息;PKG验证用户身份,为用户生成公私钥对,并将公私钥对及系统参数安全发给用户;步骤3:将系统私钥的n个份额分发给随机选择的n个用户作为PKG节点;步骤4:在l长的时段中的第j时段结束之前,网络中的私钥更新请求节点A在第j时段的私钥采用标准算法DSS进行签名,并广播包括此签名信息和它的公钥的请求信息R;步骤5:节点A的某个一跳步邻居PKG节点I<sub>1</sub>在收到请求信息后,采用签名标准算法DSS验证请求信息R和更新请求节点A的身份是否相符;如不相符,拒绝该次服务请求;步骤6:如相符,节点I<sub>1</sub>以持有的系统私钥份额σ<sub>1</sub>为更新请求节点A按门限密码体制计算出其在第j+1时段私钥的一个分量m<sub>1</sub>,PKG节点I<sub>1</sub>以在第j时段的私钥d<sub>1j</sub>和更新请求节点A在第j时段的公钥Q<sub>aj</sub>=H<sub>0</sub>(ID<sub>a</sub>||j)对m<sub>1</sub>进行签密,具体步骤如下:步骤(1):在有限域Z<sub>q</sub><sup>*</sup>中任选一个x<sub>1</sub>,计算<img file="FSB00001112062000021.GIF" wi="314" he="57" /><img file="FSB00001112062000022.GIF" wi="432" he="57" /><img file="FSB00001112062000023.GIF" wi="328" he="73" />r<sub>1</sub>=H<sub>2</sub>(c<sub>1</sub>,R<sub>1</sub>),s<sub>1</sub>=x<sub>1</sub>P<sub>pub</sub>-r<sub>1</sub>d<sub>1j</sub>,其中:R<sub>1</sub>为PKG节点I<sub>1</sub>的签名验证密钥、K<sub>1</sub>为PKG节点I<sub>1</sub>的加密密钥、c<sub>1</sub>为PKG节点I<sub>1</sub>的加密密文、r<sub>1</sub>为PKG节点I<sub>1</sub>的验证值,s<sub>1</sub>为PKG节点I<sub>1</sub>的签名值;步骤(2):PKG节点I<sub>1</sub>广播签密信息(R,c<sub>1</sub>,r<sub>1</sub>,s<sub>1</sub>);步骤(3):收到(R,c<sub>1</sub>,r<sub>1</sub>,s<sub>1</sub>)的PKG节点I<sub>1</sub>信息的一跳步PKG节点I<sub>2</sub>计算<img file="FSB00001112062000024.GIF" wi="461" he="73" />验证r<sub>1</sub>=H<sub>2</sub>(c<sub>1</sub>,R<sub>1</sub>′)是否成立,若成立继续下述步骤;步骤(4):在有限域Z<sub>q</sub><sup>*</sup>中任选一个x<sub>2</sub>,计算<img file="FSB00001112062000025.GIF" wi="323" he="63" /><img file="FSB00001112062000026.GIF" wi="439" he="63" /><img file="FSB00001112062000027.GIF" wi="571" he="73" />r<sub>2</sub>=H<sub>2</sub>(c<sub>2</sub>,R<sub>2</sub>),s<sub>2</sub>=x<sub>2</sub>P<sub>pub</sub>-r<sub>2</sub>d<sub>2j</sub>,其中:R<sub>2</sub>为PKG节点I<sub>2</sub>的签名验证密钥、K<sub>2</sub>为PKG节点I<sub>2</sub>的加密密钥、c<sub>2</sub>为PKG节点I<sub>2</sub>的加密密文、r<sub>2</sub>为PKG节点I<sub>2</sub>的验证值,s<sub>2</sub>为PKG节点I<sub>2</sub>的签名值,m<sub>2</sub>为I<sub>2</sub>以持有的系统私钥份额σ<sub>2</sub>为更新请求节点A生成的第j+1时段私钥的分量;在第j时间段,节点A的身份为ID<sub>a</sub>||j步骤(5):PKG节点I<sub>2</sub>广播签密信息(R,c<sub>2</sub>,r<sub>2</sub>,s<sub>2</sub>);步骤(6):收到PKG节点I<sub>i-1</sub>信息(R,c<sub>i-1</sub>,r<sub>i-1</sub>,S<sub>i-1</sub>)的I<sub>i-1</sub>的一跳步PKG节点I<sub>i</sub>计算<img file="FSB00001112062000028.GIF" wi="565" he="60" />验证r<sub>i-1</sub>=H<sub>2</sub>(c<sub>i-1</sub>,R′<sub>i-1</sub>)成立进行下述步骤;步骤(7):在有限域Z<sub>q</sub><sup>*</sup>中任选一个x<sub>i</sub>,计算<img file="FSB00001112062000029.GIF" wi="321" he="63" /><img file="FSB000011120620000210.GIF" wi="426" he="69" /><img file="FSB000011120620000211.GIF" wi="649" he="74" />r<sub>i</sub>=H<sub>i</sub>(c<sub>i</sub>,R<sub>i</sub>),s<sub>i</sub>=x<sub>i</sub>P<sub>pub</sub>-r<sub>i</sub>d<sub>ij</sub>其中:R<sub>i</sub>为PKG节点I<sub>i</sub>的签名验证密钥、K<sub>i</sub>为PKG节点I<sub>i</sub>的加密密钥、c<sub>i</sub>为PKG节点I<sub>i</sub>的加密密文、r<sub>i</sub>为PKG节点I<sub>i</sub>的验证值,s<sub>i</sub>为PKG节点I<sub>i</sub>的签名值,m<sub>i</sub>为I<sub>i</sub>以持有的系统私钥份额σ<sub>i</sub>为更新请求节点A生成的第j+1时段私钥的分量;步骤(8):PKG节点I<sub>i</sub>广播签密信息(R,s<sub>i</sub>,r<sub>i</sub>,c<sub>i</sub>),重复步骤(7)直到最后一个签密者I<sub>t</sub>,t为门限密码体制中n的门限值,取值为n-1的三分之一;步骤7:PKG节点I<sub>t</sub>将其生成的签密信息(s<sub>t</sub>,r<sub>t</sub>,c<sub>t</sub>)通过I<sub>t-1</sub>,…,I<sub>2</sub>,I<sub>1</sub>依次转发传送给更新请求节点A;步骤8:更新请求节点A以自己的私钥d<sub>aj</sub>、I<sub>t</sub>的公钥Q<sub>tj</sub>和(s<sub>t</sub>,r<sub>t</sub>,c<sub>t</sub>)计算出与I<sub>t</sub>的会话密钥<maths num="0001"><![CDATA[<math><mrow><msub><mi>K</mi><mi>t</mi></msub><mo>=</mo><msub><mi>H</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>e</mi><mrow><mo>(</mo><msub><mi>s</mi><mi>t</mi></msub><mo>,</mo><msub><mi>Q</mi><mi>aj</mi></msub><mo>)</mo></mrow><mi>e</mi><msup><mrow><mo>(</mo><msub><mi>Q</mi><mi>tj</mi></msub><mo>,</mo><msub><mi>d</mi><mi>aj</mi></msub><mo>)</mo></mrow><msub><mi>r</mi><mi>t</mi></msub></msup><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>然后通过<maths num="0002"><![CDATA[<math><mrow><msub><mi>m</mi><mi>t</mi></msub><mo>|</mo><mo>|</mo><msub><mi>Q</mi><mi>tj</mi></msub><mo>|</mo><mo>|</mo><mo>|</mo><mo>|</mo><msub><mi>Q</mi><mrow><mi>t</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow></msub><mo>|</mo><mo>|</mo><msub><mi>c</mi><mrow><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>|</mo><mo>|</mo><msub><mi>r</mi><mrow><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>|</mo><mo>|</mo><msub><mi>s</mi><mrow><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mi>D</mi><msub><mi>K</mi><mi>t</mi></msub></msub><mrow><mo>(</mo><msub><mi>c</mi><mi>t</mi></msub><mo>)</mo></mrow></mrow></math>]]></maths>解密,得出消息m<sub>t</sub>,Q<sub>tj</sub>,Q<sub>t-1,j</sub>,c<sub>t-1</sub>,r<sub>t-1</sub>,s<sub>t-1</sub>;继续以私钥d<sub>aj</sub>、I<sub>i</sub>的公钥Q<sub>ij</sub>和(s<sub>i-1</sub>,r<sub>i-1</sub>,c<sub>i-1</sub>)计算出与I<sub>i</sub>的会话密钥:<img file="FSB00001112062000033.GIF" wi="605" he="63" />解密出消息m<sub>i</sub>,Q<sub>ij</sub>,Q<sub>i-1,j</sub>,c<sub>i-1</sub>,r<sub>i-1</sub>,s<sub>i-1</sub>,其中1≤i<t;直至由K<sub>1</sub>解密出m<sub>1</sub>,Q<sub>1j</sub>;步骤9:更新请求节点A将得到的PKG节点I<sub>1</sub>、I<sub>2</sub>、...,I<sub>t</sub>为自己生成的第j时段私钥的t个分量m<sub>i</sub>,i=1,2,…,t,得到自己在第j+1时段私钥:d=m<sub>1</sub>+m<sub>2</sub>+…+m<sub>t</sub>。
地址 710051 陕西省西安市灞桥区长乐东路甲字1号