网站建设作业指导书公司怎么建立自己网站
web/
2025/10/2 14:21:11/
文章来源:
网站建设作业指导书,公司怎么建立自己网站,凡科送审平台学生端,漳州注册公司摘要安全多方计算几何(SMCG)是安全多方计算的一个分支。该协议是为SMCG中安全的多方凸包计算而设计的。首先#xff0c;提出了一种基于量子同态加密的安全双方值比较协议。由于量子同态加密的性质#xff0c;该协议可以很好地保护量子电路执行过程中数据的安全性和各方之间的…摘要安全多方计算几何(SMCG)是安全多方计算的一个分支。该协议是为SMCG中安全的多方凸包计算而设计的。首先提出了一种基于量子同态加密的安全双方值比较协议。由于量子同态加密的性质该协议可以很好地保护量子电路执行过程中数据的安全性和各方之间的交互。结果由一个半可信的第三方宣布。利用上述设计的值比较协议提出了一种安全的多方凸包协议可以安全地解决多个用户点集的公共凸包问题。然后进行了正确性和安全性分析证明了该协议是安全可靠的。
背景
随着信息技术的发展安全问题一直是学术界关注的热点问题。安全多方计算(SMC)旨在解决多个相互不信任的参与者共同计算某一类型任务的问题同时保护他们的信息不被泄露。SMC起源于姚在1982年提出的百万富翁问题两个百万富翁在不知道彼此财富的情况下比较财富。它涉及到经典计算中的各种问题其中安全多方计算几何(SMCG)也是一个值得研究的方向。2001年Atallah首次给出了数的安全计算几何问题的定义研究包括点包含问题、交点问题和凸包问题并对其中一些问题提出了解决方案。后续学者也对这些SMCG问题进行了研究如点包含问题、几何相交问题、最近点或点对问题、求解凸包问题等。 然而上述问题的解决方案受到计算复杂性的限制。由于量子算法的出现如Shor算法和Grover算法这些基于计算复杂度的安全算法将面临威胁。因此有必要研究基于量子力学的安全多方计算几何。Shi等于2016年提出了一种基于相位编码量子私有查询的任意区域隐私保护点包含协议。2017年Peng等也使用相位编码的量子隐私查询解决了双方距离解决问题。不久之后Chen等人发表了一篇论文指出了Peng方案在安全性上的不足分析了原方案存在不足的原因并提出了新的解决方案。2018年Peng等人提出了一种使用基于QKD的量子私有查询进行安全的双方距离计算的量子协议。Liu等人在2019年发表的文章中提出了一种基于oracle和量子计数算法的协议来处理两方几何相交问题但该方法仅限于两方的参与不能很好地扩展到多方的情况下。 在本文中作者率先使用量子同态加密来解决多方凸包问题。两个或多个用户有自己的点集。作者协议的目的是如何在不泄露用户自身信息的情况下找出所有用户点集的共同凸包凸包点的信息是所有人都知道的。提出了一种基于量子同态加密的值比较协议保证了数据值的安全性。然后将该协议应用于凸包计算协议中最后得到了该协议的解。
基础知识
量子同态加密
QHE方案解决的问题是当数据被加密后经过同态求值最终的解密结果与原始明文的相同计算结果相同可以解决安全计算问题。QHE方案由四种算法组成密钥生成加密算法评估算法解密算法。
密钥生成算法将随机生成一个加密密钥ek和一个解密密钥dk。根据给定的ek算法计算dk加密算法ε对量子态σ进行加密并输出加密后的量子态 E ε ( e k , δ ) E_ε(ek,δ) Eε(ek,δ)评估算法是对加密数据 ε ( e k δ ) ε(ek δ) ε(ekδ)进行量子计算U执行后得到最终的密文 E ε ( e k δ ) E_ε(ek δ) Eε(ekδ)解密算法D对 E ε ′ ( e k δ ) E_ε(ek δ) Eε′(ekδ)进行解密输出明文 σ ′ D ( d k , E e ′ ( e k σ ) ) σ D(dk, E_e(ek σ)) σ′D(dk,Ee′(ekσ)) σ ′ U σ U † σ UσU^† σ′UσU† 在本文中我们使用X门和Z门对明文量子比特 σ σ σ进行加密并被Boykin等人证明是完全安全的。 在密钥生成中可以对原始密文进行量子门操作而原始密钥ek根据密钥更新算法生成最终解密密钥dk。量子门的每次执行称为 G i ( i 1 , 2 … k , k 是执行的总次数 ) G_i (i 1,2…k, k是执行的总次数) Gi(i1,2…k,k是执行的总次数)每个量子门是集合 S S S{ X , Y , Z , H , S , T , C N O T X, Y, Z, H, S, T,CNOT X,Y,Z,H,S,T,CNOT}的一个元素。密钥更新算法有以下几种情况:如果Gi X或Y或Z假设它作用于ek的第m位则密钥更新算法第i步的密钥值不变。如式(1)所示 如果Gi H假设它作用于ek的第m位则密钥更新算法第i步的密钥值遵循式(2)。 如果Gi S假设它作用于ek的第m位则密钥更新算法第i步的密钥值遵循式(3) 如果Gi S假设它作用于ek的第m位和第l位则密钥更新算法第i步的密钥值遵循式(4)。 如果Gi T则由于执行T门进行求值而发生s错误。则有s错误为 T X x Z z ∣ ψ ⟩ X x Z x S x T ∣ ψ ⟩ TX^xZ^z|\psi\rangleX^xZ^xS^xT|\psi\rangle TXxZz∣ψ⟩XxZxSxT∣ψ⟩。为了消除s误差Gao等设计了一种基于Sx旋转贝尔测量的T门过程量子电路如图1所示。执行此电路后可以得到ra和rb然后 T X x ⊕ z S x Z z ∣ ψ ⟩ X x ⊕ r a Z x ⊕ z ⊕ r b T ∣ ψ ⟩ TX^{x\oplus z}S^xZ^z|\psi\rangleX^{x\oplus r_a}Z^{x\oplus z\oplus r_b}T|\psi\rangle TXx⊕zSxZz∣ψ⟩Xx⊕raZx⊕z⊕rbT∣ψ⟩。 假设Gi T作用于ek的第m位则密钥更新算法第i步的密钥值遵循式(5)。
量子逻辑门与量子减法电路
逻辑门电路是量子计算的基础。单量子比特门包括泡利操作X、Y、Z、Hadamard门H和相位门T、S。量子减法器的设计是为了从n两个二进制数a和b中获取减法信息。本文中我们使用Yuan设计的量子减法器其具体思想是:首先从最低位开始减法然后考虑是否需要从上面的位借用然后减去第二个位直到最后一位。为了重用常数输入使用复位操作将常数输入设置为0可以显著减少常数输入的数量。量子位输入减法电路如图所示。
基于同态加密的值比较协议(VCP_QHE)
本节介绍了一个基于量子同态加密的私有比较协议可以安全地保护双方之间的值比较。参与者包括Alice、Bob(两个信息所有者)和半信任的第三方。我们可以将半可信的第三方划分为计算中心和密钥分发中心其中计算中心只负责消息的计算而半可信的密钥中心负责密钥的分发。在我们的协议中我们使用水平偏振和垂直偏振来表示点信息水平偏振光子|1表示二进制消息1垂直偏振光子|0表示二进制消息0。Alice和Bob分别将加密后的信息发送到计算中心的量子电路U进行计算。量子电路U包含多个逻辑门它们属于集合S {X, Y, Z, H, S, T, CNOT}。协议流程图如图4所示具体步骤如下:
密钥中心随机生成一个长度为2n的密钥ek (x0,z0)其中x0,z0属于{0,1}n。然后通过BB84量子密钥分发协议将ek发送给Alice和Bob。Alice和Bob分别对他们的信息进行编码,Alice和Bob分别用ek对其编码的光子序列 ∣ ψ A ⟩ ∣ ψ A 1 ψ A 2 ψ A 3 ⋅ ⋅ ⋅ ψ A n ⟩ |\psi_A\rangle|\psi_A^1\psi_A^2\psi_A^3···\psi_A^n\rangle ∣ψA⟩∣ψA1ψA2ψA3⋅⋅⋅ψAn⟩, ∣ ψ B ⟩ ∣ ψ B 1 ψ B 2 ψ B 3 ⋅ ⋅ ⋅ ψ B n ⟩ |\psi_B\rangle|\psi_B^1\psi_B^2\psi_B^3···\psi_B^n\rangle ∣ψB⟩∣ψB1ψB2ψB3⋅⋅⋅ψBn⟩进行加密得到密文序列 ∣ ψ A ′ ⟩ X x 1 Z z 1 ∣ ψ A 1 ⟩ ⊗ X x 2 Z z 2 ∣ ψ A 2 ⟩ ⋅ ⋅ ⋅ ⊗ X x n Z z n ∣ ψ A n ⟩ |\psi_A\rangleX^{x_1}Z^{z_1}|\psi_A^1\rangle \otimes X^{x_2}Z^{z_2}|\psi_A^2\rangle ···\otimes X^{x_n}Z^{z_n}|\psi_A^n\rangle ∣ψA′⟩Xx1Zz1∣ψA1⟩⊗Xx2Zz2∣ψA2⟩⋅⋅⋅⊗XxnZzn∣ψAn⟩, ∣ ψ B ′ ⟩ X x 1 Z z 1 ∣ ψ B 1 ⟩ ⊗ X x 2 Z z 2 ∣ ψ B 2 ⟩ ⋅ ⋅ ⋅ ⊗ X x n Z z n ∣ ψ B n ⟩ |\psi_B\rangleX^{x_1}Z^{z_1}|\psi_B^1\rangle \otimes X^{x_2}Z^{z_2}|\psi_B^2\rangle ···\otimes X^{x_n}Z^{z_n}|\psi_B^n\rangle ∣ψB′⟩Xx1Zz1∣ψB1⟩⊗Xx2Zz2∣ψB2⟩⋅⋅⋅⊗XxnZzn∣ψBn⟩。这些密文序列是需要发到计算中心去执行而提前制备的。为了防止第三方窃听Alice和Bob准备了一些诱饵光子每个光子从 ∣ 10 ⟩ ∣ 11 ⟩ ∣ ⟩ ∣ − ⟩ |10\rangle|11\rangle |\rangle |-\rangle ∣10⟩∣11⟩∣⟩∣−⟩中选择。这些诱饵光子将被随机插入。完成这个操作之后新序列才会被发送到计算中心。计算中心接收到Alice和Bob发送的加密序列后Alice和Bob公布诱饵光子的插入位置和对应的测量基若插入的诱饵为|0或者|1则测量基为|0或者|1[1}};若插入的诱饵为|或者|-则测量基为|或者|-。计算中心根据所提供的信息进行排序。如果测量结果没有达到Alice和Bob设定的阈值协议将终止。否则计算中心丢弃诱饵光子获得原始加密序列 ∣ ψ A ′ ⟩ |\psi_A\rangle ∣ψA′⟩和 ∣ ψ B ′ ⟩ |\psi_B\rangle ∣ψB′⟩。为了使输入计算的位长一致计算中心在计算前在序列长度较短的加密序列前面加上I0 使两个序列的长度一致。计算中心构建量子减法电路取两个加密序列作为电路输入。同时密钥中心根据计算中心执行的量子逻辑门对原密钥周进行更新。假设我们将电路中的量子逻辑门每次执行设置为Gi总共执行K次那么最终的密文结果可以表示为 G k ( G k − 1 ( ⋅ ⋅ ⋅ ( G 2 ( G 1 ( ∣ ψ A ′ ⟩ , ∣ ψ B ′ ⟩ ) ) ) ⋅ ⋅ ⋅ ) ) G_k(G_{k-1}(···(G2(G1(|\psi_A\rangle,|\psi_B\rangle)))···)) Gk(Gk−1(⋅⋅⋅(G2(G1(∣ψA′⟩,∣ψB′⟩)))⋅⋅⋅))。解密密钥为 d k ( x k , z k ) dk (xk, zk) dk(xk,zk)稍后将解释密钥更新规则。最后计算中心将计算结果发送到密钥中心。密钥中心收到结果后使用解密密钥dk对其进行解密和测量最终得到Alice和Bob减去的信息计算结果。密钥中心向Alice和Bob宣布最终结果协议结束。
基于VCP_QHE的安全多方凸包协议
假设有多个用户Ui(i1)每个用户都有自己的点集seti想要求解点集的公共凸包Σseti。但是他们不希望对方知道自己的信息只能知道凸包上的信息。目前经典各方提出的安全协议是基于计算复杂度的这类协议的问题受到量子计算的威胁。为了更清晰地描述这一过程本文描述了双方安全凸包协议最后扩展为安全多方凸包协议。在两方协议中假设我们的参与者是Alice和Bob以及一个半可信的第三方。Alice有一个私有的点集合SA (p1, p2, p3… pm) Bob有一个私有点集SB (q1, q2,q3 …qn)。Alice和Bob需要在不泄露他们自己的点集信息的情况下计算m n个点的凸包。具体步骤如下:
步骤1 Alice和Bob分别计算y轴坐标中最小的点pA min∈SA和qB min∈SB(注意这里也可以选择y轴上的最大值或x轴上的最小最大值只要所需点是当前集合中的极值点即可)。 步骤2 Alice和Bob用VCP_QHE比较他们的极值点pA min和qB min的值大小。 如果pA min qB min那么qB min是m n集合的一个极值点和凸包上的一个点。通过qB min生成x轴方向的水平单位矢量→v0v1 (v0是矢量上的一个点v1 qB min)。 如果pA min pbmin那么pA min是m n集合的一个极值点也是凸包上的一个点。通过pA min生成x轴方向的水平单位矢量→v0v1 (v0是矢量上的一个点v1 pA min)。 若pA min qB min则pA min和qB min都是m n集合的极值点和凸包上的两个点。通过pA min和qB min生成向量→v0v1,v0 pA min, v1 qB min。 步骤3 Alice计算余弦值 c o s l ( l 1 , 2 … , m ) cos_l(l 1,2…, m) cosl(l1,2…,m)的 v i p l → \overrightarrow {v_ip_l} vipl 和 v i − 1 v i → \overrightarrow{v_{i-1}v_i} vi−1vi (i表示第i个凸包点l1,2,3…m)并选择其最大余弦值cos A。同时Bob计算余弦值cost(t 1,2…) n)的 v i q t → \overrightarrow {v_iq_t} viqt 和 v i − 1 v i → \overrightarrow {v_{i-1}v_i} vi−1vi 然后选择其最大余弦值cos B。 步骤4 Alice和Bob通过VCP_QHE比较了 c o s A ( c o s v i p m a x → , v i − 1 v i → ) cosA(cos\overrightarrow {v_ip_{max}},\overrightarrow {v_{i-1}v_i}) cosA(cosvipmax ,vi−1vi )和 c o s B ( c o s v i p m a x → , v i − 1 v i → ) cosB(cos\overrightarrow {v_ip_{max}},\overrightarrow {v_{i-1}v_i}) cosB(cosvipmax ,vi−1vi )的大小。p max和q max分别是Alice和Bob的点集中余弦值最大的点。比较结果将在三种情况下: 若cos Acos B则pmax为凸包点设p max→vi1。循环第3步和第4步直到vi1≡v1其中最后一个凸点是第一个凸点然后协议结束。若cos Acos B则q max为凸包点设q max→vi1。循环第3步和第4步直到vi1≡v1其中最后一个凸点是第一个凸点然后协议结束。如果cos Acos B。 步骤5 Alice和Bob分别计算凸壳点vi到p max, q max的距离disA, disB然后通过VCP_QHE比较这两个距离。如果没有的话。disB则设置p max→vi1否则设置q max→vi1。循环第3步和第4步直到vi1≡v1其中最后一个凸点是第一个凸点然后协议结束。
由于协议解的整个过程是根据前一个凸壳点得到下一个凸壳点我们可以知道两个凸壳点可以形成一个凸壳的边所以每得到两个凸壳点就会形成一个凸壳边所有边的集合就是一个完整的凸壳。由此得到的点集合代表了整个点集合的凸壳(即根据所得到的点的顺序由直线形成的闭环是凸壳)。 根据上述安全的双方凸包协议我们还可以将其扩展到安全的多方凸包计算。多用户Ui(i 1,2,3…n)协议的过程与双方凸包协议的过程大致相同。在步骤1中Ui分别得到自己的极值点然后使用VCP_QHE协议最终得到一个极值点Σ Si(所有点的集合); VCP_QHE还用于求解步骤3中的最大余弦值和步骤5中的最大距离。由于我们设计的VCP_QHE是由双方来解决的所以我们需要对多个用户的输入进行两两判断。最后经过循环判断每个用户Ui都可以得到所有点的凸包。
精确度分析
在本节中我们对VCP_QHE和安全多方凸包协议进行了用例分析。首先我们分析VCP_QHE协议假设Alice有数据IA 58, Bob有数据IB 30并将它们分别编码为二进制得到IA (1,1,1,0,1,0)和IB(1,1,1,1,0)。由于IA和IB的长度不一致我们在较小的I前面加上|0得到两者的长度一致的I’B(0,1,1,1,1,0)。通过计算中心(即IA−IB)的计算和密钥中心(即Ires (1,1,1,0,0) 0的解密我们可以知道IA IB。 通过VCP_QHE协议对cos A和cos B进行判断得出cos Acos B因此新的凸包点为q3。然后以q3为基点得到后续凸包点。流程为q1→q3→q2→p2→p1→q1如上图所示。 对于安全多方凸包的正确性分析我们假设Alice和Bob有点集SA {(0,1) (1,6) (2,4)} SB{(3,0)(4,8)(6,1)}如图所示。Alice和Bob计算了他们点集中的最小y轴坐标分别标记为p1和q1。通过对p1和q1应用VCP_QHE协议可以看出q1是整个集合中沿y轴方向的最小点也是第一个凸包点。根据q1分别得到Alice和Bob的最大余弦值如式6和式7所示。 在不失一般性的前提下假设有n个用户U1 U2…则每个用户包含各自的点信息。每个用户计算自己的点集Ei中的极值点通过VCP_QHE协议比较Ei得到第一个凸包点C1。Ui计算最小余弦值 c o s C 1 , C 1 P k i cosC_1,C_1P_k_i cosC1,C1Pki由点C1的水平向量 C 1 P k C_1P_k C1Pk组成。然后比较通过VCP_QHE得到最小余弦值 c o s C 1 , C 1 P k i cosC_1,C_1P_k_i cosC1,C1Pki和在整个点集中的 c o s C 1 , C 1 P k i cosC_1,C_1P_k_i cosC1,C1Pki。即可以得到第二凸包点C2。因此每个用户首先找到自己的点与凸包边Ci−2Ci−1形成的最小余弦值然后通过安全VCP_QHE协议比较余弦值。当获得下一个凸包点Ci值时第一个凸包点的信息相同。然后解出所有凸包点所有凸包点C1C2…Cm。整个解决过程是完全正确的并且安全性也得益于同态加密的保证。
安全性分析
由于我们是第一个使用量子同态加密来解决凸包问题的因此没有其他协议可以与我们比较。我们只能从以下几个角度来分析所提议协议的安全性。
数据与密钥安全
由于初始加密密钥ek是由密钥中心使用安全密钥生成算法QOTP随机生成的因此可以保证生成的初始密钥的安全性。在密钥更新算法中当密钥中心与计算中心交互时计算中心只提供每一步执行的量子逻辑门因此(x,z)中间密钥和最终dk在密钥更新过程中是安全的。在数据安全方面由于初始密钥和解密密钥由密钥中心所有因此密钥中心窃听数据的可能性很大。但是在我们的协议中这是不可行的因为用户通过密钥中心分发的初始密钥ek对数据进行加密然后通过安全的量子通道直接传输到计算中心计算中心只有在数据输入通过门电路完成后才会将得到的数据发送到密钥中心进行解密。因此密钥中心只能获得操作后的数据信息而无法获得原始的明文信息。所以数据是安全的。
外部攻击
外部攻击者可以在密钥分发、密文传输和同态评估过程中进行攻击。在密钥分发过程中使用BB84协议分发密钥因此外部攻击者无法获取密钥。在密文传输过程中外部攻击者可能会攻击量子信道以获取数据。但是在数据传输之前用户会在加密的光子序列中随机添加诱饵光子。因此即使攻击者拦截了密文信息也无法知道原始信息是什么。在同态评估过程中计算与关键中心之间的通信是通过量子信道进行的并且在信息中插入诱饵光子以防止被窃听因此也是安全的。
内部攻击
在这种情况下如果N个不诚实的参与者想要窃取其他人的信息我们的协议也是完全安全的。由于半可信的密钥中心和计算中心必须忠实于实现过程不能与其他参与者或第三方合作因此它们只能从自己获得的信息中推断出其他人的信息。我们在上节中描述了用户数据的安全性。因此密钥中心和计算中心无法获取其他用户的真实信息。另一方面由于关键中心公布的最终结果没有公布具体的差异用户无法通过差异数据获取其他各方的信息也无法与其他参与者合作获取用户的真实数据。所以我们的协议可以抵抗参与者的攻击。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85655.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!