当前位置: 首页 > news >正文

量子数字签名概述

        我们都知道,基于量子力学原理研究密钥生成和使用的学科称为量子密码学。其内容包括了量子密钥分发、量子秘密共享、量子指纹识别、量子比特承诺、量子货币、秘密通信扩展量子密钥、量子安全计算、量子数字签名、量子隐性传态等。虽然各种技术发展的状态不同,但是共同目标都是为了实现抵抗量子计算带来的威胁。在之前的文章中,博主对量子密钥分发进行了大量的讨论。本文我们对量子数字签名进行简单的讨论。

1.什么是量子数字签名

      首先我们快速总结下什么是数字签名。我们都知道信息安全的主要目标是要实现信息传输的机密性、完整性、真实性和不可否认性。数据的加解密主要是解决传输的机密性。那么完整性、真实性和不可否认性具需要用其他手段来解决,这就是数字签名的作用。数字签名的官方概念为:附加到数据单元或对数据单元进行密码转换的数据,可让数据单元的接收方证明数据单元来源和完整性,以防止伪造。经典数字签名的典型流程如下:

       经典的数字签名主要是利用Rivest-Shamir-Adleman(RSA)协议,它的安全性是基于复杂的大数质因数分解问题,然而这个问题容易受到量子计算机的攻击。经典数字签名和经典加密一样,面临着密钥被量子计算破解的风险,并且传统的量子数字签名也在理论和工程实践中存在各种各样的安全风险,因此基于量子力学基础的数字签名概念被提了出来。含有RSA加密的经典数字签名过程如下:

      与经典数字签名相比,QDS的安全性依赖于量子力学,因此QDS可以抵抗量子攻击。量子数字签名方案的灵感来自于Lamport的一次性签名,有兴趣的同学可以先了解下这个方案。Gottesman和Chuang在2001年提出了量子数字签名(Quantum Digital Signatures,QDS)协议的概念,可以简称为GC-QDS协议。其核心思想是利用非正交态不能被完美区分的事实来实现量子单向函数,其中无法反转是基于量子力学的定律保证而不是基于计算的假设。但是这个签名协议在实验过程中有很大的技术挑战,包括非破坏量子态的比较,长时间的量子存储和安全的量子信道。因此,当前量子数字签名的研究主要集中在如何实用化。

     早期QDS的研究者们提出的协议有很强的不切实际的假设,且需要用到量子纠缠的资源。随着 QKD研究的不断深入,制备测量类的QKD协议渐渐成熟与可实用化,使得弱化QDS 的假设条件成为可能。目前实用化的QDS 协议大多是融合了QKD 协议中量子阶段的过程,QDS 与 QKD 逐渐趋同而异用。相同点是量子阶段基本类似,使用同一平台的硬件系统与协议的量子过程部分;不同点是QKD基本在双方或三方之间进行,而QDS至少需要三方,有些QDS协议需要多次实施量子阶段的操作,另外,两者的后处理与应用方面大有不同,也即软件上有很大区别。

2.量子数字签名的基本过程

      量子数字签名有三个比较明显的特征:不可抵赖性、不可伪造性和可转移性。本文以三方来介绍QDS的过程。整个签名的参与方包含发送方Alice,接收方Bob和Charlie,一条消息的签名方只能有一个。对于信道的要求为Alice和Bob,Alice和Charlie之间存在认证的经典信道,量子信道无需认证,可以是不安全的。Bob和Charlie之间需要有一条安全的经典信道用来加密经典信息,比如存在一条QKD链路。

     QDS协议的过程可以分为两个阶段,分发阶段和消息阶段。分发阶段用于生成签名所需要的密钥,包括量子信息和经典信息的传输。消息阶段是签名和发送消息的过程,包括在接收方的验证与认证,这一阶段全都是经典通信对经典信息的处理。

     首先为分发阶段:

  1. 对于可能签名的消息m=0或1,Alice使用密钥生成协议(Key Generation Protocol,KGP)分别独立的与Bob和Charlie产生密钥串。
  2. Bob和Charlie通过私密信道进行密钥对称操作,即各自随机选取一半密钥保留,另一半与对方交换。

      上述分发阶段中,KGP过程为QKD的量子部分,即产生筛后密钥即可,不需要对筛后密钥进行纠错和保密放大等后处理过程。Bob和Charlie进行的密钥交换过程不能为Alice所知,因此Alice不知道交换的密钥位置,以此来抵御Alice的抵赖。此外,Bob和Charlie 随机选取自己的一半密钥进行交换,这就使得 Bob 和 Charlie 不知道对方保留的那一半的密钥,这就防止了签名的伪造。

     分发阶段完成密钥分配后,进行消息阶段:

  1. Alice采用与Bob和Charlie的密钥对消息进行签名,并将签名发送给Bob;
  2. Bob用自己的密钥与签名中对应的部分进行比对,如果小于预设的阈值,那么就接受签名,并将签名转发给Charlie;
  3. Charlie用自己的密钥与签名中对应的部分进行比对,如果小于预设的阈值,那么就接受签名,否则就拒绝;

       这里只是进行一个量子数字签名的最简单模型理解,实际的过程和操作还是很复杂的,有兴趣的同学可以进一步通过本文的参考文献深入了解。

3.量子数字签名的典型应用

       目前国内在专利检索结果来看,量子数字签名已经有了一些应用场景。近期比较值得关注的是中国人民大学的尹华磊课题组演示首个“量子电子商务”。基于一次性全域哈希量子数字签名理论提出了首个量子电子商务方案,在国际上首次实现了五用户的量子电子商务应用场景演示,为完整的电子商务交易流程提供了无条件的安全性保证。在此次研究中,研究团队将量子数字签名作为一个底层技术,通过含噪声量子态的隐私特性、一次性全域哈希函数的单向性和秘密共享的非对称特性而构建了一个无条件安全的量子电子商务协议。该量子电子商务协议可以容忍量子密钥的部分隐私泄露,因此在后处理阶段不需要进行复杂的隐私提纯操作,在大规模网络和大数据传输的情景下可以节省可观的计算资源、网络带宽和数据处理时间。

4.写在最后

      本文对量子数字签名进行了简单的讨论,客观来讲,量子数字签名目前处于工程化向实用化转变的阶段,作者对这个技术的理解也不是很深入,本文只是进行一个很初步的介绍,后期针对目前具有实用意义的方案可以做进一步讨论。

      本文如有谬误之处,还望不吝指出。

5.主要参考文献

[1]张春辉,新型量子密码的方案设计与实验验证[D]

[2]尹华磊,实用化量子通信若干理论与实验研究[D]

[3]陈家明,量子数字签名理论研究[D]

[4]张昊,实用化量子数字签名理论与实验研究[D]

[5]尹华磊,量子电子商务—量子数字签名实用化之路[J]

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

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

关于量子的一切-CSDN博客icon-default.png?t=O83Ahttps://quantum.blog.csdn.net/

相关文章:

量子数字签名概述

我们都知道,基于量子力学原理研究密钥生成和使用的学科称为量子密码学。其内容包括了量子密钥分发、量子秘密共享、量子指纹识别、量子比特承诺、量子货币、秘密通信扩展量子密钥、量子安全计算、量子数字签名、量子隐性传态等。虽然各种技术发展的状态不同&#xf…...

算法题——合并 k 个升序的链表

题目描述&#xff1a; 合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。 数据范围&#xff1a;节点总数 0≤n≤50000≤n≤5000&#xff0c;每个节点的val满足 ∣val∣<1000∣val∣<1000 要求&#xff1a;时间复杂度 O(nlogn) 一、常见解法 &#xff08…...

智能制造与精益制造的模型搭建

现行制造模式分析I-痛点改善思路-管控省优四化推行...

快速生成生产级Go应用的利器——Cgapp

简介 CGAPP是一个强大的命令行工具&#xff0c;开发者通过简单的命令就可以快速搭建起一个完整的Go项目框架。这个框架不仅包括后端服务&#xff0c;还可以集成前端代码和数据库配置&#xff0c;大大简化了项目的初始化过程。 安装 安装CGAPP的过程非常简单。首先&#xff0…...

MySQL基本语法、高级语法知识总结以及常用语法案例

MySQL基本语法总结 MySQL是一种广泛使用的关系型数据库管理系统&#xff0c;其基本语法涵盖了数据库和数据表的创建、查询、修改和删除等操作。 一、数据库操作 创建数据库&#xff08;CREATE DATABASE&#xff09; 语法&#xff1a;CREATE DATABASE [IF NOT EXISTS] databa…...

单片机(学习)2024.10.11

目录 按键 按键原理 按键消抖 1.延时消抖 2.抬手检测 通信 1.通信是什么 2.电平信号和差分信号 3.通信的分类 (1)时钟信号划分 同步通信 异步通信 (2)通信方式划分 串行通信 并行通信 (3)通信方向划分 单工 半双工 全双工 4.USART和UART&#xff08;串口通信&a…...

Java创建型模式(二)——工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式、工厂模式扩展等完整详解,附有代码——案例)

文章目录 五.工厂模式5.1 概述5.2简单工厂模式5.2.1 概述5.2.2 结构5.2.3 实现5.2.4 优缺点5.2.5 扩展—静态工厂 5.3 工厂方法模式5.3.1概述5.3.2 结构5.3.3 实现5.3.4 优缺点 5.4 抽象工厂模式5.4.1 概述5.4.2 结构5.4.3 实现5.4.4 优缺点5.4.5 使用场景 5.5 工厂模式扩展 五…...

C++学习,容器类 <set>

C 标准库中的 <set> 是一个关联容器&#xff0c;它存储了一组唯一的元素&#xff0c;并按照一定的顺序进行排序。<set> 提供了高效的元素查找、插入和删除操作。它是基于红黑树实现的&#xff0c;因此具有对数时间复杂度的查找、插入和删除性能。 声明集合&#x…...

Cisco Catalyst 9000 交换产品系列 IOS XE 17.15.1 发布下载,新增功能概览

Cisco Catalyst 9000 Series Switches, IOS XE Release 17.15.1 ED 思科 Catalyst 9000 交换产品系列 IOS XE 系统软件 请访问原文链接&#xff1a;https://sysin.org/blog/cisco-catalyst-9000/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&…...

Python知识点:基于Python技术,如何使用MMDetection进行目标检测

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 使用MMDetection进行目标检测的Python技术详解 MMDetection是一个开源的目标检测…...

Chromium HTML Tags与c++接口对应关系分析

一、HTML 标签(HTML Tags) <a> <head> <img>等等这些标签在c中的接口是如何定义和查找的呢&#xff1f; 更多标签参考&#xff1a; HTML <a> target 属性 (w3school.com.cn) 二、html_tag_names.json5 (third_party\blink\renderer\core\html\htm…...

React Fiber 解析:前端性能提升密码

文章目录 背景React 采用 fiber 主要为了解决哪些问题&#xff1f;性能问题&#xff1a;用户体验问题&#xff1a; 为什么在 React 15 版本中性能会差&#xff1a;浏览器绘制原理&#xff1a;react 15 架构和问题 那么 fiber 怎么解决了这个问题&#xff1f;任务“大”的问题递…...

【吊打面试官系列-微服务面试题】微服务架构如何运作?

大家好&#xff0c;我是锋哥。今天分享关于【微服务架构如何运作&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 微服务架构如何运作&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 微服务架构是一种将单一应用程序构建为一组小型、独…...

Windows系统编程 - 目录操作、磁盘、卷信息

前言 各位师傅大家好&#xff0c;我是qmx_07&#xff0c;今天继续讲解Windows系统编程的相关知识:目录操作 目录 目录操作 创建目录 通过CreateDirectory函数创建目录 原型: BOOL CreateDirectoryA([in] LPCSTR lpPathName,//目录名称[in, opt…...

搭建SaaS知识库:优化教育机构的在线教学效能

随着信息技术的飞速发展&#xff0c;教育领域正经历着前所未有的变革。在线教学已成为教育机构提供灵活学习体验、扩大覆盖范围、提升教学效率的重要手段。然而&#xff0c;如何在海量资源与复杂教学场景中高效管理知识&#xff0c;确保教学质量&#xff0c;成为教育机构面临的…...

CSS中backdrop-filter详解

文章目录 CSS中backdrop-filter详解一、引言二、backdrop-filter基础1、基本概念1.1、基本语法 2、滤镜函数2.1、代码示例 三、实际应用1、创建模糊背景1.1、代码示例 2、结合其他CSS属性2.1、代码示例 四、总结 CSS中backdrop-filter详解 一、引言 在现代网页设计中&#xf…...

AI测试入门:理解 LLM 的基准测试(Benchmark)

AI测试入门:理解 LLM 的基准测试(Benchmark) 1. 基准测试的定义2. 基准测试的目的3. 基准测试的常用指标4. 基准测试的流程5. 常用的AI基准测试框架总结1. 基准测试的定义 LLM 的基准测试是一种评估 LLM 的标准化方法,通过使用预定义的数据集、任务和评估指标,对LLM 在特定…...

InternVid:用于多模态视频理解与生成的大规模视频-文本数据集 | ICLR Spotlight

InternVid 是一个开源的大规模视频-文本数据集&#xff0c;旨在促进视频理解和生成任务的发展&#xff0c;由上海人工智能实验室与南京大学、中国科学院等单位联合发布&#xff0c;相关的工作已经被ICLR2024接收。它包含超过 700 万个视频&#xff0c;总时长近 76 万小时&#…...

Hive数仓操作(十)

一、Hive 分页查询 在大数据处理中&#xff0c;分页查询是非常常见的需求。Hive 提供了 LIMIT 和 OFFSET 关键字来方便地进行分页操作。本文将详细介绍它们的用法。 1. 基本用法 LIMIT&#xff1a;用于限制查询结果的行数。OFFSET&#xff1a;用于指定从哪一行开始检索。 2…...

Android 扩大View的点击区域

文章目录 Android 扩大View的点击区域使用padding属性使用TouchDelegate使用getLocationOnScreen监听 Android 扩大View的点击区域 使用padding属性 通过设置 padding 属性扩大点击区域。 使用&#xff1a; <?xml version"1.0" encoding"utf-8"?&…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...