摘要 |
---|
安全多方计算几何(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方案由四种算法组成(密钥生成,加密算法,评估算法,解密算法)。
逻辑门电路是量子计算的基础。单量子比特门包括泡利操作X、Y、Z、Hadamard门H和相位门T、S。量子减法器的设计是为了从n两个二进制数a和b中获取减法信息。本文中我们使用Yuan设计的量子减法器,其具体思想是:首先从最低位开始减法,然后考虑是否需要从上面的位借用,然后减去第二个位直到最后一位。为了重用常数输入,使用复位操作将常数输入设置为0,可以显著减少常数输入的数量。量子位输入减法电路如图所示。
本节介绍了一个基于量子同态加密的私有比较协议,可以安全地保护双方之间的值比较。参与者包括Alice、Bob(两个信息所有者)和半信任的第三方。我们可以将半可信的第三方划分为计算中心和密钥分发中心,其中计算中心只负责消息的计算,而半可信的密钥中心负责密钥的分发。在我们的协议中,我们使用水平偏振和垂直偏振来表示点信息,水平偏振光子|1>表示二进制消息1,垂直偏振光子|0>表示二进制消息0。Alice和Bob分别将加密后的信息发送到计算中心的量子电路U进行计算。量子电路U包含多个逻辑门,它们属于集合S = {X, Y, Z, H, S, T, CNOT}。协议流程图如图4所示,具体步骤如下:
假设有多个用户Ui(i>1),每个用户都有自己的点集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
步骤3 Alice计算余弦值 c o s l ( l = 1 , 2 , … , m ) cos_l(l = 1,2,…, m) cosl(l=1,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个凸包点,l=1,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(cos<vipmax,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(cos<vipmax,vi−1vi>)的大小。p max和q max分别是Alice和Bob的点集中余弦值最大的点。比较结果将在三种情况下:
若cos A>cos B,则pmax为凸包点,设p max→vi+1。循环第3步和第4步,直到vi+1≡v1,其中最后一个凸点是第一个凸点,然后协议结束。若cos A
由于协议解的整个过程是根据前一个凸壳点得到下一个凸壳点,我们可以知道两个凸壳点可以形成一个凸壳的边,所以每得到两个凸壳点就会形成一个凸壳边,所有边的集合就是一个完整的凸壳。由此得到的点集合代表了整个点集合的凸壳(即,根据所得到的点的顺序由直线形成的闭环是凸壳)。
根据上述安全的双方凸包协议,我们还可以将其扩展到安全的多方凸包计算。多用户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 A
在不失一般性的前提下,假设有n个用户U1 U2…,则每个用户包含各自的点信息。每个用户计算自己的点集Ei中的极值点,通过VCP_QHE协议比较Ei,得到第一个凸包点C1。Ui计算最小余弦值 c o s < C 1 , C 1 P k > i cos
由于我们是第一个使用量子同态加密来解决凸包问题的,因此没有其他协议可以与我们比较。我们只能从以下几个角度来分析所提议协议的安全性。
由于初始加密密钥ek是由密钥中心使用安全密钥生成算法QOTP随机生成的,因此可以保证生成的初始密钥的安全性。在密钥更新算法中,当密钥中心与计算中心交互时,计算中心只提供每一步执行的量子逻辑门,因此(x,z)中间密钥和最终dk在密钥更新过程中是安全的。在数据安全方面,由于初始密钥和解密密钥由密钥中心所有,因此密钥中心窃听数据的可能性很大。但是,在我们的协议中,这是不可行的,因为用户通过密钥中心分发的初始密钥ek对数据进行加密,然后通过安全的量子通道直接传输到计算中心,计算中心只有在数据输入通过门电路完成后才会将得到的数据发送到密钥中心进行解密。因此,密钥中心只能获得操作后的数据信息,而无法获得原始的明文信息。所以数据是安全的。
外部攻击者可以在密钥分发、密文传输和同态评估过程中进行攻击。在密钥分发过程中,使用BB84协议分发密钥,因此外部攻击者无法获取密钥。在密文传输过程中,外部攻击者可能会攻击量子信道以获取数据。但是,在数据传输之前,用户会在加密的光子序列中随机添加诱饵光子。因此,即使攻击者拦截了密文信息,也无法知道原始信息是什么。在同态评估过程中,计算与关键中心之间的通信是通过量子信道进行的,并且在信息中插入诱饵光子以防止被窃听,因此也是安全的。
在这种情况下,如果N个不诚实的参与者想要窃取其他人的信息,我们的协议也是完全安全的。由于半可信的密钥中心和计算中心必须忠实于实现过程,不能与其他参与者或第三方合作,因此它们只能从自己获得的信息中推断出其他人的信息。我们在上节中描述了用户数据的安全性。因此,密钥中心和计算中心无法获取其他用户的真实信息。另一方面,由于关键中心公布的最终结果没有公布具体的差异,用户无法通过差异数据获取其他各方的信息,也无法与其他参与者合作获取用户的真实数据。所以我们的协议可以抵抗参与者的攻击。