QKD 网络中的认证组密钥协商协议设计
2021-05-12张飞扬胡顺仿朱林全李扬邢镔
张飞扬,胡顺仿,朱林全,李扬,邢镔,4
(1.四川大学计算机学院,成都610065;2.重庆工业大数据创新中心有限公司,重庆400707;3.西南通信研究所保密通信重点实验室,成都610041;4.工业大数据应用技术国家工程实验室,北京100043)
0 引言
多方群组通信是现在互联网中尤为重要的一种网络应用,例如远程视频会议、多人在线聊天、大型的网络游戏,等等,这类组应用与一般的应用相比,具有数据量大、时间要求高、通信时间长、成员通常具有很强的动态性和自由度等特点[1],因此保障安全的群组通信显得尤为重要,而信息加密是最有效的办法。
传统的信息加密方法分为两种:对称加密和非对称加密。所谓对称加密,指的是对数据的加密和解密用的是同样的密钥,它是最快速、最简单的一种加密方式。而非对称加密,又称为公私钥系统,指的是利用不同的公钥私钥,对数据在两端进行不同的操作。在典型的加密系统中,消息发送方通常称为Alice,消息接收方通常称为Bob,如果使用对称加密算法,Alice 和Bob 会事先通过某种途径共享一个相同的密钥K,当Alice 要给Bob 发送信息时,先利用密钥K 通过加密算法对原始信息M(又称明文)进行加密,得到加密后的信息(又称密文)MK=Enc(K),之后将MK通过经典信道发送给Bob,Bob 拿到MK后同样利用密钥K 通过解密算法获取明文M=Dec(K)。
显然对称加密算法的关键在于事先怎样将对称密钥K 安全的分发给使用设备,而非对称密钥算法的安全性是依靠数学问题的复杂性。在量子算法和量子计算机出现以后,天然的缺陷导致传统的加密算法在可预测的时间范围内存在严重的安全隐患,因此量子密钥分发(以下简称QKD)技术借助物理层面的基本原理,保证了攻击者(通常称为Eve)无法窃取、无法破解密钥,密钥可以无条件安全的分发给使用密钥的双方。
另外,在得到组密钥后,如何将组密钥安全有效地下发给QKD 设备下的多用户节点也是亟待解决的问题。
1 量子密钥分发
量子密钥分发是利用量子力学的物理特性,来保证通信双方快速地得到一个安全的、随机的、相同的密钥。量子密钥的安全保障基于量子力学两个最基本的原理:海森堡不确定性原理(Uncertainty principle)和量子不可克隆定理(No-Cloing Theorem),前者保证了攻击者无法通过测定量子态来确定密钥,后者保证了攻击者无法通过克隆量子态来获取密钥。目前常用的量子密钥分发协议为1984 年,物理学家Bennett 和密码学家Brassard 共同提出的BB84 协议[2],该协议通过光子在两种基矢下的4 种偏振态来进行编码,分别称为Z 基和X 基,发送方和接收方事先通过公共信道约定每种偏振态的光子对应的编码,之后通过发送一系列不同偏振态的光子与接收方进行协调,共同商定出一组量子密钥,详细的工作原理如表1 所示。
表1
①Alice 首先随机产生两列长度均为N 的二进制序列P 和Q(目前可以由量子随机数发生器来进行这项工作),即P=p1p2…pN,Q=q1q2…qN,随后Alice 根据这两序列做如下量子态制备:
然后Alice 将这N 个量子态通过量子信道发送给Bob。
②Bob 同样在本地产生一组长度为N 的随机序列R,即R=r1r2…rN,随后Bob 根据序列R 进行如下的测量基选择:
③Bob 利用选择出来的测量基对Alice 传递过来的量子态进行测量,得到Bob 端的测量结果。
④Alice 在公共信道中公布随机序列P,Bob 同样在公共信道中公布随机序列R,然后双方同时对照P和R,保留两列序列中相同的位置信息,丢弃其余的信息。也就是说Alice 和Bob 分别公布自己的制备基和测量基,并没有透露发送态的信息,最终双方会保留相同二进制序列。
⑤在实际应用中,常常存在各种类型的噪声干扰,甚至有敌手的窃听,因此收发双方需要对量子比特进行进一步的后处理,包括密钥筛选、错误估计、错误纠正、密性放大,等等,保证量子比特的有效性,如图1所示。
图1
⑥最终所得的二进制序列即为双方通信的量子密钥。
本文所有的密钥协商方案将在BB84 协议的基础上进行设计。
2 量子组密钥协商
2.1 网络分层架构模型
在讨论量子组密钥协商协议之前,我们需要先定义网络的分层模型,以确定协议中各个模块工作的网络层级。本文定义的量子密钥分发网络模型借鉴了软件定义网络(SDN)的思想。SDN 起源于2006 年斯坦福大学的Clean State 研究课题,2009 年,Mckeown 教授正式提出了SDN 概念[3]。软件定义网络的思想是通过控制与转发分离(如图2 所示),将网络中交换设备的控制逻辑集中到一个计算设备上,为提升网络管理配置能力带来新的思路。SDN 的本质特点是控制平面和数据平面的分离以及开放可编程性。通过分离控制平面和数据平面以及开放的通信协议,SDN 打破了传统网络设备的封闭性。此外,南北向和东西向的开放接口及可编程性,也使得网络管理变得更加简单、动态和灵活[4]。
借助于SDN 的设计思想,本文定义了一种量子密钥分发四层网络模型,如图3 所示。
图2
图3
设备层:该层为量子密钥分发设备所在的层级,主要作用是量子密钥分发设备之间通过BB84 等协议完成量子密钥的协商,并通过密钥池等存储结构保存量子密钥;
转发层:路由设备在该层工作,所有的路由策略都在这一层完成,每个路由设备都保存着当前网络的一份完整拓扑图并动态更新,当量子密钥分发设备有密钥路由的需求时,路由设备会根据一定的算法(路径最短、密钥材料消耗最少、服务质量最好等)找到最好的一条路由路径,将量子密钥安全的通过可信中继进行传递;
控制层:这一层负责对整个QKD 网络的运行数据进行监控,一般情况下我们会在这层设置一个控制中心,保证QKD 网络平稳高效的运行,主要作用包括:网络管理、设备管理、故障修复、安全保护,等等。为了解决各QKD 设备节点的认证问题,本文在该层另设置了一个认证中心,不同于控制中心,认证中心的主要作用是分发身份信息并验证身份信息,保证在组密钥协商过程以及量子密钥路由过程中,链路上的节点是可信的,转发层和量子密钥设备层可以利用认证中心更新自己的网络拓扑;
应用层:该层是量子密钥分发网络的最上层,本质上这一层的功能为“处理”和“展示”:对下层手机的数据进行处理,提供可视化的界面展示。
2.2 子网划分认证量子组密钥协商协议
本文基于SDN 定义的四层量子密钥分发网络模型,提出了一种子网划分认证量子组密钥协商协议(SAP-QGK-AP),该协议分为三个步骤:认证、协商、下发。
(1)认证
在初始阶段,每个QKD 设备在入网时需要向认证中心发起认证入网请求,这一过程可在传统信道中进行,采用ECC 加密算法,详细的注册过程如图4 所示。
图4
其中,Ep(a,b)为椭圆曲线,n 为椭圆曲线的阶数,encode()为编码函数。
过程结束后,认证中心会以每个设备IP 为主键,保存一个四元组<IP,Ep,D,K>;每个注册成功的QKD设备会保存一份由认证中心生成的安全证书,内容包括设备IP、认证中心ID、认证时间、证书有效期等,用来保证身份的有效性。
(2)协商
在协商阶段,若干个QKD 设备以子网掩码为依据,组成多个子网,每个QKD 设备下面挂有若干个用户机,每个子网间通过边缘QKD 设备相连,如图5 所示。
图5
密钥协商分为组内协商和组外协商。首先,参与组密钥协商的成员会向认证中心发送自己持有的安全证书,认证中心通过计算证书中附加的身份信息核对组成员身份的有效性。当组密钥协商是在子网内部进行时,认证中心只需要向当前子网广播身份验证结果,每个QKD 设备在收到结果时,首先核对认证中心的可信信息,之后根据验证结果更新自己的网络拓扑图,删去不可信的QKD 设备节点,在剩下的QKD 设备中进行组密钥的协商;当组密钥协商涉及多个子网时,认证中心需要向参与协商的多个子网广播身份验证结果,每个子网内的QKD 设备进行上述同样的操作。这样在密钥协商过程中,保证了参与协商的设备节点都是可信的,保证了量子可信中继的条件。
由于量子密钥分发协议的特性,每个QKD 设备都有一个密钥池用来管理自己和其他节点的对称密钥,
也就是说量子密钥是成对出现的,如图6 所示。
利用这一特征,本文提出的SAP-QGK-AP 首先在子网内部进行密钥协商,以图6 所示网络为例。
(1)QKD 节点1、2、3、4 在同一子网内,当某个节点发出组密钥协商请求时,同意参与组密钥协商过程的节点首先向认证中心发送自己的身份信息,随后认证中心向该子网广播身份认证结果,各节点根据结果更新自己的网络拓扑图。
(2)假设节点1 是SAP-QGK-AP 的发起者,节点1利用深度优先搜索找到一条涵盖所有参与节点的通路,若没有找到,记录通路中断的节点信息,向子网内广播该信息,并结束此次密钥协商。
图6
(3)如果通路搜索成功,对于节点1 来说,做如下运算:
即在连通图中,每一个节点都可以通过类似运算和信息交换得到组成员之间的密钥信息,然后利用这些密钥生成共同的组内密钥。
组间协商时,每个子网内都有一个边缘QKD 设备与其他子网的边缘设备相连,由于边缘设备的密码池中保存有当前子网的组密钥,及与其他边缘设备的对称密钥,因此宏观上各个子网可以看做单独的QKD 设备,在多个子网间进行步骤(3)的计算操作,从而可以得到所有子网共同的组密钥。
(3)下发
当QKD 设备之间通过SAP-QGK-AP 协商出组密钥后,需要将密钥安全地下发给连接的用户机。本文利用公私钥方案进行密钥的安全下发。
每个用户节点利用ECC 算法生成一对公钥和私钥,随后将公钥及IP 信息通过传统信道发送给连接的QKD 设备,QKD 设备使用公钥对组密钥加密,并发送给对应IP 的用户机,用户机利用自己的私钥对信息解密,从而得到组密钥KG。
2.3 效率分析
本节讨论根据连通图的类型讨论组密钥的计算轮次。根据网络中各节点拥有不同密钥的数量,分为三种典型QKD 网络拓扑,如图7 所示。
图7
(a)该网络拓扑共存在4 份不同的密钥,组密钥KG=K12⊕K23⊕K34⊕K41,计算轮次为9 次。
(b)该网络拓扑共存在3 份不同的密钥,组密钥KG=K12⊕K23⊕K34,计算轮次为8 次。
(c)该网络拓扑共存在6 份不同的密钥,组密钥KG=K12⊕K13⊕K14⊕K23⊕K24⊕K34,计算轮次为11 次。
当子网内部计算完毕,每个子网作为整体与其他子网进行计算时,由于子网间的协商只涉及边缘节点,并且仅涉及位计算,因此可以大大节省计算轮次,提升组密钥的协商效率。
3 结语
本文首先借助软件定义网络(SDN)的概念,提出了四层量子密钥分发网络模型。在该模型上,本文提出了一种子网划分认证量子组密钥协商协议(SAPQGK-AP),该协议与常见组密钥协商方案相比,具有更小的协商轮次,更高的安全性。在SAP-QGK-AP 的基础上,未来将继续研究量子密钥分发网络中的密钥树构建及广播方案的设计,以更好地提升协商过程中的安全性,以及协商的效率。