量子密钥分发系统设计与实现(一):系统基本架构讨论

       经过一段时间讨论,我们了解到量子密钥分发设备是当前量子保密通信系统的基础。从本文开始,我将开启量子密钥分发系统设计与实现系列,详细讨论量子密钥分发设备如何从0到1的搭建。

    1.QKD系统总体讨论

       QKD系统的核心功能就是为通信双方提供理论上无条件安全的对称量子密钥。当前市面上能看到的QKD系统主要分为离散型量子密钥分发设备(如基于偏振编码的量子密钥分发系统、时间-相位编码的量子密钥分发系统)和连续变量量子密钥分发设备(如基于高斯调制相干态协议的密钥分发系统)。 系统之间主要的区别是主要还是由制备量子态的协议决定的。

       虽然不同协议QKD系统的量子态制备原理不同,但是整个密钥协商过程的原理基本是一致的。目前主流的QKD系统都属于制备-测量型(prepare-and-measure, PM))设备(发射端Alice制备并发射量子态,接收端Bob测量量子态)。本文我们就讨论一下QKD系统的基本架构,并根据架构梳理整个密钥分发流程工程实现。

    2.QKD系统基础架构

       QKD系统主要包含两台量子密钥协商设备,分别为发送终端和接收终端。每个终端主要分为三大部分:光路部分、电路部分和软件部分。

     2.1光路部分

       光路部分是实现QKD的物理过程。光路部分包括激光源以及基于M-Z干涉原理的光路,主要用于实现光子量子态的制备和测量。

     2.2电路部分

       电路部分包括控制模块随机数模块、主机模块。其中随机数模块用来产生调制光脉冲的真随机数,而控制模块负责将真随机数调制到光脉冲上,主机模块提供通信平台和控制模块、随机数模块的接入,提供 Alice和 Bob之间的经典信道连接。

     2.3软件部分

     软件部分运行在主机模块上,提供经典信道的通信以及后处理相关算法及数据处理,并提供可供呈现的人机界面。

    3.硬件结构

      本文我们用科大国盾的设备来对量子密钥分发系统硬件结构进行介绍。量子密钥分发系统的设备机箱如下。发射端(称为Alice端)和接收端(称为Bob端)。发射端设备发射单光子脉冲,接收端设备探测单光子脉冲。40MHz-QKD系统的设备为19英寸的4U机箱(宽482.5mm,高177.8mm,深 520mm),重量约为 30kg。

       其中,发射端设备内部主要包含光源子系统、电源板、主控板、数据处理板、平台管理管板等模块,各个模块通过背板上的总线相连接。接收端设备内部主要包含探测器子系统、电源板、主控板、数据处理板、平台管理管板等模块,各个模块也通过背板上的总线相连接。其中主控板、数据处理板和平台管理板构成QKD系统的数据处理子系统。发射端和接收端的主控板、数据处理板和平台管理板结构相同。固化的逻辑不同,焊接的器件不同,决定了其是发射端设备还是接收端设备。发射端和接收端机箱内部结构简图如下:

       关于上述这些模块和子系统,后期我们详细展开。

    4.量子密钥协商流程

       量子密钥协商的流程如下图,本文讨论的重点是基于密钥分发系统协商密钥的实际工作流程,整个流程主要包括设备校准、量子态制备、密钥调制、量子态传输、量子态探测、数据后处理等环节。流程示意图如下图:

     在量子密钥分发系统中的量子密钥协商流程总结为以下几步:

  1. 设备校准:设备校准主要包括三个方面的校准,分别为单光子探测器门控信号相位校准、偏振校准和光信号延时校准;
  2. 量子态制备和密钥调制:量子态的制备及密钥的调制由光源子系统来完成。QKD数据处理子系统将每个时钟周期的发光信息,包括偏振态和光强编码信息,传输给光源子系统,由光源子系统来完成发光;
  3. 量子态测量:量子态测量过程由探测器子系统完成;
  4.  基失对比:基矢比对环节主要是发送者和接收者通过在经典信道上协商,对探测获得的原始密钥(Raw key)进行筛选,筛选出基矢选择一致的密钥,这部分密钥称为Sifed key。在基矢比对的同时,还需要评估密钥的错误率信息,以判断是否有第三者窃听;
  5. 密钥累积:密钥累积环节主要是对原始密钥及其错误率信息、探测率信息进行累积;
  6. 纠错:由于偏振漂移效应、单光子探测器暗计数和后脉冲效应等因素的影响,发送端和接收端筛选出的原始密钥中存在少量的不一致,需要借助经典的数据纠错算法,将两端的密钥纠正至完全一致。纠错后的密钥称为Corrected key;
  7. 隐私放大:按照诱骗态协议,对于每份Corrected key,都需要根据其对应的探测率、错误率等信息计算一个隐私放大因子,以评估其中单光子成码的比例和纠错泄露的信息量。然后以隐私放大因子为依据,对密钥进行压缩,以确保窃听者不能获得到任何有用的密钥信息。该步骤称为隐私放大,隐私放大后产生最终安全的密钥,称为 Final key;
  8. 密钥下发:密钥下发的主要流程是对两端最终密钥的一致性进行最后的验证,并对下发密钥的序号进行同步。其将密钥组装成固定格式、固定大小的密钥包,交付给密钥管理设备;
  9. 身份认证:QKD的数据过程需要大量的网络交互。身份认证使用认证算法对 QKD成码过程中的网络交互数据进行认证,确保其不被第三方篡改。

       以上就是量子密钥分发系统中量子密钥协商的流程,大家可以先体会一下这个过程,关于流程里面涉及到的技术细节,接下的的及几篇文章我会详细展开讨论。

   5.写在最后

       经过本文的讨论,我们对量子密钥分发系统的基础架构进行了讨论,直观了解了一个量子密钥分发系统由哪几部分组成。最后我们讨论了在系统中实际的密钥协商流程是如何实现的。在后续的文章中我们会逐步详细的讨论量子密钥分发系统的每个部分,包括原理和实现方法等。等整个系统讨论完之后,我计划探讨下系统集成化和芯片化的话题,以上是我对这个系列的初步规划,敬请期待。

      文章中有谬误之处,还望各位小伙伴不吝指教。

    6.主要参考文献

      [1] 汪超.高速连续变量量子密钥分发系统关键技术研究[D]

      [2] 钟晓东.量子密钥分发专用数据处理芯片关键技术研究[D]


 ———————分割线———————

      下面是博主的CSDN主页,里面还有其他的量子相关文章,欢迎大家围观并关注博主~我会持续更新量子领域各类博文。

quantum.blog.csdn.neticon-default.png?t=N7T8https://quantum.blog.csdn.net/


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/822585.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊聊最近两星期的学习吧!

今天是4月14号。 自从我3月份回到学校之后,我每天都有记录自己的学习时长。今天晚上,我在复盘我自己学习时长的时候,我发现,在整个四月份,我平均每天的有效学习时长只有6h,而且到今天为止,整个四…

Python基于循环神经网络的情感分类系统设计与实现,附源码

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

spring02:DI(依赖注入)

spring02:DI(依赖注入) 文章目录 spring02:DI(依赖注入)前言:一、构造器注入(constructor)二、set注入:分析: 1. Student类:2. Addres…

编程入门(二)【计算机基础三】

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 前言五、常用软件的相关介绍六、操作系统的相关介绍七、Window11系统的基本操…

vue3 源码解析(7)— diff 算法源码的实现

前言 vue3 采用的 diff 算法名为快速 diff 算法,整个 diff 的过程分为以下5个阶段完成。 处理前置节点处理后置节点处理仅有新增节点处理仅有删除节点处理其他情况(新增 / 卸载 / 移动) 这里我们先定义新旧两个节点列表,接下来…

数据结构速成--栈

由于是速成专题,因此内容不会十分全面,只会涵盖考试重点,各学校课程要求不同 ,大家可以按照考纲复习,不全面的内容,可以看一下小编主页数据结构初阶的内容,找到对应专题详细学习一下。 目录 一…

JavaWeb--前端--03Vue入门

Vue入门 1 Vue概述2 快速入门3 Vue指令3.1 v-bind和v-model3.2 v-on3.3 v-if和v-show3.4 v-for3.5 案例 4 生命周期 1 Vue概述 个完整的html页面包括了视图和数据,数据是通过请求 从后台获取的,那么意味着我们需要将后台获取到的数据呈现到页面上&#…

OSPF - 链路状态路由协议

IGP 外部网关路由协议: OSPF , IS-IS EGP 内部网关路由协议: BGP 协议算法: 距离矢量路由协议 链路状态路由协议 lsdb:链路状态数据库 - 存放lsa的地址 RIP:有方向的矢量,距离矢量路由协议&#xf…

PHP-extract变量覆盖

[题目信息]: 题目名称题目难度PHP-extract变量覆盖1 [题目考点]: 变量覆盖指的是用我们自定义的参数值替换程序原有的变量值,一般变量覆盖漏洞需要结合程序的其它功能来实现完整的攻击。 经常导致变量覆盖漏洞场景有:$$&#x…

最前沿・量子退火建模方法(2) : Domain wall encoding讲解和python实现

前言 上篇讲的subQUBO属于方法论,这次讲个通过编码量子比特的方式,同样的约束条件,不同的编码,所需的量子比特数是不同的。有的编码方式,很节省量子比特。比如,这次要讲的Domain wall encoding。 一、Doma…

Vue.js前端开发零基础教学(六)

学习目标 了解什么是路由,能够说出前端后端路由的原理 掌握多种路由的使用方法,能够实现路由的不同功能 掌握Vue Router的安装及基本使用方法 5.1 初始路由 提到路由(Route),一般我们会联想到网络中常见的路由器(Router),…

CSS3 max/min-content及fit-content、fill-available值的详解

c3中对width的值多了几个值&#xff1a;fill-available, max-content, min-content, 以及fit-content。 1.width:fill-available 我们在页面中扔一个没有其他样式的<div>元素&#xff0c;则&#xff0c;此时&#xff0c;该<div>元素的width表现就是fill-availabl…

杰理-701-更换字库

杰里-701-更换字库显示 工具&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1yMDatiRCaJj2ioKXF-H8GQ 把使用的字库文件放进该目录下 生成后的字库文件需要修改名称 把修改好名称的字库文件放到该目录下替换 代码,把所有语言的PIX修改未新替换的字库文件&#xff08;保…

00_Qt概述以及如何创建一个QT新项目

Qt概述 1.Qt概述1.1 什么是Qt1.2 Qt的发展史1.3 支持的平台1.4 Qt版本1.5 Qt的下载与安装1.6 Qt的优点 2.QT新项目创建3.pro文件4.主函数5.代码命名规范和快捷键 1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面…

机器人视觉软件实现目标检测通常借助深度学习技术和计算机视觉算法

机器人视觉软件实现目标检测通常借助深度学习技术和计算机视觉算法。以下是一般而言的目标检测实现步骤&#xff1a; 1、数据收集与标注&#xff1a;首先需要收集包含目标物体的大量图像数据&#xff0c;并对这些图像进行标注&#xff0c;标注出目标物体的位置和类别信息。这些…

一篇安装配置ubuntu22.04(步骤详细,配置成功)

一篇配置ubuntu22.04(步骤详细&#xff0c;配置成功) 官网下载相应的镜像 vitualbox安装ubuntu 新建虚拟机 第一步 第二步 第三步、按需分配内存、处理器个数、磁盘大小 第四步、一直下一步直至完成 配置虚拟机网络 第一步、先停止虚拟机 第二步、设置虚拟机网络 正常启…

【C++】一篇文章带你深入了解vector

目录 一、vector的介绍二、 标准库中的vector2.1 vector的常见接口说明2.1.1 vector对象的常见构造2.1.1.1 [无参构造函数](https://legacy.cplusplus.com/reference/vector/vector/vector/)2.1.1.2 [有参构造函数&#xff08;构造并初始化n个val&#xff09;](https://legacy.…

Advanced RAG 03:运用 RAGAs 与 LlamaIndex 评估 RAG 应用

编者按&#xff1a;目前&#xff0c;检索增强生成&#xff08;Retrieval Augmented Generation&#xff0c;RAG&#xff09;技术已经广泛使用于各种大模型应用场景。然而&#xff0c;如何准确评估 RAG 系统的性能和效果&#xff0c;一直是业界和学界共同关注的重点问题。若无法…

设计模式之状态模式(下)

3&#xff09;共享状态 1.概述 在某些情况下&#xff0c;多个环境对象可能需要共享同一个状态&#xff0c;如果希望在系统中实现多个环境对象共享一个或多个状态对象&#xff0c;那么需要将这些状态对象定义为环境类的静态成员对象。 2.案例 背景&#xff1a;要求两个开关对…

前端-vue项目debugger调试

一、前言 有的时候接受同事一个项目&#xff0c;用框架不一样&#xff0c;写的也不太规范&#xff0c;那么就需要打断点去学习改项目的流程了。 那么vue项目是如何debugger调试呢&#xff1f; 二、操作 大概理解一下&#xff0c;vue项目启动&#xff0c;大概是先启动框架&am…