量子城域网系列(二):量子密钥与通信系统中各层协议融合应用

       写在前面。国家标准中对量子保密通信的定义:量子保密通信是利用QKD与其他密码技术结合形成的保密通信技术。

       经过这段时间的讨论,我们基本上明白了量子保密通信的内涵、基础协议、技术原理等。我们知道了当前语境下的量子密钥分发网络核心是实现两点之间的密钥分发,并且也知道了密钥分发是如何实现的。到这里自然而然的引发了一个问题,那就是量子密钥到底具体怎么在通信系统中应用呢?本文我们就这一问题进行讨论。

1.总体描述

        这里贴一张我觉非常贴切的图:

       可以看出,在实际的信息与通信系统中量子保密通信可以在当前OSI网络模型中各层协议中实现应用。具体应用的思路如下:

        1.QKD在应用层协议中的应用:

        QKD可以与应用层的协议结合,例如加密语音/视频通话或会议、即时通信等业务;

        应用层协议可以利用QKD为通信收发两端提供对称共享密钥,用于用户身份鉴别、鉴权或消息鉴别,也可用于实现业务载荷的加密传输;

        2.QKD在传输层协议中的应用:

        QKD可以与传输层协议结合应用,例如TLS协议或SSL协议。

        TLS协议或SSL协议用于在传输层中为网络通信提供端到端的安全服务。其通常使用公钥密码算法来建立会话密钥,用于保护敏感信息传输,例如电子商务交易中的信用卡信息。

       在QKD与TLS协议结合使用的场景中,QKD生成的密钥可以用于替换TLS协议中的会话密钥,也可一用于基于OTP方式的加密传输。

         3.QKD在网络层协议中的应用:

         QKD可以与网络层协议结合应用,例如IPSec协议。

        IPSec是用于保障IP通信安全的一组协议套件。IPSec可实现数据流中IP数据包的鉴权和加密。IPSec中的IKE协议负责建立安全的网络连接。IKE协议使用公钥协商的方式来建立的共享的会话密钥,用于数据加密。

        QKD可以与IKE协议融合。基于QKD增强IKE协议,能够利用QKD生成的共享密钥实现IPSec载荷加解密功能,可根据安全登记需求使用分组加密算法或OTP算法。

        4.QKD在数据链路层中的应用:

        QKD可与数据链路层协议结合应用,例如PPP、MACsec协议。

        PPP工作在数据链路层,用于网络中两组节点之间的链接。PPP中的加密功能通过ECP来实现,用于在PPP数据帧中实现加密算法。QKD可用于实现PPP中密钥协商过程。

        MACsec协议用于支持连接到LAN或互连LAN的授权系统的数据机密性、完整性和真实性。QKD可作为一种密钥交换技术在MACsec协议中集成应用。

        点对点链路上的QKD设备可与传统的链路加密机集成,构成基于QKD的链路加密机。该链路加密机可利用QKD生成对称随机数作为会话密钥,实现分组密码算法(例如AES)或序列密码算法(例如可实现最高安全性的OTP)。

        小结一下,我们都知道数据从应用层开始,每经过一层就会装进一个新的网包,在网络中不同层次中部署密码算法所得到的保密效果是不一样的。基于此,我们可以采用量子密钥融合经典加密算法的思路,将量子密钥应用到每一层的数据加密中。

2.QKD加密场景示例

        在具体的场景中,常见的量子密钥应用形式是采用量子VPN网关实现数据加解密。量子密钥分发设备(QKD)通过独立的光纤通道进行基于光量子的秘钥生产,生产出来的量子密钥存放在量子密钥存储设备(QKM)中,然后通过量子加密设备(QVPN)实现对数据通道的量子加密并在经典信道网络中传送。

2.1QKD在传输层协议中的应用

2.1.1融合机制

        安全套接层协议(secure socket layer,SSL)是内嵌在浏览器中,不需要客户机安装客户端软件,因此应用相对便利。SSL VPN技术采用密钥协商、预共享密钥等手段分发主密钥,然后再由主密钥进一步计算出会话密钥。会话密钥被用在高级加密标准(advanced encryption standard,AES)、数据加密算法(data encryption algorithm,DES)的等加密算法中。

       SSL协议是基于Web应用的安全协议,保证数据的真实性、完整性和机密性。他主要包含2个协议:记录协议和握手协议。记录协议在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等功能;握手协议再记录协议之上,用于实际的数据传输开始前,通信双方进行身份认证、协商加密算法和密钥协商等。

        根据SSL协议的结构特点,隧道的整个建立过程和之后的会话过程涉及3种类型的密钥:

        1.通信双方用于身份认证的密钥;

        2.通过密钥协商过程中得到的豫主密钥和主密钥;

        3.在每次会话过程中由主密钥导出的会话密钥。

        因此,量子密钥可以用在SSL VPN中3个不同层次,分别作为认证密钥、主密钥和会话密钥。

        SSL VPN使用量子密钥的具体协议步骤如下图:

2.1.2融合设备

2.2QKD在网络层协议中的引用

2.2.1融合机制

       IPSec协议是OSI模型里面第三层网络层的协议,也是最常见的协议。现有的IPSce协议的安全性依赖于传统的密码学算法,无法抵抗量子计算带来的威胁,QKD安全密钥与IPSec协议进行结合是一种有效的解决方案。

        在IPSce协议中有两个过程需要使用到密钥,它们分别是:

        1.主要用于对IPSec的密钥交换进行管理的因特网密钥交换((Internet Key Exchange,IKE)

        2.主要用于数据源的认证或完整性检验的ESP协议

        针对这两个过程提出两种QKD与之结合的方案。

        1.在IKE协议过程中使用QKD密钥来代替Diffe-Hellman密钥协商算法,而不对其他密码学算法进行更改

        2.在ESP协议对数据包进行处理过程中利用不断生成的QKD密钥流,设计支持QKD密钥更新加解密模块来代替原来的密码学算法。

2.2.2融合设备

2.3QKD在数据链路层中的应用

2.3.1融合机制

        QKD在对OSI网络模型的链路层数据进行加密常用的方式为量子加密交换机。量子加密交换机的部署方式与传统交换机并无区别,主要是接入量子密钥分配终端并获取量子密钥。典型的部署方式如下图:

        MACsec协议使用两个实体之间的密钥来加密和解密数据。这两个实体分别是MACsec密钥交互协议(MKA)和基于端口的网络访问控制(PNAC)。MKA负责协商和交换密钥,而PNAC负责应用密钥并管理密钥的分发和更新。QKD就可以为相关协议提供密钥,从而增强安全性。

2.3.2融合设备

3.写在后面

       本文主要是从基础的原理和机制层面,让读者朋友直观的理解量子密钥实际是如何使用的。在一个完整的量子密钥应用场景中,需要的网络技术和网络设备比较多,并且要针对量子密钥融合进进行软件开发,后期我们可以在实际搭建具体的量子加密网络中逐步深入探讨。欢迎大家关注博主~

4.参考文献

[1]GB/T 42829-2023 量子保密通信应用基本要求

[2]徐凌生.量子密钥在经典安全体制中的应用研究[D]

[3]郭邦红,胡敏.一种在SSL VPN中融合量子密钥和经典密钥的方法[P]

[4]刘东,量子密钥在电网SSL VPN中的应用[J]

[5]贾其东.量子密钥分发协议设计及其在IPSec协议中的应用研究[D]

[6]王晓宇.基于FPGA的量子加密交换机的设计与研究[D]

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

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

相关文章

windows下pycharm中配置conda虚拟环境

目录 一:背景 二:安装conda环境 三:pycharm配置环境 四:注意问题 一:背景 在使用python的过程中,我们可能需要在一个windows环境中创建多个版本的python和安装不同的库去做一些开发任务。 使用conda&a…

文献学习-33-一个用于生成手术视频摘要的python库

VideoSum: A Python Library for Surgical Video Summarization Authors: Luis C. Garcia-Peraza-Herrera, Sebastien Ourselin, and Tom Vercauteren Source: https://arxiv.org/pdf/2303.10173.pdf 这篇文章主要关注的是如何通过视频摘要来简化和可视化手术视频&#xff0c…

【linux】set ff=unix、linux设置文件格式

文章目录 一、文件格式二、如何查看文件格式三、设置文件格式、set ffunix四、查看unix与dos的区别 一、文件格式 当我们打开sh脚本时发现有时候格式是unix(LF) ,有时候是windows(CR LF) 。如下图: 文件格式影响了文件中的换行符 linux中sh类型的文件一般要设置为…

文献速递:深度学习肝脏肿瘤诊断---动态对比增强 MRI 上的自动肝脏肿瘤分割使用 4D 信息:基于 3D 卷积和卷积 LSTM 的深度学习模型

Title 题目 Automatic Liver Tumor Segmentation on Dynamic Contrast Enhanced MRI Using 4D Information: Deep Learning Model Based on 3D Convolution and Convolutional LSTM 动态对比增强 MRI 上的自动肝脏肿瘤分割使用 4D 信息:基于 3D 卷积和卷积 LSTM …

K8s拉取habor镜像

目录 在daemon.json中添加仓库地址 重新加载daemon.json并重启docker 在目标node节点添加域名 验证目标node是否能正常登录镜像仓库 创建pod资源 加载yml文件 验证 查看pod的ip与端口号 在daemon.json中添加仓库地址 此处需要在创建资源对象所在的节点进行添加 路径&a…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十 简单视频浮雕画效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十 简单视频浮雕画效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十 简单视频浮雕画效果 一、简单介绍 二、简单视频浮雕画效果实现原理 三、简单视频浮雕画效果…

避免使用第三方工具完成电脑环境检测

0. 简介 在之前配置各种深度学习环境的时候经常需要先检测一下电脑的软硬件环境,其实整个过程比较重复和固定,所以我们是否有可能一键检测Python版本、PIP版本、Conda版本、CUDA版本、电脑系统、CPU核数、CPU频率、内存、硬盘等内容这是很多Deepper苦恼…

废品回收小程序推动回收行业的发展趋势

回收在全球都是一个重要行业,它为全球的环保作出了重要贡献。 随着科技的不断发展创新,废品回收的方式也逐渐多样,全新的线上回收小程序也逐渐出现在大众的生活中,在当下的手机时代,线上回收也为大众提供了更加便利的…

如何使用pgvector为RDS PostgreSQL构建专属ChatBot?

背景 越来越多的企业和个人希望能够利用LLM和生成式人工智能来构建专注于其特定领域的具备AI能力的产品。目前,大语言模型在处理通用问题方面表现较好,但由于训练语料和大模型的生成限制,对于专业知识和时效性方面存在一些局限。在信息时代&…

Redis(三) String字符串

文章目录 前言常见命令SETGETMSETMGETINCRINCRBYDECRDECRBYINCRBYFLOATAPPENDGETRANGESETRANGESTRLEN命令小结 前言 Redis 的数据有很多种数据类型,包括字符串类型、列表类型、哈希类型、集合类型、有序集合类型等。这几种数据类型是针对于 value 来说的&#xff0…

面试: 单例模式

目录 一、饿汉单例(实现Serializable) 1、破坏单例的三种情况 (1)反射破坏单例 (2)反序列化破坏单例 (3)Unsafe破坏单例 2、饿汉单例(利用枚举实现) 二…

CSS导读 (元素显示模式)

(大家好,今天我们将继续来学习CSS的相关知识,大家可以在评论区进行互动答疑哦~加油!💕) 目录 三、CSS的元素显示模式 3.1 什么是元素显示模式 3.2 块元素 3.3 行内元素 3.4 行内块元素 3.5 元素…

【保姆级讲解Element UI】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

结合fastapi-users与Langserve轻松实现大语言接口用户认证

在做大模型开发的过程中,相信很多小伙伴都是对大模型开发感兴趣,却对 fastapi 这个框架并不熟悉,但是,实际开发的项目确需要用户鉴权,这时候就会很头疼,查阅官方文档发现,官方虽然有例子&#x…

学习笔记之——3DGS-SLAM系列代码解读

最近对一系列基于3D Gaussian Splatting(3DGS)SLAM的工作的源码进行了测试与解读。为此写下本博客mark一下所有的源码解读以及对应的代码配置与测试记录~ 其中工作1~5的原理解读见博客: 学习笔记之——3D Gaussian Splatting及其在SLAM与自动…

ios包上架系列 二、Xcode打应用市场ipa包

打包的时候一定要断开网络&#xff0c;上线包名只能在打包机配置 检查是否是正式环境&#xff0c;先在模拟器上运行 1、版本名称和本号号记得在这里更改&#xff0c;否则不生效 原因 &#xff1a;info.list <string>$(FLUTTER_BUILD_NAME)</string><key>CFB…

mysql查看数据库表容量大小

【推荐】单表行数超过 500 万行或者单表容量超过 2GB&#xff0c;才推荐进行分库分表。 说明&#xff1a;如果预计三年后的数据量根本达不到这个级别&#xff0c;请不要在创建表时就分库分表。 1. 查询所有数据库记录数和容量 SELECTtable_schema AS 数据库,SUM(table_rows) …

贪心算法|763.划分字母区间

力扣题目链接 class Solution { public:vector<int> partitionLabels(string S) {int hash[27] {0}; // i为字符&#xff0c;hash[i]为字符出现的最后位置for (int i 0; i < S.size(); i) { // 统计每一个字符最后出现的位置hash[S[i] - a] i;}vector<int> …

jenkins 启动linux节点时 控制台中文显示问号乱码

新增一个jenkins节点时&#xff0c;遇到了控制台中文输出问号的问题。 网上各种配置jenkins的全局变量&#xff0c;都不行。 最终是 节点列表 ->对应节点 -> 启动方式 -> 高级 添加JVM选项 -Dfile.encodingUTF-8

Python 序列化与反序列化

目录 1、基本概念 2、JSON模块 2.1、dumps() 与 loads() 函数 2.2、dump() 与 load() 函数 2.3、bool 、None 类型的序列化与反序列化 3、pickle模块 3.1、dumps() 与 loads() 函数 3.2、dump() 与 load() 函数 1、基本概念 说明&#xff1a;通过文件操作&#xff0c;…