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

news2024/11/28 8:40:04

       经过一段时间讨论,我们了解到量子密钥分发设备是当前量子保密通信系统的基础。从本文开始,我将开启量子密钥分发系统设计与实现系列,详细讨论量子密钥分发设备如何从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.coloradmin.cn/o/1603610.html

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

相关文章

Unity之XR Interaction Toolkit如何在VR中实现渐变黑屏效果

前言 做VR的时候,有时会有跳转场景,切换位置,切换环境,切换进度等等需求,此时相机的画面如果不切换个黑屏,总会感觉很突兀。刚好Unity的XR Interaction Toolkit插件在2.5.x版本,出了一个TunnelingVignette的效果,我们今天就来分析一下他是如何使用的,然后我们自己再来…

ABAP - 三代增强 BADI

SAP ERP提供了大量的标准功能,但是用户的需求是多种多样的,如何使SAP的标准功能适应用户的需求就变得非常重要,SAP Enhancement技术允许我们对SAP的标准功能进行扩展,以满足用户的个性化需求;SAP保证所有的BADI向上兼容…

Stable Diffusion之Ubuntu下部署

1、安装conda环境 conda create -n webui python3.10.6 2、激活环境 每次使用都要激活 conda activate webui 注意开始位置的变换 关闭环境 conda deactivate webui 3、离线下载SD 代码 https://github.com/AUTOMATIC1111/stable-diffusion-webui https://github.com/Stabilit…

小红书app缓存清除

1.背景 小伙伴们,手机app运行产生的缓存在不断侵占着我们的收集的内存,运行个半年发现内存不足20%。其实很多情况我们通过各个手机自带的缓存清除功能,就可以把app运行过程中产生的内存清除掉,节省我们不少的空间。想一想手机上a…

【FreeRTOS】使用CubeMX快速移植FreeRTOS工程到蓝桥杯开发板(STM32G431RBT6)

使用CubeMX快速创建FreeRTOS工程到蓝桥杯开发板(STM32G431RBT6) CubeMX配置CubeMX基础工程的配置☆FreeRTOS相关配置FreeRTOS配置选项卡的解释 软件工程架构与程序设计小综合:任务的创建删除、挂起与恢复设计cubexMX配置创建任务软件程序设计…

前端服务请求跨域被拦截,Java后端Springboot服务解决办法

跨域问题 跨域前端遇到的问题: Access to XMLHttpRequest at ‘http://www.xxx.xxxx/api/x/d/xc’ from origin ‘http://127.0.0.1:3000’ has been blocked by cors policy: No ‘Access-Contorl-Allow-Origin’ header is present on the requested resource. …

8.Jetson AGX Orin Ubuntu20.04 gRPC编译安装

Jetson AGX Orin Ubuntu20.04 gRPC编译安装 一、CMake版本检查 grpc编译cmake要求最低版本为3.15。首先,cmake -version 查看当前cmake版本,如果低于3.15,按照以下步骤进行安装。 1.1 卸载已经安装的旧版的CMake sudo apt-get autoremove…

Golang插件系统实现

插件可以在解耦的基础上灵活扩展应用功能,本文介绍了如何基于Golang标准库实现插件功能,帮助我们构建更灵活可扩展的应用。原文: Plugins with Go 什么是插件 简单来说,插件就是可以被其他软件加载的软件,通常用于扩展应用程序的功…

嵌入式学习56-ARM5(linux驱动启动程序)

知识零碎: bootm: 启动内核同时给内核传参 …

VAR:自回归家族文生图新SOTA,ImageNet上超越Diffusion与DiTs

一、背景: 在人工智能领域,尤其是计算机视觉和自然语言处理中,自回归(AR)大型模型(如GPT系列)因其强大的生成能力和在多种任务上的通用性而受到广泛关注。这些模型通过自监督学习策略&#xff0…

Android 性能优化(七):APK安装包体积优化

包体积优化重要性 移动 App 特别关注投放转化率指标,而 App 包体积是影响用户新增的重要因素,而 App 的包体积又是影响投放转化率的重要因素。 Google 2016 年公布的研究报告显示,包体积每上升 6MB 就会带来下载转化率降低 1%, …

获取公募基金净值【数据分析系列博文】

摘要 从指定网址获取公募基金净值数据,快速解析并存储数据。 (该博文针对自由学习者获取数据;而在投顾、基金、证券等公司,通常有Wind、聚源、通联等厂商采购的数据) 导入所需的库:代码导入了一些常用的库…

CSS3 伪元素与伪类选择器区别、详解与应用实例

伪元素与伪类两者都是通过在选择器后附加一个特定的关键字来定义,遵循相似的语法规则,并在 CSS 规则块中设置相应的样式。伪元素 能够通过 content 属性添加或替换内容。例如,:before 和 :after 可以插入文本、图像或其他生成的内容。伪类 仅…

Go 单元测试之Mysql数据库集成测试

文章目录 一、 sqlmock介绍二、安装三、基本用法四、一个小案例五、Gorm 初始化注意点 一、 sqlmock介绍 sqlmock 是一个用于测试数据库交互的 Go 模拟库。它可以模拟 SQL 查询、插入、更新等操作,并且可以验证 SQL 语句的执行情况,非常适合用于单元测试…

数据赋能(58)——要求:数据赋能实施部门能力

“要求:数据赋能实施部门能力”是作为标准的参考内容编写的。 在实施数据赋能中,数据赋能实施部门的能力体现在多个方面,关键能力如下图所示。 在实施数据赋能的过程中,数据赋能实施部门应具备的关键能力如下。 理性思维与逻辑分…

ES源码四:网络通信层流程

听说ES网络层很难?今天来卷它😄 前言 ES网络层比较复杂,分为两个部分: 基于HTTP协议的REST服务端基于TCP实现的PRC框架 插件化设计的网络层模块(NetworkModule) 入口还是上一章的创建Node构造方法的地方…

如何爬出 Kotlin 协程死锁的坑?

作者:悬衡 一、前言 在 Java 中有一个非常经典的死锁问题, 就是明明自己已经占用了线程池, 却还继续去申请它, 自己等自己, 就死锁了, 如下图和代码: // 这段代码将死锁到天荒地老final ExecutorService executorService Executors.newSingleThreadExecutor();exe…

4月27日复旦大学-华盛顿大学EMBA项目教授分享暨招生说明会

复旦大学-华盛顿大学EMBA项目2024年4月27日精彩看点:      国际视野助推商业价值,“她力量”赋能管理      数字营销浪潮中,如何重新定义价值创造      主讲嘉宾    复旦大学-华盛顿大学EMBA项目教授分享暨招生说明会     …

Redmi Turbo 3新品发布,天星金融(原小米金融)优惠加持护航新机体验

Redmi新十年使命不变,挑战不断升级。Redmi Turbo 3,作为Turbo系列的开篇之作,将自身定位为新生代性能旗舰,决心重塑中端性能新格局。据悉,Redmi Turbo 3于4月10日已正式发布。预售期间更是连续数日,蝉联小米…

C++:文件内容完全读入

在上一篇文章中我留下了一点小坑:使用>> 运算符,这个运算符默认将空格作为分隔符,所以在文件内容读取的时候发现在读到空格时就会停止读取,导致读取内容不完整,这显然不符合日常的使用用能,那么今天就…