[发明专利]一种基于移动Ad Hoc网络的无证书密钥协商方法有效
申请号: | 201310718403.5 | 申请日: | 2013-12-23 |
公开(公告)号: | CN103702326A | 公开(公告)日: | 2014-04-02 |
发明(设计)人: | 郑军;徐三春;郭先臣;王殿欣 | 申请(专利权)人: | 北京理工大学 |
主分类号: | H04W12/04 | 分类号: | H04W12/04;H04W84/18 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种基于移动Ad Hoc网络的无证书密钥协商方法,包括以下步骤:一、系统网络的初始化;二、构建网络主私钥:每个节点选取t-1次多项式交换必要信息,任意t或者多于t个节点相互合作得到网络主私钥,同时获得网络公钥;三、利用网络中的主私钥为节点生成密钥对;四、利用生成的密钥对来进行节点间的秘密通信,实现加解密过程。本发明在实现密钥协商的同时,不存在证书校验和密钥托管问题,同时能够检测出危险节点,而且推荐的加密方案能够保证安全性的前提下具有较少的加密项,减少了计算量和通信量,因此具有较好的实用性和安全性。 | ||
搜索关键词: | 一种 基于 移动 ad hoc 网络 证书 密钥 协商 方法 | ||
【主权项】:
1.一种基于移动Ad Hoc网络的无证书密钥协商方法,包括以下步骤:一.进行系统网络的初始化:由一个可靠第三方TTP产生网络中必要的参数并通知给网络中的所有节点,网络初始化包括5个步骤:1)TTP选择一个循环加法群G1和一个循环乘法群G2,他们拥有相同的素数阶q,通过G1和G2,构建一个双线性映射:
G1×G1→G2;2)TTP任意选择群G1的一个生成元G;3)TTP选择门限密钥共享方案中的阈值t,t为一个小于网络中总节点数的正整数;4)TTP为网络中的每个节点初始化一个唯一的数值作为身份标识,将节点Ui的标识记做IDi;5)TTP将参数(G1,G2,G,
t,IDi)通知给网络中的所有节点;二.构建网络主私钥假设初始化时网络中有n个节点,构建主私钥的过程如下所示:1)每一个节点Ui随机选取一个t-1次多项式:fi(x)=ai0+ai1x+…+ai,t-1xt-1;节点Ui秘密保存多项式系数aik,其中k=(0,1,…,t-1),该节点计算aikG,并将计算结果通知网络中所有节点;2)对网络中的其他节点Uj,节点Ui计算ssij=fi(IDj),将计算结果作为节点Uj的密钥子份额并发送给节点Uj;当节点Uj收到ssij时,它需要验证这个消息是否确实由节点Ui发送并未被修改,这一过程通过如下的等式进行验证:e ^ ( ss ij G , ID j G ) = e ^ ( Σ k = 0 t - 1 a ik ID j k + 1 G , G ) ]]>若上述等式成立,则表明ssij=fi(IDj)是正确的,节点Uj可以接收该结果,否则则拒绝接收;当接收到所有其他节点的密钥子份额之后,节点Uj将收到的结果进行求和,获得其有关网络主私钥的份额,如下式所示:ss j = Σ i = 1 n ss ij = Σ i = 1 n f i ( ID j ) ]]>每个节点Uj秘密的拥有该份额ssj,并且利用群G1的生成元G生成pj=ssjG,在本方案中我们称之为节点的校验公钥;每个节点公布自己的校验公钥,该校验公钥用来找出网络中的危险节点;3)当所有节点都知道他们自己所拥有的网络主私钥的份额之后,t或者多于t个节点利用拉格朗日插值构建出整个网络的t-1次多项式,如下所示:f ( x ) = Σ i = 1 n f i ( x ) = ( Σ i = 1 t ss i L i ) ( mod q ) ]]>其中,L i = Π j = 1 , j ≠ i t x - ID j ID i - ID j ]]>利用上面等式,计算出主私钥S如下所示:S = f ( 0 ) = Σ i = 1 t ss i ( Π j = 1 , j ≠ i t - ID j ID i - ID j ) ( mod q ) ]]>4)由于所有的节点在步骤1)中都公布了aikG,因此很容易获得网络中的公钥P如下所示:P = Σ i = 1 n a i 0 G mod q ]]>通过以上4个步骤得到了网络中的主私钥和公钥。三.利用网络中的主私钥S为节点生成密钥对该步骤利用KGC生成节点的部分私钥,以此解决ID-PKC中的密钥托管问题,其过程如下所示:1)节点Ui秘密选取一个随机数
并向其邻居节点发送生成密钥对请求,若没有t个邻居节点,那么移动Ui;所有接收到该生成密钥对服务请求的节点开始计算其对节点Ui所产生的部分私钥:PS ki = ss k ( Π j = 1 , j ≠ k t - ID j ID k - ID j ) H ( ID i ) ]]>其中,H是一个hash函数,它将数值映射到群G1中的非零元素;当发出请求的节点接收到所有部分私钥PSki,该节点Ui将他们与秘密数xi整合在一起:SK i = x i SH ( ID i ) = x i Σ k = 1 t PS ki = x i Σ k = 1 t ss k ( Π j = 1 , j ≠ k t - ID j ID k - ID j ) H ( ID i ) ]]>然后节点Ui通过以下等式验证私钥SKi是否有效:e ^ ( SK i , G ) = e ^ ( x i H ( ID i ) , P ) ]]>若等式成立,节点Ui接收SKi作为其私钥,如果不成立,那么肯定存在一个或多个危险节点,节点Ui通过以下方程来找出其中的危险节点:e ^ ( p k , Π j = 1 , j ≠ k t - ID j ID k - ID j H ( ID i ) ) = e ^ ( G , PS ki ) ]]>如果上式成立,则表明Uk是可信节点,否则表明Uk是危险节点,需要通知网络中所有节点并将其剔除出整个网络;2)产生用户Ui的公钥:PKi=(xiP,xiG)通过以上两个步骤为节点Ui生成了公私钥对。四.执行加解密操作假设节点A需要秘密向节点B发送消息M,节点A和B的身份标识为IDA和IDB,加密过程如下:1)验证节点B的公钥是否正确节点A得到节点B的公钥PKB=(xBP,xBG)后利用下列等式验证B的公钥正确性:e ^ ( x B P , G ) = e ^ ( P , x B G ) ]]>若以上等式成立,则进行下一步;若不成立,则不执行加密操作并输出信息提示B的公钥不可靠。2)设置r=H1(M),其中H1是一个hash函数,它将一个字符串映射到一个小于q的正整数;3)计算密文如下所示:
其中H2是一个hash函数,它将群G2中的元素映射成一个字符串,然后节点A发送密文C至B;解密过程:当节点B接收到A发送过来的密文C之后,B开始用自己的私钥SKB=xBSH(IDB)进行解密,解密过程如下:1)计算M , = Y ⊕ H 2 ( e ^ ( x B SH ( ID B ) , rG ) ) = Y ⊕ H 2 ( e ^ ( SK B , X ) ) ]]>2)计算r'=H1(M'),然后验证等式r'G=X是否成立,如果不成立,该系统输出错误信息并拒绝接收该密文,若成立,节点B将解密得到的M’当做A发送的消息,这样就能实现A和B之间的秘密通信。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310718403.5/,转载请声明来源钻瓜专利网。
- 上一篇:一种家用冲水马桶进水自闭阀门
- 下一篇:礼品包装盒