多播安全中的批量密钥更新问题研究
来源:99网
维普资讯 http://www.cqvip.com 云南大学学报(自然科学版),2002,24(5):335 ̄340 Journal ofYunnanUniversity CN 53—1045/N ISSN 0258—7971 多播安全中批量密钥更新问题研究 陆正福 ,李亚东 一,于光德 (1.云南大学数学系,云南昆明650091;2.云南省财政厅。云南昆明 650021) 摘要:从密钥管理与多播安全通信的循环模型出发,引出多播安全通信中组密钥更新的可扩展性需求和批 量处理需求.基于密钥图方案给出了更新的实现算法,以及批量密钥更新的实现算法. 关键词:多播安全;密钥更新;密钥图;平衡树 中图分类号:TP 393 文献标识码:A 文章编号:0258—7971(2002)05—0335—06 随着Internet网络的广泛应用。多播通信以其 能够大大节省网络带宽和发送者资源而广泛地应 用在Internet视频传输、股市报价、多媒体远程会 议、网络游戏等诸多领域。成为一种高效、快捷的数 据传输方式.多播技术已获得了包括Cisco。 AT&T,IBM。Intel。Microsoft等业界的众多厂商支 持,并且已经获得一定范围的商业应用.例如。Cis. CO公司采用IP/TV来进行实时视频流多播用于公 司内部的会议和培训;亚运村采用Cisco设备构造 北辰园区网络提供IP多播业务等等. 处理一个用户加入或离开所需要的密钥更新。本文 给出了该方案的更新实现算法.在对安全性要 求不是很高的应用系统中(比如付费电视系统),若 采用更新。由于需要对密钥更新消息进行签 名。以及由于多播中组成员变化的频率高,会出现 新产生的密钥根本未使用就被废弃的情形。浪费服 务器资源,所以更新效率不高.为此我们考虑 对组成员加入和离开采用批量处理来提高系统效 率和可扩展性。本文给出_『批量密钥更新的实现算 法. 为 保护多播通信内容。需要安全的多播通 信.一个多播组通过一个组成员共享的组密钥或会 话密钥的对称密钥可以实现安全组通信(提供组成 员之间的通信保密性、认证、数据完整性等安全服 务).与单播通信相比,多播通信中由于组成员的动 态性,为了达到较高的安全性,组密钥以及用于方 便组密钥管理而引入的有关辅助密钥在成员的离 开和加入时应该更新,以使得离开的成员无法访问 1 密钥管理与多播安全通信的循环模型 要实现一个系统的安全通信。我们可以用以下 的循环模型来描述: 第一阶段(A):对等实体认证和系统处初始化 (包括密钥加密密钥的产生); 第二阶段(K):密钥分配(包括组密钥的产生 和传送); 第三阶段(D):安全数据单元的传送; 第四阶段(U):密钥更新,产生新的组密钥,返 回到第二阶段或第一阶段. 上述4个阶段可以概括为(AKDU)N或A (KDU)N,其中N是循环次数.引起循环的事件与 系统的安全策略有关.在多播安全中,组密钥的更 新和组成员的变化有着密切的关系,成员加入组, 目前的通信(向前安全性),而一个新加入的成员无 法访问以前的通信(向后安全性),因而组密钥更新 问题是整个多播安全问题的核心问题. 本文提出 一个密钥管理与多播安全通信的 循环模型。从该模型出发引出多播安全中密钥更新 问题的可扩展性需求以及密钥更新批量处理需求. 基于密钥图的密钥更新方案[1・2]是一种可扩展的 密钥更新方案,方案集中讨论了更新,即每次 成员离开组,成员由于可能泄密而被排除,以及周 ・收稿日期:2002一O1—07 基金项目:云南省教育厅科研基金资助项目(0111155);省院省校合作项目:金融数学学科建设. 作者简介:陆正福(1965一 ).男.副教授,主要从事网络信息安全、信息编码和网络计算方面的研究 维普资讯 http://www.cqvip.com 336 云南大学学报(自然科学版) 第24卷 期性更新密钥等安全策略均可引起循环的发生.循 环次数取决于:系统的安全性要求,新成员的加入, 老成员的离开,因而多播组的动态性越高,循环次 数越大.循环体的计算量和传输量与组的规模成正 比,因而多播组的规模越大,计算量和传输量越大. 由此我们知道,大规模动态多播组密钥分配在计算 量和传输量上都必须考虑可扩展性问题,即由于密 钥更新、数据传输、加密所引起的额外开销不应与 组的规模呈线性增长,某个主机加入或离开多播组 不应该影响组的其它成员(1影响n的可扩展性). 关于N的研究:对于加入事件,离开事件,周期性 更新事件我们可以对它们实施成批处理,以减少循 环次数,从而提高密钥管理方案的效率,提高可扩 展性. 2密钥图方案 一般地,成员加入多播组所引起的密钥更新比 成员离开多播组所引起的密钥更新要简单得多.当 新成员加入多播组时,利用新成员的专用密钥加密 新产生的组密钥单播传送给新成员,利用原来的组 密钥加密新产生的组密钥多播传送给原来组的成 员,即可实现密钥更新.当有组成员离开多播组时, 由于原来的组密钥不能使用,一个简单的密钥更新 方案就是利用每个组成员的专用密钥对新产生的 组密钥加密进行单播传送.这样的密钥方案中,用 户加入组时加密次数2,用户离开组时加密次数为 组成员个数n减1(即n一1),因而不具有可扩展 性. wGL方案和WHA方案引入了密钥图概念, 这是多播安全组密钥管理方案的一个重大突破, WGL方案的特例就是WHA方案.在这2个方案 中,由一个可信、安全的密钥服务器利用密钥图对 密钥进行管理.密钥图是一个连通非循环图,有2 种类型的节点:用户节点和密钥节点.用户“拥有 密钥k当且仅当在密钥图中有一条从“节点到k节 点的直通路.密钥树和密钥星型结构是2种特殊的 密钥图.在密钥树中组的成员为密钥树的叶子节 点,根节点为组密钥,其它中间节点为用于密钥更 新的辅助密钥.多播组中每个成员拥有从叶子节点 到根节点这条路径上的所有密钥.当成员离开组或 有新成员加入时,组管理者需要更新组密钥和相应 的辅助密钥.这种方案中。成员离开时密钥更新所 需要加密的次数为O(dlog2),其中7l为组成员的 个数,d为密钥树的度数.为 减少加密次数, McGrew等人提出了OFT方案【3l,Canetti等人引 入伪随机函数[ ,国内学者也提出 类似方案[51. 这些改进方案,将密钥更新的加密次数从 O(dlog2)降低到了O(1og ̄).本文集中讨论WGL 方案中基于密钥树结构的密钥更新方案的实现和 批量密钥更新算法,其它方案可以类似实现.下面 给出多播组中成员加入和离开时采用面向组…1的 密钥更新策略的更新过程,如图1所示,方框 代表用户节点,圆圈代表密钥节点,与用户节点直 接相连的密钥节点为用户的专用密钥(即k1,k2, …),密钥更新时专用密钥不需要更新.图1(a)中 有8个用户,假定用户u9想加人多播组(从(a)到 (b)),密钥服务器找到u9的加入节点 ,此时需 要将密钥k卜8更新为k卜9,将b8更新为k789.密 钥服务器产生如下的密钥更新消息,多播到整个组 ((b)中的9个用户),单播u9所需要的密钥给u9: s一“1,…,u9:{kx~9} 8,{b89} 8,s—ug: ~{kx~9,b89} , 其中{k } 表示密钥k 用密钥k加密. 图1密钥树例子 Fig.1 Example of a keytree 假定用户u9想离开多播组(从(b)到(a)),此 时密钥服务器需要更新u9所拥有的密钥,即将密 钥k1~9更新为k1~8,将b89更新为b8.密钥服务 器产生如下的密钥更新消息,多播到整个组: 维普资讯 http://www.cqvip.com 第5期 陆正福等:多播安全中批量密钥更新问题研究 337 s一121,…,u8:{b8} ,{b8} ,{是1~8} ,,, 1足1~8i 56,1/ ̄1--8} 8, 案的实现方案.由于更新效率不高。在对系统 安全要求不是很高的场合,我们可以对密钥更新进 行批量处理.在批量密钥更新方案中,密钥服务器 收到用户的加入请求或离开请求时,不是立即更新 密钥,而是要等待一定的时间间隔.在这个时间间 隔内,由于网络的并发性以及组成员变化的频繁 接收到密钥更新消息后,用户提取它所需的密钥更 新消息,比如u8只需要{是卜8}k,{b8}k. 从这个例子中我们可以看到,服务器的计算量 和传输量与密钥更新所需的加密次数呈比例增长, 所以可以利用服务器的加密次数来衡量服务器的 开销.若密钥树的度数为d,组成员数为 ,且密钥 树是完全平衡树,则一个成员加入时服务器开销为 21og, ̄,一个成员离开时服务器开销为dlog ̄一1.文 性,有一批成员请求加入或离开多播组,此时密钥 服务器对一批成员进行处理,进行批量密钥更新, 降低服务器的开销. 3.1数据结构本节给出WGL方案实现算法和 批量密钥更新算法所使用的数据结构.我们定义3 个类:User,KeyNode,KeyTree.其中User是用户 献[1]中通过试验分析得出d=4是最优的树的度 数. 节点类,KeyNode是密钥节点类,KeyTree是密钥 树类.基于OMT的表示方法,我们给出这3个类 的描述,如图2所示. 3批量密钥更新 在文献[1]中给出了密钥更新的过程描述,但 是在上节图1(b)中,若有新的用户加入或先后有 多个用户离开,密钥树应作适当的变化和调整,具 3.2 WGL方案的实现WGL方案中对成员单个 进行处理,即进行更新,包括新成员加入组和 成员离开组2个算法,下面给出更新的算法描 述。其中是为树的度数. 体实现文献[1]中没有解决,在此我们给出基于密 钥树的密钥更新算法,亦即WGL方案或WHA方 User KeyTree User(…) KeyTree(…) virtual ̄KeyTree0 KeyTree Insert(const KeyNode knode、 KeyTree Insert(const KeyTree ktree) virtual-User0 byte[】key long IDNo KeyNode . KeyNode(…) virtual-KeyNode0 byte[】key int ChildNumber int BalanceFactor int Depth KeyTree Delete(const KeyNode knode) KeyTree Delete(const KeyTree ktree) KeyTree Balance0 KeyTree ReKey0 KeyTree Join(const User user) KeyTree Join(const UserList user) KeyTree Leave(const User user) KeyTree Leave(const UserList user) KeyNode Root KeyNode Parent bool RekeyFlag bool DeleteFlag KeyNode Child[】 图2算法的数据结构 Fig.2 Data structures of the algorithm 维普资讯 http://www.cqvip.com 338 云南大学学报(自然科学版) 第24卷 A.单个用户加入算法:(1)由用户数据(如用 户IDNo)创建一个用户节点“; (3)选择密钥树中最浅之叶节点s; (4)创建一个密钥节点£,并以其为根,分别以 “和s为左右子女创建一棵树代替原来的S节点 (如图3); (2)若存在可插入节点(即非叶子节点中 ChildNumberva k的节点),选一个最浅(Depth值 最小)的可插入节点s,并将“作为s的子女直接 插入,转(5); (5)设置密钥更新标记RekeyFlag; (6)根据密钥更新标记更新密钥. O 图3单个用户加入 Fig.3 Single uSer joining 图4单个用户离开 Fig.4 Single user leaving B.单个用户离开算法: 衡.若树不平衡,则用JOIN中的一个用户£代替M, (1)由用户数据(如用户IDNo)找到其在密钥 树中的位置(即叶子节点“); (2)设“的父节点为P,若P.ChildNumber> 2,则直接删除“,转(5); (3)删除“和其父节点 ; (4)将“原来的兄弟节点s插入到原来P的位 置(如图4); 并修改“节点的父节点的ChildNumber和设置密 钥更新标记RekeyFlag;若树平衡,则设置密钥更新 标记RekeyFlag.设从JOIN中选择 X个用户用 于代替离开用户节点,则J中还剩J—X个.若J— x>0。则从剩余的L—x个离开用户中任选J—x 个替换.剩余的L—J个离开用户调用单个用户离 开算法的(1)~(6),转(4); (3)若J>L,则用JOIN中的用户逐个代替 LEAVE中的用户。并设置密钥更新标记 RekeyFlag,之后执行以下的步骤.(L中最浅叶子 (5)设置密钥更新标记RekeyFlag和修改平衡 因子BalanceFactor; (6)调用密钥树平衡化算法(该算法详见 4.4); 数为L 其它叶子数为L ). (a)将JOIN中剩下的用户插入到可插入节 (7)根据密钥更新标记更新密钥. 3.3 批量密钥更新 在进行批量密钥更新时,新 加入成员进入加入队列JOIN中。离开成员进入离 开队列LEAVE中.设加入队列和离开队列中用户 点。并设置密钥更新标记RekeyFlag.选可插入点时 以“深度较浅”和“设置 密钥更新标记”的节点优 先;设这样的操作JOIN有S个用户被插入到 可插入节点,若S=J—L。则转(4); 数分别为J和L,则批量密钥更新的算法描述如 下: (b)JOIN中剩余A=J—L—S个节点.若 (1)若J=L。用JOIN中的用户逐个代替 LEAVE中的用户。并设置相应的密钥更新标记 RekeyFlag,转(4); lI≤Ls,则将△个加入用户插入到Ls个节 点上,并设置相应的密钥更新标记,转(4);否则,若 (2)若J<L'根据LEAVE中的用户数据(如 用户IDNo)找到其在密钥树中的位置(按最浅的 叶子节点优先的原则选择LEAVE中的用户),即 厂l A 1j≤Ls ,则在L 中选择l厂 ^ ]j r soot个 节点,在每个节点上插入一棵高为2的子树,此时 可插入sroot・(k —1)个节点,设置相应的密钥更 相应的叶子节点“.判断删除该节点后,树是否平 维普资讯 http://www.cqvip.com 第5期 陆正福等:多播安全中批量密钥更新问题研究 339 新标记,转(4); 衡算法,该算法每调平衡一次所引起的额外加密次 数为树的度树k一1. (C)若A:J—L—S—L ・(k2—1)>0, 按“深度较浅”、“兄弟节点设置了,密钥更新标记” r A ] 根据我们的算法,用户的加入过程自动保持密 钥树的平衡,所以只有用户离开的过程需要平衡 化,设被删除的节点为“,删除后树不平衡,则“为 最浅叶子节点.密钥树的平衡化算法如下: 和“离开用户节点”优先的原则选择I L圮一lJ 1个节 点,插入JOIN中剩余加入用户,并设置相应的密钥 更新标记; (1)设“的父节点为 若p.ChildNumber> 2,则删除“后树平衡,不需执行平衡化算法.否则 需做平衡化处理,此时从 开始向上逐渐检查其祖 先的平衡因子BalanceFactor,可找到包含 的最小 不平衡(高度最小)子树,设其根节点为r’设删除 前包含“的r的子树为A,且高为h+1,则r的其 它子树的高为h+1或h+2.因为删除“前树是平 衡的,删除“后树不平衡,所以至少有一棵子树高 为h+2,设其为C’且该子树的根节点为s; (2)密钥树按图5所示进行变换. (4)根据密钥更新标记更新密钥. 3.4 密钥树的平衡化算法 在基于树的密钥更 新方案中,方案的效率与树的平衡性有关.如果树 中从根节点到任何两个叶子节点的距离之差的绝 对值不超过1,则我们称这棵树是平衡的.若树不 平衡,则可能出现从根节点到叶子节点的距离接近 多播组的大小n,密钥更新时服务器开销较大,因 此在多播安全密钥更新方案的具体实现时,必须考 虑密钥树的平衡性.我们给出了,一个密钥树的调平 (a)删除前(before deleting) (b)删除后(after deleting) (c)平衡树(balance tree) 图5密钥树的平衡化 Fig.5 Make the key tree balanced 4批量密钥更新方案之例 设当前多播组的组成员及密钥树如图1(b)所 不. 需的加密次数为12次.批量处理后密钥树变成图 7. 5结束语 本文从密钥管理与多播安全通信的循环模型 出发,引出多播安全通信中组密钥更新的可扩展性 需求和批量处理需求.基于密钥图的密钥管理方案 是多播安全中组密钥管理方案的一个重大突破,本 文在现有方案的基础上,给出r密钥更新方案的独 假设用户“s,U8离开组,“】0加入组,若采用 WGL方案的更新算法,采用面向组的密钥更 新策略,需要的加密次数为14次,而采用批量处理 所需的加密次数为8次.批量处理后密钥树变成图 6. 设当前多播组的组成员及密钥树如图6所示, 假设用户u9,u3离开多播组,“11,“12,“13加人多 立更新实现算法.为了,提高方案的效率,提出了,批 量密钥更新方案,该方案具有较高的效率和一定的 应用前景.无论是更新还是批量更新算法都适 用于基于密钥树的密钥更新方案. 播组,若采用更新算法,采用面向组的密钥更 新策略,需要加密次数为16次,而采用批量处理所 维普资讯 http://www.cqvip.com 340 云南大学学报(自然科学版) 第24卷 g 图6批量密钥更新 Fig.6 Batch rekeying 图7批量密钥更新 Fig.7 Batch rekeying 致谢:本文作者感谢“多播安全理论”讨论班全 体成员的讨论和合作. tecturs[S].e ENS0N D。Ⅳ[CGREW D,SHERMAN A.Internet [3] BAI.draft.2000.Key management for large dynamic groups: 参考文献: [1]WANGCK。GOUDAM,LAM S S.Secure grouptom— One—way function trees nd amortaized initialization[S]. [4] CAN IvTI R,GARAY J,ITKIS G,et a1.M ticast Se— curity:a taxonomy nd asome efficient constructions[J]. In Proc.1999,708—716. munications using key raphsEgJ].IEEE/ACM Transac— tions on Networking,2000,8(1):16—30. [2] WALLNER D,HARDER E,AGEE R.RFC 2627, 1999.Key management for multicast:issues and archi一 [5] 张斌,邬江兴.组播安全中的组密钥更新问题[J]. 计算机科学,2001,28(9):45—47. A study of the batch rekeying for multicast security LU Zheng-fu ,LI Ya.dong 一,YU Guang.de (1.Department of Mathematics,Yunnan University,Kunming 650091,China; 2.Finance Bureau of Yunnan Provice,Kunming 650021,China) Abstract:According to the cyclic model of the key management and multicast secure communications, scalability and batch proce. ̄s requirements for multicast key management approaches are studied.An individual rekeying and batch rekeying algorithm is presented. Key words:multicast security;rekeying;key graph;balance tree