CN101848082B - 一种基于线性几何的等级群组密钥管理方法 - Google Patents

一种基于线性几何的等级群组密钥管理方法 Download PDF

Info

Publication number
CN101848082B
CN101848082B CN2010101848306A CN201010184830A CN101848082B CN 101848082 B CN101848082 B CN 101848082B CN 2010101848306 A CN2010101848306 A CN 2010101848306A CN 201010184830 A CN201010184830 A CN 201010184830A CN 101848082 B CN101848082 B CN 101848082B
Authority
CN
China
Prior art keywords
subgroup
vector
group
controller
central controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2010101848306A
Other languages
English (en)
Other versions
CN101848082A (zh
Inventor
唐韶华
梁郁君
丁津泰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN2010101848306A priority Critical patent/CN101848082B/zh
Publication of CN101848082A publication Critical patent/CN101848082A/zh
Priority to HK11103218.7A priority patent/HK1149135A1/xx
Application granted granted Critical
Publication of CN101848082B publication Critical patent/CN101848082B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种基于线性几何的等级群组密钥管理方法,包括以下步骤:步骤1、中央控制器选择群组使用的有限域F、映射f和常数N;中央控制器为每个子群组选择一个N维私有向量;步骤2、中央控制器选择映射参数r,并把私有向量映射成向量空间中一组新的向量;步骤3、中央控制器为每一个子群组选定一个子群组密钥,构造n组线性方程组,并求解出线性方程组的解,即公开向量,n组公开向量组成一个公开矩阵;中央控制器把公开矩阵和映射参数r通过公开信道广播或组播发送给所有的子群组控制器;步骤4、子群组控制器求出自身的保密向量,再用保密向量与公开矩阵作线性变换,得到一组密钥向量。本发明具有简单灵活、能有效避免暴力攻击等优点。

Description

一种基于线性几何的等级群组密钥管理方法
技术领域
本发明涉及网络安全中的群组密钥管理方法,具体是涉及一种基于线性几何和正交向量理论的群组等级密钥管理方法。 
背景技术
随着Internet技术的快速发展以及组播技术的流行,面向群组的应用,例如视频会议、网络游戏、视频点播等,开始扮演越来越重要的角色,安全群组通信成为了研究的重要方向。具有等级访问控制的安全群组通信是指一个群组划分为一系列具有不同权限的子群组,高等级的子群组能接收和解密其后裔(直接或间接)子群组的信息,而反过来则不行。对基于密码学的等级访问控制来说,高等级的子群组能直接或间接计算得到/导出其后裔子群组的通信密钥,而低等级的子群组无法导出其祖先子群组的通信密钥。 
通常,等级访问控制有一些设定:(1)等级关系可以由有向无环图(DAG,Directed Acyclic Graph)来表示。(2)有一个中央控制器(CC:central controller)统一管理等级关系,可以计算和分发密钥。(3)在DAG中每一个节点代表一组用户,我们可把每个节点称为子群组。(4)每个子群组都有一个子群控制器(SC:subgroup controller),其职责是安全分发子群组的密钥给每个子群组成员。(5)CC和SC之间,在系统初始化或者有新的子群组加入的时候需要有安全信道保证安全通信。(6)在每个子群组内,都有一个安全密钥管理方案,用于实施子群组内的密钥管理。 
目前,在等级访问控制方面已经有了很多方案,典型的方案包括:Akl-Taylor方案,Lin方案,Sandhu方案,CRT方案等。 
Akl-Taylor方案是一个基于单向函数的密钥直接依赖方案。后裔子群组的密钥通过单向函数由其祖先子群组的密钥生成,祖先子群组能直接计算得出后裔子群组的密钥,后裔子群组无法选择自己的密钥。其优点是所有节点无需记忆等级结构,仅需要保存自身的密钥。而缺点是整个等级结构上静态的,结构上的小变动都会导致整个等级结构上所有节点的更新。 
还有其他一些方案例如Mackinnon,Chick and Tavares等等,它们都可以看作是Akl-Taylor方案的改进。 
Lin方案是一种基于单向函数的密钥间接依赖方案,其后裔子群组的密钥能独立于祖先子群组的密钥,祖先子群组通过间接的方法导出后裔子群组的密钥。其优点是后裔子群组可以独立更改密钥,而不影响其他子群组的密钥。缺点是子群组必须记住整个等级结构,至少是所有后裔子群组。另外还需要存储一些额外的辅助变量,用于导出后裔子群组的密钥。 
Sandhu方案是基于树结构的,每个节点都有一个名字(name),树的根节点随机选择一个密钥,其余的节点的密钥通过用其祖先节点的密钥来加密其名字得到。一个子群组可以直接通过加密计算得到其后裔子群组的密钥,而后裔子群组则无法计算出其祖先子群组的密钥。方案的优点是每个子群组仅需要保存自身的信息,子群组等级的变动仅仅会影响其后裔子群组的密钥更新。缺点是子群组需要记录一定的群组信息,至少是所有的后裔子群组信息,而且仅仅是适用树结构等级模型。 
基于中国剩余定理(CRT)的方案,该方案通过CRT算法把等级结构隐藏在构造好的CRT变量里,一个子群组的所有祖先子群组能根据CRT变量来计算该子群组的密钥,但该子群组无法知道哪些子群组是它的祖先子群组。其祖先子群组也无法知道到达该子群组的具体路径,仅仅能够计算其密钥。该方案提 供了良好的安全性,其缺点是计算CRT变量的开销巨大,随着群组数目的增加成比例增长,可扩展性不够。 
发明内容
本发明的目的之一在于提供一种基于有限域上的向量空间中的多项式函数的理论,建立了一种基于线性几何的等级群组密钥管理方法,发明方法具有简单灵活、能有效避免暴力攻击等优点。 
本发明的目的之二在于提供另一种基于有限域上的向量空间中的多项式函数的理论,建立了一种基于线性几何的等级群组密钥管理方法,该发明方法具有存储量少、计算量小、安全性高、能有效避免暴力攻击等优点。 
本发明目的之一是通过下述技术方案实现的:一种基于线性几何的等级群组密钥管理方法,包括以下步骤: 
步骤1、中央控制器(CC)选择群组使用的有限域F以及映射f,群组的运算都在有限域F中进行;同时中央控制器确定一个常数N,作为子群组个数的上限;中央控制器(CC)把有限域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;中央控制器(CC)把有限域F、常数N以及映射f发送给所有子群组控制器;中央控制器为每一个子群组控制器分配编号SCi,通过广播或组播把编号发送给所有子群组控制器;中央控制器为每一个子群组Vi随机选定一个N维私有向量Zi=(zi,1,zi,2,...,zi,N),通过安全通道把私有向量发送给对应的子群组控制器SCi;每个子群组控制器SCi接收私有向量Zi=(zi,1,zi,2,...,zi,N)并密存。 
所述步骤2具体为: 
中央控制器在有限域F上随机选定一个映射参数r,并使用映射f把所有子群组的私有向量Zi=(zi,1,zi,2,...,zi,N)映射成一组新的向量,称为保密向量; 
对于编号为SCi的子群组控制器: 
xi,1=f(zi,1,r)
xi,2=f(zi,2,r)
……, 
xi,n=f(zi,n,r)
则中央控制器得到新的有限域F上的一组向量: 
X1=(x1,1,x1,2,...,x1,n), 
X2=(x2,1,x2,2,...,x2,n), 
L L, 
Xn=(xn,1,xn,2,...,xn,n
中央控制器判断X1,X2,...,Xn是否线性相关,如果是线性相关,则返回步骤2,或者返回步骤1让子群组控制器重选私有向量,直到新向量组线性无关为止;否则进入步骤3(由于r是一个随机数,因此可以很容易地得到一组线性无关的向量X1,X2L,Xn); 
所述步骤3具体为: 
中央控制器在有限域F上为每个子群组分别选取随机数作为子群组的密钥,设选取的随机数分别为k1,k2,...,kn,且ki≠0,对任意子群组Vi,设P(i)表示子群组Vi的所有祖先节点的集合,假设公开向量Ai=(ai,1,ai,2,...,ai,n)是未知参数,则各个子群组的保密向量Xj与公开向量Ai有如下关系: 
Figure GDA0000021804790000051
公式(1)的具体含义:①对于任一个子群组Vi,其保密向量Xi,公开向量是Ai,密钥为ki,则 
Figure GDA0000021804790000061
②对于其它子群组Vj(j=1,...,n且j≠i),保密向量记为Xj,如果Vj是Vi的父节点或祖父节点,则 
Figure GDA0000021804790000062
如果Vj不是Vi的父节点或祖父节点,则 
Figure GDA0000021804790000063
由公式(1):设X=(X1,X2,...,Xn)T,Ki=(ci,1,ci,2,...,ci,n)T, 
Figure GDA0000021804790000064
则(1)转换成 
X × A i T = K i - - - ( 2 )
令 
Figure GDA0000021804790000066
K=(K1,K2,...,Kn),对所有Vi则有 
X×A=K    (3) 
中央控制器需要求解方程组(3),由于步骤2中X1,X2,...,Xn线性无关保证了系数矩阵的行列式|X|≠0,所以方程组(3)有唯一解,A即为所求的公开矩阵; 
中央控制器通过公开信道把公开矩阵 
Figure GDA0000021804790000067
和映射参数r通过公开信道广播或组播给所有子群组控制器; 
所述步骤4具体为: 
子群组控制器接收到 和映射参数r后,各个子群组控制器首先通过映射f映射计算Xi=(xi,1,xi,2,...,xi,n): 
xi,1=f(zi,1,r)
xi,2=f(zi,2,r)
......, 
xi,n=f(zi,n,r)
然后计算: 
k i = X i × A i T = x i , 1 a i , 1 + x i , 2 a i , 2 + . . . + x i , n a i , n - - - ( 4 )
t j = X i × A j T = x j , 1 a i , 1 + x j , 2 a i , 2 + . . . + x j , n a i , n ( j ≠ i ) - - - ( 5 )
公式(4)的具体含义是:对于某一子群组Vi,其子群组控制器SCi计算得到的保密向量是Xi,接收到的公开向量是Ai,则SCi计算群组密钥 
Figure GDA0000021804790000071
公式(5)的具体含义是:某个子群组Vi,其子群组控制器SCi计算得到的保密向量是Xi,群组内其他的子群组Vj(j=1,...,n且j≠i)的公开向量记为Aj,则SCi尝试计算Vj的群组密钥 
Figure GDA0000021804790000072
如果Vj是Vi的直接或者间接后裔子群组,则tj≠0且tj为子群组Vj的群组密钥,如果Vj不是Vi的直接或者间接后裔子群组,则tj=0,Vi无法计算Vj的群组密钥。 
其中P(j)表示子群组Vj的所有祖先节点的集合;如果Vi∈P(j),则tj=kj,即Vj的群组密钥;否则,tj=0;通过(4)和(5),每个Vi都可以方便地算出本身或后裔节点的群组密钥; 
子群组控制器SCi把计算好的ki和ti(j≠i)分发到群组内各成员(具体分发过程由群组内的密钥管理方案决定)。 
当有普通成员(非子群组控制器)申请加入子群组时,所述的基于线性几何的等级群组密钥管理方法进一步包括: 
步骤5、普通成员(非子群组控制器)加入:假定当前群组中有n个子群组,其中的g个子群组有新成员请求加入,则有新用户加入的子群组控制器向中央控制器发出用户加入请求(可通过批量处理方式让新成员同时加入到群组中),其中g<=n; 
重复步骤2~步骤4。 
当有普通成员(非子群组控制器)申请退出子群组时,所述的基于线性几何的等级群组密钥管理方法进一步包括: 
步骤5、普通成员(非子群组控制器)申请退出子群组:假定当前群组中有n 个子群组,其中的g个子群组有成员请求退出,则有用户申请退出的子群组控制器向中央控制器发出用户退出请求(通过批量处理方式完成密钥更新),其中g<=n; 
重复步骤2~步骤4。 
当同时有普通成员(非子群组控制器)加入和有普通成员(非子群组控制器)退出时,所述的基于线性几何的等级群组密钥管理方法进一步包括: 
步骤5、批量普通成员加入和退出:指有大量新用户申请加入某些子群组,同时某些子群组有组成员申请退出,则有用户加入的子群组控制器向中央控制器发出用户加入请求,有用户退出的子群组控制器向中央控制器发出用户退出请求; 
重复步骤2~步骤4。 
子群组有可能分裂出新子群组,新子群组选出新的子群组控制器后,就要加入到系统中;所述的基于线性几何的等级群组密钥管理方法进一步包括: 
步骤5、新的子群组加入:中央控制器为每个新的子群组控制器编号,把编号发送给所有子群组控制器;同时中央控制器为每个新加入的子群组在有限域F上随机选择一个N维的私有向量,并分别通过安全信道发送给对应的子群组控制器;新加入的子群组控制器接收中央控制器发送过来的私有向量并密存;中央控制器把有限域F、常数N以及映射f发送给新加入的子群组控制器; 
重复步骤2~步骤4。 
子群组的删除或合并等操作会造成子群组控制器成员的退出,所述的基于线性几何的等级群组密钥管理方法进一步包括: 
步骤5、子群组的退出:退出的子群组控制器向中央控制器申请离开群组,中央控制器删除退出的子群组控制器的私有向量,根据当前子群组控制器成员 的下标大小重新编号,通过广播或组播把所有成员的下标编号分发给所有子群组控制器; 
重复步骤2~步骤4。 
当同时有批量子群组控制器成员加入和有批量子群组控制器成员退出时时,所述的基于线性几何的等级群组密钥管理方法进一步包括: 
步骤5、批量子群组控制器成员加入和退出:每个退出的子群组控制器向中央控制器申请退出;中央控制器删除退出的子群组控制器的私有向量,根据当前的子群组控制器的下标大小重新分配子群组控制器的编号,同时为每个新加入的子群组控制器分配编号,把编号发送给所有子群组控制器;中央控制器为每个新加入的子群组在有限域F上随机选择一个N维的私有向量,并分别通过安全信道发送给对应的子群组控制器;新加入的子群组控制器接收中央控制器发送过来的私有向量并密存;中央控制器把有限域F、常数N以及映射f发送给新加入的子群组控制器; 
重复步骤2~步骤4。 
当有普通用户和子群组控制器用户混合加入,和/或有普通用户和子群组控制器用户混合退出时,所述的基于线性几何的等级群组密钥管理方法进一步包括: 
步骤5、批量的普通用户和子群组控制器加入,和/或有普通用户和子群组控制器用户混合退出时:每个退出的子群组控制器向中央控制器申请退出;有普通用户加入或退出的子群组控制器向中央控制器发出更新密钥的请求;中央控制器删除退出的子群组控制器的私有向量,根据当前的子群组控制器的下标大小重新分配子群组控制器的编号,同时为每个新加入的子群组控制器分配编号,把编号发送给所有子群组控制器;中央控制器为每个新加入的子群组在有限域F上随机选择一个N维的私有向量,并分别通过安全信道发送给对应的子 群组控制器;新加入的子群组控制器接收中央控制器发送过来的私有向量并密存;中央控制器把有限域F、常数N以及映射f发送给新加入的子群组控制器; 
重复步骤2~步骤4。 
本发明目的之二是通过下述技术方案实现的一种基于线性几何的等级群组密钥管理方法,包括以下步骤: 
步骤1、中央控制器(CC)选择群组使用的有限域F以及映射f,群组的运算都在有限域F中进行;同时中央控制器确定一个常数m;中央控制器(CC)把有限域F、常数m以及映射f发送给所有子群组控制器;设群组共有n个子群组,中央控制器为每个子群组控制器编号,把编号发送给所有子群组控制器;同时中央控制器为每个子群组在有限域F上随机选择一个m维和一个2维私有向量,分别通过安全信道发送给对应的子群组控制器;子群组控制器接收m维和2维私有向量并密存;其中m,n为正整数,2≤m≤n; 
步骤2、中央控制器在有限域F上随机选定一个映射参数r,并根据该映射参数,用映射f把所有子群组控制器的2维向量映射成一组新向量;同时用映射f把所有子群组控制器的m维私有向量映射成向量空间中一组新的向量;如果新向量组是线性相关的,则再次选择映射参数并重新映射,或者返回步骤1让子群组控制器重选私有向量,直到新向量组线性无关为止;这两组新向量又称为保密向量; 
步骤3、中央控制器在有限域F上为每一个子群组都选定一个群组密钥,中央控制器根据子群组间的等级关系,利用保密向量和子群组密钥构造n组线性方程组,中央控制器求解出线性方程组的唯一解,称为公开向量;保密向量和公开向量遵循以下规则:(1)对于所有节点,本节点自身的m维保密向量与自身的公开向量内积为本节点自身的群组密钥;(2)低等级节点的m维保密向量与高等级节点的公开向量正交,内积为0;(3)当高等级节点是本节点的父节点或祖先节点时,高等级节点的m维保密向量与所有后裔子节点公开向量的内积为间 接密钥,高等级节点可以进一步通过自身的2维保密向量和密钥求出后裔子节点的密钥;(4)没有直接或间接上下级关系的节点间无法导出对方的密钥,自身的m维保密向量与对方的公开向量的内积为0;(5)兄弟节点间也不能导出对方的密钥,自身的m维保密向量与对方的公开向量的内积为0;n组公开向量组成一个公开矩阵,中央控制器把公开矩阵和映射参数r通过公开信道广播或组播发送给所有的子群组控制器; 
步骤4、每一个子群组控制器接收到公开矩阵和映射参数后,根据映射参数把自身的2个私有向量映射成向量空间中的2个新向量,即保密向量,再用m维的保密向量与公开矩阵作线性变换,得到一组密钥向量,子群组控制器能通过自身计算的密钥向量得到自己的群组密钥,再通过自身2维保密向量和自身的群组密钥计算后裔子群组的群组密钥,子群组控制器无法计算其父群组或祖先群组的群组密钥;子群组控制器把计算好的群组密钥通过组内密钥管理方案分发到组内成员; 
为更好的实现本发明,所述步骤1具体为: 
中央控制器确定一个有限域F和常数m以及映射f,中央控制器(CC)把有限域F、常数m以及映射f发送给所有子群组控制器;中央控制器(CC)为每个子群组Vi在有限域F上选择一个的m维私有向量Zi=(zi,1,zi,2,...,zi,m)和一个2维私有向量Yi=(yi,1,yi,2),通过安全信道把Zi和Yi发送给对应的子群组控制器SCi; 
子群组控制器SCi接收私有向量Zi和Yi并密存,中央控制器为每一个子群组控制器分配编号SCi,通过广播或组播把编号发送给所有子群组控制器;其中i=1,...,n; 
所述步骤2具体为: 
中央控制器在有限域F上随机选定一个映射参数r,并使用映射f把所有子群组的私有向量Zi映射成一组新的向量Xi,用映射f把所有子群组的私有向量Yi映射成一组新的向量Wi,Xi和Wi称为保密向量; 
(1)对于所有子群组SCi,i=1,...,n,向量Wi=(wi,1,wi,2): 
wi1=f(yi,1,r)
wi2=f(yi,2,r)
(2)当i=1,...,m,Xi=(xi,1,...,xi,m,0,...,0): 
xi,1=f(zi,1,r)
xi,m=f(zi,m,r)
令xi,m+1=...=xi,n=0; 
(3)当i=m+1,...,n,Xi=(xi1,xi,2,...,xi,m-1,0...,0,xi,i,0,...,0)
xi,1=f(zi,1,r)
xi,m-1=f(zi,m-1,r)
xi,i=f(zi,m,r)
令xi,m-1=...=xi,i=0,xi,i+1=...=xi,n=0; 
则中央控制器得到由Xi组成的基于有限域F的一组n维向量: 
X1=(x1,1,x1,2,...,x1,n
X2=(x2,1,x2,2,...,x2,n
Xn=(xn,1,xn,2,...,xn,n
中央控制器判断X1,X2,...,Xn是否线性相关:如果是线性相关,则返回步骤2,再次选择映射参数并重新映射,或者返回步骤1让子群组控制器重选私有向量,直到新向量组线性无关为止;否则进入步骤3,由于r是一个随机数,因此可以很容易地得到一组线性无关的向量X1,X2,...,Xn; 
所述步骤3具体为: 
中央控制器为每个子群组Vi选择一个群组密钥ki,i,i=1,...,n;对任意子群组控制器SCi,i=1,...,n,假设其公开向量Ai=(ai,1,ai,2,...ai,n)是未知参数,用C(Vi)表示子群组控制器SCi的所有后裔子群组的集合,都有则各个子群的保密向量Xi与公开向量Ai有如下关系: 
X i × A i T = k i , i
设Vj∈C(Vi),即Vj(j=1,...,n)是Vi的直接或间接的后裔子群组且j≠i,则Aj和Xi、Wi、Xj的关系如下: 
X j × A j T = k j , j X i × A j T = k i , j W i × ( k i , i , k i , j ) T = k j , j - - - ( 6 )
由(6)导出: 
X i × A j T = k i , j = k i , i , j = i ( k j , j - w i , 1 k i , i ) w i , 2 - 1 , j ≠ i ∩ V j ∈ C ( V i ) 0 , j ≠ i ∩ V j ∉ C ( V i ) - - - ( 7 )
公式(7)的具体含义:对于任一子群组Vi,其n维保密向量Xi,2维保密向量为Wi=(wi,1,wi,2),公开向量是Ai,密钥为ki,i;所有子群组Vi(j=1,...,n)的公开向量记为Aj=(aj,1,aj,2,...,aj,n);①当j=i时,Aj=Ai且ki,j=ki,i,这时候计算的 
Figure GDA0000021804790000134
Figure GDA0000021804790000135
即为子群组Vi的群组密钥;②当j≠i且Vj是Vi的直接或者间接后裔子群组时,Vi可以通过间接密钥ki,j求Vj的群组密钥kj,j,由公式(6)可以推导出 ③当j≠i且Vj是Vi的直接或者间接后裔子群组时,则 
Figure GDA0000021804790000137
这时Vi不能通过ki,j求出Vj的密钥kj,j; 
设X=(X1,X2,...,Xn),Ki=(ki,1,ki,2,...,ki,n)T,则(7)可以写成X×AT=Ki
令 
Figure GDA0000021804790000138
K=(K1,K2,...,Kn),对所有Vi则有 
X×A=K    (8) 
把(8)写成方程组形式: 
x 1,1 x 1,2 . . . x 1 , n x 2,1 x 2 , 2 . . . x 2 , n . . . . . . . . . . . . x n , 1 x n , 2 . . . x n , n × a 1,1 a 2,1 . . . a n , 1 a 1,2 a 2,2 . . . a n , 2 . . . . . . . . . . . . a 1 , n a 2 , n . . . a n , n = k 1,1 k 1,2 . . . k 1 , n k 2,1 k 2,2 . . . k 2 , n . . . . . . . . . . . . k n , 1 k n , 2 . . . k n , n
中央控制器求解方程组(8),由于在步骤3保证了系数矩阵的行列式|X|≠0, 所以方程组(8)有唯一解:A=X-1K;A即为所求的公开矩阵;中央控制器通过公开信道把矩阵 
Figure GDA0000021804790000141
和映射参数r通过公开信道广播或组播给所有子群组控制器; 
所述步骤4具体为: 
当子群组控制器接收到 
Figure GDA0000021804790000142
和映射参数r后,各个子群组控制器SCi首先根据自身编号i和映射f计算Wi和Xi: 
(1)对于所有i=1,...,n,Wi=(wi,1,wi,2
wi,1=f(yi,1,r)
wi,2=f(yi,2,r)
(2)当i=1,...,m,Xi=(xi,1,...,xi,m,0,...,0): 
xi,1=f(zi,1,r)
xi,m=f(zi,m,r)
令xi,m+1=...=xi,n=0; 
(3)当i=m+1,...,n,Xi=(xi,1,xi,2,...,xi,m-1,0...,0,xi,i,0,...,0)
xi,1=f(zi,1,r)
xi,m-1=f(zi,m-1,r)
xi,i=f(zi,m,r)
令xi,m-1=...=xi,i=0,xi,i+1=...=xi,n=0; 
然后计算,对所有j=1,...,n, 
k i , j = X i × A j T = x i , 1 a j , 1 + . . . + x i , m a j , m , i ≤ m X i × A j T = x i , 1 a j , 1 + . . . + x i , m - 1 a j , m - 1 + x i , i a j , i , i > m - - - ( 9 )
公式(9)的具体含义:对于子群组Vi,子群组控制器为SCi,n维保密向量是Xi,2维保密向量为Wi=(wi,1,wi,2);群组中所有子群组的公开向量记为Aj=(aj,1,aj,2,...,aj,n)(j=1,...,n);当j=i时,Aj=Ai且ki,j=ki,i,这时候计算的ki,j即为子群组Vi的群组密钥;当j≠i且ki,j≠0时,Vi可以通过ki,j求Vj的群组密钥kj,j, Vj是Vi的直接或间接后裔子群组;当j≠i且ki,j=0时,说明Vi不能求出Vj的密钥kj,j;计算ki,j又可以分为两种情况:①当1≤i≤m,Xi=(xi,1,...,xi,m,0,...,0),所以 
Figure GDA0000021804790000151
②当m+1≤i≤n,Xi=(xi,1,...,xi,m-1,0,...,0,xi,i,0,...,0),所以 
Figure GDA0000021804790000152
当j≠i,如果ki,j≠0,则子群组控制器SCi继续计算子群组Vj的群组密钥kj,j: 
kj,j=wi,1×ki,i+wi,2×ki,j    (10) 
通过式(9)和(10),各个子群组控制器SCi可以方便计算出密钥ki,i和各个后裔子群组的密钥kj,j;子群组控制器SCi把计算出来的ki,i和kj,j(i=1,...,n且j≠i)分发到各个组内成员。 
当有普通成员(非子群组控制器)申请加入子群组时,所述的基于线性几何的等级群组密钥管理方法进一步包括: 
步骤5、普通成员(非子群组控制器)加入:假定当前群组中有n个子群组,其中的g个子群组有新成员请求加入,则有新用户加入的子群组控制器向中央控制器发出用户加入请求(可通过批量处理方式让新成员同时加入到群组中),其中g<=n: 
重复步骤2~步骤4。 
当有普通成员(非子群组控制器)申请退出子群组时,所述的基于线性几何的等级群组密钥管理方法进一步包括: 
步骤5、普通成员(非子群组控制器)申请退出子群组:假定当前群组中有n个子群组,其中的g个子群组有成员请求退出,则有用户申请退出的子群组控制器向中央控制器发出用户退出请求(通过批量处理方式完成密钥更新),其中g<=n: 
重复步骤2~步骤4。 
当同时有普通成员(非子群组控制器)加入和有普通成员(非子群组控制器)退出时,所述的基于线性几何的等级群组密钥管理方法进一步包括: 
步骤5、批量普通成员加入和退出:指有大量新用户申请加入某些子群组,同时某些子群组有组成员申请退出,则有用户加入的子群组控制器向中央控制器发出用户加入请求,有用户退出的子群组控制器向中央控制器发出用户退出请求: 
重复步骤2~步骤4。 
当有子群组控制器成员的(批量)加入,所述的基于线性几何的等级群组密钥管理方法进一步包括: 
步骤5、新的子群组加入:中央控制器为每个新子群组在有限域F上随机选择一个m维私有向量Zi=(zi,1,zi,2,...,zi,m)和一个2维私有向量Yi=(yi,1,yi,2),并通过安全信道发送给对应的子群组控制器;中央控制器为每个新的子群组控制器分配编号,把编号发送给所有子群组控制器;新子群组控制器接收中央控制器发送的m维和2维私有向量和密存;中央控制器把有限域F、常数N以及映射f发送给新加入的子群组控制器; 
重复步骤2~步骤4。 
当有子群组控制器的(批量)离开,所述的基于线性几何的等级群组密钥管理方法进一步包括: 
步骤5、子群组的退出:退出的子群组控制器向中央控制器申请离开群组,中央控制器删除退出的子群组控制器的私有向量,根据当前子群组控制器成员的下标大小重新编号,通过广播或组播把所有成员的下标编号分发给所有子群组控制器; 
重复步骤2~步骤4。 
当同时有批量子群组控制器的加入和退出,所述的基于线性几何的等级群组密钥管理方法进一步包括: 
步骤5、有批量子群组控制器的加入和退出:每个退出的子群组控制器向中央控制器申请退出;中央控制器删除退出的子群组控制器的私有向量,根据当前的子群组控制器的下标大小重新分配子群组控制器的编号,并为新的子群组控制器分配编号,通过广播或组播把所有成员的下标编号分发给所有子群组控制器;中央控制器为每个新子群组在有限域F上随机选择一个m维私有向量Zi=(zi,1,zi,2,...,zi,m)和一个2维私有向量Yi=(yi,1,yi,2),并通过安全信道发送给对应的子群组控制器;中央控制器为每个新的子群组控制器分配编号,把编号发送给所有子群组控制器;新子群组控制器接收中央控制器发送的m维和2维私有向量并密存;中央控制器把有限域F、常数N以及映射f发送给新加入的子群组控制器; 
重复步骤2~步骤4。 
当有批量的普通用户和子群组控制器加入,和/或有普通用户和子群组控制器用户混合退出时,所述的基于线性几何的等级群组密钥管理方法进一步包括: 
步骤5、批量的普通用户和子群组控制器加入,和/或有普通用户和子群组控制器用户混合退出时:每个退出的子群组控制器向中央控制器申请退出;有普通用户加入或退出的子群组控制器向中央控制器发出更新密钥的请求;中央控制器删除退出的子群组控制器的私有向量,根据当前的子群组控制器的下标大小重新分配子群组控制器的编号,并为新的子群组控制器分配编号,通过广播或组播把所有成员的编号分发给所有子群组控制器;中央控制器为每个新子群组在有限域F上随机选择一个m维私有向量Zi=(zi,1,zi,2,...,zi,m)和一个2维私有向量Yi=(yi,1,yi,2),并通过安全信道发送给对应的子群组控制器;中央控制器为每个新的子群组控制器分配编号,把编号发送给所有子群组控制器;新子群组控制器接收中央控制器发送的m维和2维私有向量并密存;中央控制器把有限域 F、常数N以及映射f发送给新加入的子群组控制器; 
重复步骤2~步骤4。 
优选的,所述m取值为2。 
优选的,设映射f可表示为z=f(w,b),其中w,b,z∈F,映射f的主要作用是随机化,映射f满足以下特性: 
1)知道w,b,计算z=f(w,b)是容易的。 
2)若仅知道z和b,从z=f(w,b)求出w是困难的;若仅知道z和w,从z=f(w,b)求出b也是困难的;得到一系列的zi和bi,从zi=f(w,bi)求出w是困难的;得到一系列的zi和wi,从zi=f(wi,b)求出b也是困难的。 
优选的,所述基于线性几何的等级群组密钥管理方法还包括自动更新:若在预设时间内没有成员加入或退出群组,则中央控制器周期性地更新各个子群组的密钥;中央控制器为每一个子群组随机选取新的私有向量,通过安全通道发送给对应的子群组控制器,子群组控制器接收私有向量并密存;中央控制器重新选择映射参数和各个子群组的密钥,并计算出公开矩阵,中央控制器把公开矩阵和映射参数通过公开信道广播或组播发送给各个子群组控制器。 
本发明与现有技术相比,具有如下优点和有益效果: 
第一,只在群组初始化阶段和自动更新的时候需要使用安全信道。在群组初始化的时候,此时群组还没建立,为了保证私有向量的安全性,需要使用安全信道;自动更新需要更新子群组的私有向量,这样可以避免私有向量泄漏对系统安全性的影响;而在此后的通信中,CC只要把公开矩阵A和映射参数发送给所有组成员,由于公开矩阵A和映射参数都是公开的,不需要保密,所以不需要使用安全信道,这样就可以采用明文广播或组播的方式发送。 
第二,不依赖于其它密码学方法。本发明的安全性建立在有限域上线性几 何理论的基础上,在计算群组密钥的过程中只使用简单的映射函数以及有限域上的基本运算,而不需要依赖其它传统的密码学方法,包括非对称密码学,对称密码学和散列函数等。这样就大大降低了本发明受到其它方面攻击的可能性,即使某些传统的密码学算法被攻破了,本发明所提供的安全性保证也不会受到这方面的影响。 
第三,组成员以及组控制器的存储量、计算量都很少。子群组控制器SCi只要保存本群组的私有向量Zi,同时每个SCi的计算量就是在步骤7中计算保密向量Xi,计算群组密钥。 
第四,群组控制器运算过程容易实现并行计算。不管是CC或SC,若组控制器运行在多核处理器平台上,则可以很容易地利用当前流行的并行运算库把组控制器运算过程并行化,充分发挥多核处理器的优势。 
第五,子群组不需要知道和保存群组的等级结构,计算结果就可以知道某个子群组是否为后裔子群组。同时也隐藏了整个群组的等级结构,祖先子群组虽然知道某个子群组是自己的后裔,但不能知道其间经过的路径。这有助于提高系统的安全性。 
本发明可以提供足够的安全保证,具体的安全性分析如下: 
第一,方案提供向前保密和向后保密:所有的子群组密钥ki都是随机选择的,每当用户加入或离开后ki都是不同的。且密钥ki会周期性更新,在不同时间段内密钥也会不同,增加了安全性。所以,方案可以保证向前和向后保密。 
第二,方案提供等级间的安全保证:高等级节点能导出其直接或间接后裔节点(低等级)的密钥,但反过来则不行。映射参数和公开矩阵A是公开的,高等级节点能够通过计算其后裔节点的密钥,但后裔节点无法知道父节点的私 有变量Zi,所以无法计算Xi,也无法计算父节点的密钥ki。所以,方案可以保证等级间的安全性。 
第三,没有直接或间接上下级关系的子群组无法知道对方的群组密钥。没有直接或间接上下级关系的子群组间无法计算出对方的保密向量Xi。建立关于Xi的方程,但由于最多只有n个方程,而至少有n+1个未知量(子群组Vi的密钥ki只有Vi及其父群组节点才知道),没有直接或间接上下级关系的子群组无法计算对方的密钥。 
第四,群组外的成员无法计算ki。方案中只有A和r是通过公开信道发送的,群组外的成员无法根据A和r来计算任何的ki。 
附图说明
图1是本发明优选实施例一的具有等级访问控制的群组通信系统架构示意图; 
图2是本发明优选实施例一的群组的访问等级结构示意图; 
图3是本发明优选实施例一的群组初始化的时候的通信过程示意图; 
图4是本发明优选实施例一的群组建立后CC和各SCi的关系及拥有的变量示意图; 
图5是本发明优选实施例二的子群组同时加入、退出群组状态示意图; 
图6是本发明优选实施例二的新加入的子群组的SCi与CC通信示意图; 
图7是本发明优选实施例二的群组处理完毕所有子群组加入、退出操作后建立的新群组示意图; 
图8是本发明优选实施例三的具有等级访问控制的群组通信系统架构示意 图; 
图9是本发明优选实施例三的群组的访问等级结构示意图; 
图10是本发明优选实施例三的群组初始化的时候的通信过程示意图; 
图11是本发明优选实施例三的群组建立后CC和各SCi的关系及拥有的变量示意图; 
图12是本发明优选实施例四的子群组同时加入、退出群组状态示意图; 
图13是本发明优选实施例四的新加入的子群组的SCi与CC通信示意图; 
图14是本发明优选实施例四的群组处理完毕所有子群组加入、退出操作后建立的新群组示意图。 
具体实施方式
下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施方式不限于此。 
实施例一 
如图1所示,一个具有等级访问控制的群组通信系统包括中央控制器CC,子群组Vi,子群组控制器SCi,CC和各SCi之间通过网际网络互联,其中i=1,2,...,7。 
群组的等级访问结构如图2所示,所有高等级的节点都可以导出其直接或间接后裔节点的密钥,而低等级节点无法导出其祖先节点的密钥。没有直接或间接上下级关系的节点互相不能导出对方的密钥。兄弟节点间也无法导出对方的密钥。 
如图3所示,系统选定有限域F,所有的运算都基于有限域F上;同时选 择伪随机数发生器作为f(.,.);对于相同的初始化输入(种子),该伪随机数发生器应该具有相同的输出序列;初始化N=10。 
步骤1、子群组Vi要加入群组,CC为每个子群组Vi分别随机选择一个私有向量:Zi=(zi,1,zi,2,...,zi,10)(zi,j∈F,j=1,...,10);并通过安全通道发送给对应的子群组控制器,子群组控制器接收私有向量Zi并密存;CC为子群组Vi的子群组控制器分配编号SCi,通过公开信道把编号广播或组播给各子群组控制器,其中i=1,2,...7; 
步骤2、CC在有限域F上选择随机数r作为映射参数,通过f(.,.)映射把所有私有向量Zi映射成一组新的向量:Xi=(xi,1,xi,2,...,xi,7),其中(i=1,2,...,7): 
x1,1=f(z1,1,r)
x1,2=f(z1,2,r)
……, 
x1,7=f(z1,7,r)
……, 
x7,1=f(z7,1,r)
x7,2=f(z7,2,r)
……, 
x7,7=f(z7,7,r)
则CC得到有限域F上的一组新的向量,称为保密向量: 
X1=(x1,1,x1,2,...,x1,7), 
X2=(x2,1,x2,2,...,x2,7), 
L L, 
X7=(x7,1,x7,2,...,x7,7
CC判断X1,X2,...,X7是否线性相关,如果他们线性无关,则进入步骤3; 否则返回步骤2;(由于r是一个随机数,因此可以很容易地得到一组线性无关的向量X1,X2,...,X7); 
步骤3、设公开向量Ai=(ai,1,ai,2,...,ai,7);CC在有限域F上为所有子群组控制器SCi随机选定一个密钥,分别是:k1,k2,...,k7,且ki≠0(i=1,2,...,7),CC通过以下一系列方程组求解公开矩阵A,其中i=1,2,...,7: 
(1)、对于V1,只有V1能导出k1,其他的Vi(i=2,3,...,7)均不能导出可k1。每个Xi(i=1,2,...,7)、公开向量A1和密钥k1的关系如下: 
X 1 × A 1 T = k 1
X 2 × A 1 T = 0
X 3 × A 1 T = 0
X 4 × A 1 T = 0
X 5 × A 1 T = 0
X 6 × A 1 T = 0
X 7 × A 1 T = 0
设X=(X1,X2,...,X7),K1=(k1,0,0,0,0,0,0)T,则可写矩阵形式: 写成方程组形式,则可表示为: 
x 1,1 a 1,1 + x 1,2 a 1,2 + L + x 1,7 a 1,7 = k 1 x 2,1 a 1,1 + x 2,2 a 1,2 + L + x 2,7 a 1,7 = 0 x 3,1 a 1,1 + x 3,2 a 1,2 + L + x 3,7 a 1,7 = 0 x 4,1 a 1,1 + x 4,2 a 1,2 + L + x 4,7 a 1,7 = 0 x 5 , 1 a 1,1 + x 5,2 a 1,2 + L + x 5,7 a 1,7 = 0 x 6,1 a 1,1 + x 6,2 a 1,2 + L + x 6,7 a 1,7 = 0 x 7,1 a 1,1 + x 7,2 a 1,2 + L + x 7,7 a 1,7 = 0
(2)、对于V2,V1和V2能导出k2,其他的Vi(i=3,4,...,7)均不能导出k2。各个保密向量Xi(i=1,2,...,7)、公开向量A2和密钥k2的关系如下: 
X 1 × A 2 T = k 2
X 2 × A 2 T = k 2
X 3 × A 2 T = 0
X 4 × A 2 T = 0
X 5 × A 2 T = 0
X 6 × A 2 T = 0
X 7 × A 2 T = 0
设K2=(k2,k2,0,0,0,0,0)T,则可写矩阵形式: 
Figure GDA0000021804790000248
写成方程组形式,则可表示为: 
x 1,1 a 2,1 + x 1,2 a 2,2 + L + x 1,7 a 2,7 = k 2 x 2,1 a 2,1 + x 2,2 a 2,2 + L + x 2,7 a 2,7 = k 2 x 3,1 a 2,1 + x 3,2 a 2,2 + L + x 3,7 a 2,7 = 0 x 4,1 a 2,1 + x 4,2 a 2,2 + L + x 4,7 a 2,7 = 0 x 5,1 a 2,1 + x 5,2 a 2,2 + L + x 5,7 a 2,7 = 0 x 6,1 a 2,1 + x 6,2 a 2,2 + L + x 6,7 a 2,7 = 0 x 7,1 a 2,1 + x 7,2 a 2,2 + L + x 7,7 a 2,7 = 0
(3)、对于V3,只有V1和V3能导出k3,其他的Vi(i=2,4,5,6,7)均不能导出k3。各个保密向量Xi(i=1,2,...,7)、公开向量A3和密钥k3的关系如下: 
X 1 × A 3 T = k 3
X 2 × A 3 T = 0
X 3 × A 3 T = k 3
X 4 × A 3 T = 0
X 5 × A 3 T = 0
X 6 × A 3 T = 0
X 7 × A 3 T = 0
设K3=(k3,0,k3,0,0,0,0)T,则可写矩阵形式: 
写成方程组形式,则可表示为: 
x 1,1 a 3,1 + x 1,2 a 3,2 + L + x 1,7 a 3,7 = k 3 x 2,1 a 3,1 + x 2,2 a 3,2 + L + x 2,7 a 3,7 = 0 x 3,1 a 3,1 + x 3,2 a 3,2 + L + x 3,7 a 3,7 = k 3 x 4,1 a 3,1 + x 4,2 a 3,2 + L + x 4,7 a 3,7 = 0 x 5,1 a 3,1 + x 5,2 a 3,2 + L + x 5,7 a 3,7 = 0 x 6,1 a 3,1 + x 6,2 a 3,2 + L + x 6,7 a 3,7 = 0 x 7,1 a 3,1 + x 7,2 a 3,2 + L + x 7,7 a 3,7 = 0
(4)、对于V4,V1、V2和V4能导出k4,其他的Vi(i=3,5,6,7)均不能导出k4。各个保密向量Xi(i=1,2,...,7)、公开向量A4和密钥k4的关系如下: 
X 1 × A 4 T = k 4
X 2 × A 4 T = k 4
X 3 × A 4 T = 0
X 4 × A 4 T = k 4
X 5 × A 4 T = 0
X 6 × A 4 T = 0
X 7 × A 4 T = 0
设K4=(k4,k4,0,k4,0,0,0)T,则可写矩阵形式: 
Figure GDA0000021804790000259
写成方程组形式,则可表示为: 
x 1,1 a 4,1 + x 1,2 a 4,2 + L + x 1,7 a 4,7 = k 4 x 2,1 a 4,1 + x 2,2 a 4,2 + L + x 2,7 a 4,7 = k 4 x 3,1 a 4,1 + x 3,2 a 4,2 + L + x 3,7 a 4,7 = 0 x 4,1 a 4,1 + x 4,2 a 4,2 + L + x 4,7 a 4,7 = k 4 x 5,1 a 4,1 + x 5,2 a 4,2 + L + x 5,7 a 4,7 = 0 x 6,1 a 4,1 + x 6,2 a 4,2 + L + x 6,7 a 4,7 = 0 x 7,1 a 4,1 + x 7,2 a 4,2 + L + x 7,7 a 4,7 = 0
(5)、对于V5,V1、V2和V5能导出k5,其他的Vi(i=3,4,6,7)均不能导出k5。各个保密向量Xi(i=1,2,...,7)、公开向量A5和密钥k5的关系如下: 
X 1 × A 5 T = k 5
X 2 × A 5 T = k 5
X 3 × A 5 T = 0
X 4 × A 5 T = 0
X 5 × A 5 T = k 5
X 6 × A 5 T = 0
X 7 × A 5 T = 0
设K5=(k5,k5,0,0,k5,0,0)T,则可写矩阵形式: 
Figure GDA0000021804790000268
写成方程组形式,则可表示为: 
x 1,1 a 5,1 + x 1,2 a 5,2 + L + x 1,7 a 5,7 = k 5 x 2,1 a 5,1 + x 2,2 a 5,2 + L + x 2,7 a 5,7 = k 5 x 3,1 a 5,1 + x 3,2 a 5,2 + L + x 3,7 a 5,7 = 0 x 4,1 a 5,1 + x 4,2 a 5,2 + L + x 4,7 a 5,7 = 0 x 5,1 a 5,1 + x 5,2 a 5,2 + L + x 5,7 a 5,7 = k 5 x 6,1 a 5,1 + x 6,2 a 5,2 + L + x 6,7 a 5,7 = 0 x 7,1 a 5,1 + x 7,2 a 5,2 + L + x 7,7 a 5,7 = 0
(6)、对于V6,V1、V3和V6能导出k6,其他的Vi(i=2,4,5,7)均不能导出k6。各个保密向量Xi(i=1,2,...,7)、公开向量A6和密钥k6的关系如下: 
X 1 × A 6 T = k 6
X 2 × A 6 T = 0
X 3 × A 6 T = k 6
X 4 × A 6 T = 0
X 5 × A 6 T = 0
X 6 × A 6 T = k 6
X 7 × A 6 T = 0
设K6=(k6,0,k6,0,0,k6,0)T,则可写矩阵形式: 
Figure GDA00000218047900002617
写成方程组形式,则可表示为: 
x 1,1 a 6,1 + x 1,2 a 6,2 + L + x 1,7 a 6,7 = k 6 x 2,1 a 6,1 + x 2,2 a 6,2 + L + x 2,7 a 6,7 = 0 x 3,1 a 6,1 + x 3,2 a 6,2 + L + x 3,7 a 6,7 = k 6 x 4,1 a 6,1 + x 4,2 a 6,2 + L + x 4,7 a 6,7 = 0 x 5,1 a 6,1 + x 5,2 a 6,2 + L + x 5,7 a 6,7 = 0 x 6,1 a 6,1 + x 6,2 a 6,2 + L + x 6,7 a 6,7 = k 6 x 7,1 a 6,1 + x 7,2 a 6,2 + L + x 7,7 a 6,7 = 0
(7)、对于V7,V1、V3和V7能导出k7,其他的Vi(i=2,4,5,6)均不能导出k7。各个保密向量Xi(i=1,2,...,7)、公开向量A7和密钥k7的关系如下: 
X 1 × A 7 T = k 7
X 2 × A 7 T = 0
X 3 × A 7 T = k 7
X 4 × A 7 T = 0
X 5 × A 7 T = 0
X 6 × A 7 T = 0
X 7 × A 7 T = k 7
设K7=(k7,0,k7,0,0,0,k7)T,则可写矩阵形式: 
Figure GDA0000021804790000279
写成方程组形式,则可表示为: 
x 1,1 a 7,1 + x 1,2 a 7,2 + L + x 1,7 a 7,7 = k 7 x 2,1 a 7,1 + x 2,2 a 7,2 + L + x 2,7 a 7,7 = 0 x 3,1 a 7,1 + x 3,2 a 7,2 + L + x 3,7 a 7,7 = k 7 x 4,1 a 7,1 + x 4,2 a 7,2 + L + x 4,7 a 7,7 = 0 x 5,1 a 7,1 + x 5,2 a 7,2 + L + x 5,7 a 7,7 = 0 x 6,1 a 7,1 + x 6,2 a 7,2 + L + x 6,7 a 7,7 = 0 x 7,1 a 7,1 + x 7,2 a 7,2 + L + x 7,7 a 7,7 = k 7
(8)、令 
Figure GDA00000218047900002711
K=(K1,K2,...,K7
由(1)~(7)有:X×A=K,即: 
x 11 x 12 x 13 x 14 x 15 x 16 x 17 x 21 x 22 x 23 x 24 x 25 x 26 x 27 x 31 x 32 x 33 x 34 x 35 x 36 x 37 x 41 x 42 x 43 x 44 x 45 x 46 x 47 x 51 x 52 x 53 x 54 x 55 x 56 x 57 x 61 x 62 x 63 x 64 x 65 x 66 x 67 x 71 x 72 x 73 x 74 x 75 x 76 x 77 × a 11 a 21 a 31 a 41 a 51 a 61 a 71 a 12 a 22 a 32 a 42 a 52 a 62 a 72 a 13 a 23 a 33 a 43 a 53 a 63 a 73 a 14 a 24 a 34 a 44 a 54 a 64 a 74 a 15 a 25 a 35 a 45 a 55 a 65 a 75 a 16 a 26 a 36 a 46 a 56 a 66 a 76 a 17 a 27 a 37 a 47 a 57 a 67 a 77 = k 1 k 2 k 3 k 4 k 5 k 6 k 7 0 k 2 0 k 4 k 5 0 0 0 0 k 3 0 0 k 6 k 7 0 0 0 k 4 0 0 0 0 0 0 0 k 5 0 0 0 0 0 0 0 k 6 0 0 0 0 0 0 0 k 7
只要行列式 
Figure GDA0000021804790000282
那么A有唯一解。 
CC把计算完毕的矩阵A和映射参数通过公开的信道广播或组播给所有SCi,其中i=1,2,...,7; 
步骤4、所有子群组控制器接收到公开矩阵A和映射参数r之后,通过f(.,.)和映射参数r求新向量: 
对于子群组控制器SCi,其中Xi=(xi,1,xi,2,...,xi,7): 
xi,1=f(zi,1,r)
xi,2=f(zi,2,r)
......, 
xi,7=f(zi,7,r)
再根据式(4)和式(5),计算ki和tj(j≠i且j=1,...,7),其中,i=1,2,...,7;例如对于V3,SC3接收到A和r后,计算X3=(x3,1,x3,2,...,x3,7): 
x3,1=f(z3,1,r)
x3,2=f(z3,2,r)
......, 
x3,7=f(z3,7,r)
再根据(4)和(5),计算k3和tj(j=1,2,4,5,6,7)。其中t6=k6,t7=k7;其他的tj=0(j=1,2,4,5);SC3把计算好的k3和tj(j=1,2,4,5,6,7)通过组内的密钥管理方案分发给组内成员。 
如图4所示,通过以上步骤,建立了一个具有等级访问控制和7个子群组 组成的群组。子群组间的等级关系隐含在公开矩阵A和各个子群组的保密向量中。 
实施例二 
当子群组间的关系发生变化的时候,如图5所示:V6要离开群组,而V8要作为V2的新子群组加入。 
步骤1、如图6所示,SC6向CC发送离开请求,CC接收到请求后删除V6的私有向量Z6;CC随机选择一个私有向量Z∈FN,通过安全通道发送给V8的子群组控制器,V8的子群组控制器接收到Z后,密存; 
CC重新分配当前子群组控制器的编号:SC1~SC5保持不变,对应的私有向量分别是Z1~Z5;而SC7变成了SC6,对应的私有向量变成了Z6;V8对应的编号为SC7,对应的私有向量为Z7。这时CC保存的私有向量为Zi(i=1,2,...,7);此时群组的等级关系如图7所示; 
其他步骤与实施例一的步骤2~步骤4一致;需要补充说明的是:对于SC7,各保密向量Xi(i=1,2,...,7)与公开向量A7以及子群组密钥k7的关系不同于实施例一中步骤3的第(7)点(其他的各小点相同),SC7变动后对应的关系如下: 
对于SC7,V3不再能导出k7,而V1、V2和V7都能够导出k7,其他的Vi(i=4,5,6)均不能导出k7;各个保密向量Xi(i=1,2,...,7)、公开向量A7和密钥k7的关系如下: 
X 1 × A 7 T = k 7
X 2 × A 7 T = k 7
X 3 × A 7 T = 0
X 4 × A 7 T = 0
X 5 × A 7 T = 0
X 6 × A 7 T = 0
X 7 × A 7 T = k 7
设K7=(k7,k7,0,0,0,0,k7)T,则可写矩阵形式: 
写成方程组形式,则可表示为: 
x 1,1 a 7,1 + x 1,2 a 7,2 + L + x 1,7 a 7,7 = k 7 x 2,1 a 7,1 + x 2,2 a 7,2 + L + x 2,7 a 7,7 = k 7 x 3,1 a 7,1 + x 3,2 a 7,2 + L + x 3,7 a 7,7 = 0 x 4,1 a 7,1 + x 4,2 a 7,2 + L + x 4,7 a 7,7 = 0 x 5,1 a 7,1 + x 5,2 a 7,2 + L + x 5,7 a 7,7 = 0 x 6,1 a 7,1 + x 6,2 a 7,2 + L + x 6,7 a 7,7 = 0 x 7,1 a 7,1 + x 7,2 a 7,2 + L + x 7,7 a 7,7 = k 7
其他的细节和实施例一的步骤3一致。 
如图7所示,通过以上步骤,完成了批量的群组加入和离开操作,新的等级关系也反映在A和各个Xi(i=1,2,...,7)中。单独的加入或离开可以看作是批量的特殊形式。在新的群组加入过程中,安全信道仅仅在新群组向CC发送私有向量的时候存在,其他原有群组并不需要重新向CC发送私有向量。 
实施例三 
如图8所示,一个具有等级访问控制的群组通信系统包括中央控制器CC,子群组Vi,子群组控制器SCi,CC和各SC之间通过网际网络互联,其中i=1,2,...,5。 
群组的等级访问结构如图9所示,所有高等级的节点都可以导出其直接或 间接后裔节点的密钥,而低等级节点无法导出其祖先节点的密钥。没有直接或间接上下级关系的节点互相不能导出对方的密钥。兄弟节点间也无法导出对方的密钥。 
如图10所示,系统选定有限域F,所有的运算都基于有限域F上;同时选择伪随机数发生器作为f(.,.),对于相同的初始化输入(种子),该伪随机数发生器应该具有相同的输出序列;初始化m=2。 
步骤1、子群组Vi要加入群组,CC为每个子群组Vi分别随机选择两个私有向量:Zi=(zi,1,zi,2)和Yi=(yi,1,yi,2);并通过安全通道发送给对应的子群组控制器,所有子群组控制器接收私有向量Zi和Yi并密存;CC为子群组Vi的子群组控制器分配编号SCi,同时通过公开信道把编号广播或组播给各子群组控制器,其中i=1,...,5; 
步骤2、CC在有限域F上选择随机数r作为映射参数,通过f(.,.)映射把所有私有向量Zi和Yi分别映射成一组新的向量:Xi=(xi,1,...,xi,5)和Wi=(wi,1,wi,2),其中(i=1,2,...,5): 
x1,1=f(z1,1,r)  x2,1=f(z2,1,r)  x3,1=f(z3,1,r)  x4,1=f(z4,1,r)  x5,1=f(z5,1,r)
                  ,                  ,                  ,                  ,                  ; 
x1,2=f(z1,2,r)  x2,2=f(z2,2,r)  x3,3=f(z3,2,r)  x4,4=f(z4,2,r)  x5,5=f(z5,2,r)
w1,1=f(y1,1,r)  w2,1=f(y2,1,r)  w3,1=f(y3,1,r)  w4,1=f(y4,1,r)  w5,1=f(y5,1,r)
                  ,                  ,                  ,                  ,                  。 
w1,2=f(y1,2,r)  w2,2=f(y2,2,r)  w3,2=f(y3,2,r)  w4,2=f(y4,2,r)  w5,2=f(y5,2,r)
则CC得到有限域F上的一组新的n维向量Xi和一组新的2维向量Wi,其中i=1,...,5,Xi和Wi均称为保密向量: 
X1=(x1,1,x1,2,0,0,0)
X2=(x2,1,x2,2,0,0,0)
X3=(x3,1,0,x3,3,0,0)
X4=(x4,1,0,0,x4,4,0) 
X5=(x5,1,0,0,0,x5,5
W1=(w1,1,w1,2
W2=(w2,1,w2,2
W3=(w3,1,w3,2
W4=(w4,1,w4,2
W5=(w5,1,w5,2
CC判断X1,X2,...,X5是否线性相关,如果他们线性无关,则进入步骤3;否则返回步骤2;(由于r是一个随机数,因此可以很容易地得到一组线性无关的向量X1,X2,...,X5); 
步骤3、设子群组Vi的公开向量Ai=(ai,1,ai,2,...,ai,5);CC在有限域F上为所有子群组控制器SCi随机选定一个密钥,分别是:k1,1,k2,2...,k5,5,,且ki≠0(i=1,2,...,5),CC通过以下一系列方程组求解公开矩阵A,其中i=1,2,...,5: 
(1)、对于V1,只有V1能导出k1,1,其他的Vi(i=2,3,4,5)均不能导出可k1,1。每个Xi(i=1,2,...,5)、公开向量A1和密钥k1,1的关系如下: 
X 1 × A 1 T = k 1,1
X 2 × A 1 T = 0
X 3 × A 1 T = 0
X 4 × A 1 T = 0
X 5 × A 1 T = 0
设X=(X1,X2,...,X5),K1=(K1,1,0,0,0,0)T,则可写矩阵形式: 
写成方程组形式,则可表示为: 
x 1,1 a 1,1 + x 1,2 a 1,2 + 0 + 0 + 0 = k 1,1 x 2,1 a 1,1 + x 2,2 a 1,2 + 0 + 0 + 0 = 0 x 3,1 a 1,1 + 0 + x 3,3 a 1,3 + 0 + 0 = 0 x 4 , 1 a 1,1 + 0 + 0 + x 4,4 a 1,4 + 0 = 0 x 5,1 a 1,1 + 0 + 0 + 0 + x 5,5 a 1,5 = 0
(2)、对于V2,V1和V2能导出k2,2,V1将通过间接的方法导出k2,2,其他的Vi(i=3,4,...,5)均不能导出k2,2。各个保密向量Xi(i=1,2,...,5)、公开向量A2和密钥k2,2的关系如下: 
X 1 × A 2 T = k 1,2
X 2 × A 2 T = k 2,2
X 3 × A 2 T = 0
X 4 × A 2 T = 0
X 5 × A 2 T = 0
其中, k 1,2 = ( k 2,2 - w 1,1 k 1,1 ) w 1,2 - 1
设K2=(k1,2,k2,2,0,0,0)T,则可写矩阵形式: 
Figure GDA0000021804790000337
写成方程组形式,则可表示为: 
x 1,1 a 2,1 + x 1,2 a 2,2 + 0 + 0 + 0 = k 1,2 x 2,1 a 2,1 + x 2,2 a 2,2 + 0 + 0 + 0 = k 2,2 x 3,1 a 2,1 + 0 + x 3,3 a 2,3 + 0 + 0 = 0 x 4,1 a 2,1 + 0 + 0 + x 4,4 a 2,4 + 0 = 0 x 5,1 a 2,1 + 0 + 0 + 0 + x 5,5 a 2,5 = 0
其中, k 1,2 = ( k 2,2 - w 1,1 k 1,1 ) w 1,2 - 1
(3)、对于V3,只有V1和V3能导出k3,3,V1将通过间接方法导出k3,3;其他的Vi(i=2,4,5)均不能导出k3,3。各个保密向量Xi(i=1,2,...,5)、公开向量A3和密钥k3,3的关系如下: 
X 1 × A 3 T = k 1,3
X 2 × A 3 T = 0
X 3 × A 3 T = k 3,3
X 4 × A 3 T = 0
X 5 × A 3 T = 0
k 1,3 = ( k 3,3 - w 1,1 k 1,1 ) w 1,2 - 1
设K3=(k1,3,0,k3,3,0,0)T,则可写矩阵形式: 
Figure GDA00000218047900003316
写成方程组形式,则可表示为: 
x 1,1 a 3,1 + x 1,2 a 3,2 + 0 + 0 + 0 = k 1,3 x 2,1 a 3,1 + x 2,2 a 3,2 + 0 + 0 + 0 = 0 x 3,1 a 3,1 + 0 + x 3,3 a 3,3 + 0 + 0 = k 3,3 x 4,1 a 3,1 + 0 + 0 + x 4,4 a 3,4 + 0 = 0 x 5,1 a 3,1 + 0 + 0 + 0 + x 5,5 a 3,5 = 0
k 1,3 = ( k 3,3 - w 1,1 k 1,1 ) w 1,2 - 1
(4)、对于V4,V1、V2和V4能导出k4,4,V1、V2将通过间接方法导出k4,4;其他的Vi(i=3,5)均不能导出k4,4。各个保密向量Xi(i=1,2,...,5)、公开向量A4和密钥k4,4的关系如下: 
X 1 × A 4 T = k 1,4
X 2 × A 4 T = k 2,4
X 3 × A 4 T = 0
X 4 × A 4 T = k 4,4
X 5 × A 4 T = 0
k 1,4 = ( k 4,4 - w 1,1 k 1,1 ) w 1,2 - 1
k 2,4 = ( k 4,4 - w 2,1 k 2,2 ) w 2,2 - 1
设K4=(k1,4,k2,4,0,k4,4,0,0,0)T,则可写矩阵形式: 
Figure GDA00000218047900003410
写成方程组形式,则可表示为: 
x 1,1 a 4,1 + x 1,2 a 4,2 + 0 + 0 + 0 = k 1,4 x 2,1 a 4,1 + x 2,2 a 4,2 + 0 + 0 + 0 = k 2,4 x 3,1 a 4,1 + 0 + x 3,3 a 4,3 + 0 + 0 = 0 x 4,1 a 4,1 + 0 + 0 + x 4,4 a 4,4 + 0 = k 4,4 x 5,1 a 4,1 + 0 + 0 + 0 + x 5,5 a 4,5 = 0
k 1,4 = ( k 4,4 - w 1,1 k 1,1 ) w 1,2 - 1
k 2,4 = ( k 4,4 - w 2,1 k 2,2 ) w 2,2 - 1
(5)、对于V5,V1、V3和V5能导出k5,5,V1、V3将通过间接方法导出k5,5; 
其他的Vi(i=2,4)均不能导出k5,5。各个保密向量Xi(i=1,2,...,5)、公开向量A5 和密钥k5,5的关系如下: 
X 1 × A 5 T = k 1,5
X 2 × A 5 T = 0
X 3 × A 5 T = k 3,5
X 4 × A 5 T = 0
X 5 × A 5 T = k 5,5
k 1,5 = ( k 5,5 - w 1,1 k 1,1 ) w 1,2 - 1
k 3,5 = ( k 5,5 - w 3,1 k 3,3 ) w 3,2 - 1
设K5=(k1,5,0,k3,5,0,k5,5)T,则可写矩阵形式: 
Figure GDA0000021804790000358
写成方程组形式,则可表示为: 
x 1,1 a 5,1 + x 1,2 a 5,2 + 0 + 0 + 0 = k 1,5 x 2,1 a 5,1 + x 2,2 a 5,2 + 0 + 0 + 0 = 0 x 3,1 a 5,1 + 0 + x 3,3 a 5,3 + 0 + 0 = k 3,5 x 4,1 a 5,1 + 0 + 0 + x 4,4 a 5,4 + 0 = 0 x 5,1 a 5,1 + 0 + 0 + 0 + x 5,5 a 5,5 = k 5,5
k 1,5 = ( k 5,5 - w 1,1 k 1,1 ) w 1,2 - 1
k 3,5 = ( k 5,5 - w 3,1 k 3,3 ) w 3,2 - 1
(6)、令 K=(K1,K2,...,K7
由(1)~(5)有:X×A=K,即: 
x 11 x 12 0 0 0 x 21 x 22 0 0 0 x 31 0 x 33 0 0 x 41 0 0 x 44 0 x 51 0 0 0 x 55 a 11 a 21 a 31 a 41 a 51 a 12 a 22 a 32 a 42 a 52 a 13 a 23 a 33 a 43 a 53 a 14 a 24 a 34 a 44 a 54 a 15 a 25 a 35 a 45 a 55 = k 11 k 12 k 13 k 14 k 15 0 k 22 0 k 24 0 0 0 k 33 0 k 35 0 0 0 k 44 0 0 0 0 0 k 55
只要行列式|X|≠0,那么A有唯一解。 
CC把计算完毕的矩阵A和映射参数通过公开的信道广播或组播给所有SCi,其中i=1,2,...,5; 
步骤4、所有子群组控制器接收到公开矩阵A和映射参数r之后,通过f(.,.)和映射参数r求新向量: 
对于任一个子群组Vi,其子群组控制器为SCi,其中Xi=(xi,1,xi,2,...,xi,5), xi,1=f(zi,1,r),xi,i=f(zi,2,r),其余xi,j=0(j≠1且j≠i且j=1,...,5);Wi=(wi,1,wi,2),wi,1=f(yi,1,r),wi,2=f(yi,2,r)。根据式(9)计算所有ki,j(j=1,...,5):ki,1,ki,2,ki,3,ki,4,ki,5。如果j=i,则ki,j=ki,i,即本子群组的密钥。如果j≠i且ki,j≠0,则根据式(10)求解子群组Vi的群组密钥kj,j。 
例如对于V3,SC3接收到A和r后,计算X3=(x3,1,0,x3,3,0,0)和W3=(w3,1,w3,2): 
x3,1=f(z3,1,r)  w3,1=f(y3,1,r)
x3,3=f(z3,2,r)’w3,2=f(y3,2,r)
再根据式(9)计算k3,1~k3,5:其中k3,3≠0和k3,5≠0。k3,3为子群组V3的群组密钥;k3,5是SC3求解子群组V5群组密钥k5,5的间接密钥。根据式(10):k5,5=w3,1k3,3+w3,2k3,5
SC3把计算好的k3,3和k5,5通过组内的密钥管理方案分发给组内成员。 
如图11所示,通过以上步骤,建立了一个具有等级访问控制和7个子群组组成的群组。子群组间的等级关系隐含在公开矩阵A和各个子群组的保密向量中。 
实施例四 
当子群组间的关系发生变化的时候,如图12所示:V5要离开群组,而V6要作为V2的新子群组加入。 
步骤1、如图13所示,SC5向CC发送离开请求,CC接收到请求后删除V5的私有向量Z5和W5;CC在有限域F上随机选择一个m维私有向量Z6和一个2维向量Y6,通过安全通道发送给V6的子群组控制器,V6的子群组控制器接收到Z6和Y6后,密存。 
CC重新分配当前子群组控制器的编号:SC1~SC4保持不变,对应的m维 私有向量分别是Z1~Z4,2维私有向量是Y1~Y4。新加入的子群组V6的子群组控制器编号为SC5,对应的私有向量为Z5和Y5。这时CC保存的私有向量为Zi和Yi(i=1,2,...,5);此时群组的等级关系如图12所示; 
其他步骤与实施例一的步骤2~步骤4一致;需要补充说明的是:对于SC5,各保密向量Xi、Wi(i=1,...,5)与公开向量A5以及子群组密钥k5,5的关系不同于实施例一中步骤3的第(5)点(其他的各小点相同),SC5变动后对应的关系如下: 
对于SC5,V5能直接导出群组密钥k5,5,V1、V2都能够间接导出k5,5,而V3和V4不能直接/间接导出k5,5;各个保密向量Xi(i=1,2,...,5)、公开向量A5和密钥k5,5的关系如下: 
X 1 × A 5 T = k 1,5
X 2 × A 5 T = k 2,5
X 3 × A 5 T = 0
X 4 × A 5 T = 0
X 5 × A 5 T = k 5,5
k 1,5 = ( k 5,5 - w 1,1 k 1,1 ) w 1,2 - 1
k 2,5 = ( k 5,5 - w 2,1 k 2,2 ) w 2,2 - 1
设 
Figure GDA0000021804790000378
则可写矩阵形式: 
Figure GDA0000021804790000379
写成方程组形式,则可表示为: 
x 1,1 a 5,1 + x 1,2 a 5,2 + 0 + 0 + 0 = k 1,5 x 2,1 a 5,1 + x 2,2 a 5,2 + 0 + 0 + 0 = k 2,5 x 3,1 a 5,1 + 0 + x 3,3 a 5,3 + 0 + 0 = 0 x 4,1 a 5,1 + 0 + 0 + x 4,4 a 5,4 + 0 = 0 x 5,1 a 5,1 + 0 + 0 + 0 + x 5,5 a 5,5 = k 5,5
k 1,5 = ( k 5,5 - w 1,1 k 1,1 ) w 1,2 - 1
k 2,5 = ( k 5,5 - w 2,1 k 2,2 ) w 2,2 - 1
其他的细节和实施例三的步骤3一致。 
如图14所示,通过以上步骤,完成了批量的群组加入和离开操作,新的等级关系也反映在公开矩阵A和各个保密向量Xi、Wi(i=1,2,...,5)中。单独的加入或离开可以看作是批量的特殊形式。在新的群组加入过程中,安全信道仅仅在新群组向CC发送私有向量的时候存在,其他原有群组并不需要重新向CC发送私有向量。 
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。 

Claims (8)

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发送给所有子群组控制器;中央控制器为每一个子群组控制器分配编号SCi,通过广播或组播把编号发送给所有子群组控制器;
中央控制器为每一个子群组Vi随机选定一个N维私有向量Zi=(zi,1,zi,2,...,zi,N),通过安全通道把私有向量发送给对应的子群组控制器SCi;每个子群组控制器SCi接收私有向量Zi=(Zi,1,Zi,2,...,Zi,N)并密存;
所述步骤2具体为:
中央控制器在有限域F上随机选定一个映射参数r,并使用映射f把所有子群组的私有向量Zi=(Zi,1,Zi,2,...,Zi,N)映射成一组新的向量,称为保密向量;
对于编号为SCi的子群组控制器:
xi,1=f(zi,1,r)
xi,2=f(zi,2,r)
……,
xi,n=f(zi,n,r) 
则中央控制器得到新的有限域F上的一组向量:
X1=(x1,1,x1,2,...,x1,n),
X2=(x2,1,x2,2,...,x2,n),
··,
Xn=(xn,1,xn,2,...,xn,n)
中央控制器判断X1,X2,...,Xn是否线性相关,如果是线性相关,则返回步骤2,或者返回步骤1让子群组控制器重选私有向量,直到新向量组线性无关为止;否则进入步骤3;
所述步骤3具体为:
中央控制器在有限域F上为每个子群组分别选取随机数作为子群组的密钥,设选取的随机数分别为k1,k2,...,kn,且ki≠0,对任意子群组Vi,设P(i)表示子群组Vi的所有祖先节点的集合,假设向量Ai=(ai,1,ai,2,...,ai,n)是未知参数,则各个子群组的保密向量Xj与公开向量Ai有如下关系:
Figure RE-FDA0000157661170000031
其中,i=1,...,n;j=1,...,n;设X=(X1,X2,...,Xn)T,Ki=(ci,1,ci,2,...,ci,n)T, 
Figure RE-FDA0000157661170000032
则(1)转换成
Figure RE-FDA0000157661170000033
令 
Figure RE-FDA0000157661170000034
K=(K1,K2,...,Kn),对所有Vi则有
X×A=K                                                          (3)
中央控制器需要求解方程组(3),由于步骤2中X1,X2,...,Xn线性无关保证了系数矩阵的行列式|X|≠0,所以方程组(3)有唯一解,A即为所求的公开矩阵;中央控制器通过公开信道把公开矩阵 
Figure RE-FDA0000157661170000035
和映射参数r通过公 开信道广播或组播给所有子群组控制器;
所述步骤4具体为:
各个子群组控制器接收 
Figure RE-FDA0000157661170000041
和映射参数r,并通过映射f映射计算Xi=(xi,1,xi,2,...,xi,n):
xi,1=f(zi,1,r)
xi,2=f(zi,2,r)
……,
xi,n=f(zi,n,r)
然后计算:
Figure RE-FDA0000157661170000042
当j≠i时,
Figure RE-FDA0000157661170000043
其中,i=1,...,n;j=1,...,n,P(j)表示子群组Vi的所有祖先节点的集合;如果Vi∈P(j),则tj=kj,即Vj的群组密钥;否则,tj=0;通过(4)和(5),每个Vi都方便地算出本身或后裔节点的群组密钥;
子群组控制器SCi把计算好的ki和tj(j≠i)分发到群组内各成员。
2.根据权利要求1所述一种基于线性几何的等级群组密钥管理方法,其特征在于,所述基于线性几何的等级群组密钥管理方法进一步包括:
步骤5、新的子群组加入:中央控制器为每个新的子群组控制器编号,把编号发送给所有子群组控制器;同时中央控制器为每个新加入的子群组在有限域F上随机选择一个N维的私有向量,并分别通过安全信道发送给对应的子群组控制器;新加入的子群组控制器接收中央控制器发送过来的私有向量并密存;中央控制器把有限域F、常数N以及映射f发送给新加入的子群组控制器;
重复步骤2~步骤4。
3.根据权利要求1所述一种基于线性几何的等级群组密钥管理方法,其特征在于,所述基于线性几何的等级群组密钥管理方法进一步包括: 
步骤5、子群组的退出:退出的子群组控制器向中央控制器申请离开群组,中央控制器删除退出的子群组控制器的私有向量,根据当前子群组控制器成员的下标大小重新编号,通过广播或组播把所有成员的下标编号分发给所有子群组控制器;
重复步骤2~步骤4。
4.一种基于线性几何的等级群组密钥管理方法,其特征在于,包括以下步骤:
步骤1、中央控制器选择群组使用的有限域F以及映射f,群组的运算都在有限域F中进行;同时中央控制器确定一个常数m;中央控制器把有限域F、常数m以及映射f发送给所有子群组控制器;设群组共有n个子群组,中央控制器为每个子群组控制器编号,把编号发送给所有子群组控制器;同时中央控制器为每个子群组在有限域F上随机选择一个m维和一个2维私有向量,分别通过安全信道发送给对应的子群组控制器;子群组控制器接收m维和2维私有向量并密存;其中m,n为正整数,2≤m≤n;
步骤2、中央控制器在有限域F上随机选定一个映射参数r,并根据该映射参数,用映射f把所有子群组控制器的2维向量映射成一组新向量;同时用映射f把所有子群组控制器的m维私有向量映射成向量空间中一组新的向量;如果新向量组是线性相关的,则再次选择映射参数并重新映射,或者返回步骤1让子群组控制器重选私有向量,直到新向量组线性无关为止;这两组新向量又称为保密向量;
步骤3、中央控制器在有限域F上为每一个子群组都选定一个群组密钥,中央控制器根据子群组间的等级关系,利用保密向量和子群组密钥构造n组线性方程组,中央控制器求解出线性方程组的唯一解,称为公开向量;保密向量和公开向量遵循以下规则:(1)对于所有节点,本节点自身的m维保密向量与自身的公开向量内积为本节点自身的群组密钥;(2)低等级节点的m维保密向量与高 等级节点的公开向量正交,内积为0;(3)当高等级节点是本节点的父节点或祖先节点时,高等级节点的m维保密向量与所有后裔子节点公开向量的内积为间接密钥,高等级节点进一步通过自身的2维保密向量和密钥求出后裔子节点的密钥;(4)没有直接或间接上下级关系的节点间无法导出对方的密钥,自身的m维保密向量与对方的公开向量的内积为0;(5)兄弟节点间也不能导出对方的密钥,自身的m维保密向量与对方的公开向量的内积为0;n组公开向量组成一个公开矩阵,中央控制器把公开矩阵和映射参数r通过公开信道广播或组播发送给所有的子群组控制器;
步骤4、每一个子群组控制器接收到公开矩阵和映射参数后,根据映射参数把自身的2个私有向量映射成向量空间中的2个新向量,即保密向量,再用m维的保密向量与公开矩阵作线性变换,得到一组密钥向量,子群组控制器能通过自身计算的密钥向量得到自己的群组密钥,再通过自身2维保密向量和自身的群组密钥计算后裔子群组的群组密钥,子群组控制器无法计算其父群组或祖先群组的群组密钥;子群组控制器把计算好的群组密钥分发到组内成员;
所述步骤1具体为:
中央控制器确定一个有限域F和常数m以及映射f,中央控制器把有限域F、常数m以及映射f发送给所有子群组控制器SCi;中央控制器为每个子群组Vi在有限域F上选择一个的m维私有向量Zi=(zi,1,zi,2,...,zi,m)和一个2维私有向量Yi=(yi,1,yi,2),通过安全信道把Zi和Yi发送给对应的子群组控制器SCi
子群组控制器SCi接收私有向量Zi和Yi并密存,中央控制器为每一个子群组控制器分配编号SCi,通过广播或组播把编号发送给所有子群组控制器;其中i=1,...,n;
所述步骤2具体为:
中央控制器在有限域F上随机选定一个映射参数r,并使用映射f把所有子群组的私有向量Zi映射成一组新的向量Xi,用映射f把所有子群组的私有向量Yi映射成一组新的向量Wi,Xi和Wi称为保密向量; 
(1)对于所有子群组SCi,i=1,...,n,向量Wi=(wi1,wi2):
wi1=f(yi,1,r)
wi2=f(yi,2,r)
(2)当i=1,...,m,Xi=(xi,1,...,xi,m,0,...,0):
xi,1=f(zi,1,r)
......
xi,m=f(zi,m,r)
令xi,m+1=...=xi,n=0;
(3)当i=m+1,...,n,Xi=(xi,1,xi,2,...,xi,m-1,0...,0,xi,i,0,...,0)
xi,1=f(zi,1,r)
......
xi,m-1=f(zi,m-1,r)
xi,i=f(zi,m,r)
令xi,m-1=...=xi,i=0,xi,i+1=...=xi,n=0;
则中央控制器得到由Xi组成的基于有限域F的一组n维向量:
X1=(x1,1,x1,2,...,x1,n)
X2=(x2,1,x2,2,...,x2,n)
......
Xn=(xn,1,xn,2,...,xn,n)
中央控制器判断X1,X2,...,Xn是否线性相关:如果是线性相关,则返回步骤2,再次选择映射参数并重新映射,或者返回步骤1让子群组控制器重选私有向量,直到新向量组线性无关为止;否则进入步骤3;
所述步骤3具体为:
中央控制器为每个子群组Vi选择一个群组密钥ki,i,i=1,...,n;对任意子群组控制器SCi,i=1,...,n,假设其公开向量
Figure 20101018483061000014
是未知参数,用C(Vi)表示子群组控制器SCi的所有后裔子群组的集合,则各个子群组的保密向量Xi与公开向量Ai有如下关系: 
Xi×Ai T=ki,i
设Vj∈C(Vi),即Vj(j=1,...,n)是Vi的直接或间接的后裔子群组且j≠i,则Aj和Xi、Wi、Xj的关系如下:
Figure FDA0000128673570000081
由(6)导出:
Figure FDA0000128673570000082
其中,i=1,...,n,j=1,...,n;
设X=(X1,X2,...,Xn),Ki=(ki,1,ki,2,...,ki,n)T,则(7)转换成
X×AT=Ki
令A=(A1 T,A2 T,...,An T),K=(K1,K2,...,Kn),对所有Vi则有
X×A=K                        (8)
把(8)写成方程组形式:
中央控制器求解方程组(8),由于在步骤3保证了系数矩阵的行列式|X|≠0,所以方程组(8)有唯一解:A=X-1K;A即为所求的公开矩阵;中央控制器通过公开信道把矩阵A=(A1 T,A2 T,...,An T)和映射参数r通过公开信道广播或组播给所有子群组控制器;
所述步骤4具体为:
当子群组控制器接收到A=(A1 T,A2 T,...,An T)和映射参数r后,各个子群组控制器SCi首先根据自身编号i和映射f计算Wi和Xi: 
(1)对于所有i=1,...,n,Wi=(wi,1,wi,2)
wi,1=f(yi,1,r)
wi,2=f(yi,2,r)
(2)当i=1,...,m,Xi=(xi,1,...,xi,m,0,...,0):
xi,1=f(zi,1,r)
......
xi,m=f(zi,m,r)
令xi,m+1=...=xi,n=0;
(3)当i=m+1,...,n,Xi=(xi,1,xi,2,...,xi,m-1,0...,0,xi,i,0,...,0)
xi,1=f(zi,1,r)
......
xi,m-1=f(zi,m-1,r)
xi,i=f(zi,m,r)
令xi,m-1=...=xi,i=0,xi,i+1=...=xi,n=0;
然后计算,对所有j=1,...,n,
Figure FDA0000128673570000091
当j=i时,ki,j=ki,i,即子群组Vi自身的密钥;当j≠i,如果ki,j≠0,则子群组控制器SCi继续计算kj,j
kj,j=wi,1×ki,i+wi,2×ki,j                        (10)
通过式(9)和(10),各个子群组控制器SCi方计算出密钥ki,i和各个后裔子群组的密钥kj,j;子群组控制器SCi把计算出来的ki,i和kj,j(j=1,...,n且j≠i)分发到各个组内成员。
5.根据权利要求4所述一种基于线性几何的等级群组密钥管理方法,其特征在于,所述基于线性几何的等级群组密钥管理方法进一步包括:
步骤5、新的子群组加入:中央控制器为每个新子群组在有限域F上随机选择一个m维私有向量Zi=(zi,1,zi,2,...,zi,m)和一个2维私有向量Yi=(yi,1,yi,2),并通过 安全信道发送给对应的子群组控制器;中央控制器为每个新的子群组控制器分配编号,把编号发送给所有子群组控制器;新子群组控制器接收中央控制器发送的m维和2维私有向量和密存;中央控制器把有限域F、常数m以及映射f发送给新加入的子群组控制器;
重复步骤2~步骤4。
6.根据权利要求4所述一种基于线性几何的等级群组密钥管理方法,其特征在于,所述基于线性几何的等级群组密钥管理方法进一步包括:
步骤5、子群组的退出:退出的子群组控制器向中央控制器申请离开群组,中央控制器删除退出的子群组控制器的私有向量,根据当前子群组控制器成员的下标大小重新编号,通过广播或组播把所有成员的下标编号分发给所有子群组控制器;
重复步骤2~步骤4。
7.根据权利要求4所述一种基于线性几何的等级群组密钥管理方法,其特征在于,所述m取值为2。
8.根据权利要求1或4所述一种基于线性几何的等级群组密钥管理方法,其特征在于,所述基于线性几何的等级群组密钥管理方法还包括自动更新:若在预设时间内没有成员加入或退出群组,则中央控制器周期性地更新各个子群组的密钥;中央控制器为每一个子群组随机选取新的私有向量,通过安全通道发送给对应的子群组控制器,子群组控制器接收私有向量并密存;中央控制器重新选择映射参数和各个子群组的密钥,并计算出公开矩阵,中央控制器把公开矩阵和映射参数通过公开信道广播或组播发送给各个子群组控制器。 
CN2010101848306A 2010-05-27 2010-05-27 一种基于线性几何的等级群组密钥管理方法 Expired - Fee Related CN101848082B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2010101848306A CN101848082B (zh) 2010-05-27 2010-05-27 一种基于线性几何的等级群组密钥管理方法
HK11103218.7A HK1149135A1 (en) 2010-05-27 2011-03-29 A level group key management approach based on linear geometry

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101848306A CN101848082B (zh) 2010-05-27 2010-05-27 一种基于线性几何的等级群组密钥管理方法

Publications (2)

Publication Number Publication Date
CN101848082A CN101848082A (zh) 2010-09-29
CN101848082B true CN101848082B (zh) 2012-08-22

Family

ID=42772550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101848306A Expired - Fee Related CN101848082B (zh) 2010-05-27 2010-05-27 一种基于线性几何的等级群组密钥管理方法

Country Status (2)

Country Link
CN (1) CN101848082B (zh)
HK (1) HK1149135A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678254B (zh) * 2013-12-04 2017-02-08 四川理工学院 基于线性方程组的可验证随机数生成的方法
CN105245330B (zh) * 2015-10-21 2018-10-19 深圳国微技术有限公司 一种密钥备份及恢复的安全实现装置及其方法
CN107086908B (zh) * 2016-02-15 2021-07-06 阿里巴巴集团控股有限公司 一种量子密钥分发方法及装置
US10503892B2 (en) 2017-06-25 2019-12-10 Microsoft Technology Licensing, Llc Remote attestation for multi-core processor
US10708061B2 (en) * 2017-06-25 2020-07-07 Microsoft Technology Licensing, Llc Secure key storage for multi-core processor
CN108989028A (zh) * 2018-07-16 2018-12-11 哈尔滨工业大学(深圳) 群密钥分发管理方法、装置、电子设备及存储介质
CN109325361B (zh) * 2018-09-11 2021-08-03 陕西师范大学 支持内积运算的可搜索公钥加密方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7961876B2 (en) * 2005-01-11 2011-06-14 Jintai Ding Method to produce new multivariate public key cryptosystems
CN101488849B (zh) * 2009-02-18 2010-12-01 华南理工大学 一种基于n维球面的群组密钥管理方法

Also Published As

Publication number Publication date
HK1149135A1 (en) 2011-09-23
CN101848082A (zh) 2010-09-29

Similar Documents

Publication Publication Date Title
CN101848082B (zh) 一种基于线性几何的等级群组密钥管理方法
Chen et al. Efficient CP-ABE scheme with shared decryption in cloud storage
Li et al. Outsourcing encryption of attribute-based encryption with mapreduce
Chen et al. Revocable identity-based encryption from lattices
CN104113408B (zh) 一种实现及时用户属性撤销的基于密文策略属性加密方法
CN103701833B (zh) 一种基于云计算平台的密文访问控制方法及系统
Zu et al. New ciphertext-policy attribute-based encryption with efficient revocation
Li et al. Attribute-based keyword search and data access control in cloud
Tu et al. Fine-grained access control and revocation for sharing data on clouds
CN105162573A (zh) 基于多线性映射的可撤销分权威密钥策略的属性加密方法
Huang et al. Multi-authority attribute based encryption scheme with revocation
Zhang et al. A traceable outsourcing cp-abe scheme with attribute revocation
Lian et al. Large universe ciphertext-policy attribute-based encryption with attribute level user revocation in cloud storage.
Liu et al. Dynamic attribute-based access control in cloud storage systems
Yang et al. Taac: Temporal attribute-based access control for multi-authority cloud storage systems
US20130058479A1 (en) Hierarchical group key management approach based on linear geometry
CN101753295B (zh) 一种基于线性几何的群组密钥管理方法
Zhang et al. Data owner based attribute based encryption
Wei et al. Cost-effective and scalable data sharing in cloud storage using hierarchical attribute-based encryption with forward security
Li et al. Attribute-based encryption with multi-keyword search
CN104780174A (zh) 一种内容安全存取方法
You et al. Hierarchical authority key-policy attribute-based encryption
CN104901949A (zh) 一种数据加密方法
CN114244567A (zh) 一种云环境中支持电路结构的cp-abe方法
CN110098926B (zh) 一种属性撤销方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1149135

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120822

Termination date: 20190527

CF01 Termination of patent right due to non-payment of annual fee