基于FPGA的筛选模块及筛选方法技术

技术编号:10101330 阅读:172 留言:0更新日期:2014-05-30 16:36
基于FPGA的筛选模块及筛选方法,属于量子保密通信领域。解决现有筛选模块及筛选方法的密钥生成速率的实时性差和数据交互量大造成的存储压力大的问题。本发明专利技术通过游程长度编码模块计算相邻两个均满足条件“K0!=0||K1!=0”的事件之间符合条件“K0==0&&K1==0”的事件出现的次数,获得计数结果run_len,计数结果run_len附加上标识位后,作为游程长度码runlen_code送至Alice模块进行处理,获得Alice模块的筛选码Alice_siftedkey,再将Alice模块输出的筛选码Alice_siftedkey的位置信息result给Bob模块中的密钥抽取模,并根据筛选码Alice_siftedkey的位置信息result从有效裸码Bob_key中抽取并输出筛选码Bob_siftedkey,筛选码Bob_siftedkey为Bob模块输出的筛选码。本发明专利技术用于量子保密通信中密钥的筛选领域。

【技术实现步骤摘要】
基于FPGA的筛选模块及筛选方法
本专利技术属于量子保密通信领域。
技术介绍
基于量子特性,量子密钥分发(QuantumKeyDistribution,QKD)允许相距遥远的双方,称为Alice与Bob,即使在窃听者Eve存在的前提下,仍能共享无条件安全的密钥。这些密钥不但可以与传统密码算法一起使用,增强其安全性,也可以与Vernam一次一密算法结合构造无条件安全的加密系统。尽管QKD已经成为了全球性的研究热点,QKD依然不能广泛地应用于现实生活中。QKD系统由量子信道与经典信道构成。由于系统噪声、窃听者、Alice调制基与Bob测量基的不一致等原因,Alice与Bob从量子信道接收到的裸码仅仅只是相关的,而不是一致的。为了剔除裸码中不一致的比特,后处理过程是必须的。虽然许多研究机构已经搭建了GHz的QKD物理系统,QKD后处理系统实现速度的不足仍然是最重要的瓶颈之一。筛选模块需要处理巨大的输入,因此研究如何设计与实现有效的筛选模块以加速整个系统显得尤为重要。一般来说,QKD后处理系统包括筛选、误码估计、误码协商与私密放大模块。与其他模块相比,筛选模块的特点是需要更多的存储资源与网络资源,但是对计算资源的需求相对较低。2012年,Li等人在PC机上实现的QKD后处理系统的实验表明,在整个后处理模块中,筛选模块需要的时间最长。虽然一些研究者尝试通过多线程技术加速筛选速度,但是最终的密钥生成速率仍不能满足实时应用的需求,仍存在实时性差的问题。目前虽然QKD系统已经吸引了许多研究者的注意,但是QKD后处理系统的实现速度仍然不够,成为了QKD广泛应用最大障碍之一。QKD后处理系统的筛选模块需要处理大量的数据,因此研究如何设计与实现一种有效的筛选模块以加速QKD后处理系统显得尤为重要。
技术实现思路
本专利技术是为了解决现有筛选模块及筛选方法的密钥生成速率的实时性差和数据交互量大造成的存储压力大的问题,本专利技术提供了一种基于FPGA的筛选模块及筛选方法。基于FPGA的筛选模块,它包括Alice模块和Bob模块,所述的Alice模块和Bob模块均采用FPGA实现,Alice模块,用于从接收到的裸码中筛选出筛选码,Bob模块,用于从接收到的裸码中筛选出筛选码,Alice模块包括游程长度译码模块和基比较模块;Bob模块包括游程长度编码模块、非空信号译码模块和密钥抽取模块,所述的游程长度编码模块,用于计算接收到的相邻两个事件之间符合条件“K0==0&&K1==0”的事件出现的次数,获得计数结果run_len,所述相邻两个事件是指时序上相邻的两个均满足条件“K0!=0||K1!=0”的事件;并对该计数结果run_len附加上标识位后,作为游程长度码runlen_code,还用于输出非空信号位置对应的探测结果nempty_k0、nempty_k1和非空信号位置对应的测量基nempty_bb给非空信号译码模块,K0、K1表示同一个事件的两个探测结果;非空信号译码模块,用于将输入的非空信号位置对应的探测结果nempty_k0、nempty_k1转换为有效裸码,并输出有效裸码Bob_key给密钥抽取模块,还用于根据调制基nempty_bb输出有效裸码Bob_key所对应的测量基bob_base给基比较模块,游程长度译码模块,用于将接收到的游程长度码runlen_code转换为有效裸码的位置,并输出该有效裸码的位置对应的密钥值key和调制基base给基比较模块;基比较模块,用于通过比较接收到的测量基bob_base与调制基base获得筛选码Alice_siftedkey和该筛选码Alice_siftedkey的位置信息result,并将该筛选码Alice_siftedkey的位置信息result反馈给密钥抽取模块;密钥抽取模块,用于根据筛选码Alice_siftedkey的位置信息result从有效裸码Bob_key中抽取并输出筛选码Bob_siftedkey。基于FPGA的筛选方法,该方法包括步骤Alice和步骤Bob,步骤Alice,用于从裸码中筛选出筛选码,步骤Bob,用于从裸码中筛选出筛选码,步骤Alice进一步包括游程长度译码的步骤和基比较的步骤;步骤Bob进一步包括游程长度编码步骤、非空信号译码步骤和密钥抽取步骤,所述的游程长度编码步骤,用于计算接收到的相邻两个事件之间符合条件“K0==0&&K1==0”的事件出现的次数,获得计数结果run_len,所述相邻两个事件是指时序上相邻的两个均满足条件“K0!=0||K1!=0”的事件;并对该计数结果run_len附加上标识位后,作为游程长度码runlen_code,还用于输出非空信号位置对应的探测结果nempty_k0、nempty_k1和非空信号位置对应的测量基nempty_bb,K0、K1表示同一个事件的两个探测结果;非空信号译码步骤,用于将输入的非空信号位置对应的探测结果nempty_k0、nempty_k1转换为有效裸码,并输出有效裸码Bob_key,还用于根据调制基nempty_bb输出有效裸码Bob_key所对应的测量基bob_base,游程长度译码步骤,用于将接收到的游程长度码runlen_code转换为有效裸码的位置,并输出该有效裸码的位置对应的密钥值key和调制基base;基比较步骤,用于通过比较测量基bob_base与调制基base获得筛选码Alice_siftedkey和该筛选码Alice_siftedkey的位置信息result;密钥抽取步骤,用于根据筛选码Alice_siftedkey的位置信息result从有效裸码Bob_key中抽取并输出筛选码Bob_siftedkey。本专利技术带来的有益效果是,本专利技术提供了基于FPGA的筛选模块及筛选方法,通过游程长度编码模块将空信号的位置编码为游程长度,一方面解决了密钥生成速率的实时性差使密钥生成速率提高30%以上,另一方面大大地减少交互数据量,从而间接地缓减了通信压力及双方的存储压力。减少传输数据量的同时,为了防止连续空信号数超过一定值,造成溢出,我们引入一位标识位。如果连续空信号数超过可表示的范围,则该标识位设为0,否则设置为1。附图说明图1为本专利技术所述的基于FPGA的筛选模块的原理示意图;其中,Clk表示100MHz时钟信号,Bb表示Bob模块的测量基,Ready指示筛选模块的初始化状态,Tvalid表示K1和K0是否有效的标识信号;图2为具体实施方式三中,所述的游程长度编码模块的原理示意图;其中,wr_clk表示工作时钟,ena表示输出使能信号,din表示游程长度计数值,rd_clk表示读时钟,rd_count表示FIFO存储单元中现有游程长度码的数量,rd_en表示FIFO存储单元的读使能信号,图3为具体实施方式四中,所述的游程长度译码模块的原理示意图;其中,rd_enl表示裸码与调制基FIFO存储单元的读使能信号;图4为具体实施方式五中,所述的编码状态控制器的原理示意图;图5为具体实施方式六中,所述的译码状态控制器的原理示意图;具体实施方式具体实施方式一:参见图1说明本实施方式,本实施方式所述的基于FPGA的筛选模块,它包括Alice模块1和Bob模块2,所述的Al本文档来自技高网
...
基于FPGA的筛选模块及筛选方法

【技术保护点】
基于FPGA的筛选模块,其特征在于,它包括Alice模块(1)和Bob模块(2),所述的Alice模块(1)和Bob模块(2)均采用FPGA实现,Alice模块(1),用于从接收到的裸码中筛选出筛选码,Bob模块(2),用于从接收到的裸码中筛选出筛选码,Alice模块(1)包括游程长度译码模块(1?1)和基比较模块(1?2);Bob模块(2)包括游程长度编码模块(2?1)、非空信号译码模块(2?2)和密钥抽取模块(2?3),所述的游程长度编码模块(2?1),用于计算接收到的相邻两个事件之间符合条件“K0==0&&K1==0”的事件出现的次数,获得计数结果run_len,所述相邻两个事件是指时序上相邻的两个均满足条件“K0!=0||K1!=0”的事件;并对该计数结果run_len附加上标识位后,作为游程长度码runlen_code,还用于输出非空信号位置对应的探测结果nempty_k0、nempty_k1和非空信号位置对应的测量基nempty_bb给非空信号译码模块(2?2),K0、K1表示同一个事件的两个探测结果;非空信号译码模块(2?2),用于将输入的非空信号位置对应的探测结果nempty_k0、nempty_k1转换为有效裸码,并输出有效裸码Bob_key给密钥抽取模块(2?3),还用于根据调制基nempty_bb输出有效裸码Bob_key所对应的测量基bob_base给基比较模块(1?2),游程长度译码模块(1?1),用于将接收到的游程长度码runlen_code转换为有效裸码的位置,并输出该有效裸码的位置对应的密钥值key和调制基base给基比较模块(1?2);基比较模块(1?2),用于通过比较接收到的测量基bob_base与调制基base获得筛选码Alice_siftedkey和该筛选码Alice_siftedkey的位置信息result,并将该筛选码Alice_siftedkey的位置信息result反馈给密钥抽取模块(2?3);密钥抽取模块(2?3),用于根据筛选码Alice_siftedkey的位置信息result从有效裸码Bob_key中抽取并输出筛选码Bob_siftedkey。...

【技术特征摘要】
1.基于FPGA的筛选模块,其特征在于,它包括Alice模块(1)和Bob模块(2),所述的Alice模块(1)和Bob模块(2)均采用FPGA实现,Alice模块(1),用于从接收到的裸码中筛选出筛选码,Bob模块(2),用于从接收到的裸码中筛选出筛选码,Alice模块(1)包括游程长度译码模块(1-1)和基比较模块(1-2);Bob模块(2)包括游程长度编码模块(2-1)、非空信号译码模块(2-2)和密钥抽取模块(2-3),所述的游程长度编码模块(2-1),用于计算接收到的相邻两个事件之间符合条件“K0==0&&K1==0”的事件出现的次数,获得计数结果run_len,所述相邻两个事件是指时序上相邻的两个均满足条件“K0!=0||K1!=0”的事件;并对该计数结果run_len附加上标识位后,作为游程长度码runlen_code,还用于输出非空信号位置对应的探测结果nempty_k0、nempty_k1和非空信号位置对应的测量基nempty_bb给非空信号译码模块(2-2),K0、K1表示同一个事件的两个探测结果;非空信号译码模块(2-2),用于将输入的非空信号位置对应的探测结果nempty_k0、nempty_k1转换为有效裸码,并输出有效裸码Bob_key给密钥抽取模块(2-3),还用于根据调制基nempty_bb输出有效裸码Bob_key所对应的测量基bob_base给基比较模块(1-2),游程长度译码模块(1-1),用于将接收到的游程长度码runlen_code转换为有效裸码的位置,并输出该有效裸码的位置对应的密钥值key和调制基base给基比较模块(1-2);基比较模块(1-2),用于通过比较接收到的测量基bob_base与调制基base获得筛选码Alice_siftedkey和该筛选码Alice_siftedkey的位置信息result,并将该筛选码Alice_siftedkey的位置信息result反馈给密钥抽取模块(2-3);密钥抽取模块(2-3),用于根据筛选码Alice_siftedkey的位置信息result从有效裸码Bob_key中抽取并输出筛选码Bob_siftedkey;所述非空信号译码模块(2-2)用于将输入的非空信号位置对应的探测结果nempty_k0、nempty_k1转换为有效裸码的转换原则为:当nempty_k0的取值为‘0’、nempty_k1的取值为‘0’时,有效裸码Bob_key为‘1’;当nempty_k0的取值为‘1’、nempty_k1的取值为‘0’时,有效裸码Bob_key为‘0’;当nempty_k0的取值为‘1’、nempty_k1的取值为‘1’时,有效裸码Bob_key为‘1’或‘0’。2.根据权利要求1所述的基于FPGA的筛选模块,其特征在于,所述的游程长度编码模块(2-1)包括游程长度计数单元(2-1-1)、编码状态控制器(2-1-2)和FIFO存储单元(2-1-3);游程长度计数单元(2-1-1),用于计算接收到的相邻两个事件之间符合条件“K0==0&&K1==0”的事件出现的次数,获得计数结果run_len,并将计数结果run_len发送给编码状态控制器(2-1-2);编码状态控制器(2-1-2),用于控制写使能信号wr_en,将计数结果run_len写入FIFO存储单元(2-1-3),并将非空信号位置对应的探测结果nempty_k0、nempty_k1和非空信号位置对应的测量基nempty_bb输出给非空信号译码模块(2-2);FIFO存储单元(2-1-3),用于存储等待发送给游程长度译码模块(1-1)的游程长度码runlen_code。3.根据权利要求1所述的基于FPGA的筛选模块,其特征在于,所述的游程长度译码模块(1-1)包括裸码与调制基FIFO存储单元(1-1-1)、接收游程长度FIFO存储单元(1-1-2)和译码状态控制器(1-1-3);裸码与调制基FIFO存储单元(1-1-1),用于缓存输入的裸码Ka及调制基Ba,并获得非空信号位置对应的裸码及调制基数组{Ba,Ka};接收游程长度FIFO存储单元(1-1-2),用于缓存从游程长度编码模块(2-1)传输而至的游程长度码runlen_code,译码状态控制器(1-1-3),用于通过控制读使能信号rd_en2,从接收游程长度FIFO存储单元(1-1-2)中获得游程长度码runlen_code,还用于控制读使能信号rd_en1,来读取非空信号位置对应的裸码及调制基数组{Ba,Ka},从而获得效裸码的位置对应的密钥值key和调制基base。4.根据权利要求2所述的基于FPGA的筛选模块,其特征在于,所述的编码状态控制器(2-1-2)采用状态机实现,该状态机包括状态Idle和状态Out,状态Idle,初始化变量c的值为0;当信号Tvalid为高电平时,如果K1和K0的值均为0,则变量c递增1;如果K0!=0||K1!=0,则将变量c的值作为计数结果赋给当前计数值counter,然后由状态Idle转移到状态Out,状态Out,用于将counter的值赋给输出计数结果run_len,并将该...

【专利技术属性】
技术研发人员:李琼韩琦乐丹林志斌牛夏牧
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1