基于量子同态的安全多方量子求和加密

摘要
安全多方计算在经典密码学中一直扮演着重要的角色。量子同态加密(QHE)可以在不解密的情况下对加密数据进行计算。目前,大多数协议使用半诚实的第三方(TP)来保护参与者的秘密。我们使用量子同态加密方案代替TP来保护各方的隐私。在量子同态加密的基础上,提出了一种安全的多方量子和方案,其中N个参与者可以委托一个具有强大量子计算能力的服务器协助计算。通过将计算和密钥更新过程委托给服务器和半诚实的密钥中心,参与者使用泡利算子加密他们的私有信息数据以获得总和。此外,服务器可以自行设计和优化求和线,即使秘密信息为负,也能得到正确的结果。正确性分析表明,参与者能够正确地获得计算结果。安全性分析证明,该方案既能抵抗外部攻击,又能抵抗参与者自身的攻击,并能抵抗多达N-2个参与者的合谋攻击。从理论上讲,该协议可以推广到其他安全的多方计算问题。

QOTP

量子同态加密方案包括四种算法,每种算法的实现过程如下。

  1. 密钥生成算法。客户端使用安全参数的一元表示作为算法的输入,获得一组密钥,即经典公开加密密钥pk、经典秘密解密密钥sk和量子评估密钥 ρ e v k ρ_evk ρevk
  2. 加密算法。客户端根据加密密钥pk的值对明文信息M进行加密,并将加密后的信息C发送给服务器。加密是由多个X和Z门组合后形成的结果。
  3. 同态求值算法。服务器对接收到的加密信息C执行一元算子U,并将评估信息E发送给客户端。这个过程将消耗量子评估密钥。
  4. 解密算法。由于服务器执行了幺正算子U,客户端更新解密密钥sk对接收到的求值信息e进行解密,客户端的解密信息本质上就是作用于明文信息M的幺正算子U。

OTP的加密公式如下所示
在这里插入图片描述
基于该加密公式的变式如下所示:
在这里插入图片描述
当服务器执行T或Ty门的评估时,会发生意外的s错误
在这里插入图片描述
如果只对求值结果执行X和Z,则不能完全得到T|φ >,可能会出现s误差。为了消除s误差,Gong等基于u旋转贝尔测量的思想,设计了如图所示的量子电路来完成t门的同态评价过程。
在这里插入图片描述
根据加密密钥a的值,客户端进行Sa旋转贝尔测量,得到r和t的值。根据密钥更新算法,客户端将解密密钥更新为 a ⊕ r a\oplus r ar a ⊕ r ⊕ t a\oplus r \oplus t art,用于解密算法,完成t门的求值。
在这里插入图片描述

量子全加法器电路

在本节中,我们描述了如何构建一个基于经典二进制加法的量子全加法器电路。假设有两个无符号二进制数,A=(a0,a1,…,an-1)和B=(b0,b1,…,bn-1)。这两个数的和是C = (c0, c1,…,cn),其中q是进位量子位。
在这里插入图片描述
二进制加法包括异或运算和与运算。量子电路中的CNOT和Toffoli门完成这两种操作。由CNOT门和Toffoli门组成的两个参与者的全加法器电路,一个两位量子全加法器电路如下图所示。
在这里插入图片描述
Toffoli门可分解为2个H门、1个S门、6个CNOT门、3个t门和4个ty门,详细电路如下图所示。
在这里插入图片描述
Toffoli门的详细分解电路是实现2位量子全加法器的基本元件。它将三量子位门的实现转化为单量子位和双量子位门的组合,在一定程度上易于实验和技术实现。

在我们的协议中,要加密的参与者的消息是经典的二进制数据,可以通过利用水平和垂直极化来表示。垂直偏振光子|1 >表示1,水平偏振光子|0 >表示0。在传输这些光子之前,所有的光子都是使用QOTP加密。请注意,如果加密消息是经典的,则可以使用QOTP生成完全安全的密文。
在这里插入图片描述

假设有N个参与者(P1, P2,…,Pn),每个参与者都持有一个只有他们自己知道的m长度的秘密信息Ii(i = 1,2,…,N)。它们可以借助服务器和可信密钥中心计算出Ii的总和,它们与TP之间的通信模型如上图所示。为了防止计算溢出,需要一个安全参数K,其中K = [log2(N)] + 2。在下图中,我们展示了该方案的流程图。
在这里插入图片描述

  1. 密钥中心随机生成N个长度为2m的密钥,并通过安全的密钥分发协议(如BB84协议)将 K e y i 0 Key^0_i Keyi0发送给参与者Pi。
  2. 如果参与者的秘密信息 I i I_i Ii的数量为正或零,参与者不必对他们的0-1代码做任何事情。否则,它们将0-1代码转换为2的补码。然后他们准备光子序列 ∣ ψ 1 i ⟩ . . . ∣ ψ M i ⟩ |\psi^i_1\rangle...|\psi^i_M\rangle ψ1i...∣ψMi基于它们的0-1编码,如果 B i n j i = 1 Bin^i_j=1 Binji=1,则 ∣ ψ j i ⟩ = ∣ 1 ⟩ |\psi^i_j\rangle=|1\rangle ψji=∣1;如果 B i n j i = 0 Bin^i_j=0 Binji=0,则 ∣ ψ j i ⟩ = ∣ 0 ⟩ |\psi^i_j\rangle=|0\rangle ψji=∣0。然后使用 K e y i 0 Key^0_i Keyi0对光子序列进行加密,基于QOTP得到 ∣ Ψ 1 i ⟩ . . . ∣ Ψ M i ⟩ |\Psi^i_1\rangle...|\Psi^i_M\rangle Ψ1i...∣ΨMi= X a 1 ( 0 ) Z b 1 ( 0 ) ∣ ψ 1 i ⟩ . . . X a M + L ( 0 ) Z b M + L ( 0 ) ∣ ψ M i ⟩ X^{a_1(0)}Z^{b_1(0)}|\psi^i_1\rangle...X^{a_{M+L}(0)}Z^{b_{M+L}(0)}|\psi^i_M\rangle Xa1(0)Zb1(0)ψ1i...XaM+L(0)ZbM+L(0)ψMi。最后,密钥中心根据安全参数k添加2K零密钥。
    参与者在光子序列前加上k长度为|0>的光子,则新光子序列为 ∣ 0 1 ⟩ . . . ∣ 0 k ⟩ ∣ Ψ 1 i ⟩ . . . ∣ Ψ M i ⟩ |0_1\rangle...|0_k\rangle|\Psi^i_1\rangle...|\Psi^i_M\rangle 01...∣0kΨ1i...∣ΨMi.信息为负的参与者在光子序列前添加k长度|1 >个光子,新光子序列为 ∣ 1 1 ⟩ . . . ∣ 1 k ⟩ ∣ Ψ 1 i ⟩ . . . ∣ Ψ M i ⟩ |1_1\rangle...|1_k\rangle|\Psi^i_1\rangle...|\Psi^i_M\rangle 11...∣1kΨ1i...∣ΨMi
  3. 为了防止被窃听,参与者准备了Di个诱饵光子,并随机插入到自己的光子序列中,每个光子从{|0 >,|1 >,|+ >,|−>}中选择,并将新的光子序列发送给服务器。
  4. 一旦服务器获得他们的光子序列,参与者宣布插入的诱饵光子的位置 P o i Po^i Poi b a s e B a i base Ba^i baseBai。如果插入诱饵为|0 >或|1 >,则测量基为{|0 >,|1 >};若插入诱饵为|+>或|−>,则测量基为|+>或|−>。服务器根据测量结果计算准确度,如果准确度低于预设的阈值,则表示存在窃听者,然后终止协议。否则,服务器将丢弃这些诱饵光子并继续下一步。
  5. 服务器构建一个量子全加法器电路,每个参与者的光子序列作为电路的输入。在评估操作中,密钥中心根据服务器执行的量子门和量子门的密钥更新算法更新密钥。在服务器执行完量子电路中的所有量子门后,密钥中心获得最终更新的 K e y i f i n a l Key^{final}_i Keyifinal,即解密密钥。服务器将计算结果发送到密钥中心。
  6. 密钥中心使用解密密钥对光子序列中的所有光子进行解密和测量,然后将测量结果释放给所有参与者。然后参与者计算比特序列,得到他们的秘密信息的总和。

在步骤5中,在同态求值算法中,当服务器对密文进行Clifford gate运算时,根据Clifford gate与泡利矩阵之间的交换规则,无需额外的经典资源或量子资源即可获得新的中间密钥。假设服务器执行的第i次Clifford gate操作定义为Gi,作用于光子序列 G i X a k ( j ) Z b k ( j ) ∣ ψ ⟩ G_iX^{a_k(j)}Z^{b_k(j)}|\psi\rangle GiXak(j)Zbk(j)ψ中的第k个,(如果Gi = CNOT,输入量子位分别为k和l,则 G i X a k ( j ) Z b k ( j ) ∣ ψ ⟩ ⊗ G i X a l ( j ) Z b l ( j ) ∣ ψ ⟩ G_iX^{a_k(j)}Z^{b_k(j)}|\psi\rangle\otimes G_iX^{a_l(j)}Z^{b_l(j)}|\psi\rangle GiXak(j)Zbk(j)ψGiXal(j)Zbl(j)ψ,其中Gi∈{X, Y, Z, H, T, S, CNOT}, ak(j), bk(j)为(j+1)-中间密钥。对于操作Gi和密钥更新算法,第j+1中间密钥的计算过程如下:
在这里插入图片描述
任何任意的酉算子都可以由H、S、CNOT和T门组成,并且客户端需要T门键更新才能在服务器上执行任何酉操作。但是当t门作用于加密的量子位时,就会发生s错误。

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

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

相关文章

2023年自动化测试已成为标配?一篇彻底打通自动化测试...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 首先我们从招聘岗…

《面试1v1》ElasticSearch 和 Lucene

🍅 作者简介:王哥,CSDN2022博客总榜Top100🏆、博客专家💪 🍅 技术交流:定期更新Java硬核干货,不定期送书活动 🍅 王哥多年工作总结:Java学习路线总结&#xf…

智慧~经典开源项目数字孪生智慧商场——开源工程及源码

深圳南山某商场的工程和源码免费赠送,助您打造智慧商场。立即获取,提升商场管理效能! 项目介绍 凤凰商场作为南山地区的繁华商业中心,提供多样化的购物和娱乐体验。通过此项目,凤凰商场将迈向更智能的商业模式。 本项目…

基于SaaS模式的Java基层卫生健康云HIS系统源码【运维管理+运营管理+综合监管】

云HIS综合管理平台 一、模板管理 模板分为两种:病历模板和报表模板。模板管理是运营管理的核心组成部分,是基层卫生健康云中各医疗机构定制电子病历和报表的地方,各医疗机构可根据自身特点特色定制电子病历和报表,制作的电子病历…

Python-Python基础综合案例:数据可视化 - 折线图可视化

版本说明 当前版本号[20230729]。 版本修改说明20230729初版 目录 文章目录 版本说明目录知识总览图Python基础综合案例:数据可视化 - 折线图可视化json数据格式什么是jsonjson有什么用json格式数据转化Python数据和Json数据的相互转化 pyecharts模块介绍概况如何…

Golang 函数参数的传递方式 值传递,引用传递

基本介绍 我们在讲解函数注意事项和使用细节时,已经讲过值类型和引用类型了,这里我们再系统总结一下,因为这是重难点,值类型参数默认就是值传递,而引用类型参数默认就是引用传递。 两种传递方式(函数默认都…

BUG分析以及BUG定位

一般来说bug大多数存在于3个模块: 1、前台界面,包括界面的显示,兼容性,数据提交的判断,页面的跳转等等,这些bug基本都是一眼可见的,不太需要定位,当然也不排除一些特殊情况&#xf…

《cuda c编程权威指南》04 - 使用块和线程索引映射矩阵索引

目录 1. 解决的问题 2. 分析 3. 方法 4. 代码示例 1. 解决的问题 利用块和线程索引,从全局内存中访问指定的数据。 2. 分析 通常情况下,矩阵是用行优先的方法在全局内存中线性存储的。如下。 8列6行矩阵(nx,ny)(…

Kafka-消费者组消费流程

消费者向kafka集群发送消费请求,消费者客户端默认每次从kafka集群拉取50M数据,放到缓冲队列中,消费者从缓冲队列中每次拉取500条数据进行消费。

时序预测 | Python实现NARX-DNN空气质量预测

时序预测 | Python实现NARX-DNN空气质量预测 目录 时序预测 | Python实现NARX-DNN空气质量预测效果一览基本介绍研究内容程序设计参考资料效果一览 基本介绍 时序预测 | Python实现NARX-DNN空气质量预测 研究内容 Python实现NARX-DNN空气质量预测,使用深度神经网络对比利时空气…

PDF文件忘记密码,怎么办?

PDF文件设置密码分为打开密码和限制密码,忘记了密码分别如何解密PDF密码? 如果是限制编辑密码忘记了,我们可以试着将PDF文件转换成其他格式来避开限制编辑,然后重新将文件转换回PDF格式就可以了。 如果因为转换之后导致文件格式…

如何打造属于自己的个人IP?

在当今信息爆炸的时代,个人 IP 已经成为人们在网络世界中的独特标签。无论是在职场上、创业中,还是在社交生活中,拥有个人 IP 的人都能脱颖而出,吸引更多的关注和机会。那么,如何打造属于自己的个人 IP 呢?…

go 如何知道一个对象是分配在栈上还是堆上?

如何判断变量是分配在栈(stack)上还是堆(heap)上? Go和C不同,Go局部变量会进行逃逸分析。如果变量离开作用域后没有被引用,则优先分配到栈上,否则分配到堆上。判断语句:…

在外远程NAS群晖Drive - 群晖Drive挂载电脑磁盘同步备份【无需公网IP】

文章目录 前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用 3. 结语 前言 群晖作为专业的数据存储中心&…

如何开启一个java微服务工程

安装idea IDEA常用配置和插件(包括导入导出) https://blog.csdn.net/qq_38586496/article/details/109382560安装配置maven 导入source创建项目 修改项目编码utf-8 File->Settings->Editor->File Encodings 修改项目的jdk maven import引入…

flask中写一个基础的sqlHelper类

写一个SQLHelper类: from flask_sqlalchemy import SQLAlchemydb SQLAlchemy()class SQLHelper:staticmethoddef add(record):db.session.add(record)return SQLHelper.session_commit()staticmethoddef add_all(records):db.session.add_all(records)return SQLH…

基于dockerfile构建sshd、httpd、nginx、tomcat、mysql、lnmp、redis镜像

一、镜像概述 Docker 镜像是Docker容器技术中的核心,也是应用打包构建发布的标准格式。一个完整的镜像可以支撑多个容器的运行,在Docker的整个使用过程中,进入一个已经定型的容器之后,就可以在容器中进行操作,最常见的…

【面试】某公司记录一次面试题

文章目录 框架类1. Spring boot与 spring 架相比,好在哪里?2. Spring boot以及 Spring MVC 常用注解(如requestingMapping,responseBody 等)3. 常用的java 设计模式,spring 中用到哪些设计模式4. SpringIOC是什么,如何理解5. AOP…

看了那场直播后,我们发起了一个讨论

几天前,我们做了一场直播,关于如何用 Serverless 技术让文化古籍“活过来”。 完整视频进入阿里云云原生视频号看直播回放 背景信息: 通过阿里云函数计算帮助复旦大学特藏中心建立数字图书馆,为用户提供更丰富、更具互动性的古籍浏…

dubbo的高可用

1、zookeeper宕机与dubbo直连 现象:zookeeper注册中心宕机,还可以消费dubbo暴露的服务。 原因: 健壮性 (1)监控中心宕掉不影响使用,只是丢失部分采样数据. (2)数据库宕掉后&#x…