一种基于哈希函数链的组群通信密钥分发机制

时间:2022-07-21 05:20:30

一种基于哈希函数链的组群通信密钥分发机制

摘要:根据哈希函数链的单向性,设计出一种基于哈希函数链的密钥分发机制,通过将哈希链与对称加密算法和非对称加密算法的结合应用,为每个用户组的成员分发特定的服务密钥,实现了密钥分发的实时性、动态性和安全性。

关键词:组群通信;密钥管理;哈希函数

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)33-1353-02

A Key Distribution of Group Communication Based on Hash Chains

PANG Guang-qian

(Beijing Jiaotong University,Beijing 100044,China)

Abstract: Based on hash chains, a real time key distribution of group communication is designed.In this scheme with the hash chain the special application key to the user in the group is provided,and sending the keys online and ensure its safety.

Key words: group communication;key management;hash

1 前言

组群通信作为计算机网络通信技术的一个重要应用,是一种高效的信息交互模式。与单点通信不同,组群通信的基础是建立在服务器和一个用户组之间的关系之上,在组里的用户不能单独和信息源建立独自的安全通信机制。所以组群通信既要保证信息的安全性,又要限制非组成员对信息内容的访问。解决这一问题的通常方法是在组成员间使用非组成员不知道的密钥对信息进行加密,这就产生了组群通信密钥管理问题。

目前存在的组群通信密钥管理方法有很多种,但大多数方案都未曾对群组通信的动态性特点予以充分的估计,无法实现对组群信息源和组内用户进行有效控制,也就是说无法防止非法用户和非法组群信息源。并且大多数方案均采用离线方式分发密钥,这一模式极大地限制了系统的在线安全性能和效率。针对于目前组群通信安全体系中的不足,本文根据哈希函数的单向性,提出了一种基于哈希函数链的密钥实时分发机制,通过与对称性加密算法和非对称性加密算法的结合应用,为每个用户组的成员分发特定的服务密钥,实现了密钥分发的在线性和安全性。

2 哈希算法与哈希函数链

哈希(Hash)算法是把任意长度的输入数据经过算法压缩,输出一个尺寸小了很多的固定长度的数据,即哈希值。哈希值也称为输入数据的数字指纹(Digital Fingerprint)或消息摘要(Message Digest)等。Hash函数是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数,Hash函数的数学表述为:h = H(M) ,其中H( )为单向散列函数,为任意长度明文,h为固定长度散列值。Hash函数具备以下的性质

1) 给定输入数据,很容易计算出它的哈希值;

2) 反过来,给定哈希值,倒推出输入数据则很难,计算上不可行。这就是哈希函数的单向性,在技术上称为抗原像攻击性;

3) 给定哈希值,想要找出能够产生同样的哈希值的两个不同的输入数据很难,计算上不可行,在技术上称为抗碰撞攻击性;

4) 哈希值不表达任何关于输入数据的信息。

哈希函数链是按递归的形式产生的,首先根据需要选择参数X和哈希函数链的长度n。哈希链的第一个值就是X本身,哈希链第二个值为H(X),第三个值为H(H(X)),……依此类推,哈希链的第n个值为对第n-1个哈希链的值进行一次哈希运算,递归形式的定义可以表示如下:

根据哈希函数的定义和单向性可知,对于H1(X),我们不能由H1(X)反向求出X的值,并且根据X找到X',使得H(X)=H(X')很难。对于与任意的i(i

3 基于哈希函数链的组群通信实时密钥分发

3.1 密钥分发系统模型

在图1所示的模型中,密钥服务器根据应用服务器的不同服务,进行有针对性的密钥分发。首先在应用服务器开始某项服务之前,准备申请该项服务的用户向密钥服务器进行注册,成为服务器的注册组成员,注册完成后由密钥服务器根据当前服务的进度向用户发送当前通信的密钥,从而保证密钥的实时性。应用服务器的服务开始后,注册组内的成员可以直接向密钥服务器发送申请信息申请该项服务,密钥服务器接收到申请信息后经过确认用户的合法性后发送服务密钥给用户,此时应用服务器和用户之间就可以通过此密钥进行通信。当用户申请退出该服务时,只需向密钥服务器发送退出服务的申请信息即可,经密钥服务器确认后在应用服务器中将该项服务中此用户的信息删除。

3.2 方案的描述

密钥服务器主要用于产生哈希函数链,将两个哈希函数链产生的值分别作为组群通信时的密钥和处理密钥更新时的认证。在整个方案中还用到了两种算法:对称性加密算法和非对称性加密算法。对称性加密算法主要用来在密钥分发时对信息进行加密;非对称加密算法主要用在处理用户的申请加入和退出时,实现对用户身份的认证。在客户端,每个用户都有与密钥服务器相同的对称性加密算法和非对称性加密算法。密钥服务器与所有用户都连接于普通的信道,任何两者之间不存在秘密通道。

3.2.1 系统初始化

1) 服务器初始化

首先密钥服务器选择随机数R和S,根据服务的次数选取合适的n分别生成哈希链:

H0(R)、H1(R)、H2(R) ………………… Hi(R)…………… Hn-1(R)、Hn(R)

H0(S)、H1(S)、 H2(S) ………………… Hi(S)…………… Hn-1(S)、Hn(S)

这两个哈希链满足:H0(X)= X,Hm(X)=H( Hm-1(X)),0

其次服务器根据自己的非对称加密算法,产生一对密钥(a,e),a为私钥,e为公钥并将公钥e广播。

2) 用户初始化

当用户Ci需要与服务器建立连接时,根据非对称算法产生属于自己的密钥对(bi,ci),bi为私钥,ci为公钥。

3.2.2 用户申请注册

用户用密钥服务器广播的公钥e加密自己的身份信息以及申请注册信息,并将加密后的信息发送到密钥服务器。密钥服务器利用自己的私钥a将收到的信息解密,获得用户的申请注册信息,然后再用用户的公钥发送申请成功信息,至此用户申请注册完毕。此过程是每一个要在这个系统中进行通信的用户必须进行的过程。

3.2.3 密钥的分发

在此项服务中,在应用服务器第一次开始服务时,用户Ci用密钥服务器广播的公钥e加密自己的身份信息以及申请服务信息RI1,得到加密的信息I1,并且将信息I1发送到密钥服务器中。密钥服务器利用自己的私钥a将收到的信息I1解密,获得申请服务信息RI1。密钥服务器根据申请信息,用用户Ci的公钥ci加密自己的身份信息DR和初始会话密钥Hn(R)。得到加密信息K并发送给用户Ci。用户得到信息K时,用自己的私钥bi解密,获得此次应用服务的密钥Hn(R)。

在第i(i>1)次服务时,密钥服务器使用Hn-i+2(R)作为对称加密密钥加密新的密钥Hn-i+1(R),生成K。然后用Hn-i+2(S)作为密钥计算(DR,K)的认证码得到ACi1,使用Hn-i+2(R)作为密钥计算(DR,K,ACi1)的认证码得到ACi2,密钥服务器将(DR,K,ACi1,ACi2)发给用户Ci,用户Ci收到(DR,K,ACi1,ACi2)后,从数据库中取出密钥Hn-i+2(R),利用Hn-i+2(R)作为密钥验证(DR,K, ACi1)的消息认证码ACi2是否正确;利用Hn-i+2(R)作为密钥,解密计算出Hn-i+1(R),然后比较H(Hn-i+1(R))与Hn-i+2(R)是否相同。如果消息认证码ACi2正确而且H(Hn-i+1(R))与Hn-i+2(R)相同则确认服务确实来源于密钥服务器,并且用Hn-i+1(R)更新数据库中应用服务器的密钥Hn-i+2(R)。否则拒绝处理该次的密钥更新。

3.2.4 用户随机加入

当有随机成员Ci加入时,应用服务器处于第j次服务,Ci首先要向密钥服务器注册。注册后,用户Ci用密钥服务器广播的公钥e加密自己的身份信息以及申请服务信息RIj,得到加密的信息Ij,并且将信息Ij发送到密钥服务器中。密钥服务器利用自己的私钥a将其解密,得到申请服务信息RIj。密钥服务器根据申请信息,用用户Ci的公钥cj加密自己的身份信息DR和此时的会话密钥Hn-k+1(R)。得到加密信息K。用户得到信息K时,用自己的私钥bi解密,得到会话密钥Hn-k+1(R)。此次服务的密钥就为Hn-k+1(R)。从而使Ci进入正常的服务过程中。

当已注册或中断的用户加入时,由于用户已经进行了注册,故不须注册,只需要进行b中注册服务后面的步骤就可以了。

3.2.5 用户退出

当用户C申请退出该项服务时,用户C用密钥服务器的公钥e加密自己的身份信息以及申请退出信息EX,得到加密的信息I,并发送到密钥服务器中。密钥服务器利用自己的私钥a将得到的信息I解密,得到申请退出信息EX。密钥服务器用用户C的公钥发送申请退出信息,并且在该项服务的用户服务名中将该用户删除,至此用户申请退出完毕。当系统这次短期服务结束后,再次进行服务时,该用户如果不申请的话,密钥服务器就不会将密钥分给该用户。用户只有再次发送申请服务信息,才能再次开通服务。

4 性能分析

本方案的各种性能主要依赖于密钥链的计算和长度,密钥链由哈希函数生成。系统在服务开始之前就根据需要通过随机产生的随机数生成两个密钥链,分别用于密钥的分发和信息的验证。当有新成员加入时,首先进行申请,用户获得服务的正式密钥后,就采用对称加密算法结合系统分发的密钥对信息进行解密和验证。相对于非对称加密算法用户和服务器的计算量都大量减少。对组内的成员发送信息时,只需要使用系统给该组内成员提供的密钥对信息进行加密即可,不需要针对每个成员设定单独的密钥,从而提高了系统的工作效率。

本方案将哈希函数链与非对称性算法相结合,通过用户和服务器之间的多次握手建立用户对服务器的依赖关系,实现密钥的在线分发。在系统对密钥进行更新过程中,系统首先用当前的密钥对新密钥进行加密,然后使用当前用于签名和认证的密钥链中的密钥分别对加密后的密钥进行签名和认证。这样使得用户在收到密钥更新信息时都对发来的密钥更新信息进行认证检测,错误的或经过篡改的更新信息不可能使验证码正确。从而保证了在保密状态下的通信使攻击者不可能从不断变化的通信中获得会话的密钥。

对于已经退出服务的用户和非法的用户,即使得到所有已经用过的密钥也不能猜测出下次系统分发的密钥。因为使用过的密钥来源于一个哈希函数链,并且分发的时候是从哈希函数链的最后一个开始的,根据前面介绍的哈希函数链的单向性,攻击者不可能由当前密钥计算出下一个密钥,从而使得非授权的用户不能从即得的任何信息得到下一次服务的密钥,从而保证了密钥管理的前向安全性。

5 结束语

根据哈希函数的单向性,通过两次利用哈希函数链,实现了信息的加密、认证和签名功能,同时保证了攻击者即使获得了以前的所有密钥也不能推断更新后的密钥。当通信双方发生争执的时候,双方分别向仲裁者提供各自信息后,通过分析可以推出是哪一方作弊,从而保护用户的合法权利。该方案满足组群通信密钥分发时的安全性、在线性、实时性需要,适用于通信系统中由服务器进行密钥管理的短期的具有安全需求的在线服务。

参考文献:

[1] 王巍.多播安全中群组密钥管理方案的研究与设计[D].西安电子科技大学,2005:8-12.

[3] 吴松,等.安全群组通信系统中的密钥分配机制[J].华中科技大学学报(自然科学版,2006(S1):26-29.

[4] 王巍,马建峰,杨世平,等.动态对等群组中高效安全的群组密钥管理方案[J].吉林大学学报,2008,38(1):131-136.

[5] 郎为民,谭珂科,靳焰.基于单向密钥链的传感器网络认证方案[J].理工大学学报,2005:12-13.

注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”

上一篇:JSP中文问题浅析 下一篇:基于FFT并行算法的并行I/O性能的研究