代金鞘 张仕斌 昌 燕 李雪杨 郑 涛
(成都信息工程大学网络空间安全学院 四川 成都 610225)
密码学在信息化社会中扮演着越来越重要的角色。但随着量子计算机[1]和量子算法[2-3]的发展,传统的加密方式都将面临潜在的威胁。研究者将注意力转向了由量子力学发展来的量子密码学,量子密码学的安全性是通过量子力学原理保证的,这使得量子密码在信息论的角度下是十分安全的。自Bennett等[4]设计出第一个单光子偏振协议(BB84协议)以来,研究者在量子密码技术上取得了许多意义重大的研究成果,包括量子密钥分发(QKD)[5-6]、量子数字签名(QDS)[7-9]、量子隐私查询(QPQ)[10-11]、量子安全直接通信(QSDC)[12-14]等。但是,这些量子密码的研究大多都要求所有参与协议的通信方都能够具有量子能力,即参与者可以进行任意的量子操作并且可以任意制备量子态。这对于实际量子资源的需求是十分巨大的,在实际情况下,这些协议很难完整实现。因此,为了节约量子资源的成本,研究者提出了半量子的概念。
在半量子的理论中,不需要所有的参与者都具备完整进行任意量子操作的能力,只需要有一方具备即可,其余的通信方只要求进行部分量子操作。这样一来,在通信过程中对于量子资源的需求和成本就会大大降低,实现起来容易许多。这个概念是由Boyer等[15]在2007年第一次提出的,他们还结合了QKD协议提出了半量子密钥分发协议(SQKD)。SQKD协议中,通信方Alice具有完整的量子能力,而Bob只能进行部分的量子操作,成功地将量子通信中需要使用的量子资源减少。此后,许多研究者都将半量子和现有的量子密码体系结合,提出了许多基于半量子的量子密码协议,包括半量子秘密共享[16-17]、半量子密钥分发[18]、半量子直接通信[19-20]和半量子对话[21]等。
以上基于半量子的通信协议虽然在量子资源的使用上进行了很大的优化,但是在实际使用时仍然存在一定的风险。假设在通信过程中,通信方Alice想要和通信方Bob进行信息交换,在之前的半量子通信协议中[19-21],Alice需要先将自己的秘密信息发送给Bob,Bob在确认收到秘密信息后才会将自己的秘密信息发送给Alice。假如Bob在接收到Alice的秘密信息之后,拒绝发送给Alice秘密信息,这样Alice的秘密就被Bob骗取了。
为了防止这种情况的发生,设计一种基于半量子的量子秘密信息互换协议。首先由第三方TP制备Bell态粒子,将Bell态的两个粒子分别发送给Alice和Bob,双方通过对手中的粒子随机进行反射或者测量操作将自己的秘密信息加载在测量粒子中并将粒子返回给TP,TP再对Alice和Bob返回的粒子进行测量,并公布对应的测量结果。这时,Alice和Bob便可以根据TP公布的结果推测出对方的秘密信息。虽然本协议引入了第三方,但是并不要求第三方是完全可信的,可以是一个半可信的第三方参与通信过程。第三方如果存在不诚实行为,可以通过Alice和Bob的联合分析发现。同时,由于第三方的存在,Bob的欺骗意图也无法实现。
基本的单光子测量基包括:Z基{|0>、|1>}和X基{|+>、|->}。
四种Bell态粒子在Z基的表示如下:
(1)
在式(1)中,如果用Z基测量|φ+>态中的第一个粒子,会有1/2的概率测得粒子为|0>态,1/2的概率测得粒子为|1>态。而第二个粒子态的测量结果会与第一个粒子态相同。如果使用Z基测量|ψ+>态,测得|0>态和|1>态的概率不变,但是两个粒子的测量结果会完全相反。
在半量子通信中,通信双方有一方具有完整的量子能力,可以进行任意的量子操作;另一方只能进行部分的量子操作,称作“经典方”。在半量子通信过程中,“经典方”可以进行如下的操作:
(1) 直接将接收到的粒子反射给发送方,记作REFLECT操作;
(2) 对接收到的粒子用Z基进行测量,记作MEASURE操作;
(3) 根据MEASURE操作的测量结果制备与测量结果相同或者相反的单光子;
(4) 对接收到所有的粒子进行重新排序,并返回给发送方。
Bell态使得通信的双方在各自持有其中一个粒子时,通过测量操作获取对方的测量信息;而半量子通信则可以使得通信过程中对量子资源的需求尽可能地减少。因此,基于Bell态粒子与半量子通信的特性,设计一个基于半量子的量子秘密信息互换协议。
假设Alice的秘密信息记作Ma=(Ma(1),Ma(2),…,Ma(n)),Bob的秘密信息记作Mb=(Mb(1),Mb(2),…,Mb(n))。Alice和Bob想要在第三方TP的协助下进行秘密信息互换,其中TP是具有完备量子能力的,而Alice和Bob则拥有部分量子能力,协议具体步骤如下:
步骤1TP制备2n对|φ+>12态粒子,将所有的1粒子组成序列S1并将其发送给Alice;将所有的2粒子组成序列S2并将其发送给Bob。
步骤2Alice收到S1之后随机选择一半的粒子用于窃听检测。Alice对用于窃听检测的粒子随机选择MEASURE操作或REFLECT操作;对于其他粒子则全部选择MEASURE操作并记录测量结果。如果Alice想要传输的信息比特为0,则制备与测量结果相同的粒子态;如果想传输的信息比特为1,则制备与测量结果相反的粒子态。最后,Alice将所有的粒子打乱顺序,组成新的序列S′1并发送给TP。
步骤3Bob收到S2之后的操作和Alice基本相同。先选择一半的粒子作为窃听检测粒子,并随机选择MEASURE操作或REFLECT操作;而对剩下的粒子进行MEASURE操作并记录测量结果。如果Bob想要传输的信息比特为0,则制备与测量结果相同的粒子态;如果想传输的信息比特为1,则制备与测量结果相反的粒子态。最后,Bob将所有的粒子打乱顺序,组成新的序列S′2并发送给TP。
步骤4TP收到S′1和S′2之后通知Alice和Bob开始进行窃听检测。Alice和Bob会公布粒子的正确顺序以及自己对窃听检测粒子进行的操作。针对S′1和S′2中相同位置的粒子,TP会根据Alice和Bob选择的操作选择不同的测量基进行测量。详细的测量基选择如表1所示。
表1 窃听检测时TP测量基的选择
假如Alice选择REFLECT操作,而Bob也选择的是REFLECT操作,那么TP则会使用Bell基去测量对应位置的1粒子和2粒子。如果没有窃听行为,那么测量结果应为|φ+>,如果测量结果出现其他的Bell态粒子,那么说明存在窃听者。最后,TP统计所有的测量结果,如果测量结果错误率高于阈值,则放弃本次通信,否则,进行步骤5。
步骤5TP用Z基测量S′1和S′2中剩余的粒子,并将测量结果公布给Alice和Bob。Alice根据TP公布的S′2的测量结果,结合自己手中在步骤3中记录的测量结果可以推测出Bob的秘密信息M′b;同理,Bob也可以根据S′1和步骤4中记录的测量结果推测出Alice的秘密信息,记作M′a。
步骤6Alice用自己的秘密消息Ma和推测出来的Bob的秘密消息M′b进行“异或”操作,并公布“异或”的结果;Bob也对自己手中的Mb和M′a进行“异或”操作,并公布“异或”结果。如果两者公布的“异或”结果相同,则证明第三方TP是诚实的,Alice和Bob都成功得到了对方的秘密信息。
根据协议步骤可以得知,Alice和Bob首先是根据步骤2对TP发过来的量子态进行MEASURE操作并记录测量结果,然后根据步骤5中TP公布的测量结果进行推测,从而得出对方的秘密信息。这个推测的依据是根据Bell态粒子在进行Z基测量时,其中一方测量后,另一方的粒子也会相应塌缩成对应的单光子态,从而在步骤2中可以根据自己手中的测量结果推测出对方的测量结果。接下来,TP公布带有秘密信息的粒子测量结果时,Alice和Bob则可以通过这两个信息结合推测出对方的秘密信息。并且在最后会公布自己的消息与推测出的对方消息的“异或”值,如果两者的“异或”值相同,则认为双方成功获得对方的秘密信息。具体的推测过程如表2所示。
表2 Alice和Bob推测秘密信息的过程
可以看出,Alice手中的1粒子与Bob手中的2粒子都是初始态为|φ+>态,在对除开窃听检测粒子之外的n个粒子进行MEASURE操作时,根据Bell态的特性,Alice测得的测量结果与Bob是相同的,都为(0>|0>|0>|1>)。然后Alice和Bob根据自己的秘密信息制备新的粒子态发送给TP进行测量,其中:Alice制备的新的粒子序列为(|1>|0>|0>|0>)1′;而Bob的粒子序列则为(|0>|0>|1>|0>)2′。TP在经过窃听检测之后会对这些粒子序列用Z基进行测量,并公布测量的结果。Alice则可以根据TP公布的测量结果(|0>|0>|1>|0>)2′结合自己最开始保存的测量结果(0>|0>|0>|1>)推测出Bob想要发送的秘密信息为0011;同理,Bob也可以推测出Alice的秘密信息1001。最后,Alice用自己的秘密消息Ma和推测出来的Bob的秘密消息M′b进行“异或”操作得到并公布结果0001;同理,Bob也得到“异或”结果0001,并公布它。Alice和Bob公布的信息结果相同,证明双方都成功获得了对方的秘密信息。
由于该协议是一个双向的通信协议,因此Eve可能会使用特洛伊木马攻击来获取Alice和Bob的秘密信息。为了防止这种攻击方式,可以在Bob接受粒子前安装一个光子数分离器(PNS)和波长滤波器[22-24],这样就可以有效防止Eve的特洛伊木马攻击。
假设第三方TP不是一个诚实可靠的第三方,他想破坏Alice和Bob信息互换的过程,使得Alice和Bob都不能正确地获得对方的信息。TP在最开始制备Bell态粒子时不按照协议的要求制备|φ+>12态的粒子,而是制备其他的Bell态粒子,如:|φ->12、|ψ+>12或者|ψ->12。
根据协议步骤和Bell态的性质,如果TP最初制备的是|φ->12态的粒子,则对最后Alice和Bob的秘密信息互换没有任何影响,Alice和Bob还是可以正确获得对方的秘密信息;如果TP制备的粒子态为|ψ+>12或者|ψ->12,那么Alice和Bob在步骤2和步骤3中记录的测量结果会是完全相反的结果,在最后Alice和Bob推测出的对方的秘密信息M′a和M′b则会与原始Ma和Mb不相同。因此,当Alice公布他得到的Ma和M′b的“异或”结果,Bob公布他得到的Mb和M′a的“异或”结果时,这两个结果也会不同,因此Alice和Bob便可以发现TP可能进行了造假行为。
如果TP在公布测量结果时作假,也会导致Alice和Bob推测出错误的秘密信息M′a和M′b。同样地,这种造假行为也会在Alice和Bob比较公布的“异或”结果时被发现。
假设在通信过程中Bob想要欺骗Alice,即Bob不会根据自己的秘密信息Mb制备对应的量子态,而是随机制备一串处于|0>态或|1>态的粒子态与窃听检测粒子构成假的S′2返回给TP,TP在窃听检测发现不了这种欺骗攻击。但是在TP向Alice公布出Bob的测量结果时,Alice推测出的M′b与Mb不相同,因此Alice的“异或”结果和Bob的“异或”结果也会不相同,这时Alice就发现有人在通信过程中进行了欺骗攻击。
如果TP是诚实可靠的第三方,在TP的视角中,他只知道Alice和Bob的异或结果不同,并不知道是谁在进行欺骗攻击。为了保证自己的信用不受损害,TP会进行公正仲裁,他会要求Alice和Bob将Ma和Mb通过加密信道发送给自己,并对Ma和Mb进行“异或”计算得到一个结果。如果Alice或Bob其中一方公布的结果与TP计算得到的结果不同,那么这一方就是不诚实的通信者。因此,不论是Alice还是Bob,都无法在协议过程中进行欺骗。
本文基于半量子的理论研究,提出一种基于半量子的量子秘密互换协议。该协议可以使得通信双方在半可信第三方的帮助下完成秘密信息互换,防止了通信某一方欺骗另一方秘密信息的情况。此外,由于在通信过程中只有第三方具有完整的量子能力,其余通信方只能进行部分量子操作,使得协议对量子资源的需求大大降低。最后,通过协议分析证明其能够抵抗截获/重发攻击、中间人攻击和特洛伊木马攻击,并且在面对不诚实的第三方时,也可以通过通信双方的合作发现其欺骗行为。