CN111464300B - 一种适用于连续变量量子密钥分发的高速后处理方法 - Google Patents

一种适用于连续变量量子密钥分发的高速后处理方法 Download PDF

Info

Publication number
CN111464300B
CN111464300B CN202010290504.7A CN202010290504A CN111464300B CN 111464300 B CN111464300 B CN 111464300B CN 202010290504 A CN202010290504 A CN 202010290504A CN 111464300 B CN111464300 B CN 111464300B
Authority
CN
China
Prior art keywords
matrix
elements
fpga
decoding
continuous variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010290504.7A
Other languages
English (en)
Other versions
CN111464300A (zh
Inventor
李永民
杨申申
卢振国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanxi University
Original Assignee
Shanxi University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanxi University filed Critical Shanxi University
Priority to CN202010290504.7A priority Critical patent/CN111464300B/zh
Publication of CN111464300A publication Critical patent/CN111464300A/zh
Application granted granted Critical
Publication of CN111464300B publication Critical patent/CN111464300B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Probability & Statistics with Applications (AREA)
  • Electromagnetism (AREA)
  • Computer Security & Cryptography (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明属于连续变量量子密钥分发领域,具体涉及一种适用于连续变量量子密钥分发的高速后处理方法,能够实时地提取安全密钥,有效地提高了量子密钥分发系统能够获得的实际密钥率。该方法包括(1)两种高速样条协调结构,(2)高速LDPC编码器和译码器,(3)用于私密放大中的不规则菱形块算法。本发明利用FPGA实现并行处理和流水线结构来提高处理速度。在样条协调中,设计了两种结构,分别为复用和非复用LDPC译码器结构,根据FPGA硬件资源的数量进行选择。实现LDPC译码器时,校验矩阵添加一个约束条件,使得在FPGA中执行时能够实现流水线结构。在私密放大中,设计了一种不规则菱形块算法,节约了存储资源的消耗,且能够自适应不同的数据长度。

Description

一种适用于连续变量量子密钥分发的高速后处理方法
技术领域
本发明属于连续变量量子密钥分发领域,具体涉及一种适用于连续变量量子密钥分发的高速后处理方法。
背景技术
连续变量量子密钥分发可以使合法通信双方共享一组信息理论上无条件安全的密钥,其安全性建立在量子理论的基本原理上。密钥分发过程中,信息被编码在量子态的正交分量上,因此探测技术简单,能够与现有的标准光纤组件很好的兼容,部署成本较低,在短距离时潜在的密钥率更高。但是,系统必须工作在低信噪比条件下才能保证安全性,导致通信双方获得的裸码中错误率较高,后处理过程复杂。
后处理过程包括数据协调和私密放大两个子过程。数据协调是指合法通信双方利用纠错码技术来纠正双方裸码中存在的错误,从而使双方获得一组完全一致的密钥。连续变量量子密钥分发系统中,裸码的错误率高,使得数据协调的难度大,需要使用的纠错码的码长很长,计算量非常大。目前,已经有多种协调方案被提出,在传输距离较短时,样条协调方案可以获得较高的密钥率。主要思想是通信双方将连续变量序列进行量化,转化为多个二进制序列,然后通过经典信道共享一些信息,利用二进制纠错码进行纠错。私密放大则是通信双方使用相同的散列函数集从协调后完全一致的密钥中提取出安全密钥,去除可能泄露给窃听者的信息。由于有限码长效应的影响,私密放大过程中需要处理的数据量也非常大。
文献“Jpn.J.Appl.Phys.56,044401(2017)”报道了一种高效样条协调算法,但是没有涉及硬件加速实现。文献“IEEE Photon.J.,9(6),7600308(2017)”介绍了使用菱形块算法实现高速私密放大,但是该算法要求菱形块的行数与列数必须相同,且并行度为2的整数次幂,当数据量特别大时,能够选择的并行度较少,会造成不必要的硬件资源消耗。专利“CN109660339A”采用了基于OpenCL的CPU+FPGA异构计算处理模式来实现样条协调,由于采用异构模式,限制了硬件集成度和吞吐量;专利“CN108900300A”仅描述了后处理过程的通用基本流程,没有涉及具体的硬件实现算法。随着连续变量量子密钥分发技术的快速发展,系统的信号重复速率越来越高,这就要求数据后处理单元必须能够快速处理大量的裸码,提取出安全的密钥,满足系统实时运转的需求。
综上所述,有必要发明一种高速连续变量量子密钥分发数据后处理的方法,实现密钥分发系统密钥的实时提取。
发明内容
针对现有技术的不足,本发明提供了一种适用于连续变量量子密钥分发的高速后处理方法,该方法利用FPGA并行执行样条协调中的LDPC编译码和私密放大中的散列函数,从而实现密钥的实时提取。
为了达到上述目的,本发明采用了下列技术方案:
一种适用于连续变量量子密钥分发的高速后处理方法,包括样条协调和私密放大,具体实现步骤如下:
步骤1,连续变量量化:根据系统的参数计算最佳的量化级数和区间间隔,接收者将连续变量量化为二进制序列;
步骤2,LDPC编码:接收者使用基于FPGA实现的LDPC码编码器对部分量化后的二进制序列进行LDPC编码,多个编码过程并行执行;
步骤3,LDPC译码:发送者使用基于FPGA实现的LDPC码译码器进行译码,使用裸码X恢复出和接收者完全一致的二进制序列;
步骤4,私密放大:通信双方在数据协调成功后,基于FPGA硬件利用散列函数从协调成功后的二进制序列提取出安全密钥,消除数据协调期间可能泄露的信息对最终安全密钥的影响,并保证该密钥的随机性满足加密要求。
进一步,所述步骤1连续变量量化:根据系统的参数计算最佳的量化级数和区间间隔,接收者将连续变量量化为二进制序列的具体方法为:首先确定量化方案和量化级数l,将实数轴划分为2l个区间,然后对分布于区间内的每一个连续变量都用l个二进制数来表示。通过该步骤将连续变量转换为二进制序列,为之后的二进制编码和译码做准备。量化的效率可以表示为:
Figure GDA0002518487370000031
式中,I表示互信息量,Q表示量化函数,量化效率越高表示量化过程中信息的损失越少。量化区间的选取应该使通信双方的互信息量I(X;Q(Y))达到最大。量化方案主要有两种,分别为等间隔量化和最佳间隔量化,这两种方案量化效率非常接近,但是等间隔量化操作简单,所以这里选择使用等间隔量化。
进一步,所述步骤2和步骤3中LDPC码的校验矩阵构造方法为:
首先,根据互信息的链规则计算每一级的最佳码率,公式如下:
Figure GDA0002518487370000032
式中I表示互信息量,SNR表示信噪比;一般来说,前三级的码率较低,包含的密钥信息极少,量化后将被公开;后两级的码率较高,需要进行编译码,所以需要构造两个校验矩阵;
然后,使用随机构造或PEG算法构造出一个基矩阵,且基矩阵的一个约束
条件为基矩阵中两个相邻非零元素的间隔必须足够大;
最后,使用准循环扩展方法将校验矩阵扩大,实现并行处理;所述准循环扩展方法为用q×q的循环置换矩阵代替基矩阵中的每一个元素,q为准循环扩展因子,由于使用相对较少的基矩阵信息和循环置换矩阵的偏移量就可以确定整个校验矩阵每个非零元素的位置,因此在FPGA中采用这种结构有助于实现低复杂度的存储器寻址和路由,可以在不显著牺牲纠错性能的情况下实现并行计算。
进一步,所述步骤2中LDPC编码是将校验矩阵与量化所得到的二进制序列做矩阵乘法,获得校验子,其过程表示为:
S=HLT \*MERGEFORMAT(2)
式中的S表示校验子,仅需要对量化的后两级进行编码,生成两个校验子。基于FPGA实现时,此式可以转化为寻找出校验矩阵每一行中非零元素所对应码字中元素的异或运算。
进一步,所述步骤3中译码的过程采用边信息分层和积译码算法,采用并行处理和流水线结构,灵活调整并行度,并行度与准循环扩展因子相同;数据存储时例化多个存储器,并使用路由结构对数据的顺序进行调整,具体过程如下:
首先,消息的初始化:考虑到该步骤中的计算量较小,但是涉及到一些高级运算,所以调用浮点数IP核来实现,按照所述方法,计算的精度高,而且能够满足吞吐量的需求;
其次,节点消息处理过程:该步骤需要进行迭代计算,数据量大,复杂度高。为了提高数据吞吐量,必须充分利用FPGA可进行并行运算的特性,但是这也会带来另一个问题:并行度越高,计算过程中产生的数据读写就会很多,对数据缓存空间提出了很高的要求。为了解决这个问题,本发明采用了一些方式来解决:使用定点数进行计算;采用分层消息传递机制,该机制只需要存储校验节点传递给变量节点的消息,而不需要存储变量节点传递到校验节点的消息能够将所需存储空间减少到一半;为了尽可能的保持计算准确度,Y(x)函数采用分段二阶函数曲线拟合来实现。
然后,译码判决:发送者需要计算校验子,具体实现方式为读取LLR数据的符号位并取反与校验矩阵做乘积运算;与接收者的校验子进行比对,如果完全一致则判定译码成功,否则译码失败,返回到节点消息处理过程;比对过程中,为了减少不必要的计算,在计算过程进行的同时进行对比,一旦发现不一致,则立即终止判决过程;判断是否达到设定的最大迭代次数,如果达到则本次译码失败。
最后,生成密钥:当判决成功时执行生成密钥过程,该过程仅需要对迭代后LLR数据的符号位做取反运算,并存入密钥存储器中。
进一步,所述Y(x)函数为:
Figure GDA0002518487370000051
进一步,所述步骤3中译码器的吞吐量用下式估算:
Figure GDA0002518487370000052
式中f表示FPGA的时钟频率,Nb表示基矩阵中元素的个数,Nr表示基矩阵中每一行的节点数平均值,Niter表示译码算法中迭代次数的平均值。
进一步,所述步骤3中译码器应用于样条协调的两种不同结构分别为复用和非复用结构,非复用结构有两个相互独立的译码器,在连续运行的系统中,两个译码器同时进行工作,从而实现两级译码的流水线结构,这种结构提高了数据吞吐量,但是所消耗的硬件资源多。如果硬件资源有限,可以采用复用结构,复用结构则是用同一个译码器依次完成多级译码。
再进一步,所述步骤4中散列函数为Toeplitz矩阵;FPGA硬件的执行使用不规则菱形块算法;
所述不规则菱形块算法为将Toeplitz矩阵中所有元素划分为特定大小的菱形块来逐块并行执行,灵活地选择不规则菱形块的大小;所述不规则菱形块算法自适应不同的输入输出数据长度;所述不规则菱形块算法不需要在FPGA硬件中存储Toeplitz矩阵元素。
更进一步,所述散列函数为Toeplitz矩阵、FPGA硬件的执行使用不规则菱形块算法具体为:为了使不规则菱形块覆盖Toeplitz矩阵中的所有元素,必须插入一些元素,将一个大小为Lo×Li的矩阵重构成一个M×N的矩阵,其中
Figure GDA0002518487370000061
其中pc表示菱形块每列的元素数量,pr表示菱形块每行的元素数量,这两个值可以是任意正整数;添加元素时,遵循对角线规则,即从左上到右下的每个对角线下降是恒定的,对角线规则无法覆盖的元素用零填充,重构后的矩阵进一步划分为m×n矩阵,该矩阵中每一个元素均为一个菱形块,其中
Figure GDA0002518487370000062
FPGA硬件的执行使用不规则菱形块算法时,按照计算时所需要使用的Toeplitz矩阵元素来进行分组,逐组进行处理,基于此规则,执行下一组时丢弃当前的pr个元素,这意味着不规则菱形块算法不需要存储Toeplitz矩阵的元素,该算法的吞吐量表示为:
Figure GDA0002518487370000063
与现有技术相比本发明具有以下优点:
(1)、连续变量量子密钥分发系统所需的数据后处理过程均可以集成到一块FPGA芯片中,有利于降低功耗,提高集成度,能够实现系统的小型化;
(2)、利用FPGA实现数据后处理算法时,结合了并行处理技术和流水线结构,从而实现了数据的高速处理;
(3)、所述的步骤2、3、4均可以灵活地调整算法的并行度,实现硬件资源与计算速度的权衡;
(4)、所述的LDPC译码器,译码性能良好,能够实现超长码长的译码。
附图说明
图1为本发明的流程图;
图2为本发明所述的LDPC译码器的结构图;
图3为本发明所述的LDPC译码器节点消息的数据读写及处理示意图;
图4为本发明中样条协调的两种实现方案;
图5为本发明所述的不规则菱形块算法示意图;
符号说明:
L1,L2,L3—连续变量量化获得的前三级的比特序列、L4′,L5′—译码器经过计算后恢复的后两级比特序列、S4,S5—编码后获得的后两级的校验子。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例1
一种适用于连续变量量子密钥分发的高速后处理方法,包括样条协调和私密放大,具体实现步骤如下:
步骤1,连续变量量化:根据系统的参数计算最佳的量化级数和区间间隔,接收者将连续变量量化为二进制序列,具体为:首先确定量化方案,本发明采用等间隔量化,选择的量化间隔应使量化效率尽可能高;其次,确定量化级数l=5,也就是说将每一个连续变量都转化为5个比特;再次,将实数轴划分为2l=32个等间隔的区间;最后,对分布于区间内的每一个连续变量都用5个二进制数来表示。
步骤2,LDPC编码:接收者使用基于FPGA实现的LDPC码编码器对部分量化后的二进制序列进行编码,多个编码过程并行执行;
所述LDPC码的校验矩阵构造方法为:首先,根据互信息的链规则计算每一级的最佳码率,公式如下:
Figure GDA0002518487370000081
式中,I表示互信息量,SNR表示信噪比;一般来说,前三级的码率较低,包含的密钥信息极少,量化后将被公开;后两级的码率较高,需要进行编译码,所以需要构造两个校验矩阵;
然后,使用随机构造或PEG算法构造出一个基矩阵,且基矩阵的一个约束条件为基矩阵中两个相邻非零元素的间隔必须足够大;
最后,使用准循环扩展方法将校验矩阵扩大,实现并行处理;所述准循环扩展方法为用q×q的循环置换矩阵代替基矩阵中的每一个元素,q为准循环扩展因子,由于使用相对较少的基矩阵信息和循环置换矩阵的偏移量就可以确定整个校验矩阵每个非零元素的位置,因此在FPGA中采用这种结构有助于实现低复杂度的存储器寻址和路由,可以在不显著牺牲纠错性能的情况下实现并行计算。
所述LDPC编码是将校验矩阵与量化所得到的二进制序列做矩阵乘法,获得校验子,其过程表示为:
S=HLT \*MERGEFORMAT(2)
式中的S表示校验子,仅需要对量化的后两级进行编码,分别使用两级的校验矩阵与对应的比特串相互作用,即可生成两个校验子。基于FPGA实现时,此式可以转化为寻找出校验矩阵每一行中非零元素所对应码字中元素的异或运算。
步骤3,LDPC译码:发送者使用基于FPGA实现的LDPC码译码器进行译码,使用裸码X恢复出和接收者完全一致的二进制序列;
所述译码的过程采用边信息分层和积译码算法,采用并行处理和流水线结构,灵活调整并行度,并行度与准循环扩展因子相同;数据存储时例化多个存储器,并使用路由结构对数据的顺序进行调整,具体过程如下:
首先,消息的初始化:考虑到该步骤中的计算量较小,但是涉及到一些高级运算,所以调用浮点数IP核来实现,按照所述方法,计算的精度高,而且能够满足吞吐量的需求;
其次,节点消息处理过程:该步骤需要进行迭代计算,数据量大,复杂度高。为了提高数据吞吐量,必须充分利用FPGA可进行并行运算的特性,但是这也会带来另一个问题:并行度越高,计算过程中产生的数据读写就会很多,对数据缓存空间提出了很高的要求。为了解决这个问题,本发明采用了一些方式来解决:使用定点数进行计算;采用分层消息传递机制,该机制只需要存储校验节点传递给变量节点的消息,而不需要存储变量节点传递到校验节点的消息能够将所需存储空间减少到一半;为了尽可能的保持计算准确度,Y(x)函数采用分段二阶函数曲线拟合来实现。
然后,译码判决:发送者需要计算校验子,具体实现方式为读取LLR数据的符号位并取反与校验矩阵做乘积运算;与接收者的校验子进行比对,如果完全一致则判定译码成功,否则译码失败,返回到节点消息处理过程;比对过程中,为了减少不必要的计算,在计算过程进行的同时进行对比,一旦发现不一致,则立即终止判决过程;判断是否达到设定的最大迭代次数,如果达到则本次译码失败。
最后,生成密钥:当判决成功时执行生成密钥过程,该过程仅需要对迭代后LLR数据的符号位做取反运算,并存入密钥存储器中。除了所述的四个步骤之外,还需要控制单元,负责为所有存储器生成读写地址,根据读取的校验矩阵元素计算出移位量和内存地址等。
所述译码过程的原理为:
首先,消息的初始化
Figure GDA0002518487370000101
式中LLR表示初始时变量节点的对数似然比。
其次,节点消息处理
Mji=LLR(qi)-Eji (8)
Figure GDA0002518487370000102
LLR(qi)=Mji+Eji (10)
Figure GDA0002518487370000103
公式(3)所表示的函数为偶函数,值域为(0,+∞),在第一象限中为单调递减函数,而在第二象限中为单调递增函数。
然后,译码判决。若LLR(qi)>0,则
Figure GDA0002518487370000104
否则
Figure GDA0002518487370000105
最后,停止准则。若
Figure GDA0002518487370000106
或达到最大迭代次数,则迭代终止;否则返回节点消息处理。其中
Figure GDA0002518487370000111
表示每次迭代后得到的码字。
所述译码器的吞吐量用下式估算:
Figure GDA0002518487370000112
式中f表示FPGA的时钟频率,Nb表示基矩阵中元素的个数,Nr表示基矩阵中每一行的节点数平均值,Niter表示译码算法中迭代次数的平均值。
所述译码器应用于样条协调的两种不同结构分别为复用和非复用结构,非复用结构有两个相互独立的译码器,在连续运行的系统中,两个译码器同时进行工作;复用结构则是用同一个译码器依次完成多级译码。
步骤4,私密放大:通信双方在数据协调成功后,基于在FPGA硬件中执行的不规则菱形块算法,利用Toeplitz矩阵从协调成功后的二进制序列提取出安全密钥。
私密放大过程是使用散列函数将一个长的比特串映射为一个较短的比特串。Toeplitz矩阵就是一种典型的通用类散列函数,该矩阵是一个常对角矩阵,可以使用其第一行和第一列的元素来构造出整个矩阵。在量子密钥分发系统中,Toeplitz矩阵的元素由真随机数发生器产生。根据Toeplitz矩阵的特性,本专利设计了一种适合在FPGA中执行的不规则菱形块算法。
所述不规则菱形块算法为将Toeplitz矩阵中所有元素划分为特定大小的菱形块来逐块并行执行,灵活地选择不规则菱形块的大小;所述不规则菱形块算法自适应不同的输入输出数据长度;所述不规则菱形块算法不需要在FPGA硬件中存储Toeplitz矩阵元素。
不规则菱形块覆盖Toeplitz矩阵中的所有元素,必须插入元素,将一个大小为Lo×Li的矩阵重构成一个M×N的矩阵,其中
Figure GDA0002518487370000113
Figure GDA0002518487370000121
其中pc表示菱形块每列的元素数量,pr表示菱形块每行的元素数量,这两个值可以是任意正整数;添加元素时,遵循对角线规则,即从左上到右下的每个对角线下降是恒定的,对角线规则无法覆盖的元素用零填充,重构后的矩阵进一步划分为m×n矩阵,该矩阵中每一个元素均为一个菱形块,其中
Figure GDA0002518487370000122
FPGA硬件的执行使用不规则菱形块算法时,按照计算时所需要使用的Toeplitz矩阵元素来进行分组,逐组进行处理,基于此规则,执行下一组时丢弃当前的pr个元素,该算法的吞吐量表示为:
Figure GDA0002518487370000123
按照以上所述的方法,在Xilinx公司生产的Virtex-7系列芯片上可以实现当信噪比为1.0时,协调效率为93.02%,吞吐量为14.83M symbols/s;信噪比为3.0时,协调效率为93.06%,吞吐量为100.90M symbols/s。应当理解,使用上述的方法,当芯片的硬件资源更多时,可以实现更好的性能。
如图1所示为连续变量量子密钥分发后处理过程的流程,经过量子态的分发、传输和测量后,通信双方获得一组相互关联的连续变量X和Y,所述的连续变量量化是指将连续变量Y转化为比特串。
如图2所示为基于FPGA实现所述的边信息分层和积译码算法的逻辑结构示意图,共需要五类存储器和四个计算模块。采用部分并行架构,并行度与校验矩阵的准循环扩展因子一致。为了进一步提高吞吐量,还采用了流水线结构,使用最少的时钟周期来完成计算过程。
如图3所示为数据读写结构,由地址产生模块来产生一个地址同时控制并列的多个片上BRAM存储器,读取到数据之后进行重新排列之后进入节点处理单元中进行消息处理,完成计算后的数据再恢复原先的顺序,写入片上BRAM中的原地址空间。片上BRAM中的数据是按照顺序从第一个地址空间依次读取的,计算过程有一定的时钟延迟,计算完成后再重新写入原地址空间。这种读写方式可以使用同一个片上BRAM来存储处理前后的消息,且不会有读写冲突,从而实现流水线结构。
如图4(a)所示为非复用结构,第4级和第5级有两个相互独立的译码器。在连续运行的系统中,这两个译码器同时进行工作,从而实现两级译码的流水线结构。这种结构提高了数据吞吐量,但是所消耗的硬件资源多。如果硬件资源有限,可以采用复用结构,如图4(b)所示,复用译码器表示用同一个译码器依次来完成两级译码,牺牲一定的吞吐量以换取在有限的硬件资源中顺利实现样条协调方案。初始化模块相对于迭代译码过程,计算量少,复杂度度低,占用的硬件资源少,能够容易地实现高吞吐量,所以在复用结构中,两级的初始化模块未进行复用。密钥管理模块用于存储纠错后的密钥并负责管理其输入和输出。
图5所示为不规则菱形块算法示意图,图中黑点表示Toeplitz矩阵的元素将Toeplitz矩阵的元素划分为菱形块,用pc表示菱形块每列的元素数量,pr表示菱形块每行的元素数量,这两个值可以是任意正整数。将Toeplitz矩阵元素划分为菱形块时有三种方案。第一种方案,菱形块的行列数相同,即pc=pr;第二种方案,菱形块的行元素数量多于列元素数量,即pc<pr;第三种方案,菱形块的列元素数量多于行元素数量,即pc>pr。在确定这两个参数时,应该在满足吞吐量的前提下,使计算量最少。
本说明书在叙述时为了清楚起见,按照具体实施方式加以描述,而且给出了部分具体的参数,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

Claims (4)

1.一种适用于连续变量量子密钥分发的高速后处理方法,其特征在于,包括样条协调和私密放大,具体实现步骤如下:
步骤1,连续变量量化:根据系统的参数计算最佳的量化级数和区间间隔,接收者将连续变量量化为二进制序列;
步骤2,LDPC编码:接收者使用基于FPGA实现的LDPC码编码器对部分量化后的二进制序列进行LDPC编码,将编码得到的校验子和未进行编码的量化后的二进制序列传递给发送者,多个编码过程并行执行,具体为:
步骤2.1,校验矩阵构造:
首先,根据互信息的链规则计算每一级的最佳码率,公式如下:
Figure FDA0003064686010000011
式中,Ii(SNR)表示该信噪比下第i级通信双方的互信息量,I(∞)表示信噪比无穷大时的互信息量,SNR表示信噪比;
然后,使用随机构造或PEG算法构造出一个基矩阵,且基矩阵的一个约束条件为基矩阵中两个相邻非零元素的间隔必须大于在FPGA进行节点处理时所需要的时钟延迟数量;
最后,使用准循环扩展方法将校验矩阵扩大,实现并行处理;所述准循环扩展方法为用q×q的循环置换矩阵代替基矩阵中的每一个元素,q为准循环扩展因子;
步骤2.2,将校验矩阵与所述部分量化后的二进制序列做矩阵乘法,获得校验子,其过程表示为:
S=HLT (2)
式中的S表示校验子,H表示校验矩阵,L表示部分量化后的二进制序列;
步骤2.3,数据传输:
将编码得到的校验子和未进行编码的量化后的二进制序列传递给发送者;
步骤3,LDPC译码:发送者使用基于FPGA实现的LDPC码译码器进行译码,使用裸码X、校验子和未进行编码的量化后的二进制序列恢复出与接收者完全一致的二进制序列,译码的过程采用边信息分层和积译码算法,采用并行处理和流水线结构,灵活调整并行度,并行度与准循环扩展因子相同;数据存储时例化多个存储器,并使用路由结构对数据的顺序进行调整,具体过程如下:
首先,消息的初始化:调用浮点数IP核来实现;
其次,节点消息处理过程:该步骤使用定点数进行计算;采用分层消息传递机制,该机制只需要存储校验节点传递给变量节点的消息,而不需要存储变量节点传递到校验节点的消息;
然后,译码判决:发送者计算校验子,具体实现方式为读取LLR数据的符号位并取反与校验矩阵做乘积运算;发送者计算的校验子与接收者的校验子进行比对,如果完全一致则判定译码成功,否则译码失败,返回到节点消息处理过程;比对过程中,在计算过程进行的同时进行对比,一旦发现不一致,则立即终止判决过程;判断是否达到设定的最大迭代次数,如果达到则本次译码失败;
最后,生成二进制序列:当判决成功时,执行生成二进制序列过程,该过程仅需要对迭代后LLR数据的符号位做取反运算,并存入存储器中,完成样条协调;
步骤4,私密放大:通信双方在样条协调成功后,基于FPGA硬件利用散列函数从样条协调成功后的二进制序列提取出安全密钥,其中散列函数为Toeplitz矩阵,基于FPGA硬件执行不规则菱形块算法,所述不规则菱形块算法将Toeplitz矩阵中所有元素划分为特定大小的菱形块来逐块并行执行,灵活地选择不规则菱形块的大小,所述不规则菱形块算法自适应不同的输入输出数据长度,所述不规则菱形块算法不需要在FPGA硬件中存储Toeplitz矩阵元素,不规则菱形块覆盖Toeplitz矩阵中的所有元素,必须插入元素,将一个大小为Lo×Li的矩阵重构成一个M×N的矩阵,其中Li和Lo分别表示私密放大过程中输入和输出数据的长度,
Figure FDA0003064686010000031
其中pc表示菱形块每列的元素数量,pr表示菱形块每行的元素数量,这两个值是任意正整数;添加元素时,遵循对角线规则,即从左上到右下的每个对角线下降是恒定的,对角线规则无法覆盖的元素用零填充,重构后的矩阵进一步划分为m×n矩阵,该矩阵中每一个元素均为一个菱形块,其中
Figure FDA0003064686010000032
基于FPGA硬件执行不规则菱形块算法时,按照计算时所需要使用的Toeplitz矩阵元素来进行分组,逐组进行处理,基于此规则,执行下一组时丢弃当前的pr个元素,该算法的吞吐量表示为:
Figure FDA0003064686010000033
式中f表示FPGA的时钟频率。
2.根据权利要求1所述的一种适用于连续变量量子密钥分发的高速后处理方法,其特征在于,所述步骤1连续变量量化:根据系统的参数计算最佳的量化级数和区间间隔,接收者将连续变量量化为二进制序列的具体方法为:首先确定量化方案和量化级数k,将实数轴划分为2k个区间,然后对分布于区间内的每一个连续变量都用k个二进制数来表示。
3.根据权利要求1所述的一种适用于连续变量量子密钥分发的高速后处理方法,其特征在于,所述步骤3中译码器的吞吐量用下式估算:
Figure FDA0003064686010000034
式中R表示LDPC码的码率,Nb表示基矩阵中元素的个数,Nr表示基矩阵中每一行的节点数平均值,Niter表示译码算法中迭代次数的平均值。
4.根据权利要求1所述的一种适用于连续变量量子密钥分发的高速后处理方法,其特征在于,所述步骤3中译码器应用于样条协调的两种不同结构分别为复用和非复用结构,非复用结构有两个相互独立的译码器,在连续运行的系统中,两个译码器同时进行工作;复用结构则是用同一个译码器依次完成多级译码。
CN202010290504.7A 2020-04-14 2020-04-14 一种适用于连续变量量子密钥分发的高速后处理方法 Active CN111464300B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010290504.7A CN111464300B (zh) 2020-04-14 2020-04-14 一种适用于连续变量量子密钥分发的高速后处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010290504.7A CN111464300B (zh) 2020-04-14 2020-04-14 一种适用于连续变量量子密钥分发的高速后处理方法

Publications (2)

Publication Number Publication Date
CN111464300A CN111464300A (zh) 2020-07-28
CN111464300B true CN111464300B (zh) 2021-07-02

Family

ID=71682539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010290504.7A Active CN111464300B (zh) 2020-04-14 2020-04-14 一种适用于连续变量量子密钥分发的高速后处理方法

Country Status (1)

Country Link
CN (1) CN111464300B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112332976B (zh) * 2020-11-04 2022-03-18 中国电子科技集团公司第三十研究所 一种基于调制方差的安全码率全局优化方法与装置
CN112769558B (zh) * 2020-12-31 2022-12-27 华南师范大学 一种码率自适应的qkd后处理方法及系统
CN115425988B (zh) * 2022-07-29 2024-02-09 北京融为科技有限公司 一种高速ldpc全模式列变换方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109660339A (zh) * 2018-11-20 2019-04-19 山西大学 连续变量量子密钥分发数据协调fpga异构加速方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101212277A (zh) * 2006-12-29 2008-07-02 中兴通讯股份有限公司 支持多协议标准的ldpc码译码装置
CN108712232A (zh) * 2018-05-04 2018-10-26 北京邮电大学 一种用于连续变量量子密钥分发系统中的多码字并行译码方法
CN108306733A (zh) * 2018-05-04 2018-07-20 北京邮电大学 一种用于离散调制连续变量量子密钥分发中的后处理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109660339A (zh) * 2018-11-20 2019-04-19 山西大学 连续变量量子密钥分发数据协调fpga异构加速方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FPGA-Based Implementation of Size-Adaptive Privacy Amplification in Quantum Key Distribution;Shen-Shen Yang等;《 IEEE Photonics Journal》;20171010;全文 *
High-efficiency reconciliation for continuous variable quantum key distribution;Zengliang Bai等;《Japanese Journal of Applied Physics》;20170430;全文 *

Also Published As

Publication number Publication date
CN111464300A (zh) 2020-07-28

Similar Documents

Publication Publication Date Title
CN111464300B (zh) 一种适用于连续变量量子密钥分发的高速后处理方法
RU2571587C2 (ru) Способ и устройство кодирования и декодирования данных в скрученном полярном коде
CN100581064C (zh) 低密度奇偶校验码解码装置和方法
US7395494B2 (en) Apparatus for encoding and decoding of low-density parity-check codes, and method thereof
JP4320418B2 (ja) 復号装置および受信装置
CN102075198B (zh) 准循环低密度奇偶校验卷积码编译码系统及其编译码方法
CN102545913A (zh) 一种迭代译码方法及系统
JP2010532129A (ja) パリティ検査行列の生成
CN108462496B (zh) 一种基于随机比特流更新的ldpc译码器
CN112398484B (zh) 一种编码方法及相关设备
US8468438B2 (en) Method and apparatus for elementary updating a check node during decoding of a block encoded with a non-binary LDPC code
Sutter et al. Achieving the capacity of any DMC using only polar codes
US8952834B1 (en) Methods and systems for low weight coding
Cyriac et al. Polar code encoder and decoder implementation
Alhassan et al. The Huffman’s method of secured data encoding and error correction using residue number system (RNS)
Abbe Polarization and randomness extraction
CN113055029A (zh) 一种可复用资源的系统极化码编译码一体化装置及编译码方法
CN107888334B (zh) 基于lt码与ldpc码级联的随机编、译码器及方法
CN113422611B (zh) 一种qc-ldpc编码器的高度并行编码方法
CN110730003B (zh) 一种ldpc编码方法及ldpc编码器
Urman et al. Efficient maximum likelihood decoding of polar codes over the binary erasure channel
Huang et al. Re-polarization processing in extended polar codes
CN115348010B (zh) 一种适用于连续变量量子密钥分发残余误码消除的方法与系统
CN111181570A (zh) 基于fpga的编译码方法和装置
CN115529104B (zh) 基于最大互信息的极化码量化译码方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant