发明内容
针对上述现有技术中存在的缺陷,本发明所要解决的技术问题是提供一种无需可信第三方的参与,也不用开销巨大的公钥技术的,并能保证组密钥的安全性和组中各成员节点的公平性的基于传感器网络中协商式组密钥建立的方法。
为了解决上述技术问题,本发明所提供的一种基于传感器网络中协商式组密钥建立的方法,其特征在于???,方法的步骤如下:
1)秘密信息的预置:
A)传感器网络中的基站(充当可信的分发者)计算出一个在域GF(q)上的n*n的矩阵B,B被当作是公开信息,q是一个小于n的素数;范德蒙行列式就是矩阵B的最好的例子,其中bij=(gj)imod q;
B)基站产生n个行生成种子si,i=1,…,n;基站根据刚才产生的种子构造一个n*n的矩阵D,其每一行的元素都是这些种子的hash值;其算法如下:
for(i=1;i≤n;i++)
for(j=1;j≤n;j++)
{if(i>j),dij=Hi(sj);else dij=Hj(si);}
即
接着,利用B和D构造一个对称矩阵K=(DB)TB,能证明K=(DB)TB=BTDTB=BTDB=(AB)T=KT;令A=(DB)T,则K=AB;于是,对同一个组中的节点的秘密信息的预置过程如下:
a)将矩阵A中的第i行元素预存在节点Ni中,A中的第i行可表示为ri(A),即ri(A)=[aij];j=1,…,n。
b)将矩阵B中的第i列的列生成种子gi存放在节点Ni中;
2)组密钥建立的过程如下:
A)(轮一)每一个节点Ni(1≤i≤n-1)需要计算一个对密钥K
in和两个自己的私密信息
和
接着,Ni会发送一个信息(Ni,
)给节点Nn;而
则暂时保存在自己的内存中;
B)(轮二)节点Nn也会计算自己的私密信息Knn;一旦接收到各个节点提供的秘密信息(Ni,Ci),节点Nn分别用它与这些节点的对密钥来解密这些信息;然后计算xi=KnnKii;进而,节点再计算 然后节点将广播一个信息(Nn,x1……,xn-1)给所有的其他节点;
C)(轮三)一旦接收到Nn的广播消息,每一个节点Nj(1≤j≤n-1)都能计算出共享的组密钥
本发明提供的基于传感器网络中协商式组密钥建立的方法具有以下有益效果:
1)由于本发明是采用的预分发的方式,在传感器节点撒布在具体区域之前就预置了秘密信息,然后利用对称密钥的性质来建立密钥,无需可信第三方的参与,也不用开销巨大的公钥技术。
2)本发明提供的协商式组密钥建立的方法是一种真正意义上的密钥协商,每一个成员节点根据自己预置的秘密信息计算自己的秘密份额,并且能够验证自己的份额是否包含所建立的组密钥中。这样可以保证组密钥的安全性和组中各成员节点的公平性。
具体实施方式
以下结合附图说明对本发明的实施例作进一步详细描述,但本实施例并不用于限制本发明,凡是采用本发明的相似方法及其相似变化,均应列入本发明的保护范围。
本发明实施例的基于传感器网络中协商式组密钥建立的方法中每一个节点都为组密钥的建立提供一份秘密信息(称之为秘密份额),并且当组密钥建立成功以后各节点可以验证其奉献的秘密份额是否包含在这个组密钥中,这对于检验组密钥的安全性和保证网络中个节点的公平性都提供了有效的手段。不失一般性,假设N={N1,N2,……,Nn}是一个组中所有参与节点的初始集合。其中有一个强有力的节点Nn我们称为组头,还有n-1个普通节点。
本发明实施例的基于传感器网络中协商式组密钥建立的方法,包括1)秘密信息的构造和预置;2)节点部署到指定区域后,根据预置的秘密信息建立组密钥;具体的运行步骤如下:
1)秘密信息的预置:
首先,传感器网络中的基站(充当可信的分发者)首先计算出一个在域GF(q)上的n*n的矩阵B,B被当作是公开信息,q是一个小于n的素数;范德蒙行列式就是矩阵B的最好的例子,其中bij=(gj)imod q;
然后,基站产生n个行生成种子si,i=1,…,n。基站根据刚才产生的种子构造一个n*n的矩阵D,其每一行的元素都是这些种子的hash值;其算法如下:
for(i=1;i≤n;i++)
for(j=1;j≤n;j++)
{if(i>j),dij=Hi(sj);else dij=Hj(si);}
即
接着,利用B和D构造一个对称矩阵K=(DB)TB,可以证明K=(DB)TB=BTDTB=BTDB=(AB)T=KT。这里令A=(DB)T,这样K=AB。于是,对同一个组中的节点的秘密信息的预置过程如下:
第一步;将矩阵A中的第i行元素预存在节点Ni中,A中的第i行可表示为ri(A),即ri(A)=[aij];j=1,…,n。
第二步;将矩阵B中的第i列的列生成种子gi存放在节点Ni中;
2)如图1所示,组密钥的建立:
完成上述步骤并部署到指定区域后,网络中的每一个节点都计算自己的秘密份额并将其发送给负责计算的节点;利用这些信息,它们就能与其所在组的其他成员节点一起完成组密钥地建立;具体过程如下:
第一步(轮一):首先,每一个节点Ni(1≤i≤n-1)需要计算一个对密钥K
in和两个自己的私密信息
和
接着,Ni会发送一个信息(Ni,
)给节点Nn;而
则暂时保存在自己的内存中;
第二步(轮二):节点Nn也会计算自己的私密信息Knn;一旦接收到各个节点提供的秘密信息(Ni,Ci),节点Nn分别用它与这些节点的对密钥来解密这些信息;然后计算xi=KnnKii;进而,节点再计算 然后节点将广播一个信息(Nn,x1……,xn-1)给所有的其他节点;
第三步(轮三):一旦接收到Nn的广播消息,每一个节点Nj(1≤j≤n-1)都可以计算出共享的组密钥
本发明中基于传感器网络中协商式组密钥建立的方法的合法性的验证过程:
下面要证明通过运行2)中的过程,所有的参与节点都可以建立一个唯一的组密钥;并且每一个节点都可以验证它奉献的秘密份额是包含在该组密钥中的。
证明:根据2)中的方法,节电Nn把消息(Nn,,x
1,……,x
n-1)广播给所有的节点,并且每一个节点Ni(1≤i≤n-1)能用自己的私密信息
来计算出组密钥K
G。一旦这个组密钥K
G建立成功以后,那就意味着下面的等式成立:
因此,可以得出值 并且
所以有:
x1=VK11
x2=VK22
…….
Xn-2=VK(n-2)(n-2)
Xn-1=VK(n-1)(n-1)
从上式能发现,每一个xi包含了参与者Ni的秘密份额信息Kii;由于对于节点Nj(1≤j≤n-1)都可以计算 可以得到 因此,组密钥KG包含了所有参与节点的秘密份额信息Kii,故而每一个参与节点都可以验证其奉献的秘密份额是包含在这个组密钥中的。
本发明适用的环境有:需要进行信息广播的传感器网络,特别是传感器网络采用投票方式选择簇头或者用在采样等需要保证各节点的公平性的领域中时本发明非常适用。