吴佳怡, 周芃玮, 赵 男, 周 伟, 谭振江
(1 吉林师范大学数学与计算机学院, 吉林四平 136000; 2 四平市第二十五中学, 吉林四平 136001)
网络安全是人们目前最关注的问题之一,大数据时代的到来使人们的隐私信息变得透明化,人们对个人的隐私信息也变得越来越重视[1]。 如何保障人们信息不被他人窃取变得格外重要,为此也引起专家学者和研究人员的关注。 根据柯克霍夫原则,信息加密的安全性并不是依赖于加密算法而是密钥本身[2],而量子加密的密钥是依据一次性密码本的加密算法设计的,一次性密码本的加密算法是1882 年被弗兰克·米勒发明的[3],并且是被信息论之父香农证明其理论上是绝对安全的[4]。 而相较于经典通信来看,量子加密是基于量子力学理论基础设计的,其中海森堡测不准原理、波包塌缩、不可克隆定理、单光子不可再分特性,保障了量子加密在通信中是绝对安全的,且通信双方每次传输的数据都是绝对随机的,一旦窃听者存在并且在传输中进行窃听,这就会导致误码率提升,一旦误码率高于一定阈值或双方最后的传输字符串等于0,则通信双方就会约定舍弃此次通信内容。 由于量子密钥分发系统的建立,以及利用量子信道实现信息保密已经逐渐成为现实,这将极大地推动量子密码技术发展,同时也是近年来国际学术界关注的热点之一,受到广泛重视,得到迅速发展,应用前景广阔。
2008 年Shuang Zhao 等人[5]采用一种基于事件过程的新方法来验证BB84 协议。 2009 年陈莹[6]通过Qcircuit 软件设计BB84 协议电路图,实验引入截取重发机制,通过误码率和协议可靠率来对BB84协议进行仿真安全性分析。 2010 年Mohamed Elboukhari 等人[7]使用模型检查器PRISM 对B92 协议的安全性进行了分析。 2011 年路松峰等人[8]使用QCircuit 软件设计量子线路图,通过引入截取重发攻击模型以及协议可靠率和有效平均互信息量两个变量,来验证BB84 协议的安全性。 2012 年朱丽娟等人[9]利用C#语言通过Windows 窗体达到可视化条件,通过调节窗体条件变量来对BB84 协议进行仿真模拟。 2014 年付益兵等人[10]通过MATLAB实现BB84 协议的仿真。 2016 年陈实等人[11]基于Qcircuit 软件设计了B92 协议的模拟电路,实验引入了相位阻尼、去极化、幅度阻尼3 种噪声信道模型,通过误码率和协议可靠率来验证协议的安全性。2017 年孙茂珠等[12]通过对光的偏振的调制和对偏振光的测量,设计了有窃听者和无窃听者的实验示意图,模拟出了量子密钥分发BB84 协议的通信情况。 2020 年周争艳[13]采用蒙卡罗特方法来验证B92 协议的安全性。 2022 年AkwasiAdu-Kyere 等人[14]基于BB84 协议构建通信结构体系模型,通过模拟重复迭代,设置窃听者和拦截-重发干扰机制,引入参数窃听率、纠错率和量子位概率来验证协议可靠性。
本文基于上述研究背景,通过引入误码率、纠错率、协议可靠率指标,仿真分析了两种协议在有无窃听者发起攻击时的误码率、纠错率、协议可靠率,并仿真验证研究问题的真实性和有效性,通过对比折线图直观性验证两种协议在实际应用中协议的健壮性、安全性和协议传递数据的准确性。
不同于传统加密协议,量子通信加密协议是基于量子态和量子的特殊物理性质,是有别于传统通信加密的一种特殊通信加密形式,其具有无条件安全性、传输速率快、免疫电磁干扰、通信容量大等优势。
虽然现在量子通信加密协议已有很多,但是BB84 和B92 协议是量子加密协议的经典协议,是量子通信加密的开始,后续的一切协议皆是基于两者协议进行参考的。 本文针对BB84 协议和B92 协议进行实验模拟后进一步形成对比分析,通过引入误码率、纠错率、协议可靠性指标,重点对比分析了是否存在窃听者使用攻击的情况下两种协议的安全性。
以下的仿真公式借用经典量子公式,具有良好的普适性[15-16]。
假设Alice 和Bob 共享量子信道|Ψ〉=α |0〉+β |1〉,其中|α |2+|β |2=1。 Alice 要传输一种未知的量子态整个量子系统的态为[15]。 式中的下标用于表示粒子的去向,下标1 表示要被传送的粒子,下标2 表示Alice 在传送中量子的分配,下标3 表示Bob 在传送中量子的分配。瞬间传态基于初始状态也可表示为
Alice 和Bob 共享一对EPR 对,考虑POVM 测量传输以下4 种矩阵状态:
其中,〈Φ1|=(α,β),〈Φ2|=(β,- α),〈Φ3|=(β,α),〈Φ4|=(α,- β)。 对Alice 传输的量子态进行贝尔基测量会随意塌缩到公式(2)4 种情况中的任意一种,Alice 通过经典信道把测量结果告诉Bob,Bob 会做一定的幺正变换恢复结果。 具体步骤如下:
当Alice 对属于他的配额做出测量结果塌缩后,Bob 的部分配额会发生变化,由|Φ〉 转化为正交态, 可得到4 种结果:需要注意的是,Bob 恢复量子态是依据Alice 通过经典信道传送的塌缩后的结果,而不是α和β。 Bob 得到量子态|Ψ〉 后,为了恢复Alice 传输的态,进行了如下操作。 以M1为例遵循公式(3)恢复Alice 传给其的量子态:
在公式(3) 中,M1塌缩的结果是C1=|Ф+〉〈Ф- |,辅助位ρser=|Φ〉〈Φ |,下角标ij代表传输的量子,ba代表的是辅助的量子。 令i=0,j=0时,通过辅助位ρser乘以C1得出结果 Res[16],对应M1的左上角。 当i=1,j=0 时,对应结果是M1的第二行左下角,以此类推。 用这种方法,无论结果传输的是哪种态(公式(2))Bob 都可以得到对应的结果。
1.1.1 误码率
误码是指在一次通信传输过程中由于外界因素(如:噪音、窃听者攻击等)干扰,使原本传输的信号由0 变为1 或由1 变为0。 误码率是判断协议安全性的一个常见指标,在本文中误码率的计算公式如下:
其中,nErrors代表误码率;dif(keyAB) 代表协议发送方Alice 与接收方Bob 最后确定密钥的每位比特对比后,结果不同的数量;len(keyA) 代表发送方Alice 最后确定的密钥长度。
1.1.2 纠错率
纠错率又叫容错率,代表一次通讯中允许犯错的概率,纠错率越高协议的准确性越高,反之准确性越低。 本文中纠错率的计算公式如下:
式中:Ecr代表纠错率,wn代表一次协议中双方舍去的比特数, toalnum 代表一次协议中发送方初始产生的比特数。
1.1.3 协议可靠率
协议可靠率也是检验协议可靠性和安全性的手段之一,协议可靠率越高证明协议可靠性和安全性越高,反之协议可靠性及安全性越低。 本文协议可靠率的计算公式如下:
式中:Prel代表协议可靠率,herrRate代表有窃听者时协议的误码率,nerrRate代表没有窃听者时协议的误码率。
在实际运行环境中,受诸多因素影响导致在通信中误码率的提升。 如:窃听者、外界拦截—重发攻击、噪声、实际物理外界因素等,都会对通信过程产生影响。
1.2.1 窃听者
窃听者的存在使发送双方在通信时,会舍弃掉一半以上的传输比特。 因为一旦窃听者对发送内容进行窃听,就会“触碰”到量子,而基于量子力学的波包塌缩特性,使得量子快速塌缩到任意偏振态。然而窃听者Eve 并不知道接收方Bob 与发送方Alice 约定使用那种正交归一基作为测量塌缩结果,则导致发送双方舍弃掉量子比特的数量增加,进而导致误码率的提升。
1.2.2 拦截—重发攻击
常见的网络通讯攻击有很多种,其中最为常见的就是拦截—重发攻击。 本文引入窃听者变量,以窃听者为第三方变量对通信双方的通信过程进行拦截—重发攻击。 协议开始,Alice 生成一段随机字符串并发送给Bob,发送途中Eve 对信息进行拦截测量,并对字符串进行重新编码后发送给Bob,这个过程就是拦截—重发的攻击过程。
1.2.3 噪声
通信过程中噪声是最不可避免的影响因素,实验中设置噪声信道影响参数,当信号由Eve 发送给Bob 的过程中引入,传输的每个比特信号将会以噪声信道影响参数的概率进行翻转。 实验结果表明,噪声信道影响参数越大误码率越高,纠错率越高,协议可靠率越低。
1.3.1 BB84 协议
经典BB84 协议流程如图1 所示。
图1 BB84 协议流程图Fig. 1 BB84 protocol flowchart
Alice 随机选取两组序列{an}、{bn},序列长度为2n,Alice 随机制备2n单光子偏振非正交态,即2n个单量子态发送给Bob。 在此,量子偏振态采取希尔伯特二维空间,利用Dirac 记号记录4 种量子偏振态结果如下:
式中:|H〉 和|V〉 是一组完备的正交归一基,称为水平垂直基简称Z基。 其中,|H〉是水平偏振态,|V〉 是垂直偏振态。|+〉 和|-〉 是一组完备的正交归一基,称为对角基,简称X基。 其中,|+〉 是45°偏振态,|-〉 是135°偏振态。 这里Z基和X基的任意形态都是非正交的,而且塌缩概率皆为50%[17]。
其中,偏振态形状如图2 所示。
图2 量子4 种偏振态Fig. 2 The four polarization states of the quantum
当Bob 收取到2n个量子态后,用传统信道公布收到信号的事实,然后选取一组长度为2n的序列{xn}作为决定测量基。 Bob 随机选取Z基或X基作为测量基,当取Z基作为测量基时Bob 取为“0”,取X基作为测量基时Bob 取为“1”,测量结果存储在一组序列并将其命名为{yn}。 之后,Alice 公布序列{an} 所用的测量基结果,Bob 将选择{xn} 的测量基与{an} 进行对比后,将对比结果的“不一致位”发送给Alice,Alice 收到Bob 发送的结果后也删去“不一致位”。 Alice 将剩余的n个数据随机选取n/2用于进行窃听检测,如果达到一定的误码率值,则终止协议重新开始,否则Alice 和Bob 进行数据整合后,最终得到m比特相同数据作为最终密钥。
1.3.2 B92 协议
B92 协议流程如图3 所示:
图3 B92 协议流程图Fig. 3 B92 Protocol flow chart
Alice 随机选取一组序列{an},序列长度为4n,Alice 随机制备4n单光子偏振非正交态,即4n个单量子态发送给Bob,在此量子偏振态多采取希尔伯特二维空间水平垂直基的水平偏振态和对角基中的45°偏振态,利用Dirac 记号记录两种量子偏振态结果如下:
式中:用0 代表水平偏振态|H〉,1 代表45°偏振态|+〉。
当Bob 收取到4n个量子态后,用传统信道公布收到信号的事实,然后选取一组长度为4n的序列{bn} 作为决定测量基。 Bob 随机选取Z基或X基作为测量基,当取Z基作为测量基时,Bob 取为“0”,取X基作为测量基时Bob 取为“1”,测量结果存储在一组序列并将其命名为{cn}。 当Z基和X基的测量结果为“0”时,则为“不确定结果”,且不保存在序列{cn} 中。 因为当Alice 发送量子态|+〉 时,使用X基测量也可得到量子态|+〉;同理,当Alice 发送量子态|H〉 时,使用Z基测量也可得到量子态|H〉。当测量Z基的结果为“1”时,将测量结果确定为1并存储到序列{cn} 中。 因为当测量结果为“1”时,Bob 可以确认Alice 发送的量子态为|+〉; 而当测量X基的结果为“1”时,把测量结果确定为0 并存储到序列{cn} 中。 因为当测量结果为“1”时,Bob可以确认Alice 发送的量子态为|H〉。 这样通信双方也不必对比测量基就可以确定最后保留哪些信息,减少Eve 窃取信息得到密钥结果,大大增强了通信双方信息的安全性。 测量结束后,Bob 将Z基和X基测量结果为“0”的“不确定结果”发给Alice,Alice 收到Bob 发送的结果后也删去“不确定结果”位,将剩余的n个数据随机选取n/2 用于窃听检测。如果达到一定的误码率值则协议终止重新开始;若结果低于一定的误码率,则Alice 和Bob 进行数据整合后,最终得到m比特相同数据作为最终密钥。
Bennett[17]提出的B92 协议是对BB84 协议的一种修改方案,是一个二态协议,不同于BB84 协议中使用了4 个非正交的量子态,而B92 协议只利用两个非正交量子态就能够完成量子密钥分发。 就协议本身来说,BB84 协议传输的是测量基,B92 协议传输的是塌缩后的结果。 B92 协议的校验过程与BB84 协议完全相同,区别在于存在窃听时的量子比特误码率。 B92 协议对实验设备的要求比BB84 协议低,其量子比特制备相对简单,只需要制造两个方向的信号即可。 由于B92 协议的效率只有25%,仅为BB84 协议的一半,B92 通信双方平均只有25%的量子态可以成为有效的传输结果,75%的量子信号则被损失掉[18]。
仿真实验使用Python 语言编写量子密钥分配协议程序。 主要实现了无窃听、有窃听两种情况下的量子密钥分配过程。 程序中引入了参数变量eve 来控制窃听者的存在,N用来控制产生的量子比特数量,noise parameters 用以控制噪声参数。 实验步骤如下:
(1)定义两组函数runBB84、runB92 分别代表BB84 和B92 两个协议,函数过程即BB84 和B92 协议的通信加密过程;
(2)设置随机生成序列函数list(np.random.randint(0,2,N))用于发送方Alice 和接收方Bob 的初始密钥或测量基;
(3)发送方Alice 选取量子位发送给接收方Bob,如果有窃听者Eve 存在则Alice 发送给Bob 的字符串就会被Eve 拦截后重新编码后发送给Bob,如果存在噪声则引入噪声引起的误差;
(4)接收方Bob 根据其随机生成的测量基来测量量子位;
(5)接收方Bob 识别出与Alice 字符串不一致的量子位;
(6)得出最终密钥。
实验分别模拟了有、无窃听时的量子密钥分配过程。 假设产生256 个量子比特位,信道噪声为0.5。初始密钥分配完成后,选取10 个数据对比,通过误码率、协议可靠率对比,以检测协议的可靠性和安全性。
BB84 和B92 协议无窃听者时实验结果见表1。
表1 无窃听者时BB84 和B92 协议密钥分配数据对比Tab. 1 Comparison on key distribution data of BB84 and B92 protocol without eavesdropper
表1 是BB84 协议和B92 协议在无窃听者存在时一次通信过程中的十组数据对比。 BB84 与B92协议不同的是:BB84 协议设置了Alice 最初密钥而B92 协议没有设置,B92 协议的Alice 仅制备水平偏振量子态|H〉 和45°偏振态|+〉。
BB84 和B92 协议有窃听者时结果见表2。
表2 有窃听者时BB84 和B92 协议密钥分配数据对比Tab. 2 Comparison on key distribution data of BB84 and B92 protocol with eavesdropper
表2 是BB84 协议和B92 协议在有窃听者存在时一次通信过程中的十组数据对比。 BB84 与B92协议不同的是:BB84 协议设置了Alice 最初密钥而B92 协议没有,B92 协议Alice 仅制备水平偏振量子态|H〉 和45°偏振态|+〉; 与无窃听者时不同,窃听者会对信道上的量子态进行窃听,而根据波包塌缩原则和量子不可克隆定理,一旦窃听者进行窃听必然会导致量子态的改变进而影响传输结果。
图4 是输入256 比特,噪声参数为0.5,在无窃听者存在时,经过10 次遍历后每一次误码率形成的折线图。 从图中可以明显看出,在同一时间下且没有窃听者存在时,BB84 协议的误码率明显高于B92协议,说明B92 协议的安全性远远高于BB84 协议。图5 是输入256 比特,噪声参数为0.5,在无窃听者存在时,经过150 次遍历后每一次误码率形成的折线图。 从图中可以明显看出,经过多次遍历后,在同一时间下、没有窃听者存在时,BB84 协议的误码率仍然明显高于B92 协议。 在150 次遍历下,蓝色实线高于橘色虚线的概率是98%,此时B92 协议的安全性远远高于BB84 协议。 图6 展现了输入256 比特,噪声参数为0.5,在有窃听者存在时且对传输过程发起拦截—攻击的情况下,经过10 次遍历后每一次误码率形成的折线图。 可以明显看出,在同一时间下、有窃听者且进行拦截—重发攻击存在时,B92协议的误码率明显高于BB84 协议。 虽然在10 次遍历下有部分重合但是可以明显看出蓝色实线高于橘色虚线的概率为36.4%,这时BB84 协议的安全性高于B92 协议。 图7 是输入256 比特,噪声参数为0.5,在有窃听者且进行拦截—重发攻击存在的情况下,经过150 次遍历后每一次误码率形成的折线图。 在多次遍历后可以看出,BB84 协议和B92 协议的误码率开始有部分重合,但是橘色虚线还是普遍高于蓝色实线,在150 次遍历下蓝色实线高于橘色虚线的概率是48%。 通过结果数据和图中对比可知,在同一时间下、有窃听者且进行拦截—重发攻击存在时,B92 协议的误码率明显高于BB84 协议,这时BB84 协议的安全性高于B92 协议。
图4 无窃听者时的两协议10 次误码率对比Fig. 4 Comparison of 10 bits error rate between the two protocols without eavesdropper
图5 无窃听者时的两协议150 次误码率的对比Fig. 5 Comparison of 150 bits error rate between the two protocols without eavesdropper
图6 有窃听者时的两协议10 次误码率的对比Fig. 6 Comparison of 10 bits error rate between the two protocols with eavesdropper
图7 有窃听者时的两协议150 次误码率的对比Fig. 7 Comparison of 150 bits error rate between the two protocols with eavesdropper
图8 是输入256 比特,噪声参数为0.5,在无窃听者存在时,经过10 次遍历后每一次纠错率形成的折线图。 图中可以明显看出在同一时间下、没有窃听者存在时BB84 协议的纠错率是明显低于B92 协议的,这时B92 协议的安全性和协议传输内容的准确性是远远高于BB84 协议的。 图9 是输入256 比特,噪声参数为0.5,在无窃听者存在时,经过150 次遍历后每一次纠错率形成的折线图。 图中可以明显看出在经过更多次遍历后在同一时间下、没有窃听者存在时BB84 协议的纠错率还是明显低于B92 协议的,这时B92 协议的安全性和协议传输内容的准确性是远远高于BB84 协议的。 图10 是输入256 比特,噪声参数为0.5,在有窃听者且进行拦截——重发攻击存在时,经过10 次遍历后每一次纠错率形成的折线图。 图中可以明显看出在同一时间下、有窃听者且进行拦截——重发攻击存在时BB84 协议的纠错率是明显低于B92 协议的,这时B92 协议的安全性和协议传输内容的准确性是远远高于BB84 协议的。 图11 是输入256 比特,噪声参数为0.5,在有窃听者进行拦截——重发攻击存在时,经过150 次遍历后每一次纠错率形成的折线图。 由图中可以明显看出在经过更多次遍历后在同一时间下、有窃听者且进行拦截——重发攻击存在时BB84 协议的纠错率还是明显低于B92 协议的,这时B92 协议的安全性和协议传输内容的准确性是远远高于BB84 协议的。
图8 无窃听者时的两协议10 次纠错率的对比Fig. 8 Comparison of 10 error correction rate between two protocols without eavesdropper
图9 无窃听者时的两协议150 次纠错率的对比Fig. 9 Comparison of 150 error correction rate between two protocols without eavesdropper
图10 有窃听者时的两协议10 次纠错率的对比Fig. 10 Comparison of 10 error correction rate between two protocols with eavesdropper
图11 有窃听者时的两协议150 次纠错率的对比Fig. 11 Comparison of 150 error correction rate between two protocols with eavesdropper
图12 是输入256 比特,噪声参数为0.5,经过10次遍历后每次协议可靠率形成的折线图。 由图中可以明显看出,在同一时间下BB84 协议的协议可靠率明显低于B92 协议,这时B92 协议的安全性和协议健壮性远远高于BB84 协议。 图13 是输入256 比特,噪声参数为0.5,经过150 次遍历后每次协议可靠率形成的折线图。 可以明显看出,经过多次遍历后在同一时间下,BB84 协议的可靠率虽然有部分重合但还是明显低于B92 协议。 在150 次遍历下,橘色虚线低于蓝色实线的概率是40%,这时B92 协议的安全性和协议健壮性远远高于BB84 协议。
图12 两协议10 次协议可靠率对比Fig. 12 Comparison of 10 protocol reliability between the two protocols
图13 两协议150 次协议可靠率对比Fig. 13 Comparison of 150 protocol reliability between the two protocols
经过上述对比分析可知:在无窃听者存在时,BB84 协议的误码率远高于B92 协议;引入窃听者后,B92 协议的误码率就会上升并高于BB84 协议。但是,当引入纠错率和协议可靠率时,无论窃听者存在与否B92 协议传输内容的准确性及协议的健壮性都远高于BB84 协议,所以传输内容时选择B92协议要好于BB84 协议。
随着量子技术的飞速发展,量子加密协议变得更加严谨,协议对环境外界干扰的要求也越来越小,协议的鲁棒性与安全性逐步增强。 对量子态的制备也不再要求是在理想的条件下[19],量子传输速率越来越快,传输公里数越来越长,量子通信加密协议也越来越适用在各种复杂多样的场景中。 关于如何仿真BB84 协议和B92 协议,除了窃听者和误码率、纠错率、协议可靠率以外是否可以引入其他因素和变量来验证安全性,都可以进一步研究和讨论。