一种适用于连续变量量子密钥分发的高速后处理方法转让专利

申请号 : CN202010290504.7

文献号 : CN111464300B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李永民杨申申卢振国

申请人 : 山西大学

摘要 :

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

权利要求 :

1.一种适用于连续变量量子密钥分发的高速后处理方法,其特征在于,包括样条协调和私密放大,具体实现步骤如下:

步骤1,连续变量量化:根据系统的参数计算最佳的量化级数和区间间隔,接收者将连续变量量化为二进制序列;

步骤2,LDPC编码:接收者使用基于FPGA实现的LDPC码编码器对部分量化后的二进制序列进行LDPC编码,将编码得到的校验子和未进行编码的量化后的二进制序列传递给发送者,多个编码过程并行执行,具体为:步骤2.1,校验矩阵构造:

首先,根据互信息的链规则计算每一级的最佳码率,公式如下:式中,Ii(SNR)表示该信噪比下第i级通信双方的互信息量,I(∞)表示信噪比无穷大时的互信息量,SNR表示信噪比;

然后,使用随机构造或PEG算法构造出一个基矩阵,且基矩阵的一个约束条件为基矩阵中两个相邻非零元素的间隔必须大于在FPGA进行节点处理时所需要的时钟延迟数量;

最后,使用准循环扩展方法将校验矩阵扩大,实现并行处理;所述准循环扩展方法为用q×q的循环置换矩阵代替基矩阵中的每一个元素,q为准循环扩展因子;

步骤2.2,将校验矩阵与所述部分量化后的二进制序列做矩阵乘法,获得校验子,其过程表示为:

T

S=HL       (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分别表示私密放大过程中输入和输出数据的长度, 其中pc表示菱形块每列的元素数量,pr表示菱形块每行的元素数量,这两个值是任意正整数;添加元素时,遵循对角线规则,即从左上到右下的每个对角线下降是恒定的,对角线规则无法覆盖的元素用零填充,重构后的矩阵进一步划分为m×n矩阵,该矩阵中每一个元素均为一个菱形块,其中基于FPGA硬件执行不规则菱形块算法时,按照计算时所需要使用的Toeplitz矩阵元素来进行分组,逐组进行处理,基于此规则,执行下一组时丢弃当前的pr个元素,该算法的吞吐量表示为:

式中f表示FPGA的时钟频率。

2.根据权利要求1所述的一种适用于连续变量量子密钥分发的高速后处理方法,其特征在于,所述步骤1连续变量量化:根据系统的参数计算最佳的量化级数和区间间隔,接收者将连续变量量化为二进制序列的具体方法为:首先确定量化方案和量化级数k,将实数轴k

划分为2个区间,然后对分布于区间内的每一个连续变量都用k个二进制数来表示。

3.根据权利要求1所述的一种适用于连续变量量子密钥分发的高速后处理方法,其特征在于,所述步骤3中译码器的吞吐量用下式估算:式中R表示LDPC码的码率,Nb表示基矩阵中元素的个数,Nr表示基矩阵中每一行的节点数平均值,Niter表示译码算法中迭代次数的平均值。

4.根据权利要求1所述的一种适用于连续变量量子密钥分发的高速后处理方法,其特征在于,所述步骤3中译码器应用于样条协调的两种不同结构分别为复用和非复用结构,非复用结构有两个相互独立的译码器,在连续运行的系统中,两个译码器同时进行工作;复用结构则是用同一个译码器依次完成多级译码。

说明书 :

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

技术领域

[0001] 本发明属于连续变量量子密钥分发领域,具体涉及一种适用于连续变量量子密钥分发的高速后处理方法。

背景技术

[0002] 连续变量量子密钥分发可以使合法通信双方共享一组信息理论上无条件安全的密钥,其安全性建立在量子理论的基本原理上。密钥分发过程中,信息被编码在量子态的正
交分量上,因此探测技术简单,能够与现有的标准光纤组件很好的兼容,部署成本较低,在
短距离时潜在的密钥率更高。但是,系统必须工作在低信噪比条件下才能保证安全性,导致
通信双方获得的裸码中错误率较高,后处理过程复杂。
[0003] 后处理过程包括数据协调和私密放大两个子过程。数据协调是指合法通信双方利用纠错码技术来纠正双方裸码中存在的错误,从而使双方获得一组完全一致的密钥。连续
变量量子密钥分发系统中,裸码的错误率高,使得数据协调的难度大,需要使用的纠错码的
码长很长,计算量非常大。目前,已经有多种协调方案被提出,在传输距离较短时,样条协调
方案可以获得较高的密钥率。主要思想是通信双方将连续变量序列进行量化,转化为多个
二进制序列,然后通过经典信道共享一些信息,利用二进制纠错码进行纠错。私密放大则是
通信双方使用相同的散列函数集从协调后完全一致的密钥中提取出安全密钥,去除可能泄
露给窃听者的信息。由于有限码长效应的影响,私密放大过程中需要处理的数据量也非常
大。
[0004] 文献“Jpn.J.Appl.Phys.56,044401(2017)”报道了一种高效样条协调算法,但是没有涉及硬件加速实现。文献“IEEE Photon.J.,9(6),7600308(2017)”介绍了使用菱形块
算法实现高速私密放大,但是该算法要求菱形块的行数与列数必须相同,且并行度为2的整
数次幂,当数据量特别大时,能够选择的并行度较少,会造成不必要的硬件资源消耗。专利
“CN109660339A”采用了基于OpenCL的CPU+FPGA异构计算处理模式来实现样条协调,由于采
用异构模式,限制了硬件集成度和吞吐量;专利“CN108900300A”仅描述了后处理过程的通
用基本流程,没有涉及具体的硬件实现算法。随着连续变量量子密钥分发技术的快速发展,
系统的信号重复速率越来越高,这就要求数据后处理单元必须能够快速处理大量的裸码,
提取出安全的密钥,满足系统实时运转的需求。
[0005] 综上所述,有必要发明一种高速连续变量量子密钥分发数据后处理的方法,实现密钥分发系统密钥的实时提取。

发明内容

[0006] 针对现有技术的不足,本发明提供了一种适用于连续变量量子密钥分发的高速后处理方法,该方法利用FPGA并行执行样条协调中的LDPC编译码和私密放大中的散列函数,
从而实现密钥的实时提取。
[0007] 为了达到上述目的,本发明采用了下列技术方案:
[0008] 一种适用于连续变量量子密钥分发的高速后处理方法,包括样条协调和私密放大,具体实现步骤如下:
[0009] 步骤1,连续变量量化:根据系统的参数计算最佳的量化级数和区间间隔,接收者将连续变量量化为二进制序列;
[0010] 步骤2,LDPC编码:接收者使用基于FPGA实现的LDPC码编码器对部分量化后的二进制序列进行LDPC编码,多个编码过程并行执行;
[0011] 步骤3,LDPC译码:发送者使用基于FPGA实现的LDPC码译码器进行译码,使用裸码X恢复出和接收者完全一致的二进制序列;
[0012] 步骤4,私密放大:通信双方在数据协调成功后,基于FPGA硬件利用散列函数从协调成功后的二进制序列提取出安全密钥,消除数据协调期间可能泄露的信息对最终安全密
钥的影响,并保证该密钥的随机性满足加密要求。
[0013] 进一步,所述步骤1连续变量量化:根据系统的参数计算最佳的量化级数和区间间隔,接收者将连续变量量化为二进制序列的具体方法为:首先确定量化方案和量化级数l,
l
将实数轴划分为2个区间,然后对分布于区间内的每一个连续变量都用l个二进制数来表
示。通过该步骤将连续变量转换为二进制序列,为之后的二进制编码和译码做准备。量化的
效率可以表示为:
[0014]
[0015] 式中,I表示互信息量,Q表示量化函数,量化效率越高表示量化过程中信息的损失越少。量化区间的选取应该使通信双方的互信息量I(X;Q(Y))达到最大。量化方案主要有两
种,分别为等间隔量化和最佳间隔量化,这两种方案量化效率非常接近,但是等间隔量化操
作简单,所以这里选择使用等间隔量化。
[0016] 进一步,所述步骤2和步骤3中LDPC码的校验矩阵构造方法为:
[0017] 首先,根据互信息的链规则计算每一级的最佳码率,公式如下:
[0018]
[0019] 式中I表示互信息量,SNR表示信噪比;一般来说,前三级的码率较低,包含的密钥信息极少,量化后将被公开;后两级的码率较高,需要进行编译码,所以需要构造两个校验
矩阵;
[0020] 然后,使用随机构造或PEG算法构造出一个基矩阵,且基矩阵的一个约束
[0021] 条件为基矩阵中两个相邻非零元素的间隔必须足够大;
[0022] 最后,使用准循环扩展方法将校验矩阵扩大,实现并行处理;所述准循环扩展方法为用q×q的循环置换矩阵代替基矩阵中的每一个元素,q为准循环扩展因子,由于使用相对
较少的基矩阵信息和循环置换矩阵的偏移量就可以确定整个校验矩阵每个非零元素的位
置,因此在FPGA中采用这种结构有助于实现低复杂度的存储器寻址和路由,可以在不显著
牺牲纠错性能的情况下实现并行计算。
[0023] 进一步,所述步骤2中LDPC编码是将校验矩阵与量化所得到的二进制序列做矩阵乘法,获得校验子,其过程表示为:
[0024] S=HLT     \*MERGEFORMAT(2)
[0025] 式中的S表示校验子,仅需要对量化的后两级进行编码,生成两个校验子。基于FPGA实现时,此式可以转化为寻找出校验矩阵每一行中非零元素所对应码字中元素的异或
运算。
[0026] 进一步,所述步骤3中译码的过程采用边信息分层和积译码算法,采用并行处理和流水线结构,灵活调整并行度,并行度与准循环扩展因子相同;数据存储时例化多个存储
器,并使用路由结构对数据的顺序进行调整,具体过程如下:
[0027] 首先,消息的初始化:考虑到该步骤中的计算量较小,但是涉及到一些高级运算,所以调用浮点数IP核来实现,按照所述方法,计算的精度高,而且能够满足吞吐量的需求;
[0028] 其次,节点消息处理过程:该步骤需要进行迭代计算,数据量大,复杂度高。为了提高数据吞吐量,必须充分利用FPGA可进行并行运算的特性,但是这也会带来另一个问题:并
行度越高,计算过程中产生的数据读写就会很多,对数据缓存空间提出了很高的要求。为了
解决这个问题,本发明采用了一些方式来解决:使用定点数进行计算;采用分层消息传递机
制,该机制只需要存储校验节点传递给变量节点的消息,而不需要存储变量节点传递到校
验节点的消息能够将所需存储空间减少到一半;为了尽可能的保持计算准确度,Y(x)函数
采用分段二阶函数曲线拟合来实现。
[0029] 然后,译码判决:发送者需要计算校验子,具体实现方式为读取LLR数据的符号位并取反与校验矩阵做乘积运算;与接收者的校验子进行比对,如果完全一致则判定译码成
功,否则译码失败,返回到节点消息处理过程;比对过程中,为了减少不必要的计算,在计算
过程进行的同时进行对比,一旦发现不一致,则立即终止判决过程;判断是否达到设定的最
大迭代次数,如果达到则本次译码失败。
[0030] 最后,生成密钥:当判决成功时执行生成密钥过程,该过程仅需要对迭代后LLR数据的符号位做取反运算,并存入密钥存储器中。
[0031] 进一步,所述Y(x)函数为:
[0032]
[0033] 进一步,所述步骤3中译码器的吞吐量用下式估算:
[0034]
[0035] 式中f表示FPGA的时钟频率,Nb表示基矩阵中元素的个数,Nr表示基矩阵中每一行的节点数平均值,Niter表示译码算法中迭代次数的平均值。
[0036] 进一步,所述步骤3中译码器应用于样条协调的两种不同结构分别为复用和非复用结构,非复用结构有两个相互独立的译码器,在连续运行的系统中,两个译码器同时进行
工作,从而实现两级译码的流水线结构,这种结构提高了数据吞吐量,但是所消耗的硬件资
源多。如果硬件资源有限,可以采用复用结构,复用结构则是用同一个译码器依次完成多级
译码。
[0037] 再进一步,所述步骤4中散列函数为Toeplitz矩阵;FPGA硬件的执行使用不规则菱形块算法;
[0038] 所述不规则菱形块算法为将Toeplitz矩阵中所有元素划分为特定大小的菱形块来逐块并行执行,灵活地选择不规则菱形块的大小;所述不规则菱形块算法自适应不同的
输入输出数据长度;所述不规则菱形块算法不需要在FPGA硬件中存储Toeplitz矩阵元素。
[0039] 更进一步,所述散列函数为Toeplitz矩阵、FPGA硬件的执行使用不规则菱形块算法具体为:为了使不规则菱形块覆盖Toeplitz矩阵中的所有元素,必须插入一些元素,将一
个大小为Lo×Li的矩阵重构成一个M×N的矩阵,其中
其中pc表示菱形块每列的元素数量,pr表示菱形块每行的元素数量,这两个值可以是任意正
整数;添加元素时,遵循对角线规则,即从左上到右下的每个对角线下降是恒定的,对角线
规则无法覆盖的元素用零填充,重构后的矩阵进一步划分为m×n矩阵,该矩阵中每一个元
素均为一个菱形块,其中
[0040] FPGA硬件的执行使用不规则菱形块算法时,按照计算时所需要使用的Toeplitz矩阵元素来进行分组,逐组进行处理,基于此规则,执行下一组时丢弃当前的pr个元素,这意
味着不规则菱形块算法不需要存储Toeplitz矩阵的元素,该算法的吞吐量表示为:
[0041]
[0042] 与现有技术相比本发明具有以下优点:
[0043] (1)、连续变量量子密钥分发系统所需的数据后处理过程均可以集成到一块FPGA芯片中,有利于降低功耗,提高集成度,能够实现系统的小型化;
[0044] (2)、利用FPGA实现数据后处理算法时,结合了并行处理技术和流水线结构,从而实现了数据的高速处理;
[0045] (3)、所述的步骤2、3、4均可以灵活地调整算法的并行度,实现硬件资源与计算速度的权衡;
[0046] (4)、所述的LDPC译码器,译码性能良好,能够实现超长码长的译码。

附图说明

[0047] 图1为本发明的流程图;
[0048] 图2为本发明所述的LDPC译码器的结构图;
[0049] 图3为本发明所述的LDPC译码器节点消息的数据读写及处理示意图;
[0050] 图4为本发明中样条协调的两种实现方案;
[0051] 图5为本发明所述的不规则菱形块算法示意图;
[0052] 符号说明:
[0053] L1,L2,L3—连续变量量化获得的前三级的比特序列、L4′,L5′—译码器经过计算后恢复的后两级比特序列、S4,S5—编码后获得的后两级的校验子。

具体实施方式

[0054] 下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0055] 实施例1
[0056] 一种适用于连续变量量子密钥分发的高速后处理方法,包括样条协调和私密放大,具体实现步骤如下:
[0057] 步骤1,连续变量量化:根据系统的参数计算最佳的量化级数和区间间隔,接收者将连续变量量化为二进制序列,具体为:首先确定量化方案,本发明采用等间隔量化,选择
的量化间隔应使量化效率尽可能高;其次,确定量化级数l=5,也就是说将每一个连续变量
l
都转化为5个比特;再次,将实数轴划分为2=32个等间隔的区间;最后,对分布于区间内的
每一个连续变量都用5个二进制数来表示。
[0058] 步骤2,LDPC编码:接收者使用基于FPGA实现的LDPC码编码器对部分量化后的二进制序列进行编码,多个编码过程并行执行;
[0059] 所述LDPC码的校验矩阵构造方法为:首先,根据互信息的链规则计算每一级的最佳码率,公式如下:
[0060]
[0061] 式中,I表示互信息量,SNR表示信噪比;一般来说,前三级的码率较低,包含的密钥信息极少,量化后将被公开;后两级的码率较高,需要进行编译码,所以需要构造两个校验
矩阵;
[0062] 然后,使用随机构造或PEG算法构造出一个基矩阵,且基矩阵的一个约束条件为基矩阵中两个相邻非零元素的间隔必须足够大;
[0063] 最后,使用准循环扩展方法将校验矩阵扩大,实现并行处理;所述准循环扩展方法为用q×q的循环置换矩阵代替基矩阵中的每一个元素,q为准循环扩展因子,由于使用相对
较少的基矩阵信息和循环置换矩阵的偏移量就可以确定整个校验矩阵每个非零元素的位
置,因此在FPGA中采用这种结构有助于实现低复杂度的存储器寻址和路由,可以在不显著
牺牲纠错性能的情况下实现并行计算。
[0064] 所述LDPC编码是将校验矩阵与量化所得到的二进制序列做矩阵乘法,获得校验子,其过程表示为:
[0065] S=HLT    \*MERGEFORMAT(2)
[0066] 式中的S表示校验子,仅需要对量化的后两级进行编码,分别使用两级的校验矩阵与对应的比特串相互作用,即可生成两个校验子。基于FPGA实现时,此式可以转化为寻找出
校验矩阵每一行中非零元素所对应码字中元素的异或运算。
[0067] 步骤3,LDPC译码:发送者使用基于FPGA实现的LDPC码译码器进行译码,使用裸码X恢复出和接收者完全一致的二进制序列;
[0068] 所述译码的过程采用边信息分层和积译码算法,采用并行处理和流水线结构,灵活调整并行度,并行度与准循环扩展因子相同;数据存储时例化多个存储器,并使用路由结
构对数据的顺序进行调整,具体过程如下:
[0069] 首先,消息的初始化:考虑到该步骤中的计算量较小,但是涉及到一些高级运算,所以调用浮点数IP核来实现,按照所述方法,计算的精度高,而且能够满足吞吐量的需求;
[0070] 其次,节点消息处理过程:该步骤需要进行迭代计算,数据量大,复杂度高。为了提高数据吞吐量,必须充分利用FPGA可进行并行运算的特性,但是这也会带来另一个问题:并
行度越高,计算过程中产生的数据读写就会很多,对数据缓存空间提出了很高的要求。为了
解决这个问题,本发明采用了一些方式来解决:使用定点数进行计算;采用分层消息传递机
制,该机制只需要存储校验节点传递给变量节点的消息,而不需要存储变量节点传递到校
验节点的消息能够将所需存储空间减少到一半;为了尽可能的保持计算准确度,Y(x)函数
采用分段二阶函数曲线拟合来实现。
[0071] 然后,译码判决:发送者需要计算校验子,具体实现方式为读取LLR数据的符号位并取反与校验矩阵做乘积运算;与接收者的校验子进行比对,如果完全一致则判定译码成
功,否则译码失败,返回到节点消息处理过程;比对过程中,为了减少不必要的计算,在计算
过程进行的同时进行对比,一旦发现不一致,则立即终止判决过程;判断是否达到设定的最
大迭代次数,如果达到则本次译码失败。
[0072] 最后,生成密钥:当判决成功时执行生成密钥过程,该过程仅需要对迭代后LLR数据的符号位做取反运算,并存入密钥存储器中。除了所述的四个步骤之外,还需要控制单
元,负责为所有存储器生成读写地址,根据读取的校验矩阵元素计算出移位量和内存地址
等。
[0073] 所述译码过程的原理为:
[0074] 首先,消息的初始化
[0075]
[0076] 式中LLR表示初始时变量节点的对数似然比。
[0077] 其次,节点消息处理
[0078] Mji=LLR(qi)‑Eji   (8)
[0079]
[0080] LLR(qi)=Mji+Eji   (10)
[0081]
[0082] 公式(3)所表示的函数为偶函数,值域为(0,+∞),在第一象限中为单调递减函数,而在第二象限中为单调递增函数。
[0083] 然后,译码判决。若LLR(qi)>0,则 否则
[0084] 最后,停止准则。若 或达到最大迭代次数,则迭代终止;否则返回节点消息处理。其中 表示每次迭代后得到的码字。
[0085] 所述译码器的吞吐量用下式估算:
[0086]
[0087] 式中f表示FPGA的时钟频率,Nb表示基矩阵中元素的个数,Nr表示基矩阵中每一行的节点数平均值,Niter表示译码算法中迭代次数的平均值。
[0088] 所述译码器应用于样条协调的两种不同结构分别为复用和非复用结构,非复用结构有两个相互独立的译码器,在连续运行的系统中,两个译码器同时进行工作;复用结构则
是用同一个译码器依次完成多级译码。
[0089] 步骤4,私密放大:通信双方在数据协调成功后,基于在FPGA硬件中执行的不规则菱形块算法,利用Toeplitz矩阵从协调成功后的二进制序列提取出安全密钥。
[0090] 私密放大过程是使用散列函数将一个长的比特串映射为一个较短的比特串。Toeplitz矩阵就是一种典型的通用类散列函数,该矩阵是一个常对角矩阵,可以使用其第
一行和第一列的元素来构造出整个矩阵。在量子密钥分发系统中,Toeplitz矩阵的元素由
真随机数发生器产生。根据Toeplitz矩阵的特性,本专利设计了一种适合在FPGA中执行的
不规则菱形块算法。
[0091] 所述不规则菱形块算法为将Toeplitz矩阵中所有元素划分为特定大小的菱形块来逐块并行执行,灵活地选择不规则菱形块的大小;所述不规则菱形块算法自适应不同的
输入输出数据长度;所述不规则菱形块算法不需要在FPGA硬件中存储Toeplitz矩阵元素。
[0092] 不规则菱形块覆盖Toeplitz矩阵中的所有元素,必须插入元素,将一个大小为Lo×Li的矩阵重构成一个M×N的矩阵,其中 其中
pc表示菱形块每列的元素数量,pr表示菱形块每行的元素数量,这两个值可以是任意正整
数;添加元素时,遵循对角线规则,即从左上到右下的每个对角线下降是恒定的,对角线规
则无法覆盖的元素用零填充,重构后的矩阵进一步划分为m×n矩阵,该矩阵中每一个元素
均为一个菱形块,其中
[0093] FPGA硬件的执行使用不规则菱形块算法时,按照计算时所需要使用的Toeplitz矩阵元素来进行分组,逐组进行处理,基于此规则,执行下一组时丢弃当前的pr个元素,该算
法的吞吐量表示为:
[0094]
[0095] 按照以上所述的方法,在Xilinx公司生产的Virtex‑7系列芯片上可以实现当信噪比为1.0时,协调效率为93.02%,吞吐量为14.83M symbols/s;信噪比为3.0时,协调效率为
93.06%,吞吐量为100.90M symbols/s。应当理解,使用上述的方法,当芯片的硬件资源更
多时,可以实现更好的性能。
[0096] 如图1所示为连续变量量子密钥分发后处理过程的流程,经过量子态的分发、传输和测量后,通信双方获得一组相互关联的连续变量X和Y,所述的连续变量量化是指将连续
变量Y转化为比特串。
[0097] 如图2所示为基于FPGA实现所述的边信息分层和积译码算法的逻辑结构示意图,共需要五类存储器和四个计算模块。采用部分并行架构,并行度与校验矩阵的准循环扩展
因子一致。为了进一步提高吞吐量,还采用了流水线结构,使用最少的时钟周期来完成计算
过程。
[0098] 如图3所示为数据读写结构,由地址产生模块来产生一个地址同时控制并列的多个片上BRAM存储器,读取到数据之后进行重新排列之后进入节点处理单元中进行消息处
理,完成计算后的数据再恢复原先的顺序,写入片上BRAM中的原地址空间。片上BRAM中的数
据是按照顺序从第一个地址空间依次读取的,计算过程有一定的时钟延迟,计算完成后再
重新写入原地址空间。这种读写方式可以使用同一个片上BRAM来存储处理前后的消息,且
不会有读写冲突,从而实现流水线结构。
[0099] 如图4(a)所示为非复用结构,第4级和第5级有两个相互独立的译码器。在连续运行的系统中,这两个译码器同时进行工作,从而实现两级译码的流水线结构。这种结构提高
了数据吞吐量,但是所消耗的硬件资源多。如果硬件资源有限,可以采用复用结构,如图4
(b)所示,复用译码器表示用同一个译码器依次来完成两级译码,牺牲一定的吞吐量以换取
在有限的硬件资源中顺利实现样条协调方案。初始化模块相对于迭代译码过程,计算量少,
复杂度度低,占用的硬件资源少,能够容易地实现高吞吐量,所以在复用结构中,两级的初
始化模块未进行复用。密钥管理模块用于存储纠错后的密钥并负责管理其输入和输出。
[0100] 图5所示为不规则菱形块算法示意图,图中黑点表示Toeplitz矩阵的元素将Toeplitz矩阵的元素划分为菱形块,用pc表示菱形块每列的元素数量,pr表示菱形块每行的
元素数量,这两个值可以是任意正整数。将Toeplitz矩阵元素划分为菱形块时有三种方案。
第一种方案,菱形块的行列数相同,即pc=pr;第二种方案,菱形块的行元素数量多于列元素
数量,即pc<pr;第三种方案,菱形块的列元素数量多于行元素数量,即pc>pr。在确定这两
个参数时,应该在满足吞吐量的前提下,使计算量最少。
[0101] 本说明书在叙述时为了清楚起见,按照具体实施方式加以描述,而且给出了部分具体的参数,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本
发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实
施例,都属于本发明保护的范围。