基于身份的安全签名方法

文档序号:7866627阅读:199来源:国知局
专利名称:基于身份的安全签名方法
技术领域
本发明涉及计算机通讯机电子商务应用领域,尤其涉及一种在无线传感器网络中基于身份的签名方法。
背景技术
使用数据安全与认证技术,对物联网传输信息进行安全管理服务,可有效增强安全机制。而联网前端数据采集及传输节点的计算、存储和通信能力都十分有限,通常被认为不适合使用公钥密码学技术。近年来的许多研究成果表明,一些经过优化的公钥方法是可以为无线传感器网络提供更加有力的安全保障。无线传感器网络是由大量具有无线通讯、 传感、数据处理能力的传感器节点以自组织方式组成的无线网络,其目的是整个网络节点协作地感知、采集和处理网络覆盖的地理区域中感知对象的信息,并发布给客户端。在无线传感器网络中节点是安全通行方法,采用基于椭圆曲线(ECC)的分散信任安全体系,其比较适合应用于资源受限的无线传感器网络中。但是通常无线传感器网络中通常出现电源功率有限、计算能力不足、存储空间狭小、网络拓扑动态变化、带宽不足等一些情况的约束,使得目前通行网络中使用数据安全与认证技术通常很难适合于无线传感器网络中的使用。

发明内容
综上所述,本发明有必要提供一种适合与无线传感器网中使用的基于身份安全认证的方法。一种基于身份的安全签名方法,包括如下步骤离线密钥分配,生成系统参数和主密钥运行系统中的节点,生成参数为k,计算椭圆曲线E(Fp) ,E(Fp)表示定义在Fp上的一个椭圆曲线,Fp表示p个元素的有限域,(Fp 素域,P表示素数)。计算输出的是{q, G1, G2, e, g, g1; h, α },其中q为一个质数,输入k生成大素数Q,建立两个阶为Q的群分别为加法循环群G1和乘法循环群G2,使得CDH问题是困难的问题,建立一个双线性映射O = G1XG1 — G2,任意选择一个生成元素P e G1 ;通过系统中的节点共举产生系统的主密钥aeZ〗,系统公开参数g,h e G1, gl=ga e G2以及主密钥对
(a,Ppub);在线签名通过系统中的节点共举产生系统的主密钥,假设存在节点i以及需要与其相互认证的一个邻居节点j,节点i向节点j发出一个签名请求,节点i使用自己的私钥对事先约定的认证数据按照签名方案中的签名算法进行签名,节点j用节点i的身份信息作为公钥,按照签名方案中的签名验证算法,对接收到的信息进行验证,验证合格则确定节点i与节点j的身份,否则拒绝签名;设置密钥使用期限来实现通信组密钥的更新将系统生存期按长度t划分为若干个时间段,定义节点i在时间段t开始时拥有的系统秘密份额为^,经过更新后拥有的系统秘密份额为欠《进一步地,所述在线签名的具体步骤为
初始化节点假设存在节点i以及需要与其相互认证的一个邻居节点j,则初始化阶段中可信第三方向节点i内部下载有关节点j的认证信息三元组〈IDj,Qj, H(Pj (Ci))),向节点j内部下载有关节点i的认证信息三元组〈ID” Qi, H(Pi(Cj))S ;同时将公钥签名算法S、单向哈希函数H、节点的身份标识及其挑战下载到节点i当中;节点i广播认证请求节点i首先在网络中广播[IDi Ci Ni]信息为认证请求分组报文来完成邻居节点j发现;其中IDi字段表示节点i的身份标识A字段表示节点i发出的挑战;队字段表示节点i选取的一次性随机数;节点j认证对节点i请求当邻居节点j接收到节点i的认证请求分组后,判断节点i的信息中的IDi是否合法,若否则放弃认证,若是则节点j发送认证响应分组为节点i ;节点i对节点j进行认证当节点i接收到节点j的响应分组后,首先根据IDj查 找自身存储的三元组,如果不存在IDj的信息则认为IDj非法,放弃认证过程;如果存在IDj的信息,则对该节点的身份进行认证;节点向i发送分组给节点j :当节点i确认节点j身份合法后,在提取节点j认证响应中的信息后,发送Ua .V(K!, M ')」作为认证分组给节点j ;其中IDi字段表示节点i的身份标识;S(Ki,M')字段表示节点i利用自身私钥Ki对消息M'做出的签名,其中=这里Pi(Cj)为节点i
I5
在(cp为挑战时其PUF的响应,其中H(Pi(Cp) ^ Pi (Cj)做单向哈希运算得到的值;完成认证当节点j接收到节点i的认证分组后,采取与节点i对节点j进行认证步骤相同的方法对i的认证分组进行认证,如果认证不成功,则说明i是非法的,终止认证过程;如果认证成功,则说明i是合法的,整个认证过程结束。进一步地,其中初始化阶段具体步骤如下可信第三方为网络中的每个节点随机生成一个挑战;可信第三方选择一个单向哈希函数H和一种公钥签名算法S,并为网络中每个节点选根据权利要求I所述的基于身份的安全签名方法,择基于该公钥算法的一个公私钥对(Qi, Ki),其中公钥Qi公开,私钥Ki只有节点i自己知道;可信第三方将每个节点的挑战输入到所有其他节点当中,并利用哈希函数H对获得的其他节点的PUF响应进行哈希操作;可信第三方将以下数据下载到每个节点当中该节点的身份标识,该节点的挑战,该节点的公私钥对,哈希函数H及公钥签名算法的相关实现程序,同时可信第三方为每个节点下载存储有其他节点相关信息的三元组表。进一步地,所述节点j认证对节点i请求的具体步骤为节点j认证对节点i请求当邻居节点j接收到节点i的认证请求分组后,节点j根据IDi查找自身是否存储有节点i的三元组信息,如果不存节点i的信息则认为IDi非法,放弃认证过程,如果存在IDi的信息,则发C1 S(KyM) ,V, j为认证响应分组给节点i ;其中巩字段表示节点j的身份标识&字段表示节点j发出的挑战$字段表示节点j选取的一次性随机数;s (Kj, Μ)字段表示节点j利用自身私钥I对消息M做出的签名,其中M = HiID3 Ci||/f(Pi(C1))IIiV,- ΦNj)这里Pj (Ci)为节点j在Ci为挑战时其PUF
I
的响应;Η(Ρ」(Ci))是Pj (Ci)做单向哈希运算得到的值;P (C)表示PUF在挑战C激励下的输出,11表示连接符。
进一步地,所述节点i对节点j进行认证步骤,还包括如果存在IDj的信息,根据接收到的认证响应和存储在自身三元组中的信息重组消息M,并利用节点j的公钥Qj对签名S(KyM)进行验证,如果验证结果正确则说明节点j是合法的,否则节点i终止认证。进一步地,所述离线密钥分配,生成系统参数和主密钥步骤还包括节点共举产生系统的主密钥a e Z〗及主密钥对(α,Ppub)身份标识为IDi的节点i,随机选择a i作为主密钥α的秘密份额和系数e 1,2, , k_l),以建立(n,k)门限多项Sfi(X)fj (χ) = a ^a1 ^a1 2χ2+'·'mo dp 节点i计算V。= α J及Vi= a L」Ρ (j e 1,2, , k_l)传送给节点j,节点j收到fi (x)、V0和Vi后,验证如果该公式成立则验证通过,消息为节点i所发,否则断定消息并非节点i发送,节点j收到来自网络中的η个节点所发送的门限多项式,计算A(j),共举得出网络的主密钥α f (j) +f 2 (j) + **· +fn (j) = α i+a1; !X+a1; 2x2+··· +a1; k_1xk_1+ a 2+a2; !Χ+β2; 2χ2+···+a2’k-lxH + ... + Q n+an, J+Bni2X2+…=( α 1,1+ a 2,i+*** + a η, ι) X+ ( α ι,2+α 2,2+'"' + α η,2) X2+*** + ( α i,k-i+ α 2,k-i+... + α η’Η)xk_1= a +Sil^a2J2+''' +B^1Xk-1 mod p=f (χ)计算Ppub = a P,由此,得出系统的密钥对(a,Ppub)。进一步地,所述的设置密钥使用期限来实现更换通信组密钥的更新,其更新步骤如下将系统生存期按长度t划分为若干个时间段,在每一个时间段,节点i建立(n,k,)门限多项式f j (x) =biax+bij2x2+··· +bijk/ -!X0w _1)节点i计算f' JjMj = l,2,...,k’_l)作为其他节点的密钥份额的更新量,并广播 bi,jP(j = 1,2,···,k,-I);节点i生成签名σ,并把密钥份额更新量和签名(f' i(j),σ )加密传送给相应的节点;节点j验证节点i的身份签名,如果e (P, P) =e (H2 (IDj) P+t」P,σ,则节点j接受节点i的签名,否则拒绝其签名,节点j得到来自节点i的密钥份额更新后,计算£尸/如;^
m=\
与P i(j)P是否相等,确认P i(j)的有效性;节点j收到系统中η个节点发送的密钥份额更新量后,计算出节点j新的秘密份
额atj = α) + /, )^
i=l进一步地,所述节点i生成签名σ的具体步骤为请求加密密钥的节点i随机选择作为^ eZ丨私钥,并计算Qi=I^P作为相应的公钥发送给节点j ;节点j接收到节点i的请求后,验证节点i的身份,节点j是合法的节点,该节点拥有加密密钥对^!^^!(,,随机选择信息叫发送^化,?!^)给节点i,等待节点i的签名;节点i收到签名要求后,随机选择作为私钥,其对应的公钥为UetiH2 (IDi),计算身份签名σ=Η2 (IDfti)-1P,把身份签名(Ui, σ)传送给节点j。本发明中所用到的名称及符号说明
权利要求
1.一种基于身份的安全签名方法,其特征在于,包括如下步骤 离线密钥分配,生成系统参数和主密钥 运行系统中的节点,生成参数为k,计算椭圆曲线E(Fp),其中P为大于3的素数或2m,计算输出的是{q,G1, G2, e, g, g1; h, α },其中q为一个质数, 输入k生成大素数Q,建立两个阶为Q的群分别为加法循环群G1和乘法循环群G2,建立一个双线性映射O = G1XG1 — G2,任意选择一个生成元素P e G1 ; 通过系统中的节点共举产生系统的主密钥oreZ〗,系统公开参数g,h e G1, gl=ga e G2以及主密钥对(a,Ppub); 在线签名通过系统中的节点共举产生系统的主密钥,假设存在节点i以及需要与其相互认证的一个邻居节点j,节点i向节点j发出一个签名请求,节点i使用自己的私钥对事先约定的认证数据按照签名方案中的签名算法进行签名,节点j用节点i的身份信息作为公钥,按照签名方案中的签名验证算法,对接收到的信息进行验证,验证合格则确定节点i与节点j的身份,否则拒绝签名; 设置密钥使用期限来实现通信组密钥的更新 将系统生存期按长度t划分为若干个时间段,定义节点i在时间段t开始时拥有的系统秘密份额为圮,t’表示更新前的系统生存期,经过更新后拥有的系统秘密份额为V
2.根据权利要求I所述基于身份的安全签名方法,其特征在于所述在线签名的具体步骤为 初始化节点假设存在节点i以及需要与其相互认证的一个邻居节点j,则初始化阶段中可信第三方向节点i内部下载有关节点j的认证信息三元组〈ID」,Qj, H(Pj (Ci))),向节点j内部下载有关节点i的认证信息三元组〈ID” Qi, H(Pi(Cj))X同时将公钥签名算法S、单向哈希函数H、节点的身份标识及其挑战下载到节点i当中; 节点i广播认证请求节点i首先在网络中广播[IDi Ci Ni]信息为认证请求分组报文来完成邻居节点j发现,其中,IDi字段表示节点i的身份标识、Ci字段表示节点i发出的挑战、Ni字段表示节点i选取的一次性随机数; 节点j认证接收节点i的请求当邻居节点j接收到节点i的认证请求分组后,判断节点i的信息中的IDi是否合法,若否,则放弃认证,若是,则节点j发送认证响应分组给节点i ; 节点i对节点j进行认证当节点i接收到节点j的响应分组后,首先根据IDi查找自身存储的三元组,如果不存在IDj的信息则认为IDj非法,放弃认证过程;如果存在IDj的信息,则对该节点的身份进行认证; 节点i发送分组给节点j :当节点i确认节点j身份合法后,在提取节点j认证响应中的信息后,发送AT)」作为认证分组给节点j ; 其中IDi字段表示节点i的身份标识;S(Ki,W )字段表示节点i利用自身私钥Ki对消息M'做出的签名,其中M = ^(/a||q||^(^(C/))|K Nj)这里Pi (Cj)为节点i在(Cj)为挑战时其PUF的响应,其中IKPi(Cp) ^ Pi (Cj)做单向哈希运算得到的值; 完成认证当节点j接收到节点i的认证分组后,采取与节点i对节点j进行认证步骤相同的方法对i的认证分组进行认证,如果认证不成功,则说明节点i是非法的,终止认证过程;如果认证成功,则说明节点i是合法的,整个认证过程结束。
3.根据权利要求2所述的基于身份的安全签名方法,其特征在于其中初始化节点具体步骤如下 可信第三方为网络中的每个节点随机生成一个挑战; 可信第三方选择一个单向哈希函数H和一种公钥签名算法S,并为网络中每个节点选择相应的安全签名方法, 则基于该公钥算法的一个公私钥对(QiAi),其中公钥Qi公开,私钥Ki只有节点i自己知道; 可信第三方将每个节点的挑战输入到所有其他节点当中,并利用哈希函数H对获得的其他节点的PUF响应进行哈希操作; 可信第三方将以下数据下载到每个节点当中该节点的身份标识、该节点的挑战、该节点的公私钥对、哈希函数H及公钥签名算法的相关实现程序,同时可信第三方为每个节点下载存储有其他节点相关信息的三元组表。
4.根据权利要求2所述的基于身份的安全签名方法,其特征在于 所述节点j认证对节点i请求的具体步骤为 当邻居节点j接收到节点i的认证请求分组后,节点j根据IDi查找自身是否存储有节点i的三元组信息,如果不存在节点i的信息则认为IDi非法,放弃认证过程,如果存在IDi的信息,则发这[//) Cj S^^M) 为认证响应分组给节点i, 其中字段表示节点j的身份标识A字段表示节点j发出的挑战;%字段表示节点j选取的一次性随机数;S (Kj, M)字段表示节点j利用自身私钥&对消息M做出的签名,其中Af =好(IDj C^H(Pr(C1))IIiV1 N1)这里Pj (Ci)为节点j在Ci为挑战时其PUF的响应;JKPj(Ci))是Pj(Ci)做单向哈希运算得到的值;P(C)表示PUF在挑战C激励下的输出,I表示连接符。
5.根据权利要求2所述的基于身份的安全签名方法,其特征在于 所述节点i对节点j进行认证步骤,还包括如果存在IDj的信息,根据接收到的认证响应和存储在自身三元组中的信息重组消息M,并利用节点j的公钥Qj对签名S(Kj,M)进行验证,如果验证结果正确,则说明节点j是合法的,否则节点i终止认证。
6.根据权利要求I所述的基于身份的安全签名方法,其特征在于所述离线密钥分配,生成系统参数和主密钥步骤还包括 节点共举产生系统的主密钥a G Z;S主密钥对(a,Ppub)身份标识为IDi的节点i,随机选择a i作为主密钥a的秘密份额和系数ai,j(j G 1,2, , k-1),以建立(n,k)门限多项式fi (X) f j (x) = a j+a^jx+ai^x2+*** +ai; ^1Xfk :) mo dp 节点i计算Vtl= a J及Vi= a i.少(j G 1,2, . . . , k_l)传送给节点j,节点j收到(x)、V0和Vi后,验证如果该公式成立则验证通过,消息为节点i所发,否则断定消息并非节点i发送,节点j收到来自网络中的n个节点所发送的门限多项式,计算fj(j),共举得出网络的主密钥a fi (j) +f2 (J) +* +fn(j) = a !+ai ix+ai^x2+--- +B1^1Xk-1+ a 2+a21x+a2 2x2+-' +B2 ^1Xk-1+***+ Q n+an’J+an’J2+… =(Q l,l+a2,l + *** + an,l)X+(a 1,2+Ct 2,2+*** + Ct n,2) X2 + ...+ ( Ct 1; ^1+a 2; ^1 + * * * + a n; ^1) Xk 1=a +SLl^a2X+' +a^x^1 mod p=f (x) 计算Ppub = aP,由此,得出系统的密钥对(a,Ppub)。
7.根据权利要求I所述的基于身份的安全签名方法,其特征在于所述设置密钥使用期限来实现通信组密钥的更新,其更新步骤具体如下 将系统生存期按长度t划分为若干个时间段,在每一个时间段,节点i建立(n,k')门限多项式f' i(x) =bi;1x+bij2x2+—+bijk, _lX(k/ —d, 节点i计算f' i(j) (j = 1,2,. . .,k’ -I)作为其他节点的密钥份额的更新量,并广播bijJP(j = 1,2',…,k,-I); 节点i生成签名0,并把密钥份额更新量和签名(f' i(j),cO加密传送给相应的节占. 节点j验证节点i的身份签名,如果e^PkeO^IDpP+tjP,o,则节点j接受节点i k-1 f的签名,否则拒绝其签名,节点j得到来自节点i的密钥份额更新后,计算;Eim/.(讲)尸与 m=\f1 i(j)P是否相等,确认f' i(j)的有效性; 节点j收到系统中n个节点发送的密钥份额更新量后,计算出节点j新的秘密份额
8.根据权利要求7所述的基于身份的安全签名方法,其特征在于所述节点i生成签名O的具体步骤为 请求加密密钥的节点i随机选择作为r, e Z丨私钥,并计算Qi=IriP作为相应的公钥发送给节点j ; 节点j接收到节点i的请求后,验证节点i的身份,节点j是合法的节点,该节点拥有加密密钥对^!!^^!(,,随机选择信息叫发送^化,?!^)给节点i,等待节点i的签名; 节点i收到签名要求后,随机选择作为私钥,其对应的公钥为I^tiH2 (IDi),计算身份签名O =H2 (IDfti)-1P,把身份签名(Ui, 0)传送给节点j。
全文摘要
本发明涉及一种基于身份的安全签名方法,包括离线分配密钥步骤、在线签名步骤和设置密钥使用期限来实现通信组密钥的更新,使用传感器节点的唯一标识作为它的身份信息,即该节点的公钥。使用系统的公开参数和系统的主密钥,通过每个节点的身份信息计算出该节点的私钥。当无线传感器网络在布置完成以后,每个节点内都存储了系统参数和自己的私钥,两个或多个节点间需要进行身份认证时,发送方可以使用自己的私钥对事先约定的认证数进行签名。接收方用发送方的身份信息作为公钥,按照签名方案中的签名验证算法,对接收到的信息进行验证,从而确定发送方的身份。本发明的安全签名方法中的存储空间为常量,因此更适合在无线传感器中使用。
文档编号H04W84/18GK102970679SQ201210477199
公开日2013年3月13日 申请日期2012年11月21日 优先权日2012年11月21日
发明者陈中华, 林伟雄, 叶敏, 陈景范, 姚巍 申请人:联想中望系统服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1