APP下载

基于QKD的组密钥服务协议研究

2014-04-02,,

中原工学院学报 2014年6期
关键词:密钥乘法量子

, ,

(解放军信息工程大学,郑州 450004)

当前,量子密码学发展迅速,量子密钥作为一种新型的密钥形式,以其独有的安全特性得到了广泛的重视,逐步走向商用[1]。

量子密钥服务模式与协议是制约量子密钥大规模服务应用的关键技术。从目前的研究来看,因实际功能需求不同,一般将量子密钥服务模式划分为单端随机数密钥服务模式、端端密钥服务模式和组密钥服务模式。其中,组密钥服务模式用于量子密钥分配(QKD,Quantum Key Distribution)网络环境下多方参与的通信[2-4],如视频会议、网络游戏、视频点播、股市交易、计费电视网络等。组播具有节省发送者资源、节省网络带宽及流量的特点。在当前量子密钥产生速率不高的实际背景下,量子密钥特别适合以组播的形式服务用户,如果能设计出高效、低代价的量子密钥组播服务协议,必将为量子密钥的大规模应用打下坚实的基础。因此,对量子组播密钥服务模式的研究与协议的设计具有十分广泛的应用价值。

1 量子密钥服务协议

进入21世纪以来,量子密码通信越来越得到重视,许多国家都致力于量子密码通信网络的建设,推动了量子密钥的实用化进程。对量子密钥进行怎样的管理?如何将量子密钥安全有效地供给需要的用户?这都是量子密钥服务协议所需解决的问题,但目前的研究甚少。

本文在对量子密钥服务理论研究的基础上,结合国家级重大项目研究的经验,为了更好地描述量子密钥服务用户的全过程,拟提出一种量子密钥服务协议。

这种量子密钥服务协议应用于多个QKD终端组成的网络环境,每个QKD终端下方都带有多个用户。根据量子密码学相关知识,直接相连的QKD终端以BB84协议为理论依据,完成量子密钥分配过程,产生一致的量子密钥。量子密钥服务协议用来接收这些量子密钥,经过一系列处理,将这些密钥送达需要使用密钥的用户。服务协议的具体过程如图1所示。

图1 量子密钥服务协议过程图

(1)密钥服务发现过程:服务模块对用户密钥申请响应,判断用户申请是否合法,给出相应的回应。

(2)密钥协同过程:服务模块根据所需密钥的数量,通过协同计算从缓存池中找到一致的密钥。

(3)密钥格式装配过程:按用户要求的格式进行装配密钥。

(4)密钥传输过程:通过信道传输,将装配好的密钥传输给对应的用户。

(5)密钥缓存池管理过程:密钥缓存池管理伴随密钥服务的整个过程;从QKD终端产生的量子密钥源源不断地进入缓存池,密钥协同过程又不断地从缓存池中取走密钥,对缓存池中的密钥进行实时管理;综合考虑缓存池中密钥的进入和取出,设计合理的管理方案,以保证缓存池中密钥在取出的同时,能由进入的密钥迅速填补,使得整个缓存池中密钥次序顺畅,存储合理,位置正确,为下一次的密钥协同过程打下良好基础。

2 量子组播密钥服务协议

组播情况下,参与通信的用户数量众多,群组成员的状态变化频繁,在量子密钥服务协议的基础上,增加适合于组播密钥服务的相关过程[5-10],可得到量子组播密钥服务协议。

根据实际应用的需要,本文将组播关系划分为一对多和多对多两种,以便于研究组播模式下的量子密钥服务协议设计。

为了方便描述量子组播密钥服务协议的具体过程,本文将复杂的QKD组网环境简化成3个QKD节点,每个QKD节点带有多个用户而组成的一个简单模型,这个模型基本涵盖了多种不同形式的组播组。在一个由3个QKD节点组成的简单网络中(见图2),QKD节点A与B、B与C之间都有光纤链路相连,而A与C之间没有信道,形成了4种不同的组播组。图2中上侧框内的用户B1~B5构成了组播组1,组播组1代表同一QKD节点下用户构建的组播组。图2中左上侧框内的用户A1、A2、B1~B5构成了组播组2,组播组2代表两两之间有信道直接相连的QKD节点下用户组成的组播组。图2中最大面积框内的用户A1、A2、B1~B5、C1、C4构成了组播组3,组播组3代表存在两两之间没有信道直接相连但包括中继的QKD节点下用户组成的组播组。图2中最下方框内的用户A3、C2、C3构成了组播组4,组播组4代表两两之间没有信道直接相连也不包括中继的QKD节点下密钥设备组成的组播组。

图2 3个QKD节点组成的简单网络中组播组划分情况

从实际应用来看,组播组3和组播组4涉及较少,所以应重点研究组播组1和组播组2中量子密钥服务协议的过程。在一对多和多对多两种通信模式下,本文将分别研究组播组1和组播组2中的用户是如何获得量子密钥服务的。

2.1 一对多通信模式

一对多通信模式存在一个发送者和多个接收者,发送者发送消息给目标群组内的成员,发送者一般被当作群组通信的发起者。量子组播密钥服务中的情况有所不同,用户向量子密钥服务模块申请,由量子密钥服务模块从缓存池中取出密钥,分给用户,可以将集成了量子密钥服务模块的QKD节点看成发送者,而将用户看成接收者。

在组播组1中,发送者为QKD节点B,接收者为用户B1~B5。由于B1~B5都属于QKD节点B,因此QKD节点B只需从所属密钥缓存池中选取足够量的密钥,复制5份,发送给用户B1~B5即可。

在组播组2中,由于构成组播的用户来源于两个有信道直接相连的QKD节点,QKD节点A和QKD节点B都是发送者,因此其服务协议的具体过程与组播组1存在差别。其具体过程对照见表1。

2.2 多对多通信模式

在多对多的通信模式中,每个参与者都是平等的,每个成员既是发送者又是接收者。这类应用的群组被称为动态对等群组(DPG,Dynamic Peer Group)。动态对等群组不存在特殊的控制节点,成员的关系体现为分布式协同关系。DPG通信主要应用于多个参与者交换消息和文档的分布式会议、分布式协同设计等环境。

表1 组播组1和组播组2中量子密钥服务过程对照表

仍然以组播组1和组播组2为例。对于组播组1,QKD节点B下的用户B1~B5组成一个动态对等群组,B1~B5既是发送者又是接收者。若整个组播组中同时存在多个对等通信对,则这些通信对中的用户要想相互通信,必须由量子密钥服务模块同时提供密钥服务。例如,图3中状态1有B1-B2和B3-B4两个通信对,它们同时向QKD节点B下的量子密钥服务模块提出密钥服务申请,密钥服务只在密钥协同过程有较大变化时进行。当状态1执行完后,整个组播组1的内部通信关系变化为状态2(B1-B5和B2-B4两个通信对),服务模块重新提供密钥服务。图3详细给出了组播组1在通信关系变化时密钥协同的过程。

图3 多对多情况下组播组1中的密钥协同过程

对于组播组2,QKD节点A下的用户A1、A2和QKD节点B下的用户B1~B5组成一个动态对等群组,A下的用户与B下的用户组成通信对时需要两个量子密钥服务模块相互协商,通过协同算法选取密钥。其具体过程如图4所示。

图4 多对多情况下组播组2中的密钥协同过程

3 关键技术

通过对量子组播密钥服务协议过程的具体描述,不难发现,在整个服务过程中,密钥协同过程是难点,是决定密钥服务成败的关键。

上文中简化了密钥协同过程,并且理想地认为密钥协同的环境安全可靠。但是,如果密钥缓存池已经被敌方掌握,取密钥时,显然就不能只设定一个起点而成块地选取密钥。

3.1 成块取密钥+置乱算法

本文仍然采取设定起点,成块取密钥的方法,但是,在取完密钥后,服务模块要对取出的成块密钥的次序进行一次重排序。例如,从缓存池中取出了次序为1到100的密钥,传输给用户前,对它们进行置乱重排,完全将1到100的次序打乱,即使敌方知道了是哪100比特的密钥,也不知道这100比特中的0、1是如何排列的,以此起到密钥保护的作用。

3.2 随机选取密钥

这里需要引入一个随机数生成算法:

将该算法应用到密钥协同过程,设M为缓存池中密钥的总容量值,若缓存池中密钥总量为2k(k为任意整数),取M=2k;根据约束条件,b要求与M互素,取b为3,由于M只有素因子2,并且a还要模4余1,所以,取a为5。这样,设定一个初始值y0,就能根据上述的递推公式,产生一系列的随机数。假如需要100比特的密钥,执行这个公式99次,得到y0~y99,相应得到x0~x99,根据产生的随机数,无序地从对应的缓存池中取出这些随机数位置上的密钥。这样窃听者即使知道了缓存池中的整个密钥信息,也无法判断按照什么顺序取了哪些位置上的密钥,从而无法获得密钥信息。

由上述算法提供的100个随机数,因为其中存在模的运算,在产生随机数时,必然存在周期的问题。假如,周期小于需要的随机数个数,这样,取得的100个数中将会产生重复,给取密钥带来麻烦。要解决这个问题,前面公式中a、b、y0的取值十分关键。可以通过计算,对参数适当取值,从而使得随机数的周期尽可能大。由于每次需要取的密钥量必然远小于缓存池的总容量,进而可以保证需要取的随机数的个数也远小于随机数的周期,因此产生的随机数就不会重复,选取密钥时也不会有重复的情况。

在组播情况下,同时随机选取多组不重叠的密钥,需要用到一种新的并行伪随机数生成方法——两层乘法同余算法。乘法同余算法其实是上文中提出的加法同余算法在常数b为零时的情况,当b为零时,得到乘法同余算法:

xn+j=(ajxn)modM

简化得到:

xn+j=(ajmodM)xnmodM

根据乘法同余算法所具有的属性,可在动态可扩展机群系统设计一种两级线性同余并行伪随机数生成算法。

假设有P组通信用户提出密钥服务申请,管理单元在发现申请后,首先由一个主乘法同余算法xn=axn-1modM生成P个随机数{x1,x2,x3,…,xp},将这P个随机数作为二级的P个乘法同余生成器的种子。

接着,根据本次计算的规模,计算二级乘法同余算法的乘法系数A(j):

A(j)=aj,j=1,2,…,P

根据前面的简化算法,乘法系数A(j)在实际计算时,可以采用如下公式完成:

A(j)=(…((a*amodM)*amodM)…*a)modM

在得到二级P个乘法同余生成算法的乘法系统和种子后,分别计算这P个二级乘法同余算法,得到P组随机数。其具体算法如下:

由于此两级线性同余并行伪随机数生成算法既是单随机序列的并行划分,同时又表现为相同的生成算法(乘法同余算法)、不同参数(乘法系数和种子)多生成器独立并行运行,因此可保证随机数的生成效率。更为重要的是,该并行随机数生成器生成的随机数事实上来源于一个乘法同余算法,在保证这个乘法同余算法的有效性后,也能保证并行序列的独立、不重叠性。这一点对密钥协同过程的意义重大,可以保证从密钥缓存池中同时为多通信组取得的密钥不会产生重叠,从而保证密钥的使用达到“一次一密”的要求,这就从理论上确保了整个通信过程的绝对安全。

4 安全性分析

(1)前向安全性:当有成员离开组播组时,整个组播组中的通信关系发生变化,会立即停止使用这次分发来的密钥,然后将新的通信关系和密钥的需求量重新上报量子密钥服务模块,服务模块协商后,从缓存池中取出新的密钥,发给新的通信用户。这就保证了离去的用户无法获知离开后的密钥。

(2)后向安全性:当有新的成员加入组播后,整个组播的通信关系和成员发生改变,组播会停止正在使用的密钥,然后向量子密钥服务模块提出新的密钥服务申请。这就保证了新加入的成员不能获知加入前的组密钥信息。

(3)抗同谋共解:组播中成员获取的密钥都是由量子密钥服务模块从缓存池取得的,成员在接收到密钥之前对密钥的信息丝毫不知。因此,即使组播中多个成员相互联合,也无法得知密钥的任何信息。

(4)中间人攻击:在实际应用中,如果遇到中间人攻击,可以在密钥格式装配过程中,在密钥信息的头部加入认证信息,接收者收到密钥后,首先通过约定的方式对状况认证密钥进行检验,检验合格方可,以此确保后面的密钥安全可靠。

5 结 语

如今,量子密码无论是在理论研究还是在实际应用中都取得了长足的进展,量子密钥的协商产生技术已经十分成熟,制约量子密钥大规模应用的关键技术就在于量子密钥服务与管理的相关技术。本文正是着眼于这一现状,根据实践经验,将研究重点放在当前较少涉及的量子密钥服务领域,对其中诸多问题提出了看法与解决思路。

当然,本文仅仅是对量子密钥服务,尤其是组密钥服务进行的一些初步探讨,还远未达到可以应用的层次。在后续的研究中,将会理论联系实际,完善量子密钥服务协议,最终以量子密钥服务模块成品的形式展示密钥服务的全过程。

参考文献:

[1] Gisin N,Ribordy G.Quantum Cryptography[J].Reviews of Modern Physics,2004,74(1):145-195.

[2] 曹博.量子保密通信网络及其协议研究[D].长沙:国防科学技术大学,2010.

[3] 许方星.安全量子密钥分配的实用化研究[D].合肥:中国科学技术大学,2010.

[4] 吴张斌,陈光,杨伯君.量子密钥分配网络分析[J].光通信研究,2009,152(2):22-24.

[5] 张江,张萌,陈春晓,等.高效的分布式组密钥协商机制[J].清华大学学报,2008,48(1):101-105.

[6] 张玉臣,王亚弟,韩继红.自组网环境下基于组合公钥的分布式密钥管理[J].计算机科学,2011,38(10):75-77.

[7] 赵秀凤,徐秋亮,韦大伟.群组密钥协商协议的安全性分析方法研究[J].计算机科学,2011,38(6):145-148.

[8] 陈卫东,刘广伟,刘泽超.分布式组播密钥管理协议中的组密钥生成算法研究[J].小型微型计算机系统,2010,31(7):1307-1310.

[9] 赵龙泉.基于密钥树的组密钥更新技术研究[D].郑州:解放军信息工程大学,2010.

[10] 刘广伟.安全组播中的组密钥管理协议研究[D].沈阳:东北大学,2009.

猜你喜欢

密钥乘法量子
算乘法
《量子电子学报》征稿简则
《量子电子学报》征稿简则
幻中邂逅之金色密钥
幻中邂逅之金色密钥
我们一起来学习“乘法的初步认识”
密码系统中密钥的状态与保护*
《整式的乘法与因式分解》巩固练习
决定未来的量子计算
把加法变成乘法