CN112989368A - 多方联合进行隐私数据处理的方法及装置 - Google Patents

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

Info

Publication number
CN112989368A
CN112989368A CN202110168741.0A CN202110168741A CN112989368A CN 112989368 A CN112989368 A CN 112989368A CN 202110168741 A CN202110168741 A CN 202110168741A CN 112989368 A CN112989368 A CN 112989368A
Authority
CN
China
Prior art keywords
data
public key
ciphertext
party
vector
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.)
Granted
Application number
CN202110168741.0A
Other languages
English (en)
Other versions
CN112989368B (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 CN202110168741.0A priority Critical patent/CN112989368B/zh
Publication of CN112989368A publication Critical patent/CN112989368A/zh
Application granted granted Critical
Publication of CN112989368B publication Critical patent/CN112989368B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书实施例提供一种多方联合对隐私数据进行处理的方法和系统,其中上述多方包括,管理方和n个数据方,方法包括以下步骤。各个数据方分别利用系统公钥,采用约定的同态加密算法,对其持有的原始隐私数据进行加密,得到对应的密文数据;其中,系统公钥通过对多方分别对应的n+1个基础公钥聚合而得到。然后多方中的至少一方,根据预定规则,对n份密文数据进行同态运算,得到密文运算结果。各个参与方,分别利用其本方私钥,对密文运算结果进行部分解密,得到部分明文结果。管理方将各个部分明文结果进行聚合运算,得到明文运算结果。

Description

多方联合进行隐私数据处理的方法及装置
技术领域
本说明书一个或多个实施例涉及加密数据处理,尤其涉及多方联合进行隐私数据处理的方法和装置。
背景技术
在大数据背景下,常常需要将不同数据方的业务数据进行综合处理。例如,在基于机器学习的商户分类分析场景中,电子支付平台拥有商户的交易流水数据,电子商务平台存储有商户的销售数据,银行机构拥有商户的借贷数据,而模型方拥有建模的参数数据。又例如,在多方进行用户信用分析的场景中,A方持有待分析用户的存款数据,B方持有用户的交易数据,C方持有用户的社交往来数据,D方持有数据处理模型。
在对多方数据进行联合处理的过程中,数据隐私的保护和安全性成为值得关注的问题。例如,在多方联合的用户信用分析中,数据拥有方拥有的原始数据往往涉及用户的个人隐私。如果为了进行联合处理而将原始数据直接发送给模型拥有方,会导致用户的隐私数据泄露,损害用户利益。
因此,希望提供改进的方案,在多方联合进行数据处理的过程中,保护各方隐私数据的安全。
发明内容
本说明书一个或多个实施例描述了一种多方联合进行数据处理的方法,能够在联合数据处理过程中,保护各方隐私数据的安全,并提高联合计算的效率。
根据第一方面,提供了一种多方联合对隐私数据进行处理的方法,所述多方包括,管理方和n个数据方,所述方法包括:
所述n个数据方中的各个数据方,分别利用系统公钥,采用约定的同态加密算法,对其持有的原始隐私数据进行加密,得到对应的密文数据;其中,所述多方中的各方,各自生成有包含本方私钥和基础公钥的本方密钥对,所述系统公钥通过对所述多方分别对应的n+1个基础公钥聚合而得到;
所述多方中的至少一方,根据预定规则,对所述n个数据方分别得到的n份密文数据进行同态运算,得到密文运算结果,并将其广播至n个数据方;
所述各个数据方,分别利用其本方私钥,对所述密文运算结果进行第一部分解密,得到部分明文结果;
所述管理方利用其本方私钥,对所述密文运算结果进行第二部分解密,得到剩余明文结果,并将剩余明文结果与来自n个数据方的n份部分明文结果进行聚合运算,得到明文运算结果。
根据一种实施方式,所述系统公钥通过以下方式在初始化阶段得到:
所述各数据方各自生成所述本方密钥对,将其中的基础公钥发送给所述管理方;所述管理方生成自身的本方密钥对,将自身的基础公钥,与来自所述n个数据方的n个基础公钥进行聚合,得到所述系统公钥;所述管理方将所述系统公钥分别发送给所述n个数据方。
进一步的,在一个实施例中,基础公钥包括第一基础值和第二基础值,第二基础值为系统参数,所述第一基础值根据对应的本方私钥和所述第二基础值确定;所述系统公钥包括第一公钥值和第二公钥值;在这样的情况下,上述将自身的基础公钥,与来自所述n个数据方的n个基础公钥进行聚合,得到所述系统公钥,具体包括:将所述管理方和n个数据方分别对应的n+1个基础公钥各自的第一基础值进行求和,将求和结果作为所述第一公钥值,将所述第二基础值作为所述第二公钥值,从而得到所述系统公钥。
根据一种实施方式,所述同态运算包括,对第一密文数据和第二密文数据进行同态加和操作,得到和结果密文;其中,所述第一密文数据和第二密文数据的每一个均包括第一部分和第二部分,所述同态加和操作包括:对第一密文数据和第二密文数据各自的第一部分求和,作为所述和结果密文的第一部分;对第一密文数据和第二密文数据各自的第二部分求和,作为所述和结果密文的第二部分。
根据一种实施方式,所述同态运算包括,利用系统辅助公钥进行乘法同态运算,所述系统辅助公钥,基于所述多方中各方的部分辅助公钥聚合而得到。
在上述实施方式的一个实施例中,乘法同态运算具体包括,对第一密文数据和第二密文数据进行同态乘法操作,得到乘结果密文,其中,所述第一密文数据和第二密文数据的每一个均包括第一部分和第二部分,所述同态乘法操作包括:将第一密文数据的第一部分和第二部分,分别与第二密文数据的第一部分和第二部分相乘,得到第一部分相乘的第一乘积项,第二部分相乘的第二乘积项,以及交叉乘积项;将第二乘积项和所述系统辅助公钥作为输入,调用密钥转换函数,得到第一调整项和第二调整项;将第一调整项和第一乘积项的加和作为乘结果密文的第一部分;将所述第二调整项和所述交叉乘积项的加和作为乘结果密文的第二部分。
进一步的,在一个实施例中,系统辅助公钥通过以下方式在初始化阶段得到:所述多方中的各方,各自生成其本方的部分辅助公钥;所述管理方将n+1个部分辅助公钥进行聚合,得到所述系统辅助公钥。
更进一步的,在第一例子中,系统公钥包括第一公钥值和第二公钥值,所述系统辅助公钥包括第一公钥向量和第二公钥向量;所述多方中的各方,各自生成其本方的部分辅助公钥,具体包括:所述多方中的任一方,根据所述第二公钥值、本方私钥、系统参数以及本方产生的随机向量,生成第一辅助向量;根据所述随机向量和所述第一公钥值,生成第二辅助向量;所述第一辅助向量和第二辅助向量构成该任一方的部分辅助公钥;所述管理方将n+1个部分辅助公钥进行聚合,具体包括:将n+1个部分辅助公钥中的第一辅助向量求和,得到所述第一公钥向量;将n+1个部分辅助公钥中的第二辅助向量求和,得到所述第二公钥向量。
根据上述第一例子,将第二乘积项和系统辅助公钥作为输入,调用密钥转换函数,得到第一调整项和第二调整项,具体包括:基于所述系统参数将所述第二乘积项表示为目标向量;基于所述目标向量与所述第二公钥向量的内积,得到所述第一调整项;基于所述目标向量与所述第一公钥向量的内积,得到所述第二调整项。
在第二例子中,所述多方中的各方,各自生成其本方的部分辅助公钥,具体包括:所述多方中的任一方,根据本方私钥、第一系统向量、第二系统向量和本方产生的随机向量,分别生成第一辅助向量、第二辅助向量和第三辅助向量,所述第一辅助向量、第一系统向量、第二辅助向量和第三辅助向量构成该任一方的部分辅助公钥;所述管理方将n+1个部分辅助公钥进行聚合,得到系统辅助公钥,具体包括:所述管理方对n+1个部分辅助公钥中的n+1个第一辅助向量,n+1个第二辅助向量和n+1个第三辅助向量分别进行求和,得到第一公钥向量,第二公钥向量和第三公钥向量;所述第一公钥向量,第一系统向量,第二公钥向量和第三公钥向量,构成所述系统辅助公钥。
根据上述第二例子,将第二乘积项和系统辅助公钥作为输入,调用密钥转换函数,得到第一调整项和第二调整项,具体包括:利用系统映射函数,将所述第二乘积项映射为目标向量;计算所述目标向量和所述第三公钥向量的内积,得到中间值,并利用所述系统映射函数,将所述中间值映射为中间向量;基于所述中间向量和所述第一公钥向量的内积,得到所述第一调整项;基于所述中间向量和所述第一系统向量的内积,与所述目标向量和第二公钥向量的内积之和,得到所述第二调整项。
根据一种实施方式,各个数据方对所述密文运算结果进行第一部分解密,具体包括:所述各数据方,按照约定方式,生成本次处理使用的加密正数R,该加密正数R是采用所述系统公钥对正数进行加密得到的密文;利用本方私钥,解密所述密文运算结果与所述加密正数R的同态乘积密文,得到所述部分明文结果。
在上述实施方式的一个实施例中,加密正数R基于预先约定的加密集合而生成。
进一步的,在一个实施例中,所述预先约定的加密集合,通过以下方式在初始化阶段获得:所述各数据方,各自随机生成约定的第一数目η个正数,并利用所述系统公钥加密该第一数目η个正数,得到具有第一数目η个元素的加密数组;所述各数据方将其得到的加密数组发送给所述管理方;所述管理方将n个加密数组中对应位置的元素进行同态相加或相乘,将由此产生的数组作为所述加密集合;所述管理方将所述加密集合返回给所述各数据方。
在一个实施例中,基于预先约定的加密集合,生成所述加密正数R,具体包括:所述各数据方获取用于本次处理的随机字符串;根据所述随机字符串,从所述加密集合中选择一部分加密元素;对所选择的一部分加密元素进行组合,得到所述加密正数R。
更进一步的,在一个示例中,所述各数据方获取用于本次处理的随机字符串,具体包括:所述各数据方生成对应的第一随机数,并将各自的第一随机数发送给所述管理方;所述管理方至少基于来自n个数据方的n个第一随机数,形成随机序列;所述管理方将所述随机序列发送给所述各数据方;所述各数据方基于所述随机序列,得到所述随机字符串。
在一个例子中,所述各数据方基于所述随机序列,得到所述随机字符串,具体包括:所述各数据方利用约定的哈希函数处理所述随机序列,得到所述随机字符串。
在一个进一步的例子中,所述加密集合中包含第一数目η个加密元素,所述随机字符串是η/2位比特串,η为偶数;在这样的情况下,根据所述随机字符串,从所述加密集合中选择一部分加密元素,包括:将所述η个加密元素排成两个序列,每个序列具有η/2个加密元素;根据所述随机字符串中第j位是0或是1,从所述两个序列之一中选择第j个加密元素,从而选择出η/2个加密元素作为所选择的一部分加密元素。
根据一种实施方式,所述原始隐私数据,是业务样本的特征值;所述预定规则是针对业务样本训练的业务预测模型中的预测算法,所述明文运算结果对应于针对业务样本的预测值。
根据另一实施方式,所述原始隐私数据,是业务样本的特征值;所述预定规则是针对业务样本训练的二分类模型中的预测算法;所述方法还包括:根据所述明文运算结果的正负号,对所述业务样本进行二分类决策。
根据第二方面,提供了一种多方联合对隐私数据进行处理的方法,所述多方包括,管理方和n个数据方,所述方法通过所述管理方执行,包括:
从所述n个数据方分别接收n份密文数据,任意一份密文数据是对应数据方利用系统公钥,采用约定的同态加密算法,对其持有的原始隐私数据进行加密得到的;其中,所述多方中的各方,各自生成有包含本方私钥和基础公钥的本方密钥对,所述系统公钥通过对所述多方分别对应的n+1个基础公钥聚合而得到;
根据预定规则,对所述n份密文数据进行同态运算,得到密文运算结果,并将其广播至n个数据方;
从所述n个数据方接收n份部分明文结果,任意一份部分明文结果是对应数据方利用其本方私钥,对所述密文运算结果进行第一部分解密得到的;
利用管理方本方私钥,对所述密文运算结果进行第二部分解密,得到剩余明文结果,并将剩余明文结果与所述n份部分明文结果进行聚合运算,得到明文运算结果。
根据一种实施方式,上述方法还包括,在初始化阶段中:从所述n个数据方中的各个数据方分别接收其本方密钥对中的基础公钥;生成管理方自身的本方密钥对,将管理方自身的基础公钥,与来自所述n个数据方的n个基础公钥进行聚合,得到所述系统公钥;将所述系统公钥分别发送给所述n个数据方。
在一个实施例中,所述同态运算包括,利用系统辅助公钥进行乘法同态运算,所述系统辅助公钥,基于所述多方中各方的部分辅助公钥聚合而得到。
进一步的,在一个实施例中,所述利用系统辅助公钥进行乘法同态运算包括,对第一密文数据和第二密文数据进行同态乘法操作,得到乘结果密文,其中,所述第一密文数据和第二密文数据的每一个均包括第一部分和第二部分,所述同态乘法操作包括:
将第一密文数据的第一部分和第二部分,分别与第二密文数据的第一部分和第二部分相乘,得到第一部分相乘的第一乘积项,第二部分相乘的第二乘积项,以及交叉乘积项;
将第二乘积项和所述系统辅助公钥作为输入,调用密钥转换函数,得到第一调整项和第二调整项;
将第一调整项和第一乘积项的加和作为乘结果密文的第一部分;将所述第二调整项和所述交叉乘积项的加和作为所述乘结果密文的第二部分。
进一步的,在第一示例中,系统公钥包括第一公钥值和第二公钥值,所述系统辅助公钥包括第一公钥向量和第二公钥向量;所述方法还包括,在初始化阶段中:管理方根据所述第二公钥值、管理方本方私钥、系统参数以及管理方产生的随机向量,生成第一辅助向量;根据所述随机向量和所述第一公钥值,生成第二辅助向量;所述第一辅助向量和第二辅助向量构成管理方的部分辅助公钥;从所述n个数据方接收n个部分辅助公钥,任意数据方的部分辅助公钥包括该数据方生成的第一辅助向量和第二辅助向量;将n+1个部分辅助公钥中的第一辅助向量求和,得到所述第一公钥向量;将n+1个部分辅助公钥中的第二辅助向量求和,得到所述第二公钥向量。
根据第一示例,调用密钥转换函数,得到第一调整项和第二调整项,具体包括:基于所述系统参数将所述第二乘积项表示为目标向量;基于所述目标向量与所述第二向量的内积,得到所述第一调整项;基于所述目标向量与所述第一向量的内积,得到所述第二调整项。
在第二示例中,上述方法还包括,在初始化阶段中:管理方根据本方私钥、第一系统向量、第二系统向量和本方产生的随机向量,分别生成第一辅助向量、第二辅助向量和第三辅助向量,所述第一辅助向量、第一系统向量、第二辅助向量和第三辅助向量构成管理方的部分辅助公钥;从所述n个数据方接收n个部分辅助公钥,任意数据方的部分辅助公钥包括上述第一系统向量,以及该数据方生成的第一辅助向量、第二辅助向量和第三辅助向量;管理方对n+1个部分辅助公钥中的n+1个第一辅助向量,n+1个第二辅助向量和n+1个第三辅助向量分别进行求和,得到第一公钥向量,第二公钥向量和第三公钥向量;所述第一公钥向量,第一系统向量,第二公钥向量和第三公钥向量,构成所述系统辅助公钥。
根据第二示例,调用密钥转换函数,得到第一调整项和第二调整项,具体包括:利用系统映射函数,将所述第二乘积项映射为目标向量;计算所述目标向量和所述第三公钥向量的内积,得到中间值,并利用所述系统映射函数,将所述中间值映射为中间向量;基于所述中间向量和所述第一公钥向量的内积,得到所述第一调整项;基于所述中间向量和所述第一系统向量的内积,与所述目标向量和第二公钥向量的内积之和,得到所述第二调整项。
根据第三方面,提供了一种多方联合对隐私数据进行处理的方法,所述多方包括,管理方和n个数据方,所述方法通过所述n个数据方中任意一个数据方执行,包括:
利用系统公钥,采用约定的同态加密算法,对本数据方持有的原始隐私数据进行加密,得到对应的密文数据,并将其发送给所述多方中的至少一方;其中,所述多方中的各方,各自生成有包含本方私钥和基础公钥的本方密钥对,所述系统公钥通过对所述多方分别对应的n+1个基础公钥聚合而得到;
从所述至少一方接收密文运算结果,所述密文运算结果是根据预定规则,对所述n个数据方分别得到的n份密文数据进行同态运算而得到;
利用本方私钥,对所述密文运算结果进行第一部分解密,得到部分明文结果;
将所述部分明文结果发送给所述管理方,使得所述管理方利用其本方私钥,对所述密文运算结果进行第二部分解密,得到剩余明文结果,并将剩余明文结果与来自n个数据方的n份部分明文结果进行聚合运算,得到明文运算结果。
根据一种实施方式,对所述密文运算结果进行第一部分解密,得到部分明文结果,包括:按照约定方式,生成本次处理使用的加密正数R,该加密正数R是采用所述系统公钥对正数进行加密得到的密文;利用本方私钥,解密所述密文运算结果与所述加密正数R的乘积,得到所述部分明文结果。
进一步的,在一个实施例中,按照约定方式,生成本次处理使用的加密正数R,包括:获取用于本次处理的随机字符串;根据所述随机字符串,从预先约定的加密集合中选择一部分加密元素;对所选择的一部分加密元素进行组合,得到所述加密正数R。
更进一步的,在一个示例中,所述加密集合中包含第一数目η个加密元素,所述随机字符串是η/2位比特串,η为偶数;则根据所述随机字符串,从所述加密集合中选择一部分加密元素,具体包括:将所述η个加密元素排成两个序列,每个序列具有η/2个加密元素;根据所述随机字符串中第j位是0或是1,从所述两个序列之一中选择第j个加密元素,从而选择出η/2个加密元素作为所选择的一部分加密元素。
根据第四方面,提供了一种多方联合对隐私数据进行处理的系统,所述系统包括,管理方和n个数据方,其中:
所述n个数据方中的各个数据方配置为,分别利用系统公钥,采用约定的同态加密算法,对其持有的原始隐私数据进行加密,得到对应的密文数据;其中,所述管理方和n个数据方,各自生成有包含本方私钥和基础公钥的本方密钥对,所述系统公钥通过对n+1个基础公钥聚合而得到;
所述系统中的至少一方配置为,根据预定规则,对所述n个数据方分别得到的n份密文数据进行同态运算,得到密文运算结果,并将其广播至n个数据方;
所述各个数据方还配置为,分别利用其本方私钥,对所述密文运算结果进行第一部分解密,得到部分明文结果;
所述管理方配置为,利用其本方私钥,对所述密文运算结果进行第二部分解密,得到剩余明文结果,并将剩余明文结果与来自n个数据方的n份部分明文结果进行聚合运算,得到明文运算结果。
根据第五方面,提供了一种用于多方联合对隐私数据进行处理的装置,所述多方包括,管理方和n个数据方,所述装置部署在所述管理方中,包括:
第一接收单元,配置为从所述n个数据方分别接收n份密文数据,任意一份密文数据是对应数据方利用系统公钥,采用约定的同态加密算法,对其持有的原始隐私数据进行加密得到的;其中,所述多方中的各方,各自生成有包含本方私钥和基础公钥的本方密钥对,所述系统公钥通过对所述多方分别对应的n+1个基础公钥聚合而得到;
同态运算单元,配置为根据预定规则,对所述n份密文数据进行同态运算,得到密文运算结果,并将其广播至n个数据方;
第二接收单元,配置为从所述n个数据方接收n份部分明文结果,任意一份部分明文结果是对应数据方利用其本方私钥,对所述密文运算结果进行第一部分解密得到的;
解密聚合单元,配置为利用管理方本方私钥,对所述密文运算结果进行第二部分解密,得到剩余明文结果,并将剩余明文结果与所述n份部分明文结果进行聚合运算,得到明文运算结果。
根据第六方面,提供了一种用于多方联合对隐私数据进行处理的装置,所述多方包括,管理方和n个数据方,所述装置部署在所述n个数据方中任意一个数据方中,包括:
加密单元,配置为利用系统公钥,采用约定的同态加密算法,对本数据方持有的原始隐私数据进行加密,得到对应的密文数据,并将其发送给所述多方中的至少一方;其中,所述多方中的各方,各自生成有包含本方私钥和基础公钥的本方密钥对,所述系统公钥通过对所述多方分别对应的n+1个基础公钥聚合而得到;
接收单元,配置为从所述至少一方接收密文运算结果,所述密文运算结果是根据预定规则,对所述n个数据方分别得到的n份密文数据进行同态运算而得到;
解密单元,配置为利用本方私钥,对所述密文运算结果进行第一部分解密,得到部分明文结果;
发送单元,配置为将所述部分明文结果发送给所述管理方,使得所述管理方利用其本方私钥,对所述密文运算结果进行第二部分解密,得到剩余明文结果,并将剩余明文结果与来自n个数据方的n份部分明文结果进行聚合运算,得到明文运算结果。
根据第七方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一、第二或第三方面所述的方法。
根据第八方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一、第二或第三方面所述的方法。
根据本说明书实施例提供的方法和装置,各数据方统一采用系统公钥进行加密,在解密阶段,各方利用其私钥对密文运算结果进行部分解密,最后由管理方融合各个部分解密结果,得到最终明文运算结果。同时,该方法也为乘法同态运算的简化,提供了可能。根据一个实施例,在初始化阶段,各参与方还共同生成系统辅助公钥。在需要进行乘法同态运算时,利用系统辅助公钥进行乘法同态操作,该操作大大简化密钥转换函数运算过程的复杂度,减小通信量。从而,在保护各方数据隐私的情况下,高效地进行联合数据计算处理。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例的多方联合处理的初始化阶段流程图;
图3示出根据一个实施例的多方联合处理的在线计算阶段流程图;
图4示出根据一个实施例的多方联合处理的在线计算阶段流程图;
图5示出根据一个实施例的部署在管理方的处理装置的示意图;
图6示出根据一个实施例的部署在数据方的处理装置的示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
为了在多方联合进行数据处理的过程中,保护各个数据方的数据隐私安全,本说明书提供一种多密钥全同态加密方案。根据该方案,在包含多个参与方的分布式场景下,各个参与方执行非对称密钥生成算法,生成各自的公钥和私钥。系统将各个参与方的公钥进行聚合,从而生成系统公钥,分发给各个参与方。持有隐私数据的数据方,利用这样的系统公钥加密各自的隐私数据,并将加密后的密文数据广播出去。多方中的某一方或某几方,对各个数据方的密文数据进行同态运算,得到密文运算结果。各个参与方利用其本方私钥,对密文运算结果进行部分解密,之后可以对所有部分解密结果进行聚合运算,获得最终的同态运算结果的明文。通过上述方式,实现保护数据隐私安全下的多方联合数据处理。
图1为本说明书披露的一个实施例的实施场景示意图。如图1所示,多方联合数据处理的场景涉及管理方和n个数据方,统称为n+1个参与方。需要说明的是,各个参与方均可以实现为任何具有计算、处理能力的设备、平台、服务器或设备集群。
上述联合数据处理,可以是针对各个数据方中的原始数据进行各种处理,例如,根据一定规则进行的联合运算,联合模型训练,使用模型进行联合业务预测,等等。
在一种典型实施方式中,上述联合数据处理,用于针对业务样本进行联合业务预测。具体地,各个数据方存储有业务样本的不同特征项的特征值,作为原始隐私数据。管理方训练有业务预测模型,该业务预测模型可以基于业务样本的各个特征项的特征值,对业务样本进行预测分析。
例如,在商户分类分析场景中,业务样本可以是商户;各个数据方可以对应于不同的数据平台,例如电子支付平台,电子商务平台等等;相应的,各个数据方可以持有商户的不同特征项的特征值,例如交易量,销售额,借贷金额,等等。管理方可以基于训练好的模型,对商户进行预测分析。
在另一个例子中,业务样本可以是用户。各个数据方可以对应于不同的数据平台,例如,支付平台,电商平台,社交平台等等;从而,各个数据方可以持有用户的不同特征项的特征值,例如,收入,购物花费,社交好友,转账金额,等等。管理方例如是银行,希望利用训练好的模型,对用户进行预测分析。该预测分析可以是,通过联合计算得到一个预测值,例如,该用户的贷款额度,该用户的风险程度;也可以是,通过联合计算对用户进行分类,例如,划分到某个用户群组,或者对该用户是否为高风险用户,是否应对该用户进行批贷,进行二分类预测。
在其他实施例中,业务样本还可以是其他业务对象,例如可以是事件,商品等等,业务样本还可以具有其他形式,例如图片,文本等等,在此不一一详述。
为了进行安全的多方联合数据处理,图1的方案包括初始化阶段和在线处理阶段。
在初始化阶段,首先,各个参与方,包括管理方和数据方1-n,分别生成其密钥对,其中包括本方私钥和公钥。然后,对n+1个参与方各自的公钥进行聚合,多方共同得到系统公钥PK。
在线处理阶段可以包括多次执行计算处理,每次计算处理针对一个业务样本。在每次计算处理中,各个数据方i,利用系统公钥PK,对本方的隐私数据Di(例如,某个业务样本的特征值)进行加密,得到密文数据Enc(Di)。然后,多个参与方中的某个或某些参与方,图1示出为管理方和数据方1,对n个数据方的n份密文数据进行同态运算,得到密文运算结果Ct。
接着,各个参与方利用其本方私钥,对密文运算结果Ct进行部分解密,得到部分明文结果hi。最终,管理方将各个部分明文结果进行聚合,得到明文运算结果。
需要说明的是,为了适应各种规则和各种模型的算法需要,上述的同态运算优选为全同态运算。全同态运算包括加法同态运算和乘法同态运算,其中,乘法同态运算通常更加复杂。已有的多方联合计算方案中,各方利用本方私钥对数据进行加密。如此,对两方密文进行乘法同态运算的方案,通常会涉及密钥转换函数,用于计算出两方私钥的共同运算值。密钥转换函数的运算过程通常非常复杂,通信数据量大。
而在本说明书的构思之下,各数据方统一采用系统公钥进行加密,这也为乘法同态运算的简化,提供了可能。根据本发明书一个实施例,在初始化阶段,与系统公钥类似的,基于各个参与方生成的部分辅助公钥,聚合得到系统辅助公钥。在需要进行乘法同态运算时,利用系统辅助公钥进行乘法同态操作,该操作大大简化密钥转换函数运算过程的复杂度,减小通信量。
下面对本说明书各个实施例进行详细描述。为了描述的准确,首先对实施例中涉及的技术概念的数学符号和数学表达,进行介绍和统一。
如本领域技术人员所知,同态加密算法往往基于一定的环结构。下面用Rq表示环结构,其中
Figure BDA0002938217690000151
χσ表示标准差为σ的离散高斯分布,
Figure BDA0002938217690000152
表示产生N维向量,向量的每个元素服从χσ。U(qN)表示服从均匀分布的N维向量。N为2的幂次方。同态加密算法包含以下六个部分的算法过程。
(A)密钥生成算法,又称为KeyGen,用于产生公钥和私钥,其中:
a)私钥
Figure BDA0002938217690000153
即产生N维向量;
b)公钥pk=(-a*sk+e,a),这里a←U(qN),
Figure BDA0002938217690000154
(B)Encode:编码算法,将明文m转化为明文多项式pm
(C)Encryption:加密算法,用公钥将明文多项式加密成密文多项式。具体地,令pk=(p0,p1),则密文
Figure BDA0002938217690000155
其中:
c1=u*p1+e1, c0=u*p0+e0+pm (1)
其中,u,e0,
Figure BDA0002938217690000156
pm是明文多项式。
(D)Decryption:解密算法,将密文多项式解密成明文多项式。
具体地,设密文ct=(c0,c1),则解密后的明文多项式pm为:
pm≈(c0+c1*sk)mod q (2)
(E)Decode:译码算法,将明文多项式pm转化为明文m;
(F)HomomorphicComputation:同态计算,包括同态加法、同态乘法。
a)同态加法:ct=Add(ct0,ct1),对应明文相加;
b)同态乘法:ct=Mu.(ct0,ct1),对应明文相乘;
c)常数乘法:ct′=ConstMul(ct,m),对应ct蕴含的明文与m相乘。
以上q为对环结构取模的模值,满足q=p1p2…pl,这里每个pi是素数。
为了后续密钥转换函数的计算,还在上述环结构中定义几种系统映射函数。
Figure BDA0002938217690000161
是指产生Rq上的.维向量A,A的每个元素服从U(qN);分布
Figure BDA0002938217690000162
是指产生Rq上的.维向量E,E的每个元素服从
Figure BDA0002938217690000163
定义第一系统映射函数g:
Figure BDA0002938217690000164
将x映射为向量:
Figure BDA0002938217690000165
这里
Figure BDA0002938217690000166
还定义第二系统映射函数g*
Figure BDA0002938217690000167
将x映射为向量:
Figure BDA00029382176900001611
则有:
Figure BDA0002938217690000168
Figure BDA0002938217690000169
公式(5)中,<.>表示向量内积。
基于以上同态加密的基本原理和数学表示,下面描述本说明书实施例的具体流程步骤。
图2示出根据一个实施例的多方联合处理的初始化阶段流程图。该初始化阶段是后续在线处理的准备阶段。在执行该初始化过程之前,系统的各个参与方,预先部署公共字符串CRS,用于生成均匀随机的Rq上的元素。基于公共字符串CRS,各个参与方可以生成相同的系统参数。如图2所示,初始化阶段包括以下步骤。
在步骤201,各个参与方生成本方私钥和公钥。
具体的,数据方i根据前述密钥生成算法生成私钥ski,并计算对应的公钥pki=(-a*ski+ei,a),其中,
Figure BDA00029382176900001610
由数据方i随机生成,a∈Rq利用CRS产生,是各方相同的系统参数。
类似于各个数据方,管理方生成私钥sk0,并计算对应公钥pk0=(-a*sk0+e0,a)。
在下文中,用下角标i表示第i数据方,下角标0则对应于管理方。为了区分这里与私钥对应的公钥和后续的其他公钥,将以上与各方私钥对应的公钥称为基础公钥。可以看到,基础公钥包括2个部分,可称为第一基础值和第二基础值,第二基础值a为各方相同的系统参数,第一基础值根据对应的本方私钥ski和第二基础值a确定得到。
然后,在步骤202,各个数据方将其基础公钥pki发送给管理方。
在步骤203,管理方对所有参与方的基础公钥,包括其自身以及n个数据方的共计n+1个基础公钥,进行聚合。
具体地,管理方根据收到的n个pki,计算
Figure BDA0002938217690000171
Figure BDA0002938217690000172
作为系统公钥。可以看到,类似于基础公钥,系统公钥也包含两部分,即第一公钥值p0和第二公钥值p1,其中第一公钥值p0是将n+1个基础公钥各自的第一基础值进行求和得到,第二公钥值p1即等于第二基础值a。
接着,在步骤204,管理方将得到的系统公钥PK发送给各数据方。
如前所述,为了便于乘法同态运算的高效执行,在一个实施例中,在初始化阶段,各个参与方还协同产生系统辅助公钥,用于后续使用。
在该实施例中,初始化阶段还包括以下步骤。
在步骤205,各个参与方各自生成其部分辅助公钥evki,其中i等于1到n时,指示第i数据方,i等于0时指示管理方。
在步骤206,各个数据方将其部分辅助公钥发送给管理方。
在步骤207,管理方对n+1个部分辅助公钥进行聚合,得到系统辅助公钥EVK。
在不同实施例中,部分辅助公钥可以通过多种方式生成和聚合。
在第一实施例中,各个参与方根据本方私钥和系统公钥PK生成部分辅助公钥。具体的,数据方i可以生成部分辅助公钥evki=(ri,0,ri,1),其中:
ri,0=ui·p1+ski·p·w+ei,
ri,1=ui·p0+e′i
ui=(ui,0,ui,1,…,ui,l),
w=(1,w,w2,…,wl),
ei=(ei,0,…,ei,l),e′i=(e′i,0,…,e′i,l), (6)
公式组(6)中,w,p是系统参数;ei,e′i的每个分量都服从
Figure BDA0002938217690000181
可以看到,部分辅助公钥evki包含两个部分,第一辅助向量ri,0和第二辅助向量ri,1,其中,第一辅助向量ri,0根据系统公钥PK中的第二公钥值p1、本方私钥ski、系统参数w,p以及本方产生的随机向量ui,ei而生成,第二辅助向量ri,1根据随机向量ui,e′i和系统公钥PK中的第一公钥值p0而生成;以上各个随机向量均为l维向量,因此,第一辅助向量和第二辅助向量也是l维向量。
类似于数据方,管理方也生成自己的部分辅助公钥evk0=(r0,0,r0,1),生成方式与上述相同。
相应地,对于如此生成的部分辅助公钥,管理方通过以下方式计算得到系统辅助公钥EVK:
Figure BDA0002938217690000182
也就是说,系统辅助公钥也相应包括两个部分:第一公钥向量r0和第二公钥向量r1,第一公钥向量r0通过将n+1个部分辅助公钥中的第一辅助向量ri,0求和而得到,第二公钥向量r1通过将n+1个部分辅助公钥中的第二辅助向量ri,1求和而得到。
在与之并行的第二实施例中,各个参与方根据本方私钥和系统映射函数生成部分辅助公钥(而不必使用系统公钥)。具体的,数据方i可以如下计算部分辅助公钥:evki=(Wi,X,Yi,Zi),其中:
Wi=-X*ski+g(si)+Ei,1,
Yi=U*si+g(ski)+Ei,2,
Zi=-U*ski+Ei,3 (8)
以上公式组(8)中,X和U由CRS产生,是系统向量,
Figure BDA0002938217690000183
且Ei,1,Ei,2,
Figure BDA0002938217690000184
这三个.维向量均由数据方i产生,其每个分量均服从
Figure BDA0002938217690000185
可以看到,在该第二实施例中,部分辅助公钥evki包含四个部分,第一辅助向量Wi、第一系统向量X、第二辅助向量Yi和第三辅助向量Zi,其中,第一至第三辅助向量,根据本方私钥ski,第一系统向量X、第二系统向量U和本方产生的随机向量Ei,1,Ei,2,Ei,3而生成。各个系统向量和随机向量均为.维向量。为了执行向量运算,以上部分辅助公钥的生成,还利用了公式(3)定义的第一系统映射函数,将私钥ski和随机数si,分别映射为l维向量。因此,最终得到的部分辅助公钥中的四个向量均为l维向量。
类似于数据方,管理方也相应生成部分辅助公钥evk0=(W0,X,Y0,Z0);生成方式与上述相同。
相应地,对于如此生成的部分辅助公钥,管理方通过以下方式计算得到系统辅助公钥EVK:
Figure BDA0002938217690000191
也就是说,系统辅助公钥也相应包括四个部分:第一公钥向量,第一系统向量X,第二公钥向量,和第三公钥向量,其中,第一公钥向量,第二公钥向量和第三公钥向量,通过对n+1个部分辅助公钥中的n+1个第一辅助向量,n+1个第二辅助向量和n+1个第三辅助向量分别进行求和,而分别得到。
需要说明的是,在第二实施例中,部分辅助公钥和系统辅助公钥的生成,并不依赖于系统公钥PK。因此,如果按照第二实施例获得系统辅助公钥,步骤205-207,可以在生成系统公钥的步骤203之前执行,或与之并行执行。例如,各个参与方可以在生成私钥之后,就生成部分辅助公钥;并在步骤202,将部分辅助公钥和基础公钥,一起发送给管理方。这相当于将步骤202和步骤206合并执行。本说明书并不限定图2中各个步骤的执行顺序;任何合乎逻辑的顺序改变,都在本说明书所描述的技术构思之内。
在进行了系统的初始化后,各个数据方就可以对本方隐私数据进行加密,进行在线计算处理。图3示出根据一个实施例的多方联合处理的在线计算阶段流程图。在一个实施例中,图3所示的在线计算处理可以执行多次,每次针对一个业务样本。
如图3所示,在在线处理阶段,首先在步骤301,各个数据方i,利用系统公钥PK,采用前述技术概念介绍中(C)部分所示的加密算法公式(1),对本方的隐私数据Di进行加密,得到密文数据cti。其中,各个数据方具有的隐私数据,可以是同一业务样本的不同特征项的特征值,例如,用户的年龄,收入,消费金额等等。由此,n个数据方产生了n份密文数据ct1,ct2,…,ctn。根据前述技术概念介绍中(C)部分所示,每份密文数据包含两个部分ct=(c0,c1)。
然后,在步骤302,多个参与方中的某个或某些参与方,根据预定规则,对n个数据方的n份密文数据进行同态运算,得到密文运算结果。
在一个实施例中,上述预定规则由管理方确定,且不对外公开。例如,管理方预先训练一个业务预测模型,但是该模型的算法和参数对外保密。在这样的情况下,各个数据方都将其密文数据发送到管理方,由管理方进行上述同态运算。
在另一实施例中,上述预定规则是公开的规则,也就是说,规则中的运算方式和运算所需参数,都是公开的。例如,上述预定规则可以是简单的数据求和运算,或者是公开的业务预测模型中的预测逻辑。在这样的情况下,各个参与方都可以知晓该预定规则,因此,任意一个或多个参与方都可以实施上述同态运算。需要说明的是,当由数据方来实施上述同态运算,且同态运算中包含有乘法同态计算时,在图2的步骤207之后,管理方需要将生成的系统辅助公钥EVK发送给数据方,以便于其使用该系统辅助公钥进行同态运算。在一个典型的实施例中,管理方具有较强的计算能力,上述同态运算由管理方执行。因此,可以理解,虽然在图3的示意中,步骤302的同态运算由管理方执行,但这只是示出了一种比较典型的情况,并不排除由一个或多个数据方执行同态运算的情况。
根据一个实施例,上述同态运算包括加法同态运算。如前所述,每份密文数据包含两个部分,第一部分c0和第二部分c1。假设有两个有待进行加法同态运算的输入密文:第一密文数据
Figure BDA0002938217690000211
和第二密文数据
Figure BDA0002938217690000212
其中上标(1)或(2)分别表示来自于第一密文数据或是第二密文数据。需要理解,上述第一密文数据和第二密文数据,可以是数据方对其原始隐私数据加密得到的密文数据,也可以是,已经执行若干同态运算的中间结果密文。将同态加和后的和结果密文表示为ct=(ct0,ct1),则:
Figure BDA0002938217690000213
也就是说,对第一密文数据和第二密文数据各自的第一部分求和,作为和结果密文的第一部分;对第一密文数据和第二密文数据各自的第二部分求和,作为和结果密文的第二部分,从而实现加法同态运算。
根据一个实施例,上述同态运算还包括乘法同态运算。乘法同态运算的执行过程依赖于前述系统辅助公钥,较加法同态要更复杂,下面详细描述。
仍然假设有两个输入密文:第一密文数据
Figure BDA0002938217690000214
和第二密文数据
Figure BDA0002938217690000215
类似的,这两个密文数据,可以是对原始隐私数据加密得到的密文数据,也可以是同态运算的中间结果密文。
为了计算乘结果密文,首先计算
Figure BDA0002938217690000216
这里i,j∈{0,1}。也就是将第一密文数据的第一部分
Figure BDA0002938217690000217
和第二部分,
Figure BDA0002938217690000218
分别与第二密文数据的第一部分
Figure BDA0002938217690000219
和第二部分
Figure BDA00029382176900002110
相乘,如此,可以得到第一部分相乘的第一乘积项c0,0,第二部分相乘的第二乘积项c1,1,以及交叉乘积项c1,0和c0,1
然后,将第二乘积项c1,1和系统辅助公钥EVK作为输入,调用密钥转换函数,得到第一调整项c′0和第二调整项c′1
从而,将第一调整项c′0和第一乘积项c0,0的加和作为乘结果密文的第一部分;将第二调整项c′1和交叉乘积项c1,0,c0,1的加和作为乘结果密文的第二部分,由此获得乘结果密文ct=(ct0,ct1),即:
ct0=c′0+c0,0,ct1=c′1+c1,0+c0,1 (11)
需要说明的是,密钥转换函数的作用是,在对两个用公钥加密的密文进行同态乘法运算时,求得用于结果密文的若干调整项,调整项与私钥运算之间满足一定关系,从而使得调整后的密文满足公式(2)所示的形式。
在常规技术中,各个数据方用其本方公钥对数据进行加密,则进行同态乘法运算的两个密文ct(1)和ct(2),是用不同的公钥加密的,并且在密文ct(1)或ct(2)已经是在先的同态运算的中间结果密文的情况下,该密文对应的公钥是在先运算的密文公钥的叠加。在这样的情况下,需要在包含在先运算的所有运算参与方之间,两两执行密钥转换函数,计算复杂,通信量大。
而在本实施例的方案中,各个数据方使用共同的系统公钥PK进行加密,则进行乘法同态运算的两个密文,无论是数据方直接加密产生的直接密文,还是经过在先运算产生的结果密文,仍然是用系统公钥PK加密的。此时,密钥转换函数只需要执行一次,并使其满足下式(12)即可:
c′0+c′1·sk≈c1,1·sk2 (12)
在公式(12)中,sk是n+1个参与方私钥之和,可以认为是与系统公钥对应的系统私钥。
为了满足上述要求,在不同的系统辅助公钥EVK的情况下,密钥转换函数具有不同的运算过程。
在前述的第一实施例中,采用公式(6)和(7)的方式形成系统辅助公钥EVK。在这样的情况下,密钥转换函数的输入为第二乘积项c1,1和系统辅助公钥EVK=(r0,r1),其运算过程包括以下步骤。
首先,基于公式(6)中的系统参数w将第二乘积项c1,1表示为向量,称为目标向量。具体的,可以将第二乘积项按照w进制展开表示为:
Figure BDA0002938217690000221
由此,目标向量中每个元素
Figure BDA0002938217690000222
(i=0,1,..,l)都小于w。
于是,可以基于目标向量C1,1与系统辅助公钥EVK中第二公钥向量r1的内积,得到第一调整项c′0;基于目标向量C1,1与第一公钥向量r0的内积,得到第二调整项c′1
具体地,可以根据下式得到第一调整项c′0和第二调整项c′1
Figure BDA0002938217690000231
Figure BDA0002938217690000232
公式组(14)中,p是与公式(6)中相同的系统参数,<.>表示两个向量的内积,
Figure BDA0002938217690000233
表示四舍五入取整。
下面验证公式组(14)的正确性。
将公式(6)和(7)中关于r0,r1的表示代入公式组(14),可以得到:
Figure BDA0002938217690000234
Figure BDA0002938217690000235
计算c′0+c′1·sk,得到:
Figure BDA0002938217690000236
其中δ12是由于四舍五入产生的小量,其无穷范数小于等于1/2。
因此,有c′0+c′1·sk≈c1,1·sk2,满足公式(12)。
与之并列的,在前述的第二实施例中,采用公式(8)和(9)的方式形成系统辅助公钥EVK。在这样的情况下,密钥转换函数的输入为第二乘积项c1,1和系统辅助公钥EVK=(W,X,Y,Z),其中X为第一系统向量,W,Y,Z分别为第一公钥向量,第二公钥向量和第三公钥向量,并且:
Figure BDA0002938217690000237
Figure BDA0002938217690000238
Figure BDA0002938217690000239
其中,
Figure BDA00029382176900002310
相应的,密钥转换函数的运算过程包括以下步骤。
首先,利用系统映射函数,将输入的第二乘积项c1,1映射为目标向量C1,1。具体的,在该步骤中,可以使用如公式(4)所示的第二系统映射函数,将第二乘积项映射为向量C1,1,即:
Figure BDA0002938217690000241
然后,计算上述目标向量C1,1和第三公钥向量Z的内积,得到中间值ts,即:ts=<C1,1,Z>∈Rq。接着,再次利用上述系统映射函数g*,将该中间值ts映射为中间向量g*(ts)。
于是,可以基于该中间向量g*(ts)和第一公钥向量W的内积,得到第一调整项c′0,并且,基于该中间向量g*(ts)和第一系统向量X的内积,与上述目标向量C1,1和第二公钥向量Y的内积之和,得到第二调整项c′1,即:
c′0=<g*(ts),W>
c′1=<g*(ts),X>+<C1,1,Y> (16)
下面验证公式组(16)的正确性。
根据公式组(15)中的第一条,在
Figure BDA0002938217690000242
时,有W+X*sk≈g(s),则:c′0+<g*(ts),X>*sk=<g*(ts),W+X*sk>≈<g*(ts),g(s)>=s*<C1,1,Z>.其中,最后一个等号,利用了公式(5)的性质。
其次,<C1,1,Y>*sk+s*<C1,1,Z>=<C1,1,Y*sk+s*Z>≈c1,1*sk2,
于是:
c′0+c′1*sk≈s*<C1,1,Z>-<g*(ts),X>*sk+<g*(ts),X>*sk+<C1,1,Y>*sk
≈c1,1*sk2
在以上第一和第二实施例中,密钥转换函数基于系统辅助公钥EVK而执行,且仅需执行一次即可得到相应的第一和第二调整项,从而快速简单地得到公式(11)所示的同态乘法结果密文。
以上描述了两个密文数据之间进行同态加法和同态乘法的运算过程。回到图3,步骤302中根据预定规则的同态运算,总是可以拆分为若干同态加法/同态乘法的组合,从而得到最终的密文运算结果。
然后,在步骤303,执行同态运算的参与方,例如管理方,将密文运算结果广播至n个数据方。
接着,在步骤304,各个数据方分别利用其本方私钥,对上述密文运算结果进行部分解密,得到部分明文结果。
具体的,将待解密的密文运算结果记为ct=(c0,c1)。则数据方i,利用其本方私钥ski执行部分解密,得到第i部分的部分明文结果hi=c1*ski+e′i,其中
Figure BDA0002938217690000251
也就是说,第i数据方得到的部分明文结果,基于该第i数据方的私钥ski与密文运算结果的第二部分c1的乘积而得到。
然后,在步骤305,各个数据方将其得到的部分明文结果发送给管理方。
此外,在步骤306,管理方也利用其本方私钥sk0,对密文运算结果ct进行部分解密,得到剩余明文结果。管理方所执行的部分解密,与数据方所执行的略有不同,其中涉及密文运算结果的两个部分。具体的,管理方可以如下得到剩余明文结果h0=c0+c1*sk0,即,在私钥与第二部分乘积的基础上,加上密文运算结果的第一部分。
该步骤306可以与步骤304-305并行执行。
于是,在步骤307,管理方可以将剩余明文结果h0与来自n个数据方的n份部分明文结果hi进行聚合运算,得到明文运算结果。
具体的,管理方可以计算明文多项式tp:
Figure BDA0002938217690000252
根据公式(2),c0+c1*sk=Encode(m)+e,因此上述(17)又可以写为:
Figure BDA0002938217690000253
于是当e和
Figure BDA0002938217690000254
不大时,以tp为输入,调用Decode解码算法,就可以正确恢复出明文运算结果m。
通过以上图3所示的过程,执行了一次在线计算,其中通过利用共同的系统公钥对各方隐私数据进行加密,简化了同态运算和解密过程。特别是,在包含同态乘法运算时,利用系统辅助公钥执行密钥转换函数,可以极大优化同态乘法的计算性能,减小通信量。
需要说明的是,以上图3方案得到的明文运算结果m,是一个近似值,与其真实值可能会有小量误差。在对误差不敏感的情况下,管理方可以直接根据该明文运算结果进行后续业务处理。例如,在一个场景中,管理方旨在基于各个数据方持有的业务样本的特征值,通过多方联合处理,得到业务样本的某项指标估计,进而统计指标分布。在这样的情况下,与真实值的小量误差,并不影响最终的业务处理。此时,可以直接使用上述明文运算结果。
在另一些场景下,业务处理对运算结果的误差比较敏感。比如,在一个例子中,管理方使用业务预测模型,基于各个数据方持有的业务样本的特征值,对业务样本进行二分类。更具体的,该业务预测模型可以是逻辑回归模型。逻辑回归模型根据运算值的正负号,对样本进行二分类。例如,如果明文运算结果m大于0,则将业务样本划分为一类,例如高风险用户,如果明文运算结果m小于0,则将业务样本划分为另一类,例如低风险用户。此时,如果真实的运算结果比较小,接近于0,则产生的误差有可能改变运算结果的正负号,从而改变分类结果,对业务决策有较大的影响。
基于以上考虑,针对明文运算结果的正负号对于业务决策有明显影响的情况,提出进一步优化的实施方案。
图4示出根据一个实施例的多方联合处理的在线计算阶段流程图,是针对以上情况设计的优化方案。图4中步骤401至403的具体执行方式与图3中的步骤301至303对应相同,不再赘述。不同的是,在各个数据方进行部分解密之前,在步骤404,各数据方按照约定方式,生成本次处理使用的加密正数R,该加密正数R是采用前述系统公钥PK对正数进行加密得到的密文。该加密正数R可以通过多种方式生成。
在一种实施方式中,各个数据方获得当前在线计算的轮次数t,该轮次数为正整数,然后利用系统公钥对其进行加密,作为前述加密正数R。如此,在每次多方共同在线计算时,各方得到相同的加密正数R。不同轮次的在线计算,加密正数R每次不同。
在另一种实施方式中,在每次计算处理时,各个数据方根据公共字符串CRS,生成本次处理使用的正数,然后用系统公钥PK进行加密,作为前述加密正数R。
在又一种实施方式中,各个数据方基于预先约定的加密集合L,生成前述加密正数R。其中,加密集合L可以有多种生成方式。
在一个实施例中,在初始化阶段,管理方随机生成一定数目η个正数,并利用系统公钥PK加密该第一数目η个正数,得到具有第一数目η个元素的加密数组,作为加密集合L。然后,管理方将该加密集合L分发给各个数据方。
为了具有更好的随机性,在另一实施例中,在初始化阶段,各个数据方,各自随机生成约定的第一数目η个正数,并利用系统公钥PK加密该第一数目η个正数,得到具有第一数目η个元素的加密数组。例如,数据方i随机选择η个正数ai,j,然后用系统公钥pk加密这η个正数,得到η个密文(cti,1,cti,2,…,cti,η)作为加密数组。然后,各数据方将其得到的加密数组发送给管理方。
于是,管理方将n个加密数组中对应位置的元素进行同态相加或相乘,将由此产生的数组作为加密集合L。例如,管理方可以计算
Figure BDA0002938217690000271
也就是将对应位置的元素进行同态相加,将得到的η个新密文作为加密集合L。然后,管理方将加密集合L返回给各数据方。于是,各个数据方具有了约定的加密集合L。
在各个数据方具有约定的加密集合L的基础上,在在线计算阶段,各个数据方可以通过多种方式,基于加密集合L生成前述加密正数R。
在一个实施例中,各个数据方可以在不同轮次的在线计算中,按照约定顺序,从加密集合L中选择其中的元素作为加密正数R。
在另一实施例中,在每轮次的在线计算中,各个数据方可以获取用于本次处理的随机字符串b;根据该随机字符串b,从加密集合L中选择一部分加密元素,然后对所选择的一部分加密元素进行组合,得到加密正数R。
更具体的,在一个例子中,各数据方i可以在本轮次计算处理中,生成本轮次的第一随机数vi,并将各自的第一随机数vi发送给管理方。例如,该第一随机数可以与本轮次对原始隐私数据加密的密文数据一起,发送给管理方。管理方至少基于来自n个数据方的n个第一随机数,形成随机序列。例如,管理方可以形成随机序列(v1,v2,…,vn)。或者,管理方也可以形成随机序列(v0,v1,v2,…,vn),其中v0是管理方自身生成的第一随机数。然后,管理方将该随机序列发送给各数据方。各数据方于是可以基于该随机序列,得到一个随机字符串b。例如,各数据方可以通过某种编码方式,将该随机序列中的元素依次进行编码,得到的字符串作为上述随机字符串b。或者,各数据方可以利用约定的哈希函数H处理该随机序列,得到随机字符串b,即:
b=H(v0,v1,v2,…,vn) (19)
然后,可以基于上述随机字符串b,从具有η个加密元素的加密集合L中选择加密元素。
在一个具体例子中,上述随机字符串b为η位的比特串。则可以根据随机字符串b中第j位是0还是1,确定是否选择加密集合L中第j个加密元素。
在另一具体例子中,所述随机字符串b是η/2位比特串,η为偶数。则可以将加密集合L中的η个加密元素排成两个序列,每个序列具有η/2个加密元素。然后,根据该随机字符串b中第j位是0或是1,从两个序列之一中选择第j个加密元素,从而选择出η/2个加密元素。
例如,可以将加密集合L中的元素排成两行,形成一个加密矩阵:
Figure BDA0002938217690000281
此时,随机字符串b的每个比特对应于上述矩阵的一列。当随机字符串b中第j位比特取值为1时,选择第j列第二行的元素;否则选择第一行的元素。如此,可以从两行中分别选择出η/2个加密元素。
最后,将所选择的加密元素进行组合,例如,进行同态求和,得到加密正数R。
延续上述加密矩阵的示例,最后得到的加密正数
Figure BDA0002938217690000291
bi是随机字符串b第i位的比特值。在预先约定形成加密集合L的情况下,从两个序列(例如,加密矩阵的两行)中分别选择加密元素的方式,可以极大地扩展选择空间,例如可以有2η/2种选择方式。在待处理的业务样本数量较大,例如几千个,从而需要进行几千次在线计算的情况下,这样的方式有利于每次在线计算生成不同的加密正数R。
在步骤404生成加密正数R的基础上,在步骤405,各个数据方利用本方私钥,解密步骤402中同态运算的密文运算结果ct与所述加密正数R的同态乘积密文,得到部分明文结果。
具体的,各个数据方计算密文运算结果ct与加密正数R的同态乘积密文C=ct×R,其中C=(C0,C1),将该密文作为解密目标。具体解密过程,与针对密文运算结果ct的解密相似:数据方i基于其私钥ski与解密目标C的第二部分C1的乘积,得到部分明文结果,即计算hi=C1*ski+e′i,这里
Figure BDA0002938217690000292
然后,在步骤406,各个数据方将其部分明文结果发送给管理方。
此外,在步骤407,与图3的步骤306类似的,管理方也利用其本方私钥sk0,对解密目标C进行部分解密,得到剩余明文结果。具体的,管理方可以如下得到剩余明文结果h0=C0+C1*sk0
于是,在步骤408,与图3的步骤307类似的,管理方将剩余明文结果h0与来自n个数据方的n份部分明文结果hi进行聚合运算,得到明文运算结果,即:
Figure BDA0002938217690000293
根据公式(2),有:
Figure BDA0002938217690000294
于是当e和
Figure BDA0002938217690000295
不大时,以tp为输入,可以恢复出明文
Figure BDA0002938217690000296
这里
Figure BDA0002938217690000297
表示各方隐私数据运算的真实明文结果x与密文R蕴含的正数明文r相乘。
由于密文R对应于正数明文,因此,如此恢复出的明文
Figure BDA0002938217690000298
相对于真实明文结果x,不会改变其正负号。并且,通过密文R生成过程的设置,可以保证密文R对应的正数是大于1的较大的正数,因此,在真实明文结果x上乘以正数明文r,相当于对真实明文结果x进行了倍数放大。如此,即使(21)得到的结果有小量误差,在对真实明文结果x进行了放大的情况下,该小量误差完全不会影响运算结果的正负号。
如此,在步骤409,管理方可以基于明文运算结果
Figure BDA0002938217690000301
的正负号,进行二分类决策。
由此可见,通过图4的实施例,进一步确保了根据明文运算结果的正负号进行分类决策的场景中,业务决策的准确性。
回顾以上过程,根据本说明书的实施例,各数据方统一采用系统公钥进行加密,在解密阶段,各方利用其私钥对密文运算结果进行部分解密,最后由管理方融合各个部分解密结果,得到最终明文运算结果。同时,该方法也为乘法同态运算的简化,提供了可能。根据一个实施例,在初始化阶段,各参与方还共同生成系统辅助公钥。在需要进行乘法同态运算时,利用系统辅助公钥进行乘法同态操作,该操作大大简化密钥转换函数运算过程的复杂度,减小通信量。在根据明文运算结果的正负号进行二分类决策的场景中,各个数据方还生成加密正数,后续各方共同对同态运算结果密文和加密正数的乘积结果进行解密。如此得到的结果,对原始明文运算结果进行了不改变符号的放大,进一步确保了二分类决策的准确性。
根据另一方面的实施例,还提供一种多方联合对隐私数据进行处理的系统,所述系统包括,管理方和n个数据方,其中:
所述n个数据方中的各个数据方配置为,分别利用系统公钥,采用约定的同态加密算法,对其持有的原始隐私数据进行加密,得到对应的密文数据;其中,所述管理方和n个数据方,各自生成有包含本方私钥和基础公钥的本方密钥对,所述系统公钥通过对n+1个基础公钥聚合而得到;
所述系统中的至少一方配置为,根据预定规则,对所述n个数据方分别得到的n份密文数据进行同态运算,得到密文运算结果,并将其广播至n个数据方;
所述各个数据方还配置为,分别利用其本方私钥,对所述密文运算结果进行第一部分解密,得到部分明文结果;
所述管理方配置为,利用其本方私钥,对所述密文运算结果进行第二部分解密,得到剩余明文结果,并将剩余明文结果与来自n个数据方的n份部分明文结果进行聚合运算,得到明文运算结果。
上述管理方和各个数据方的具体配置和执行方式,可以参见结合图1至图4描述的实施例,不复赘述。
根据又一方面实施例,还提供一种用于多方联合对隐私数据进行处理的装置,所述多方包括,管理方和n个数据方,所述装置部署在所述管理方中,该管理方可以体现为任何具有计算、处理能力的设备或平台。图5示出根据一个实施例的部署在管理方的处理装置的示意图。如图5所示,该处理装置500包括:
第一接收单元52,配置为从所述n个数据方分别接收n份密文数据,任意一份密文数据是对应数据方利用系统公钥,采用约定的同态加密算法,对其持有的原始隐私数据进行加密得到的;其中,所述多方中的各方,各自生成有包含本方私钥和基础公钥的本方密钥对,所述系统公钥通过对所述多方分别对应的n+1个基础公钥聚合而得到;
同态运算单元53,配置为根据预定规则,对所述n份密文数据进行同态运算,得到密文运算结果,并将其广播至n个数据方;
第二接收单元54,配置为从所述n个数据方接收n份部分明文结果,任意一份部分明文结果是对应数据方利用其本方私钥,对所述密文运算结果进行第一部分解密得到的;
解密聚合单元55,配置为利用管理方本方私钥,对所述密文运算结果进行第二部分解密,得到剩余明文结果,并将剩余明文结果与所述n份部分明文结果进行聚合运算,得到明文运算结果。
根据一个实施例,上述装置500还包括初始化单元51,配置为:
从所述n个数据方中的各个数据方分别接收其本方密钥对中的基础公钥;
生成管理方自身的本方密钥对,将管理方自身的基础公钥,与来自所述n个数据方的n个基础公钥进行聚合,得到所述系统公钥;
将所述系统公钥分别发送给所述n个数据方。
在一个实施例中,同态运算单元53配置为,利用系统辅助公钥进行乘法同态运算,所述系统辅助公钥,基于所述多方中各方的部分辅助公钥聚合而得到。
进一步的,在一个实施例中,同态运算单元53配置为,对第一密文数据和第二密文数据进行同态乘法操作,得到乘结果密文,其中,所述第一密文数据和第二密文数据的每一个均包括第一部分和第二部分,所述同态乘法操作包括:
将第一密文数据的第一部分和第二部分,分别与第二密文数据的第一部分和第二部分相乘,得到第一部分相乘的第一乘积项,第二部分相乘的第二乘积项,以及交叉乘积项;
将第二乘积项和所述系统辅助公钥作为输入,调用密钥转换函数,得到第一调整项和第二调整项;
将第一调整项和第一乘积项的加和作为乘结果密文的第一部分;将所述第二调整项和所述交叉乘积项的加和作为所述乘结果密文的第二部分。
在第一示例中,所述系统公钥包括第一公钥值和第二公钥值,所述系统辅助公钥包括第一公钥向量和第二公钥向量;所述初始化单元51还配置为:
管理方根据所述第二公钥值、管理方本方私钥、系统参数以及管理方产生的随机向量,生成第一辅助向量;根据所述随机向量和所述第一公钥值,生成第二辅助向量;所述第一辅助向量和第二辅助向量构成管理方的部分辅助公钥;
从所述n个数据方接收n个部分辅助公钥,任意数据方的部分辅助公钥包括该数据方生成的第一辅助向量和第二辅助向量;
将n+1个部分辅助公钥中的第一辅助向量求和,得到所述第一公钥向量;
将n+1个部分辅助公钥中的第二辅助向量求和,得到所述第二公钥向量。
根据第一示例,所述同态运算单元53进一步配置为:
基于所述系统参数将所述第二乘积项表示为目标向量;
基于所述目标向量与所述第二向量的内积,得到所述第一调整项;
基于所述目标向量与所述第一向量的内积,得到所述第二调整项。
在第二示例中,初始化单元51配置为:
管理方根据本方私钥、第一系统向量、第二系统向量和本方产生的随机向量,分别生成第一辅助向量、第二辅助向量和第三辅助向量,所述第一辅助向量、第一系统向量、第二辅助向量和第三辅助向量构成管理方的部分辅助公钥;
从所述n个数据方接收n个部分辅助公钥,任意数据方的部分辅助公钥包括上述第一系统向量,以及该数据方生成的第一辅助向量、第二辅助向量和第三辅助向量;
管理方对n+1个部分辅助公钥中的n+1个第一辅助向量,n+1个第二辅助向量和n+1个第三辅助向量分别进行求和,得到第一公钥向量,第二公钥向量和第三公钥向量;所述第一公钥向量,第一系统向量,第二公钥向量和第三公钥向量,构成所述系统辅助公钥。
根据第二示例,所述同态运算单元53进一步配置为:
利用系统映射函数,将所述第二乘积项映射为目标向量;
计算所述目标向量和所述第三公钥向量的内积,得到中间值,并利用所述系统映射函数,将所述中间值映射为中间向量;
基于所述中间向量和所述第一公钥向量的内积,得到所述第一调整项;
基于所述中间向量和所述第一系统向量的内积,与所述目标向量和第二公钥向量的内积之和,得到所述第二调整项
根据另一方面实施例,还提供一种用于多方联合对隐私数据进行处理的装置,所述多方包括,管理方和n个数据方,所述装置部署在所述n个数据方的任一数据方中,该数据方可以体现为任何具有计算、处理能力的设备或平台。图6示出根据一个实施例的部署在数据方的处理装置的示意图。如图6所示,该处理装置600包括:
加密单元61,配置为利用系统公钥,采用约定的同态加密算法,对本数据方持有的原始隐私数据进行加密,得到对应的密文数据,并将其发送给所述多方中的至少一方;其中,所述多方中的各方,各自生成有包含本方私钥和基础公钥的本方密钥对,所述系统公钥通过对所述多方分别对应的n+1个基础公钥聚合而得到;
接收单元62,配置为从所述至少一方接收密文运算结果,所述密文运算结果是根据预定规则,对所述n个数据方分别得到的n份密文数据进行同态运算而得到;
解密单元63,配置为利用本方私钥,对所述密文运算结果进行第一部分解密,得到部分明文结果;
发送单元64,配置为将所述部分明文结果发送给所述管理方,使得所述管理方利用其本方私钥,对所述密文运算结果进行第二部分解密,得到剩余明文结果,并将剩余明文结果与来自n个数据方的n份部分明文结果进行聚合运算,得到明文运算结果。
根据一个实施例,所述解密单元63配置为:
按照约定方式,生成本次处理使用的加密正数R,该加密正数R是采用所述系统公钥对正数进行加密得到的密文;
利用本方私钥,解密所述密文运算结果与所述加密正数R的乘积,得到所述部分明文结果。
进一步的,解密单元63可以具体配置为,按照约定方式,生成本次处理使用的加密正数R,具体包括:
获取用于本次处理的随机字符串;
根据所述随机字符串,从预先约定的加密集合中选择一部分加密元素;
对所选择的一部分加密元素进行组合,得到所述加密正数R。
更进一步的,在一个示例中,所述加密集合中包含第一数目η个加密元素,所述随机字符串是η/2位比特串,η为偶数;则解密单元63可以配置为:
将所述η个加密元素排成两个序列,每个序列具有η/2个加密元素;
根据所述随机字符串中第j位是0或是1,从所述两个序列之一中选择第j个加密元素,从而选择出η/2个加密元素作为所选择的一部分加密元素。
通过以上的装置,可以在多方联合数据处理过程中,保护各方数据隐私,且提高联合计算的效率。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图1至图4所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图1至图4所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (25)

1.一种多方联合对隐私数据进行处理的方法,所述多方包括,管理方和n个数据方,所述方法包括:
所述n个数据方中的各个数据方,分别利用系统公钥,采用约定的同态加密算法,对其持有的原始隐私数据进行加密,得到对应的密文数据;其中,所述多方中的各方,各自生成有包含本方私钥和基础公钥的本方密钥对,所述系统公钥通过对所述多方分别对应的n+1个基础公钥聚合而得到;
所述多方中的至少一方,根据预定规则,对所述n个数据方分别得到的n份密文数据进行同态运算,得到密文运算结果,并将其广播至n个数据方;
所述各个数据方,分别利用其本方私钥,对所述密文运算结果进行第一部分解密,得到部分明文结果;
所述管理方利用其本方私钥,对所述密文运算结果进行第二部分解密,得到剩余明文结果,并将剩余明文结果与来自n个数据方的n份部分明文结果进行聚合运算,得到明文运算结果。
2.一种多方联合对隐私数据进行处理的方法,所述多方包括,管理方和n个数据方,所述方法通过所述管理方执行,包括:
从所述n个数据方分别接收n份密文数据,任意一份密文数据是对应数据方利用系统公钥,采用约定的同态加密算法,对其持有的原始隐私数据进行加密得到的;其中,所述多方中的各方,各自生成有包含本方私钥和基础公钥的本方密钥对,所述系统公钥通过对所述多方分别对应的n+1个基础公钥聚合而得到;
根据预定规则,对所述n份密文数据进行同态运算,得到密文运算结果,并将其广播至n个数据方;
从所述n个数据方接收n份部分明文结果,任意一份部分明文结果是对应数据方利用其本方私钥,对所述密文运算结果进行第一部分解密得到的;
利用管理方本方私钥,对所述密文运算结果进行第二部分解密,得到剩余明文结果,并将剩余明文结果与所述n份部分明文结果进行聚合运算,得到明文运算结果。
3.根据权利要求2所述的方法,还包括,在初始化阶段中:
从所述n个数据方中的各个数据方分别接收其本方密钥对中的基础公钥;
生成管理方自身的本方密钥对,将管理方自身的基础公钥,与来自所述n个数据方的n个基础公钥进行聚合,得到所述系统公钥;
将所述系统公钥分别发送给所述n个数据方。
4.根据权利要求3所述的方法,其中,所述基础公钥包括第一基础值和第二基础值,所述第二基础值为系统参数,所述第一基础值根据对应的本方私钥和所述第二基础值确定;所述系统公钥包括第一公钥值和第二公钥值;
所述将管理方自身的基础公钥,与来自所述n个数据方的n个基础公钥进行聚合,得到所述系统公钥,包括:
将所述管理方和n个数据方分别对应的n+1个基础公钥各自的第一基础值进行求和,将求和结果作为所述第一公钥值,将所述第二基础值作为所述第二公钥值,从而得到所述系统公钥。
5.根据权利要求2所述的方法,其中,所述同态运算包括,对第一密文数据和第二密文数据进行同态加和操作,得到和结果密文;其中,所述第一密文数据和第二密文数据的每一个均包括第一部分和第二部分,所述同态加和操作包括:
对第一密文数据和第二密文数据各自的第一部分求和,作为所述和结果密文的第一部分;
对第一密文数据和第二密文数据各自的第二部分求和,作为所述和结果密文的第二部分。
6.根据权利要求2所述的方法,其中,所述同态运算包括,利用系统辅助公钥进行乘法同态运算,所述系统辅助公钥,基于所述多方中各方的部分辅助公钥聚合而得到。
7.根据权利要求6所述的方法,其中,所述利用系统辅助公钥进行乘法同态运算包括,对第一密文数据和第二密文数据进行同态乘法操作,得到乘结果密文,其中,所述第一密文数据和第二密文数据的每一个均包括第一部分和第二部分,所述同态乘法操作包括:
将第一密文数据的第一部分和第二部分,分别与第二密文数据的第一部分和第二部分相乘,得到第一部分相乘的第一乘积项,第二部分相乘的第二乘积项,以及交叉乘积项;
将第二乘积项和所述系统辅助公钥作为输入,调用密钥转换函数,得到第一调整项和第二调整项;
将第一调整项和第一乘积项的加和作为乘结果密文的第一部分;将所述第二调整项和所述交叉乘积项的加和作为所述乘结果密文的第二部分。
8.根据权利要求7所述的方法,其中,所述系统辅助公钥通过以下方式在初始化阶段得到:
所述多方中的各方,各自生成其本方的部分辅助公钥;
所述管理方将n+1个部分辅助公钥进行聚合,得到所述系统辅助公钥。
9.根据权利要求8所述的方法,其中,所述系统公钥包括第一公钥值和第二公钥值,所述系统辅助公钥包括第一公钥向量和第二公钥向量;
所述多方中的各方,各自生成其本方的部分辅助公钥,包括:
管理方根据所述第二公钥值、管理方本方私钥、系统参数以及管理方产生的随机向量,生成第一辅助向量;根据所述随机向量和所述第一公钥值,生成第二辅助向量;所述第一辅助向量和第二辅助向量构成管理方的部分辅助公钥;
从所述n个数据方接收n个部分辅助公钥,任意数据方的部分辅助公钥包括该数据方生成的第一辅助向量和第二辅助向量;
所述管理方将n+1个部分辅助公钥进行聚合,得到所述系统辅助公钥,包括:
将n+1个部分辅助公钥中的第一辅助向量求和,得到所述第一公钥向量;
将n+1个部分辅助公钥中的第二辅助向量求和,得到所述第二公钥向量。
10.根据权利要求9所述的方法,其中,将第二乘积项和系统辅助公钥作为输入,调用密钥转换函数,得到第一调整项和第二调整项,包括:
基于所述系统参数将所述第二乘积项表示为目标向量;
基于所述目标向量与所述第二向量的内积,得到所述第一调整项;
基于所述目标向量与所述第一向量的内积,得到所述第二调整项。
11.根据权利要求8所述的方法,所述多方中的各方,各自生成其本方的部分辅助公钥,包括:
管理方根据本方私钥、第一系统向量、第二系统向量和本方产生的随机向量,分别生成第一辅助向量、第二辅助向量和第三辅助向量,所述第一辅助向量、第一系统向量、第二辅助向量和第三辅助向量构成管理方的部分辅助公钥;
从所述n个数据方接收n个部分辅助公钥,任意数据方的部分辅助公钥包括上述第一系统向量,以及该数据方生成的第一辅助向量、第二辅助向量和第三辅助向量;
所述管理方将n+1个部分辅助公钥进行聚合,得到所述系统辅助公钥,包括:管理方对n+1个部分辅助公钥中的n+1个第一辅助向量,n+1个第二辅助向量和n+1个第三辅助向量分别进行求和,得到第一公钥向量,第二公钥向量和第三公钥向量;所述第一公钥向量,第一系统向量,第二公钥向量和第三公钥向量,构成所述系统辅助公钥。
12.根据权利要求11所述的方法,其中,将第二乘积项和系统辅助公钥作为输入,调用密钥转换函数,得到第一调整项和第二调整项,包括:
利用系统映射函数,将所述第二乘积项映射为目标向量;
计算所述目标向量和所述第三公钥向量的内积,得到中间值,并利用所述系统映射函数,将所述中间值映射为中间向量;
基于所述中间向量和所述第一公钥向量的内积,得到所述第一调整项;
基于所述中间向量和所述第一系统向量的内积,与所述目标向量和第二公钥向量的内积之和,得到所述第二调整项。
13.根据权利要求2所述的方法,其中,所述原始隐私数据,是业务样本的特征值;所述预定规则是针对业务样本训练的业务预测模型中的预测算法,所述明文运算结果对应于针对业务样本的预测值。
14.根据权利要求2所述的方法,其中,所述原始隐私数据,是业务样本的特征值;所述预定规则是针对业务样本训练的二分类模型中的预测算法;所述任意一份部分明文结果,是对应数据方利用其本方私钥,解密所述密文运算结果与各方约定的加密正数R的同态乘积密文得到的;
所述方法还包括:
根据所述明文运算结果的正负号,对所述业务样本进行二分类决策。
15.一种多方联合对隐私数据进行处理的方法,所述多方包括,管理方和n个数据方,所述方法通过所述n个数据方中任意一个数据方执行,包括:
利用系统公钥,采用约定的同态加密算法,对本数据方持有的原始隐私数据进行加密,得到对应的密文数据,并将其发送给所述多方中的至少一方;其中,所述多方中的各方,各自生成有包含本方私钥和基础公钥的本方密钥对,所述系统公钥通过对所述多方分别对应的n+1个基础公钥聚合而得到;
从所述至少一方接收密文运算结果,所述密文运算结果是根据预定规则,对所述n个数据方分别得到的n份密文数据进行同态运算而得到;
利用本方私钥,对所述密文运算结果进行第一部分解密,得到部分明文结果;
将所述部分明文结果发送给所述管理方,使得所述管理方利用其本方私钥,对所述密文运算结果进行第二部分解密,得到剩余明文结果,并将剩余明文结果与来自n个数据方的n份部分明文结果进行聚合运算,得到明文运算结果。
16.根据权利要求15所述的方法,其中,对所述密文运算结果进行第一部分解密,得到部分明文结果,包括:
按照约定方式,生成本次处理使用的加密正数R,该加密正数R是采用所述系统公钥对正数进行加密得到的密文;
利用本方私钥,解密所述密文运算结果与所述加密正数R的乘积,得到所述部分明文结果。
17.根据权利要求16所述的方法,其中,按照约定方式,生成本次处理使用的加密正数R,包括:
基于预先约定的加密集合,生成所述加密正数R。
18.根据权利要求17所述的方法,还包括在初始化阶段中:
随机生成约定的第一数目η个正数,并利用所述系统公钥加密该第一数目η个正数,得到具有第一数目η个元素的加密数组;
将所述加密数组发送给所述管理方;
从管理方接收所述加密集合,该加密集合是所述管理方将从n个数据方得到的n个加密数组中对应位置的元素进行同态相加或相乘而产生。
19.根据权利要求17所述的方法,其中,基于预先约定的加密集合,生成所述加密正数R,包括:
获取用于本次处理的随机字符串;
根据所述随机字符串,从所述加密集合中选择一部分加密元素;
对所选择的一部分加密元素进行组合,得到所述加密正数R。
20.根据权利要求19所述的方法,其中,获取用于本次处理的随机字符串,包括:
生成本次处理使用的第一随机数,并将其发送给所述管理方;
从所述管理方接收随机序列,所述随机序列是所述管理方至少基于来自n个数据方的n个第一随机数而形成的序列;
利用约定的哈希函数处理所述随机序列,得到所述随机字符串。
21.根据权利要求19所述的方法,其中,所述加密集合中包含第一数目η个加密元素,所述随机字符串是η/2位比特串,η为偶数;
根据所述随机字符串,从所述加密集合中选择一部分加密元素,包括:
将所述η个加密元素排成两个序列,每个序列具有η/2个加密元素;
根据所述随机字符串中第j位是0或是1,从所述两个序列之一中选择第j个加密元素,从而选择出η/2个加密元素作为所选择的一部分加密元素。
22.一种多方联合对隐私数据进行处理的系统,所述系统包括,管理方和n个数据方,其中:
所述n个数据方中的各个数据方配置为,分别利用系统公钥,采用约定的同态加密算法,对其持有的原始隐私数据进行加密,得到对应的密文数据;其中,所述管理方和n个数据方,各自生成有包含本方私钥和基础公钥的本方密钥对,所述系统公钥通过对n+1个基础公钥聚合而得到;
所述系统中的至少一方配置为,根据预定规则,对所述n个数据方分别得到的n份密文数据进行同态运算,得到密文运算结果,并将其广播至n个数据方;
所述各个数据方还配置为,分别利用其本方私钥,对所述密文运算结果进行第一部分解密,得到部分明文结果;
所述管理方配置为,利用其本方私钥,对所述密文运算结果进行第二部分解密,得到剩余明文结果,并将剩余明文结果与来自n个数据方的n份部分明文结果进行聚合运算,得到明文运算结果。
23.一种用于多方联合对隐私数据进行处理的装置,所述多方包括,管理方和n个数据方,所述装置部署在所述管理方中,包括:
第一接收单元,配置为从所述n个数据方分别接收n份密文数据,任意一份密文数据是对应数据方利用系统公钥,采用约定的同态加密算法,对其持有的原始隐私数据进行加密得到的;其中,所述多方中的各方,各自生成有包含本方私钥和基础公钥的本方密钥对,所述系统公钥通过对所述多方分别对应的n+1个基础公钥聚合而得到;
同态运算单元,配置为根据预定规则,对所述n份密文数据进行同态运算,得到密文运算结果,并将其广播至n个数据方;
第二接收单元,配置为从所述n个数据方接收n份部分明文结果,任意一份部分明文结果是对应数据方利用其本方私钥,对所述密文运算结果进行第一部分解密得到的;
解密聚合单元,配置为利用管理方本方私钥,对所述密文运算结果进行第二部分解密,得到剩余明文结果,并将剩余明文结果与所述n份部分明文结果进行聚合运算,得到明文运算结果。
24.一种用于多方联合对隐私数据进行处理的装置,所述多方包括,管理方和n个数据方,所述装置部署在所述n个数据方中任意一个数据方中,包括:
加密单元,配置为利用系统公钥,采用约定的同态加密算法,对本数据方持有的原始隐私数据进行加密,得到对应的密文数据,并将其发送给所述多方中的至少一方;其中,所述多方中的各方,各自生成有包含本方私钥和基础公钥的本方密钥对,所述系统公钥通过对所述多方分别对应的n+1个基础公钥聚合而得到;
接收单元,配置为从所述至少一方接收密文运算结果,所述密文运算结果是根据预定规则,对所述n个数据方分别得到的n份密文数据进行同态运算而得到;
解密单元,配置为利用本方私钥,对所述密文运算结果进行第一部分解密,得到部分明文结果;
发送单元,配置为将所述部分明文结果发送给所述管理方,使得所述管理方利用其本方私钥,对所述密文运算结果进行第二部分解密,得到剩余明文结果,并将剩余明文结果与来自n个数据方的n份部分明文结果进行聚合运算,得到明文运算结果。
25.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-21中任一项所述的方法。
CN202110168741.0A 2021-02-07 2021-02-07 多方联合进行隐私数据处理的方法及装置 Active CN112989368B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110168741.0A CN112989368B (zh) 2021-02-07 2021-02-07 多方联合进行隐私数据处理的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110168741.0A CN112989368B (zh) 2021-02-07 2021-02-07 多方联合进行隐私数据处理的方法及装置

Publications (2)

Publication Number Publication Date
CN112989368A true CN112989368A (zh) 2021-06-18
CN112989368B CN112989368B (zh) 2022-05-17

Family

ID=76348954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110168741.0A Active CN112989368B (zh) 2021-02-07 2021-02-07 多方联合进行隐私数据处理的方法及装置

Country Status (1)

Country Link
CN (1) CN112989368B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113420307A (zh) * 2021-06-28 2021-09-21 未鲲(上海)科技服务有限公司 密文数据的评估方法、装置、计算机设备和存储介质
CN113434886A (zh) * 2021-07-01 2021-09-24 支付宝(杭州)信息技术有限公司 联合生成用于安全计算的数据元组的方法及装置
CN113987559A (zh) * 2021-12-24 2022-01-28 支付宝(杭州)信息技术有限公司 保护数据隐私的双方联合进行数据处理的方法及装置
CN114070558A (zh) * 2021-11-18 2022-02-18 北京字节跳动网络技术有限公司 一种数据传输方法及装置
CN114422142A (zh) * 2022-01-11 2022-04-29 浪潮云信息技术股份公司 一种基于椭圆曲线的ElGamal多重解密方法及系统
CN114465708A (zh) * 2022-03-17 2022-05-10 北京绪方科技有限公司 隐私数据处理方法及装置、系统、电子设备、存储介质
CN114826546A (zh) * 2022-04-02 2022-07-29 支付宝(杭州)信息技术有限公司 一种交易数据处理方法及装置
CN114817970A (zh) * 2022-06-30 2022-07-29 深圳市洞见智慧科技有限公司 基于数据来源保护的数据分析方法、系统及相关设备
CN115276947A (zh) * 2022-07-13 2022-11-01 北京绪方科技有限公司 隐私数据处理方法、装置、系统及存储介质
CN115941230A (zh) * 2022-01-11 2023-04-07 浪潮云信息技术股份公司 一种基于区块链保护隐私的监管方法及系统
CN116108494A (zh) * 2023-04-12 2023-05-12 蓝象智联(杭州)科技有限公司 一种保护隐私的多方联合数据统计方法
CN116719502A (zh) * 2023-08-11 2023-09-08 蓝象智联(杭州)科技有限公司 一种基于隐私保护的数据相减运算方法
CN117235801A (zh) * 2023-11-10 2023-12-15 北京天润基业科技发展股份有限公司 隐私数据的统计方法、电子设备及存储介质
WO2024078428A1 (zh) * 2022-10-11 2024-04-18 杭州阿里云飞天信息技术有限公司 加速设备、计算系统及加速方法

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160125141A1 (en) * 2014-11-03 2016-05-05 Ecole Polytechnique Federale De Lausanne (Epfl) Method for privacy-preserving medical risk test
CN108712260A (zh) * 2018-05-09 2018-10-26 曲阜师范大学 云环境下保护隐私的多方深度学习计算代理方法
CN109101822A (zh) * 2018-07-10 2018-12-28 西安交通大学 一种解决多方计算中数据隐私泄露问题的方法
US10198399B1 (en) * 2018-03-06 2019-02-05 KenSci Inc. Cryptographically secure machine learning
CN110175461A (zh) * 2019-05-08 2019-08-27 矩阵元技术(深圳)有限公司 安全多方计算的实现方法、装置、计算机设备和存储介质
EP3570575A1 (en) * 2018-05-16 2019-11-20 INESC TEC - Instituto de Engenharia de Sistemas e Computadores, Tecnologia e Ciência Internet of things security with multi-party computation (mpc)
CN110519038A (zh) * 2019-07-29 2019-11-29 北京多思安全芯片科技有限公司 一种数据的同态处理装置和系统
CN111160573A (zh) * 2020-04-01 2020-05-15 支付宝(杭州)信息技术有限公司 保护数据隐私的双方联合训练业务预测模型的方法和装置
US20200177366A1 (en) * 2019-06-18 2020-06-04 Alibaba Group Holding Limited Homomorphic data encryption method and apparatus for implementing privacy protection
CN111400766A (zh) * 2020-03-25 2020-07-10 支付宝(杭州)信息技术有限公司 针对隐私数据进行多方联合降维处理的方法及装置
CN111600707A (zh) * 2020-05-15 2020-08-28 华南师范大学 一种在隐私保护下的去中心化联邦机器学习方法
CN111859360A (zh) * 2020-07-10 2020-10-30 深圳市洞见智慧科技有限公司 一种安全的多设备联合数据计算系统、方法及装置

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160125141A1 (en) * 2014-11-03 2016-05-05 Ecole Polytechnique Federale De Lausanne (Epfl) Method for privacy-preserving medical risk test
US10198399B1 (en) * 2018-03-06 2019-02-05 KenSci Inc. Cryptographically secure machine learning
CN108712260A (zh) * 2018-05-09 2018-10-26 曲阜师范大学 云环境下保护隐私的多方深度学习计算代理方法
EP3570575A1 (en) * 2018-05-16 2019-11-20 INESC TEC - Instituto de Engenharia de Sistemas e Computadores, Tecnologia e Ciência Internet of things security with multi-party computation (mpc)
CN109101822A (zh) * 2018-07-10 2018-12-28 西安交通大学 一种解决多方计算中数据隐私泄露问题的方法
CN110175461A (zh) * 2019-05-08 2019-08-27 矩阵元技术(深圳)有限公司 安全多方计算的实现方法、装置、计算机设备和存储介质
US20200177366A1 (en) * 2019-06-18 2020-06-04 Alibaba Group Holding Limited Homomorphic data encryption method and apparatus for implementing privacy protection
CN110519038A (zh) * 2019-07-29 2019-11-29 北京多思安全芯片科技有限公司 一种数据的同态处理装置和系统
CN111400766A (zh) * 2020-03-25 2020-07-10 支付宝(杭州)信息技术有限公司 针对隐私数据进行多方联合降维处理的方法及装置
CN111160573A (zh) * 2020-04-01 2020-05-15 支付宝(杭州)信息技术有限公司 保护数据隐私的双方联合训练业务预测模型的方法和装置
CN111600707A (zh) * 2020-05-15 2020-08-28 华南师范大学 一种在隐私保护下的去中心化联邦机器学习方法
CN111859360A (zh) * 2020-07-10 2020-10-30 深圳市洞见智慧科技有限公司 一种安全的多设备联合数据计算系统、方法及装置

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113420307A (zh) * 2021-06-28 2021-09-21 未鲲(上海)科技服务有限公司 密文数据的评估方法、装置、计算机设备和存储介质
CN113434886A (zh) * 2021-07-01 2021-09-24 支付宝(杭州)信息技术有限公司 联合生成用于安全计算的数据元组的方法及装置
CN113434886B (zh) * 2021-07-01 2022-05-17 支付宝(杭州)信息技术有限公司 联合生成用于安全计算的数据元组的方法及装置
CN114070558A (zh) * 2021-11-18 2022-02-18 北京字节跳动网络技术有限公司 一种数据传输方法及装置
CN114070558B (zh) * 2021-11-18 2023-11-24 抖音视界有限公司 一种数据传输方法及装置
CN113987559A (zh) * 2021-12-24 2022-01-28 支付宝(杭州)信息技术有限公司 保护数据隐私的双方联合进行数据处理的方法及装置
WO2023116144A1 (zh) * 2021-12-24 2023-06-29 支付宝(杭州)信息技术有限公司 保护数据隐私的双方联合进行数据处理的方法及装置
CN115941230A (zh) * 2022-01-11 2023-04-07 浪潮云信息技术股份公司 一种基于区块链保护隐私的监管方法及系统
CN114422142A (zh) * 2022-01-11 2022-04-29 浪潮云信息技术股份公司 一种基于椭圆曲线的ElGamal多重解密方法及系统
CN114465708A (zh) * 2022-03-17 2022-05-10 北京绪方科技有限公司 隐私数据处理方法及装置、系统、电子设备、存储介质
CN114826546A (zh) * 2022-04-02 2022-07-29 支付宝(杭州)信息技术有限公司 一种交易数据处理方法及装置
CN114817970B (zh) * 2022-06-30 2022-11-29 深圳市洞见智慧科技有限公司 基于数据来源保护的数据分析方法、系统及相关设备
CN114817970A (zh) * 2022-06-30 2022-07-29 深圳市洞见智慧科技有限公司 基于数据来源保护的数据分析方法、系统及相关设备
CN115276947A (zh) * 2022-07-13 2022-11-01 北京绪方科技有限公司 隐私数据处理方法、装置、系统及存储介质
CN115276947B (zh) * 2022-07-13 2023-08-22 北京绪方科技有限公司 隐私数据处理方法、装置、系统及存储介质
WO2024078428A1 (zh) * 2022-10-11 2024-04-18 杭州阿里云飞天信息技术有限公司 加速设备、计算系统及加速方法
CN116108494A (zh) * 2023-04-12 2023-05-12 蓝象智联(杭州)科技有限公司 一种保护隐私的多方联合数据统计方法
CN116719502A (zh) * 2023-08-11 2023-09-08 蓝象智联(杭州)科技有限公司 一种基于隐私保护的数据相减运算方法
CN116719502B (zh) * 2023-08-11 2023-10-20 蓝象智联(杭州)科技有限公司 一种基于隐私保护的数据相减运算方法
CN117235801A (zh) * 2023-11-10 2023-12-15 北京天润基业科技发展股份有限公司 隐私数据的统计方法、电子设备及存储介质
CN117235801B (zh) * 2023-11-10 2024-02-09 北京天润基业科技发展股份有限公司 隐私数据的统计方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN112989368B (zh) 2022-05-17

Similar Documents

Publication Publication Date Title
CN112989368B (zh) 多方联合进行隐私数据处理的方法及装置
WO2021197037A1 (zh) 双方联合进行数据处理的方法及装置
CN111160573B (zh) 保护数据隐私的双方联合训练业务预测模型的方法和装置
US11301571B2 (en) Neural-network training using secure data processing
CN111177791B (zh) 保护数据隐私的双方联合训练业务预测模型的方法和装置
CN110991655B (zh) 多方联合进行模型数据处理的方法及装置
CN111241570B (zh) 保护数据隐私的双方联合训练业务预测模型的方法和装置
CN110912713B (zh) 多方联合进行模型数据处理的方法及装置
González-Serrano et al. Training support vector machines with privacy-protected data
CN111177768A (zh) 保护数据隐私的双方联合训练业务预测模型的方法和装置
JP6970379B2 (ja) 事前計算装置、方法、およびプログラム、並びにベクトル乗算装置、および方法
CN114936650A (zh) 基于隐私保护的联合训练业务模型的方法及装置
Erkin et al. Privacy-preserving distributed clustering
Liu et al. Privacy preserving pca for multiparty modeling
EP3364397B1 (en) Secret authentication code adding device, secret authentification code adding method, and program
CN112995189B (zh) 一种基于隐私保护的公开验证矩阵乘法正确性的方法
CN114547684A (zh) 一种保护隐私数据的多方联合训练树模型的方法及装置
Xu et al. Privacy-preserving outsourcing decision tree evaluation from homomorphic encryption
US11552794B2 (en) Deterministic random blinding
Zhao et al. ePMLF: Efficient and Privacy‐Preserving Machine Learning Framework Based on Fog Computing
EP4283917A1 (en) Privacy-preserving clustering methods and apparatuses
CN114499844B (zh) 多方安全乘法的执行方法、装置、设备及介质
Shanu et al. Generating privacy-preserved recommendation using homomorphic authenticated encryption
Izadi Yekta An efficient and privacy-preserving federated learning scheme
CN117768180A (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