一种基于可信第三方的隐私数据两方安全相等测试方法

文档序号:7994 发布日期:2021-09-17 浏览:18次 >En<

阅读说明:本技术 一种基于可信第三方的隐私数据两方安全相等测试方法 (Trusted third party-based private data two-party security equality testing method ) 是由 张晋升 仇钧 姚利虎 沈稚源 韩静 于 2021-06-10 设计创作,主要内容包括:本发明涉及一种基于可信第三方的隐私数据两方安全相等测试方法,包括步骤:利用可信第三方,随机选择两个随机数作为计算双方的输入的掩码,并将随机生成的两个随机数分别发送至计算双方;在可信第三方随机选择两个随机数的同时,分别为计算双方生成用以进行相等测试运算的运算密钥;计算双方根据自身输入,生成加有掩码的输入,并发送给对方;计算双方根据加有掩码的输入以及自身的运算密钥,进行相等测试计算,获取自身相应的计算结果。与现有技术相比,本发明具有提高计算效率,降低通信量等优点。(The invention relates to a trusted third party-based private data two-party security equality testing method, which comprises the following steps: randomly selecting two random numbers as masks input by both computing parties by using a trusted third party, and respectively sending the two random numbers generated randomly to both computing parties; when a trusted third party randomly selects two random numbers, operation keys for performing equal test operation are respectively generated for two calculation parties; the two calculation parties generate an input added with a mask according to the input of the two calculation parties and send the input to the other calculation party; and the two calculation parties perform equal test calculation according to the input added with the mask and the own operation key to obtain the own corresponding calculation result. Compared with the prior art, the method has the advantages of improving the calculation efficiency, reducing the communication traffic and the like.)

一种基于可信第三方的隐私数据两方安全相等测试方法

技术领域

本发明涉及计算机

技术领域

,尤其是涉及一种基于可信第三方的隐私数据两方安全相等测试方法。

背景技术

在大数据网络化时代,敏感数据的隐私保护问题成为了一个突出的亟需解决的问题,尤其是在近年来国内外多种隐私保护相关法律出台的情况下,涉及敏感数据的重大的项目由于缺乏对关键数据的隐私保护而搁浅。为了数据能够在不暴露的情况下实现流动(可用不可见),隐私计算作为一种主要的工具和手段在区块链、联邦学习等一系列需要隐私保护的环境中扮演了重要的角色。

在常见的隐私计算中,基于可信第三方的两方隐私保护计算的算子如两方安全四则运算、比较运算、EQT运算(测试两个整数是否相等)等成为了构建隐私计算的基础。然而,由于现有实现方案的计算开销和网络开销等原因,导致了现有方案在应对大规模数据运算的时候无法很好地提高计算效率。

现有技术中能够实现隐私保护的EQT技术的方案之一是利用秘密分享的方法通过安全的减法、比特位分解算法和EQZ(测试当前整数是否为0)算法来实现。为了更好的理解整个方案的过程,首先对非隐私保护版本的EQT步骤进行介绍:

1)对于输入的两个数进行减法计算,即z=x-y;

2)将z分解为比特形式,即z=z1z2…zl,其中假设z是l比特长的整数;

3)将z进行EQZ测试,即将比特分解后z的所有比特位进行或运算,如果结果是0,则表示x和y是相等的。否则,则两者不相等。

上述的EQT的隐私保护方法是从秘密分享出发来构造整个过程,秘密分享的实质是对于每一个输入x,将其分解为两个随机数分发给两方,即x=[x]0+[x]1,其中,[x]0和[x]1分别代表P0和P1所得到的关于x的秘密分片,P0和P1分别代表参与隐私计算的两方。那么,上述的减法就是在秘密分享的基础上进行的减法计算,简单来讲,就是双方将各自相应的x和y的秘密分片进行相减。秘密分享的乘法则需要借助可信第三方来生成随机的乘法对并且需要双方通过一次交互来完成。

随后,对z的比特分解和EQZ测试是该方法的效率瓶颈。其中,对z的比特分解可以理解为对z的分片的比特分解,分解完以后要确保分解以后的比特位加法对应z的原始比特分解后的加法结果。另外,分解以后对比特位的秘密分享变成了也就是说比特位的异或代替了加法(二进制加法和异或操作时等价的),同时,比特位的与于是代替了乘法。

最后,就是EQZ测试,也就是在比特位的基础上进行隐私保护的或运算,或运算可以利用两次异或操作和一次与操作来代替,因此,这里涉及到隐私保护的或运算需要进行l次。也就是说,这里P0和P1至少要进行l轮交互才能完成连续或操作。即比特分解的复杂性和EQZ操作导致P0和P1的通信轮数。假设l=64,也就是一个通用的64位整数,那么进行一次相等测试需要进行至少64轮通信。然而,随着互联网服务需求的增长,目前的隐私保护正应对着处理和分析隐私数据的挑战,特别是在需要近乎实时处理这些数据的情况下。按照上述比较方法,其计算量较大、耗时较长,需要占用大量的网络空间,无法帮助处理庞大的数据集并实时提供响应,这是现在互联网时代无法接受的;更何况大数据时代这种通用算子的应用比例较高,此方法带来的网络开销也无法被接受。

现有技术方案之二是利用混淆电路的方式来实现对逻辑电路的编码来得到一个加密的混淆电路。对于混淆电路,其主要步骤和秘密分享基本类似,但由于不是对原来的明文电路进行的操作,因此,对于每一个比特位,编码方需要用128比特的随机数来编码以达到加密的目的。同时,由于在计算混淆电路结果之间需要混淆电路计算方得到自己相应输入对应的随机编码,因此,这里涉及到不经意传输部分的开销,假设通过可信第三方,不经意传输部分的开销可以得到减小。

总体上讲,混淆电路方案中,计算双方可以通过一轮通信计算出最终结果。网络开销可以分为不经意传输的开销和混淆电路的开销。其中,不经意传输的开销至少为128l比特,混淆电路的开销至少为256l比特。然而对于64位的整数,混淆电路方案需要至少传输3KB的数据来完成一次比较。对于大规模的比较运算,其网络开销成本过大。因此,对大数据运算,网络传输量将成为重要的性能瓶颈。

发明内容

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于可信第三方的隐私数据两方安全相等测试方法。

本发明的目的可以通过以下技术方案来实现:

一种基于可信第三方的隐私数据两方安全相等测试方法,该方法包括如下步骤:

利用可信第三方,随机选择两个随机数作为计算双方的输入的掩码,并将随机生成的两个随机数分别发送至计算双方;

在可信第三方随机选择两个随机数的同时,分别为计算双方生成用以进行相等测试运算的运算密钥;

计算双方根据自身输入,生成加有掩码的输入,并发送给对方;

计算双方根据加有掩码的输入以及自身的运算密钥,进行相等测试计算,获取自身相应的计算结果。

进一步地,所述可信第三方根据算法KeyGen计算双方生成用以进行相等测试运算的运算密钥。

进一步地,在所述可信第三方选择两个随机数的过程中,采用AES的CTR/ECB加密模式加速随机数性能。

进一步地,所述可信第三方通过Diffie-Hellman的密钥交换协议传输AES加密密钥。

本发明提供的基于可信第三方的隐私数据两方安全相等测试方法,相较于现有技术至少包括如下有益效果:

1)该方法从通信轮数和通信量上对现有的方案进行提升,相等比较所需要耗费的带宽和计算量更少,从而达到最小化网络通信轮数的同时能够进一步减小网络通信量;相较于混淆电路的至少128l+256l来讲,通信量减少了近50%;与秘密分享方式比较,通信轮数减少了90%以上。

2)本发明构造了一个特殊的数据结构和方法,此数据结构是基于树形数据结构来构造,并且内部的运算只涉及简单的加减和异或操作;另外,随机数的生成采用了特殊指令集的方式来加快速度。可进一步提高计算效率,降低通信量。

附图说明

图1为实施例中基于可信第三方的隐私数据两方安全相等测试方法的流程示意图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

实施例

为便于本领域技术人员更好地理解本申请,下面先对本实施例涉及的技术参数用语进行简单介绍。

EQT:测试两个整数是否相等,作为函数形式通常写作EQT(x,y)。

EQZ:测试当前整数是否为0,作为函数形式通常写作EQZ(x)。

P0和P1:代表参与隐私计算的两方。

随机数发生器,输入是长度为in比特的种子s,输出是out比特的随机数。

将长度是in比特的输入x转换为长度是out比特的输出。

λ:表示系统的安全参数。

表示两个比特串或者两个整数的异或运算。

本发明涉及一种基于可信第三方的隐私数据两方安全相等测试方法,该方法的完整技术方案的流程如图1所示,本实施例用b∈{0,1}表示双方的其中一方(相应的,1-b就表示另一方),本发明方法的具体步骤如下:

步骤一、通过数据采集设备获取目标用户的初始数据,并将初始数据拆分为随机共享的第一分组数据和第二分组数据,两个分组数据分别代表计算双方P0和P1

可信第三方随机选择两个长度是λ比特的随机数r0和r1作为P0和P1输入的掩码,然后,将这两个数分别发送给双方(注意:Pb不能获得随机数r1-b)。

步骤二、与上一步骤同时,可信第三方需要根据算法KeyGen为两方生成计算EQT的密钥k0和k1,这个密钥将被两方用来计算EQT(算法KeyGen将随后介绍)。

步骤三、双方根据自己的输入生成加了掩码的输入并发送给对方。

步骤四、双方根据加掩码的输入和自己的运算密钥运行EQT计算自己相应的结果z0和z1,其中,z=z0+z1=(x==y)(算法EQT将随后介绍)。

算法KeyGen的主要内容为:可信第三方计算k0,k1=KeyGen(α,1),其中α=r0-r1表示两个掩码之差。算法的具体步骤为:

1:令α=α0α1…αl-1为α的比特表示,其中α0代表α的最高比特位;

2:令s,t和cw为三个空的列表;

3:生成两个长为λ比特的随机数加入列表s;

4:将0和1两个数分别加入列表t;

5:令i从0开始到l-1结束重复6-12步;

6:令其中分别表示长度是λ比特的随机数,也分别表示长度是λ比特的随机数,分别表示随机比特;

7:计算其中,scw是长度为λ比特的比特串;

8:计算其中,表示两个比特;

9:将scw,vcw,加入列表cw;

10:令t0=t[-2]和t1=t[-1],即t0,t1分别代表到目前为止,列表t的倒数第二个和倒数第一个比特的值;

11:将加入列表s;

12:将加入列表t;

13:将加入列表cw,其中,s[-2],s[-1]分别代表到目前为止,列表s的倒数第二个和倒数第一个比特串的值;

14:return k0=(s[0],cw)和k1=(s[1],cw),其中,s[0],s[1]分别表示列表s的第一个和第二个比特串的值,k0,k1分别表示将要发送给P0和P1的密钥。

算法KeyGen的大体思想为:α的每一个比特位对应的是for循环的每一层。对于第i层,scw对应的是由上层种子1-αi-1生成的两个子节点对应的随机数;对应的是对于控制比特队列t的补充项。在第i层,会生成两个加入s的项和两个加入t的项:

a.加入s的两项是两个随机数,他们是形如这样的两项,这两项的异或结果是本层所生成的4个随机数的异或;

b.加入t的两项是两个随机比特,他们是形如这样的两项,这两项的异或结果是1。

后面结合EQT算法,将会清晰地了解上述内容的意义:

1:令w=w0w1…wl-1为w的比特表示,其中w0代表w的最高位;

2:令s和t为两个空的列表;

3:解析kb=s[b],cw,将kb的第一项s[b]加入列表s;

4:将b分别加入列表t;

5:令i从0开始到l-1结束重复6-9步;

6:令scw=cw[3i],其中,scw,分别表示列表cw的第3i到3i+2项的值;

7:令其中,s[-1]代表到目前为止,列表s的倒数第一个比特串的值,t[-1]代表到目前为止,列表t的倒数第一个比特的值,s0,s1分别表示长度为λ比特的随机比特串,t0,t1分别表示一个随机比特。如果t[-1]是0,则否则,这里的异或运算表示对输入的两边进行按比特位的异或操作;

8:将加入列表s;

9:将加入列表t;

10:return其中,s[-1]代表到目前为止,列表s的倒数第一个比特串的值,t[-1]代表到目前为止,列表t的倒数第一个比特的值,cw[-1]代表到目前为止,列表cw的倒数第一项的值。

算法EQT的大体思想为:对于每一层,如果当前的输入wi=αi,那么,计算双方在EQT的第7行产生的两个随机数种子s0,s1就分别等于KeyGen中加入当前层s列表的两个值,两个控制比特t0,t1同样也分别等于KeyGen中加入当前层t列表的两个值。否则,计算双方在EQT的第7行产生的两个随机数种子s0=s1,两个控制比特t0=t1。这样,最后一行的输出结果当所有层的wi=αi时,y0+y1=1,否则,y0+y1=0。

本实施例在具体实施过程中考虑到以下各种因素:

1)安全参数设置为λ=128来满足中等的安全性能需求。不同于传统的随机数发生器的生成方法,这里的的产生过程是利用AES的CTR/ECB加密模式对种子s加密来生成随机数以提高性能的(AES是对称块加密的通用实现方式之一,CTR和ECB则是其中实现效率较快的两种加密模式)。其中,AES的实现还可以进一步利用硬件的AES-NI指令集来实现以进一步提升实现效率。AES的CTR/ECB加密模式为现有技术常用手段,在此不过多赘述。

2)计算双方在协议开始之前需要商定AES的加密密钥,这一步可以通过Diffie-Hellman的安全密钥交换协议来传输AES加密密钥,具体实施中,双方需要先选定一个计算数域Fp,然后共同商议这个数域上的一个生成元g,随后根据这个生成元由双方各自选择的秘密随机数a和b进行运算分别得到ga和gb并发送给对方,最后双方计算gab并以此作为密钥加密随机生成的AES密钥来完成密钥交换。

3)对于一个完整的EQT的实例,由于随机数r0,r1是在KeyGen阶段嵌入到算法里面的,所以整个KeyGen+EQT是不能复用的,这里主要是处于安全性的考虑。

相较于混淆电路的至少128l+256l来讲,通信量减少了近50%,但是通信轮数保持和混淆电路一样。和秘密分享的方式来比较,通信轮数减少了90%以上。综上所述,本发明方法的技术方案的效果确实非常明显而且相较于现有方案来说也能起到很好的实际效果。另外,考虑到在传输过程中利用排序数组的差值压缩,可以进一步降低通信量。

本发明的技术关键点在于构造一个特殊的数据结构和方法,此数据结构是基于树形数据结构来构造,并且内部的运算只涉及简单的加减和异或操作。另外,随机数的生成采用了特殊指令集的方式来加快速度。因此,这种EQT的生成技术是目前来讲效果最好的方法。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的工作人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种页面权限控制方法及相关装置

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类