CN110912713B - 多方联合进行模型数据处理的方法及装置 - Google Patents

多方联合进行模型数据处理的方法及装置 Download PDF

Info

Publication number
CN110912713B
CN110912713B CN201911329214.2A CN201911329214A CN110912713B CN 110912713 B CN110912713 B CN 110912713B CN 201911329214 A CN201911329214 A CN 201911329214A CN 110912713 B CN110912713 B CN 110912713B
Authority
CN
China
Prior art keywords
challenge
result
random number
model
ciphertext
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
Application number
CN201911329214.2A
Other languages
English (en)
Other versions
CN110912713A (zh
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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN201911329214.2A priority Critical patent/CN110912713B/zh
Publication of CN110912713A publication Critical patent/CN110912713A/zh
Application granted granted Critical
Publication of CN110912713B publication Critical patent/CN110912713B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs

Abstract

本说明书实施例提供一种保护数据隐私的多方联合进行模型数据处理的方法和装置。根据该方法,模型拥有方在对k个模型参数进行同态加密后,还选取第一随机数对第一消息进行加密,得到辅助密文。此外,双方共同确定出根挑战数,并基于根挑战数得到k个挑战元素。之后,模型拥有方将k个挑战元素分别与模型参数和第一消息,以及加密随机数和第一随机数进行组合,生成验证随机数和验证消息作为零知识证明。数据拥有方可以验证,基于k个挑战元素对参数密文和辅助密文同态操作的结果,与用验证随机数加密验证消息的结果是否相等。在相等的情况下,用其样本特征进行同态运算,返回给模型拥有方,从而确保了模型数据过程中各方隐私数据的安全性。

Description

多方联合进行模型数据处理的方法及装置
技术领域
本说明书一个或多个实施例涉及机器学习领域和数据安全领域,尤其涉及多方联合进行模型数据处理的方法和装置。
背景技术
随着计算机技术的发展,机器学习已经应用到各种各样的技术领域,用于分析、处理各种业务数据。机器学习所需要的数据往往会涉及到多个领域,例如在基于机器学习的商户分类分析场景中,电子支付平台拥有商户的交易流水数据,电子商务平台存储有商户的销售数据,银行机构拥有商户的借贷数据。数据往往以孤岛的形式存在。由于行业竞争、数据安全、用户隐私等问题,数据整合面临着很大阻力,将分散在各个平台的数据整合在一起训练机器学习模型难以实现。因此,提出多方联合训练和使用机器学习模型进行业务处理的方式。
在多方联合训练和使用机器学习模型的场景下,数据隐私的保护和安全性成为值得关注的问题。例如,在一个多方计算的场景下,A方持有待处理的用户样本特征数据,B方持有数据处理模型。在通过该数据处理模型对样本特征数据实施处理时,如果A方将样本数据直接发送至B方,会导致用户样本的特征取值被暴露,泄露用户隐私;如果B方将数据处理模型提供至A方进行使用,会导致数据处理模型的模型参数被暴露。
因此,希望提供改进的方案,在多方联合进行模型数据处理的过程中,保护各方隐私数据的安全。
发明内容
本说明书一个或多个实施例描述了多方联合进行模型数据处理的方法和装置,其中模型拥有方在对多个模型参数进行同态加密后,还生成密文合法性的零知识证明,以供数据拥有方验证,从而进一步保护各方隐私数据的安全不泄露。
根据第一方面,提供了一种保护数据隐私的多方联合进行模型数据处理的方法,所述多方包括模型拥有方和数据拥有方,所述方法通过所述模型拥有方执行,包括:
采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对所拥有的第一模型中的k个模型参数分别进行加密,得到k个参数密文;
随机选择第一消息和第一随机数;并采用所述同态加密算法,基于所述公钥和所述第一随机数,对所述第一消息进行加密,得到辅助密文;
向所述数据拥有方发送所述k个参数密文和所述辅助密文;
获取根挑战数,并基于所述根挑战数的幂操作,得到k个挑战元素;
将所述k个挑战元素与所述k个模型参数线性组合,并与所述第一消息进行叠加,基于叠加结果得到验证消息;将所述k个挑战元素与所述k个随机数和所述第一随机数进行组合,得到验证随机数;
向所述数据拥有方发送零知识证明,其中包括所述验证消息和验证随机数,使得所述数据拥有方验证,使用所述k个挑战元素对所述辅助密文和所述k个参数密文进行同态加和运算的第一结果,与采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密的第二结果是否相等;
接收所述数据拥有方发送的特征运算密文,所述特征运算密文是所述数据拥有方在所述验证通过的情况下,使用其拥有的k个样本特征对所述k个参数密文进行同态加和运算的结果,用于所述模型拥有方还原出特征运算结果,从而基于特征运算结果进行业务处理。
在一个实施例中,所述第一模型为线性回归模型,或逻辑回归模型。
根据一种实施方式,所述公钥包括,自然数N和由该自然数N限定的随机数空间中的一个循环子群的生成元h;
在这样的情况下,对所述第一消息进行加密得到辅助密文的步骤可以包括:使用所述第一消息,对(N+1)进行幂操作,得到第一中间结果;使用所述第一随机数,基于所述生成元h进行群操作,得到第二中间结果;基于所述第一中间结果和第二中间结果,得到所述辅助密文。
相应的,在上述实施方式的一个示例中,验证随机数可以通过如下方式得到:将所述k个挑战元素与所述k个随机数线性组合,并与所述第一随机数进行叠加,得到所述验证随机数。
根据另一种实施方式,所述公钥至少包括自然数N;在这样的情况下,对所述第一消息进行加密得到辅助密文的步骤可以包括:使用所述第一消息,对(N+1)进行幂操作,得到第一中间结果;对所述第一随机数进行N次幂操作,得到第二中间结果;基于所述第一中间结果和第二中间结果,得到所述辅助密文。
相应的,在上述实施方式的一个示例中,验证随机数可以通过如下方式得到:依次对于第i挑战元素和第i随机数,使用第i挑战元素对第i随机数进行幂操作,得到k个幂操作结果;将所述k个幂操作结果与所述第一随机数连乘,得到所述验证随机数。
在一个实施例中,所述根挑战数通过以下方式获取:从所述数据拥有方接收其随机选择的根挑战数。
在另一实施例中,所述根挑战数通过以下方式获取:基于所述k个参数密文和所述辅助密文,使用与所述数据拥有方约定的哈希算法,计算得到所述根挑战数。
更具体的,在一个示例中,基于所述根挑战数的幂操作,得到k个挑战元素包括,对所述根挑战数进行从1依次到k次幂操作,得到所述k个挑战元素。
在另一个示例中,基于所述根挑战数的幂操作,得到k个挑战元素包括:对所述根挑战数随机进行k种不同的幂操作,得到所述k个挑战元素。
根据一种实施方式,基于第一叠加结果得到验证消息的步骤可以包括:将所述第一叠加结果对N取模,将取模结果作为所述验证消息,其中N为公钥中的自然数。
在一个实施例中,所述方法还包括:采用与所述同态加密算法对应的解密算法,使用与所述公钥对应的私钥,对所述特征运算密文进行解密,得到所述特征运算结果,所述特征运算结果对应于,所述k个样本特征和所述k个模型参数的线性组合。
根据第二方面,提供了一种保护数据隐私的多方联合进行模型数据处理的方法,所述多方包括模型拥有方和数据拥有方,所述方法通过所述数据拥有方执行,包括:
从所述模型拥有方接收加密合法性有待验证的k个参数密文以及辅助密文;在合法加密的情况下,所述k个参数密文是所述模型拥有方采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对k个模型参数分别加密得到的,所述辅助密文是采用所述同态加密算法,基于所述公钥和第一随机数,对随机的第一消息进行加密得到的;
确定根挑战数,并基于所述根挑战数的幂操作,得到k个挑战元素;
从所述模型拥有方接收零知识证明,其中包括验证消息和验证随机数;其中,所述验证消息是基于所述k个挑战元素与所述k个模型参数的线性组合,以及与所述第一消息的叠加得到的,所述验证随机数是基于所述k个挑战元素与所述k个随机数和所述第一随机数组合得到的;
使用所述k个挑战元素对所述k个参数密文和所述辅助密文进行同态加和运算,得到第一结果;并采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密,得到第二结果;
在验证第一结果等于第二结果的情况下,使用拥有的k个样本特征对所述k个参数密文进行同态加和运算,得到特征运算密文;
向所述模型拥有方发送所述特征运算密文,用于所述模型拥有方还原出特征运算结果,从而基于特征运算结果进行业务处理。
在一个实施例中,所述公钥包括,自然数N和由该自然数N限定的随机数空间中的一个循环子群的生成元h;相应的,所述第二结果可以通过以下步骤得到:使用验证消息,对(N+1)进行幂操作,得到第一中间项;使用验证随机数,基于所述生成元h进行群操作,得到第二中间项;基于所述第一中间项和第二中间项,得到所述第二结果。
在一个实施例中,所述第一结果通过以下方式得到:依次对于第i挑战元素和第i参数密文,使用第i挑战元素对第i参数密文进行幂操作,得到k个幂操作结果;将所述辅助密文与所述k个幂操作结果连乘,基于乘积结果得到所述第一结果。
根据一个实施例,所述特征运算密文通过以下方式得到:依次对于第i样本特征和第i参数密文,使用第i样本特征对第i参数密文进行幂操作,得到k个幂操作结果;将所述k个幂操作结果连乘,乘积结果作为所述特征运算密文。
根据一种实施方式,所述确定根挑战数的步骤可以包括:随机生成所述根挑战数,并将其发送给所述模型拥有方。
根据另一种实施方式,所述确定根挑战数的步骤可以包括:基于所述k个参数密文和所述辅助密文,使用与所述模型拥有方约定的哈希算法,计算得到所述根挑战数。
更具体的,在一个示例中,基于所述根挑战数的幂操作,得到k个挑战元素包括:对所述根挑战数进行从1依次到k次幂操作,得到所述k个挑战元素。
在另一示例中,基于所述根挑战数的幂操作,得到k个挑战元素包括:对所述根挑战数随机进行k种不同的幂操作,得到所述k个挑战元素。
根据具体实施方式,所述k个样本特征可以包括以下之一:用户属性特征,图片像素特征,音频特征,文本编码特征。
根据第三方面,提供了一种保护数据隐私的多方联合进行模型数据处理的装置,所述多方包括模型拥有方和数据拥有方,所述装置部署在所述模型拥有方中,包括:
参数加密单元,配置为采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对所拥有的第一模型中的k个模型参数分别进行加密,得到k个参数密文;
辅助加密单元,配置为随机选择第一消息和第一随机数;并采用所述同态加密算法,基于所述公钥和所述第一随机数,对所述第一消息进行加密,得到辅助密文;
第一发送单元,配置为向所述数据拥有方发送所述k个参数密文和所述辅助密文;
挑战元素获取单元,配置为获取根挑战数,并基于所述根挑战数的幂操作,得到k个挑战元素;
组合单元,配置为将所述k个挑战元素与所述k个模型参数线性组合,并与所述第一消息进行叠加,基于叠加结果得到验证消息;将所述k个挑战元素与所述k个随机数和所述第一随机数进行组合,得到验证随机数;
第二发送单元,配置为向所述数据拥有方发送零知识证明,其中包括所述验证消息和验证随机数,使得所述数据拥有方验证,使用所述k个挑战元素对所述k个参数密文和所述辅助密文进行同态加和运算的第一结果,与采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密的第二结果是否相等;
接收单元,配置为接收所述数据拥有方发送的特征运算密文,所述特征运算密文是所述数据拥有方在所述验证通过的情况下,使用其拥有的k个样本特征对所述k个参数密文进行同态加和运算的结果,用于所述模型拥有方还原出特征运算结果,从而基于特征运算结果进行业务处理。
根据第四方面,提供了一种保护数据隐私的多方联合进行模型数据处理的装置,所述多方包括模型拥有方和数据拥有方,所述装置部署在所述数据拥有方中,包括:
第一接收单元,配置为从所述模型拥有方接收加密合法性有待验证的k个参数密文以及辅助密文;在合法加密的情况下,所述k个参数密文是所述模型拥有方采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对k个模型参数分别加密得到的,所述辅助密文是采用所述同态加密算法,基于所述公钥和第一随机数,对随机的第一消息进行加密得到的;
挑战元素确定单元,配置为确定根挑战数,并基于所述根挑战数的幂操作,得到k个挑战元素;
第二接收单元,配置为从所述模型拥有方接收零知识证明,其中包括验证消息和验证随机数;其中,所述验证消息是基于所述k个挑战元素与所述k个模型参数的线性组合,以及与所述第一消息的叠加得到的,所述验证随机数是基于所述k个挑战元素与所述k个随机数和所述第一随机数组合得到的;
验证单元,配置为使用所述k个挑战元素对所述k个参数密文和所述辅助密文进行同态加和运算,得到第一结果;并采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密,得到第二结果;
同态运算单元,配置为在验证单元验证所述第一结果等于第二结果的情况下,使用拥有的k个样本特征对所述k个参数密文进行同态加和运算,得到特征运算密文;
发送单元,配置为向所述模型拥有方发送所述特征运算密文,用于所述模型拥有方还原出特征运算结果,从而基于特征运算结果进行业务处理。
根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。
根据第六方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面的方法。
根据本说明书实施例提供的方法和装置,在多方联合进行模型数据处理过程中,模型拥有方和数据拥有方可以通过同态加密和同态操作的方式交互数据,从而得到特征运算结果。进一步的,在本说明书实施例提供的方案中,模型拥有方还向数据拥有方提供零知识证明,以证明所发送的密文是对模型参数合法加密生成的。根据实施例中验证随机数和验证消息的设置方式,上述零知识证明可以一次性对多个参数密文的合法性进行验证,而不会泄露任何有关明文信息,从而进一步确保了模型数据过程中各方隐私数据的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出在一个实施例中多方联合进行模型数据处理的过程示意图;
图3示出根据一个实施例的部署在模型拥有方中的模型数据处理装置的示意性框图;
图4示出根据一个实施例的部署在数据拥有方中的模型数据处理装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。在该实施场景中,示意性示出了2个参与方,其中参与方A为模型拥有方,参与方B为数据拥有方。
数据拥有方B拥有有待处理的样本特征数据,其中,样本可以是有待分析的图片,用户,音频,文本等等,与之分别对应的,样本特征可以包括,图片像素特征,用户属性特征(例如,年龄,性别,注册时长,职业等等),音频频谱特征,文本编码特征等等。
模型拥有方A拥有根据上述样本特征数据进行业务处理的模型。例如,当样本是图片时,业务处理可以包括,基于图像识别的业务处理,例如人脸识别,目标检测等;当样本是用户时,业务处理可以包括,基于用户分类的业务处理,例如用户人群划分,用户服务定制等;当样本为音频时,业务处理可以包括,基于音频识别的业务处理,例如语音识别,声纹分析,语音转文本等;当样本是文本时,业务处理可以包括基于文本分析的业务处理,例如语义分析,意图识别等。
根据业务处理的需要,上述模型可以是分类模型或回归模型,并且,该模型中涉及模型参数与样本特征的线性组合运算。典型的,该模型可以是线性回归模型,其核心算法即为上述线性组合运算。或者,该模型也可以是逻辑回归模型,其在上述线性组合运算的基础上,进一步施加非线性函数运算。或者,该模型也可以是其他需要利用上述线性组合运算的模型。
在以上的数据拥有方B和模型拥有方A联合进行模型数据处理的情况下,出于隐私数据保护的目的,数据拥有方B不能直接将其样本数据发送给模型拥有方A,以免泄露样本特征取值;模型拥有方A也不能直接将其模型参数发送给数据拥有方B,以免泄露模型参数取值。那么,数据拥有方B和模型拥有方A可以采用下面的方案联合进行数据处理。
首先,模型拥有方A选用同态加密算法Z,并生成该加密算法下的公钥pk和私钥sk。一般的,公钥pk中包含与加密空间的阶数有关的自然数N。于是,模型拥有方A使用该同态加密算法,对其k个模型参数(m1,m2,…,mk)分别进行加密,得到参数密文(c1,c2,…,ck),其中:
ci=Enc(pk,mi;ri) (1)
其中,Enc表示同态加密算法,ri表示对mi加密时使用的随机数。
然后,模型拥有方A可以将参数密文(c1,c2,…,ck)发送给数据拥有方B。于是,数据拥有方B可以使用其拥有的k个样本特征(y1,y2,…,yk),对k个参数密文进行同态加和运算。
需要理解,同态加密算法是这样一种加密函数,对明文进行运算后再加密,与加密后对密文进行相应的运算,结果是等价的。例如,用同样的公钥PK加密v1和v2得到EPK(v1)和EPK(v2),如果满足EPK(v1+v2)=EPK(v1)·EPK(v2),那么则认为,该加密算法满足加法同态,相应的,EPK(v1)·EPK(v2)为对应的同态加和操作。
容易验证,加法同态的加密算法还满足:
Figure BDA0002329147470000101
根据上式(2),数据拥有方B可以使用其拥有的k个样本特征(y1,y2,…,yk),对k个参数密文(c1,c2,…,ck)进行如下的同态加和运算,得到特征运算密文X′:
Figure BDA0002329147470000102
然后,数据拥有方B将上述特征运算密文X′返回给模型拥有方A。于是,模型拥有方A可以使用其私钥sk,对上述特征运算密文X′进行解密。根据同态运算的性质(2),模型拥有方于是可以还原得到特征运算结果X:
X=m1*y1+m2*y2+…+mk*yk mod(N) (4)
在以上过程中,利用同态加密的性质,模型拥有方A不会泄露其模型参数,数据拥有方B也不会泄露其样本特征。
然而,上述过程是理想化的过程。在一种可能的情况下,恶意或冒充的模型拥有方可能不按照约定的协议进行同态加密,而是精心地构造恶意字符串(c1,c2,…,ck)发送给数据拥有方B。如果数据拥有方B仍然采用公式(3)所示的同态操作,将结果X′返还给模型拥有方,那么恶意的模型拥有方有可能借助于上述精心构造的字符串的特点,根据结果X′反推出数据拥有方中的样本特征。
考虑到以上风险,根据本说明书一个实施例,模型拥有方在提供参数密文后,还向数据拥有方提供密文合法性证明P,以证明发送的参数密文确实是采用预定的同态加密算法生成的,而不是恶意构造的字符串。例如,当模型拥有方向数据拥有方发送密文c后,上述证明P即用于证明,存在消息m和随机数r,满足c=Enc(pk,m;r)。数据拥有方可以基于密文合法性证明P,对收到的密文的合法性进行验证,在验证通过的情况下,再进行后续的同态操作,从而避免数据泄露的风险。
对于上述密文合法性证明,在一个实施例中,模型拥有方采用零知识证明ZKP(Zero Knowledge Proof)来保护隐私数据安全。所述零知识证明即,在不泄露消息m和随机数r的情况下,证明密文c是通过使用随机数r对消息m施加预定加密算法生成的。
下面描述引入零知识证明的多方联合进行模型数据处理的过程。
图2示出在一个实施例中多方联合进行模型数据处理的过程示意图。在图2中,延续图1的场景示例,同样示例性示出了模型拥有方A和数据拥有放B。然而需要理解,该示例可以扩展到更多参与方的情况,例如,存在多个数据拥有方,均与模型拥有方进行交互。模型拥有方可以分别得到各个数据拥有方的特征运算结果,分别进行业务处理,或者将各个数据拥有方的特征运算结果进行汇总后进行业务处理。为了描述的简单和清楚,下面仍以模型拥有方A和数据拥有方B为例,描述模型数据处理的过程。
首先,在步骤201,模型拥有方A采用同态加密算法Z,基于预先生成的公钥pk和分别生成的k个随机数(r1,r2,…,rk),对所拥有的业务模型中的k个模型参数(m1,m2,…,mk)分别进行加密,得到k个参数密文(c1,c2,…,ck),其中各个参数密文ci的含义如前述公式(1)所示。
具体地,在一个实施例中,上述同态加密算法Z采用Paillier加密算法。Paillier加密算法是一种已知的加密算法,其公钥可以表示(N,g),其中N为自然数,且可以表示为两个较大素数p,q的乘积:N=p*q;g为小于N2且满足一定数学条件的自然数。实践中,可以取g=N+1。根据Paillier加密算法,当采用公钥pk对消息m进行加密时,密文c可以表示为:
c=gm*rN=(N+1)m*rN(modN2) (5)
其中,r为加密使用的随机数,mod为取模操作。
如此,可以对各个模型参数mi,利用对应的随机数ri施加公式(5)的加密运算,得到对应的参数密文ci
可以验证,Paillier加密算法满足同态性。具体的,对于密文c1和c2,其中c1=Enc(pk,m1;r1),c2=Enc(pk,m2;r2),Paillier加密算法满足:
Figure BDA0002329147470000121
在另一实施例中,可以在已有的Pailiier算法基础上进行改进,提出一种新的加密算法,称为改进的Paillier算法。该改进的Paillier算法公钥可以包括(N,h),其中N为自然数,h为由该自然数N限定的空间
Figure BDA0002329147470000122
中的一个循环子群G的生成元。更具体的,N可以表示为两个较大素数p,q的乘积:N=p*q。根据该改进的Paillier加密算法,当采用公钥pk对消息m进行加密时,密文c可以表示为:
c=(N+1)m*(hN)r(mod N2) (7)
其中,r为加密使用的随机数,mod为取模操作。
如此,可以对各个模型参数mi,利用对应的随机数ri施加公式(7)的改进的Paillier加密运算,得到对应的参数密文ci
可以验证,改进的Paillier加密算法同样满足同态性。具体的,对于密文c1和c2,其中c1=Enc(pk,m1;r1),c2=Enc(pk,m2;r2),改进的Paillier加密算法满足:
Figure BDA0002329147470000131
对比公式(8)和(6)可以看到,Paillier算法和改进的Paillier算法,均满足公式(2)所要求的加法同态性,只是在进行加和同态运算后,得到的随机数不同。
在其他实施例中,还可以采用其他同态加密算法,对k个模型参数进行加密,得到k个参数密文(c1,c2,…,ck)。
为了证明所生成的参数密文的合法性,在步骤202,模型拥有方A随机选择一个消息m0,并在预定范围内选择一个随机数r0,下文为了描述方便,将其称为第一消息和第一随机数。上述预定范围的大小在后续步骤中进行说明。然后,模型拥有方采用上述同态加密算法Z,基于公钥pk和第一随机数r0,对第一消息m0进行加密,得到辅助密文c0
当所述同态加密算法Z为Paillier加密算法时,根据前述公式(5),得到辅助密文c0的过程可以包括,使用第一消息m0,对(N+1)进行幂操作,得到第一中间结果
Figure BDA0002329147470000134
对第一随机数r0进行N次幂操作,得到第二中间结果r0 N;基于上述第一中间结果和第二中间结果,得到辅助密文c0
当所述同态加密算法Z为前述改进的Paillier加密算法时,根据前述公式(7),得到辅助密文c0的过程可以包括,使用第一消息m0,对(N+1)进行幂操作,得到第一中间结果
Figure BDA0002329147470000132
使用第一随机数r0,基于生成元h进行群操作,得到第二中间结果/>
Figure BDA0002329147470000133
基于该第一中间结果和第二中间结果,得到辅助密文c0
当采用其他同态加密算法时,则根据相应的加密函数对第一消息m0进行加密,得到辅助密文c0
在步骤203,模型拥有方向数据拥有方发送上述k个参数密文(c1,c2,…,ck)和所述辅助密文c0
需要说明的是,尽管在图2中示出为一个步骤,但是在其他实施例中,参数密文和辅助密文可以通过两个或更多步骤分别发送。例如,可以先发送k个参数密文,然后生成辅助密文进行发送。对于发送的顺序,在此不做限定。
然后,在步骤204,模型拥有方获取根挑战数e,并基于对根挑战数的幂操作,得到k个挑战元素。对于根挑战数和挑战元素的获取,有多种实施方式。
在一个实施例中,数据拥有方B在接收到上述辅助密文后,随机选择或生成一个随机数作为根挑战数e,并将该根挑战数e发送给模型拥有方。模型拥有方A通过接收数据拥有方B的发送,获取到该根挑战数e。该实施例中,根挑战数的生成非常简单,不需要经过函数运算。
在另一实施例中,模型拥有方A和数据拥有方B预先约定一种函数算法f,利用该约定的算法,各自基于上述k个参数密文(c1,c2,…,ck)和所述辅助密文c0,计算得到根挑战数,即:
e=f(c1,c2,…,ck,c0) (9)
在一个具体例子中,上述函数算法可以是哈希函数,即f=Hash。
在该实施例中,双方通过约定方式各自计算得到相同的根挑战数,从而减少双方交互次数,降低通信带来的成本。
在得到上述根挑战数e后,模型拥有方和数据拥有方双方采用同样的方式,以所述根挑战数为衍生根,衍生出k个挑战元素。
为了进一步增强隐私数据安全,避免多次验证中分别产生的挑战元素之间具有线性相关性,在一个实施例中,在基于根挑战数衍生挑战元素时,可以采用线性无关的幂操作。也就是,基于对根挑战数e进行幂操作,得到k个挑战元素。k个挑战元素构成的序列可以称为挑战序列S。
具体的,在一个例子中,可以对根挑战数e依次进行从1到k次幂操作,得到如下的k个挑战元素构成的挑战序列S:
S=(e,e2,e3,…,ek) (10)
在另一例子中,可以对根挑战数随机进行k种不同的幂操作,得到挑战序列S,即:
S=(ei1,ei2,…,eik) (11)
其中,i1,i2,…,ik为互不相等的k个整数。
在以上具体例子的基础上,本领域技术人员还可以对其进行修改,采用更多方式,计算得到挑战序列,在此不一一列举。需要理解的是,为了隐私数据安全,优选使得多次验证时生成的多个挑战序列之间线性无关。
在模型拥有方A获取到上述挑战序列后,在步骤205,将挑战序列中的各个挑战元素分别与k个模型参数和加密时采用的k个随机数进行组合,得到验证消息m*和验证随机数r*
具体的,可以将上述挑战序列中的k个挑战元素与k个模型参数(m1,m2,…,mk)线性组合,并与前述第一消息m0进行叠加,基于叠加结果得到验证消息m*
在一个例子中,当挑战序列S=(e,e2,e3,…,ek),验证消息m*即为上述叠加结果:
m*=m0+e*m1+e2*m2+…+ek*mk (12)
当挑战序列S=(ei1,ei2,…,eik),可以类似的得到验证消息m*
m*=m0+ei1*m1+ei2*m2+…+eik*mk (13)
在采用公式(12)或(13)得到验证消息的情况下,在步骤202选择该第一消息m0时,需要考虑后续k个挑战元素和k个模型参数的线性组合结果的大致范围,使得第一消息也处于这样的范围中。这是因为,如果m0与式(12)或(13)中后面的线性组合项取值范围差异过大(例如相差几个数量级),则会暴露上述线性组合的结果;而数据拥有方也拥有上述挑战序列,那么有可能根据上述线性组合的结果反推出原始的模型参数。因此,第一消息的取值范围需要起到混淆后面的线性组合结果的作用。
在另一例子中,在以上公式(12)或(13)所示的叠加结果的基础上,进一步对N取模,将取模结果作为验证消息m*,即:
m*=m0+e*m1+e2*m2+…+ek*mk mod(N) (14)
或者:m*=m0+ei1*m1+ei2*m2+…+eik*mkmod(N) (15)
其中,N为Paillier加密算法或改进的Paillier加密算法公钥中的自然数N。由于该自然数N正是加密消息所在的取值空间的阶数,因此将叠加结果对N取模不会影响后续加密结果。
在采用公式(14)或(15)计算验证消息的情况下,步骤202中选择第一消息m0时,优选在{0,1,N-1}中均匀选择,因为取模操作本身可以混淆原始的线性组合结果。
另一方面,模型拥有方还将挑战序列S中的k个挑战元素与加密上述k个模型参数时使用的k个随机数(r1,r2,…,rk)和步骤202选取的第一随机数r0进行组合,得到验证随机数r*
当步骤201和202采用Paillier加密算法时,可以参考公式(6)所示的Paillier加密对应的同态操作中随机数的组合方式,进行如下计算。对于k个挑战元素和k个随机数,可以依次对于其中任意的第i挑战元素和第i随机数,使用该第i挑战元素对第i随机数进行幂操作,得到k个幂操作结果;并将k个幂操作结果与第一随机数r0连乘,得到验证随机数r*
具体的,当采用Paillier加密算法且挑战序列采用式(10)的表达时,得到以下的验证随机数r*
Figure BDA0002329147470000161
当采用Paillier加密算法且挑战序列采用式(11)的表达时,得到以下的验证随机数r*
Figure BDA0002329147470000162
当步骤201和202采用前述改进的Paillier加密算法时,可以参考公式(8)所示的改进的Paillier加密对应的同态操作中随机数的组合方式,进行如下计算。可以将挑战序列S中的k个挑战元素依次与前述的k个随机数(r1,r2,…,rk)线性组合,并与所述第一随机数r0进行叠加,据此得到验证随机数r*
具体的,当采用改进的Paillier加密算法且挑战序列采用式(10)的表达时,得到以下的验证随机数r*
r*=r0+e*r1+e2*r2+…+ek*rk (18)
当采用改进的Paillier加密算法且挑战序列采用式(11)的表达时,得到以下的验证随机数r*
r*=r0+ei1*r1+ei2*r2+…+eik*rk (19)
在采用公式(18)或(19)计算验证随机数时,由于难以确定随机数所在的空间阶数,因此在计算验证随机数r*时一般不进行取模操作。这就要求,步骤202在选取第一随机数时,在预定范围内进行选取,该预定范围与公式(18)或(19)中r0后面的线性组合项的取值范围对应一致,从而起到混淆后面的线性组合结果的作用。例如,当加密时的k个随机数中的每一个为320bit,根挑战数为112bit时,第一随机数的范围可以是(112*k+432)bit。
在模型拥有方A计算得到上述验证消息m*和验证随机数r*后,在步骤206,向数据拥有方B发送零知识证明,其中包括上述验证消息m*和验证随机数r*
在接收到上述零知识证明后,在步骤207,数据拥有方就可以基于该零知识证明,对k个参数密文的加密合法性进行验证。具体地,数据拥有方使用上述挑战序列S中的k个挑战元素对所述k个参数密文(c1,c2,…,ck)和辅助密文c0进行同态加和运算,得到第一结果Q1。具体的,依次对于挑战序列中的第i挑战元素和第i参数密文ci,使用第i挑战元素对第i参数密文进行幂操作,得到k个幂操作结果;并将所述辅助密文c0与所述k个幂操作结果连乘,基于乘积结果得到所述第一结果Q1
下面结合挑战序列采用公式(10)的表达的例子进行描述。在这样的情况下,第一结果可以写为:
Figure BDA0002329147470000171
另一方面,采用同样的同态加密算法Z,基于所述公钥pk和验证随机数r*对验证消息进行加密m*,得到第二结果Q2,即:
Q2=Enc(pk,m*;r*) (21)
然后,比对第一结果Q1和第二结果Q2是否相等。
如果k个参数密文和辅助密文均是采用Paillier加密算法合法加密的,那么根据公式(6)所示的Paillier算法的加法同态性质,上述第一结果Q1可以写为:
Figure BDA0002329147470000181
根据公式(12)或(14)中验证消息m*的计算方式,以及公式(16)中验证随机数r*的计算方式,上式(22)右侧即等于第二结果Q2
如果k个参数密文和辅助密文均是采用改进的Paillier加密算法合法加密的,那么根据公式(8)所示的改进的Paillier算法的加法同态性质,上述第一结果Q1可以写为:
Figure BDA0002329147470000182
根据公式(12)或(14)中验证消息m*的计算方式,以及公式(18)中验证随机数r*的计算方式,上式(23)右侧即等于第二结果Q2
当挑战序列采用公式(11)的表达时,只需要将以上(20)(22)(23)中的(e,e2,e3,…,ek)相应替换为(ei1,ei2,…,eik),可以得到相同的结论。
总之,如果k个参数密文和辅助密文均是采用同态加密算法合法加密的,那么根据对应同态操作得到的第一结果,与采用该同态加密算法使用验证随机数对验证消息进行加密的第二结果应该相等。因此,数据拥有方B可以通过验证第一结果和第二结果是否相等,来验证k个参数密文是否是采用约定的同态加密算法合法加密的。
如果验证第一结果等于第二结果,那么零知识证明验证通过,证明k个参数密文是合法加密的密文而非恶意构造,那么在步骤208,数据拥有方B使用拥有的k个样本特征(y1,y2,…,yk)对k个参数密文(c1,c2,…,ck)进行同态加和运算,得到特征运算密文X′。具体的,依次对于第i样本特征yi和第i参数密文ci,使用第i样本特征对第i参数密文进行幂操作,得到k个幂操作结果;将这样的k个幂操作结果连乘,乘积结果作为特征运算密文X′,具体计算如前述公式(3)所示。
然后,在步骤209,数据拥有方B将上述特征运算密文X′发送给模型拥有方A。
接着,在步骤210,模型拥有方A使用与前述公钥pk对应的私钥sk,对特征运算密文X′进行解密,得到特征运算结果。如前述公式(4)所示,解密得到的特征运算结果即为,k个样本特征(y1,y2,…,yk)和k个模型参数(m1,m2,…,mk)的线性组合X=m1*y1+m2*y2+…+mk*ykmod(N)。
于是,模型拥有方可以基于还原出的特征运算结果X,进行业务处理所需的模型运算,例如图像识别,用户分类,语音识别,文本处理等等。
需要理解,以上获取的特征运算结果,既可以用于模型训练阶段,也可以用于模型使用阶段。在模型训练阶段,上述的k个模型参数可以是暂时的有待调优的参数,模型拥有方基于上述特征运算结果进行进一步处理和预测,然后将预测结果与样本标签进行比对,从而对当前的k个模型参数进行调整,即更新和优化模型。在模型使用阶段,上述k个模型参数是已经经过训练调优的模型参数,模型拥有方可以基于上述特征运算结果进行进一步处理后,输出针对当前样本的预测结果,用于业务处理。
回顾以上整个过程可以看到,在多方联合进行模型数据处理过程中,模型拥有方和数据拥有方可以通过同态加密和同态操作的方式交互数据,从而得到特征运算结果。进一步的,在本说明书实施例提供的方案中,模型拥有方还向数据拥有方提供零知识证明,以证明所发送的密文是对模型参数合法加密生成的。根据实施例中验证随机数和验证消息的设置方式,上述零知识证明可以一次性对多个参数密文的合法性进行验证,而不会泄露任何有关明文信息,从而进一步确保了模型数据过程中各方隐私数据的安全性。
根据另一方面的实施例,提供了一种联合进行模型数据处理的装置,该装置部署在模型拥有方中,该模型拥有方可以通过任何具有计算、处理能力的设备、平台或设备集群来实现。图3示出根据一个实施例的部署在模型拥有方中的模型数据处理装置的示意性框图。如图3所示,该处理装置300包括:
参数加密单元31,配置为采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对所拥有的第一模型中的k个模型参数分别进行加密,得到k个参数密文;
辅助加密单元32,配置为随机选择第一消息和第一随机数;并采用所述同态加密算法,基于所述公钥和所述第一随机数,对所述第一消息进行加密,得到辅助密文;
第一发送单元33,配置为向数据拥有方发送所述k个参数密文和所述辅助密文;
挑战元素获取单元34,配置为获取根挑战数,并基于所述根挑战数的幂操作,得到k个挑战元素;
组合单元35,配置为将所述k个挑战元素与所述k个模型参数线性组合,并与所述第一消息进行叠加,基于叠加结果得到验证消息;将所述k个挑战元素与所述k个随机数和所述第一随机数进行组合,得到验证随机数;
第二发送单元36,配置为向所述数据拥有方发送零知识证明,其中包括所述验证消息和验证随机数,使得所述数据拥有方验证,使用所述k个挑战元素对所述k个参数密文和所述辅助密文进行同态加和运算的第一结果,与采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密的第二结果是否相等;
接收单元37,配置为接收所述数据拥有方发送的特征运算密文,所述特征运算密文是所述数据拥有方在所述验证通过的情况下,使用其拥有的k个样本特征对所述k个参数密文进行同态加和运算的结果,用于所述模型拥有方还原出特征运算结果,从而基于特征运算结果进行业务处理。
在一个实施例中,模型拥有方中维护的所述第一模型为线性回归模型,或逻辑回归模型。
根据一种实施方式,所述公钥包括,自然数N和由该自然数N限定的随机数空间中的一个循环子群的生成元h;并且,辅助加密单元32具体配置为:使用所述第一消息,对(N+1)进行幂操作,得到第一中间结果;使用所述第一随机数,基于所述生成元h进行群操作,得到第二中间结果;基于所述第一中间结果和第二中间结果,得到所述辅助密文。
相应的,在上述实施方式的一个示例中,组合单元35具体配置为:将所述k个挑战元素与所述k个随机数线性组合,并与所述第一随机数进行叠加,得到所述验证随机数。
根据另一种实施方式,所述公钥至少包括自然数N;相应的,辅助加密单元32具体配置为:使用所述第一消息,对(N+1)进行幂操作,得到第一中间结果;对所述第一随机数进行N次幂操作,得到第二中间结果;基于所述第一中间结果和第二中间结果,得到所述辅助密文。
相应的,在上述实施方式的一个示例中,组合单元35具体配置为:依次对于第i挑战元素和第i随机数,使用第i挑战元素对第i随机数进行幂操作,得到k个幂操作结果;将所述k个幂操作结果与所述第一随机数连乘,得到所述验证随机数。
在一个实施例中,挑战元素获取单元34配置为:从所述数据拥有方接收其随机选择的所述根挑战数。
在另一实施例中,挑战元素获取单元34配置为:基于所述k个参数密文和所述辅助密文,使用与所述数据拥有方约定的函数算法,计算得到所述根挑战数。
更具体的,在一个示例中,挑战元素获取单元34如下计算得到所述k个挑战元素:对所述根挑战数进行从1依次到k次幂操作,得到所述k个挑战元素。
在另一个示例中,挑战元素获取单元34如下计算得到所述k个挑战元素:对所述根挑战数随机进行k种不同的幂操作,得到所述k个挑战元素。
根据一种实施方式,组合单元35配置为:将所述第一叠加结果对N取模,将取模结果作为所述验证消息,其中N为公钥中的自然数。
在一个实施例中,所述装置还包括解密单元(未示出),配置为:采用与所述同态加密算法对应的解密算法,使用与所述公钥对应的私钥,对所述特征运算密文进行解密,得到所述特征运算结果,所述特征运算结果对应于,所述k个样本特征和所述k个模型参数的线性组合。
根据另一方面的实施例,提供了一种联合进行模型数据处理的装置,该装置部署在数据拥有方中,该数据拥有方可以通过任何具有计算、处理能力的设备、平台或设备集群来实现。图4示出根据一个实施例的部署在数据拥有方中的模型数据处理装置的示意性框图。如图4所示,该处理装置400包括:
第一接收单元41,配置为从模型拥有方接收加密合法性有待验证的k个参数密文以及辅助密文;在合法加密的情况下,所述k个参数密文是所述模型拥有方采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对k个模型参数分别加密得到的,所述辅助密文是采用所述同态加密算法,基于所述公钥和第一随机数,对随机的第一消息进行加密得到的;
挑战元素确定单元42,配置为确定根挑战数,并基于所述根挑战数的幂操作,得到k个挑战元素;
第二接收单元43,配置为从所述模型拥有方接收零知识证明,其中包括验证消息和验证随机数;其中,所述验证消息是基于所述k个挑战元素与所述k个模型参数的线性组合,以及与所述第一消息的叠加得到的,所述验证随机数是基于所述k个挑战元素与所述k个随机数和所述第一随机数组合得到的;
验证单元44,配置为使用所述k个挑战元素对所述k个参数密文和所述辅助密文进行同态加和运算,得到第一结果;并采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密,得到第二结果;
同态运算单元45,配置为在验证单元44验证所述第一结果等于第二结果的情况下,使用拥有的k个样本特征对所述k个参数密文进行同态加和运算,得到特征运算密文;
发送单元46,配置为向所述模型拥有方发送所述特征运算密文,用于所述模型拥有方还原出特征运算结果,从而基于特征运算结果进行业务处理。
在一个实施例中,所述公钥包括,自然数N和由该自然数N限定的空间中的一个循环子群的生成元h;相应的,所述验证单元44配置为:使用验证消息,对(N+1)进行幂操作,得到第一中间项;使用验证随机数,基于所述生成元h进行群操作,得到第二中间项;基于所述第一中间项和第二中间项,得到所述第二结果。
在一个实施例中,所述验证单元44配置为:依次对于第i挑战元素和第i参数密文,使用第i挑战元素对第i参数密文进行幂操作,得到k个幂操作结果;将所述辅助密文与所述k个幂操作结果连乘,基于乘积结果得到所述第一结果。
根据一个实施例,同态运算单元45配置为:依次对于第i样本特征和第i参数密文,使用第i样本特征对第i参数密文进行幂操作,得到k个幂操作结果;将所述k个幂操作结果连乘,乘积结果作为所述特征运算密文。
根据一种实施方式,挑战元素确定单元42配置为:随机生成所述根挑战数,并将其发送给所述模型拥有方。
根据另一种实施方式,挑战元素确定单元42配置为:基于所述k个参数密文和所述辅助密文,使用与所述模型拥有方约定的函数算法,计算得到所述k个挑战数。
更具体的,在一个示例中,挑战元素确定单元42如下计算得到所述k个挑战元素:对所述根挑战数进行从1依次到k次幂操作,得到所述k个挑战元素。
在另一示例中,挑战元素确定单元42如下计算得到所述k个挑战元素:对所述根挑战数随机进行k种不同的幂操作,得到所述k个挑战元素。
根据具体实施方式,所述k个样本特征可以包括以下之一:用户属性特征,图片像素特征,音频特征,文本编码特征。
通过以上的装置300和装置400,在保护隐私数据安全的同时实现多方联合进行模型数据处理。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (25)

1.一种保护数据隐私的多方联合进行模型数据处理的方法,所述多方包括模型拥有方和数据拥有方,所述方法通过所述模型拥有方执行,包括:
采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对所拥有的第一模型中的k个模型参数分别进行加密,得到k个参数密文;
随机选择第一消息和第一随机数;并采用所述同态加密算法,基于所述公钥和所述第一随机数,对所述第一消息进行加密,得到辅助密文;
向所述数据拥有方发送所述k个参数密文和所述辅助密文;
获取根挑战数,并基于所述根挑战数的幂操作,得到k个挑战元素;
将所述k个挑战元素与所述k个模型参数线性组合,并与所述第一消息进行叠加,基于叠加结果得到验证消息;将所述k个挑战元素与所述k个随机数和所述第一随机数进行组合,得到验证随机数;
向所述数据拥有方发送零知识证明,其中包括所述验证消息和验证随机数,使得所述数据拥有方验证,使用所述k个挑战元素对所述辅助密文和k个参数密文进行同态加和运算的第一结果,与采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密的第二结果是否相等;
接收所述数据拥有方发送的特征运算密文,所述特征运算密文是所述数据拥有方在所述验证通过的情况下,使用其拥有的k个样本特征对所述k个参数密文进行同态加和运算的结果,所述特征运算密文用于还原出特征运算结果,所述特征运算结果用于进行业务处理。
2.根据权利要求1所述的方法,其中,所述第一模型为线性回归模型,或逻辑回归模型。
3.根据权利要求1所述的方法,其中,所述公钥包括,自然数N和由该自然数N限定的随机数空间中的一个循环子群的生成元h;
采用所述同态加密算法,基于所述公钥和所述第一随机数,对所述第一消息进行加密,得到辅助密文,包括:
使用所述第一消息,对(N+1)进行幂操作,得到第一中间结果;
使用所述第一随机数,基于所述生成元h进行群操作,得到第二中间结果;
基于所述第一中间结果和第二中间结果,得到所述辅助密文。
4.根据权利要求3所述的方法,其中,将所述k个挑战元素与所述k个随机数和所述第一随机数进行组合,得到验证随机数,包括:
将所述k个挑战元素与所述k个随机数线性组合,并与所述第一随机数进行叠加,得到所述验证随机数。
5.根据权利要求1所述的方法,其中,所述公钥至少包括自然数N;
采用所述同态加密算法,基于所述公钥和所述第一随机数,对所述第一消息进行加密,得到辅助密文,包括:
使用所述第一消息,对(N+1)进行幂操作,得到第一中间结果;
对所述第一随机数进行N次幂操作,得到第二中间结果;
基于所述第一中间结果和第二中间结果,得到所述辅助密文。
6.根据权利要求5所述的方法,其中,将所述k个挑战元素与所述k个随机数和所述第一随机数进行组合,得到验证随机数,包括:
依次对于第i挑战元素和第i随机数,使用第i挑战元素对第i随机数进行幂操作,得到k个幂操作结果;
将所述k个幂操作结果与所述第一随机数连乘,得到所述验证随机数。
7.根据权利要求1所述的方法,其中,所述获取根挑战数,包括:
从所述数据拥有方接收其随机选择的根挑战数。
8.根据权利要求1所述的方法,其中,所述获取根挑战数,包括:
基于所述k个参数密文和所述辅助密文,使用与所述数据拥有方约定的函数算法,计算得到所述根挑战数。
9.根据权利要求1所述的方法,其中,基于所述根挑战数的幂操作,得到k个挑战元素包括:对所述根挑战数进行从1依次到k次幂操作,得到所述k个挑战元素。
10.根据权利要求1所述的方法,其中,基于所述根挑战数的幂操作,得到k个挑战元素包括:对所述根挑战数随机进行k种不同的幂操作,得到所述k个挑战元素。
11.根据权利要求3所述的方法,其中,所述基于叠加结果得到验证消息,包括:
将所述叠加结果对N取模,将取模结果作为所述验证消息。
12.根据权利要求1所述的方法,还包括:采用与所述同态加密算法对应的解密算法,使用与所述公钥对应的私钥,对所述特征运算密文进行解密,得到所述特征运算结果,所述特征运算结果对应于,所述k个样本特征和所述k个模型参数的线性组合。
13.一种保护数据隐私的多方联合进行模型数据处理的方法,所述多方包括模型拥有方和数据拥有方,所述方法通过所述数据拥有方执行,包括:
从所述模型拥有方接收加密合法性有待验证的k个参数密文以及辅助密文;在合法加密的情况下,所述k个参数密文是所述模型拥有方采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对k个模型参数分别加密得到的,所述辅助密文是采用所述同态加密算法,基于所述公钥和第一随机数,对随机的第一消息进行加密得到的;
确定根挑战数,并基于所述根挑战数的幂操作,得到k个挑战元素;
从所述模型拥有方接收零知识证明,其中包括验证消息和验证随机数;其中,所述验证消息是基于所述k个挑战元素与所述k个模型参数的线性组合,以及与所述第一消息的叠加得到的,所述验证随机数是基于所述k个挑战元素与所述k个随机数和所述第一随机数组合得到的;
使用所述k个挑战元素对所述k个参数密文和所述辅助密文进行同态加和运算,得到第一结果;并采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密,得到第二结果;
在验证第一结果等于第二结果的情况下,使用拥有的k个样本特征对所述k个参数密文进行同态加和运算,得到特征运算密文;
向所述模型拥有方发送所述特征运算密文,所述特征运算密文用于还原出特征运算结果,所述特征运算结果用于进行业务处理。
14.根据权利要求13所述的方法,其中,所述公钥包括,自然数N和由该自然数N限定的随机数空间中的一个循环子群的生成元h;
基于所述公钥和所述验证随机数对所述验证消息进行加密,得到第二结果,包括:
使用所述验证消息,对(N+1)进行幂操作,得到第一中间项;
使用所述验证随机数,基于所述生成元h进行群操作,得到第二中间项;
基于所述第一中间项和第二中间项,得到所述第二结果。
15.根据权利要求13所述的方法,其中,使用所述k个挑战元素对所述k个参数密文和所述辅助密文进行同态加和运算,得到第一结果,包括:
依次对于第i挑战元素和第i参数密文,使用第i挑战元素对第i参数密文进行幂操作,得到k个幂操作结果;
将所述辅助密文与所述k个幂操作结果连乘,基于乘积结果得到所述第一结果。
16.根据权利要求13所述的方法,其中,使用拥有的k个样本特征对所述k个参数密文进行同态加和运算,得到特征运算密文,包括:
依次对于第i样本特征和第i参数密文,使用第i样本特征对第i参数密文进行幂操作,得到k个幂操作结果;
将所述k个幂操作结果连乘,基于乘积结果得到所述特征运算密文。
17.根据权利要求13所述的方法,其中,所述确定根挑战数,包括:
随机生成所述根挑战数,并将其发送给所述模型拥有方。
18.根据权利要求13所述的方法,其中,所述确定根挑战数,包括:
基于所述k个参数密文和所述辅助密文,使用与所述模型拥有方约定的函数算法,计算得到所述根挑战数。
19.根据权利要求13所述的方法,其中,基于所述根挑战数的幂操作,得到k个挑战元素包括:对所述根挑战数进行从1依次到k次幂操作,得到所述k个挑战元素。
20.根据权利要求13所述的方法,其中,基于所述根挑战数的幂操作,得到k个挑战元素包括:对所述根挑战数随机进行k种不同的幂操作,得到所述k个挑战元素。
21.根据权利要求13所述的方法,其中,所述k个样本特征包括以下之一:用户属性特征,图片像素特征,音频特征,文本编码特征。
22.一种保护数据隐私的多方联合进行模型数据处理的装置,所述多方包括模型拥有方和数据拥有方,所述装置部署在所述模型拥有方中,包括:
参数加密单元,配置为采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对所拥有的第一模型中的k个模型参数分别进行加密,得到k个参数密文;
辅助加密单元,配置为随机选择第一消息和第一随机数;并采用所述同态加密算法,基于所述公钥和所述第一随机数,对所述第一消息进行加密,得到辅助密文;
第一发送单元,配置为向所述数据拥有方发送所述k个参数密文和所述辅助密文;
挑战元素获取单元,配置为获取根挑战数,并基于所述根挑战数的幂操作,得到k个挑战元素;
组合单元,配置为将所述k个挑战元素与所述k个模型参数线性组合,并与所述第一消息进行叠加,基于叠加结果得到验证消息;将所述k个挑战元素与所述k个随机数和所述第一随机数进行组合,得到验证随机数;
第二发送单元,配置为向所述数据拥有方发送零知识证明,其中包括所述验证消息和验证随机数,使得所述数据拥有方验证,使用所述k个挑战元素对所述k个参数密文和所述辅助密文进行同态加和运算的第一结果,与采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密的第二结果是否相等;
接收单元,配置为接收所述数据拥有方发送的特征运算密文,所述特征运算密文是所述数据拥有方在所述验证通过的情况下,使用其拥有的k个样本特征对所述k个参数密文进行同态加和运算的结果,所述特征运算密文用于还原出特征运算结果,所述特征运算结果用于进行业务处理。
23.一种保护数据隐私的多方联合进行模型数据处理的装置,所述多方包括模型拥有方和数据拥有方,所述装置部署在所述数据拥有方中,包括:
第一接收单元,配置为从所述模型拥有方接收加密合法性有待验证的k个参数密文以及辅助密文;在合法加密的情况下,所述k个参数密文是所述模型拥有方采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对k个模型参数分别加密得到的,所述辅助密文是采用所述同态加密算法,基于所述公钥和第一随机数,对随机的第一消息进行加密得到的;
挑战元素确定单元,配置为确定根挑战数,并基于所述根挑战数的幂操作,得到k个挑战元素;
第二接收单元,配置为从所述模型拥有方接收零知识证明,其中包括验证消息和验证随机数;其中,所述验证消息是基于所述k个挑战元素与所述k个模型参数的线性组合,以及与所述第一消息的叠加得到的,所述验证随机数是基于所述k个挑战元素与所述k个随机数和所述第一随机数组合得到的;
验证单元,配置为使用所述k个挑战元素对所述k个参数密文和所述辅助密文进行同态加和运算,得到第一结果;并采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密,得到第二结果;
同态运算单元,配置为在验证单元验证所述第一结果等于第二结果的情况下,使用拥有的k个样本特征对所述k个参数密文进行同态加和运算,得到特征运算密文;
发送单元,配置为向所述模型拥有方发送所述特征运算密文,所述特征运算密文用于还原出特征运算结果,所述特征运算结果用于进行业务处理。
24.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-21中任一项的所述的方法。
25.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-21中任一项所述的方法。
CN201911329214.2A 2019-12-20 2019-12-20 多方联合进行模型数据处理的方法及装置 Active CN110912713B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911329214.2A CN110912713B (zh) 2019-12-20 2019-12-20 多方联合进行模型数据处理的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911329214.2A CN110912713B (zh) 2019-12-20 2019-12-20 多方联合进行模型数据处理的方法及装置

Publications (2)

Publication Number Publication Date
CN110912713A CN110912713A (zh) 2020-03-24
CN110912713B true CN110912713B (zh) 2023-06-23

Family

ID=69826894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911329214.2A Active CN110912713B (zh) 2019-12-20 2019-12-20 多方联合进行模型数据处理的方法及装置

Country Status (1)

Country Link
CN (1) CN110912713B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111400766B (zh) * 2020-03-25 2021-08-06 支付宝(杭州)信息技术有限公司 针对隐私数据进行多方联合降维处理的方法及装置
CN111447072B (zh) * 2020-03-27 2022-04-15 苏州链原信息科技有限公司 用于生成数据等价零知识证明的方法、设备及存储介质
CN111162896B (zh) * 2020-04-01 2020-06-26 支付宝(杭州)信息技术有限公司 双方联合进行数据处理的方法及装置
CN111159773B (zh) * 2020-04-01 2020-11-03 支付宝(杭州)信息技术有限公司 保护数据隐私的图片分类方法及装置
CN111628865B (zh) * 2020-04-23 2021-06-29 平安科技(深圳)有限公司 加密数据对等关系参数检验方法、装置及存储介质
CN111598254B (zh) * 2020-05-22 2021-10-08 深圳前海微众银行股份有限公司 联邦学习建模方法、设备及可读存储介质
CN111640053B (zh) * 2020-06-02 2023-04-18 长江师范学院 一种基于同态加密算法高嵌入量的可逆信息隐藏方法
CN112003705B (zh) * 2020-08-12 2021-06-08 北京天融信网络安全技术有限公司 基于零知识证明的身份认证方法和装置
CN113011459B (zh) * 2021-02-19 2024-04-26 支付宝(杭州)信息技术有限公司 模型训练方法、装置和计算设备
CN113328863B (zh) * 2021-08-03 2021-11-02 北京电信易通信息技术股份有限公司 一种基于零知识证明的移动设备数据采集方法及系统
CN115242409B (zh) * 2022-09-21 2022-11-25 环球数科集团有限公司 一种基于零知识证明的隐私计算方法与系统
CN116232562B (zh) * 2023-05-10 2023-08-01 北京数牍科技有限公司 一种模型推理方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014220661A (ja) * 2013-05-08 2014-11-20 株式会社東芝 証明装置、出力装置、検証装置、入力装置、証明方法、検証方法およびプログラム
US10129029B2 (en) * 2016-06-16 2018-11-13 International Business Machines Corporation Proofs of plaintext knowledge and group signatures incorporating same
CN107147484B (zh) * 2017-05-12 2020-03-31 南京邮电大学 一种面向隐私保护的浮点数全同态加密方法
EP3477527A1 (en) * 2017-10-31 2019-05-01 Twinpeek Privacy management
CN108021821A (zh) * 2017-11-28 2018-05-11 北京航空航天大学 多中心区块链交易隐私保护系统及方法
CN108712260B (zh) * 2018-05-09 2021-06-25 曲阜师范大学 云环境下保护隐私的多方深度学习计算代理方法
CN108965258B (zh) * 2018-06-21 2021-07-16 河南科技大学 一种基于全同态加密的云环境数据完整性验证方法
CN109684855B (zh) * 2018-12-17 2020-07-10 电子科技大学 一种基于隐私保护技术的联合深度学习训练方法
CN110348231B (zh) * 2019-06-18 2020-08-14 阿里巴巴集团控股有限公司 实现隐私保护的数据同态加解密方法及装置
CN110266721B (zh) * 2019-07-05 2020-04-28 西南交通大学 一种基于同态的云辅助动态通用安全多方计算方法
CN110414272A (zh) * 2019-08-08 2019-11-05 北京芯际科技有限公司 一种基于多方安全计算的区块链隐私保护方法

Also Published As

Publication number Publication date
CN110912713A (zh) 2020-03-24

Similar Documents

Publication Publication Date Title
CN110912713B (zh) 多方联合进行模型数据处理的方法及装置
CN110991655B (zh) 多方联合进行模型数据处理的方法及装置
CN111162896B (zh) 双方联合进行数据处理的方法及装置
CN112989368B (zh) 多方联合进行隐私数据处理的方法及装置
WO2020015478A1 (zh) 基于模型的预测方法和装置
EP3552338B1 (en) Method of rsa signature or decryption protected using a homomorphic encryption
CN108199835B (zh) 一种多方联合私钥解密方法
JP6459658B2 (ja) 暗号処理装置、暗号処理方法、および暗号処理プログラム
CN110545279A (zh) 兼具隐私和监管功能的区块链交易方法、装置及系统
JPWO2005041474A1 (ja) 認証システム及び遠隔分散保存システム
CN108933650B (zh) 数据加解密的方法及装置
JP2016114692A (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
CN110190945A (zh) 基于多加密的线性回归隐私保护方法及系统
CN109919609A (zh) 基于公钥池的抗量子计算区块链保密交易方法和系统
JP2004512570A (ja) 非安全な暗号加速器を用いる方法と装置
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
CN112491529A (zh) 用于不可信服务器环境中数据文件加密及完整性验证方法及其系统
CN113132104A (zh) 一种主动安全的ecdsa数字签名两方生成方法
CN111565108B (zh) 签名处理方法、装置及系统
US20240048360A1 (en) Method for processing multi-source data
JP7276423B2 (ja) 暗号システム、鍵生成装置、鍵生成方法、鍵生成プログラム、および準同型演算装置
KR102067065B1 (ko) 전력 분석 및 전자파 분석에 안전한 메시지 랜덤화 기반의 행렬-벡터 곱 연산 장치, 이를 이용한 암호화 장치 및 방법
KR102067053B1 (ko) 다변수 2차 다항식 기반 포스트 양자 서명 스킴의 안전성 검증 장치 및 방법
CN110401533A (zh) 一种私钥加密方法及装置
EP4262134A1 (en) Secure multi-party computation methods and apparatuses

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