CN114244497B - 两方协同生成分片的方法及装置 - Google Patents
两方协同生成分片的方法及装置 Download PDFInfo
- Publication number
- CN114244497B CN114244497B CN202111503350.6A CN202111503350A CN114244497B CN 114244497 B CN114244497 B CN 114244497B CN 202111503350 A CN202111503350 A CN 202111503350A CN 114244497 B CN114244497 B CN 114244497B
- Authority
- CN
- China
- Prior art keywords
- mask
- original
- new
- fragments
- slice
- 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
- 238000000034 method Methods 0.000 title claims abstract description 109
- 239000012634 fragment Substances 0.000 claims abstract description 370
- 230000008569 process Effects 0.000 claims abstract description 54
- 238000012545 processing Methods 0.000 claims description 46
- 239000000654 additive Substances 0.000 claims description 13
- 230000000996 additive effect Effects 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 13
- 238000012546 transfer Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000003860 storage Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Telephonic Communication Services (AREA)
Abstract
本说明书实施例提供一种两方协同生成分片的方法。该方法包括:第二方利用预设掩码对两个第二原始分片分别进行处理,得到两个掩码原分片,并且,对第二异或分片和第二比特进行异或运算,得到中间值;第一方利用第一新分片、两个第一原始分片,对接收的两个掩码原分片进行处理,得到两个掩码新分片;并且,根据对第一异或分片和接收的中间值进行异或运算而得到的最终值所指示的对应关系,利用两个密钥对应加密得到的两个掩码新分片,从而得到两个加密掩码新分片;第二方根据预设掩码和利用第二比特从上述两个密钥中选取出的密钥,对接收的两个加密掩码新分片进行处理,得到与第一新分片对应的第二新分片。
Description
技术领域
本说明书一个或多个实施例涉及数据处理技术领域,尤其涉及一种两方协同生成分片的方法及装置。
背景技术
安全多方计算(Secure Multi-Party Computation,简称MPC)技术研究的是:各方如何在不泄露各自私有数据的情况下,计算出共同约定函数的问题。两方安全选择是MPC技术中的基本计算单元,两方各自持有两个数所对应的分片(share),以及该两个数的选择比特所对应的分片,在进行安全选择后,两方各自持有针对两个数中某个数的新分片。两方安全选择可以用于构造If-else逻辑、MAX/MIN功能,以及用于进行MPC通用计算和隐私保护机器学习,等等。
然而,目前的两方安全选择算法难以满足日益提高的实际应用需求。因此,需要一种方案,能够取得更好的实施效果,包括有效减少两方安全选择中的通信量和计算量等。
发明内容
本说明书一个或多个实施例描述了一种两方协同生成分片的方法及装置,可以有效减少新分片生成过程中的通信量和计算量。
根据第一方面,提供一种两方协同生成分片的方法,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述方法包括:所述第二方利用预设掩码对所述第一数值的第二原始分片和第二数值的第二原始分片分别进行处理,得到两个掩码原分片,并对所述第二异或分片和第二比特进行异或运算,得到中间值;所述第一方利用其生成的第一新分片、所述第一数值的第一原始分片和第二数值的第一原始分片,对接收的所述两个掩码原分片进行处理,得到两个掩码新分片;并且,利用所述第一异或分片对接收的所述中间值进行异或运算,得到最终值,从而根据该最终值指示的对应关系,利用所述两个密钥对应加密所述两个掩码新分片,得到两个加密掩码新分片;所述第二方利用所述选取的密钥和预设掩码,基于接收的所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
在一个实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为加法分片,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片;其中,所述第二方利用预设掩码对所述第一数值的第二原始分片和第二数值的第二原始分片进行处理,得到两个掩码原分片,包括:利用所述预设掩码,对所述第一数值的第二原始分片进行第一运算,得到所述第一数掩码原分片;所述第一运算为加法运算或减法运算;利用所述预设掩码,对所述第二数值的第二原始分片进行所述第一运算,得到所述第二数掩码原分片。
在一个实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为异或分片,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片;其中,所述第二方利用预设掩码对所述第一数值的第二原始分片和第二数值的第二原始分片进行处理,得到两个掩码原分片,包括:利用所述预设掩码对所述第一数值的第二原始分片进行异或运算,得到所述第一数掩码原分片;利用所述预设掩码对所述第二数值的第二原始分片进行异或运算,得到所述第二数掩码原分片。
在一个实施例中,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片,所述两个掩码新分片包括第一数掩码新分片和第二数掩码新分片;其中,所述第一方利用其生成的第一新分片、所述第一数值的第一原始分片和第二数值的第一原始分片,对接收的所述两个掩码原分片进行处理,得到两个掩码新分片,包括:利用所述第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理,得到所述第一数掩码新分片;利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理,得到所述第二数掩码新分片。
进一步,在一个具体的实施例中,所述第一数值的第一原始分片和第二数值的第一原始分片为加法分片;其中,利用所述第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理,得到所述第一数掩码新分片,包括:在所述第一数掩码原分片的基础上加上所述第一数值的第一原始分片并减去所述第一新分片,得到所述第一数掩码新分片;其中,利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理,得到所述第二数掩码新分片,包括:在所述第二数掩码原分片的基础上加上所述第二数值的第一原始分片并减去所述第一新分片,得到所述第二数掩码新分片。
在另一个具体的实施例中,所述第一数值的第一原始分片和第二数值的第一原始分片为异或分片;其中,利用所述第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理,得到所述第一数掩码新分片,包括:对所述第一新分片、第一数值的第一原始分片和第一数掩码原分片进行异或运算,得到所述第一数掩码新分片;其中,利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理,得到所述第二数掩码新分片,包括:对所述第一新分片、第二数值的第一原始分片和第二数掩码原分片进行异或运算,得到所述第二数掩码新分片。
在一个实施例中,所述两个掩码新分片包括对应第一数值的第一数掩码新分片和对应第二数值的第二数掩码新分片,所述对应关系包含从所述两个密钥到两个数值的映射。
在一个实施例中,在所述第二方利用所述选取的密钥和预设掩码,对接收的所述两个加密掩码新分片进行处理之前,所述方法还包括:所述第二方通过与所述第一方共同执行不经意传输OT协议,从所述第一方获取所述两个密钥中与所述第二比特对应的密钥。
在一个实施例中,所述第二方利用所述选取的密钥和预设掩码,基于接收的所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片,包括:利用所述选取的密钥,对所述两个加密掩码新分片中对应该密钥的加密掩码新分片进行解密,得到掩码新分片;利用所述预设掩码对解密得到的掩码新分片进行还原,得到所述第二新分片。
进一步,在一个具体的实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为加法分片;其中,利用所述预设掩码对解密得到的掩码新分片进行还原,得到所述第二新分片,包括:利用所述预设掩码对所述掩码新分片进行加法或减法运算,得到所述第二新分片。
在另一个具体的实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为异或分片;其中,利用所述预设掩码对解密得到的掩码新分片进行还原,得到所述第二新分片,包括:利用所述预设掩码对所述掩码新分片进行异或运算,得到所述第二新分片。
根据第二方面,提供另一种两方协同生成分片的方法,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述方法应用于第二方,包括:利用预设掩码分别对第一数值的第二原始分片和第二数值的第二原始分片进行处理,得到两个掩码原分片,并且,对所述第二异或分片和第二比特进行异或运算,得到中间值;向所述第一方发送所述两个掩码原分片和中间值;从所述第一方接收根据最终值所指示的对应关系,利用所述两个密钥对应加密两个掩码新分片而得到的两个加密掩码新分片;其中,所述最终值是利用所述第一异或分片对所述中间值进行异或运算而得到;所述两个掩码新分片是利用所述第一数值的第一原始分片、第二数值的第一原始分片以及所述第一方生成的第一新分片,对所述两个掩码原分片进行处理而得到;利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
根据第三方面,提供又一种两方协同生成分片的方法,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述方法应用于第一方,包括:从所述第二方接收利用预设掩码分别对所述第一数值的第二原始分片和第二数值的第二原始分片进行处理,而得到两个掩码原分片,以及,对所述第二异或分片和第二比特进行异或运算而得到中间值;利用所述第一方生成的第一新分片、所述第一数值的第一原始分片和第二数值的第一原始分片,对所述两个掩码原分片进行处理,得到两个掩码新分片;利用所述第一异或分片对接收的所述中间值进行异或运算,得到最终值,从而根据该最终值指示的对应关系,利用所述两个密钥对应加密接收的所述两个掩码新分片,得到两个加密掩码新分片;向所述第二方发送所述两个加密掩码新分片,以使所述第二方利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到对应所述第一新分片的第二新分片。
根据第四方面,提供一种两方协同生成分片的系统,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述系统包括:所述第二方,用于利用预设掩码对所述第一数值的第二原始分片和第二数值的第二原始分片分别进行处理,得到两个掩码原分片,并对所述第二异或分片和第二比特进行异或运算,得到中间值;所述第一方,用于利用其生成的第一新分片、所述第一数值的第一原始分片和第二数值的第一原始分片,对接收的所述两个掩码原分片进行处理,得到两个掩码新分片;并且,利用所述第一异或分片对接收的所述中间值进行异或运算,得到最终值,从而根据该最终值指示的对应关系,利用所述两个密钥对应加密所述两个掩码新分片,得到两个加密掩码新分片;所述第二方,还用于利用所述选取的密钥和预设掩码,对接收的所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
根据第五方面,提供另一种两方协同生成分片的装置,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述装置集成于第二方,包括:掩码处理单元,配置为利用预设掩码分别对所述第一数值的第二原始分片和第二数值的第二原始分片进行处理,得到两个掩码原分片;中间值确定单元,配置为对所述第二异或分片和第二比特进行异或运算,得到中间值;发送单元,配置为向所述第一方发送所述两个掩码原分片和中间值;接收单元,配置为从所述第一方接收根据最终值所指示的对应关系,利用所述两个密钥对应加密两个掩码新分片而得到的两个加密掩码新分片;其中,所述最终值是利用所述第一异或分片对所述中间值进行异或运算而得到;所述两个掩码新分片是利用所述第一数值的第一原始分片、第二数值的第一原始分片以及所述第一方生成的第一新分片,对所述两个掩码原分片进行处理而得到;新分片确定单元,配置为利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
根据第六方面,提供又一种两方协同生成分片的装置,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述装置集成于第一方,包括:接收单元,配置为从所述第二方接收利用预设掩码分别对所述第一数值的第二原始分片和第二数值的第二原始分片进行处理,而得到两个掩码原分片,以及,对第二异或分片和第二比特进行异或运算而得到中间值;分片确定单元,配置为利用所述第一方生成的第一新分片、所述第一数值的第一原始分片和第二数值的第一原始分片,对所述两个掩码原分片进行处理,得到两个掩码新分片;分片加密单元,配置为利用所述第一异或分片对接收的所述中间值进行异或运算,得到最终值,从而根据该最终值指示的对应关系,利用所述两个密钥对应加密接收的所述两个掩码新分片,得到两个加密掩码新分片;发送单元,配置为向所述第二方发送所述两个加密掩码新分片,以使所述第二方利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到对应所述第一新分片的第二新分片。
根据第七方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面、第二方面或第三方面的方法。
根据第八方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,该处理器执行所述可执行代码时,实现第一方面、第二方面或第三方面的方法。
采用本说明书实施例提供的方法和装置,在保护各方隐私数据均不被泄露的情况下,只需要进行单轮通信,以及进行加、减、异或等少量简单计算,即可实现分片的协同生成,从而有效降低通信量和计算量。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的两方协同生成分片的交互示意图;
图2示出根据一个具体实施例的两方协同生成分片的交互示意图;
图3示出根据另一个具体实施例的两方协同生成分片的交互示意图;
图4示出根据又一个具体实施例的两方协同生成分片的交互示意图;
图5示出根据一个实施例的两方协同生成分片的系统结构示意图;
图6示出根据一个实施例的两方协同生成分片的装置结构示意图;
图7示出根据另一个实施例的两方协同生成分片的装置结构示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
承前所述,需要一种两方安全选择算法,能够更好地满足日益提高的实际应用需求。由此,本说明书实施例披露一种两方协同生成分片的方案,在保护各方隐私数据均不被泄露的情况下,只需要进行单轮通信和少量简单计算,即可实现分片的协同生成,从而有效降低通信量和计算量。其中简单计算涉及异或运算(符号为^、⊕、或者xor)、加法运算(+)和减法运算(-)中的一种或多种。
图1示出根据一个实施例的两方协同生成分片的交互示意图,其中两方包括第一方(记作P0方)和第二方(记作P1方),需理解,第一方和第二方各自持有私有数据,并且,可以实现为任何具有计算、处理能力的装置、平台、计算单元、服务器或设备集群等。
如图1所示,其中P0方持有第一数值(记作a)的第一原始分片(记作a0)、第二数值(记作b)的第一原始分片(记作b0)和第一比特(记作s)的第一异或分片(记作s0),以及两个密钥(记作k0和k1);P1方持有数值a的第二原始分片(记作a1)、数值b的第二原始分片(记作b1),比特s的第二异或分片(记作s1),以及利用第二比特(记作c)从密钥k0和k1中选取的密钥kc。可以理解,P0方和P1方均未获知数值a、数值b和比特s的具体取值。
需说明,上述分片a0、b0、a1、b1、s0和s1的产生方式有多种,例如,可以是基于MPC计算的中间计算结果a、b和s分别进行安全分片而产生,对此不作限定。
此外,对于P1方中持有的上述密钥kc,是其通过与P0方共同执行不经意传输(Oblivious Transfer,简称OT)协议而得到。OT协议是一种基于密码学的通信协议,在执行OT协议后,P1方只能得到密钥kc,而不能知晓密钥k0和k1中的另一密钥,并且,P0方不能获知P1方选取的密钥kc是密钥k0和k1中的哪一个。
进一步,对于上述OT协议的执行,在一种可能的场景下,P0方预先生成密钥k0和k1,P1方预先确定比特c(如0或1),从而,P0方将密钥k0和k1作为OT协议的输入,并且,P1方将比特c作为OT协议的输入,进而,P1方得到OT协议的执行结果,即比特c对应的密钥kc。
在另一种可能的场景下,P0方与P1方共同执行随机不经意传输(Random ObliviousTransfer,简称ROT)协议,于是,P0方得到在ROT协议的执行中随机生成的两个标签(或称两条消息),并将此两个标签作为上述两个密钥,可以理解,这两个标签也可以是在ROT协议执行完成后再发生给P0方,因此适用于P0方离线的场景。另一方面,P1方可以预先确定比特c,并将之作为ROT协议的输入,或者,P1方也可以在获取通过执行ROT协议而输出的密钥kc的同时,获取在ROT协议的执行中随机确定的比特c。
上述OT协议和其变种协议,如ROT协议的执行方式,可以采用已有的多种方式实现,不作赘述。
以上对P0方和P1方各自持有的私有数据进行介绍。接下来,对这两方各自基于私有数据,协同生成针对上述第一数值a或第二数值b的新分片的交互步骤进行介绍。图1中示出的交互过程包括以下步骤:
步骤S10,P1方利用预设掩码t分别对第一数值的第二原始分片a1和第二数值的第二原始分片b1进行处理,得到第一数掩码原分片a1_t和第二数掩码原分片b1_t。需说明,其中利用预设掩码t对原分片进行处理的方式,与原分片的分片类型(或称分片形式)相适应。
在一种实施情况中,a1和b1均为加法分片(ADD Share),需理解,一个数在整数环上用减法可以拆分出两个加法分片,这两个加法分片在/>整数环上相加可以获得原数,加法分片是无符号数。相应,a=a0+a1,b=b0+b1,此时,可以利用预设掩码t,分别与原分片a1和b1进行加法或减法运算,从而得到掩码原分片a1_t和b1_t。需说明,P1方无从知晓最后是针对a还是b产生新分片,所以本步骤中对原分片a1和b1的处理方式完全一致。
进一步,在一个实施例中,可以将本步骤实现为图2中示出的步骤S200,在原分片a1的基础上减去预设掩码t,得到掩码原分片a1_t,即,a1_t=a1-t,并且,在原分片b1的基础上减去预设掩码t,得到掩码原分片b1_t,即,b1_t=b1-t。
在另一个实施例中,可以将本步骤实现为:利用预设掩码t减去原分片a1,得到掩码原分片a1_t,即,a1_t=t-a1,并且,利用预设掩码t减去原分片b1,得到掩码原分片b1_t,即,b1_t=t-b1。
在又一个实施例中,可以将本步骤实现为:在原分片a1的基础上加上预设掩码t,得到掩码原分片a1_t,即,a1_t=a1+t,并且,在原分片b1的基础上加上预设掩码t,得到掩码原分片b1_t,即,b1_t=b1+t。
在另一种实施情况中,a1和b1均为减法分片,进一步,a1和b1均为减数,即a=a0-a1,b=b0-b1;或者,a1和b1均为被减数,即,a=a1-a0,b=b1-b0。基于此,可以利用预设掩码t,分别与原分片a1和b1进行加法或减法运算,从而得到掩码原分片a1_t和b1_t。示例性地,可以将本步骤实现为图中示出的步骤S300,在原分片a1的基础上加上预设掩码t,得到掩码原分片a1_t,即,a1_t=a1+t,并且,原分片b1的基础上加上预设掩码t,得到掩码原分片b1_t,即,b1_t=b1+t。
在又一种实施情况中,a1和b1均为异或分片,相应,a=a0^a1,b=b0^b1,此时,参见图4,可以将本步骤实现为图4中示出的步骤S400,对原分片a1和预设掩码t进行异或运算,得到掩码原分片a1_t,即,a1_t=a1^t,并且,对原分片b1和预设掩码t进行异或运算,得到掩码原分片b1_t,即,b1_t=b1^t。
由上,P1方可以得到第一数掩码原分片a1_t和第二数掩码原分片b1_t。并且,在步骤S11,P1方对第二异或分片s1和第二比特c进行异或运算,得到中间值s1_c,即,s1_c=s1^c。需说明,本说明书实施例对步骤S10和步骤S11的相对执行顺序,不作限定。
之后,在步骤S12,P1方将第一数掩码原分片a1_t和第二数掩码原分片b1_t,以及中间值s1_c发送至P0方。
接着,在步骤S13,P0方利用其生成的第一新分片r0、第一数值的第一原始分片a0和第二数值的第一原始分片b0,对第一数掩码原分片a1_t和第二数掩码原分片b1_t进行处理,得到第一数掩码新分片和第二数掩码新分片/>在一个实施例中,上述第一新分片r0可以由P0方随机生成。
需说明,因P0方无从知晓第一新分片r0最终是针对a还是b产生的分片,所以本步骤中对a0和b0的处理思路是一致的。具体,利用第一新分片r0和第一数值的第一原始分片a0,对第一数掩码原分片a1_t进行第一处理,得到第一数掩码新分片利用第一新分片r0和第二数值的第一原始分片b0,对第二数掩码原分片b1_t进行第二处理,得到第二数掩码新分片/>此外需说明,为避免冗余描述,以下主要对上述第一处理进行详细介绍,其可以作为对第二处理介绍的参照。
在一种实施情况中,第一数值a的原分片a0和a1,以及第二数值b的原分片b0和b1均为加法分片,此时,上述第一处理涉及加法运算和/或减法运算。需理解,第一处理所采用的计算式有多种可能的设计,只需使得计算出的掩码新分片等价于:利用预设掩码t对新分片/>进行处理而得到的分片,其中新分片/>是对第一数值a进行拆分而得到的与新分片r0对应的另一新分片,即,/>
在一个实施例中,参照图2,可以将本步骤实现为图2中示出的步骤S230,在掩码原分片a1_t的基础上加上原分片a0并减去新分片r0,得到掩码新分片即,可推导出,/>这意味着,/>等价于/>需注意,实际并未发生利用/>减去t的计算。此外,在步骤S230中,还在掩码原分片b1_t的基础上加上原分片b0并减去新分片r0,从而得到掩码新分片/>即,同理可以推导出/>等价于/>其中/>
在另一个实施例中,假定掩码原分片a1_t=t-a1,此时,本步骤可以实现为:在掩码原分片a1_t的基础上减去原分片a0并加上新分片r0,得到掩码新分片即,/> 可推导出,/>这意味着,/>等价于/>需注意,实际并未发生利用t减去/>的计算。此外,本步骤中还包括:在掩码原分片b1_t的基础上减去原分片b0并加上新分片r0,得到掩码新分片/>即,/>如此得到的/>等价于/>
在另一种实施情况中,原分片a0和a1,以及原分片b0和b1均为减法分片,此时,上述第一处理涉及加法运算和/或减法运算。需理解的是,第一处理采用的计算式有多种可能的设计,只需使得计算出的掩码新分片等价于:利用预设掩码t对新分片/>进行处理而得到的分片,其中新分片/>是对第一数值a进行拆分而得到的与新分片r0对应的另一新分片,具体,若原分片a0和a1符合a=a0-a1,那么/>否则,若符合a=a1-a0,那么/>
示例性地,可以将本步骤实现为图中示出的步骤S330,在掩码原分片a1_t的基础上减去原分片a0并加上新分片r0,得到掩码新分片即,[a1_t]r0=a1_t-a0+r0;可推导出,这意味着,/>等价于/>需注意,实际并未发生利用t减去/>的计算。此外,本步骤中还包括:在掩码原分片b1_t的基础上减去原分片b0并加上新分片r0,得到掩码新分片/>即,/>如此得到的/>等价于/>其中/>
在又一种实施情况中,a1和b1均为异或分片,此时,参见图4,可以将本步骤实现为图4中示出的步骤S430,对新分片r0、原分片a0和掩码原分片a1_t进行异或运算,得到掩码新分片即,/>可推导出,/>这意味着,等价于/>需注意,实际并未发生/>和t之间的异或运算。此外,步骤S430中还包括:对新分片r0、原分片b0和掩码原分片b1_t进行异或运算,得到掩码新分片/>即,如此得到的/>等价于/>其中/>
由上,P0方可以得到第一数掩码新分片[a1_t]r0和第二数掩码新分片并且,P0方还执行步骤S14,利用第一异或分片s0对中间值s1_c进行异或运算,得到最终值c_s,即,c_s=s0^s1_c;可推导出,s0^s1_c=s0^s1^c=s^c,也就是说,最终值c_s等价于对第一比特s和第二比特c进行异或运算的结果,需强调,实际并未直接对s和c进行异或运算。
进一步,P0方执行步骤S15,根据最终值c_s指示的两个密钥和两个数值间映射关系,利用两个密钥对应加密第一数掩码新分片和第二数掩码新分片/>得到第一数加密掩码新分片/>和第二数加密掩码新分片/>需理解,其中两个数值包含上述第一数值a和第二数值b;此外,其中k是两个密钥之一,为k0或k1,/>表示两个密钥中不同于k的另一密钥。
需说明,两个密钥和两个数值之间的映射关系总共存在两种,一种是第一密钥k0对应第一数值a,第二密钥k1对应第二数值b,可记作,另一种是第一密钥k0对应第二数值b,第二密钥k1对应第一数值a,可记作,/>进一步地,最终值c_s的取值为0和1,可以分别指示这两种映射关系,比如,c_s=0时指示前一种,c_s=1时指示后一种,又或者,c_s=0时指示后一种,c_s=1时指示前一种。
为便于理解,下面以最终值c_s=0时指示且c_s=1时指示 为示例,对本步骤的实施进行说明。此外可以理解的是,上述第一数掩码新分片/>对应第一数值a,第二数掩码新分片/>对应第二数值b。
基于以上,本步骤中,在最终值c_s=0的情况下,利用第一密钥k0加密第一数掩码新分片得到第一数加密掩码新分片/>并且,利用第二密钥k1加密第二数掩码新分片/>得到第二数加密掩码新分片/>需理解,第一密钥k0和第二密钥k1均为对称密钥,对称密钥是指,加密和解密数据采用的是相同密钥。示例性地,可以利用对称密钥对明文进行异或运算从而得到密文,即,/>对此还可参见图2中示出的步骤S250或参见图3中示出的步骤S350。
否则,在最终值c_s=1的情况下,利用第一密钥k0加密第二数掩码新分片得到第二数加密掩码新分片/>并且,利用第二密钥k1加密第一数掩码新分片/>得到第一数加密掩码新分片/>示例性地,可以通过异或运算实现加密,即,/> 对此还可以参见图4中示出的步骤S450。
由上,P0方可以确定第一数加密掩码新分片和第二数加密掩码新分片在一种可能的情况中,/>和/>分别为/>和/>在另一种可能的情况中,/>和/>分别为/>和/>
接着,在步骤S16,P0方将第一数加密掩码新分片和第二数加密掩码新分片发送至P1方。在一个实施例中,步骤S16实现为步骤S260或步骤S360,将/>和发送至P1方。在另一个实施例中,步骤S16实现为步骤S460,将/>和/>发送至P1方。
另一方面,在一个实施例中,P0方还可以一并将掩码新分片与密钥之间的映射关系发送给P1方。示例性地,假定和/>分别为/>和/>此时,还可以一并发送/>与比特值0之间以及/>与比特值1之间的对应关系,也即,/>
之后,在步骤S17,P1方利用密钥kc和预设掩码t,基于第一数加密掩码新分片和第二数加密掩码新分片/>进行处理,得到与第一新分片r0对应的第二新分片r1。需说明,对于P1方,其只能获知/>和/>的加密密钥与比特值0和1之间的映射关系,而无法获知/>和/>与数值a、b之间的对应关系,也就无从获知确定出的第二新分片r1是针对a还是针对b的分片。
本步骤中,先利用密钥kc,对加密掩码新分片和/>中对应该密钥kc的加密掩码新分片进行解密,得到掩码新分片。需理解,解密出的掩码新分片可能为上述第一数掩码新分片/>也可能为上述第二数掩码新分片/>图1中将解密出的掩码新分片记作r1_t。
在一种可能的情况中,对应比特c,也即对应密钥kc,此时,利用kc解密相应得到的掩码新分片为/>需理解的是,解密的方式与加密的方式相适应,示例性地,加密是采用异或运算实现的,于是,解密也可以是采用异或运算实现的,也即,进一步,在一个实施例中,参见图2,P1方持有的比特c=0,密钥kc=k0,相应,可以将本步骤实现为步骤S270,利用密钥k0解密/>即,/>从而得到解密出的掩码新分片/>
在另一种可能的情况中,对应比特c,也即对应密钥kc,此时,利用kc解密相应得到的掩码新分片为/>进一步,在一个实施例中,参见图3,P1方持有的比特c=1,密钥kc=k1,相应,可以将本步骤实现为步骤S370,利用密钥k1解密/>即,从而得到解密出的掩码新分片/>在另一个实施例中,参见图4,P1方持有的比特c=0,密钥kc=k0,相应,可以将本步骤实现为步骤S470,利用密钥k0解密即,/>从而得到解密出的掩码新分片/>
进一步,在解密出掩码新分片后,利用预设掩码t,对解密出的掩码新分片进行预设掩码t的去除处理,从而得到第二新分片r1。需理解,此处去除处理涉及的运算为加法运算、减法运算或异或运算中的一种,具体的运算方式与前述步骤中预设掩码t已经参与的运算相适应。
在一个实施例中,假定解密出的掩码新分片为进一步,在一个具体的实施例中,参见图2,其中示出的/>等价于/>此时,将本步骤执行为S270,通过在掩码新分片/>的基础上加上预设掩码t,可以得到新分片/>作为第二新分片r1。
在另一个实施例中,假定解密出的掩码新分片为进一步,在一个具体的实施例中,参见图3,其中示出的/>等价于/>此时,将本步骤执行为S370,通过利用掩码新分片/>减去预设掩码t,可以得到新分片/>作为第二新分片r1;在另一个具体的实施例中,参见图4,其中示出的/>等价于/>此时,将本步骤执行为S470,利用预设掩码t与掩码新分片/>进行异或运算,可以得到新分片/>作为第二新分片r1。
如此,P1方可以得到与P0方持有的第一新分片r0相对应的第二新分片r1。
需说明,对于图2中示出的步骤S210、S220、S240和S260,图3中示出的步骤S310、S320、S340和S260,以及图4中示出的步骤S410、S420、S440和S460,可以参见对图2中步骤S12、S14和S16的描述,不作赘述。
综上,通过采用本说明书实施例披露的两方协同生成分片的方法,P0方和P1方在各自的隐私数据不被泄露的情况下,只需要进行单轮通信和少量简单计算(+、-、或^),即可对应获得针对上述两个数值之一的新分片r0和新分片r1,从而实现两方安全选择,并有效降低通信成本(包括通信字节数和通信轮数)和计算量。
与上述分片的生成方法相对应地,本说明书实施例还披露分片的生成系统和装置。具体如下:
图5示出根据一个实施例的两方协同生成分片的系统结构示意图,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥。如图5所示,所述系统500包括:
所述第二方520,用于利用预设掩码对所述第一数值的第二原始分片和第二数值的第二原始分片分别进行处理,得到两个掩码原分片,并对所述第二异或分片和第二比特进行异或运算,得到中间值;所述第一方510,用于利用其生成的第一新分片、所述第一数值的第一原始分片和第二数值的第一原始分片,对接收的所述两个掩码原分片进行处理,得到两个掩码新分片;并且,利用所述第一异或分片对接收的所述中间值进行异或运算,得到最终值,从而根据该最终值指示的对应关系,利用所述两个密钥对应加密所述两个掩码新分片,得到两个加密掩码新分片;所述第二方520,还用于利用所述选取的密钥和预设掩码,基于接收的所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
图6示出根据一个实施例的两方协同生成分片的装置结构示意图,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述装置集成于第二方,具体可以实现为任何具有计算、处理能力的服务器或设备集群等。如图6所示,所述装置600包括:
掩码处理单元610,配置为利用预设掩码分别对所述第一数值的第二原始分片和第二数值的第二原始分片进行处理,得到两个掩码原分片;中间值确定单元620,配置为对所述第二异或分片和第二比特进行异或运算,得到中间值;发送单元630,配置为向所述第一方发送所述两个掩码原分片和中间值;接收单元640,配置为从所述第一方接收根据最终值所指示的对应关系,利用所述两个密钥对应加密两个掩码新分片而得到的两个加密掩码新分片;其中,所述最终值是利用所述第一异或分片对所述中间值进行异或运算而得到;所述两个掩码新分片是利用所述第一数值的第一原始分片、第二数值的第一原始分片以及所述第一方生成的第一新分片,对所述两个掩码原分片进行处理而得到;新分片确定单元650,配置为利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
在一个实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为加法分片,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片;其中,所述掩码处理单元610具体配置为:利用所述预设掩码,对所述第一数值的第二原始分片进行第一运算,得到所述第一数掩码原分片;所述第一运算为加法运算或减法运算;利用所述预设掩码,对所述第二数值的第二原始分片进行所述第一运算,得到所述第二数掩码原分片。
在另一个实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为异或分片,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片;其中,所述掩码处理单元610具体配置为:利用所述预设掩码对所述第一数值的第二原始分片进行异或运算,得到所述第一数掩码原分片;利用所述预设掩码对所述第二数值的第二原始分片进行异或运算,得到所述第二数掩码原分片。
在一个实施例中,所述装置600还包括:密钥获取单元660,配置为通过与所述第一方共同执行不经意传输OT协议,从所述第一方获取所述两个密钥中与所述第二比特对应的密钥。
在一个实施例中,所述新分片确定单元650包括:分片解密子单元651,配置为利用所述选取的密钥,对所述两个加密掩码新分片中对应该密钥的加密掩码新分片进行解密,得到掩码新分片;分片还原子单元652,配置为利用所述预设掩码对解密得到的掩码新分片进行还原,得到所述第二新分片。
进一步,在一个具体的实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为加法分片;其中,所述分片还原子单元652具体配置为:利用所述预设掩码对所述掩码新分片进行加法或减法运算,得到所述第二新分片。
在另一个具体的实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为异或分片;其中,所述分片还原子单元652具体配置为:利用所述预设掩码对所述掩码新分片进行异或运算,得到所述第二新分片。
图7示出根据另一个实施例的两方协同生成分片的装置结构示意图,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述装置集成于第二方,具体可以实现为任何具有计算、处理能力的服务器或设备集群等。如图7所示,所述装置700包括:
接收单元710,配置为从所述第二方接收利用预设掩码分别对所述第一数值的第二原始分片和第二数值的第二原始分片进行处理,而得到两个掩码原分片,以及,对所述第二异或分片和第二比特进行异或运算而得到中间值;分片确定单元720,配置为利用所述第一方生成的第一新分片、所述第一数值的第一原始分片和第二数值的第一原始分片,对所述两个掩码原分片进行处理,得到两个掩码新分片;分片加密单元730,配置为利用所述第一异或分片对接收的所述中间值进行异或运算,得到最终值,从而根据该最终值指示的对应关系,利用所述两个密钥对应加密接收的所述两个掩码新分片,得到两个加密掩码新分片;发送单元740,配置为向所述第二方发送所述两个加密掩码新分片,以使所述第二方利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到对应所述第一新分片的第二新分片。
在一个实施例中,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片,所述两个掩码新分片包括第一数掩码新分片和第二数掩码新分片;其中,所述分片确定单元720包括:
第一确定子单元721,配置为利用所述第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理,得到所述第一数掩码新分片;第二确定子单元722,配置为利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理,得到所述第二数掩码新分片。
进一步,在一个具体的实施例中,所述第一数值的第一原始分片和第二数值的第一原始分片为加法分片;其中,所述第一确定子单元721具体配置为:在所述第一数掩码原分片的基础上加上所述第一数值的第一原始分片并减去所述第一新分片,得到所述第一数掩码新分片;所述第二确定子单元722具体配置为:在所述第二数掩码原分片的基础上加上所述第二数值的第一原始分片并减去所述第一新分片,得到所述第二数掩码新分片。
在另一个具体的实施例中,所述第一数值的第一原始分片和第二数值的第一原始分片为异或分片;其中,所述第一确定子单元721具体配置为:对所述第一新分片、第一数值的第一原始分片和第一数掩码原分片进行异或运算,得到所述第一数掩码新分片;所述第二确定子单元722具体配置为:对所述第一新分片、第二数值的第一原始分片和第二数掩码原分片进行异或运算,得到所述第二数掩码新分片。
在一个实施例中,所述两个掩码新分片包括对应第一数值的第一数掩码新分片和对应第二数值的第二数掩码新分片,所述对应关系包含从所述两个密钥到两个数值的映射。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图1或图2或图3或图4所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图1或图2或图3或图4所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (22)
1.一种两方协同生成分片的方法,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述方法包括:
所述第二方利用预设掩码对其持有的两个第二原始分片分别进行处理,得到两个掩码原分片,并对所述第二异或分片和第二比特进行异或运算,得到中间值;其中,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片;
所述第一方从所述第二方接收所述两个掩码原分片和所述中间值;
所述第一方利用其生成的第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理,得到第一数掩码新分片,以及,利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理,得到第二数掩码新分片;并且,利用所述第一异或分片对所述中间值进行异或运算,得到最终值,从而根据该最终值指示的从所述两个密钥到两个数值的映射关系,利用所述两个密钥对应加密两个掩码新分片,得到两个加密掩码新分片;
所述第二方利用所述选取的密钥和预设掩码,基于从所述第一方接收的所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
2.根据权利要求1所述的方法,其中,所述两个第二原始分片为加法分片;其中,所述第二方利用预设掩码对其持有的两个第二原始分片进行处理,得到两个掩码原分片,包括:
利用所述预设掩码,对所述第一数值的第二原始分片进行第一运算,得到所述第一数掩码原分片;所述第一运算为加法运算或减法运算;
利用所述预设掩码,对所述第二数值的第二原始分片进行所述第一运算,得到所述第二数掩码原分片。
3.根据权利要求1所述的方法,其中,所述两个第二原始分片为异或分片;其中,所述第二方利用预设掩码对其持有的两个第二原始分片进行处理,得到两个掩码原分片,包括:
利用所述预设掩码对所述第一数值的第二原始分片进行异或运算,得到所述第一数掩码原分片;
利用所述预设掩码对所述第二数值的第二原始分片进行异或运算,得到所述第二数掩码原分片。
4.根据权利要求1所述的方法,其中,所述两个第一原始分片为加法分片;
其中,所述第一方利用其生成的第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理,得到第一数掩码新分片,包括:在所述第一数掩码原分片的基础上加上所述第一数值的第一原始分片并减去所述第一新分片,得到所述第一数掩码新分片;
其中,利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理,得到第二数掩码新分片,包括:在所述第二数掩码原分片的基础上加上所述第二数值的第一原始分片并减去所述第一新分片,得到所述第二数掩码新分片。
5.根据权利要求1所述的方法,其中,所述两个第一原始分片为异或分片;
其中,所述第一方利用其生成的第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理,得到第一数掩码新分片,包括:对所述第一新分片、第一数值的第一原始分片和第一数掩码原分片进行异或运算,得到所述第一数掩码新分片;
其中,利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理,得到第二数掩码新分片,包括:对所述第一新分片、第二数值的第一原始分片和第二数掩码原分片进行异或运算,得到所述第二数掩码新分片。
6.根据权利要求1所述的方法,其中,在所述第二方利用所述选取的密钥和预设掩码,对从所述第一方接收的所述两个加密掩码新分片进行处理之前,所述方法还包括:
所述第二方通过与所述第一方共同执行不经意传输OT协议,从所述第一方获取所述两个密钥中与所述第二比特对应的密钥。
7.根据权利要求1所述的方法,其中,所述第二方利用所述选取的密钥和预设掩码,基于从所述第一方接收的所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片,包括:
利用所述选取的密钥,对所述两个加密掩码新分片中对应该密钥的加密掩码新分片进行解密,得到掩码新分片;
利用所述预设掩码对解密得到的掩码新分片进行还原,得到所述第二新分片。
8.根据权利要求7所述的方法,其中,所述两个第二原始分片为加法分片;其中,利用所述预设掩码对解密得到的掩码新分片进行还原,得到所述第二新分片,包括:
利用所述预设掩码对所述掩码新分片进行加法或减法运算,得到所述第二新分片。
9.根据权利要求7所述的方法,其中,所述两个第二原始分片为异或分片;其中,利用所述预设掩码对解密得到的掩码新分片进行还原,得到所述第二新分片,包括:
利用所述预设掩码对所述掩码新分片进行异或运算,得到所述第二新分片。
10.一种两方协同生成分片的方法,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述方法应用于第二方,包括:
利用预设掩码分别对其持有的两个第二原始分片进行处理,得到两个掩码原分片,并且,对所述第二异或分片和第二比特进行异或运算,得到中间值;
向所述第一方发送所述两个掩码原分片和中间值;其中,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片;
从所述第一方接收两个加密掩码新分片,其由所述第一方根据最终值所指示的从所述两个密钥到两个数值的映射关系,利用所述两个密钥对应加密两个掩码新分片而得到;其中,所述最终值是所述第一方利用所述第一异或分片对所述中间值进行异或运算而得到;所述两个掩码新分片中的第一数掩码新分片是所述第一方利用其生成的第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理而得到,第二数掩码新分片是所述第一方利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理而得到;
利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
11.一种两方协同生成分片的方法,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述方法应用于第一方,包括:
从所述第二方接收利用预设掩码分别对两个第二原始分片进行处理,而得到两个掩码原分片,以及,对所述第二异或分片和第二比特进行异或运算而得到中间值;其中,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片;
利用所述第一方生成的第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理,得到第一数掩码新分片;
利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理,得到第二数掩码新分片;
利用所述第一异或分片对接收的所述中间值进行异或运算,得到最终值,从而根据该最终值指示的从所述两个密钥到两个数值的映射关系,利用所述两个密钥对应加密两个掩码新分片,得到两个加密掩码新分片;
向所述第二方发送所述两个加密掩码新分片,以使所述第二方利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到对应所述第一新分片的第二新分片。
12.一种两方协同生成分片的系统,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述系统包括:
所述第二方,用于利用预设掩码对其持有的两个第二原始分片分别进行处理,得到两个掩码原分片,并对所述第二异或分片和第二比特进行异或运算,得到中间值;其中,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片;
所述第一方,用于从所述第二方接收所述两个掩码原分片和所述中间值;
所述第一方,还用于利用其生成的第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理,得到第一数掩码新分片,以及,利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理,得到第二数掩码新分片;并且,利用所述第一异或分片对所述中间值进行异或运算,得到最终值,从而根据该最终值指示的从所述两个密钥到两个数值的映射关系,利用所述两个密钥对应加密所述两个掩码新分片,得到两个加密掩码新分片;
所述第二方,还用于利用所述选取的密钥和预设掩码,基于从所述第一方接收的所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
13.一种两方协同生成分片的装置,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述装置集成于第二方,包括:
掩码处理单元,配置为利用预设掩码分别对所述第二方持有的两个第二原始分片进行处理,得到两个掩码原分片;
中间值确定单元,配置为对所述第二异或分片和第二比特进行异或运算,得到中间值;
发送单元,配置为向所述第一方发送所述两个掩码原分片和中间值;其中,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片;
接收单元,配置为从所述第一方接收两个加密掩码新分片,其由所述第一方根据最终值所指示的从所述两个密钥到两个数值的映射关系,利用所述两个密钥对应加密两个掩码新分片而得到;其中,所述最终值是所述第一方利用所述第一异或分片对所述中间值进行异或运算而得到;所述两个掩码新分片中的第一数掩码新分片是所述第一方利用其生成的第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理而得到,第二数掩码新分片是所述第一方利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理而得到;
新分片确定单元,配置为利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
14.根据权利要求13所述的装置,其中,所述两个第二原始分片为加法分片;其中,所述掩码处理单元具体配置为:
利用所述预设掩码,对所述第一数值的第二原始分片进行第一运算,得到所述第一数掩码原分片;所述第一运算为加法运算或减法运算;
利用所述预设掩码,对所述第二数值的第二原始分片进行所述第一运算,得到所述第二数掩码原分片。
15.根据权利要求13所述的装置,其中,所述两个第二原始分片为异或分片;其中,所述掩码处理单元具体配置为:
利用所述预设掩码对所述第一数值的第二原始分片进行异或运算,得到所述第一数掩码原分片;
利用所述预设掩码对所述第二数值的第二原始分片进行异或运算,得到所述第二数掩码原分片。
16.根据权利要求13所述的装置,其中,所述装置还包括:
密钥获取单元,配置为通过与所述第一方共同执行不经意传输OT协议,从所述第一方获取所述两个密钥中与所述第二比特对应的密钥。
17.根据权利要求13所述的装置,其中,所述新分片确定单元包括:
分片解密子单元,配置为利用所述选取的密钥,对所述两个加密掩码新分片中对应该密钥的加密掩码新分片进行解密,得到掩码新分片;
分片还原子单元,配置为利用所述预设掩码对解密得到的掩码新分片进行还原,得到所述第二新分片。
18.根据权利要求17所述的装置,其中,所述两个第二原始分片为加法分片;其中,所述分片还原子单元具体配置为:
利用所述预设掩码对所述掩码新分片进行加法或减法运算,得到所述第二新分片。
19.根据权利要求17所述的装置,其中,所述两个第二原始分片为异或分片;其中,所述分片还原子单元具体配置为:
利用所述预设掩码对所述掩码新分片进行异或运算,得到所述第二新分片。
20.一种两方协同生成分片的装置,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述装置集成于第一方,包括:
接收单元,配置为从所述第二方接收利用预设掩码分别对两个第二原始分片进行处理,而得到两个掩码原分片,以及,对所述第二异或分片和第二比特进行异或运算而得到中间值;其中,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片;
分片确定单元,配置为利用所述第一方生成的第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理,得到第一数掩码新分片;以及,利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理,得到第二数掩码新分片;
分片加密单元,配置为利用所述第一异或分片对接收的所述中间值进行异或运算,得到最终值,从而根据该最终值指示的从所述两个密钥到两个数值的映射关系,利用所述两个密钥对应加密两个掩码新分片,得到两个加密掩码新分片;
发送单元,配置为向所述第二方发送所述两个加密掩码新分片,以使所述第二方利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到对应所述第一新分片的第二新分片。
21.一种计算机可读存储介质,其上存储有计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-11中任一项所述的方法。
22.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111503350.6A CN114244497B (zh) | 2021-12-09 | 2021-12-09 | 两方协同生成分片的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111503350.6A CN114244497B (zh) | 2021-12-09 | 2021-12-09 | 两方协同生成分片的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114244497A CN114244497A (zh) | 2022-03-25 |
CN114244497B true CN114244497B (zh) | 2024-02-13 |
Family
ID=80754493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111503350.6A Active CN114244497B (zh) | 2021-12-09 | 2021-12-09 | 两方协同生成分片的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114244497B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100069447A (ko) * | 2008-12-16 | 2010-06-24 | 한국전자통신연구원 | 다수의 데이터베이스에 저장된 보호가 필요한 정보들의 평균값 산출 방법 |
JP2014232906A (ja) * | 2013-05-28 | 2014-12-11 | 一郎 加沢 | 暗号処理システム |
CN111143878A (zh) * | 2019-12-20 | 2020-05-12 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私数据进行模型训练的方法及系统 |
CN111177790A (zh) * | 2020-04-10 | 2020-05-19 | 支付宝(杭州)信息技术有限公司 | 保护两方数据隐私的协同计算方法、系统及装置 |
CN111539026A (zh) * | 2020-06-19 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 针对隐私数据进行安全运算的方法和装置 |
CN112182649A (zh) * | 2020-09-22 | 2021-01-05 | 上海海洋大学 | 一种基于安全两方计算线性回归算法的数据隐私保护系统 |
WO2021083179A1 (zh) * | 2019-10-30 | 2021-05-06 | 阿里巴巴集团控股有限公司 | 一种安全多方计算方法、设备、系统及存储介质 |
CN112953700A (zh) * | 2021-01-26 | 2021-06-11 | 西安电子科技大学 | 一种提升安全多方计算效率的方法、系统及存储介质 |
CN113407991A (zh) * | 2021-06-10 | 2021-09-17 | 交通银行股份有限公司 | 一种基于可信第三方的隐私数据两方安全比较方法 |
CN113591146A (zh) * | 2021-07-29 | 2021-11-02 | 北京航空航天大学 | 基于合作的高效安全两方计算系统及计算方法 |
CN113626871A (zh) * | 2021-08-31 | 2021-11-09 | 支付宝(杭州)信息技术有限公司 | 保护隐私数据的两方多分支条件实现方法和系统 |
CN113722734A (zh) * | 2021-08-30 | 2021-11-30 | 支付宝(杭州)信息技术有限公司 | 两方安全选择确定选择结果分片的方法、装置和系统 |
-
2021
- 2021-12-09 CN CN202111503350.6A patent/CN114244497B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100069447A (ko) * | 2008-12-16 | 2010-06-24 | 한국전자통신연구원 | 다수의 데이터베이스에 저장된 보호가 필요한 정보들의 평균값 산출 방법 |
JP2014232906A (ja) * | 2013-05-28 | 2014-12-11 | 一郎 加沢 | 暗号処理システム |
WO2021083179A1 (zh) * | 2019-10-30 | 2021-05-06 | 阿里巴巴集团控股有限公司 | 一种安全多方计算方法、设备、系统及存储介质 |
CN111143878A (zh) * | 2019-12-20 | 2020-05-12 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私数据进行模型训练的方法及系统 |
CN111177790A (zh) * | 2020-04-10 | 2020-05-19 | 支付宝(杭州)信息技术有限公司 | 保护两方数据隐私的协同计算方法、系统及装置 |
CN111539026A (zh) * | 2020-06-19 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 针对隐私数据进行安全运算的方法和装置 |
CN112182649A (zh) * | 2020-09-22 | 2021-01-05 | 上海海洋大学 | 一种基于安全两方计算线性回归算法的数据隐私保护系统 |
CN112953700A (zh) * | 2021-01-26 | 2021-06-11 | 西安电子科技大学 | 一种提升安全多方计算效率的方法、系统及存储介质 |
CN113407991A (zh) * | 2021-06-10 | 2021-09-17 | 交通银行股份有限公司 | 一种基于可信第三方的隐私数据两方安全比较方法 |
CN113591146A (zh) * | 2021-07-29 | 2021-11-02 | 北京航空航天大学 | 基于合作的高效安全两方计算系统及计算方法 |
CN113722734A (zh) * | 2021-08-30 | 2021-11-30 | 支付宝(杭州)信息技术有限公司 | 两方安全选择确定选择结果分片的方法、装置和系统 |
CN113626871A (zh) * | 2021-08-31 | 2021-11-09 | 支付宝(杭州)信息技术有限公司 | 保护隐私数据的两方多分支条件实现方法和系统 |
Non-Patent Citations (1)
Title |
---|
郭娟娟 ; 王琼霄 ; 许新 ; 王天雨 ; 林璟锵.安全多方计算及其在机器学习中的应用.计算机研究与发展.2021,2163-2186. * |
Also Published As
Publication number | Publication date |
---|---|
CN114244497A (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111523145B (zh) | 针对隐私数据进行安全运算的方法和装置 | |
US9736128B2 (en) | System and method for a practical, secure and verifiable cloud computing for mobile systems | |
US20230327856A1 (en) | Secure multi-party computation methods, apparatuses, and systems | |
WO2022121623A1 (zh) | 一种数据集合求交方法及装置 | |
WO2023231340A1 (zh) | 分享ot协议的执行方法、安全多方计算方法及装置 | |
CN111555880B (zh) | 数据碰撞方法、装置、存储介质及电子设备 | |
US20180159681A1 (en) | Method for safeguarding the information security of data transmitted via a data bus and data bus system | |
CN113239403A (zh) | 一种数据共享方法及装置 | |
CN114465708B (zh) | 隐私数据处理方法及装置、系统、电子设备、存储介质 | |
CN114726512B (zh) | 数据处理方法和装置 | |
CN113326518B (zh) | 一种数据处理方法及装置 | |
CN112861164B (zh) | 一种加密方法、解密方法、数据处理方法、终端及加密机 | |
CN113645235A (zh) | 分布式数据加解密系统及加解密方法 | |
CN114362912A (zh) | 基于分布式密钥中心的标识密码生成方法、电子设备及介质 | |
CN114244497B (zh) | 两方协同生成分片的方法及装置 | |
CN112003690B (zh) | 密码服务系统、方法及装置 | |
CN117155615A (zh) | 数据加密传输方法、系统、电子设备及存储介质 | |
CN114050897B (zh) | 一种基于sm9的异步密钥协商方法及装置 | |
CN115865311A (zh) | 一种高效恒定轮次安全多方计算协议的优化方法和系统 | |
CN111368309A (zh) | 信息处理方法、系统及设备 | |
CN114095157B (zh) | 密钥管理方法、装置、计算机设备及可读存储介质 | |
CN113726507B (zh) | 数据传输方法、系统、装置及存储介质 | |
CN114866312B (zh) | 一种保护数据隐私的共有数据确定方法及装置 | |
CN114499845B (zh) | 多方安全计算的方法、系统、装置、存储介质及设备 | |
CN117221878B (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 |