CN116032492A - 具有身份中止和公正性的安全多方计算方法 - Google Patents
具有身份中止和公正性的安全多方计算方法 Download PDFInfo
- Publication number
- CN116032492A CN116032492A CN202310092993.9A CN202310092993A CN116032492A CN 116032492 A CN116032492 A CN 116032492A CN 202310092993 A CN202310092993 A CN 202310092993A CN 116032492 A CN116032492 A CN 116032492A
- Authority
- CN
- China
- Prior art keywords
- participant
- signature
- value
- party
- participants
- 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.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 95
- 239000000725 suspension Substances 0.000 title claims abstract description 17
- 238000012795 verification Methods 0.000 claims abstract description 83
- 238000000034 method Methods 0.000 claims abstract description 56
- 238000012360 testing method Methods 0.000 claims description 21
- 230000004927 fusion Effects 0.000 claims description 9
- 238000007689 inspection Methods 0.000 claims description 7
- 239000013598 vector Substances 0.000 claims description 7
- 230000002195 synergetic effect Effects 0.000 claims description 6
- 238000011084 recovery Methods 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 30
- 230000005540 biological transmission Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 241000499489 Castor canadensis Species 0.000 description 1
- 235000011779 Menyanthes trifoliata Nutrition 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种具有身份中止和公正性的安全多方计算方法,首先由安全多方计算的参与方协同生成密钥、掩码和乘法三元组,同时生成每个掩码和乘法三元组的签名以及签名验证函数,每个参与方对安全多方计算中的输入进行输入共享,然后执行其持有的计算算术电路,得到计算结果以及对应签名和签名验证函数,对乘法阶段的打开值进行检验,检验通过后再对各个参与方进行可验证的计算结果共享。本发明在电路计算完成后增加共享阶段,使用同态签名来确定计算过程的正确性,从而在不暴露计算结果的前提下完成计算结果验证,实现诚实方多数时的公正性和恶意方多数环境下的身份中止。
Description
技术领域
本发明属于密码学技术领域,更为具体地讲,涉及一种具有身份中止和公正性的安全多方计算方法。
背景技术
安全多方计算(Secure Multi-Party Computation,SMPC)允许各个互不信任的参与方联合计算某个函数,并且除了预定的输出以外,这个计算过程不会泄露任何信息。安全多方计算是隐私计算的一个重要原语之一。SPDZ是安全多方计算中一个重要的协议。SPDZ最早是2012年由Multiparty Computation from Somewhat Homomorphic Encryption提出,通过引入一套较为复杂的预处理过程,使线上计算部分变得容易,其主要优势是能在恶意方多数环境下运行。
SPDZ协议包括两个阶段,离线阶段和在线阶段。在离线阶段,使用同态加密或不经意传输生成掩码值和Beaver三元组,在在线阶段,通过使用掩码值,各个参与方将自己的输入进行共享,以电路的形式计算功能函数,在计算完成后使用消息验证码验证。在验证时,首先各个参与方广播自己计算的结果,然后再进行验证过程,因此恶意方可以在收到这些值后提供错误的信息导致验证失败,因此无法保证公正性。另一方面,由于验证是通过计算认证码和的方式完成的,诚实方无法识别恶意方的身份。
目前的常用方式是通过使用签名或承诺方案代替消息认证码来实现SPDZ的身份中止。使用承诺方案进行验证时需要较大计算开销,而且恶意方可以在学习到诚实方输出后拒绝打开承诺或者打开一个错误的值;同态签名则需要暴露计算结果,这与公正性的要求是冲突的,因为恶意方总是能滞后输出。现有的身份中止技术没有实现公正性。尽管SPDZ的主要优势是在任意恶意参与方数量下执行,但是可以实现一个SPDZ协议,其功能根据计算环境而变化,即在诚实方多数时实现公正性,而当恶意方多数时提供身份中止功能。
发明内容
本发明的目的在于克服现有技术的不足,提供一种具有身份中止和公正性的安全多方计算方法,在电路计算完成后增加共享阶段,使用同态签名来确定计算过程的正确性,从而在不暴露计算结果的前提下完成计算结果验证,实现诚实方多数时的公正性和恶意方多数环境下的身份中止。
为了实现上述发明目的,本发明具有身份中止和公正性的安全多方计算方法包括以下步骤:
S1:采用以下方法生成密钥:
1)1)安全多方计算中的N个参与方Pi协同,从域中随机生成N个常数 然后从域中随机生成W个N维常数向量w=1,2,…,W,W为预设的密钥数量,满足W=(NR+3NT)×N,NR表示掩码数量,满足NR>NI,NI表示所有参与方的输入总数,NT表示乘法三元组数量,满足NT>NM,NM表示安全多方计算中计算电路中乘法门数量;
S2:N个参与方Pi联合为每个输入随机生成掩码Rp,p=1,2,…,NR,具体方法为:每个参与方Pi随机生成一个掩码贡献值ri,p,N个参与方Pi采用签名私钥ski联合对参与方Pi的掩码贡献值ri,p生成签名σ(ri,p),记掩码贡献值ri,p的签名序号wi,p=(p-1)N+i,则签名各个参与方Pi将掩码贡献值ri,p和签名σ(ri,p)一起发送给需要该掩码的参与方Pj,参与方Pj将各参与方的掩码贡献值为ri,p和签名σ(ri,p)汇总得到掩码<Rp>={ri,p,σ(ri,p)}i=1,2,…,N,每个掩码贡献值对应的签名验证函数 为掩码签名验证函数的自变量;
S3:N个参与方Pi协同,生成H个乘法三元组(Ah,Bh,Ch),h=1,2,…,NT,具体方法为:每个参与方Pi随机生成一组乘法三元组贡献值(ai,h,bi,h,ci,h),其中ci,h=ai,h×bi,h,采用签名私钥ski对三元组贡献值(ai,h,bi,h,ci,h)生成签名σ(ai,h)、σ(bi,h)和σ(ci,h),得到H个三元组参数<Ah>={ai,h,σ(ai,h)}i=1,2,…,N、<Bh>={bi,h,σ(bi,h)}i=1,2,…,N、<Ch>={ci,h,σ(ci,h)}i=1,2,…,N,记三元组参数中每个贡献值ai,h、bi,h、ci,h的签名序号分别为wa_i,h=N×NR+3h-2、wb_i,h=N×NR+3h-1、wc_i,h=N×NR+3h,每个贡献值对应的签名验证函数分别为 表示三元组参数签名验证函数的自变量;
S4:N个参与方Pi对安全多方计算中的每个输入进行输入共享,具体方法为:记输入X对应的参与方为Pi,则参与方Pi为输入X配置掩码计算输入X的贡献值其中贡献值xi的签名为签名验证函数其他参与方Pi′令输入X的贡献值为其中i′=1,2,…,N&i′≠i,贡献值xi′的签名为签名验证函数
S5:各个参与方Pi执行其持有的计算算术电路,得到计算结果zi,并计算对应签名σ(zi)和签名验证函数计算算术电路中包含加法电路和乘法电路,在加法电路中执行本地计算,在乘法电路中需要通过消耗三元组将乘法操作转换为线性操作,其中:
加法电路的具体执行过程为:N个参与方Pi联合计算其中分别表示加法电路的两个输入,记每个参与方Pi所拥有的输入和的贡献值为和其签名分别为对应签名验证函数为和各个参与方令本地计算结果对应签名对应签名验证函数
乘法电路的具体执行过程为:N个参与方Pi联合计算其中 分别表示乘法电路的两个输入,记每个参与方Pi所拥有的输入和的贡献值为和其签名分别为对应签名验证函数为和N个参与方Pi联合选定一个可用乘法三元组记为(amul,bmul,cmul),每个参与方Pi对该乘法三元组的贡献值为其签名分别为对应的签名验证函数为每个参与方Pi广播自己的计算值然后每个参与方Pi分别计算中间值中间值即中间值ε和中间值ρ对所有参与方为打开状态,每个参与方Pi令乘法计算结果对应签名对应签名验证函数
S6:记步骤S5中所有参与方在乘法阶段的打开值为{u1,u2,…,uD},其中ud为第d个打开值,d=1,2,…,D,D=2NM,记每个打开值ud中由参与方Pi提供的贡献值为ud,i,满足将贡献值ud,i计算时所使用的乘法三元组参数的签名作为贡献值ud,i的签名σ(ud,i),将所使用的乘法三元组参数的签名验证函数作为贡献值ud,i的签名函数采用如下方法对乘法阶段打开值进行检验:
S6.1:N个参与方Pi协同生成D个随机值kd;
S7:判断步骤S6中的乘法阶段打开值检验是否通过,如果所有打开值均检验通过,则进入步骤S8,否则进入步骤S9,多方计算中止,并输出未检验通过的打开值对应的参与方身份;
S8:采用如下方法进行可验证的计算结果共享:
S8.1:每个参与方Pi对其电路计算结果zi进行秘密共享,具体方法为:预先设置秘密所属域Zp,令zi∈Zp,其中p和(p-1)/2为素数;每个参与方Pj选择并广播随机数qj;然后参与方Pi随机选取N/2个随机数t1,t2,…,tN/2,计算检验辅助参数和并广播,其中n′=1,2,…,N/2,g为预设的域Zp的生成元;参与方Pi计算向参与方Pj的共享值并发送给参与方Pj,参与方Pj在接收到共享值zi,j后,判断是否成立,如果成立,则检验通过,否则检验不通过,参与方Pj广播参与方Pi进行错误共享的消息;
S8.2:如果有参与方在秘密共享时存在检验不通过,则进入步骤S8.3,如果所有参与方在秘密共享时均检验通过,则进入步骤8.4;
S8.3:当有参与方Pj广播参与方Pi进行错误共享的消息时,参与方Pi采用零知识证明算法证明自己发送给参与方Pj的是正确共享值,证明过程向所有参与方公开,如果参与方Pi能够提供正确证明,则其他参与方联合判定参与方Pi′为恶意方,否则其他参与方联合判定参与方Pi为恶意方;证明结束后多方计算中止;
S8.4:每个参与方生成计算结果zi的签名广播值并进行广播,σ(zi)[n]表示计算结果zi签名σ(zi)的第n维分量;每个参与方Pj在接收到参与方Pi的计算结果广播值和计算结果签名广播值后,根据验证密钥vkj=(vj,αj,{βj,w}w=1,2,…,W)采用如下方法进行检验:
记计算结果zi的签名验证函数其中c′w表示签名验证函数中自变量的系数,γ′为常数项;计算检验参数检查等式是否成立,如果成立,则检验通过,进入步骤S8.4,否则检验不通过,参与方Pj广播参与方Pi为恶意方的消息,多方计算中止;
S8.5:每个参与方Pi分别广播其计算结果,记参与方Pi的广播计算结果为其他参与方在接收到广播计算结果后,判断是否与步骤S8.1中广播的一致,即是否如果一致,则不做任何操作,如果不一致,则广播参与方Pi为恶意方,进入步骤S8.6;
S8.6:判断当前被声称为恶意方的参与方数量是否大于N/2,如果是,则安全多方计算中止,否则进入步骤S8.7;
S8.7:基于拉格朗日插值算法对恶意方的计算结果进行恢复,恢复成功则安全多方计算完成,否则安全多方计算中止,并输出恶意方身份。
本发明具有身份中止和公正性的安全多方计算方法,首先由安全多方计算的参与方协同生成密钥、掩码和乘法三元组,同时生成每个掩码和乘法三元组的签名以及签名验证函数,每个参与方对安全多方计算中的输入进行输入共享,然后执行其持有的计算算术电路,得到计算结果以及对应签名和签名验证函数,对乘法阶段的打开值进行检验,检验通过后再对各个参与方进行可验证的计算结果共享。
本发明具有以下有益效果:
1)本发明中使用同态签名进行验证,恶意方想要成功欺骗必须生成对应签名,其概率是可忽略的,增加了安全多方计算的安全性;
2)本发明在计算电路执行后增加了可验证的计算结果共享,在该阶段各个参与方共享自己的计算输出,确保超过半数以上时秘密可以恢复,从而实现诚实方多数时的公正性;
3)本发明在诚实方多数情况下能实现公正性,在恶意方多数时实现身份中止。
附图说明
图1是本发明具有身份中止和公正性的安全多方计算方法的具体实施方式流程图;
图2是本发明中检验乘法阶段打开值的流程图;
图3是本发明中可验证的计算结果共享的流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例
图1是本发明具有身份中止和公正性的安全多方计算方法的具体实施方式流程图。如图1所示,本发明具有身份中止和公正性的安全多方计算方法的具体步骤包括:
S101:生成密钥:
为了实现安全多方计算的安全性,首先采用以下方法生成密钥:
1)安全多方计算中的N个参与方Pi协同,从域中随机生成N个常数 然后从域中随机生成W个N维常数向量w=1,2,…,W,W为预设的密钥数量,满足W=(NR+3NT)×N,NR表示掩码数量,满足NR>NI,NI表示所有参与方的输入总数,NT表示乘法三元组数量,满足NT>NM,NM表示安全多方计算中计算电路中乘法门数量。在实际应用中,输入总数和乘法门数量并不是一定已知,因此掩码数量NR和乘法三元组数量NT可以设置一个绝对大值,以提高普适性。
S102:生成掩码:
N个参与方Pi联合为每个输入随机生成掩码Rp,p=1,2,…,NR,具体方法为:每个参与方Pi随机生成一个掩码贡献值ri,p,N个参与方Pi采用签名私钥ski联合对参与方Pi的掩码贡献值ri,p生成签名σ(ri,p),记掩码贡献值ri,p的签名序号wi,p=(p-1)N+i,则签名该签名过程可以采用同态签名或不经意传输实现。各个参与方Pi将掩码贡献值ri,p和签名σ(ri,p)一起发送给需要该掩码的参与方Pj,参与方Pj将各参与方的掩码贡献值为ri,p和签名σ(ri,p)汇总得到掩码<Rp>={ri,p,σ(ri,p)}i=1,2,…,N,每个掩码贡献值对应的签名验证函数 为掩码签名验证函数的自变量。
采用这种方式,掩码<Rp>仅为使用该掩码的参与方所知,其他参与方只知道其掩码贡献值ri,p。
S103:生成乘法三元组:
N个参与方Pi协同,生成H个乘法三元组(Ah,Bh,Ch),h=1,2,…,NT,具体方法为:每个参与方Pi随机生成一组乘法三元组贡献值(ai,h,bi,h,ci,h),其中ci,h=ai,h×bi,h,采用签名私钥ski对三元组贡献值(ai,h,bi,h,ci,h)生成签名σ(ai,h)、σ(bi,h)和σ(ci,h),得到H个三元组参数<Ah>={ai,h,σ(ai,h)}i=1,2,…,N、<Bh>={bi,h,σ(bi,h)}i=1,2,…,N、<Ch>={ci,h,σ(ci,h)}i=1,2,…,N,记三元组参数中每个贡献值ai,h、bi,h、ci,h的签名序号分别为wa_i,h=N×NR+3h-2、wb_i,h=N×NR+3h-1、wc_i,h=N×NR+3h,每个贡献值对应的签名验证函数分别为 表示三元组参数签名验证函数的自变量。
步骤S101至步骤S103共同构成离线阶段,在离线阶段,各个参与方协同在随机值上计算掩码值和三元组。此阶段得到的结果被用来加速在线阶段对应的操作,即掩码值用来输入共享,三元组加速乘法操作。接下来需要进行在线计算以及验证。
S104:输入共享:
N个参与方Pi对安全多方计算中的每个输入进行输入共享,具体方法为:记输入X对应的参与方为Pi,则参与方Pi为输入X配置掩码计算输入X的贡献值其中贡献值xi的签名为签名验证函数其他参与方Pi′令输入X的贡献值为其中i′=1,2,…,N&i′≠i,贡献值xi′的签名为签名验证函数容易验证根据以上描述可知,贡献值的签名验证函数中,贡献值xi相对比掩码的签名验证函数多了一个常数项,贡献值xi′的签名验证函数与对应掩码的签名验证函数相同。
S105:执行计算电路:
各个参与方Pi执行其持有的计算算术电路,得到计算结果zi,并计算对应签名σ(zi)和签名验证函数计算算术电路中包含加法电路和乘法电路,在加法电路中执行本地计算,在乘法电路中需要通过消耗三元组将乘法操作转换为线性操作。在计算电路中乘法电路的执行过程中,对乘法电路中的中间结果[x1]-<a>、[x2]-<b>进行打开,其中[x1]、[x2]分别为该乘法电路的输入,<a>、<b>分别表示为该乘法电路分配的三元组中的参数。
具体来说,对于加法电路,N个参与方Pi联合计算其中 分别表示加法电路的两个输入,记每个参与方Pi所拥有的输入和的贡献值为和其签名分别为对应签名验证函数为和为了执行加法,各个参与方令本地计算结果对应签名对应签名验证函数
对于乘法电路,N个参与方Pi联合计算其中分别表示乘法电路的两个输入,记每个参与方Pi所拥有的输入和的贡献值为和其签名分别为对应签名验证函数为和N个参与方Pi联合选定一个可用乘法三元组记为(amul,bmul,cmul),每个参与方Pi对该乘法三元组的贡献值为其签名分别为对应的签名验证函数为每个参与方Pi广播自己的计算值 然后每个参与方Pi分别计算中间值值即中间值ε和中间值ρ对所有参与方为打开状态,每个参与方Pi令乘法计算结果对应签名对应签名验证函数不难验证,
S106:乘法电路执行中打开值检验:
在电路执行完成后,需要进行正确性检测。在计算电路执行过程中,每个乘法电路分别打开了2个值(即ε和ρ),需要对2NM个打开值进行检验。记步骤S105中所有参与方在乘法阶段的打开值为{u1,u2,…,uD},其中ud为第d个打开值,d=1,2,…,D,D=2NM,记每个打开值ud中由参与方Pi提供的贡献值为ud,i(即或),满足将贡献值ud,i计算时所使用的乘法三元组参数的签名(即或)作为贡献值ud,i的签名σ(ud,i),将所使用乘法三元组参数的签名验证函数作为贡献值ud,i的签名函数图2是本发明中检验乘法阶段打开值的流程图。如图2所示,本发明中检验乘法阶段打开值的具体步骤包括:
S201:生成随机值:
N个参与方Pi协同生成D个随机值kd。
S202:对打开值进行预处理并签名广播:
S203:签名检验:
S107:判断步骤S106中的乘法阶段打开值检验是否通过,如果所有打开值均检验通过,则进入步骤S108,否则进入步骤S109,多方计算中止,并输出未检验通过的打开值对应的参与方身份。
S108:可验证的计算结果共享:
为了实现公正性,本发明在计算结果共享时采用可验证的计算结果共享。图3是本发明中可验证的计算结果共享的流程图。如图3所示,本发明中可验证的计算结果共享的具体步骤包括:
S301:计算结果秘密共享:
每个参与方Pi对其电路计算结果zi进行秘密共享,具体方法为:预先设置秘密所属域Zp,令zi∈Zp,其中p和(p-1)/2为素数。每个参与方Pj选择并广播随机数qj。然后参与方Pi随机选取N/2个随机数t1,t2,…,tN/2,计算检验辅助参数和并广播,其中n′=1,2,…,N/2,g为预设的域Zp的生成元。参与方Pi计算向参与方Pj的共享值并发送给参与方Pj,参与方Pj在接收到共享值zi,j后,判断是否成立,如果成立,则检验通过,否则检验不通过,参与方Pj广播参与方Pi进行错误共享的消息。
S302:如果有参与方在秘密共享时存在检验不通过,则进入步骤S303,如果所有参与方在秘密共享时均检验通过,则进入步骤S304。
S303:零知识证明:
当有参与方Pj广播参与方Pi进行错误共享的消息时,参与方Pi采用零知识证明算法证明自己发送给参与方Pj的是正确共享值,证明过程向所有参与方公开,如果参与方Pi能够提供正确证明,则其他参与方联合判定参与方Pi′为恶意方,否则其他参与方联合判定参与方Pi为恶意方。证明结束后多方计算中止。
本实施例中零知识证明算法采用文献“J.Camenisch,V.Shoup,in AnnualInternational Cryptology Conference(Springer,2003),pp.126–144”公开的算法。
S304:计算结果保密性打开:
由于步骤1)中,每个参与方Pi已经公开了检验辅助参数因此,本步骤中,每个参与方生成计算结果zi的签名广播值并进行广播,σ(zi)[n]表示计算结果zi签名σ(zi)的第n维分量。每个参与方Pj在接收到参与方Pi的计算结果广播值和计算结果签名广播值后,根据验证密钥vkj=(vj,αj,{βj,w}w=1,2,…,W)采用如下方法进行检验:
记计算结果zi的签名验证函数其中c′w表示签名验证函数中自变量的系数,γ′为常数项。计算检验参数检查等式是否成立,如果成立,则检验通过,进入步骤S304,否则检验不通过,参与方Pj广播参与方Pi为恶意方的消息,多方计算中止。
在保密性打开中,签名广播值在生成和计算过程都是保密的,并且在验证之后也是保密的,签名的正确性和保密性直接根据离散对数的困难性可得,从而确保参与方诚实地输出共享计算结果,同时也可以实现对于恶意方身份的检测。
S305:计算结果一致性判断:
每个参与方Pi分别广播其计算结果,记参与方Pi的广播计算结果为其他参与方在接收到广播计算结果后,判断是否与步骤S301中广播的一致,即是否如果一致,则不做任何操作,如果不一致,则广播参与方Pi为恶意方,进入步骤S306。
S306:判断当前被声称为恶意方的参与方数量是否大于N/2,如果是,则安全多方计算中止,否则进入步骤S307。
S307:基于拉格朗日插值算法对恶意方的计算结果进行恢复,恢复成功则安全多方计算完成,否则安全多方计算中止,并输出恶意方身份。本实施例中,恶意方计算结果恢复的具体方法如下:
2)随机选择N/2个诚实方构成重构小组,用于提供重构数据。
记当前重构小组中N/2个诚实方为其中in′表示这N/2个诚实方的原始序号,记其在步骤S301中得到的参与方的共享值为记其在步骤S301中广播的随机数为将共享值为随机数构成N/2个点值对基于这N/2个点值对拟合得到拉格朗日多项式,然后再每个参与方Pj广播的随机数qj,基于拉格朗日多项式得到对应的重构共享值
7)判断是否t<N/2,如果是,进入步骤8),否则重构失败。
8)筛选出属于重构小组且在步骤4)中未通过输入一致性检验的参与方,从剩余诚实方中随机选择诚实方对其进行替换,对重构小组进行更新,然后令t=t+1,返回步骤3)。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (2)
1.一种具有身份中止和公正性的安全多方计算方法,其特征在于,包括以下步骤:
S1:采用以下方法生成密钥:
1)1)安全多方计算中的N个参与方Pi协同,从域中随机生成N个常数 然后从域中随机生成W个N维常数向量 W为预设的密钥数量,满足W=(NR+3NT)×N,NR表示掩码数量,满足NR>NI,NI表示所有参与方的输入总数,NT表示乘法三元组数量,满足NT>NM,NM表示安全多方计算中计算电路中乘法门数量;
S2:N个参与方Pi联合为每个输入随机生成掩码Rp,p=1,2,…,NR,具体方法为:每个参与方Pi随机生成一个掩码贡献值ri,p,N个参与方Pi采用签名私钥ski联合对参与方Pi的掩码贡献值ri,p生成签名σ(ri,p),记掩码贡献值ri,p的签名序号wi,p=(p-1)N+i,则签名各个参与方Pi将掩码贡献值ri,p和签名σ(ri,p)一起发送给需要该掩码的参与方Pj,参与方Pj将各参与方的掩码贡献值为ri,p和签名σ(ri,p)汇总得到掩码<Rp>={ri,p,σ(ri,p)}i=1,2,…,N,每个掩码贡献值对应的签名验证函数 为掩码签名验证函数的自变量;
S3:N个参与方Pi协同,生成H个乘法三元组(Ah,Bh,Ch),h=1,2,…,NT,具体方法为:每个参与方Pi随机生成一组乘法三元组贡献值(ai,h,bi,h,ci,h),其中ci,h=ai,h×bi,h,采用签名私钥ski对三元组贡献值(ai,h,bi,h,ci,h)生成签名σ(ai,h)、σ(bi,h)和σ(ci,h),得到H个三元组参数<Ah>={ai,h,σ(ai,h)}i=1,2,…,N、<Bh>={bi,h,σ(bi,h)}i=1,2,…,N、<Ch>={ci,h,σ(ci,h)}i=1,2,…,N,记三元组参数中每个贡献值ai,h、bi,h、ci,h的签名序号分别为wa_i,h=N×NR+3h-2、wb_i,h=N×NR+3h-1、wc_i,h=N×NR+3h,每个贡献值对应的签名验证函数分别为 表示三元组参数签名验证函数的自变量;
S4:N个参与方Pi对安全多方计算中的每个输入进行输入共享,具体方法为:记输入X对应的参与方为Pi,则参与方Pi为输入X配置掩码计算输入X的贡献值其中贡献值xi的签名为签名验证函数其他参与方Pi′令输入X的贡献值为其中i′=1,2,…,N&i′≠i,贡献值xi′的签名为签名验证函数
S5:各个参与方Pi执行其持有的计算算术电路,得到计算结果zi,并计算对应签名σ(zi)和签名验证函数计算算术电路中包含加法电路和乘法电路,在加法电路中执行本地计算,在乘法电路中需要通过消耗三元组将乘法操作转换为线性操作,其中:
加法电路的具体执行过程为:N个参与方Pi联合计算其中分别表示加法电路的两个输入,记每个参与方Pi所拥有的输入和的贡献值为和其签名分别为对应签名验证函数为和各个参与方令本地计算结果对应签名对应签名验证函数
乘法电路的具体执行过程为:N个参与方Pi联合计算其中 分别表示乘法电路的两个输入,记每个参与方Pi所拥有的输入和的贡献值为和其签名分别为对应签名验证函数为和N个参与方Pi联合选定一个可用乘法三元组记为(amul,bmul,cmul),每个参与方Pi对该乘法三元组的贡献值为其签名分别为对应的签名验证函数为每个参与方Pi广播自己的计算值然后每个参与方Pi分别计算中间值中间值即中间值ε和中间值ρ对所有参与方为打开状态,每个参与方Pi令乘法计算结果对应签名对应签名验证函数
S6:记步骤S5中所有参与方在乘法阶段的打开值为{u1,u2,…,uD},其中ud为第d个打开值,d=1,2,…,D,D=2NM,记每个打开值ud中由参与方Pi提供的贡献值为ud,i,满足将贡献值ud,i计算时所使用的乘法三元组参数的签名作为贡献值ud,i的签名σ(ud,i),将所使用的乘法三元组参数的签名验证函数作为贡献值ud,i的签名函数采用如下方法对乘法阶段打开值进行检验:
S6.1:N个参与方Pi协同生成D个随机值kd;
S7:判断步骤S6中的乘法阶段打开值检验是否通过,如果所有打开值均检验通过,则进入步骤S8,否则进入步骤S9,多方计算中止,并输出未检验通过的打开值对应的参与方身份;
S8:采用如下方法进行可验证的计算结果共享:
S8.1:每个参与方Pi对其电路计算结果zi进行秘密共享,具体方法为:预先设置秘密所属域Zp,令zi∈Zp,其中p和(p-1)/2为素数;每个参与方Pj选择并广播随机数qj;然后参与方Pi随机选取N/2个随机数t1,t2,…,tN2,计算检验辅助参数和并广播,其中n′=1,2,…,N/2,g为预设的域Zp的生成元;参与方Pi计算向参与方Pj的共享值并发送给参与方Pj,参与方Pj在接收到共享值zi,j后,判断是否成立,如果成立,则检验通过,否则检验不通过,参与方Pj广播参与方Pi进行错误共享的消息;
S8.2:如果有参与方在秘密共享时存在检验不通过,则进入步骤S8.3,如果所有参与方在秘密共享时均检验通过,则进入步骤8.4;
S8.3:当有参与方Pj广播参与方Pi进行错误共享的消息时,参与方Pi采用零知识证明算法证明自己发送给参与方Pj的是正确共享值,证明过程向所有参与方公开,如果参与方Pi能够提供正确证明,则其他参与方联合判定参与方Pi′为恶意方,否则其他参与方联合判定参与方Pi为恶意方;证明结束后多方计算中止;
S8.4:每个参与方生成计算结果zi的签名广播值并进行广播,σ(zi)[n]表示计算结果zi签名σ(zi)的第n维分量;每个参与方Pj在接收到参与方Pi的计算结果广播值和计算结果签名广播值后,根据验证密钥vkj=(vj,αj,{βj,w}w=1,2,…,W)采用如下方法进行检验:
记计算结果zi的签名验证函数其中c′w表示签名验证函数中自变量的系数,γ′为常数项;计算检验参数检查等式是否成立,如果成立,则检验通过,进入步骤S8.4,否则检验不通过,参与方Pj广播参与方Pi为恶意方的消息,多方计算中止;
S8.5:每个参与方Pi分别广播其计算结果,记参与方Pi的广播计算结果为其他参与方在接收到广播计算结果后,判断是否与步骤S8.1中广播的一致,即是否如果一致,则不做任何操作,如果不一致,则广播参与方Pi为恶意方,进入步骤S8.6;
S8.6:判断当前被声称为恶意方的参与方数量是否大于N/2,如果是,则安全多方计算中止,否则进入步骤S8.7;
S8.7:基于拉格朗日插值算法对恶意方的计算结果进行恢复,恢复成功则安全多方计算完成,否则安全多方计算中止,并输出恶意方身份。
2.根据权利要求1所述的安全多方计算方法,其特征在于,所述步骤S8.6中,恶意方计算结果恢复的具体方法如下:
2)随机选择N/2个诚实方构成重构小组,用于提供重构数据;
记当前重构小组中N/2个诚实方为其中in′表示这N/2个诚实方的原始序号,记其在步骤S8.1中得到的参与方的共享值为记其在步骤S8.1中广播的随机数为将共享值为随机数构成N/2个点值对基于这N/2个点值对拟合得到拉格朗日多项式,然后再每个参与方Pj广播的随机数qj,基于拉格朗日多项式得到对应的重构共享值
7)判断是否t<N/2,如果是,进入步骤8),否则重构失败;
8)筛选出属于重构小组且在步骤4)中未通过输入一致性检验的参与方,从剩余诚实方中随机选择诚实方对其进行替换,对重构小组进行更新,然后令t=t+1,返回步骤3)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310092993.9A CN116032492A (zh) | 2023-02-03 | 2023-02-03 | 具有身份中止和公正性的安全多方计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310092993.9A CN116032492A (zh) | 2023-02-03 | 2023-02-03 | 具有身份中止和公正性的安全多方计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116032492A true CN116032492A (zh) | 2023-04-28 |
Family
ID=86075832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310092993.9A Pending CN116032492A (zh) | 2023-02-03 | 2023-02-03 | 具有身份中止和公正性的安全多方计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116032492A (zh) |
-
2023
- 2023-02-03 CN CN202310092993.9A patent/CN116032492A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110971405B (zh) | 多方协同的sm2签名、解密方法及其系统 | |
Goyal et al. | Guaranteed output delivery comes free in honest majority MPC | |
Halevi et al. | Non-interactive multiparty computation without correlated randomness | |
CN101267308B (zh) | 具有门限追踪性的民主群签名方法 | |
Pass et al. | Construction of a non-malleable encryption scheme from any semantically secure one | |
CN113645020A (zh) | 一种基于安全多方计算的联盟链隐私保护方法 | |
CN113435121B (zh) | 基于联邦学习的模型训练验证方法、装置、设备及介质 | |
CN110945831A (zh) | 抗Sybil攻击身份的生成 | |
CN112600675B (zh) | 基于群签名的电子投票方法及装置、电子设备、存储介质 | |
EP3105881B1 (en) | Quantum position based authentication | |
Horvitz et al. | Universally-composable two-party computation in two rounds | |
Yang et al. | Efficient and secure federated learning with verifiable weighted average aggregation | |
Ni et al. | Multi-party dynamic state estimation that preserves data and model privacy | |
Gong et al. | Secure rational numbers equivalence test based on threshold cryptosystem with rational numbers | |
CN114444069A (zh) | 一种恶意模型下高效的阈值安全多方计算方法 | |
Hirt et al. | MPC vs. SFE: Unconditional and computational security | |
CN116032492A (zh) | 具有身份中止和公正性的安全多方计算方法 | |
Kiraz et al. | An efficient protocol for fair secure two-party computation | |
Zhong et al. | Dual-Server Based Lightweight Privacy-Preserving Federated Learning | |
AT&T | ||
Takeuchi et al. | Unconditional verification of quantum computation with classical light | |
Kim et al. | A key recovery protocol for multiparty threshold ecdsa schemes | |
Liu et al. | Efficient and Privacy-Preserving Cloud-Assisted Two-Party Computation Scheme in Heterogeneous Networks | |
Chen et al. | Blockchain-Based Voting Scheme Against Malicious Attacks | |
Smart et al. | Zero-knowledge proofs |
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 |