一种秘密共享下保证Truncation正确的方法技术

技术编号:34443690 阅读:25 留言:0更新日期:2022-08-06 16:36
本发明专利技术公开了一种秘密共享下保证Truncation正确的方法,S1:对原始数据进行秘密共享运算,秘密共享方至少包括2个;S2:一个秘密共享方本地产生至少1个随机数,并采用随机数对其秘密共享运算后拥有的数据进行分片,将分片数据发送给其他秘密共享方;在产生随机数时,保持每一随机数的最高位和次高位相同;S3:其他秘密共享方接受到分片数据后,将收到的分片数据与其原秘密共享运算后拥有的数据进行合并;S4:各秘密共享方分别进行本地Truncation。本发明专利技术可以保证Truncation错误的情况不发生;这样就能保证本地Truncation正确;是一种高效的Truncation方法。是一种高效的Truncation方法。

【技术实现步骤摘要】
一种秘密共享下保证Truncation正确的方法


[0001]本专利技术涉及计算机软件领域,尤其涉及的是一种秘密共享下保证Truncation正确的方法。

技术介绍

[0002]在安全多方计算(Multi

Party Computation,简称MPC)主要解决多个参与方在不互相透露各自输入的前提下,如何成功完成计算的问题。
[0003]MPC目前的应用前景越来越广泛,企业、政府、学术机构和个人间的协同业务需求日趋强烈。一个典型的场景是,人工智能迅猛发展的历程中,数据隐私的需求愈加强烈。AI训练所需的数据,在很多商业场景里由于隐私合规性的原因无法获得,导致无法完成训练或者训练效果很差。隐私AI(Privacy AI)正试图利用MPC来解决AI计算中的隐私保护问题,即如何在AI训练涉及的数据方不直接暴露明文数据的前提下,完成协同训练和协同预测。
[0004]密码分享是实现MPC的一种方式。在秘密分析方案下,原始数据会以分片的形式存在于各方,从而使得各方无法轻易还原出原始数据。例如x=x1+x2+x3;原始数据x就分成了x1,x2,x3分别在三台服务器,这样,任何一台服务器都无法还原出原始数据x。
[0005]在秘密分享下,为了实现算数运算,则需要重新定义加法和乘法,从而使得计算结果能和直接用原始数据进行计算的结果相同。其中,加法可以和日常的加法定义成相同,但是乘法则和日常的乘法迥然不同,需要考虑很多因素,才能保证其正确性。Truncation就是实现秘密分享下乘法的一个关键步骤,Truncation即截去。
[0006]因此,现有技术存在缺陷,需要改进。

技术实现思路

[0007]本专利技术所要解决的技术问题是:提供一种相对简单,保证本地Truncation正确的秘密共享下保证Truncation正确的方法。
[0008]本专利技术的技术方案如下:一种秘密共享下保证Truncation正确的方法,包括如下步骤:步骤S1:对原始数据进行秘密共享运算,秘密共享方至少包括2个;步骤S2:其中一个秘密共享方本地产生至少1个随机数,并采用随机数对其秘密共享运算后拥有的数据进行分片,将分片数据发送给其他秘密共享方;其中,在产生随机数时,保持每一随机数的最高位和次高位相同;步骤S3:其他秘密共享方接受到分片数据后,将收到的分片数据与其原共秘密享运算后拥有的数据进行合并;步骤S4:各秘密共享方分别进行本地Truncation。
[0009]应用于上述技术方案,所述的秘密共享下保证Truncation正确的方法中,步骤S4中,各秘密共享方分别进行本地进行Truncation时,是分别对其拥有的总数据进行Truncation,截去其最后k位。
[0010]应用于上述各个技术方案,所述的秘密共享下保证Truncation正确的方法中,步骤S1中,对原始数据进行秘密共享运算时,是在整数环中进行。
[0011]应用于上述各个技术方案,所述的秘密共享下保证Truncation正确的方法中,步
骤S1中,对原始数据进行秘密共享运算时,是在整数环上进行int型变量运算。
[0012]应用于上述各个技术方案,所述的秘密共享下保证Truncation正确的方法中,步骤S1中,对原始数据进行秘密共享运算时,是在整数环上进行int8型变量运算。
[0013]应用于上述各个技术方案,所述的秘密共享下保证Truncation正确的方法中,包括如下步骤:步骤S1:对原始数据x进行秘密共享运算,秘密共享方包括P0和P1,秘密共享运算后,P0拥有数据x0,P1拥有数据x1,且x0+x1=x;步骤S2:P0本地产生一个随机数r,并采用随机数r对其拥有的数据x0进行分片,并设置r为新的分片y0;P0发送x0

r给P1;其中,在产生随机数r时,保证r的最高位和次高位相同;步骤S3:P1接收P0发送的x0

r,并设置新的分片y1=x1+x0

r;此时,P0拥有y0=r,P1拥有y1=x1+x0

r;并且,y0+y1=x0+x1=x;步骤S4:P0和P1分别进行本地Truncation。
[0014]应用于上述各个技术方案,所述的秘密共享下保证Truncation正确的方法中,步骤S4中,P0和P1分别进行本地Truncation时,P0是对其拥有总数据y0进行Truncation,P1是对其拥有总数据y1进行Truncation;截去其最后k位。
[0015]应用于上述各个技术方案,所述的秘密共享下保证Truncation正确的方法中,步骤S4中,P0和P1分别进行本地Truncation时,P0是对其拥有总数据y0进行Truncation,P1是对其拥有总数据y1进行Truncation;截去其最后2位。本专利技术的有益效果为:
[0016]本专利技术通过在经过一轮密码共享通讯后,采用随机数时,保持随机数的最高位和次高位相同,这样就能使得一方的分片数据能保证最高位和次高位相同;如此,可以保证密码共享方在进行本地Truncation时,错误的情况不发生;这样就能保证本地Truncation正确;是一种高效的Truncation方法。
具体实施方式
[0017]以下具体实施例,对本专利技术进行详细说明。
[0018]本实施例提供了一种秘密共享下保证Truncation正确的方法,其中,该方法包括步骤S1:对原始数据进行秘密共享运算,秘密共享方至少包括2个;其中,秘密共享方的数量可以根据实际情况确定,本实施例优先的为2个,并且,对原始数据进行秘密共享运算时,是在整数环中进行,例如,是在整数环上进行int型变量运算,其中可以用采用int8型变量运算、int16型变量运算、int32型变量运算等.
[0019]并且,步骤S2:其中一个秘密共享方本地产生至少1个随机数,并采用随机数对其秘密共享运算后拥有的数据进行分片,将分片数据发送给其他秘密共享方;其中,在产生随机数时,保持每一随机数的最高位和次高位相同;并且,步骤S3:其他秘密共享方接受到分片数据后,将收到的分片数据与其原秘密共享运算后拥有的数据进行合并;步骤S4:各秘密共享方分别进行本地进行Truncation。各秘密共享方分别进行本地Truncation时,是分别对其拥有的总数据进行Truncation,截去其最后k位,其中,k可以根据具体实际需要设定,具体是可以在进行多方计算之前,就设置好这个值,例如,根据数据需要保留的精度设置k的数值,比如保留小数点后13位,那么这个k=13,k的数值设定还可以根据其他需要设定,此处不做任何限定。
[0020]例如,一个实施例是:
[0021]步骤S1:对原始数据x进行秘密共享运算,秘密共享方包括P0和P1,秘密共享运算
后,P0拥有数据x0,P1拥有数据x1,且x0+x1=x;
[0022]步骤S2:P0本地产生一个随机数r,并采用随机数r对其拥有的数据x0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种秘密共享下保证Truncation正确的方法,其特征在于,包括如下步骤:步骤S1:对原始数据进行秘密共享运算,秘密共享方至少包括2个;步骤S2:其中一个秘密共享方本地产生至少1个随机数,并采用随机数对其秘密共享运算后拥有的数据进行分片,将分片数据发送给其他秘密共享方;其中,在产生随机数时,保持每一随机数的最高位和次高位相同;步骤S3:其他秘密共享方接受到分片数据后,将收到的分片数据与其秘密共享运算后拥有的数据进行合并;步骤S4:各秘密共享方分别进行本地Truncation。2.根据权利要求1所述的秘密共享下保证Truncation正确的方法,其特征在于:步骤S4中,各秘密共享方分别进行本地进行Truncation时,是分别对其拥有的总数据进行Truncation,截去其最后k位。3.根据权利要求2所述的秘密共享下保证Truncation正确的方法,其特征在于:步骤S1中,对原始数据进行秘密共享运算时,是在整数环中进行。4.根据权利要求3所述的秘密共享下保证Truncation正确的方法,其特征在于:步骤S1中,对原始数据进行秘密共享运算时,是在整数环上进行int型变量运算。5.根据权利要求4所述的秘密共享下保证Truncation正确的方法,其特征在于:步骤S1中,对原始数据进行秘密共享运算时,是在整数环上进行int8型变量运算。6.根据权利要求1所述的秘密共享下保证Truncation...

【专利技术属性】
技术研发人员:杜吉锋谢翔李升林孙立林
申请(专利权)人:上海阵方科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1