CN116032492A - 具有身份中止和公正性的安全多方计算方法 - Google Patents

具有身份中止和公正性的安全多方计算方法 Download PDF

Info

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
Application number
CN202310092993.9A
Other languages
English (en)
Inventor
聂龙
姚绍文
刘璟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yunnan University YNU
Original Assignee
Yunnan University YNU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yunnan University YNU filed Critical Yunnan University YNU
Priority to CN202310092993.9A priority Critical patent/CN116032492A/zh
Publication of CN116032492A publication Critical patent/CN116032492A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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协同,从域
Figure BDA0004070899900000021
中随机生成N个常数
Figure BDA0004070899900000022
Figure BDA0004070899900000023
然后从域
Figure BDA0004070899900000024
中随机生成W个N维常数向量
Figure BDA0004070899900000025
w=1,2,…,W,W为预设的密钥数量,满足W=(NR+3NT)×N,NR表示掩码数量,满足NR>NI,NI表示所有参与方的输入总数,NT表示乘法三元组数量,满足NT>NM,NM表示安全多方计算中计算电路中乘法门数量;
2)参与方Pi从域
Figure BDA0004070899900000026
中随机生成N维常数向量
Figure BDA0004070899900000027
计算得到N个常数
Figure BDA0004070899900000028
和W个常数向量
Figure BDA0004070899900000029
3)参与方Pi确定其签名私钥
Figure BDA00040708999000000210
以及验证密钥vki=(vii,{βi,w}w=1,2,…,W);
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,则签名
Figure BDA00040708999000000211
各个参与方Pi将掩码贡献值ri,p和签名σ(ri,p)一起发送给需要该掩码的参与方Pj,参与方Pj将各参与方的掩码贡献值为ri,p和签名σ(ri,p)汇总得到掩码<Rp>={ri,p,σ(ri,p)}i=1,2,…,N,每个掩码贡献值对应的签名验证函数
Figure BDA00040708999000000212
Figure BDA00040708999000000213
为掩码签名验证函数的自变量;
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,每个贡献值对应的签名验证函数分别为
Figure BDA0004070899900000031
Figure BDA0004070899900000032
Figure BDA0004070899900000033
表示三元组参数签名验证函数的自变量;
S4:N个参与方Pi对安全多方计算中的每个输入进行输入共享,具体方法为:记输入X对应的参与方为Pi,则参与方Pi为输入X配置掩码
Figure BDA0004070899900000034
计算输入X的贡献值
Figure BDA0004070899900000035
其中
Figure BDA0004070899900000036
贡献值xi的签名为
Figure BDA0004070899900000037
签名验证函数
Figure BDA0004070899900000038
其他参与方Pi′令输入X的贡献值为
Figure BDA0004070899900000039
其中i′=1,2,…,N&i′≠i,贡献值xi′的签名为
Figure BDA00040708999000000310
签名验证函数
Figure BDA00040708999000000311
S5:各个参与方Pi执行其持有的计算算术电路,得到计算结果zi,并计算对应签名σ(zi)和签名验证函数
Figure BDA00040708999000000312
计算算术电路中包含加法电路和乘法电路,在加法电路中执行本地计算,在乘法电路中需要通过消耗三元组将乘法操作转换为线性操作,其中:
加法电路的具体执行过程为:N个参与方Pi联合计算
Figure BDA00040708999000000313
其中
Figure BDA00040708999000000314
分别表示加法电路的两个输入,记每个参与方Pi所拥有的输入
Figure BDA00040708999000000315
Figure BDA00040708999000000316
的贡献值为
Figure BDA00040708999000000317
Figure BDA00040708999000000318
其签名分别为
Figure BDA00040708999000000319
对应签名验证函数为
Figure BDA00040708999000000320
Figure BDA00040708999000000321
各个参与方令本地计算结果
Figure BDA00040708999000000322
对应签名
Figure BDA00040708999000000323
对应签名验证函数
Figure BDA00040708999000000324
乘法电路的具体执行过程为:N个参与方Pi联合计算
Figure BDA00040708999000000325
其中
Figure BDA00040708999000000326
Figure BDA00040708999000000327
分别表示乘法电路的两个输入,记每个参与方Pi所拥有的输入
Figure BDA00040708999000000328
Figure BDA00040708999000000329
的贡献值为
Figure BDA00040708999000000330
Figure BDA00040708999000000331
其签名分别为
Figure BDA00040708999000000332
对应签名验证函数为
Figure BDA00040708999000000333
Figure BDA00040708999000000334
N个参与方Pi联合选定一个可用乘法三元组记为(amul,bmul,cmul),每个参与方Pi对该乘法三元组的贡献值为
Figure BDA00040708999000000335
其签名分别为
Figure BDA00040708999000000336
对应的签名验证函数为
Figure BDA00040708999000000337
每个参与方Pi广播自己的计算值
Figure BDA00040708999000000338
然后每个参与方Pi分别计算中间值
Figure BDA00040708999000000339
中间值
Figure BDA00040708999000000340
即中间值ε和中间值ρ对所有参与方为打开状态,每个参与方Pi令乘法计算结果
Figure BDA00040708999000000341
对应签名
Figure BDA0004070899900000041
对应签名验证函数
Figure BDA0004070899900000042
S6:记步骤S5中所有参与方在乘法阶段的打开值为{u1,u2,…,uD},其中ud为第d个打开值,d=1,2,…,D,D=2NM,记每个打开值ud中由参与方Pi提供的贡献值为ud,i,满足
Figure BDA0004070899900000043
将贡献值ud,i计算时所使用的乘法三元组参数的签名作为贡献值ud,i的签名σ(ud,i),将所使用的乘法三元组参数的签名验证函数作为贡献值ud,i的签名函数
Figure BDA0004070899900000044
采用如下方法对乘法阶段打开值进行检验:
S6.1:N个参与方Pi协同生成D个随机值kd
S6.2:每个参与方Pi计算得到本地融合打开值
Figure BDA0004070899900000045
系数kd为预设的属于域
Figure BDA0004070899900000046
的参数,然后采用如下方法对融合打开值hi进行签名,得到签名σ(hi):
Figure BDA0004070899900000047
参与方Pi广播签名σ(hi)、融合打开值hi和其对应的签名认证函数
Figure BDA0004070899900000048
其中cw表示签名验证函数fh,i中自变量
Figure BDA0004070899900000049
的系数,γ为常数项;
S6.3:每个参与方Pj在接收到其他参与方Pi广播的广播签名σ(hi)、融合打开值hi和其对应的签名认证函数
Figure BDA00040708999000000410
根据验证密钥vkj=(vjj,{βj,w}w=1,2,…,W)采用如下方法进行检验:
计算检验参数
Figure BDA00040708999000000411
检查等式
Figure BDA00040708999000000412
是否成立,其中σ(hi)[n]是签名σ(hi)中第n维分量,如果成立,则检验通过,否则检验不通过;
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,计算检验辅助参数
Figure BDA0004070899900000051
Figure BDA0004070899900000052
并广播,其中n′=1,2,…,N/2,g为预设的域Zp的生成元;参与方Pi计算向参与方Pj的共享值
Figure BDA0004070899900000053
并发送给参与方Pj,参与方Pj在接收到共享值zi,j后,判断
Figure BDA0004070899900000054
是否成立,如果成立,则检验通过,否则检验不通过,参与方Pj广播参与方Pi进行错误共享的消息;
S8.2:如果有参与方在秘密共享时存在检验不通过,则进入步骤S8.3,如果所有参与方在秘密共享时均检验通过,则进入步骤8.4;
S8.3:当有参与方Pj广播参与方Pi进行错误共享的消息时,参与方Pi采用零知识证明算法证明自己发送给参与方Pj的是正确共享值,证明过程向所有参与方公开,如果参与方Pi能够提供正确证明,则其他参与方联合判定参与方Pi′为恶意方,否则其他参与方联合判定参与方Pi为恶意方;证明结束后多方计算中止;
S8.4:每个参与方生成计算结果zi的签名广播值
Figure BDA0004070899900000055
并进行广播,σ(zi)[n]表示计算结果zi签名σ(zi)的第n维分量;每个参与方Pj在接收到参与方Pi的计算结果广播值
Figure BDA0004070899900000056
和计算结果签名广播值
Figure BDA0004070899900000057
后,根据验证密钥vkj=(vjj,{βj,w}w=1,2,…,W)采用如下方法进行检验:
记计算结果zi的签名验证函数
Figure BDA0004070899900000058
其中c′w表示签名验证函数
Figure BDA0004070899900000059
中自变量
Figure BDA00040708999000000510
的系数,γ′为常数项;计算检验参数
Figure BDA00040708999000000511
检查等式
Figure BDA00040708999000000512
是否成立,如果成立,则检验通过,进入步骤S8.4,否则检验不通过,参与方Pj广播参与方Pi为恶意方的消息,多方计算中止;
S8.5:每个参与方Pi分别广播其计算结果,记参与方Pi的广播计算结果为
Figure BDA00040708999000000513
其他参与方在接收到广播计算结果
Figure BDA00040708999000000514
后,判断
Figure BDA00040708999000000515
是否与步骤S8.1中广播的
Figure BDA00040708999000000516
一致,即是否
Figure BDA00040708999000000517
如果一致,则不做任何操作,如果不一致,则广播参与方Pi为恶意方,进入步骤S8.6;
S8.6:判断当前被声称为恶意方的参与方数量是否大于N/2,如果是,则安全多方计算中止,否则进入步骤S8.7;
S8.7:基于拉格朗日插值算法对恶意方的计算结果进行恢复,恢复成功则安全多方计算完成,否则安全多方计算中止,并输出恶意方身份。
本发明具有身份中止和公正性的安全多方计算方法,首先由安全多方计算的参与方协同生成密钥、掩码和乘法三元组,同时生成每个掩码和乘法三元组的签名以及签名验证函数,每个参与方对安全多方计算中的输入进行输入共享,然后执行其持有的计算算术电路,得到计算结果以及对应签名和签名验证函数,对乘法阶段的打开值进行检验,检验通过后再对各个参与方进行可验证的计算结果共享。
本发明具有以下有益效果:
1)本发明中使用同态签名进行验证,恶意方想要成功欺骗必须生成对应签名,其概率是可忽略的,增加了安全多方计算的安全性;
2)本发明在计算电路执行后增加了可验证的计算结果共享,在该阶段各个参与方共享自己的计算输出,确保超过半数以上时秘密可以恢复,从而实现诚实方多数时的公正性;
3)本发明在诚实方多数情况下能实现公正性,在恶意方多数时实现身份中止。
附图说明
图1是本发明具有身份中止和公正性的安全多方计算方法的具体实施方式流程图;
图2是本发明中检验乘法阶段打开值的流程图;
图3是本发明中可验证的计算结果共享的流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例
图1是本发明具有身份中止和公正性的安全多方计算方法的具体实施方式流程图。如图1所示,本发明具有身份中止和公正性的安全多方计算方法的具体步骤包括:
S101:生成密钥:
为了实现安全多方计算的安全性,首先采用以下方法生成密钥:
1)安全多方计算中的N个参与方Pi协同,从域
Figure BDA0004070899900000071
中随机生成N个常数
Figure BDA0004070899900000072
Figure BDA0004070899900000073
然后从域
Figure BDA0004070899900000074
中随机生成W个N维常数向量
Figure BDA0004070899900000075
w=1,2,…,W,W为预设的密钥数量,满足W=(NR+3NT)×N,NR表示掩码数量,满足NR>NI,NI表示所有参与方的输入总数,NT表示乘法三元组数量,满足NT>NM,NM表示安全多方计算中计算电路中乘法门数量。在实际应用中,输入总数和乘法门数量并不是一定已知,因此掩码数量NR和乘法三元组数量NT可以设置一个绝对大值,以提高普适性。
2)参与方Pi从域
Figure BDA0004070899900000076
中随机生成N维常数向量
Figure BDA0004070899900000077
计算得到N个常数
Figure BDA0004070899900000078
和W个常数向量
Figure BDA0004070899900000079
3)参与方Pi确定其签名私钥
Figure BDA00040708999000000710
以及验证密钥vki=(vii,{βi,w}w=1,2,…,W)。
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,则签名
Figure BDA00040708999000000711
该签名过程可以采用同态签名或不经意传输实现。各个参与方Pi将掩码贡献值ri,p和签名σ(ri,p)一起发送给需要该掩码的参与方Pj,参与方Pj将各参与方的掩码贡献值为ri,p和签名σ(ri,p)汇总得到掩码<Rp>={ri,p,σ(ri,p)}i=1,2,…,N,每个掩码贡献值对应的签名验证函数
Figure BDA00040708999000000712
Figure BDA00040708999000000713
为掩码签名验证函数的自变量。
采用这种方式,掩码<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,每个贡献值对应的签名验证函数分别为
Figure BDA0004070899900000081
Figure BDA0004070899900000082
Figure BDA0004070899900000083
表示三元组参数签名验证函数的自变量。
步骤S101至步骤S103共同构成离线阶段,在离线阶段,各个参与方协同在随机值上计算掩码值和三元组。此阶段得到的结果被用来加速在线阶段对应的操作,即掩码值用来输入共享,三元组加速乘法操作。接下来需要进行在线计算以及验证。
S104:输入共享:
N个参与方Pi对安全多方计算中的每个输入进行输入共享,具体方法为:记输入X对应的参与方为Pi,则参与方Pi为输入X配置掩码
Figure BDA0004070899900000084
计算输入X的贡献值
Figure BDA0004070899900000085
其中
Figure BDA0004070899900000086
贡献值xi的签名为
Figure BDA0004070899900000087
签名验证函数
Figure BDA0004070899900000088
其他参与方Pi′令输入X的贡献值为
Figure BDA0004070899900000089
其中i′=1,2,…,N&i′≠i,贡献值xi′的签名为
Figure BDA00040708999000000810
签名验证函数
Figure BDA00040708999000000811
容易验证
Figure BDA00040708999000000812
根据以上描述可知,贡献值的签名验证函数中,贡献值xi相对比掩码的签名验证函数多了一个常数项,贡献值xi′的签名验证函数与对应掩码的签名验证函数相同。
S105:执行计算电路:
各个参与方Pi执行其持有的计算算术电路,得到计算结果zi,并计算对应签名σ(zi)和签名验证函数
Figure BDA00040708999000000813
计算算术电路中包含加法电路和乘法电路,在加法电路中执行本地计算,在乘法电路中需要通过消耗三元组将乘法操作转换为线性操作。在计算电路中乘法电路的执行过程中,对乘法电路中的中间结果[x1]-<a>、[x2]-<b>进行打开,其中[x1]、[x2]分别为该乘法电路的输入,<a>、<b>分别表示为该乘法电路分配的三元组中的参数。
具体来说,对于加法电路,N个参与方Pi联合计算
Figure BDA0004070899900000091
其中
Figure BDA0004070899900000092
Figure BDA0004070899900000093
分别表示加法电路的两个输入,记每个参与方Pi所拥有的输入
Figure BDA0004070899900000094
Figure BDA0004070899900000095
的贡献值为
Figure BDA0004070899900000096
Figure BDA0004070899900000097
其签名分别为
Figure BDA0004070899900000098
对应签名验证函数为
Figure BDA0004070899900000099
Figure BDA00040708999000000910
为了执行加法,各个参与方令本地计算结果
Figure BDA00040708999000000911
对应签名
Figure BDA00040708999000000912
对应签名验证函数
Figure BDA00040708999000000913
对于乘法电路,N个参与方Pi联合计算
Figure BDA00040708999000000914
其中
Figure BDA00040708999000000915
分别表示乘法电路的两个输入,记每个参与方Pi所拥有的输入
Figure BDA00040708999000000916
Figure BDA00040708999000000917
的贡献值为
Figure BDA00040708999000000918
Figure BDA00040708999000000919
其签名分别为
Figure BDA00040708999000000920
对应签名验证函数为
Figure BDA00040708999000000921
Figure BDA00040708999000000922
N个参与方Pi联合选定一个可用乘法三元组记为(amul,bmul,cmul),每个参与方Pi对该乘法三元组的贡献值为
Figure BDA00040708999000000923
其签名分别为
Figure BDA00040708999000000924
对应的签名验证函数为
Figure BDA00040708999000000925
每个参与方Pi广播自己的计算值
Figure BDA00040708999000000926
Figure BDA00040708999000000927
然后每个参与方Pi分别计算中间值
Figure BDA00040708999000000928
Figure BDA00040708999000000929
即中间值ε和中间值ρ对所有参与方为打开状态,每个参与方Pi令乘法计算结果
Figure BDA00040708999000000930
对应签名
Figure BDA00040708999000000931
对应签名验证函数
Figure BDA00040708999000000932
不难验证,
Figure BDA00040708999000000933
S106:乘法电路执行中打开值检验:
在电路执行完成后,需要进行正确性检测。在计算电路执行过程中,每个乘法电路分别打开了2个值(即ε和ρ),需要对2NM个打开值进行检验。记步骤S105中所有参与方在乘法阶段的打开值为{u1,u2,…,uD},其中ud为第d个打开值,d=1,2,…,D,D=2NM,记每个打开值ud中由参与方Pi提供的贡献值为ud,i(即
Figure BDA00040708999000000934
Figure BDA00040708999000000935
),满足
Figure BDA00040708999000000936
将贡献值ud,i计算时所使用的乘法三元组参数的签名(即
Figure BDA00040708999000000937
Figure BDA00040708999000000938
)作为贡献值ud,i的签名σ(ud,i),将所使用乘法三元组参数的签名验证函数作为贡献值ud,i的签名函数
Figure BDA00040708999000000939
图2是本发明中检验乘法阶段打开值的流程图。如图2所示,本发明中检验乘法阶段打开值的具体步骤包括:
S201:生成随机值:
N个参与方Pi协同生成D个随机值kd
S202:对打开值进行预处理并签名广播:
每个参与方Pi计算得到本地融合打开值
Figure BDA0004070899900000101
系数kd为预设的属于域
Figure BDA0004070899900000102
的参数,然后采用如下方法对融合打开值hi进行签名,得到签名σ(hi):
Figure BDA0004070899900000103
参与方Pi广播签名σ(hi)、融合打开值hi和其对应的签名认证函数
Figure BDA0004070899900000104
其中cw表示签名验证函数fh,i中自变量
Figure BDA0004070899900000105
的系数,γ为常数项。
S203:签名检验:
每个参与方Pj在接收到其他参与方Pi广播的广播签名σ(hi)、融合打开值hi和其对应的签名认证函数
Figure BDA0004070899900000106
根据验证密钥vkj=(vjj,{βj,w}w=12…W)采用如下方法进行检验:
计算检验参数
Figure BDA0004070899900000107
检查等式
Figure BDA0004070899900000108
是否成立,其中σ(hi)[n]是签名σ(hi)中第n维分量,
Figure BDA0004070899900000109
是常数向量vj中第n维分量,如果成立,则检验通过,否则检验不通过。
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,计算检验辅助参数
Figure BDA00040708999000001010
Figure BDA00040708999000001011
并广播,其中n′=1,2,…,N/2,g为预设的域Zp的生成元。参与方Pi计算向参与方Pj的共享值
Figure BDA00040708999000001012
并发送给参与方Pj,参与方Pj在接收到共享值zi,j后,判断
Figure BDA0004070899900000111
是否成立,如果成立,则检验通过,否则检验不通过,参与方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已经公开了检验辅助参数
Figure BDA0004070899900000112
因此,本步骤中,每个参与方生成计算结果zi的签名广播值
Figure BDA0004070899900000113
并进行广播,σ(zi)[n]表示计算结果zi签名σ(zi)的第n维分量。每个参与方Pj在接收到参与方Pi的计算结果广播值
Figure BDA0004070899900000114
和计算结果签名广播值
Figure BDA0004070899900000115
后,根据验证密钥vkj=(vjj,{βj,w}w=1,2,…,W)采用如下方法进行检验:
记计算结果zi的签名验证函数
Figure BDA0004070899900000116
其中c′w表示签名验证函数
Figure BDA0004070899900000117
中自变量
Figure BDA0004070899900000118
的系数,γ′为常数项。计算检验参数
Figure BDA0004070899900000119
检查等式
Figure BDA00040708999000001110
是否成立,如果成立,则检验通过,进入步骤S304,否则检验不通过,参与方Pj广播参与方Pi为恶意方的消息,多方计算中止。
在保密性打开中,签名广播值
Figure BDA00040708999000001111
在生成和计算过程都是保密的,并且在验证之后也是保密的,签名的正确性和保密性直接根据离散对数的困难性可得,从而确保参与方诚实地输出共享计算结果,同时也可以实现对于恶意方身份的检测。
S305:计算结果一致性判断:
每个参与方Pi分别广播其计算结果,记参与方Pi的广播计算结果为
Figure BDA0004070899900000121
其他参与方在接收到广播计算结果
Figure BDA0004070899900000122
后,判断
Figure BDA0004070899900000123
是否与步骤S301中广播的
Figure BDA0004070899900000124
一致,即是否
Figure BDA0004070899900000125
如果一致,则不做任何操作,如果不一致,则广播参与方Pi为恶意方,进入步骤S306。
S306:判断当前被声称为恶意方的参与方数量是否大于N/2,如果是,则安全多方计算中止,否则进入步骤S307。
S307:基于拉格朗日插值算法对恶意方的计算结果进行恢复,恢复成功则安全多方计算完成,否则安全多方计算中止,并输出恶意方身份。本实施例中,恶意方计算结果恢复的具体方法如下:
1)记待恢复的参与方为
Figure BDA0004070899900000126
初始化次数t=1。
2)随机选择N/2个诚实方构成重构小组,用于提供重构数据。
3)基于拉格朗日插值算法对参与方
Figure BDA0004070899900000127
的计算结果进行重构,具体方法如下:
记当前重构小组中N/2个诚实方为
Figure BDA0004070899900000128
其中in′表示这N/2个诚实方的原始序号,记其在步骤S301中得到的参与方
Figure BDA0004070899900000129
的共享值为
Figure BDA00040708999000001210
记其在步骤S301中广播的随机数为
Figure BDA00040708999000001211
将共享值为随机数构成N/2个点值对
Figure BDA00040708999000001212
基于这N/2个点值对
Figure BDA00040708999000001213
拟合得到拉格朗日多项式,然后再每个参与方Pj广播的随机数qj,基于拉格朗日多项式得到对应的重构共享值
Figure BDA00040708999000001214
4)对参与方
Figure BDA00040708999000001215
的重构共享值
Figure BDA00040708999000001216
进行输入一致性检验,具体方法为:判断是否
Figure BDA00040708999000001217
如果是则检验通过,进入步骤5),否则检验不通过,进入步骤6)。
6)计算重构参与方
Figure BDA00040708999000001218
的计算结果
Figure BDA00040708999000001219
7)判断是否t<N/2,如果是,进入步骤8),否则重构失败。
8)筛选出属于重构小组且在步骤4)中未通过输入一致性检验的参与方,从剩余诚实方中随机选择诚实方对其进行替换,对重构小组进行更新,然后令t=t+1,返回步骤3)。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

Claims (2)

1.一种具有身份中止和公正性的安全多方计算方法,其特征在于,包括以下步骤:
S1:采用以下方法生成密钥:
1)1)安全多方计算中的N个参与方Pi协同,从域
Figure FDA0004070899880000011
中随机生成N个常数
Figure FDA0004070899880000012
Figure FDA0004070899880000013
然后从域
Figure FDA0004070899880000014
中随机生成W个N维常数向量
Figure FDA0004070899880000015
Figure FDA0004070899880000016
W为预设的密钥数量,满足W=(NR+3NT)×N,NR表示掩码数量,满足NR>NI,NI表示所有参与方的输入总数,NT表示乘法三元组数量,满足NT>NM,NM表示安全多方计算中计算电路中乘法门数量;
2)参与方Pi从域
Figure FDA0004070899880000017
中随机生成N维常数向量
Figure FDA0004070899880000018
计算得到N个常数
Figure FDA0004070899880000019
和W个常数向量
Figure FDA00040708998800000110
3)参与方Pi确定其签名私钥
Figure FDA00040708998800000111
以及验证密钥vki=(vii,{βi,w}w=1,2,…,W);
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,则签名
Figure FDA00040708998800000112
各个参与方Pi将掩码贡献值ri,p和签名σ(ri,p)一起发送给需要该掩码的参与方Pj,参与方Pj将各参与方的掩码贡献值为ri,p和签名σ(ri,p)汇总得到掩码<Rp>={ri,p,σ(ri,p)}i=1,2,…,N,每个掩码贡献值对应的签名验证函数
Figure FDA00040708998800000113
Figure FDA00040708998800000114
为掩码签名验证函数的自变量;
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,每个贡献值对应的签名验证函数分别为
Figure FDA0004070899880000021
Figure FDA0004070899880000022
Figure FDA0004070899880000023
表示三元组参数签名验证函数的自变量;
S4:N个参与方Pi对安全多方计算中的每个输入进行输入共享,具体方法为:记输入X对应的参与方为Pi,则参与方Pi为输入X配置掩码
Figure FDA0004070899880000024
计算输入X的贡献值
Figure FDA0004070899880000025
其中
Figure FDA0004070899880000026
贡献值xi的签名为
Figure FDA0004070899880000027
签名验证函数
Figure FDA0004070899880000028
其他参与方Pi′令输入X的贡献值为
Figure FDA0004070899880000029
其中i′=1,2,…,N&i′≠i,贡献值xi′的签名为
Figure FDA00040708998800000210
签名验证函数
Figure FDA00040708998800000211
S5:各个参与方Pi执行其持有的计算算术电路,得到计算结果zi,并计算对应签名σ(zi)和签名验证函数
Figure FDA00040708998800000212
计算算术电路中包含加法电路和乘法电路,在加法电路中执行本地计算,在乘法电路中需要通过消耗三元组将乘法操作转换为线性操作,其中:
加法电路的具体执行过程为:N个参与方Pi联合计算
Figure FDA00040708998800000213
其中
Figure FDA00040708998800000214
分别表示加法电路的两个输入,记每个参与方Pi所拥有的输入
Figure FDA00040708998800000215
Figure FDA00040708998800000216
的贡献值为
Figure FDA00040708998800000217
Figure FDA00040708998800000218
其签名分别为
Figure FDA00040708998800000219
对应签名验证函数为
Figure FDA00040708998800000220
Figure FDA00040708998800000221
各个参与方令本地计算结果
Figure FDA00040708998800000222
对应签名
Figure FDA00040708998800000223
对应签名验证函数
Figure FDA00040708998800000224
乘法电路的具体执行过程为:N个参与方Pi联合计算
Figure FDA00040708998800000225
其中
Figure FDA00040708998800000226
Figure FDA00040708998800000227
分别表示乘法电路的两个输入,记每个参与方Pi所拥有的输入
Figure FDA00040708998800000228
Figure FDA00040708998800000229
的贡献值为
Figure FDA00040708998800000230
Figure FDA00040708998800000231
其签名分别为
Figure FDA00040708998800000232
对应签名验证函数为
Figure FDA00040708998800000233
Figure FDA00040708998800000234
N个参与方Pi联合选定一个可用乘法三元组记为(amul,bmul,cmul),每个参与方Pi对该乘法三元组的贡献值为
Figure FDA00040708998800000235
其签名分别为
Figure FDA00040708998800000236
对应的签名验证函数为
Figure FDA00040708998800000237
每个参与方Pi广播自己的计算值
Figure FDA00040708998800000238
然后每个参与方Pi分别计算中间值
Figure FDA00040708998800000239
中间值
Figure FDA00040708998800000240
即中间值ε和中间值ρ对所有参与方为打开状态,每个参与方Pi令乘法计算结果
Figure FDA00040708998800000241
对应签名
Figure FDA00040708998800000242
对应签名验证函数
Figure FDA00040708998800000243
S6:记步骤S5中所有参与方在乘法阶段的打开值为{u1,u2,…,uD},其中ud为第d个打开值,d=1,2,…,D,D=2NM,记每个打开值ud中由参与方Pi提供的贡献值为ud,i,满足
Figure FDA0004070899880000031
将贡献值ud,i计算时所使用的乘法三元组参数的签名作为贡献值ud,i的签名σ(ud,i),将所使用的乘法三元组参数的签名验证函数作为贡献值ud,i的签名函数
Figure FDA0004070899880000032
采用如下方法对乘法阶段打开值进行检验:
S6.1:N个参与方Pi协同生成D个随机值kd
S6.2:每个参与方Pi计算得到本地融合打开值
Figure FDA0004070899880000033
系数kd为预设的属于域
Figure FDA0004070899880000034
的参数,然后采用如下方法对融合打开值hi进行签名,得到签名σ(hi):
Figure FDA0004070899880000035
参与方Pi广播签名σ(hi)、融合打开值hi和其对应的签名认证函数
Figure FDA0004070899880000036
其中cw表示签名验证函数fh,i中自变量
Figure FDA0004070899880000037
的系数,γ为常数项;
S6.3:每个参与方Pj在接收到其他参与方Pi广播的广播签名σ(hi)、融合打开值hi和其对应的签名认证函数
Figure FDA0004070899880000038
根据验证密钥vkj=(vjj,{βj,w}w=1,2,…,W)采用如下方法进行检验:
计算检验参数
Figure FDA0004070899880000039
检查等式
Figure FDA00040708998800000310
是否成立,其中σ(hi)[n]是签名σ(hi)中第n维分量,如果成立,则检验通过,否则检验不通过;
S7:判断步骤S6中的乘法阶段打开值检验是否通过,如果所有打开值均检验通过,则进入步骤S8,否则进入步骤S9,多方计算中止,并输出未检验通过的打开值对应的参与方身份;
S8:采用如下方法进行可验证的计算结果共享:
S8.1:每个参与方Pi对其电路计算结果zi进行秘密共享,具体方法为:预先设置秘密所属域Zp,令zi∈Zp,其中p和(p-1)/2为素数;每个参与方Pj选择并广播随机数qj;然后参与方Pi随机选取N/2个随机数t1,t2,…,tN2,计算检验辅助参数
Figure FDA00040708998800000311
Figure FDA00040708998800000312
并广播,其中n′=1,2,…,N/2,g为预设的域Zp的生成元;参与方Pi计算向参与方Pj的共享值
Figure FDA00040708998800000313
并发送给参与方Pj,参与方Pj在接收到共享值zi,j后,判断
Figure FDA0004070899880000041
是否成立,如果成立,则检验通过,否则检验不通过,参与方Pj广播参与方Pi进行错误共享的消息;
S8.2:如果有参与方在秘密共享时存在检验不通过,则进入步骤S8.3,如果所有参与方在秘密共享时均检验通过,则进入步骤8.4;
S8.3:当有参与方Pj广播参与方Pi进行错误共享的消息时,参与方Pi采用零知识证明算法证明自己发送给参与方Pj的是正确共享值,证明过程向所有参与方公开,如果参与方Pi能够提供正确证明,则其他参与方联合判定参与方Pi′为恶意方,否则其他参与方联合判定参与方Pi为恶意方;证明结束后多方计算中止;
S8.4:每个参与方生成计算结果zi的签名广播值
Figure FDA0004070899880000042
并进行广播,σ(zi)[n]表示计算结果zi签名σ(zi)的第n维分量;每个参与方Pj在接收到参与方Pi的计算结果广播值
Figure FDA0004070899880000043
和计算结果签名广播值
Figure FDA0004070899880000044
后,根据验证密钥vkj=(vjj,{βj,w}w=1,2,…,W)采用如下方法进行检验:
记计算结果zi的签名验证函数
Figure FDA0004070899880000045
其中c′w表示签名验证函数
Figure FDA0004070899880000046
中自变量
Figure FDA0004070899880000047
的系数,γ′为常数项;计算检验参数
Figure FDA0004070899880000048
检查等式
Figure FDA0004070899880000049
是否成立,如果成立,则检验通过,进入步骤S8.4,否则检验不通过,参与方Pj广播参与方Pi为恶意方的消息,多方计算中止;
S8.5:每个参与方Pi分别广播其计算结果,记参与方Pi的广播计算结果为
Figure FDA00040708998800000410
其他参与方在接收到广播计算结果
Figure FDA00040708998800000411
后,判断
Figure FDA00040708998800000412
是否与步骤S8.1中广播的
Figure FDA00040708998800000413
一致,即是否
Figure FDA00040708998800000414
如果一致,则不做任何操作,如果不一致,则广播参与方Pi为恶意方,进入步骤S8.6;
S8.6:判断当前被声称为恶意方的参与方数量是否大于N/2,如果是,则安全多方计算中止,否则进入步骤S8.7;
S8.7:基于拉格朗日插值算法对恶意方的计算结果进行恢复,恢复成功则安全多方计算完成,否则安全多方计算中止,并输出恶意方身份。
2.根据权利要求1所述的安全多方计算方法,其特征在于,所述步骤S8.6中,恶意方计算结果恢复的具体方法如下:
1)记待恢复的参与方为
Figure FDA0004070899880000051
初始化次数t=1;
2)随机选择N/2个诚实方构成重构小组,用于提供重构数据;
3)基于拉格朗日插值算法对参与方
Figure FDA0004070899880000052
的计算结果进行重构,具体方法如下:
记当前重构小组中N/2个诚实方为
Figure FDA0004070899880000053
其中in′表示这N/2个诚实方的原始序号,记其在步骤S8.1中得到的参与方
Figure FDA0004070899880000054
的共享值为
Figure FDA0004070899880000055
记其在步骤S8.1中广播的随机数为
Figure FDA0004070899880000056
将共享值为随机数构成N/2个点值对
Figure FDA0004070899880000057
基于这N/2个点值对
Figure FDA0004070899880000058
拟合得到拉格朗日多项式,然后再每个参与方Pj广播的随机数qj,基于拉格朗日多项式得到对应的重构共享值
Figure FDA0004070899880000059
4)对参与方
Figure FDA00040708998800000510
的重构共享值
Figure FDA00040708998800000511
进行输入一致性检验,具体方法为:判断是否
Figure FDA00040708998800000512
如果是则检验通过,进入步骤5),否则检验不通过,进入步骤6);
6)计算重构参与方
Figure FDA00040708998800000513
的计算结果
Figure FDA00040708998800000514
7)判断是否t<N/2,如果是,进入步骤8),否则重构失败;
8)筛选出属于重构小组且在步骤4)中未通过输入一致性检验的参与方,从剩余诚实方中随机选择诚实方对其进行替换,对重构小组进行更新,然后令t=t+1,返回步骤3)。
CN202310092993.9A 2023-02-03 2023-02-03 具有身份中止和公正性的安全多方计算方法 Pending CN116032492A (zh)

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)

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