CN117556441B - 用于安全计算的数据处理方法、装置、介质及电子设备 - Google Patents
用于安全计算的数据处理方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN117556441B CN117556441B CN202311559334.8A CN202311559334A CN117556441B CN 117556441 B CN117556441 B CN 117556441B CN 202311559334 A CN202311559334 A CN 202311559334A CN 117556441 B CN117556441 B CN 117556441B
- Authority
- CN
- China
- Prior art keywords
- data
- mask data
- boolean
- mask
- random number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000004364 calculation method Methods 0.000 title abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 51
- 230000000873 masking effect Effects 0.000 claims abstract description 34
- 239000012634 fragment Substances 0.000 claims abstract description 33
- 238000013467 fragmentation Methods 0.000 claims abstract description 23
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 22
- 238000004590 computer program Methods 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000010801 machine learning Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000004140 cleaning Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Optimization (AREA)
- Software Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computer Hardware Design (AREA)
- Pure & Applied Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本公开涉及一种用于安全计算的数据处理方法、装置、介质及电子设备。安全计算用于两个参与方协同计算第一数据和第二数据的乘积,方法包括:根据参与方所持有的第一数据的第一算术分片和第二数据的第一布尔分片,生成第一掩盖数据,并根据第一布尔分片生成第二掩盖数据;将第一掩盖数据和第二掩盖数据发送至其他参与方;接收其他参与方发送的第三掩盖数据和第四掩盖数据;基于第一布尔分片、第二掩盖数据、第三掩盖数据及第四掩盖数据,生成第一中间结果。两个参与方通过一轮掩盖数据交换即可实现第一数据和第二数据的直接相乘计算,而无需将布尔共享转换为算术共享,省去了在布尔共享和算术共享形式转换的通信量,提高安全计算的业务处理效率。
Description
技术领域
本公开涉及安全多方计算领域,具体地,涉及一种用于安全计算的数据处理方法、装置、介质及电子设备。
背景技术
安全多方计算又称为多方安全计算,可以由多方共同计算出一个函数的结果,而不泄露这个函数中各方的输入数据,计算的结果公开给其中的一方或多方。安全多方计算的典型应用例如有隐私保护的多方数据的联合统计分析、机器学习等。这里的函数是一个统计运算的函数、一个机器学习算法等等。
在多方安全计算过程中,为了不泄露各方数据以及中间计算结果,可以将数据或中间结果以共享形式由各方持有。单方持有一个数据分片,各方持有的分片融合在一起还原出相应数据。通常,计算保持在共享状态进行。如此,多方安全计算中的数据通信次数、通信量等均是影响安全计算效率的重要因素。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
第一方面,本公开提供一种用于安全计算的数据处理方法,所述安全计算用于两个参与方协同计算第一数据和第二数据的乘积,所述第一数据在所述两个参与方构成算术共享形式,所述第二数据在所述两个参与方构成布尔共享形式,所述方法应用于任一所述参与方,所述方法包括:
根据所述参与方所持有的所述第一数据的第一算术分片和所述参与方所持有的所述第二数据的第一布尔分片,生成第一掩盖数据,并根据所述第一布尔分片,生成第二掩盖数据;
将所述第一掩盖数据和所述第二掩盖数据发送至其他参与方;
接收所述其他参与方发送的第三掩盖数据和第四掩盖数据,其中,所述第三掩盖数据基于所述其他参与方所持有的第一数据的第二算术分片和所述其他参与方所持有的所述第二数据的第二布尔分片生成,所述第四掩盖数据基于所述第二布尔分片生成;
基于所述第一布尔分片、所述第二掩盖数据、所述第三掩盖数据以及所述第四掩盖数据,生成第一中间结果。
第二方面,本公开提供一种用于安全计算的数据处理装置,所述安全计算用于两个参与方协同计算第一数据和第二数据的乘积,所述第一数据在所述两个参与方构成算术共享形式,所述第二数据在所述两个参与方构成布尔共享形式,所述装置应用于任一所述参与方,所述装置包括:
第一生成模块,用于根据所述参与方所持有的所述第一数据的第一算术分片和所述参与方所持有的所述第二数据的第一布尔分片,生成第一掩盖数据,并根据所述第一布尔分片,生成第二掩盖数据;
发送模块,用于将所述第一掩盖数据和所述第二掩盖数据发送至其他参与方;
接收模块,用于接收所述其他参与方发送的第三掩盖数据和第四掩盖数据,其中,所述第三掩盖数据基于所述其他参与方所持有的第一数据的第二算术分片和所述其他参与方所持有的所述第二数据的第二布尔分片生成,所述第四掩盖数据基于所述第二布尔分片生成;
第二生成模块,用于基于所述第一布尔分片、所述第二掩盖数据、所述第三掩盖数据以及所述第四掩盖数据,生成第一中间结果。
第三方面,本公开提供一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现本公开第一方面提供的所述用于安全计算的数据处理方法的步骤。
第四方面,本公开提供一种电子设备,包括:
存储装置,其上存储有计算机程序;
处理装置,用于执行所述存储装置中的所述计算机程序,以实现本公开第一方面提供的所述用于安全计算的数据处理方法的步骤。
在上述技术方案中,当计算在两个参与方构成算术共享形式的第一数据和在两个参与方构成布尔共享形式的第二数据的乘积时,两个参与方通过一轮掩盖数据交换即可实现第一数据和第二数据的直接相乘计算,而无需将布尔共享转换为算术共享,省去了两个参与方在布尔共享和算术共享形式转换的通信量,可以大大减少计算布尔共享与算术共享的乘积的数据通信量,提高安全计算的业务处理效率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。在附图中:
图1是根据一示例性实施例示出的一种用于安全计算的数据处理方法的流程图。
图2是根据一示例性实施例的一种安全计算的数据交互图。
图3是根据另一示例性实施例的一种安全计算的数据交互图。
图4是根据一示例性实施例示出的一种用于安全计算的数据处理装置的框图。
图5是根据一示例性实施例示出的一种电子设备的结构示意图。
具体实施方式
在介绍本公开的具体实施例之前,首先对多方安全计算的具体应用场景和本公开涉及到的名词进行介绍说明。
在实际应用中,出于隐私保护的目的,多方安全计算算法通常均为黑盒算法,搭载多方安全计算算法的各个计算节点之间的数据传输行为不透明。正如背景技术中论述的那样,多方安全计算的典型应用包括机器学习,其中,多方安全计算技术在机器学习的推理和训练阶段可以用来保护隐私数据,主要涉及模型参数的保护和训练过程中每个参与方数据的保护。
目前,常见的基于安全多方计算的隐私保护机器学习解决策略有:基于混淆电路、不经意传输等技术的隐私保护机器学习协议,并执行两方安全多方计算协议来完成激活函数等非线性操作计算。基于秘密共享技术允许多方参与机器学习网络模型训练或预测,且该过程不会透露数据或模型信息。
除了以上应用领域外,多方安全计算还可以应用于保护隐私的网络安全检测、有隐私保护的多方数据的联合统计分析、被加密的电子邮件的垃圾邮件清理过滤、广告转换等领域。
环:指一个集合,定义了加法和乘法两种运算,并且对加法形成一个交换群,对除0以外的元素对乘法形成一个半群,并且乘法对加法满足分配率。
上定义了加法和乘法构成的环。其中加法定义为整数加法模(mod)N,乘法定义为整数乘法mod N,N为大于1的整数。
秘密共享(Secret Sharing)也称为秘密分割、秘密分享,其基本原理是将秘密(比如密钥、隐私数据等)拆分成多个份额(Share),分别交给不同数据方保管。只有超过门限数量的各方将他们的分片合并,才能恢复秘密;从少于门限数量的多方获取的Share无法恢复秘密的任何信息。多方安全计算中,门限数量通常与参与方数量相同,秘密被拆分成的份额也可以称为分片。
秘密共享是多方安全计算过程中的重要手段。多方安全计算中常用的几种秘密共享形式例如有算术共享(Arithmetic Sharing)、布尔共享(Boolean Sharing)、姚氏共享(Yao's Sharing)。以下以共享秘密数据x为例,描述各种共享方式。
其中,算术共享也称为和共享。在双方安全计算中,把一个整数x以两个分片x=xL+xR以模2N的共享形式(平移到[0,2N-1]区间)分布式储存在两方,即X以环A中的共享形式存储在两方,使得一方不知道xR,另一方不知道xL,两方中的任一方不能得到x的完整形式,xR和xL为x的算术分片(Arithmetic Shares)或A-Shares。进一步地,两方可以扩展为多方,如记为x=x1+x2+…+xd。假设N=64,则可以通过64字节(bit)的二进制数表示x在单个参与方的单个分片。将一个数据x拆分为和共享形式的方式例如为:随机生成(d-1)个264内的数值(如随机生成64字节的二进制数)作为(d-1)个分片,如分别记为x1、x2、…、xd-1,用并对264(平移到[0,264-1]区间)取模作为另一个分片,如记为xd=x-x1-x2-…-xd-1。
布尔共享是在比特位上进行异或操作的秘密分享方式。例如仍以两个参与方为例,假设x为一个比特的数据(取值为0或1),且以x0⊕x1在两个参与方构成布尔共享形式,x0、x1分别为x在两个参与方的两个布尔分片(Bool Shares)或B-Shares,均在0或1上取值,即x以环B中的共享形式存储在两方, 表示异或运算。单个参与方不知道另一个参与方所持有的分片,因此不能推测数据x。
姚氏共享是与混淆电路相关的一种共享方式,本公开不涉及该共享方式,在此不再赘述。
其中,在安全双方计算中,A-shares形式更适合做算术运算,例如,加法、乘法等。而B-shares形式更适合做逻辑运算,例如,与、或等。但是有时会对A-shares和B-shares进行混合运算。
比如,在计算表达式if(x>y)then a else 0时,我们会先计算b=(x>y),得到的结果是一个B-shares,然后计算b*a。
但是在计算b*a时,b是B-Shares,a是A-Shares,二者不可以直接进行乘法运算。
再比如,在进行select a.key,max(b.value)from a join b group by a.key运算时,会对a.key进行独热编码,也就是a.key的每一行转换成一个m维的向量(m是a.key的可取值类数),向量的m维中只有1维是1,其余维是0,再将该独热编码的每一维与b.value相乘。这里的乘法也是一个B-shares与A-shares相乘。
计算B-shares与A-shares相乘,通常的做法是使用布尔共享转换为算术共享(Boolean to Arithmetic Sharing,如简称B2A)转换,将B-shares转化为A-shares,然后再与A-shares相乘。
但是B2A转换通常具有巨大的通信与计算开销,如下表1所示:
表1 B-shares与A-shares相乘的开销
离线(Offline) | 在线(online) | 在线通信轮次(round) | Total1 | |
B2A | N log N | 4N log N | log N | 5N log N |
乘法 | N | 4N | 1 | 5N |
Total2 | N(log N+1) | 4N(log N+1) | log N+1 | 5N(log N |
鉴于此,本公开提供一种用于安全计算的数据处理方法、装置、介质及电子设备。
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其它满足相关法律法规的方式也可应用于本公开的实现方式中。
同时,可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
图1是根据一示例性实施例示出的一种用于安全计算的数据处理方法的流程图。如图1所示,上述数据处理方法可以包括以下S101~S104。
在S101中,根据参与方所持有的第一数据的第一算术分片和参与方所持有的第二数据的第一布尔分片,生成第一掩盖数据,并根据第一布尔分片,生成第二掩盖数据。
在本公开中,安全计算用于两个参与方协同计算第一数据和第二数据的乘积,第一数据在两个参与方构成算术共享形式,第二数据在两个参与方构成布尔共享形式。可以理解的是,本公开中的第一数据和第二数据,可以是任何不便于公开的数据,可以包括但不限于代表用户个人信息的数据、商业秘密、神经网络模型的模型参数等等。本公开实施例提供的多方安全计算方法,可应用于基于密文实现数据的计算、清洗、分析、模型训练、存储、数据库查询等任务中的密文乘法运算。
上述数据处理方法可以应用于两个参与方中的任一参与方。上述两个参与方可以称为第一方和第二方,本公开以上述数据处理方法应用于第一方为例进行说明,即上述S101中的参与方为第一方,其中,第一方持有第一数据a的第一算术分片a0和第二数据b的第一布尔分片b0,第二方(即其他参与方)持有第一数据a的第二算术分片a1和第二数据b的第二布尔分片b1;且N>1。
在S102中,将第一掩盖数据和第二掩盖数据发送至其他参与方。
在S103中,接收其他参与方发送的第三掩盖数据和第四掩盖数据。
在本公开中,第三掩盖数据基于其他参与方所持有的第一数据的第二算术分片和其他参与方所持有的第二数据的第二布尔分片生成,第四掩盖数据基于第二布尔分片生成。
其他参与方基于自身所持有的第一数据的第二算术分片和自身所持有的第二数据的第二布尔分片,生成第三掩盖数据,并根据第二布尔分片生成第四掩盖数据;之后,将第三掩盖数据和第四掩盖数据发送至上述参与方;上述参与方接收第三掩盖数据和第四掩盖数据。
在S104中,基于第一布尔分片、第二掩盖数据、第三掩盖数据以及第四掩盖数据,生成第一中间结果。
同时,其他参与方基于所述第二布尔分片、第一掩盖数据、第二掩盖数据以及第四掩盖数据,生成第二中间结果。之后,两个参与方可以以共享的方式分享各自生成的中间结果,并将二者生成的中间结果汇总合并,得到最终的计算结果(即第一数据与第二数据的乘积)。
参与方将自身所持有的数据分片掩盖后分享至其他参与方,这样,两个参与方只通过一轮掩盖数据交换即可实现第一数据和第二数据的直接相乘计算。其中,第一掩盖数据和第三掩盖数据均为N bit,第二掩盖数据和第四掩盖数据均为1bit,在线通信量为(2N+2)bit。
需要说明的是,上述S103可以在上述S102之前执行,也可以在上述S102之后执行,还可以与上述S102同时执行,本公开不做具体限定。
在上述技术方案中,当计算在两个参与方构成算术共享形式的第一数据和在两个参与方构成布尔共享形式的第二数据的乘积时,两个参与方通过一轮掩盖数据交换即可实现第一数据和第二数据的直接相乘计算,而无需将布尔共享转换为算术共享,省去了两个参与方在布尔共享和算术共享形式转换的通信量,可以大大减少计算布尔共享与算术共享的乘积的数据通信量,提高安全计算的业务处理效率。
下面针对上述S101中的根据参与方所持有的第一数据的第一算术分片和参与方所持有的第二数据的第一布尔分片,生成第一掩盖数据的具体实施方式进行详细说明。具体来说,可以通过以下步骤(11)~步骤(13)来实现:
步骤(11):获取模2的N次幂空间中的第一随机数。
其中,第一随机数属于模2的N次幂空间,即第一随机数的取值范围为[0,2N-1]。
步骤(12):利用第一随机数对第一算术分片进行掩盖处理,得到第五掩盖数据。
示例地,可以利用第一随机数,通过以下等式(1)对第一算术分片进行掩盖处理,得到第五掩盖数据:
其中,δa0为第五掩盖数据;为第一随机数。
步骤(13):根据第五掩盖数据和第一布尔分片,生成第一掩盖数据。
示例地,可以根据第五掩盖数据和第一布尔分片,通过以下等式(2)生成第一掩盖数据:
其中,C1为所述第一掩盖数据。
下面针对上述S101中的根据第一布尔分片,生成第二掩盖数据的具体实施方式进行详细说明。具体来说,可以通过以下步骤(21)和步骤(22)来实现:
步骤(21):获取模2空间中的第三随机数。
其中,第三随机数属于模2空间,即第三随机数的取值为0或1。
步骤(22):利用第三随机数对第一布尔分片进行掩盖处理,得到第二掩盖数据。
示例地,可以利用第三随机数,通过以下等式(3)对第一布尔分片进行掩盖处理,得到第二掩盖数据:
其中,δb0为第二掩盖数据;为第三随机数。
下面针对上述其他参与方基于自身所持有的第一数据的第二算术分片和自身所持有的第二数据的第二布尔分片,生成第三掩盖数据的具体实施方式进行详细说明。具体来说,可以通过以下步骤(31)~步骤(33)来实现:
步骤(31):获取模2的N次幂空间中的第四随机数。
第四随机数属于模2的N次幂空间,即第四随机数的取值范围为[0,2N-1]。
步骤(32):利用第四随机数对第二算术分片进行掩盖处理,得到第六掩盖数据。
示例地,可以利用第四随机数,通过以下等式(4)对第二算术分片进行掩盖处理,得到第六掩盖数据:
其中,δa1为第六掩盖数据;为第四随机数。
步骤(33):根据第六掩盖数据和第二布尔分片,生成第三掩盖数据。
示例地,可以根据第六掩盖数据和第二布尔分片,通过以下等式(5)生成第三掩盖数据:
其中,C2为第三掩盖数据。
下面针对上述根据第二布尔分片生成第四掩盖数据的具体实施方式进行详细说明。具体来说,可以通过以下步骤(41)和步骤(42)来实现:
步骤(41):获取模2空间中的第五随机数。
第五随机数属于模2空间,即第五随机数的取值为0或1。
步骤(42):利用第五随机数对第二布尔分片进行掩盖处理,得到第四掩盖数据。
示例地,可以利用第五随机数,通过以下等式(6)对第二布尔分片进行掩盖处理,得到第四掩盖数据:
其中,δb1为第四掩盖数据;为第五随机数。
下面针对上述S104中的基于第一布尔分片、第二掩盖数据、第三掩盖数据以及第四掩盖数据,生成第一中间结果的具体实施方式进行详细说明。具体来说,上述方法还可以包括以下步骤:
获取模2的N次幂空间中的第二随机数。
其中,第二随机数属于模2的N次幂空间,即第二随机数的取值范围为[0,2N-1]。
此时,上述S104可以包括:基于第一随机数、第二随机数、第一布尔分片、第二掩盖数据、第三掩盖数据、第四掩盖数据以及第五掩盖数据,生成第一中间结果。
示例地,基于第一随机数、第二随机数、第一布尔分片、第二掩盖数据、第三掩盖数据、第四掩盖数据以及第五掩盖数据,通过以下等式(7)生成第一中间结果:
其中,y0为第一中间结果;u0为第二随机数,f(b,a)=a if b==1 else 0。
下面针对上述其他参与方基于所述第二布尔分片、第一掩盖数据、第二掩盖数据以及第四掩盖数据,生成第二中间结果的具体实施方式进行详细说明。具体来说,上述方法还可以包括以下步骤:
获取模2的N次幂空间中的第六随机数。
其中,第六随机数属于模2的N次幂空间,即第六随机数的取值范围为[0,2N-1]。
此时,其他参与方可以基于第四随机数、第六随机数、第二布尔分片、第一掩盖数据、第二掩盖数据以及第四掩盖数据以及第六掩盖数据,生成第二中间结果。
示例地,其他参与方可以基于第四随机数、第六随机数、第二布尔分片、第一掩盖数据、第二掩盖数据以及第四掩盖数据以及第六掩盖数据,通过以下等式(8)生成第二中间结果:
其中,y1为第二中间结果;u1为第六随机数。
两个参数方得到第一中间结果和第二中间结果后,可以将二者相加即可达到最终的计算结果(即第一数据与第二数据的乘积)。具体来说,上述方法还可以包括以下两个步骤:
获取其他参与方生成的第二中间结果,其中,第二中间结果基于第二布尔分片、第一掩盖数据、第二掩盖数据以及第四掩盖数据生成;
将第一中间结果和第二中间结果的和确定为第一数据和第二数据的乘积。
上述步骤除了由上述参与方来执行外,还可以由除上述两个参与方之外的其他电子设备来执行,此时,该其他电子设备从两个参与方分别获取第一中间结果和第二中间结果,之后,将二者的和确定为第一数据和第二数据的乘积。
其中,上述协议(即第一中间结果+第二中间结果=第一数据*第二数据)的正确性,由以下等式保证:
其中,
下面针对步骤(11)中的获取模2的N次幂空间中的第一随机数的具体实施方式进行详细说明。具体来说,可以通过多种方式来实现,在一种实施方式中,如图2所示,可以通过半可信第三方生成布尔-算术-算术三元组(即BA2A triple),其中,该三元组包括第一随机数第二随机数u0、第三随机数第四随机数第五随机数以及第六随机数u1,其中,这六个随机数满足约束条件之后,半可信第三方将第一随机数第二随机数u0、第三随机数发送至上述参与方,并将第四随机数第五随机数以及第六随机数u1发送至其他参与方。上述操作可以离线进行,离线通信量为(4N+2)bit,其中,第一随机数第四随机数第二随机数u0以及第六随机数u1以及均为N bit,第三随机数和第五随机数均为1bit。由此,上述参与方可以获取到第一随机数、第二随机数以及第三随机数。
在另一种实施方式中,如图3所示,参与方基于自身所持有的第一种子,生成模2的N次幂空间中的第一随机数,其中,半可信第三方基于自身所持有第一种子同步生成第一随机数。同样地,参与方基于自身所持有的第二种子,生成模2的N次幂空间中的第二随机数,其中,半可信第三方基于自身所持有第二种子同步生成第二随机数;参与方基于自身所持有的第三种子,生成模2空间中的第三随机数,其中,半可信第三方基于自身所持有第三种子同步生成第三随机数。同时,其他参与方基于自身所持有的第四种子,生成模2的N次幂空间中的第四随机数,其中,半可信第三方基于自身所持有第四种子同步生成第四随机数。同样地,其他参与方基于自身所持有的第五种子,生成模2空间中的第五随机数,其中,半可信第三方基于自身所持有第五种子同步生成第五随机数。之后,半可信第三方根据本地生成的第一随机数第二随机数u0、第三随机数第四随机数第五随机数基于约束条件计算第六随机数u1,并将该第六随机数u1发送至其他参与方。
第一随机数第二随机数u0、第三随机数由参与方本地生成,第四随机数和第五随机数由其他参与方本地生成,因此,半可信第三方只需要将第六随机数u1发送至其他参与方,该发送操作可以离线进行,离线通信量为N bit。
在又一种实施方式中,可以基于不经意传输协议或同态加密方法生成布尔-算术-算术三元组。
在一种实施方式中,第一数据可以为结构化查询语言(Structured QueryLanguage,SQL)语句中的查询字段,第二数据可以为SQL语句中的查询条件。
示例地,在运行以下SQL语句时,可以执行上述数据处理方法:
select sum(a)from table1 where b;
在另一种实施方式中,在机器学习领域中,计算RELU(a),可以先计算b=DRELU(a)=(a>0),再计算f(b,a)。
图4是根据一示例性实施例示出的一种用于安全计算的数据处理装置的框图。其中,所述安全计算用于两个参与方协同计算第一数据和第二数据的乘积,所述第一数据在所述两个参与方构成算术共享形式,所述第二数据在所述两个参与方构成布尔共享形式。所述装置300应用于任一所述参与方,如图4所示,所述装置300包括:
第一生成模块301,用于根据所述参与方所持有的所述第一数据的第一算术分片和所述参与方所持有的所述第二数据的第一布尔分片,生成第一掩盖数据,并根据所述第一布尔分片,生成第二掩盖数据;
发送模块302,用于将所述第一掩盖数据和所述第二掩盖数据发送至其他参与方;
接收模块303,用于接收所述其他参与方发送的第三掩盖数据和第四掩盖数据,其中,所述第三掩盖数据基于所述其他参与方所持有的第一数据的第二算术分片和所述其他参与方所持有的所述第二数据的第二布尔分片生成,所述第四掩盖数据基于所述第二布尔分片生成;
第二生成模块304,用于基于所述第一布尔分片、所述第二掩盖数据、所述第三掩盖数据以及所述第四掩盖数据,生成第一中间结果。
在上述技术方案中,当计算在两个参与方构成算术共享形式的第一数据和在两个参与方构成布尔共享形式的第二数据的乘积时,两个参与方通过一轮掩盖数据交换即可实现第一数据和第二数据的直接相乘计算,而无需将布尔共享转换为算术共享,省去了两个参与方在布尔共享和算术共享形式转换的通信量,可以大大减少计算布尔共享与算术共享的乘积的数据通信量,提高安全计算的业务处理效率。
可选地,所述第一生成模块301包括:
获取子模块,用于获取模2的N次幂空间中的第一随机数;
掩盖子模块,用于利用所述第一随机数对所述第一算术分片进行掩盖处理,得到第五掩盖数据;
生成子模块,用于根据所述第五掩盖数据和所述第一布尔分片,生成第一掩盖数据。
可选地,所述装置300还包括:
第一获取模块,用于获取模2的N次幂空间中的第二随机数;
所述第二生成模块302用于基于所述第一随机数、所述第二随机数、所述第一布尔分片、所述第二掩盖数据、所述第三掩盖数据、所述第四掩盖数据以及所述第五掩盖数据,生成第一中间结果。
可选地,所述第一获取模块用于基于所述参与方所持有的第一种子,生成模2的N次幂空间中的第一随机数,其中,半可信第三方基于自身所持有所述第一种子同步生成所述第一随机数。
可选地,所述第一获取模块用于基于不经意传输协议或同态加密方法生成布尔-算术-算术三元组,其中,所述布尔-算术-算术三元组包括所述第一随机数。
可选地,所述生成子模块用于根据所述第五掩盖数据和所述第一布尔分片,通过以下公式生成第一掩盖数据:
其中,C1为所述第一掩盖数据;b0为所述第一布尔分片;δa0为所述第五掩盖数据。
可选地,所述第一数据为结构化查询语言语句中的查询字段,所述第二数据为所述结构化查询语句中的查询条件。
可选地,所述装置300还包括:
第二获取模块,用于获取所述其他参与方生成的第二中间结果,其中,所述第二中间结果基于所述第二布尔分片、所述第一掩盖数据、所述第二掩盖数据以及第四掩盖数据生成;
确定模块,用于将所述第一中间结果和所述第二中间结果的和确定为所述第一数据和所述第二数据的乘积。
本公开还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现本公开提供的上述用于安全计算的数据处理方法的步骤。
下面参考图5,其示出了适于用来实现本公开实施例的电子设备(例如终端设备或服务器)600的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:根据所述参与方所持有的所述第一数据的第一算术分片和所述参与方所持有的所述第二数据的第一布尔分片,生成第一掩盖数据,并根据所述第一布尔分片,生成第二掩盖数据;将所述第一掩盖数据和所述第二掩盖数据发送至其他参与方;接收所述其他参与方发送的第三掩盖数据和第四掩盖数据,其中,所述第三掩盖数据基于所述其他参与方所持有的第一数据的第二算术分片和所述其他参与方所持有的所述第二数据的第二布尔分片生成,所述第四掩盖数据基于所述第二布尔分片生成;基于所述第一布尔分片、所述第二掩盖数据、所述第三掩盖数据以及所述第四掩盖数据,生成第一中间结果。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,发送模块还可以被描述为“将所述第一掩盖数据和所述第二掩盖数据发送至其他参与方的模块”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,示例1提供了一种用于安全计算的数据处理方法,所述安全计算用于两个参与方协同计算第一数据和第二数据的乘积,所述第一数据在所述两个参与方构成算术共享形式,所述第二数据在所述两个参与方构成布尔共享形式,所述方法应用于任一所述参与方,所述方法包括:
根据所述参与方所持有的所述第一数据的第一算术分片和所述参与方所持有的所述第二数据的第一布尔分片,生成第一掩盖数据,并根据所述第一布尔分片,生成第二掩盖数据;
将所述第一掩盖数据和所述第二掩盖数据发送至其他参与方;
接收所述其他参与方发送的第三掩盖数据和第四掩盖数据,其中,所述第三掩盖数据基于所述其他参与方所持有的第一数据的第二算术分片和所述其他参与方所持有的所述第二数据的第二布尔分片生成,所述第四掩盖数据基于所述第二布尔分片生成;
基于所述第一布尔分片、所述第二掩盖数据、所述第三掩盖数据以及所述第四掩盖数据,生成第一中间结果。
根据本公开的一个或多个实施例,示例2提供了示例1的方法,所述根据所述参与方所持有的所述第一数据的第一算术分片和所述参与方所持有的所述第二数据的第一布尔分片,生成第一掩盖数据,包括:
获取模2的N次幂空间中的第一随机数;
利用所述第一随机数对所述第一算术分片进行掩盖处理,得到第五掩盖数据;
根据所述第五掩盖数据和所述第一布尔分片,生成第一掩盖数据。
根据本公开的一个或多个实施例,示例3提供了示例2的方法,所述方法还包括:
获取模2的N次幂空间中的第二随机数;
所述基于所述第一布尔分片、所述第二掩盖数据、所述第三掩盖数据以及所述第四掩盖数据,生成第一中间结果,包括:
基于所述第一随机数、所述第二随机数、所述第一布尔分片、所述第二掩盖数据、所述第三掩盖数据、所述第四掩盖数据以及所述第五掩盖数据,生成第一中间结果。
根据本公开的一个或多个实施例,示例4提供了示例2的方法,所述获取模2的N次幂空间中的第一随机数,包括:
基于所述参与方所持有的第一种子,生成模2的N次幂空间中的第一随机数,其中,半可信第三方基于自身所持有所述第一种子同步生成所述第一随机数。
根据本公开的一个或多个实施例,示例5提供了示例2的方法,所述获取模2的N次幂空间中的第一随机数,包括:
基于不经意传输协议或同态加密方法生成布尔-算术-算术三元组,其中,所述布尔-算术-算术三元组包括所述第一随机数。
根据本公开的一个或多个实施例,示例6提供了示例2的方法,所述根据所述第五掩盖数据和所述第一布尔分片,生成第一掩盖数据,包括:
根据所述第五掩盖数据和所述第一布尔分片,通过以下公式生成第一掩盖数据:
其中,C1为所述第一掩盖数据;b0为所述第一布尔分片;δa0为所述第五掩盖数据。
根据本公开的一个或多个实施例,示例7提供了示例1-6中任一项所述的方法,所述第一数据为结构化查询语言语句中的查询字段,所述第二数据为所述结构化查询语句中的查询条件。
根据本公开的一个或多个实施例,示例8提供了示例1-6中任一项所述的方法,所述方法还包括:
获取所述其他参与方生成的第二中间结果,其中,所述第二中间结果基于所述第二布尔分片、所述第一掩盖数据、所述第二掩盖数据以及第四掩盖数据生成;
将所述第一中间结果和所述第二中间结果的和确定为所述第一数据和所述第二数据的乘积。
根据本公开的一个或多个实施例,示例9提供了一种用于安全计算的数据处理装置,所述安全计算用于两个参与方协同计算第一数据和第二数据的乘积,所述第一数据在所述两个参与方构成算术共享形式,所述第二数据在所述两个参与方构成布尔共享形式,所述装置应用于任一所述参与方,所述装置包括:
第一生成模块,用于根据所述参与方所持有的所述第一数据的第一算术分片和所述参与方所持有的所述第二数据的第一布尔分片,生成第一掩盖数据,并根据所述第一布尔分片,生成第二掩盖数据;
发送模块,用于将所述第一掩盖数据和所述第二掩盖数据发送至其他参与方;
接收模块,用于接收所述其他参与方发送的第三掩盖数据和第四掩盖数据,其中,所述第三掩盖数据基于所述其他参与方所持有的第一数据的第二算术分片和所述其他参与方所持有的所述第二数据的第二布尔分片生成,所述第四掩盖数据基于所述第二布尔分片生成;
第二生成模块,用于基于所述第一布尔分片、所述第二掩盖数据、所述第三掩盖数据以及所述第四掩盖数据,生成第一中间结果。
根据本公开的一个或多个实施例,示例10提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现示例1-8中任一项所述方法的步骤。
根据本公开的一个或多个实施例,示例11提供了一种电子设备,包括:
存储装置,其上存储有计算机程序;
处理装置,用于执行所述存储装置中的所述计算机程序,以实现示例1-8中任一项所述方法的步骤。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
Claims (10)
1.一种用于安全计算的数据处理方法,所述安全计算用于两个参与方协同计算第一数据和第二数据的乘积,所述第一数据在所述两个参与方构成算术共享形式,所述第二数据在所述两个参与方构成布尔共享形式,其特征在于,所述方法应用于任一所述参与方,所述方法包括:
根据所述参与方所持有的所述第一数据的第一算术分片和所述参与方所持有的所述第二数据的第一布尔分片,生成第一掩盖数据,并根据所述第一布尔分片,生成第二掩盖数据;
将所述第一掩盖数据和所述第二掩盖数据发送至其他参与方;
接收所述其他参与方发送的第三掩盖数据和第四掩盖数据,其中,所述第三掩盖数据基于所述其他参与方所持有的第一数据的第二算术分片和所述其他参与方所持有的所述第二数据的第二布尔分片生成,所述第四掩盖数据基于所述第二布尔分片生成;
基于所述第一布尔分片、所述第二掩盖数据、所述第三掩盖数据以及所述第四掩盖数据,生成第一中间结果;
获取所述其他参与方生成的第二中间结果,其中,所述第二中间结果基于所述第二布尔分片、所述第一掩盖数据、所述第二掩盖数据以及第四掩盖数据生成;
将所述第一中间结果和所述第二中间结果的和确定为所述第一数据和所述第二数据的乘积。
2.根据权利要求1所述的方法,其特征在于,所述根据所述参与方所持有的所述第一数据的第一算术分片和所述参与方所持有的所述第二数据的第一布尔分片,生成第一掩盖数据,包括:
获取模2的N次幂空间中的第一随机数;
利用所述第一随机数对所述第一算术分片进行掩盖处理,得到第五掩盖数据;
根据所述第五掩盖数据和所述第一布尔分片,生成第一掩盖数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取模2的N次幂空间中的第二随机数;
所述基于所述第一布尔分片、所述第二掩盖数据、所述第三掩盖数据以及所述第四掩盖数据,生成第一中间结果,包括:
基于所述第一随机数、所述第二随机数、所述第一布尔分片、所述第二掩盖数据、所述第三掩盖数据、所述第四掩盖数据以及所述第五掩盖数据,生成第一中间结果。
4.根据权利要求2所述的方法,其特征在于,所述获取模2的N次幂空间中的第一随机数,包括:
基于所述参与方所持有的第一种子,生成模2的N次幂空间中的第一随机数,其中,半可信第三方基于自身所持有所述第一种子同步生成所述第一随机数。
5.根据权利要求2所述的方法,其特征在于,所述获取模2的N次幂空间中的第一随机数,包括:
基于不经意传输协议或同态加密方法生成布尔-算术-算术三元组,其中,所述布尔-算术-算术三元组包括所述第一随机数。
6.根据权利要求2所述的方法,其特征在于,所述根据所述第五掩盖数据和所述第一布尔分片,生成第一掩盖数据,包括:
根据所述第五掩盖数据和所述第一布尔分片,通过以下公式生成第一掩盖数据:
其中,C1为所述第一掩盖数据;b0为所述第一布尔分片;δa0为所述第五掩盖数据。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述第一数据为结构化查询语言语句中的查询字段,所述第二数据为所述结构化查询语言语句中的查询条件。
8.一种用于安全计算的数据处理装置,所述安全计算用于两个参与方协同计算第一数据和第二数据的乘积,所述第一数据在所述两个参与方构成算术共享形式,所述第二数据在所述两个参与方构成布尔共享形式,其特征在于,所述装置应用于任一所述参与方,所述装置包括:
第一生成模块,用于根据所述参与方所持有的所述第一数据的第一算术分片和所述参与方所持有的所述第二数据的第一布尔分片,生成第一掩盖数据,并根据所述第一布尔分片,生成第二掩盖数据;
发送模块,用于将所述第一掩盖数据和所述第二掩盖数据发送至其他参与方;
接收模块,用于接收所述其他参与方发送的第三掩盖数据和第四掩盖数据,其中,所述第三掩盖数据基于所述其他参与方所持有的第一数据的第二算术分片和所述其他参与方所持有的所述第二数据的第二布尔分片生成,所述第四掩盖数据基于所述第二布尔分片生成;
第二生成模块,用于基于所述第一布尔分片、所述第二掩盖数据、所述第三掩盖数据以及所述第四掩盖数据,生成第一中间结果;
第二获取模块,用于获取所述其他参与方生成的第二中间结果,其中,所述第二中间结果基于所述第二布尔分片、所述第一掩盖数据、所述第二掩盖数据以及第四掩盖数据生成;
确定模块,用于将所述第一中间结果和所述第二中间结果的和确定为所述第一数据和所述第二数据的乘积。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理装置执行时实现权利要求1-7中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储装置,其上存储有计算机程序;
处理装置,用于执行所述存储装置中的所述计算机程序,以实现权利要求1-7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311559334.8A CN117556441B (zh) | 2023-11-21 | 2023-11-21 | 用于安全计算的数据处理方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311559334.8A CN117556441B (zh) | 2023-11-21 | 2023-11-21 | 用于安全计算的数据处理方法、装置、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117556441A CN117556441A (zh) | 2024-02-13 |
CN117556441B true CN117556441B (zh) | 2024-08-23 |
Family
ID=89814355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311559334.8A Active CN117556441B (zh) | 2023-11-21 | 2023-11-21 | 用于安全计算的数据处理方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117556441B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118282636A (zh) * | 2024-03-27 | 2024-07-02 | 北京火山引擎科技有限公司 | 用于安全计算的数据处理方法、装置、介质、设备及产品 |
CN118282635A (zh) * | 2024-03-27 | 2024-07-02 | 北京火山引擎科技有限公司 | 用于安全计算的数据处理方法、装置、介质、设备及产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115906126A (zh) * | 2022-12-12 | 2023-04-04 | 蚂蚁区块链科技(上海)有限公司 | 多方安全计算中的数据处理的方法及装置 |
CN116821961A (zh) * | 2023-06-28 | 2023-09-29 | 支付宝(杭州)信息技术有限公司 | 保护隐私数据的布尔算术分享转换方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3602422B1 (en) * | 2017-03-22 | 2022-03-16 | Visa International Service Association | Privacy-preserving machine learning |
EP3570575A1 (en) * | 2018-05-16 | 2019-11-20 | INESC TEC - Instituto de Engenharia de Sistemas e Computadores, Tecnologia e Ciência | Internet of things security with multi-party computation (mpc) |
US20220014355A1 (en) * | 2020-07-13 | 2022-01-13 | Inpher, Inc. | Oblivious Comparisons and Quicksort of Secret Shared Arithmetic Values in a Multi-Party Computing Setting |
-
2023
- 2023-11-21 CN CN202311559334.8A patent/CN117556441B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115906126A (zh) * | 2022-12-12 | 2023-04-04 | 蚂蚁区块链科技(上海)有限公司 | 多方安全计算中的数据处理的方法及装置 |
CN116821961A (zh) * | 2023-06-28 | 2023-09-29 | 支付宝(杭州)信息技术有限公司 | 保护隐私数据的布尔算术分享转换方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117556441A (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117556441B (zh) | 用于安全计算的数据处理方法、装置、介质及电子设备 | |
CN112906044B (zh) | 多方安全计算方法、装置、设备及存储介质 | |
Xiong et al. | Toward lightweight, privacy-preserving cooperative object classification for connected autonomous vehicles | |
CN111586000B (zh) | 一种全代理同态重加密传输系统及其运行机制 | |
WO2021239008A1 (zh) | 一种基于隐私保护的加密方法和系统 | |
CN113190871B (zh) | 数据保护方法、装置、可读介质及电子设备 | |
CN111555880B (zh) | 数据碰撞方法、装置、存储介质及电子设备 | |
CN111368336B (zh) | 基于秘密共享的训练方法、装置、电子设备及存储介质 | |
CN111931474B (zh) | 信息表生成方法、装置、电子设备和计算机可读介质 | |
Asad et al. | CEEP-FL: A comprehensive approach for communication efficiency and enhanced privacy in federated learning | |
WO2023240934A1 (zh) | 针对隐私向量的安全处理方法和装置 | |
CN112418446A (zh) | 模型处理方法、系统、装置、介质及电子设备 | |
CN109495266B (zh) | 基于随机数的数据加密方法及装置 | |
CN111327605A (zh) | 传输私密信息的方法、终端、服务器和系统 | |
CN114154200A (zh) | 基于可交换弱伪随机函数的隐私集合求并方法及系统 | |
CN116010678B (zh) | 一种匿踪查询方法、装置及设备 | |
CN115277031B (zh) | 一种数据处理的方法和装置 | |
CN117932677A (zh) | 用于安全计算的数据元组生成方法、装置、介质及设备 | |
CN115292726A (zh) | 语义通信方法、装置、电子设备及存储介质 | |
CN114357504A (zh) | 基于隐私保护的联邦学习方法以及相关设备 | |
CN118282636A (zh) | 用于安全计算的数据处理方法、装置、介质、设备及产品 | |
CN113961931A (zh) | adb工具使用方法、装置和电子设备 | |
CN118157856A (zh) | 用于安全计算的数据处理方法、装置、介质、设备及产品 | |
CN118070308A (zh) | 用于安全计算的数据处理方法、装置、介质及电子设备 | |
CN116627664B (zh) | 业务校验方法、装置、电子设备和计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |