发明名称 一种基于线性几何的等级群组密钥管理方法
摘要 本发明公开了一种基于线性几何的等级群组密钥管理方法,包括以下步骤:步骤1、控制器选择群组使用的有限域F、映射f和常数N;控制器为每个子群组选择一个N维私有向量;步骤2、控制器选择映射参数r,并把私有向量映射成向量空间中一组新的向量;步骤3、控制器为每一个子群组选定一个子群组密钥,构造n组线性方程组,并求解出线性方程组的解,即公开向量,n组公开向量组成一个公开矩阵;控制器把公开矩阵和映射参数r通过公开信道广播或组播发送给所有的子群组控制器;步骤4、子群组控制器求出自身的保密向量,再用保密向量与公开矩阵作线性变换,得到一组密钥向量。本发明具有简单灵活、能有效避免暴力攻击等优点。
申请公布号 CN101848082B 申请公布日期 2012.08.22
申请号 CN201010184830.6 申请日期 2010.05.27
申请人 华南理工大学 发明人 唐韶华;梁郁君;丁津泰
分类号 H04L9/08(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L9/08(2006.01)I
代理机构 广州市华学知识产权代理有限公司 44245 代理人 杨晓松;罗勇
主权项 1.一种基于线性几何的等级群组密钥管理方法,其特征在于,包括以下步骤:步骤1、中央控制器选择群组使用的有限域F以及映射f,群组的运算都在有限域F中进行;同时中央控制器确定一个常数N,作为子群组个数的上限;中央控制器把有限域F、常数N以及映射f发送给所有子群组控制器;设群组共有n个子群组,中央控制器为每个子群组编号,发送给所有子群组控制器;同时中央控制器为每一个子群组随机选定一个N维私有向量,通过安全通道发送给对应的子群组控制器;子群组控制器接收中央控制器的私有向量并密存,其中N,n为正整数,n≤N;步骤2、中央控制器在有限域F上随机选定一个映射参数r,并根据该映射参数,用映射f把所有子群组控制器的私有向量映射成向量空间中一组新的向量,称为保密向量;如果新向量组是线性相关的,则再次选择映射参数并重新映射,或者返回步骤1让子群组控制器重选私有向量,直到新向量组线性无关为止;步骤3、中央控制器在有限域F上为每一个子群组都选定一个子群组密钥,中央控制器根据子群组间的等级关系,利用保密向量和子群组密钥构造n组线性方程组,中央控制器求解出线性方程组的唯一解,称为公开向量;保密向量和公开向量遵循以下规则:(1)低等级节点的保密向量与高等级节点的公开向量正交,内积为0;(2)对于所有节点,本节点自身的保密向量与自身的公开向量内积为本节点的群组密钥;(3)当高等级节点是本节点的父节点或祖先节点时,高等级节点的保密向量与本节点公开向量的内积为本节点的群组密钥;高等级节点的保密向量与后裔子节点公开向量的内积为后裔子节点的群组密钥;(4)没有直接或间接上下级关系的节点间无法导出对方的密钥,自身的保密向量与对方的公开向量的内积为0;(5)兄弟节点间也不能导出对方的密钥,自身 的保密向量与对方的公开向量的内积为0;n组公开向量组成一个公开矩阵,中央控制器把公开矩阵和映射参数r通过公开信道广播或组播发送给所有的子群组控制器;步骤4、每一个子群组控制器接收到公开矩阵和映射参数后,根据映射参数把自身的私有向量映射到向量空间的一个新向量,求出自身的保密向量,再用保密向量与公开矩阵作运算,得到一组密钥向量,子群组控制器通过自身计算的密钥向量得到自己和后裔子群组的群组密钥,而子群组控制器无法计算其父群组和祖先群组的群组密钥;子群组控制器把计算好的群组密钥分发到组内成员;所述步骤1具体为:中央控制器确定有限域F、常数N以及映射f;中央控制器把有限域F、常数N以及映射f发送给所有子群组控制器;中央控制器为每一个子群组控制器分配编号SC<sub>i</sub>,通过广播或组播把编号发送给所有子群组控制器;中央控制器为每一个子群组V<sub>i</sub>随机选定一个N维私有向量Z<sub>i</sub>=(z<sub>i,1</sub>,z<sub>i,2</sub>,...,z<sub>i,N</sub>),通过安全通道把私有向量发送给对应的子群组控制器SC<sub>i</sub>;每个子群组控制器SC<sub>i</sub>接收私有向量Z<sub>i</sub>=(Z<sub>i,1</sub>,Z<sub>i,2</sub>,...,Z<sub>i,N</sub>)并密存;所述步骤2具体为:中央控制器在有限域F上随机选定一个映射参数r,并使用映射f把所有子群组的私有向量Z<sub>i</sub>=(Z<sub>i,1</sub>,Z<sub>i,2</sub>,...,Z<sub>i,N</sub>)映射成一组新的向量,称为保密向量;对于编号为SC<sub>i</sub>的子群组控制器:x<sub>i,1</sub>=f(z<sub>i,1</sub>,r)x<sub>i,2</sub>=f(z<sub>i,2</sub>,r)……,x<sub>i,n</sub>=f(z<sub>i,n</sub>,r) 则中央控制器得到新的有限域F上的一组向量:X<sub>1</sub>=(x<sub>1,1</sub>,x<sub>1,2</sub>,...,x<sub>1,n</sub>),X<sub>2</sub>=(x<sub>2,1</sub>,x<sub>2,2</sub>,...,x<sub>2,n</sub>),··,X<sub>n</sub>=(x<sub>n,1</sub>,x<sub>n,2</sub>,...,x<sub>n,n</sub>)中央控制器判断X<sub>1</sub>,X<sub>2</sub>,...,X<sub>n</sub>是否线性相关,如果是线性相关,则返回步骤2,或者返回步骤1让子群组控制器重选私有向量,直到新向量组线性无关为止;否则进入步骤3;所述步骤3具体为:中央控制器在有限域F上为每个子群组分别选取随机数作为子群组的密钥,设选取的随机数分别为k<sub>1</sub>,k<sub>2</sub>,...,k<sub>n</sub>,且k<sub>i</sub>≠0,对任意子群组V<sub>i</sub>,设P(i)表示子群组V<sub>i</sub>的所有祖先节点的集合,假设向量A<sub>i</sub>=(a<sub>i,1</sub>,a<sub>i,2</sub>,...,a<sub>i,n</sub>)是未知参数,则各个子群组的保密向量X<sub>j</sub>与公开向量Ai有如下关系:<img file="RE-FDA0000157661170000031.GIF" wi="1390" he="144" />其中,i=1,...,n;j=1,...,n;设X=(X<sub>1</sub>,X<sub>2</sub>,...,X<sub>n</sub>)<sup>T</sup>,K<sub>i</sub>=(c<sub>i,1</sub>,c<sub>i,2</sub>,...,c<sub>i,n</sub>)<sup>T</sup>,<img file="RE-FDA0000157661170000032.GIF" wi="789" he="144" />则(1)转换成<img file="RE-FDA0000157661170000033.GIF" wi="836" he="59" />令<img file="RE-FDA0000157661170000034.GIF" wi="406" he="73" />K=(K<sub>1</sub>,K<sub>2</sub>,...,K<sub>n</sub>),对所有V<sub>i</sub>则有X×A=K                                                          (3)中央控制器需要求解方程组(3),由于步骤2中X<sub>1</sub>,X<sub>2</sub>,...,X<sub>n</sub>线性无关保证了系数矩阵的行列式|X|≠0,所以方程组(3)有唯一解,A即为所求的公开矩阵;中央控制器通过公开信道把公开矩阵<img file="RE-FDA0000157661170000035.GIF" wi="391" he="72" />和映射参数r通过公 开信道广播或组播给所有子群组控制器;所述步骤4具体为:各个子群组控制器接收<img file="RE-FDA0000157661170000041.GIF" wi="379" he="74" />和映射参数r,并通过映射f映射计算X<sub>i</sub>=(x<sub>i,1</sub>,x<sub>i,2</sub>,...,x<sub>i,n</sub>):x<sub>i,1</sub>=f(z<sub>i,1</sub>,r)x<sub>i,2</sub>=f(z<sub>i,2</sub>,r)……,x<sub>i,n</sub>=f(z<sub>i,n</sub>,r)然后计算:<img file="RE-FDA0000157661170000042.GIF" wi="1306" he="65" />当j≠i时,<img file="RE-FDA0000157661170000043.GIF" wi="1214" he="66" />其中,i=1,...,n;j=1,...,n,P(j)表示子群组V<sub>i</sub>的所有祖先节点的集合;如果V<sub>i</sub>∈P(j),则t<sub>j</sub>=k<sub>j</sub>,即V<sub>j</sub>的群组密钥;否则,t<sub>j</sub>=0;通过(4)和(5),每个V<sub>i</sub>都方便地算出本身或后裔节点的群组密钥;子群组控制器SC<sub>i</sub>把计算好的k<sub>i</sub>和t<sub>j</sub>(j≠i)分发到群组内各成员。
地址 510640 广东省广州市天河区五山路381号