用于量子密钥分配系统的经典信道消息认证方法和装置的制作方法

文档序号:7864961阅读:170来源:国知局
专利名称:用于量子密钥分配系统的经典信道消息认证方法和装置的制作方法
技术领域
本发明涉及数据通信技术领域,特别是涉及一种用于量子密钥分配系统的经典信道消息认证方法和装置。
背景技术
现行使用的密码系统,通常基于某个未解的数学难题(如大数的因式分解),其通信安全常常依赖于“现有计算机能力不可解决”的数学假设来保证,理论上不被破译的可能 性未得到证明。此外,在经典信道中无法有效的发现攻击者的窃听行为,密钥分发后没有充分的理由说明该密钥在传输过程中未被篡改或调换,因此在经典密码体制中的密钥分发问题一直是个比较困难的问题。国际上正在研究的量子计算机,理论研究已经显示其具有特殊的功能,如果这种计算机研制成功的话,它能够求解诸如大数因子分解等难题,其速度比经典计算机快几个数量级。若保密通信仍按经典方式进行,将无法阻挡量子计算机的破译。量子密码系统是一个物理系统,传输介质包括光纤和自由空间,它允许两方或多方在没有共享秘密信息的情况下通过公开信道建立共享密钥,并进行保密的量子通信。量子密码的安全性基于海森堡测不准原理、量子不可克隆原理等量子力学基本原理,保证窃听者不可能在不破坏系统量子态的情况下进行窃听或获取信息,从而达到一种公开的方法来实现无条件加密。密钥的安全分发是保密通信的前提。在量子密钥分发(QuantumKeyDistribution,QKD)提出之前,最安全的密钥分发方式是可靠信使的传递。这种密钥分发方式的安全性建立在信使的忠诚和敌方攻击技术受限的假设之上。QKD是一种利用量子系统的特性实现无条件安全密钥分发的技术,其安全性的基础是量子力学原理。QKD实现了密码学的理想,把密钥的安全性建立在科学原理的可靠性之上,而不是人的可靠性之上。QKD的一个最重要的性质是,如果有第三方试图窃听密码,则通信的双方便会察觉。这种性质基于量子力学的基本原理任何对量子系统的测量都会对系统产生干扰。第三方试图窃听密码,必须用某种方式测量它,而这些测量就会带来可察觉的异常。通过量子叠加态或量子纠缠态来传输信息,通信系统便可以检测是否存在窃听。当窃听低于一定标准,一个有安全保障的密钥就可以产生了。QKD协议利用量子力学特性来保证通信的安全性,它使通信的双方能够产生并分享一个随机的、安全的密钥,来加密和解密信息。量子密钥分发协议主要包括量子传输,数据筛选(包括误码率测量),数据纠错,保密增强四个过程。实际上,所谓的量子密钥分发协议都可以称之为“量子比特筛选”协议,因为QKD技术并不能将特定的密钥分发给一个特定的用户。在通信双方开始量子通信之前,并未事先产生特定的量子密钥,然后再通过量子信道发送;而是根据量子态的特性,从选态比特序列中筛选出来一个随机子集作为密钥数据,再对密钥数据进行秘密增强实现量子密钥的共享。量子密钥分配QKD与经典密钥分配最本质的区别在于前者是运用量子态来表征随机数O或1,而现有的密钥分配是运用物理量来表征的。若采用光脉冲来传送比特,在经典信息中,光脉冲有光子代表I,无光子代表O在量子信息中则是米用单个光子的偏振态来表征比特的,如圆偏振态表不O,线偏振态表不I,每个光脉冲最多只能有一个光子,这个光子所处的不同量子态表明它携带的不同比特信息。在量子密钥分配的时候,发送方可以通过随机的发送处于不同偏振态的光子来进行经典信息的传输。图I所示的光子的4个偏振态可以用来标征随机信息,图中左边两个为水平偏振和垂直偏振,通过直角基制备;右边两个为135°偏振和45°偏振,通过斜角基制备。在量子密钥分配中,发送者随机制备处于不同偏振态的光子来表征经典信息,例如水平偏振和45°偏振表征O,垂直偏振和135°偏振表征I。接收方在收到光子以后测量其所处的具体偏振态,从而得到光子所携带的经典信息。需要注意的是,接收者只有选择正确的测量基(分为直角基和斜角基)才能进行正确的测量,例如在斜角基上测量处于水平偏振态的光子(表征比特0),那么所测得结果将各以50%的概率 得到左旋45°偏振态和135°偏振态,即各以50%的概率得到经典比特O和1,也就是说有50%的可能出错。一个典型的量子密钥分配过程如图2所示,具体来看量子信号传输发送方Alice随机的产生一个长度为η的经典比特串,并根据比特串中的每个比特的值随机的选择直角基或者斜角基制备处于不同偏振态的光子,此时每个光子都是随机的出于四种偏振态的任何一种。例如第一个比特为0,Alice选择了直角基,那么制备的光子处于水平偏振态;反之,若Alice选择了斜角基,那么制备的光子处于45°偏振态。发送方Alice将光子通过量子信道传送给接收方Bob。对收到的每个光子,Bob随机的选择直角基或者斜角基对其偏振态进行测量,并记录测量结果。测量结束后,Bob将得到一个长度为η的经典比特串,由于Bob的态测量基是随机选择的,所以其得到的比特串中存在有错误,因此需要进行数据筛选,选出有用的比特值,至此第一阶段结束。数据筛选第一阶段结束后,接收方Bob通过认证完好的公开信道公布其选择的测量基,但不公布测量结果,任何人都可以看到Bob公布的信息;发送方Alice通过Bob公布的信息可以确定Bob所选择的基哪些是正确的,哪些是错误的;Alice丢弃错误测量基所对应的比特值,并通过认证完好的公开信道通知Bob其选择的测量基中正确的测量基所对应的序列号,Bob保留测量结果中这些序列号所对应的比特,并丢弃其余的比特。该步骤后合法通信双方Alice和Bob建立了一个长度约为n2的秘密比特串,其他人也可以看到Alice公布的信息,但由于Bob没有公布测量结果,因此除了 Alice和Bob外他人无法得到秘密比特串的信息。误码率测量为了检测是否有窃听者存在,发送方Alice和接收方Bob通过认证完好的经典信道从已建立的随机比特串中随机抽取一个子集进行公开比对,即Alice公布某一随即子集的比特值,Bob检测和自己的测量结果是否一致。设Alice和Bob所抽取的比特串分别为a和b。正常情况下除了传输过程中信道噪声带来的少量错误外,比特串a中的每个比特应该和b中相应的比特具有相同的比特值Al ice和Bob对比比特串a和b的值,若b中某个比特和a中的对应比特不同,则认为该比特错误,并计算b的误码率错误比特个数误码率=-x〗00%如果误码率超出了一个事先约定好的上限
比特串长度
δ,则协议终止;如果误码率在一个可接受的范围内,则通信双方丢弃已经公开的进行比对的比特,将剩下的比特作为共享的密钥,作用是掌握敌手窃量的大小。数据纠错通信双方经过上述数据筛选和误码率测量后,通信双方共享了一个误码率在可接受范围内的密钥,其称作裸密钥。由于存在一定的误码率,因此通信双方接下来对裸密钥进行数据纠错。一般数据纠错通过认证完善的公开信道进行数据交互实现。该步骤使得通信双方共享的的裸密钥的不一致情况得以纠正。 保密增强Alice和Bob分别在本地对手中的裸密钥作保密增强操作。该步骤的作用是增强最终密钥的保密性。需要指出的是I为量子信号传输,2-5为经典信号传输和经典信息后处理。从量子密钥分配的过程不难看出,量子密钥分配就是一种数据筛选技术,它不是把特定的密钥分发给一个特定的用户,而是对随机的比特序列进行筛选得到一些共享密钥比特,其安全性基于检测窃听的有效性,使用这种方式不可能直接进行特定数据的通信。由于量子密钥分配QKD是一个比特筛选的过程,因此在量子信号通信结束后需要一个认证完善的经典信道进行公开比对,从而筛选出有用的量子比特位。由于环境噪声和窃听者的存在,公开比对包括测量基的筛选和误码率测量。Alice和Bob通过比对确定态制备基和态测量基相同的量子比特,并保留这些量子比特的测量结果,然后公开部分筛选后的数据来检验误码率。构造满足现实QKD系统需求的经典信道认证方式的困难在于它至少要同时满足如下四个条件1)这种认证方式必须具有信息论安全性,而不是计算安全性;2)这种认证方式必须具有充分小的密钥消耗率,这是实现“密钥扩展”的基础;3)这种认证方式必须具有快速的软硬件实现方案,以适应QKD的需求;4)从需求来看,尤其是从军事需求来看,QKD系统所面临的工作环境可能很恶劣,所以这种认证方式必须能在一定程度上对抗经典信道的错误,甚至敌方对经典信道的攻击,以保证QKD系统在恶劣环境下正常工作。第一条是可以做到的,因为人们已经陆续提出了不少具有信息论安全性的认证码。要同时做到第二条就要对这些信息论安全认证码进行选择,因为具有信息论安全性的认证码往往要消耗大量的密钥。要同时满足第三条需要采用基于循环冗余码校验(Cyclical Redundancy Check,CRC)的认证码,这是一类用于流密码、可以通过线形反馈移位寄存器(LFSR)进行快速编码的Wegman-Carter类认证码。虽然人们对基于CRC的认证码已经有了很多研究,但要兼顾第四条仍有很多困难要克服。这是因为基于CRC的认证码需要针对每一个较长的消息计算一个消息认证码(Message Authentication Code, MAC),即MAC值,以期在节省密钥的同时保证安全性,这导致即使长消息中仅出现一位错误,消息认证也不能通过。所以,如何满足第四条,保证在经典信道存在错误的情况下QKD系统仍然能够正常工作,就成为发展QKD系统经典信道认证技术的一个关键问题。发明内容
为了解决现有技术中经典信道存在错误的情况下QKD系统无法正常工作的问题,本发明提供了一种用于QKD系统的经典信道消息认证方法和装置。
一方面,本发明的用于QKD系统的经典信道消息认证方法包括发送方结合CRC编码和一次一密的加密方式,生成原始消息M的消息认证码MAC值;将MAC值按照事先约定的位置插入到原始消息M中,形成原始数据比特串;对数据比特串进行指定级数的纠错编码,其中,在每一级纠错编码之前都进行如下操作,直到完成指定级数的纠错编码将数据比特串分为固定长度的多个组;对每组数据均进行拉线置换,形成新的数据比特串;对拉线置换后的数据比特串进行本级纠错编码;将完成指定级数纠错编码后的数据比特串通过经典信道发送给接收方,接收方按照事先约定好的译码方式对数据进行相应级数的译码;其中,在每一级译码都进行如下操作,直到完成相应级数的译码对数据进行译码;将译码后的数据分成固定长度的多个分组;对每个分组按照发送方所使用的拉线置换的逆置换进行操作;接收方按照事先约定的位置从译码后得到的数据串中提取消息M和其对应的MAC值;接收方按照预定的计算方式,计算译码后提取到的消息M的MAC值;接收方比较计算得到的MAC值和译码后所提取到的MAC值是否相同,如果二者相同,则判断其提取的原始消息M确实来自于发送方,且未被篡改,反之视为未通过认证。进一步地,所述纠错码编码采用汉明码;所述指定级数为6级。进一步地,MAC值按照事先约定的位置插入到原始消息M中,该位置由发送方和接收方事先约定。另一方面,本发明的用于量子密钥分配系统的经典信道消息认证装置包括原始数据串生成处理模块,用于生成原始消息M的消息认证码MAC值,并将MAC值插入到原始消息串中生成原始数据串,该原始数据串包括原始消息M和M的MAC值两部分;纠错码编码模块,用于对原始数据串进行指定级数的纠错码编码,其中,在每一级纠错码编码,纠错码编码模块都进行如下操作,直到完成指定级数的纠错编码将数据比特串分为固定长度的多个组;对每组数据均进行事先约定的拉线置换,形成新的数据比特串;对拉线置换后的数据比特串进行本级纠错编码;消息发送模块,用于将完成指定级数纠错编码的数据发送给接收方;消息接收模块,用于接收来自消息发送模块的数据;译码处理模块,用于按照预定的译码方式对数据串收到的数据进行相应级数的译码,其中,在每一级译码,译码处理模块都进行如下操作,直到完成指定级数的译码
对数据进行译码;将译码后的数据分成固定长度的多个分组;对每个分组按照发送方所使用的拉线置换的逆置换进行操作;原始数据串恢复处理模块,用于从译码后的数据串中获取原始消息M和M的MAC值,其中,接收方按照事先约定的位置提取MAC值和消息M ;消息认证码计算处理模块,用于使接收方按照预定的计算方式,计算提取到的消息M的MAC值;消息判断模块,用于比较计算得到的MAC值和提取到的MAC值,如果二者相同,则判断所获得的原始消息M确实来自于发送方,且未被篡改,反之视为未通过认 证。本发明有益效果如下本发明提供了一种具有信息论安全性和一定错误容忍及攻击容忍能力的用于量子密钥分配系统的经典信道的消息认证方案,密钥消耗率小,软硬件实现快速,可基于FPGA平台实现核心算法和整体认证方案,为QKD系统提供了一个必备的密码学方案。


图I是光子的4个偏振态示意图。图2是典型的量子密钥分配过程示意图。图3是基于CRC的消息认证方案框图。图4是本发明用于量子密钥分配系统的经典信道消息认证方法流程图。图5是本发明实施例的拉线置换处理示意图。图6是本发明实施例的纠错后误码率和纠错前误码率对比图。图7是本发明实施例的汉明码(7,4,3)码编码线路图。图8是本发明实施例的汉明码(7,4,3 )码译码线路图。图9是本发明用于量子密钥分配系统的经典信道消息认证装置结构示意图。
具体实施例方式以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。 在本领域,基于CRC的MAC是一种已经证明了的具有信息论安全的消息认证码,其安全性满足了我们对所需要的认证机制的要求。该体制先将认证的消息用通用哈希函数作用得到其散列值,然后用一次一密密钥填充散列值作为MAC与认证的消息一起发送给接收方。一种基于循环校验码CRC的认证方案如图3所示,接收者收到信道中传过来的消息以后,首先提取原始消息比特串M以及附加在后面的η位MAC值,并根据手中事先共享的P (X)和K计算M的MAC值与所接收到的MAC值进行对比,如果二者相同,则认证成功,否则认为认证失败。这里的认证是一个双重认证,一方面,通过MAC值能够检验消息在传输过程中是否被篡改,达到了消息完整性认证的目的;另一方面,由于所使用到的PU)和K是有通信双方事先共享的,因此只有合法的发送方才知道其值并计算得到MAC,因此完成了对消息发送者的身份认证。对任意值m和η>1,设h ( ·)是杂凑函数,c (X)是其所有可能余式多项式的集合,P (X)是函数中使用的不可约多项式,则,在基于CRC的MAC中h(M(x)) = cAf(X) ·χπ mod/;(x) = c(jc),即当且仅当p(x)除尽M(x) · xn_c (x),该式的次数最高为m+n次,P(X)的次数是n,所以该式最多可分解成(m+n)/n个η次不可约多项式。也就是说有(m+n)/n个ρ(Χ)的选择会产生碰撞,而p (x)的总数不会超过2n_7n。所以碰撞概率是(m+n/n) / (2n_Vn) = (m+n) /⑵―1),一个不知道MAC密钥的攻击者伪造MAC的概率最多是(m+n) /(2η_0,当η的值足够大时,这个概率几乎为0,因此该认证方案具有无条件安全性。CRC认证码可以使用线性移位反馈寄存器硬件实现,因而计算校验码的速度较快。对于lG(224)bit的消息量即m为224可以取η为64。这样只需64位的密钥就可以认证224位的消息,从而以较少的密钥消耗认证了较多的消息量,因而该认证方法适合应用于量子密钥分配协议中。以上考虑的认证方案适用于理想的没有噪声的经典信道,不考虑噪声的干扰。而 实际应用中,例如卫星通信系统等,由于系统自身的原因,信道中通常都无可避免的会有一定的噪声干扰存在,从而导致接收方收到的消息比特串中存在一定比率的错误。而对与认证方案中使用的CRC-based消息认证体制而言,I比特的消息错误都可以被无限放大,从而导致认证的失败,这是由其所使用的杂凑函数的性质决定的。图4为本发明的用于量子密钥分配系统的经典信道消息认证方法流程图,为了防止噪声的干扰导致认证的失败,需要在发送之前对所要发送的数据比特串进行纠错码编码,然后使编码后的消息在信道中传输以抵抗信道噪声。接收方通过解码获得原始的消息比特串和对应的MAC值,进而进行消息完整性认证。在消息传输过程中,攻击者会对部分信息窃听,从而引入类似噪声的错误。这类错误通常较集中,通过单轮纠错码纠错后,仍然存在译码错误,所以往往不能将整个比特序列的误码率降到一个可以接受的水平。为此,我们在容错编码中加入随机置换,防止攻击者选定某些信息的编码块来进行破坏。本发明实施例采用拉线置换实现随机置换,如图5所示,拉线置换是一个简捷快速的数字电路随机置换技术,该置换技术不需要门电路,简单的比特连线即可实现随机置换,大大提高随机置换的速度和可靠性。拉线置换有很多种方式。纠错协议中的置换要求置换尽可能均匀。尽量使得每个分组内各比特经置换操作后均匀分散在下一轮不同组之中。由图5可以看到该拉线置换将第一个分组(an,a12,. . .,aln)中的第一个比特an取出放在置换后第一个位置。将第二个分组(a21,a22,...,a2n)中的第一个比特a21取出放在置换后的第二个位置。直到取到最后一组即第m组(aml,am2,. . .,aj第一个比特aml放到置换后第m个位置。然后重新从第一组开始取第一个分组(an, a12, . . .,aln)中的第二个比特a12放入分组后的第m+1个位置。第二个分组(a21,a22,. . .,a2n)中的第二个比特a22放在分组后的第m+2个位置。直到第m组(&ηι1,am2,. . .,amn)在的第二个m个比特放在分组后的第m+m个位置。这样重复排列下去直到各分组的最后一个比特(aln,a2n,…,aj放入分组后的最后m个位置。可见该拉线置换将各组的比特逐一依次取出排列,从而使得分组后每个分组内各比特经置换操作后均匀分散在分组后的序列中。各级纠错前均需要做拉线置换。第i级拉线置换如下所示。
-,41,……尤…尤)
权利要求
1.一种用于量子密钥分配系统的经典信道消息认证方法,其特征在于,包括 发送方结合CRC编码和一次一密的加密方式,生成原始消息M的消息认证码MAC值; 将MAC值按照事先约定的位置插入到原始消息M中,形成原始数据比特串; 对数据比特串进行指定级数的纠错编码,其中,在每一级纠错编码之前都进行如下操作,直到完成指定级数的纠错编码 将数据比特串分为固定长度的多个组; 对每组数据均进行拉线置换,形成新的数据比特串; 对拉线置换后的数据比特串进行本级纠错编码; 将完成指定级数纠错编码后的数据比特串通过经典信道发送给接收方,接收方按照事先约定好的译码方式对数据进行相应级数的译码;其中,在每一级译码都进行如下操作,直到完成相应级数的译码 对数据进行译码; 将译码后的数据分成固定长度的多个分组; 对每个分组按照发送方所使用的拉线置换的逆置换进行操作; 接收方按照事先约定的位置从译码后得到的数据串中提取消息M和其对应的MAC值,并按照预定的计算方式,计算译码后提取到的消息M的MAC值; 接收方比较计算得到的MAC值和译码后所提取到的MAC值是否相同,如果二者相同,则判断其提取的原始消息M确实来自于发送方,且未被篡改,反之视为未通过认证。
2.如权利要求I所述的用于量子密钥分配系统的经典信道消息认证方法,其特征在于,所述指定级数为6级。
3.如权利要求I所述的用于量子密钥分配系统的经典信道消息认证方法,其特征在于,所述纠错编码使用汉明码编码。
4.如权利要求I所述的用于量子密钥分配系统的经典信道消息认证方法,其特征在于,MAC值按照事先约定的位置插入到原始消息M中,该位置由发送方和接收方事先约定。
5.如权利要求I所述的用于量子密钥分配系统的经典信道消息认证方法,其特征在于,所使用的拉线置换和逆置换由发送方和接收方事先约定。
6.一种用于量子密钥分配系统的经典信道消息认证装置,其特征在于,包括 原始数据串生成处理模块,用于结合CRC编码和一次一密的加密方式,生成原始消息M的消息认证码MAC值,并按照事先约定的位置将MAC值插入到原始消息串中生成原始数据串; 纠错码编码模块,用于对原始数据串进行指定级数的纠错码编码,其中,在每一级纠错码编码,纠错码编码模块都进行如下操作,直到完成指定级数的纠错编码 将数据比特串分为固定长度的多个组; 对每组数据均进行事先约定的拉线置换,形成新的数据比特串。
对拉线置换后的数据比特串进行本级纠错编码; 消息发送模块,用于将完成指定级数纠错编码后的数据比特串通过经典信道发送给接收方; 消息接收模块,用于接收来自消息发送模块的数据; 译码处理模块,用于按照预定的译码方式对数据串收到的数据进行相应级数的译码,其中,在每一级译码,译码处理模块都进行如下操作,直到完成指定级数的译码 对数据进行译码; 将译码后的数据分成固定长度的多个分组; 对每个分组按照发送方所使用的拉线置换的逆置换进行操作; 原始数据串恢复处理模块,用于按照事先约定的位置从译码后的数据串中获取原始消息M和M的MAC值; 消息认证码计算处理模块,用于按照预定的计算方式,计算提取到的消息M的MAC值;消息判断模块,用于比较计算得到的MAC值和提取到的MAC值,如果二者相同,则判断所获得的原始消息M确实来自于发送方,且未被篡改,反之视为未通过认证。
7.如权利要求6所述的用于量子密钥分配系统的经典信道消息认证装置,其特征在于,在原始数据库生成处理模块和消息认证码计算处理模块,MAC值在原始消息M中的位置由发送方和接收方事先约定。
8.如权利要求6所述的用于量子密钥分配系统的经典信道消息认证装置,其特征在于,在纠错码编码模块和译码处理模块,所使用的拉线置换和逆置换由发送方和接收方事先约定。
全文摘要
本发明公开了一种用于QKD系统的经典信道消息认证方法,包括结合CRC编码和一次一密的加密方式,生成原始消息M的消息认证码MAC值,将MAC值按照事先约定的位置插入到原始消息M中,形成原始数据比特串;对数据比特串进行指定级数的纠错,通过经典信道发送给接收方,接收方按照事先约定好的译码方式对数据进行相应级数的译码;从译码后得到的数据串中提取消息M和其对应的MAC值,并按照预定的计算方式,计算译码后提取到的消息M的MAC值;接收方比较计算得到的MAC值和译码后所提取到的MAC值是否相同,如果二者相同,则判断其提取的原始消息M确实来自于发送方,且未被篡改,反之视为未通过认证。本发明为QKD系统提供了一个必备的密码学方案。
文档编号H04L9/32GK102904726SQ20121044396
公开日2013年1月30日 申请日期2012年11月8日 优先权日2012年11月8日
发明者杨理, 周瑞瑞, 李昭 申请人:中国科学院信息工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1