发明名称 一种适用于分簇无线传感网络的认证方法
摘要 一种适用于分簇无线传感网络的认证方法,其特征在于:所述分簇无线传感网络的簇头保存一张四列的表,表头分别为簇成员名字、唯一号码以及L<sub>r</sub>(i)、以及标识符Flag,所述标识符Flag为一个布尔变量,用来表明节点是否被撤销了,1为没有撤销;0为撤销了;所述唯一号码是簇头保存、簇成员不知道的号码,生成簇头对称矩阵A,利用矩阵分解和向量相乘的方法来进行认证。本发明提供了一种在安全性良好的同时,兼有高效率和低能耗的适用于分簇无线传感网络的认证方法。
申请公布号 CN103826223A 申请公布日期 2014.05.28
申请号 CN201410007517.3 申请日期 2014.01.06
申请人 杭州职业技术学院 发明人 楼晓春;何丽莉;陈华凌;徐丽珍
分类号 H04W12/06(2009.01)I;H04W84/18(2009.01)I 主分类号 H04W12/06(2009.01)I
代理机构 杭州斯可睿专利事务所有限公司 33241 代理人 王利强
主权项 1.一种适用于分簇无线传感网络的认证方法,其特征在于:所述分簇无线传感网络的簇头保存一张四列的表,表头分别为簇成员名字、唯一号码以及L<sub>r</sub>(i)、以及标识符Flag,L<sub>r</sub>(i)为簇头对对称矩阵A进行LU分解分解得到的下三角矩阵L的第i行,标识符Flag为一个布尔变量,用来表明节点是否被撤销了,1为没有撤销;0为撤销了;所述唯一号码是簇头保存、簇成员不知道的号码;所述认证方法包括以下步骤:1)簇头生成矩阵A:对于有n个簇成员的簇,簇头生成n*(n-1)/2个随机正整数<img file="FDA0000453705330000011.GIF" wi="458" he="105" />和每个簇成员的唯一号码(id<sub>1</sub>,id<sub>2</sub>,…,id<sub>n</sub>)一起生成簇头对称矩阵A;对于簇头矩阵对称A,对角线的位置为簇成员的唯一号码,上下角分别为对称的n*(n-1)/2个随机正整数,矩阵A如下:<img file="FDA0000453705330000012.GIF" wi="662" he="407" />簇头对称矩阵A矩阵的秩为n,簇头对称矩阵A进行LU分解,得到下三角矩阵L和上三角矩阵U,其中A,L,U都是n阶矩阵;对A进行左边的初等变换,得到上三角矩阵U:E<sub>1</sub>*E<sub>2</sub>*E<sub>3</sub>*…*E<sub>k</sub>*A=UE为初等变换矩阵,其中,E<sub>1</sub>表示第1次初等变换,E<sub>2</sub>表示第2次初等变换,E<sub>,3</sub>表示第3次初等变换,E<sub>k</sub>表示第k次初等变换,k&lt;n,,由此得:L=(E<sub>1</sub>*E<sub>2</sub>*E<sub>3</sub>*…*E<sub>k</sub>)<sup>-1</sup>;2)簇头将L的第i行L<sub>r</sub>(i)和U的第i列U<sub>c</sub>(i)分配给簇头中第i个簇成员,1≤i≤n,之后簇头对将要分配的L<sub>r</sub>(i)和U<sub>c</sub>(i)进行去零操作;然后通过相应共享密钥给簇成员发配认证材料,同时设置此次生成材料的过期时间T;簇头存储每个簇成员对应的L<sub>r</sub>(i),设置每个簇成员相应的标识符Flag为1,初始时,簇成员都未被撤销,并生成四列的表;3)进行二类认证,具体如下:3.1)簇头对簇成员的认证:簇成员发送U<sub>c</sub>(i)给簇头,簇头计算L<sub>r</sub>(i)*U<sub>c</sub>(i),看计算结果是否等于该成员的唯一号码,如果等于,则该节点通过认证;否则,节点没有通过认证;不管是否通过认证,都交由簇头进行处理,跳到步骤5);3.2)簇成员间的认证,S代表一个传感器sensor,Si代表i号传感器节点,Sj代表j号传感器节点,过程如下:3.2.1)S<sub>i</sub>发送[S<sub>i</sub>,S<sub>j</sub>,U<sub>c</sub>(i)]给S<sub>j</sub>,S<sub>j</sub>收到消息,知道了发送方是S<sub>i</sub>,接收方是自己,于是S<sub>j</sub>查询S<sub>i</sub>发送过来的U<sub>c</sub>(i)是否已经在它的存储中了,如果是,则说明S<sub>i</sub>不是合法节点;否则,计算L<sub>r</sub>(j)*U<sub>c</sub>(i)得到A<sub>ji</sub>;3.2.2)S<sub>j</sub>发送[S<sub>j</sub>,S<sub>i</sub>,U<sub>c</sub>(j),A<sub>ji</sub>(S<sub>j</sub>)]给S<sub>i</sub>,S<sub>i</sub>收到消息知道了发送方S<sub>j</sub>,接收方是自己,于是S<sub>i</sub>也查询S<sub>j</sub>发送过来的U<sub>c</sub>(j)是否已经在它的存储中了,如果是,则说明S<sub>j</sub>不是合法节点,没必要认证它了;否则,也计算L<sub>r</sub>(i)*U<sub>c</sub>(j)得到A<sub>ij</sub>,S<sub>i</sub>用A<sub>ij</sub>解密A<sub>ji</sub>(S<sub>j</sub>),得到的结果如果是S<sub>j</sub>,那么S<sub>j</sub>通过了S<sub>i</sub>的认证;3.2.3)S<sub>i</sub>发送[S<sub>i</sub>,S<sub>j</sub>,A<sub>ij</sub>(S<sub>i</sub>)]给S<sub>j</sub>,S<sub>j</sub>用A<sub>ji</sub>解密A<sub>ij</sub>(S<sub>i</sub>),如果得到的结果等于S<sub>i</sub>,那么S<sub>i</sub>通过了S<sub>j</sub>的认证;如果有一方没有通过认证,另一方将其汇报给簇头,由簇头来处理,跳到步骤5);4)对于簇头对簇成员的认证,如果簇成员是发送数据的节点,那么认证失败,跳到步骤5);如果簇成员是报告能量快要耗尽,请求撤销,那么认证成功就跳到步骤5);对于簇成员间的认证,如果认证失败就跳到步骤5);5)簇头将上述簇成员节点的U<sub>c</sub>(i)发送给其他的簇成员,其他簇成员存储U<sub>c</sub>(i),用于簇成员间认证时判断其中一方是否有必要进行认证;同时簇头通过计算标识符Flag等于0的节点数来判断撤销的节点数是否大于阈值M,如果大于,则允许新节点加入,同时跳到步骤1)。
地址 310018 浙江省杭州市下沙经济开发区学源街68号