您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 量子密钥分发的后处理简介
量子密钥分发的后处理过程摘要在当今的信息社会中,通信技术发挥着越来越重要的作用,同时人们对通信安全性也提出了越来越高的要求。经典密码学是保障信息安全的有效工具,然而随着计算机和量子计算的发展,基于数学计算复杂性假设的经典密码体制日益受到严峻的挑战。量子密码学建立在量子力学原理基础上,被证明能够提供信息论意义上的绝对安全性。量子密钥分发(QKD)作为量子密码学的一种重要应用,在量子测不准原理和不可克隆性定理保障下,使合法通信双方Alice和Bob能够在存在窃听者Eve的情况下建立无条件安全的共享密钥。QKD包括量子信道传输、数据筛选、密钥协商和保密增强等步骤,其中密钥协商和保密增强合称为后处理。后处理算法对QKD的密钥速率和安全距离起着至关重要的作用。本文主要介绍量子密钥分发后处理过程的基本含义,步骤和主要的算法。(量子信道传输的过程请参见汇报PPT。)I.简介在量子密钥分发实验中,通过量子信道通信后双方获得的密钥元素并不能直接作为密钥来使用,由于信道不完善性以及窃听者Eve的影响,使得双方拥有的密钥元素串之间存在误差,并且有部分信息为窃听者Eve所了解,我们需要引入后处理算法来获得最终完全一致且绝对安全的密钥串。后处理算法包括三个步骤,即数据筛选、密钥协商和保密增强,其中主要的步骤是密钥协商和保密增强。(1)筛选数据(DistillData)发端Alice和收端Bob先交换部分测量基(例如前10%)放弃基不同的数据后公开进行比对,测量得到误码率,若误码率低于我们的要求(例如25%),确定没有窃听存在,即本次通信有效,若超过这个要求值则发端Alice和收端Bob放弃所有的数据并重传光量子序列。若通信有效,则通过对剩下的数据比较测量基后会放弃那些在传送过程中测量基矢不一致或者是没有收到的数据,或者是由于各种因素的影响而不合要求的测量结果,这一过程称为筛选数据。通过这一过程也可以检测出是否有窃听的存在,并确定双方的误码率,以便下一步进行数据协调。(2)数据协调(ErrorReconciliation)经过筛选之后所得到的筛选数据(siftedkey)并不能保证发端Alice和收端Bob的数据完全一致,因此要对双方的筛选数据进行纠错。即通过一定的算法,利用公开信道对筛后数据进行纠错,这一过程称之为数据协调。对数据协调的要求有:将误码率降低至适宜于使用;尽量减少窃听者获取的信息;尽量保留最多的有效数据;速度要够快并尽量节省计算以及通信资源。这样虽然使密钥长度有所缩短,但保证了密钥的安全性。(3)密性放大(PrivacyAmplification)密性放大最早是应量子保密通信的需要而提出来的,但是现在已经成为经典保密通信的重要课题之一。密性放大又称作密性强化,它是一种通过公开信道提高数据保密性的技术。经过上述的数据协调,双方密钥序列基本上达成一致,密性放大技术是被用来减少潜在第三者的对数据协调后得到的密钥序列的窃听信息。发端Alice和收端Bob随机公开一个哈希函数h,它能映射字符串x成为一个新的串h(x),这样就可以是窃听者所得到的h(x)的信息大大减少。经过上述三个步骤,Alice和Bob可以共享比较理想的密钥,通过对BB84协议通信过程的讲述,我们可以总结出量子密钥分发的重要特点,即需要两个信道,量子信道和经典信道,除了要在量子信道上传递量子信息之外,还要通过经典信道传递大量的辅助信息。II信息协调即使是有效的通信,筛选数据测量得到的误码率(QBER)一般都较大这样的数据是不能直接用来做密钥的,还要进行数据协调纠错及密性放大,使双方的误码率达到一定的数量级才能用于可靠的保密通信系统中。数据协调通过公开信道进行纠错,既然公开就一定存在窃听的可能性。我们这里讨论的是信息泄露的可能性,即窃听者Eve能够收到Alice与Bob公开的内容。假设Alice利用量子态向Bob传送经典数据的过程是有噪声的二元对称信道,这一过程可得到筛选数据长度为n,量子误码率(QBER)为q,Alice与Bob的互信息I(A,B)=n[1−H(q)]式中H(q)是以q为参量的二元熵。假设数据协调后全部错误被改正,若长度仍为n,则有I(A,B)=n亦即互信息I(A,B)增加了nH(q)。互信息的增加是通过公开通信而获得的,公开披漏的信息也可以为窃听者所获得。假设在数据协调过程中不舍弃已披露的信息,窃听者获得的信息为I(E,A)≥nH(q)因此通常数据协调的过程都会舍弃已公开披露的数据。同时,上述的公开信道是指可以被窃听但不能篡改的经典通信信道,经研究后提出以下几种比较实用的方法。2.1二分法数据协调经过数据筛选步骤的误码率检验后,发送方Alice与接收方Bob留下的筛选数据长度为n,误码率为q。二分法纠错数据协调(binarycorrectingprotocol)的步骤如下:(1)Alice和Bob共享一个随机序列,并按照此序列将它们的数据重新排序,目的是使错误可以均匀地随机分布;(2)Alice和Bob分别将它们的数据串分组,分组长度为k,选取k的标准是使每组的错误尽可能的小(一般要求每组含有的错误个数尽可能小于1);(3)Alice和Bob各自计算每组数据的奇偶性并且通过公开信道进行校验比较。如果对应的数据组奇偶性不同,则表示该组数据有错误位,且错误的个数是奇数。然后将存在错误的数组一分为二,同时进行奇偶检验计算及公开比较。如此反复直到确定没有错误或进行到最后一个数位,这个最后数位就是错误数位。为了不让E(Eve,窃听者)获得信息,我们每公开披露一次奇偶性,就将该数组的最后一位舍弃,同时舍弃被发现的数组的错误位;(4)经过上述步骤(3)的纠错后,各组的奇偶性虽然相同但是仍然可能存在偶数个错误。继续进行纠错,重新排列分组使每组有奇数个错误,这就需要新一轮的数组长度应比上一轮的数组长度要长,例如是上一轮的两倍。然后重复步骤(1)、(2)、(3)进行下一轮的纠错。进行数轮纠错后,如果留下的错误概率已经接近我们的要求,例如接近1%,则可以进入下一步骤;(5)这一步的目的是确保不存在错误(或者说错误很低)。从步骤(4)得到的数据里随机得取出一个子集,计算所取的子集的奇偶性,并公开进行比较。如果Alice和Bob的数据完全相同(也就是说没有错误),即奇偶性相同。当然当他们的奇偶性相同时仍有存在偶数个错误,这个概率是0.5,由于偶数个错误是校验不出来的,因此错误无法校验的概率是0.5。若两端子集的奇偶性不同,也就是存在奇数个错误,则继续进行步骤(3)的纠错。若奇偶性相同,则重复步骤(5),直至连续许多次都不出现错误为止。2.2级联纠错“二分法纠错”对含有偶数个错误的数组不能发现错误,只能依靠重新分组。级联纠错(protocolcascade)显著改善了这方面的性能,假设筛选数据长度为n,测量得到的误码率为q。其步骤如下:(1)Alice和Bob端将全部数据按照同一随机序列重新排列,目的是使错误均匀地随机分布。这时首先记下每个数据的编号,例如,Al表示Alice端的序号为l的数据,Bl代表Bob端的序号为l的数据,l∈{1,2,...,n}。然后双方分别将数据按照同一数据长度k1进行分组,共分为n/k1组,k1的大小取决于误码率q,目的是使每组含有的错误个数不大于1,如可取1/2qk11/q。分组中第一组的可记为K11,第v组则记为K1v。上标1表示第一次分组,即分组的轮数是1,下标v表示该轮分组中第v个分组。在每个分组之内,每个数据的标号仍是采用没有分组前的序号。举例说明:在分组K11内数据的标号是1{1,2,...,k},在分组K12中数据的标号为{k1+1,k1+2,...,2k}。(2)Alice和Bob分别计算各分组的奇偶性,并通过公开信道将Alice的校验结果告知Bob,Bob将Alice的结果与自己的进行比较。若出现奇偶性不一致时,利用上节所描述的二分法步骤(3)进行纠错。与上述二分法不同的是不需要舍弃数据,并且将找到的错误数据取反。经过本轮纠错后,所有的分组都只存在偶数个错误。(3)进行第二轮的分组纠错,首先进行第二轮分组,每数组的长度2k也要比第一次分组的长度长,如k2=2k1,与二分法随机分组不同的是利用随机函数f2:[1...n]→[1...n/k2],将n个数据分为n/k2组,以分组K2j表示顺序为j的第二轮分组。分组K2j内数据的标号是{l|f2(l)=j}。这里l是第一轮步骤(1)已确定的序号。凡满足f2(l)=j的编入第二轮第j组,每个分组内按l有小到大的顺序排列。然后对各组计算奇偶性,并公开进行比较,若彼此奇偶性不一致,则进行二分法纠错。若在K2j内发现错误,它的序号是l,纠错后可以判断出在第一轮的分组中含有序号l的分组K1v内一定还存在另外的奇数个错误。对这些分组再使用二分法纠错,被发现及纠错的个数就会显著增加。直到不能再发现新错误时,结束第二轮纠错。这时第一轮及第二轮的所有分组,仍有可能含有偶数个错误。(4)重复步骤(3)的分组纠错,在第i轮(i1)中的分组纠错中,采用随机函数:fi:[1...n]→[1...n/ki]将数据分成长度为ki的n/ki个组。在分组Kij内数据的序号为{l|fi(l)=j}。Alice与Bob分别计算各分组的奇偶性并公开比较,若发现奇偶性不一致则进行二分法纠错。在Kij中发现序号为l的错误,经二分法纠错后必定可以在含有数据序号l数组1Kvu(1≤ui)中发现奇数个错误(也就是这一组原来有偶数个错误)。对这些含奇数个错误的分组重新使用二分法纠错。不能再发现错误时重复步骤(4)进行新一轮纠错。若本轮完全没有发现错误,则进入下一步骤(5)。(5)这一步的目的同上节的步骤(5)一样,是确认没有错误,即从纠错结束后的数据中随机地选取一个子集,计算子集的奇偶性并比较。若Alice和Bob端的奇偶性相同,则表明存在偶数个错误的概率是0.5。III密性放大如图所示,经过协商以后,Alice和Bob拥有相同的比特串,我们用X表示。Eve拥有的比特串为Z`=ZM,M为协商中过程中公开的信息量。Z`中包含X的部分信息,我们需要通过保密增强步骤来去除Eve从量子信道和经典认证信道上获取的信息量,最终提取出绝对安全的密钥。保密增强的主要思想就是以牺牲一些比特的代价,将Eve对协商后比特串的确定部分尽可能均匀地分散到不确定部分中,使得Eve对保密增强后剩下的比特串完全不确定。遵循这样的思想,保密增强就可以归结为设计合适的压缩函数,压缩函数的每个输出比特都取决于大部分甚至全部的输入比特。在实际的保密增强算法实现中,压缩函数一般是利用经典密码学中的哈希函数来进行设计的,具体过程是先设计一类性能较好的哈希函数簇,由Alice和Bob共享,然后每次保密增强时从簇里面随机选择一个哈希函数,并且Alice将选取的哈希函数的描述告诉给Bob,随后双方一起将该哈希函数作用到自己的比特串上面,得到最终密钥串。为了达到较好的保密增强效果,选取的哈希函数簇需要满足一些特别的要求,接下来我们就来对其进行讨论。首先,为了减少Eve钻空子的可能性,选取的哈希函数对于任意不同的输入取值1x和2x,其输出值应该尽可能不同。因为如果相同的话,则Eve有可能利用自己的错误信息获得正确的最终密钥,显然协议就失去了效力。由于我们是从哈希函数簇H中随机选取哈希函数来使用的,因此需要保证在这个簇里面,对于不同输入值具有相同输出值的函数尽可能少,才能保证保密增强算法多次使用的平均性能。其次,由于Alice需要发送所选哈希函数的描述给Bob,这就要求描述哈希簇里面的某个特定哈希函数所需使用的比特数尽量少。虽然所选哈希函数没有保密的必要,但是在实际运用中,描述过长会增加通信开销,同时影响处理速度。一般来说,我们应该将描述的长度控制在输入比特长度的一定比例范围内。再次,我们需要使用输入和输出长度较大的哈希函数簇。这是因为,在QKD实验中,保密增强所需要去除的比特数是通过比较一定量的样本统计信道参数后估计出来的。估计所用的测试样本应该是随机且均匀地分布在QKD一轮实验
本文标题:量子密钥分发的后处理简介
链接地址:https://www.777doc.com/doc-1966262 .html