基于单光子的量子双向同步身份认证协议
2020-09-29张兴兰赵怡静
张兴兰,赵怡静
(北京工业大学信息学部,北京 100124)
0 引言
目前世界上主要国家都在大力开发研究量子通信领域,其中量子安全通信的研究作为量子密码研究的一个热点,已逐步从理论设计进入研究应用阶段。为了推进量子安全通信的具体实现,目前对于量子安全通信的具体研究已经细化到通信的各个阶段,以追求更高的安全性和可实现性。其中量子身份认证是量子通信的重要步骤和前提,量子通信虽然可看作一种安全的通信方式,但是在量子信息交互中还是难以避免各种攻击,为了得到更加高效安全的量子通信环境,本文以量子身份认证为研究背景,对经典信道中已证明安全性的身份认证协议进行总结和剖析,参考其协议分配过程,结合对称密码体制、一次一密方法,提出一个新的量子安全身份认证协议。
首先现有的量子身份认证(Quantum Identity Authentication,QIA)协议都是基于量子密钥分发(Quantum Key Distribution,QKD)设计的。量子密钥分发的研究源于Bennett 等[1]的开创性工作。不同于经典密码学,量子密码学的安全性保障并不来自于数学算法的计算复杂度,而是建立在量子物理学的基本定律之上。这些物理定律可以认为是永久有效的,也为QKD 提供了独特的长期安全性保障。在这种保障的基础上,现有的量子身份认证和量子通信通常选择制备正交单光子态或者量子纠缠对进行合法身份信息的认证。以文献[2]中的方案为例,基于纠缠态是利用量子不可克隆性及量子测不准原理对输入者个人信息进行某种方式的处理并与系统中预先存储的个人信息进行比较。基于单光子则是通过制备许多单个的处于不同态的单光子粒子利用测不准原理对信息进行比对测量;相比前者最大优势在于易于实现、高效,但又不损失安全性。
因此文中协议的提出是基于单光子的一种更加高效的共享密钥编码方式,即由一位编码确定测量机的编码方式,该编码方式由Hong等[3]在2017年首次提出。在该基础上,本协议将进一步提高编码安全性,对具体交互流程和用户行为给出解释并进行安全性分析。除此之外,本协议将不仅从理论上实现两方通信中的双向同步身份认证,还将涉及多节点的量子通信网络中从两方协议扩展到三方甚至是多方协议中的基本原则的提出,提高整个身份认证协议的实用价值,为更加高效全面的量子身份认证协议及通信协议提供有效思路。
1 理论知识
1.1 量子一次一密
在量子一次一密出现以前,经典密码学中在1917 年就出现了实现一次一密的一次性密码本(One Time Password,OTP)。后在1949年又从理论上证明了一次性密码本具有无条件安全性。但经典物理中始终不能实现完全生成随机的密钥,以及不能实现在公共信道上完全安全地分发密钥。而在量子物理中随着BB84的问世,量子通信已经有了安全性保障,安全分发密钥的问题得以解决;量子物理产生真正的随机数也使得另一个在经典物理中不能完全实现的问题迎刃而解。
以潘江游等[4]提出的量子一次一密协议为代表,该类协议在量子密钥分发为保障的前提下,利用包含随机数的量子单向函数进行加密,同时与理论上安全的密钥交换如BB84等相结合,就出现了技术先进且长期安全可实现的方案。
1.2 Kerberos身份认证协议
Kerberos 协议中主要是有3个角色的存在:访问服务的用户、提供服务的服务器(Server)和密钥分发中心(Key Distribution Center,KDC)。其中KDC 包含认证服务器(Authentication Server,AS)和票据授权服务器(Ticket Granting Server,TGS):AS 的作用就是验证用户身份,验证通过则返还验证通过票据给用户;TGS 的作用是通过AS 发送给用户的验证通过票据换取访问Server端的票据[5]。
Kerberos 有域内身份认证和跨域身份认证两种,其中域内身份认证的主要流程[6]如图1,详细流程描述如下:
1)用户先向KDC 的AS 发送身份验证密文,内容包括加密的时间戳、用户ID网络地址、加密类型等内容。
2)当AS 接收到用户的请求之后会解密并根据数据库中的数据验证信息。验证成功后返回给用户成功票据(TGT)。
3)2用户将TGT和时间戳发送给KDC中的TGS换取能够访问Server的票据。
4)TGS 收到TGT 和时间戳之后,首先会检查自身可否提供被请求服务。如果可以,则用解密TGT 验证原始地址是否和TGT 中保存的地址相同。验证成功之后将可访问Server 的票据(Server Ticket,ST)发送给用户。
5)用户收到ST后将其一起发送给Server。
6)Server 通过自己的密码解密ST,验证正确返回验证成功信息。
图1 Kerberos协议身份认证过程Fig.1 Identity authentication process of Kerberos protocol
2 身份认证
本章主要以通信双方为Alice 和Bob,可信第三方为Charlie为例,介绍两方实现双向身份认证的过程,整个过程分为准备阶段和认证阶段。
准备阶段介绍了两方进行身份认证通信的前提,包括验证前共享信息和粒子的具体编码方式,与密码本序列与量子态运算的匹配规则。
认证阶段根据准备阶段的铺垫,详细介绍身份认证双方各自发起的行为和涉及到的数据,并根据顺序给出具体流程。值得注意的是在认证阶段中,Alice 和Bob 对彼此的认证是同步的。
2.1 准备阶段
根据经典的身份认证协议可知引入可信第三方是可以依赖的一种模式[7],因此在准备阶段,以Alice要发起和Bob的信息交互为例,双方首先要进行身份认证。Alice 和Bob 共享字符串K和密码串。
首先Alice需要向可信第三方Charlie发出一个请求,该请求中应该至少包含Alice 的身份信息和请求建立通信对象信息,由Charlie 检查Alice 是否为自己登记的合法用户,若验证Alice 为合法用户则通过请求并即刻发送给Alice 量子票据。票据上除了时间戳以外还有通信双方的加密身份信息,也可以理解为通信用户的合格信息。
上述Alice 到Charlie 的单向身份认证过程可以由现有的量子单向函数一次一密技术实现[8]。由Alice 提供合格票据换取Bob 方提供身份认证服务的过程,与1.2节中Kerberos 协议类同,都是一种换取相应服务前的初步身份认证过程,从协议层面上可以防止非法攻击者冒充合法用户干扰整个通信系统。
当Alice 将量子票据发送给Bob 后,Bob 将解密量子票据请求是否合法并选择同意或拒绝身份认证。需要注意的是,当双方用户合法开始进行身份认证前,Charlie 将共享字符串并随机生成一份密码串分享至双方。
2.1.1 共享密码串
编码方式:同样以Alice 和Bob 为例,进行身份认证。双方共同握有长度足够长的密码串,密码串中的密码由0、1 随机组成,现规定密码串中的0 对应Z操作,1 对应X操作。具体操作运算过程将在协议认证阶段举例说明。
2.1.2 共享字符串
以Alice 和Bob 需要互相认证身份为例,第三方随机生成字符串K(K1,K2,…,Kn,Ki∈(00,01,10,11)),通过共享字符串K,并将加密后的信息发送给Alice 和Bob。请求身份认证的用户通过自己的私钥解密数据,由此两方共同拥有决定测量基的信息组。具体过程如下。
Alice和Bob提前从公共的可信第三方处共享密钥字符串K(K1,K2,…,Kn),字符串对应的单光子量子态编码原则如下:
00、01 分享一组测量基,10、11 分享一组测量基。功效字符串为0 则选择垂直正交基{|0>,|1>},否则选择垂直正交基{|+>,|->},在两位编码中由首位信息即可确定测量基。
单光子串Qi对应Ki如表1。
表1 共享字符串编码表Tab.1 Shared string code table
2.2 认证阶段
在认证阶段将分别对Alice 和Bob 对彼此的认证进行描述,考虑到通信过程中存在的误差,将存在一定的误码率,因此存在一个较低的误码率阈值ξ。
2.2.1 Bob认证Alice
步骤1 Alice 根据共享的字符串K制备单光子态即向量信息Qi,Qi∈(|0>,|1>,|+>,|->)。
步骤2 Alice 依次对应密码串对制备的粒子做X或Z操作[8]。当密码串相应位为0时,按照制备先后顺序对粒子进行Z操作。
当密码串相应位为1 时,按照制备先后顺序粒子进行X操作。具体操作结果对应表2。
表2 X、Z加密单光子对照表Tab.2 X,Z encrypted single photon comparison table
步骤3 Bob 将接收到的比特信息Qai根据一次一密密码本进行反向Z或者X操作,当密码本相应位为0时进行逆Z操作,当密码本相应位为1时进行逆X操作,最终得出Qii。
步骤4 Bob 根据共享字符串K的功效位选择合适的测量基F,F∈({|0>,|1>};{|+>,|->}),当功效位为0 时选择测量基{|0>,|1>};当功效位为1 时选择{|+>,|->}对Qii进行测量,得到结果。
步骤5 Bob 通过Qii′,根据以下原则复原消息字符串K′:若K′=K则进行下一步;否则标记误码,以身份认证信息的总信息位为参考,计算当前误码率:当误码率大于ξ,终止通信;若误码率仍小于ξ进行下一步。其中字符串的复原原则如下:
2.2.2 Alice认证Bob
步骤6 用基本的量子物理得到随机数序列Ri,Bob 根据Ri对应一次一密密码本内单个数位,从而选取不同的算子对光子Ui进行变换。得到一系列与具有不同表象的光子信息Qbi,Bob将Qbi通过信道传回给Alice。
步骤7 Bob依次传输信息Qbi,紧接着通过公开信道公布随机数Ri-1(1<i≤n+1)。
步骤8 Alice 接收信息并根据字符串K选择合适的测量基对编码后的单光子进行测量。
步骤9 在接收全部信息并测量完成后,Alice 通过对比字符串K的编码信息Qi,得出选用的幺正运算算子组Ui′。算子推演的全部情况参照表3。
表3 量子比特变换与算符对照表Tab.3 Qubit transformation and operator comparison table
步骤10 Alice比较和Bob公开随机数R位的算子Ui:若=Ui继续通信。否则标记误码,以Alice 身份认证信息的总信息位为参考,计算当前误码率:当误码率大于ξ,终止通信;若误码率仍小于ξ,继续通信。
2.3 小结
由此Alice 与Bob 之间的双方都得到认证,并且能有效降低模拟身份攻击的成功概率,在第3 章将进行具体分析。Alice与Bob量子通信流程如图2。
图2 双向身份认证流程Fig.2 Flowchart of two-way identity authentication
3 协议的安全性分析
在该身份认证协议中,通过第2 章对具体协议流程的描述,可以发现Alice 和Bob 的认证是双向且同步进行的,可以有效防止身份抵赖行为的发生,同时对于窃听者的检测根据实时的误码率,可以第一时间检测出窃听者。因此在本章中讨论窃听者Eve 为了盗取身份认证信息可能采取的攻击方式有截获重发攻击和替换攻击[9]。
设定在认证过程中光子数量为T,单个光子通过一次检测的概率为Ps,Eve 窃听成功通过检测的概率为Pwin,Eve 窃听失败未通过检测的概率为Plose。
3.1 截获-重发攻击
假设攻击者Eve采用截获重发攻击,Eve选取测量基能得到的结果有且仅有4种:|0>,|1>,|+>,|->。而根据上述流程接收方应正确接收到的粒子状态有|0>,|1>,-|1>,|+>,|->,-|->共6 种,其中|1>,-|1>与|->,-|->分别在正确测量基下会得到相同的结果。存在Eve 在截获过程中选取正确与错误测量的概率Pser,Psew。
1)在第一轮通信中,假设Eve拦截发送者Alice 的单个光子的过程中,选择{|0>,|1>}测量基的概率等于选择{|+>,|->}测量基的概率即:
Pser=Psew=1/2
当Eve 选择了正确测量基时,在测量结果正确的情况下通过Bob窃听检测的概率为:
Ps=1/2
当Eve 选择了错误的测量基时,在测量错误的前提下,通过Bob窃听检测的概率是:
Ps=1/4
在第一轮通信中,窃听者Eve窃听成功的概率为:
Pwin1=(3/4)T
2)在第二轮通信中,Eve拦截发送者Bob的单个光子过程中,选择正确测量基的概率等于选择错误测量基的概率,即:
Pser=Psew=1/2
当Eve 选择了正确测量基时,不被Alice 检测到窃听的概率为:
Ps=1/2
当Eve 选择了错误的测量基时,不被Alice 检测到窃听的概率为:
Ps=1/4
在第二轮通信中,窃听者Eve窃听成功的概率为:
Pwin2=(3/4)T
因此在截获-重发攻击中,窃听者Eve 未被检测到的概率为:
Pwin=(3/4)2T
Alice和Bob双向通信过程中攻击者被检测到的概率为:
Plose=1-Pwin=1-(3/4)2T
当T足够大时,Plose≈1。
3.2 替换攻击
替换攻击是指Eve 在拦截了量子比特后进行测量得到结果,并自己随机制备一个量子比特放回信道,传输给合法的接收方。
由于Eve 会在4 个量子态中随机制备一个发送给Bob,在第一轮通信中单光子通过接收方Bob 检测的概率为随机比特通过两种测量基的概率:
Ps=1/2
因此在第一轮通信中,Eve通过Bob窃听检测的概率为:
Pwin1=(1/2)T
在第二轮检测中,即Alice 为接收方,单个光子通过Alice检验的概率为:
Ps=1/2
因此第二轮通信中,Eve通过Alice窃听检测的概率为:
Pwin2=(1/2)T
即双方身份认证身份模拟攻击过程中攻击者Eve 攻击成功未被检测到的概率为:
Pwin=(1/2)2T
Alice和Bob双向通信过程中Eve被检测到的概率为:
Plose=1-Pwin=1-(1/2)2T
当T足够大时Plose≈1。
4 协议补充扩展
4.1 两方到三方
基于上述两方通信在推及三方相互通信时[10],遵从以下原则:
1)任意两方没有同时与同一第三方建立可信通道的前提下,身份认证遵从2.1~2.2节的所有步骤。
2)任意两方在与同一第三方相互认证身份的前提下,可由该第三方充当量子基站,此时有:
①共同第三方分享自己的身份认证结果给需要通信两方,两方通过该量子基站进行中转通信。
②若两方请求建立新的通信,则由量子基站生成新的字符串K和密码本序列,并通过现有可信信道分别传输给需要认证身份的双方,后根据2.2节中步骤1~10进行身份认证。
下以需要进行身份认证的为Alice、Bob 和Charles 为例,补充三方身份认证的具体步骤如下:
步骤1 Alice 和Charles 检验是否有已认证过身份的同一第三方Bob。
步骤2 验证结果为没有,则通过2.1~2.2节所有过程进行身份认证。
步骤3 验证结果为有,则由Bob此时为量子基站发送自己的认证结果R∈(|0>,|1>)给Alice 和Charles,|0>代表认证成功,|1>代表认证失败。
步骤4 在Alice和Charles都接收到为|0>的信息时,返回B∈(|+>,|->)给Bob。|+>代表中继通信,此时Alice 和Charles停止身份认证程序,通过中继Bob 通信;|->代表建立新的信道。继续步骤5。
步骤5 Bob 在收到|->后生成新的字符串K和密码本分别传输给Alice和Charles
步骤6 Alice 和Charles 根据字符串K,进行2.2 节中步骤1~10的身份认证过程。
4.2 三方到多方
根据以上原则和步骤可由三方推及到多方。在推及多方身份认证的过程中需补充如下原则:
如发起身份认证的两方存在多个已认证身份的同一对象,选择最后建立通信的对象。
该种方法可减少多节点同时通信时外来可信第三方的参与,在通信内部具有更好的私密性、安全性和可追溯性。在多方协议中任何两方互相认证之后,在第三方发起一个认证并认证成功后可以共享自己的认证结果以节省需多次认证耗费的时间,对于多节点的量子网络通信的效率和安全性都有了必要的保障,同时从另一层面上对每一个用户节点之间的交互都同时提供了可供选择的不同认证渠道。
5 结语
本文主要介绍了一种基于单光子的双方同步身份认证协议,同时为扩展到多方认证过程中提供了新的思路。协议对通信效率的提高具体体现在以下三个方面:1)比起传统的量子通信协议大都采用的BB84协议内编码方式,协议中借鉴采纳了2017 年Hong 等首次提出的更新的编码方式,共享密钥编码只有一位功效位;2)创新地采用更多层编码模式,在实现用户双向认证时无需分配新的认证信息,只需跟随编码进行粒子变换;3)在扩展到多节点的量子网络身份认证方面同时提供了不同的身份可供选择以在必要情况下提高多节点同时通信时互相认证的效率;同时,通过密码本的应用和量子票据的分发,从整个协议的第一阶段就提升了认证过程中的安全性,防止了用户身份抵赖行为并有效抵抗窃听攻击。