基于秘密分享协议的安全高效数学除法计算的优化方法

文档序号:134921 发布日期:2021-10-22 浏览:23次 >En<

阅读说明:本技术 基于秘密分享协议的安全高效数学除法计算的优化方法 (Safe and efficient mathematical division calculation optimization method based on secret sharing protocol ) 是由 韩伟力 吴豪奇 姜子丰 汪家璇 于 2021-06-24 设计创作,主要内容包括:本发明属于网络空间安全技术领域,具体为一种基于秘密分享协议的安全高效数学除法计算的优化方法。本发明基本步骤为:依据BGW协议对计算方的输入数据以秘密分享的方式进行加密;使用随机数盲化的方法,对明文常数除法、密态除法计算进行近似,定义更为高效并且更加精准的计算协议。本发明的优点在于:优化设计的计算协议能够以更高的准确度计算除法,同时能够减少所需通信回合数,获得较高的效率提升;通过随机数盲化的方式,能够以信息论安全的级别保护计算数据的隐私安全。(The invention belongs to the technical field of network space security, and particularly relates to a safe and efficient mathematical division calculation optimization method based on a secret sharing protocol. The method comprises the following basic steps: encrypting input data of a calculator in a secret sharing mode according to a BGW protocol; a random number blinding method is used for approximating the calculation of a plaintext constant division method and a secret state division method, and a more efficient and more accurate calculation protocol is defined. The invention has the advantages that: the optimally designed calculation protocol can calculate division with higher accuracy, and can reduce the number of required communication rounds and obtain higher efficiency improvement; by means of random number blinding, the privacy security of the computing data can be protected at the level of information theory security.)

基于秘密分享协议的安全高效数学除法计算的优化方法

技术领域

本发明属于网络空间安全技术领域,具体涉及一种基于秘密分享协议的安全高效数学除法计算的优化方法。

背景技术

安全多方计算(MPC:Secure Multi-Party Computation)[1]是密码学的一个子领域,最初起源于图灵奖获得者姚期智教授在1982年提出的百万富翁问题,即两个百万富翁都想比较到底谁更富有,但是都不想让别人知道自己有多少财产,那么如何在没有可信的第三方的情况下比较出他们谁更富有就成了一个问题。而安全多方计算正是为这类问题提供了解决方法,它旨在解决一组互不信任的参与方之间保护隐私的协同计算问题。简单来说,其允许多个数据所有者在互不信任的情况下进行协同计算,输出计算结果,并保证任何一方均无法得到除应得的计算结果之外的其他任何信息。因此,安全多方计算技术可以获取数据使用价值,却不泄露原始数据内容。

BGW协议[3]是在Shamir协议[2]的基础上拓展的协议,其在Shamir的t阈值秘密分享之上,进一步提供了有限域中的加法、乘法等线性运算的方案。Shamir秘密共享的核心思想在于构造一个随机的t阶多项式f(x)=a0+a1x+a2x2+...+atxt,其中a0为秘密数据,基于上述多项式构造n个点{i,f(i)|i=1,...,n},即为此秘密的分享,只有持有多于t个的分享才可以解出多项式并恢复秘密。由多项式的性质可知,两个秘密之间的加法,秘密和常数的乘法,都可以在本地直接进行运算:假设秘密s1,s2分别由t阶多项式f(x)和g(x)进行秘密分享,那么各参与方只需要直接将各自持有的分享[s1]i和[s2]i相加,就可以得到s1+s2的秘密分享;相似地,要计算秘密s1与明文常数a的乘法,只需在将[s1]i与a相乘,结果即为a*s1的秘密分享。

两个秘密分享值相乘需要多方之间的通信才能得到计算结果。BGW协议中假设要计算s1*s2的秘密分享,首先所有参与方各自计算h(i)=f(i)*g(i)。可以知道,{i,h(i)|i=1,...,n}为多项式h(x)=f(x)*g(x)上的点,其中h(x)为2t阶的多项式且h(0)=s1*s2。由于Shamir秘密共享的要求是给定任意t+1个秘密分享都能重新计算出多项式的系数并重构被分享的秘密,显然2t阶的多项式不满足这一要求,因此接下来还需要对多项式h(x)进行降阶操作得到t阶多项式h′(x),并保证h′(x)常数项仍为s1*s2

假设向量S=(h(i),...,h(n)),R=(h′(i),...,h′(n)),要将S转换为R还需要执行一系列操作。令矩阵B为n×n维的范德蒙矩阵,T是一个n×n维的对角矩阵,其中对于i=j≤t,T(i,j)=1,其余的T(i,j)=0。基于以上条件,可以推算出R=BTB-1S,由此就完成了降阶操作。

发明内容

本发明的目的在于提供基于BGW秘密分享协议的安全高效的除法计算的优化方法。

本发明提供的基于BGW秘密分享协议的安全高效的除法计算的优化方法,能够在除数较大的情况下,以高精度计算得到除法结果。给定密文输入[x]作为被除数,明文b作为除数,输出密文[y],计算过程可以公式化地表示为[y]←[x]/b;

在BGW秘密分享协议中,我们考虑以定点数统一编码计算数据,使用k表示数据的比特位数,f表示小数点后的精度,m表示输入x的最高有效位;同时以小数点后固定f比特位数表示精度2-f

通常的常数除法会先计算常数b的倒数再乘以2f,即2f/b,再利用BGW协议的乘法方案计算出密文与常数倒数的乘法,最终就可以得到[x]/b的结果。然而当除数b>2f时,2f/b的结果会输出0,因此在本发明的明文常数除法协议优化算法中,将会根据除数b的大小,将明文除法分为两种情况,具体步骤如下:

(1)针对明文除数b,如果b≤2f,直接计算b在域中的倒数inverse=2f/b,并令truncbits=f。由于在进行乘法运算后,小数点后的位数会发生越界超过f,因此还需对计算结果进行截断,这里就用truncbits表示之后需要截断的位数;

(2)如果b≥2f,则需要将其表示成b=c*2l,其中c≤2f。直接对明文b计算以2为底的对数得到l=log2 b,并进一步计算c=b/2l。此时令inverse=2f/c,以及truncbits=f+l;

(3)计算[y]=[x]*inverse/truncbits,即可以得到最后结果[y]=[x]/b。

本发明中,进一步利用随机数盲化隐私数据,实现密态除法(即用于解决密文与密文间的除法运算),仅需3个通信回合数即可完成计算,带来较大的效率提升。具体地,给定密文输入[x]作为被除数,密文[y]作为除数,输出密文除法结果[z],其计算过程可以公式化地表示为[z]←[x]/[y],算法的主要思想为,利用随机数r盲化密文[y]得到[y]*[r],将其还原为明文后,计算结果[z]=[x]/(y*r)*r;算法具体步骤如下:

(1)各参与方在本地生成随机数r的秘密共享[r],其中[r]i∈Fp

(2)根据BGW协议的乘法计算方案,计算密文乘法[C]=[y]*[r],各方互相发送所持有的[C],还原出明文C=y*r,并对C的后2f位进行截断:C′=C/22f

(3)利用优化协议一中的明文常数除法协议,计算[z′]=[x]/C′,则z′=x/(y*r);

(4)由于z=x/(y*r)*r,因此需要令上一步的计算结果[z′]再进行一次与[r]的密文乘法,即[z]=[z′]*[r];

(5)同样地,为消除乘法导致的小数位数越界的影响,还需要截断[z]的后f位。这样,便得到了密态除法的结果[z]。

上述的基于随机数盲化隐私数据优化密态除法的方法,随机数的生成并不依赖于输入,因此可以在线下阶段预计算,减少在线阶段的开销,提高计算效率。参见下表1。

表1

协议 通信回合数 通信量大小
常数除法(Constant Division) 1 1
密态除法(SecretDivision) 3 3

本发明中,计算协议输入的密文即为秘密分享。持有私密数据的参与方将在执行计算前,基于Shamir秘密共享协议将私密数据拆分成n份发送给其余参与方。

本发明中,定点数都会被映射到域中进行运算。映射构造过程如下:假设为有理数域Q<k,f>中的有理数,其中k表示的比特位数,f为小数点后的精度。需要将映射到整数域,令则可以得到Q<k,f>→Z<k>的映射;接着对进行运算,使得则完成了Z<k>→Fp的映射,其中p为域Fp的大小且p>2k。上述协议中的所有运算都是在域Fp上完成的。

本发明中,采用的安全模型的是半诚实敌手模型,即假设各敌手不会偏离规定的协议,但会尝试收集和推导其收到的中间信息。

本发明中,若t<n/2,则协议可以保证信息论安全,此结论在BGW协议的证明中可以得到。

本发明提供的基于BGW秘密分享协议的明文除法和密态除法的优化方法,能使使用者高效地计算出计算结果:

(1)明文除法计算协议在基本的明文除法方法上进行扩展,考虑到了当除数较大导致计算结果不准确的情况,能在除数较大的情况下仍以高精度计算得到除法结果;

(2)密态除法协议使用随机数盲化隐私数据,利用了随机数可以在线下阶段预计算生成的特点,减少了各参与方在线阶段的计算开销,提高计算效率。

附图说明

图1为参与方共同进行常数除法和密态除法计算的流程图示。

具体实施方式

下面结合附图详细描述本发明。

(1)首先各参与方将自己手中所持有的私密数据通过上文提到的秘密分享的方法,交互分享给其余参与方,这样每个参与方都将会持有私密数据的秘密分享。后续将在此基础上执行计算,以达到保护数据隐私的目的。此外,在计算过程中,我们考虑以定点数统一编码计算数据,使用k表示数据的比特位数,f表示小数固定的精度。

(2)各参与方执行明文常数除法时,执行以下步骤:

输入秘密分享[x]作为被除数,明文b作为除数,如果b≤2f,直接计算b在域中的倒数inverse=2f/b,并定义truncbits=f,truncbits为[x]与b的倒数相乘后需要截断的比特位数。

(2.1)如果b≥2f,则在此情况下不能直接求取b在域中的倒数,需要将其表示成b=c*2l,其中c≤2f。接着直接对明文b计算以2为底的对数得到l=log2 b,进一步计算c=b/2l。此时定义inverse=2f/c,truncbits=f+l。

(2.2)利用上述计算得到的中间结果,计算[x]*inverse,并调用协议Div2mP截断truncbits个比特,得到最终结果[y]=[x]/b。

(3)各参与方执行密态除法时,执行以下步骤:

(3.1)在离线阶段,各参与方首先共同生成随机数r的秘密分享[r]i∈Fp,用于在后续计算中盲化私密数据。

(3.2)由BGW协议提供的乘法方案,计算密文乘法[C]=[y]*[r],并对结果解密出明文数据C。接着对明文C截断2f个比特,得到C′=C/22f

(3.3)再利用本发明中提供的明文除法协议,计算得出[z′]=ConstantDiv([x],C′)。

(3.4)由z=x/(y*r)*r,可以最后计算出最终结果[z]=[z′]*[r]。同样地,由于在进行乘法操作后,精度会翻倍,所以仍需调用Div2mP协议对[z′]*[r]进行截断,即[z]=Div2mP([z′]*[r],k+f,f)。

通过本发明提出的数学计算协议的优化方法,各参与方可以在不暴露各自隐私数据的情况下,安全高效地协同运算出常数除法、密态除法的计算结果。

算法伪代码见附录1、2。

附录1:

安全常数除法协议

附录2:

安全密态除法协议

参考文献

[1]A.C.Yao,"Protocols for secure computations,"23rd Annual Symposiumon Foundations of Computer Science(sfcs 1982),1982,pp.160-164.

[2]Shamir,A.(1979).How to share a secret.Communications of the ACM,22(11),612-613.

[3]Ben-Or,M.,Goldwasser,S.,&Wigderson,A.(2019).Completeness theoremsfor non-cryptographic fault-tolerant distributed computation.In ProvidingSound Foundations for Cryptography:On the Work of Shafi Goldwasser and SilvioMicali(pp.351-371).。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于秘密分享协议的安全高效数学对数计算的优化方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类