CN114640436A - 一种基于隐私保护的分组统计参数计算方法、装置 - Google Patents
一种基于隐私保护的分组统计参数计算方法、装置 Download PDFInfo
- Publication number
- CN114640436A CN114640436A CN202210126432.1A CN202210126432A CN114640436A CN 114640436 A CN114640436 A CN 114640436A CN 202210126432 A CN202210126432 A CN 202210126432A CN 114640436 A CN114640436 A CN 114640436A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- vector
- matrix
- participant
- random
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种基于隐私保护的分组统计参数计算方法、装置。所述方法包括:第一参与方将分组信息进行编码生成归一化分组编码矩阵;第一参与方与第二参与方秘密共享归一化分组编码矩阵和样本数值向量;第一参与方生成第一随机矩阵,并将其转化为第一密钥矩阵发送给第二参与方,第二参与方生成第一随机向量,并将其转化为第一密钥向量发送给第一参与方;第一参与方根据第一随机矩阵和第一密钥向量得到第一统计参数密文,第二参与方根据第一密钥矩阵和第一随机向量得到第二统计参数密文;第一参与方、第二参与方分别根据统计参数密文通过秘密共享算法恢复得到分组统计参数。采用本方法能够保证各方统计数据的安全性。
Description
技术领域
本申请涉及数据统计技术领域,特别是涉及一种基于隐私保护的分组统计参数计算方法、装置。
背景技术
随着统计学的发展,分组统计值计算技术广泛应用于指标系统构建、数据分析等场景中。分组统计值计算指:给定一份数据和对应的样本分组信息,计算每个分组中的样本的统计值,包括组内样本和、组内样本均值和组内样本方差等。在实际应用中,经常会出现这样的情况,即数据保存在机构A,而样本分组信息保存在机构B当中,而数据和分组信息都是各自机构的隐私信息,不希望其他机构获取到。例如,假设有A、B两个机构参与分组统计值计算;其中,机构A持有样本分组信息;机构B持有统计值计算需要的输入值,在数据传输和计算的过程中,为保证数据隐私安全,往往要求在机构B获得分组样本的统计值的同时,不泄漏机构A分组信息,也即,机构B不能反推机构A拥有的分组信息,机构A不能反推机构B单个样本的值。
通常,采用基于同态加密的方式进行隐私保护分组统计值的计算,该方法中数据持有机构生成同态加密公私钥对,并将数据进行同态加密后传输给分组信息持有机构,随后分组信息持有机构在同态密文上进行统计计算,得到同态密文统计结果后传输给数据持有机构进行解密,最终数据持有机构获得分组统计结果。
然而,这种基于同态加密的方式进行分组统计值计算的方法,分组信息持有机构需要从数据持有机构获得密钥后才能得到分组统计结果,数据持有机构必然获得分组统计结果,这种计算方式不能保证数据持有机构和分组信息持有机构在统计地位的公平性。
因此,亟需一种能够对各参与方拥有信息进行加密、且对最终的分组统计结果享有平等的计算操作使用权的分组统计参数计算方法。
发明内容
基于此,有必要针对上述技术问题,提供一种能够对各参与方拥有信息进行加密、且对最终的分组统计结果享有平等的计算操作使用权的分组统计参数计算方法、装置。
一种基于隐私保护的分组统计参数计算方法,所述方法包括:
将分组信息进行编码生成归一化分组编码矩阵;
第一参与方生成第一随机矩阵,并将其转化为与归一化分组编码矩阵相关的第一密钥矩阵,并将第一密钥矩阵发送给第二参与方;
第二参与方生成第一随机向量,并将其转化为与样本数值向量相关的第一密钥向量,并将第一密钥向量发送给第一参与方;
第一参与方根据第一随机矩阵和第一密钥向量得到第一统计参数密文;
第二参与方根据第一密钥矩阵和第一随机向量得到第二统计参数密文;
根据第一统计参数密文和第二统计参数密文通过秘密共享算法恢复得到分组统计参数。
在其中一个实施例中,所述将分组信息进行编码生成归一化分组编码矩阵,包括:
建立矩阵G(M,K),M为总体中个体的数目,K为分组的个数,矩阵G中元素值为0或者1;
根据矩阵G计算归一化分组编码矩阵H,归一化分组编码矩阵H中每个元素的值的计算公式为:
其中,m表示总体中个体的编号,m=1,2,……,M,单一个体可以落在多个分组中,k表示分组的序号,k=1,2,……,K,j表示序号为k的分组中个体的编号,j=1,2,……,M,G[j,k]表示在矩阵G中分组序号为k的分组中编号为j的元素的值,sum_j(G[j,k])表示矩阵G中分组序号为k分组中所有元素的值之和;若编号为m的个体在分组序号为k的分组中,此时G[m,k]的值为1,若编号为m的个体不在分组序号为k的分组中,此时G[m,k]的值为0。
在其中一个实施例中,所述第一参与方生成第一随机矩阵,并将其转化为与归一化分组编码矩阵相关的第一密钥矩阵,并将第一密钥矩阵发送给第二参与方,包括:第一参与方生成与归一化分组编码矩阵H相同大小的第一随机矩阵H_A,并将归一化分组编码矩阵H与第一随机矩阵H_A相减得到第一密钥矩阵H_B,将第一密钥矩阵H_B发送给第二参与方;第二参与方生成第一随机向量,并将其转化为与样本数值向量相关的第一密钥向量,并将第一密钥向量发送给第一参与方,包括:第二参与方生成第一随机向量X_B、X^2_B,并将样本数值向量X与第一随机向量X_B、X^2_B相减得到第一密钥向量X_A、X^2_A,将第一密钥向量X_A、X^2_A发送给第一参与方。
在其中一个实施例中,所述第一参与方根据第一随机矩阵和第一密钥向量得到第一统计参数密文,包括:第一参与方根据第一随机矩阵H_A的转置与第一密钥向量X_A相乘得到第一统计参数密文R_A;其中,第一统计参数密文为第一均值密文;所述第二参与方根据第一密钥矩阵和第一随机向量得到第二统计参数密文,包括:第二参与方根据第一密钥矩阵H_B的转置与第一随机向量X_B相乘得到第二统计参数密文R_B;其中,第二统计参数密文为第二均值密文;所述根据第一统计参数密文和第二统计参数密文通过秘密共享算法恢复得到分组统计参数,包括:第一参与方根据第一均值密文和第二统计参数密文通过秘密共享算法恢复得到分组均值,第二参与方根据第一统计参数密文和第二均值密文通过秘密共享算法恢复得到分组均值。
在其中一个实施例中,上述基于隐私保护的分组统计参数计算方法,还包括:
第一参与方根据第一随机矩阵与第一密钥向量计算第一密文平方均值,第二参与方根据第一密钥矩阵与第一随机向量计算第二密文平方均值;
第三参与方生成相关的第二随机向量和第三随机向量,将第三随机向量发送给第一参与方,再根据第二随机向量和第三随机向量计算第二密钥向量发送给第二参与方;
第一参与方根据第一统计参数密文和第三随机向量计算得到第一中间值密文,并发送至第二参与方;
第二参与方根据第二统计参数密文与第二密钥向量计算得到第二中间值密文,并发送至第一参与方;
第一参与方、第二参与方分别根据第一中间值密文、第二中间值密文通过秘密共享算法恢复得到第一中间值明文;
第一参与方根据第一中间值明文、第一统计参数密文、第一中间值密文和第三随机向量计算得到第一均值平方的密文,再根据第一密文平方均值和第一均值平方的密文计算得到第一方差的密文;
第二参与方根据第一中间值明文、第二统计参数密文、第二中间值密文和第二密钥向量计算得到第二均值平方的密文,再根据第二密文平方均值和第二均值平方的密文计算得到第二方差的密文;
第一参与方根据第一方差的密文和第二方差的密文通过秘密共享算法恢复得到分组方差,第二参与方根据第一方差的密文和第二方差的密文通过秘密共享算法恢复得到分组方差。
在其中一个实施例中,第一密钥向量X_A、X^2_A由样本数值向量X与第一随机向量X_B、X^2_B相减得到,第一随机向量X_B、X^2_B由第二参与方生成;第一密钥矩阵H_B由归一化分组编码矩阵H与第一随机矩阵H_A相减得到,第一随机矩阵H_A由第一参与方生成,第一随机矩阵H_A与归一化分组编码矩阵H大小相同;所述第一参与方根据第一随机矩阵与第一密钥向量计算第一密文平方均值,第二参与方根据第一密钥矩阵与第一随机向量计算第二密文平方均值,包括:第一参与方将第一随机矩阵H_A的转置与第一密钥向量X^2_A相乘得到第一密文平方均值T_A,第二参与方将第一密钥矩阵H_B与第一随机向量X^2_B相乘得到第二密文平方均值T_B。
在其中一个实施例中,所述第三参与方生成相关的第二随机向量和第三随机向量,将第三随机向量发送给第一参与方,再根据第二随机向量和第三随机向量计算第二密钥向量发送给第二参与方,包括:第三参与方生成第二随机向量C_a、C_b和第三随机向量C_a_A、C_b_A,将第三随机向量C_a_A、C_b_A发送给第一参与方,将第二随机向量C_a、C_b与第三随机向量C_a_A、C_b_A相减得到第二密钥向量C_a_B、C_b_B,并将第二密钥向量C_a_B、C_b_B发送至第二参与方;其中,C_b=C_a×C_a。
在其中一个实施例中,所述第一参与方根据第一统计参数密文和第三随机向量计算得到第一中间值密文,并发送至第二参与方,包括:第一参与方将第一统计参数密文R_A与第三随机向量中C_a_A相减得到第一中间值密文D_a_A,并发送至第二参与方;所述第二参与方根据第二统计参数密文与第二密钥向量计算得到第二中间值密文,并发送至第一参与方,包括:第二参与方将第二统计参数密文R_B与第二密钥向量中C_a_B相减得到第二中间值密文D_a_B,并发送至第一参与方;其中,第一参与方根据第一中间值密文D_a_A和第二中间值密文D_a_B通过秘密共享算法恢复得到第一中间值明文D_a,第二参与方根据第一中间值密文D_a_A和第二中间值密文D_a_B通过秘密共享算法恢复得到第一中间值明文D_a。
在其中一个实施例中,所述第一参与方根据第一中间值明文、第一统计参数密文、第一中间值密文和第三随机向量计算得到第一均值平方的密文,再根据第一密文平方均值和第一均值平方的密文计算得到第一方差的密文,包括:第一参与方根据第一中间值明文D_a、第一统计参数密文R_A、第一中间值密文D_a_A和第三随机向量中C_b_A计算得到第一均值平方的密文S_A,公式为:
S_A=D_a×R_A+D_a×D_a_A+C_b_A;
第一参与方将第一密文平方均值T_A与第一均值平方的密文S_A相减得到第一方差的密文U_A。
在其中一个实施例中,所述第二参与方根据第一中间值明文、第二统计参数密文、第二中间值密文和第二密钥向量计算得到第二均值平方的密文,再根据第二密文平方均值和第二均值平方的密文计算得到第二方差的密文,包括:
第二参与方根据第一中间值明文D_a、第二统计参数密文R_B、第二中间值密文D_a_B和第二密钥向量中C_b_B计算得到第二均值平方的密文S_B,公式为:
S_B=D_a×R_B+D_a×D_a_B+C_b_B;
第二参与方将第二密文平方均值T_B与第二均值平方的密文S_B相减得到第二方差的密文U_B。
一种基于隐私保护的分组统计参数计算装置,所述装置包括:
编码模块,用于将分组信息进行编码生成归一化分组编码矩阵;
第一密钥发送模块,用于第一参与方生成第一随机矩阵,并将其转化为与归一化分组编码矩阵相关的第一密钥矩阵,并将第一密钥矩阵发送给第二参与方;
第二密钥发送模块,用于第二参与方生成第一随机向量,并将其转化为与样本数值向量相关的第一密钥向量,并将第一密钥向量发送给第一参与方;
第一参数密文计算模块,用于第一参与方根据第一随机矩阵和第一密钥向量得到第一统计参数密文;
第二参数密文计算模块,用于第二参与方根据第一密钥矩阵和第一随机向量得到第二统计参数密文;
解密模块,用于根据第一统计参数密文和第二统计参数密文通过秘密共享算法恢复得到分组统计参数。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
将分组信息进行编码生成归一化分组编码矩阵;
第一参与方生成第一随机矩阵,并将其转化为与归一化分组编码矩阵相关的第一密钥矩阵,并将第一密钥矩阵发送给第二参与方;
第二参与方生成第一随机向量,并将其转化为与样本数值向量相关的第一密钥向量,并将第一密钥向量发送给第一参与方;
第一参与方根据第一随机矩阵和第一密钥向量得到第一统计参数密文;
第二参与方根据第一密钥矩阵和第一随机向量得到第二统计参数密文;
根据第一统计参数密文和第二统计参数密文通过秘密共享算法恢复得到分组统计参数。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
将分组信息进行编码生成归一化分组编码矩阵;
第一参与方生成第一随机矩阵,并将其转化为与归一化分组编码矩阵相关的第一密钥矩阵,并将第一密钥矩阵发送给第二参与方;
第二参与方生成第一随机向量,并将其转化为与样本数值向量相关的第一密钥向量,并将第一密钥向量发送给第一参与方;
第一参与方根据第一随机矩阵和第一密钥向量得到第一统计参数密文;
第二参与方根据第一密钥矩阵和第一随机向量得到第二统计参数密文;
根据第一统计参数密文和第二统计参数密文通过秘密共享算法恢复得到分组统计参数。
上述基于隐私保护的分组统计参数计算方法、装置、计算机设备和存储介质,在进行分组统计值计算时通过第一参与方对分组信息进行编码,然后通过秘密共享方法分享至第二参与方,第二参与方将样本数值通过秘密共享方法分享至第一参与方,然后双方相互发送密钥数据,根据密钥数据计算得到统计参数密文,最后通过解密得到分组统计参数,第一参与方和第二参与方均能获得分组统计参数,而不会影响数据的隐私安全,保证了第一参与方和第二参与方对最终的分组统计结果享有平等的计算操作使用权。
本申请的技术方案,双方在不知对方数据的情况下进行关于统计参数的密钥数据的计算,与同态加密方法相比,能够在不影响结果准确性的前提下,支持后续拓展的计算,更快的获得分组统计参数,计算效率更高。本申请技术基础为秘密共享算法,可以支持多种安全协议,安全协议包括精确比较协议;同时,统计结果可以保持在秘密分享的碎片状态,便于后续多方安全计算操作直接使用,也可以恢复至任意一参与方,并使得另一参与方保持对分组统计结果的未知,具有便利性和公平性。
附图说明
图1为一个实施例中基于隐私保护的分组统计参数计算方法的流程示意图;
图2为另一个实施例中基于隐私保护的分组统计参数计算方法的流程示意图;
图3为一个实施例中基于隐私保护的分组统计参数计算装置的结构框图;
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种基于隐私保护的分组统计参数计算方法,包括以下步骤:
S110,将分组信息进行编码生成归一化分组编码矩阵。
其中,第一参与方为分组信息拥有方,如背景技术中的机构A,其持有样本分组信息,即组数以及每组中有哪些样本。其中,编码方式为根据分组后每组中有哪些样本进行编码,归一化分组编码矩阵的大小为(M,K),M为总体中个体的数目,K为分组的个数,归一化分组编码矩阵中每个元素的值与分组中存在个体的数目相关。
其中,第一参与方将归一化分组编码矩阵通过秘密共享算法发送给第二参与方,第二参与方将样本数值向量通过秘密共享算法发送给第一参与方。其中,秘密共享(Secret-Sharing)是现代密码学领域的一个重要分支,是信息安全和数据保密中的重要手段,也是多方安全计算和联邦学习等领域的一个基础应用技术。实际应用中,在密钥管理,数字签名,身份认证,多方安全计算,纠错码,银行网络管理以及数据安全等方面都有重要作用。秘密共享是在一组参与者中共享秘密的技术,它主要用于保护重要信息,防止信息被丢失、被破坏、被篡改。它源于经典密码理论,最早由Sharmir和Blakley在1979年提出。简单来说,秘密共享就是指共享的秘密在一个用户群体里进行合理分配,以达到由所有成员共同掌管秘密的目的。秘密共享算法可为shamir算法,当然也可采用其它秘密共享算法。
其中,第二参与方为样本数值拥有方,如背景技术中的机构B,机构B持有统计值计算需要的输入值。
S120,第一参与方生成第一随机矩阵,将第一随机矩阵转化为与归一化分组编码矩阵相关的第一密钥矩阵,并将第一密钥矩阵发送给第二参与方。
S130,第二参与方生成第一随机向量,将第一随机向量转化为与样本数值向量相关的第一密钥向量,并将第一密钥向量发送给第一参与方。
S140,第一参与方根据第一随机矩阵和第一密钥向量得到第一统计参数密文。
S150,第二参与方根据第一密钥矩阵和第一随机向量得到第二统计参数密文。
S150,根据第一统计参数密文和第二统计参数密文通过秘密共享算法恢复得到分组统计参数。
其中,第一参与方可以根据第一统计参数密文(碎片化的分组统计参数)通过秘密共享算法恢复得到分组统计参数。第二参与方可以根据第二统计参数密文(碎片化的分组统计参数)通过秘密共享算法恢复得到分组统计参数。
第一参与方此时可根据第二参与方发送的随机数并通过秘密共享算法恢复得到分组统计参数,第二参与方此时可根据第一参与方发送的随机数并通过秘密共享算法恢复得到分组统计参数;当然,随机数也可由第三参与方生成,并分别发送至第一参与方和第二参与方,用于得到分组统计参数。
其中,分组统计参数包括分组求和、分组均值和分组方差。
上述基于隐私保护的分组统计参数计算方法、装置、计算机设备和存储介质,在进行分组统计值计算时通过第一参与方对分组信息进行编码,然后通过秘密共享算法分享至第二参与方,第二参与方将样本数值通过秘密共享算法分享至第一参与方,然后双方相互发送密钥数据,根据密钥数据计算得到统计参数密文,最后通过解密得到分组统计参数,第一参与方和第二参与方均能获得分组统计参数,而不会影响数据的隐私安全,保证了第一参与方和第二参与方对最终的分组统计结果享有平等的计算操作使用权。
本申请的技术方案,双方在不知对方数据的情况下进行关于统计参数的密钥数据的计算,与同态加密方法相比,能够在不影响结果准确性的前提下,支持后续拓展的计算,更快的获得分组统计参数,计算效率更高。本申请技术基础为秘密共享算法,可以支持多种安全协议,安全协议包括精确比较协议;同时,统计结果可以保持在秘密分享的碎片状态,便于后续多方安全计算操作直接使用,也可以恢复至任意一参与方,并使得另一参与方保持对分组统计结果的未知,具有便利性和公平性。
在其中一个实施例中,所述将分组信息进行编码生成归一化分组编码矩阵,包括:根据矩阵G计算归一化分组编码矩阵H,归一化分组编码矩阵H中每个元素的值的计算公式为:
其中,m表示总体中个体的编号,m=1,2,……,M,单一个体可以落在多个分组中,k表示分组的序号,k=1,2,……,K,j表示序号为k的分组中个体的编号,j=1,2,……,M,G[j,k]表示在矩阵G中分组序号为k的分组中编号为j的元素的值,sum_j(G[j,k])表示矩阵G中分组序号为k分组中所有元素的值之和;若编号为m的个体在分组序号为k的分组中,此时G[m,k]的值为1,若编号为m的个体不在分组序号为k的分组中,此时G[m,k]的值为0。
例如,存在一个总体,包括甲、乙、丙、丁四个个体,甲、乙、丙、丁的编号分别为1、2、3、4,甲、乙分为第一组,甲、乙分别对应第一组的第一个元素和第二个元素,第一个元素和第二个元素均为1,丙、丁分别对应第一组的第三个元素和第四个元素,丙、丁不在第一组,第三个元素和第四个元素均为0,第一组表示[1100];丙、丁分为第二组,甲、乙分别对应第二组的第一个元素和第二个元素,甲、乙不在第二组,第一个元素和第二个元素均为0,丙、丁分别对应第二组的第三个元素和第四个元素,第三个元素和第四个元素均为1,第二组表示[0011];矩阵G的建立方式为:G[1,1]=1,G[2,1]=1,G[3,1]=0,G[4,1]=0,G[1,2]=0,G[2,2]=0,G[3,2]=1,G[4,2]=1,H[1,1]=G[1,1]/(G[1,1]+G[2,1]+G[3,1]+G[4,1])=1/(1+1+0+0)=0.5,H[2,1]=G[2,1]/(G[1,1]+G[2,1]+G[3,1]+G[4,1])=1/(1+1+0+0)=0.5,H[3,1]=G[3,1]/(G[1,1]+G[2,1]+G[3,1]+G[4,1])=0/(1+1+0+0)=0,H[4,1]=G[4,1]/(G[1,1]+G[2,1]+G[3,1]+G[4,1])=0/(1+1+0+0)=0,H[1,2]=G[1,2]/(G[1,2]+G[2,2]+G[3,2]+G[4,2])=0/(0+0+1+1)=0,H[2,2]=G[2,2]/(G[1,2]+G[2,2]+G[3,2]+G[4,2])=0/(0+0+1+1)=0,H[3,2]=G[3,2]/(G[1,2]+G[2,2]+G[3,2]+G[4,2])=1/(0+0+1+1)=0.5,H[4,2]=G[4,2]/(G[1,2]+G[2,2]+G[3,2]+G[4,2])=1/(0+0+1+1)=0.5。
再例如,存在一个总体,包括甲、乙、丙、丁四个个体,甲、乙、丙、丁的编号分别为1、2、3、4,甲、乙、丙分为第一组,甲、乙、丙分别对应第一组的第一个元素、第二个元素和第三个元素,第一个元素、第二个元素和第三个元素均为1,丁对应第一组的第四个元素,丁不在第一组,第四个元素为0,第一组表示[1110];甲、丙、丁分为第二组,甲、丙、丁分别对应第二组的第一个元素、第三个元素和第四个元素,第一个元素、第三个元素和第四个元素均为1,乙对应第二组的第二个元素,乙不在第二组,第二个元素为0,第二组表示[1011];矩阵G的建立方式为:G[1,1]=1,G[2,1]=1,G[3,1]=1,G[4,1]=0,G[1,2]=1,G[2,2]=0,G[3,2]=1,G[4,2]=1,H[1,1]=G[1,1]/(G[1,1]+G[2,1]+G[3,1]+G[4,1])=1/(1+1+1+0)=0.33,H[2,1]=G[2,1]/(G[1,1]+G[2,1]+G[3,1]+G[4,1])=1/(1+1+1+0)=0.33,H[3,1]=G[3,1]/(G[1,1]+G[2,1]+G[3,1]+G[4,1])=1/(1+1+1+0)=0.33,H[4,1]=G[4,1]/(G[1,1]+G[2,1]+G[3,1]+G[4,1])=0/(1+1+1+0)=0,H[1,2]=G[1,2]/(G[1,2]+G[2,2]+G[3,2]+G[4,2])=1/(1+0+1+1)=0.33,H[2,2]=G[2,2]/(G[1,2]+G[2,2]+G[3,2]+G[4,2])=0/(1+0+1+1)=0,H[3,2]=G[3,2]/(G[1,2]+G[2,2]+G[3,2]+G[4,2])=1/(1+0+1+1)=0.33,H[4,2]=G[4,2]/(G[1,2]+G[2,2]+G[3,2]+G[4,2])=1/(1+0+1+1)=0.33。
在其中一个实施例中,所述第一参与方生成第一随机矩阵,并将其转化为与归一化分组编码矩阵相关的第一密钥矩阵,将第一密钥矩阵发送给第二参与方,包括:第一参与方生成与归一化分组编码矩阵H相同大小的第一随机矩阵H_A,将归一化分组编码矩阵H与第一随机矩阵H_A相减得到第一密钥矩阵H_B,将第一密钥矩阵H_B发送给第二参与方;所述第二参与方生成第一随机向量,并将其转化为与样本数值向量相关的第一密钥向量,将第一密钥向量发送给第一参与方,包括:第二参与方生成第一随机向量X_B、X^2_B,并将样本数值向量X与第一随机向量相减X_B、X^2_B得到第一密钥向量X_A、X^2_A,将第一密钥向量X_A、X^2_A发送给第一参与方。
其中,随机矩阵和随机向量的取值方式不做限定,可以采用均匀分布的方式取值。
在其中一个实施例中,所述第一参与方根据第一随机矩阵和第一密钥向量得到第一统计参数密文,包括:第一参与方根据第一随机矩阵H_A的转置与第一密钥向量X_A相乘得到第一统计参数密文R_A;其中,第一统计参数密文为第一均值密文;所述第二参与方根据第一密钥矩阵和第一随机向量得到第二统计参数密文,包括:第二参与方根据第一密钥矩阵H_B的转置与第一随机向量X_B相乘得到第二统计参数密文R_B;其中,第二统计参数密文为第二均值密文。所述根据第一统计参数密文和第二统计参数密文通过秘密共享算法恢复得到统计参数,包括:第一参与方根据第一均值密文和第二统计参数密文通过秘密共享算法恢复得到分组均值,第二参与方根据第一统计参数密文和第二均值密文通过秘密共享算法恢复得到分组均值。
具体的,R_A=H_A^T*X_A,R_B=H_B^T*X_B。其中,分组均值为分组后该组样本的均值。其中,碎片矩阵乘可采用已有安全协议实现,已有安全协议包括但不限于乘法三元组(beavertriple)协议。
在其中一个实施例中,上述基于隐私保护的分组统计参数计算方法,还包括:第一参与方根据第一随机矩阵与第一密钥向量计算第一密文平方均值,第二参与方根据第一密钥矩阵与第一随机向量计算第二密文平方均值;第三参与方生成相关的第二随机向量和第三随机向量,将第三随机向量发送给第一参与方,再根据第二随机向量和第三随机向量计算第二密钥向量发送给第二参与方;第一参与方根据第一统计参数密文和第三随机向量计算得到第一中间值密文,并发送至第二参与方;第二参与方根据第二统计参数密文与第二密钥向量计算得到第二中间值密文,并发送至第一参与方;第一参与方、第二参与方分别根据第一中间值密文、第二中间值密文通过秘密共享算法恢复得到第一中间值明文;第一参与方根据第一中间值明文、第一统计参数密文、第一中间值密文和第三随机向量计算得到第一均值平方的密文,再根据第一密文平方均值和第一均值平方的密文计算得到第一方差的密文;第二参与方根据第一中间值明文、第二统计参数密文、第二中间值密文和第二密钥向量计算得到第二均值平方的密文,再根据第二密文平方均值和第二均值平方的密文计算得到第二方差的密文;第一参与方根据第一方差的密文和第二方差的密文通过秘密共享算法恢复得到分组方差,第二参与方根据第一方差的密文和第二方差的密文通过秘密共享算法恢复得到分组方差。
其中,第二随机向量和第三随机向量的取值方式不做限定,可以采用均匀分布的方式取值,第二随机向量和第三随机向量的大小相同。分组方差为分组后该组样本的方差。本实施例中,通过第三参与方辅助生成密钥对第一参与方的数据和第二参与方的数据再次加密计算得到中间值,再根据中间值计算均值平方的密文和方差的密文,最后通过秘密共享算法恢复得到分组方差,通过第三方采用了多重加密的方式,提高了数据的安全性。
在其中一个实施例中,第一密钥向量X_A、X^2_A由样本数值向量X分别与第一随机向量X_B、X^2_B相减得到,第一随机向量X_B、X^2_B由第二参与方生成;第一密钥矩阵H_B由归一化分组编码矩阵H与第一随机矩阵H_A相减得到,第一随机矩阵H_A由第一参与方生成,第一随机矩阵H_A与归一化分组编码矩阵H大小相同。
所述第一参与方根据第一随机矩阵与第一密钥向量计算第一密文平方均值,第二参与方根据第一密钥矩阵与第一随机向量计算第二密文平方均值,包括:第一参与方将第一随机矩阵H_A的转置与第一密钥向量X^2_A相乘得到第一密文平方均值T_A,第二参与方将第一密钥矩阵H_B与第一随机向量X^2_B相乘得到第二密文平方均值T_B。
在其中一个实施例中,所述第三参与方生成相关的第二随机向量和第三随机向量,将第三随机向量发送给第一参与方,再根据第二随机向量和第三随机向量计算第二密钥向量发送给第二参与方,包括:第三参与方生成第二随机向量C_a、C_b和第三随机向量C_a_A、C_b_A,将第三随机向量C_a_A、C_b_A发送给第一参与方,将第二随机向量C_a、C_b与第三随机向量C_a_A、C_b_A相减得到第二密钥向量C_a_B、C_b_B,并将第二密钥向量C_a_B、C_b_B发送至第二参与方;其中,C_b=C_a×C_a,C_a×C_a表示按照元素相乘。
在其中一个实施例中,所述第一参与方根据第一统计参数密文和第三随机向量计算得到第一中间值密文,并发送至第二参与方,包括:第一参与方将第一统计参数密文R_A与第三随机向量中C_a_A相减得到第一中间值密文D_a_A,并发送至第二参与方;所述第二参与方根据第二统计参数密文与第二密钥向量计算得到第二中间值密文,并发送至第一参与方,包括:第二参与方将第二统计参数密文R_B与第二密钥向量中C_a_B相减得到第二中间值密文D_a_B,并发送至第一参与方;其中,第一参与方根据第一中间值密文D_a_A和第二中间值密文D_a_B通过秘密共享算法恢复得到第一中间值明文D_a,第二参与方根据第一中间值密文D_a_A和第二中间值密文D_a_B通过秘密共享算法恢复得到第一中间值明文D_a。
在其中一个实施例中,所述第一参与方根据第一中间值明文、第一统计参数密文、第一中间值密文和第三随机向量计算得到第一均值平方的密文,再根据第一密文平方均值和第一均值平方的密文计算得到第一方差的密文,包括:第一参与方根据第一中间值明文D_a、第一统计参数密文R_A、第一中间值密文D_a_A和第三随机向量中C_b_A计算得到第一均值平方的密文S_A,公式为:S_A=D_a×R_A+D_a×D_a_A+C_b_A;第一参与方将第一密文平方均值T_A与第一均值平方的密文S_A相减得到第一方差的密文U_A。
在其中一个实施例中,所述第二参与方根据第一中间值明文、第二统计参数密文、第二中间值密文和第二密钥向量计算得到第二均值平方的密文,再根据第二密文平方均值和第二均值平方的密文计算得到第二方差的密文,包括:第二参与方根据第一中间值明文D_a、第二统计参数密文R_B、第二中间值密文D_a_B和第二密钥向量中C_b_B计算得到第二均值平方的密文S_B,公式为:S_B=D_a×R_B+D_a×D_a_B+C_b_B;第二参与方将第二密文平方均值T_B与第二均值平方的密文S_B相减得到第二方差的密文U_B。
在另一个具体实施例中,如图2所示,一种基于隐私保护的分组统计参数计算方法,包括:第一参与方将分组信息进行编码生成归一化分组编码矩阵H;第一参与方将归一化分组编码矩阵H通过秘密共享算法发送给第二参与方,第二参与方将样本数值向量X通过秘密共享算法发送给第一参与方;第一参与方生成与归一化分组编码矩阵H相同大小的第一随机矩阵H_A,并将归一化分组编码矩阵H与第一随机矩阵相减得到第一密钥矩阵H_B,将第一密钥矩阵H_B发送给第二参与方;第二参与方生成第一随机向量X_B、X^2_B,并将样本数值向量X与第一随机向量相减得到第一密钥向量X_A、X^2_A,将第一密钥向量X_A、X^2_A发送给第一参与方;第一参与方根据第一随机矩阵H_A的转置与第一密钥向量X_A相乘得到第一统计参数密文R_A;其中,第一统计参数密文为第一均值密文;第二参与方根据第一密钥矩阵H_B的转置与第一随机向量X_B相乘得到第二统计参数密文R_B;其中,第二统计参数密文为第二均值密文;第一参与方将第一随机矩阵H_A的转置与第一密钥向量X^2_A相乘得到第一密文平方均值T_A,第二参与方将第一密钥矩阵H_B与第一随机向量X^2_B相乘得到第二密文平方均值T_B;第三参与方生成第二随机向量C_a、C_b和第三随机向量C_a_A、C_b_A,将第三随机向量C_a_A、C_b_A发送给第一参与方,将第二随机向量C_a、C_b与第三随机向量C_a_A、C_b_A相减得到第二密钥向量C_a_B、C_b_B并发送至第二参与方;第一参与方将第一统计参数密文R_A与第三随机向量C_a_A相减得到第一中间值密文D_a_A,并发送至第二参与方;第二参与方将第二统计参数密文R_B与第二密钥向量C_a_B相减得到第二中间值密文D_a_B,并发送至第一参与方;第一参与方根据第二中间值密文通过秘密共享算法恢复得到第一中间值明文D_a,第二参与方根据第一中间值密文通过秘密共享算法恢复得到第一中间值明文D_a;第一参与方根据第一中间值明文D_a、第一统计参数密文R_A、第一中间值密文D_a_A和第三随机向量C_b_A计算得到第一均值平方的密文S_A;第一参与方将第一密文平方均值T_A与第一均值平方的密文S_A相减得到第一方差的密文U_A;第二参与方根据第一中间值明文D_a、第二统计参数密文R_B、第二中间值密文D_a_B和第二密钥向量C_b_B计算得到第二均值平方的密文S_B;第二参与方将第二密文平方均值T_B与第二均值平方的密文S_B相减得到第二方差的密文U_B;第一参与方、第二参与方根据密文R_A、R_B、U_A和U_B,通过秘密共享算法恢复得到分组均值明文和分组方差明文。
在一个具体的实施例中,机构A持有人员和公司的归属信息(员工姓名,员工属于哪个公司),即分组信息G;机构B持有同样人员的信用评分X(员工姓名,员工的信用评分),希望能计算每个公司中人员的信用评分平均值和方差,最终结果由机构A获得。显然机构A不可泄露公司归属信息给机构B,机构B也不能泄露信用评分给机构A。根据本申请记载的分组统计参数计算方法,处理过程如下:
a1,机构A对分组信息G(矩阵形式表示)进行编码生成归一化分组编码矩阵H;
a2,机构A通过秘密共享算法将归一化分组编码矩阵H进行碎片化编码,然后发送给机构B;
a3,机构B通过秘密共享算法将人员的信用评分X(向量形式表示)进行碎片化编码,然后发送给机构A;其中,a3与a1或a2的步骤不分先后,可以同时进行;
a4,机构A生成与归一化分组编码矩阵H相同大小的第一随机矩阵H_A,将归一化分组编码矩阵H与第一随机矩阵H_A相减得到第一密钥矩阵H_B,将第一密钥矩阵H_B发送给机构B;
a5,机构B生成第一随机向量X_B、X^2_B,并将人员的信用评分X与第一随机向量相减X_B、X^2_B得到第一密钥向量X_A、X^2_A,将第一密钥向量X_A、X^2_A发送给机构A;其中,a4和a5的步骤不分先后,可以同时进行;
a6,机构A根据第一随机矩阵H_A的转置与第一密钥向量X_A相乘得到第一均值密文R_A;此时,机构A可以通过秘密共享算法恢复得到每个公司中人员的信用评分平均值的明文;
a7,机构B根据第一密钥矩阵H_B的转置与第一随机向量X_B相乘得到第二均值密文R_B;其中,a6和a7的步骤不分先后,可以同时进行;
a8,机构A将第一随机矩阵H_A的转置与第一密钥向量X^2_A相乘得到第一密文平方均值T_A;
a9,机构B将第一密钥矩阵H_B与第一随机向量X^2_B相乘得到第二密文平方均值T_B;
a10,机构C生成第二随机向量C_a、C_b和第三随机向量C_a_A、C_b_A,将第三随机向量C_a_A、C_b_A发送给机构A,将第二随机向量C_a、C_b与第三随机向量C_a_A、C_b_A相减得到第二密钥向量C_a_B、C_b_B,并将第二密钥向量C_a_B、C_b_B发送至机构B;其中,C_b=C_a×C_a,C_a×C_a表示按照元素相乘;其中,a8、a9和a10的步骤不分先后,可以同时进行;
a11,机构A将第一统计参数密文R_A与第三随机向量中C_a_A相减得到第一中间值密文D_a_A,并发送给机构B;
a12,机构B将第二统计参数密文R_B与第二密钥向量中C_a_B相减得到第二中间值密文D_a_B,并发送至机构A;其中,a11和a12的步骤不分先后,可以同时进行;
a13,机构A和机构B根据第一中间值密文D_a_A和第二中间值密文D_a_B通过秘密共享算法恢复得到第一中间值明文D_a;
a14,机构A根据第一中间值明文D_a、第一统计参数密文R_A、第一中间值密文D_a_A和第三随机向量中C_b_A计算得到第一均值平方的密文S_A,公式为:S_A=D_a×R_A+D_a×D_a_A+C_b_A;将第一密文平方均值T_A与第一均值平方的密文S_A相减得到第一方差的密文U_A;
a15,机构B根据第一中间值明文D_a、第二统计参数密文R_B、第二中间值密文D_a_B和第二密钥向量C_b_B计算得到第二均值平方的密文S_B,公式为:S_B=D_a×R_B+D_a×D_a_B+C_b_B;将第二密文平方均值T_B与第二均值平方的密文S_B相减得到第二方差的密文U_B;其中,步骤a14和a15不分先后,可以同时进行;
a16,机构A根据第一方差的密文U_A通过秘密共享算法恢复得到人员的信用评分方差。当然,步骤a6中,机构A可以通过秘密共享算法恢复得到每个公司中人员的信用评分平均值的明文也可以放到步骤a16来进行。
在现有的基于同态加密的隐私保护分组统计值计算的方法中,机构B为数据持有机构,则其可直接获得人员的信用评分平均值和方差,如何在不泄漏机构B的人员的信用评分平均值和方差的情况下,使得机构A也能够获得人员的信用评分平均值和方差,还是一个悬而未决的问题。本申请所采用的方法能够选择机构A或者机构B去获得最终的人员的信用评分平均值和方差。
应该理解的是,虽然图1-2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-2中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种基于隐私保护的分组统计参数计算装置,包括:编码模块210、第一密钥发送模块220、第二密钥发送模块230、第一参数密文计算模块240、第二参数密文计算模块250和解密模块260,其中:
编码模块210,用于将分组信息进行编码生成归一化分组编码矩阵。
第一密钥发送模块220,用于第一参与方生成第一随机矩阵,并将其转化为与归一化分组编码矩阵相关的第一密钥矩阵,并将第一密钥矩阵发送给第二参与方。
第二密钥发送模块230,用于第二参与方生成第一随机向量,并将其转化为与样本数值向量相关的第一密钥向量,并将第一密钥向量发送给第一参与方。
第一参数密文计算模块240,用于第一参与方根据第一随机矩阵和第一密钥向量得到第一统计参数密文。
第二参数密文计算模块250,用于第二参与方根据第一密钥矩阵和第一随机向量得到第二统计参数密文。
解密模块260,用于根据第一统计参数密文和第二统计参数密文通过秘密共享算法恢复得到分组统计参数。
在其中一个实施例中,所述编码模块210包括:矩阵G建立单元,用于建立矩阵G(M,K),M为总体中个体的数目,K为分组的个数,矩阵G中元素值为0或者1;归一化分组编码矩阵计算单元,用于根据矩阵G计算归一化分组编码矩阵H,归一化分组编码矩阵H中每个元素的值的计算公式为:
其中,m表示总体中个体的编号,m=1,2,……,M,单一个体可以落在多个分组中,k表示分组的序号,k=1,2,……,K,j表示序号为k的分组中个体的编号,j=1,2,……,M,G[j,k]表示在矩阵G中分组序号为k的分组中编号为j的元素的值,sum_j(G[j,k])表示矩阵G中分组序号为k分组中所有元素的值之和;若编号为m的个体在分组序号为k的分组中,此时,G[m,k]的值为1,若编号为m的个体不在分组序号为k的分组中,此时G[m,k]的值为0。
在其中一个实施例中,所述第一密钥发送模块220,还用于第一参与方生成与归一化分组编码矩阵H相同大小的第一随机矩阵H_A,并将归一化分组编码矩阵H与第一随机矩阵H_A相减得到第一密钥矩阵H_B,将第一密钥矩阵H_B发送给第二参与方;
第二密钥发送模块230,还用于第二参与方生成第一随机向量X_B、X^2_B,并将样本数值向量X与第一随机向量X_B、X^2_B相减得到第一密钥向量X_A、X^2_A,将第一密钥向量X_A、X^2_A发送给第一参与方。
在其中一个实施例中,第一参数密文计算模块240,还用于第一参与方根据第一随机矩阵H_A的转置与第一密钥向量X_A相乘得到第一统计参数密文R_A;其中,第一统计参数密文为第一均值密文;
第二参数密文计算模块250,还用于第二参与方根据第一密钥矩阵H_B的转置与第一随机向量X_B相乘得到第二统计参数密文R_B;其中,第二统计参数密文为第二均值密文。
所述解密模块260,还用于第一参与方根据第一均值密文通过秘密共享算法恢复得到分组均值,第二参与方根据第二均值密文通过秘密共享算法恢复得到分组均值。
在其中一个实施例中,上述基于隐私保护的分组统计参数计算装置还包括:
密文平方均值计算模块,用于第一参与方根据第一随机矩阵与第一密钥向量计算第一密文平方均值,第二参与方根据第一密钥矩阵与第一随机向量计算第二密文平方均值;
随机向量发送模块,用于第三参与方生成相关的第二随机向量和第三随机向量,将第三随机向量发送给第一参与方,再根据第二随机向量和第三随机向量计算第二密钥向量发送给第二参与方;
第一中间值密文计算模块,用于第一参与方根据第一统计参数密文和第三随机向量计算得到第一中间值密文,并发送至第二参与方;
第二中间值密文计算模块,用于第二参与方根据第二统计参数密文与第二密钥向量计算得到第二中间值密文,并发送至第一参与方;
中间值明文计算模块,用于第一参与方、第二参与方分别根据第一中间值密文、第二中间值密文通过秘密共享算法恢复得到第一中间值明文;
第一方差密文计算模块,用于第一参与方根据第一中间值明文、第一统计参数密文、第一中间值密文和第三随机向量计算得到第一均值平方的密文,再根据第一密文平方均值和第一均值平方的密文计算得到第一方差的密文;
第二方差密文计算模块,第二参与方根据第一中间值明文、第二统计参数密文、第二中间值密文和第二密钥向量计算得到第二均值平方的密文,再根据第二密文平方均值和第二均值平方的密文计算得到第二方差的密文;
解密模块,还用于第一参与方根据第一方差的密文和第二方差的密文通过秘密共享算法恢复得到分组方差,第二参与方根据第一方差的密文和第二方差的密文通过秘密共享算法恢复得到分组方差。
在其中一个实施例中,第一密钥向量X_A、X^2_A由样本数值向量X与第一随机向量X_B、X^2_B相减得到,第一随机向量X_B、X^2_B由第二参与方生成;第一密钥矩阵H_B由归一化分组编码矩阵H与第一随机矩阵H_A相减得到,第一随机矩阵H_A由第一参与方生成,第一随机矩阵H_A与归一化分组编码矩阵H大小相同。
密文平方均值计算模块,还用于第一参与方将第一随机矩阵H_A的转置与第一密钥向量X^2_A相乘得到第一密文平方均值T_A,第二参与方将第一密钥矩阵H_B与第一随机向量X^2_B相乘得到第二密文平方均值T_B。
在其中一个实施例中,所述随机向量发送模块,还用于第三参与方生成第二随机向量C_a、C_b和第三随机向量C_a_A、C_b_A,将第三随机向量C_a_A、C_b_A发送给第一参与方,将第二随机向量C_a、C_b与第三随机向量C_a_A、C_b_A相减得到第二密钥向量C_a_B、C_b_B,并将第二密钥向量C_a_B、C_b_B发送至第二参与方;其中,C_b=C_a×C_a。
在其中一个实施例中,第一中间值密文计算模块,还用于第一参与方将第一统计参数密文R_A与第三随机向量C_a_A相减得到第一中间值密文D_a_A,并发送至第二参与方;第二中间值密文计算模块,还用于第二参与方将第二统计参数密文R_B与第二密钥向量C_a_B相减得到第二中间值密文D_a_B,并发送至第一参与方;其中,第一参与方根据第二中间值密文D_a_B通过秘密共享算法恢复得到第一中间值明文D_a,第二参与方根据第一中间值密文D_a_A通过秘密共享算法恢复得到第一中间值明文D_a。
其中,第一方差密文计算模块,包括:第一均值平方密文计算单元,用于第一参与方根据第一中间值明文D_a、第一统计参数密文R_A、第一中间值密文D_a_A和第三随机向量C_b_A计算得到第一均值平方的密文S_A,公式为:S_A=D_a×R_A+D_a×D_a_A+C_b_A;第一方差密文计算单元,用于第一参与方将第一密文平方均值T_A与第一均值平方的密文S_A相减得到第一方差的密文U_A。
其中,第二方差密文计算模块,包括:第二均值平方密文计算单元,用于第二参与方根据第一中间值明文D_a、第二统计参数密文R_B、第二中间值密文D_a_B和第二密钥向量C_b_B计算得到第二均值平方的密文S_B,公式为:S_B=D_a×R_B+D_a×D_a_B+C_b_B;第二方差密文计算单元,用于第二参与方将第二密文平方均值T_B与第二均值平方的密文S_B相减得到第二方差的密文U_B。
关于基于隐私保护的分组统计参数计算装置的具体限定可以参见上文中对于基于隐私保护的分组统计参数计算方法的限定,在此不再赘述。上述基于隐私保护的分组统计参数计算装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储分组信息化或样本数值向量数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于隐私保护的分组统计参数计算方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (13)
1.一种基于隐私保护的分组统计参数计算方法,其特征在于,所述方法包括:
将分组信息进行编码生成归一化分组编码矩阵;
第一参与方生成第一随机矩阵,并将其转化为与归一化分组编码矩阵相关的第一密钥矩阵,并将第一密钥矩阵发送给第二参与方;
第二参与方生成第一随机向量,并将其转化为与样本数值向量相关的第一密钥向量,并将第一密钥向量发送给第一参与方;
第一参与方根据第一随机矩阵和第一密钥向量得到第一统计参数密文;
第二参与方根据第一密钥矩阵和第一随机向量得到第二统计参数密文;
根据第一统计参数密文和第二统计参数密文通过秘密共享算法恢复得到分组统计参数。
2.根据权利要求1所述的方法,其特征在于,所述将分组信息进行编码生成归一化分组编码矩阵,包括:
建立矩阵G(M,K),M为总体中个体的数目,K为分组的个数,矩阵G中元素值为0或者1;
根据矩阵G计算归一化分组编码矩阵H,归一化分组编码矩阵H中每个元素的值的计算公式为:
其中,m表示总体中个体的编号,m=1,2,……,M,单一个体可以落在多个分组中,k表示分组的序号,k=1,2,……,K,j表示序号为k的分组中个体的编号,j=1,2,……,M,G[j,k]表示在矩阵G中分组序号为k的分组中编号为j的元素的值,sum_j(G[j,k])表示矩阵G中分组序号为k分组中所有元素的值之和;若编号为m的个体在分组序号为k的分组中,此时G[m,k]的值为1,若编号为m的个体不在分组序号为k的分组中,此时G[m,k]的值为0。
3.根据权利要求1所述的方法,其特征在于,所述第一参与方生成第一随机矩阵,并将其转化为与归一化分组编码矩阵相关的第一密钥矩阵,并将第一密钥矩阵发送给第二参与方,包括:
第一参与方生成与归一化分组编码矩阵H相同大小的第一随机矩阵H_A,并将归一化分组编码矩阵H与第一随机矩阵H_A相减得到第一密钥矩阵H_B,将第一密钥矩阵H_B发送给第二参与方;
第二参与方生成第一随机向量,并将其转化为与样本数值向量相关的第一密钥向量,并将第一密钥向量发送给第一参与方,包括:
第二参与方生成第一随机向量X_B、X^2_B,并将样本数值向量X与第一随机向量X_B、X^2_B相减得到第一密钥向量X_A、X^2_A,将第一密钥向量X_A、X^2_A发送给第一参与方。
4.根据权利要求3所述的方法,其特征在于,所述第一参与方根据第一随机矩阵和第一密钥向量得到第一统计参数密文,包括:
第一参与方根据第一随机矩阵H_A的转置与第一密钥向量X_A相乘得到第一统计参数密文R_A;其中,第一统计参数密文为第一均值密文;
所述第二参与方根据第一密钥矩阵和第一随机向量得到第二统计参数密文,包括:
第二参与方根据第一密钥矩阵H_B的转置与第一随机向量X_B相乘得到第二统计参数密文R_B;其中,第二统计参数密文为第二均值密文;
所述根据第一统计参数密文和第二统计参数密文通过秘密共享算法恢复得到分组统计参数,包括:
第一参与方根据第一均值密文和第二统计参数密文通过秘密共享算法恢复得到分组均值,第二参与方根据第一统计参数密文和第二均值密文通过秘密共享算法恢复得到分组均值。
5.根据权利要求1所述的方法,其特征在于,还包括:
第一参与方根据第一随机矩阵与第一密钥向量计算第一密文平方均值,第二参与方根据第一密钥矩阵与第一随机向量计算第二密文平方均值;
第三参与方生成相关的第二随机向量和第三随机向量,将第三随机向量发送给第一参与方,再根据第二随机向量和第三随机向量计算第二密钥向量发送给第二参与方;
第一参与方根据第一统计参数密文和第三随机向量计算得到第一中间值密文,并发送至第二参与方;
第二参与方根据第二统计参数密文与第二密钥向量计算得到第二中间值密文,并发送至第一参与方;
第一参与方、第二参与方分别根据第一中间值密文、第二中间值密文通过秘密共享算法恢复得到第一中间值明文;
第一参与方根据第一中间值明文、第一统计参数密文、第一中间值密文和第三随机向量计算得到第一均值平方的密文,再根据第一密文平方均值和第一均值平方的密文计算得到第一方差的密文;
第二参与方根据第一中间值明文、第二统计参数密文、第二中间值密文和第二密钥向量计算得到第二均值平方的密文,再根据第二密文平方均值和第二均值平方的密文计算得到第二方差的密文;
第一参与方根据第一方差的密文和第二方差的密文通过秘密共享算法恢复得到分组方差,第二参与方根据第一方差的密文和第二方差的密文通过秘密共享算法恢复得到分组方差。
6.根据权利要求5所述的方法,其特征在于,第一密钥向量X_A、X^2_A由样本数值向量X与第一随机向量X_B、X^2_B相减得到,第一随机向量X_B、X^2_B由第二参与方生成;
第一密钥矩阵H_B由归一化分组编码矩阵H与第一随机矩阵H_A相减得到,第一随机矩阵H_A由第一参与方生成,第一随机矩阵H_A与归一化分组编码矩阵H大小相同;
所述第一参与方根据第一随机矩阵与第一密钥向量计算第一密文平方均值,第二参与方根据第一密钥矩阵与第一随机向量计算第二密文平方均值,包括:
第一参与方将第一随机矩阵H_A的转置与第一密钥向量X^2_A相乘得到第一密文平方均值T_A,第二参与方将第一密钥矩阵H_B与第一随机向量X^2_B相乘得到第二密文平方均值T_B。
7.根据权利要求5所述的方法,其特征在于,所述第三参与方生成相关的第二随机向量和第三随机向量,将第三随机向量发送给第一参与方,再根据第二随机向量和第三随机向量计算第二密钥向量发送给第二参与方,包括:
第三参与方生成第二随机向量C_a、C_b和第三随机向量C_a_A、C_b_A,将第三随机向量C_a_A、C_b_A发送给第一参与方,将第二随机向量C_a、C_b与第三随机向量C_a_A、C_b_A相减得到第二密钥向量C_a_B、C_b_B,并将第二密钥向量C_a_B、C_b_B发送至第二参与方;其中,C_b=C_a×C_a。
8.根据权利要求5所述的方法,其特征在于,所述第一参与方根据第一统计参数密文和第三随机向量计算得到第一中间值密文,并发送至第二参与方,包括:
第一参与方将第一统计参数密文R_A与第三随机向量C_a_A相减得到第一中间值密文D_a_A,并发送至第二参与方;
所述第二参与方根据第二统计参数密文与第二密钥向量计算得到第二中间值密文,并发送至第一参与方,包括:
第二参与方将第二统计参数密文R_B与第二密钥向量C_a_B相减得到第二中间值密文D_a_B,并发送至第一参与方;
其中,第一参与方根据第一中间值密文D_a_A和第二中间值密文D_a_B通过秘密共享算法恢复得到第一中间值明文D_a,第二参与方根据第一中间值密文D_a_A和第二中间值密文D_a_B通过秘密共享算法恢复得到第一中间值明文D_a。
9.根据权利要求5所述的方法,其特征在于,所述第一参与方根据第一中间值明文、第一统计参数密文、第一中间值密文和第三随机向量计算得到第一均值平方的密文,再根据第一密文平方均值和第一均值平方的密文计算得到第一方差的密文,包括:
第一参与方根据第一中间值明文D_a、第一统计参数密文R_A、第一中间值密文D_a_A和第三随机向量C_b_A计算得到第一均值平方的密文S_A,公式为:
S_A=D_a×R_A+D_a×D_a_A+C_b_A;
第一参与方将第一密文平方均值T_A与第一均值平方的密文S_A相减得到第一方差的密文U_A。
10.根据权利要求5-9任一项所述的方法,其特征在于,所述第二参与方根据第一中间值明文、第二统计参数密文、第二中间值密文和第二密钥向量计算得到第二均值平方的密文,再根据第二密文平方均值和第二均值平方的密文计算得到第二方差的密文,包括:
第二参与方根据第一中间值明文D_a、第二统计参数密文R_B、第二中间值密文D_a_B和第二密钥向量C_b_B计算得到第二均值平方的密文S_B,公式为:
S_B=D_a×R_B+D_a×D_a_B+C_b_B;
第二参与方将第二密文平方均值T_B与第二均值平方的密文S_B相减得到第二方差的密文U_B。
11.一种基于隐私保护的分组统计参数计算装置,其特征在于,所述装置包括:
编码模块,用于将分组信息进行编码生成归一化分组编码矩阵;
第一密钥发送模块,用于第一参与方生成第一随机矩阵,并将其转化为与归一化分组编码矩阵相关的第一密钥矩阵,并将第一密钥矩阵发送给第二参与方;
第二密钥发送模块,用于第二参与方生成第一随机向量,并将其转化为与样本数值向量相关的第一密钥向量,并将第一密钥向量发送给第一参与方;
第一参数密文计算模块,用于第一参与方根据第一随机矩阵和第一密钥向量得到第一统计参数密文;
第二参数密文计算模块,用于第二参与方根据第一密钥矩阵和第一随机向量得到第二统计参数密文;
解密模块,用于根据第一统计参数密文和第二统计参数密文通过秘密共享算法恢复得到分组统计参数。
12.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10中任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210126432.1A CN114640436A (zh) | 2022-02-10 | 2022-02-10 | 一种基于隐私保护的分组统计参数计算方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210126432.1A CN114640436A (zh) | 2022-02-10 | 2022-02-10 | 一种基于隐私保护的分组统计参数计算方法、装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114640436A true CN114640436A (zh) | 2022-06-17 |
Family
ID=81945789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210126432.1A Pending CN114640436A (zh) | 2022-02-10 | 2022-02-10 | 一种基于隐私保护的分组统计参数计算方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114640436A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114817970A (zh) * | 2022-06-30 | 2022-07-29 | 深圳市洞见智慧科技有限公司 | 基于数据来源保护的数据分析方法、系统及相关设备 |
CN116204909A (zh) * | 2023-04-17 | 2023-06-02 | 北京数牍科技有限公司 | 向量元素映射方法、电子设备及计算机可读存储介质 |
-
2022
- 2022-02-10 CN CN202210126432.1A patent/CN114640436A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114817970A (zh) * | 2022-06-30 | 2022-07-29 | 深圳市洞见智慧科技有限公司 | 基于数据来源保护的数据分析方法、系统及相关设备 |
CN114817970B (zh) * | 2022-06-30 | 2022-11-29 | 深圳市洞见智慧科技有限公司 | 基于数据来源保护的数据分析方法、系统及相关设备 |
CN116204909A (zh) * | 2023-04-17 | 2023-06-02 | 北京数牍科技有限公司 | 向量元素映射方法、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11374736B2 (en) | System and method for homomorphic encryption | |
CN108446680B (zh) | 一种基于边缘计算的人脸认证系统中的隐私保护方法及系统 | |
CN112106322B (zh) | 基于密码的阈值令牌生成 | |
Krawczyk | Secret sharing made short | |
US20200401726A1 (en) | System and method for private integration of datasets | |
Peng | Danger of using fully homomorphic encryption: A look at Microsoft SEAL | |
US20170142081A1 (en) | Parallelizable Encryption Using Keyless Random Permutations And Authentication Using Same | |
CN114640436A (zh) | 一种基于隐私保护的分组统计参数计算方法、装置 | |
JP2022516381A (ja) | より効率的なポスト量子署名 | |
CN114039785B (zh) | 数据加密、解密、处理方法、装置、设备和存储介质 | |
Kumar et al. | A review on hybrid encryption in cloud computing | |
CN117118617B (zh) | 一种基于模分量同态的分布式门限加解密方法 | |
CN114386089A (zh) | 一种基于多方条件检索的隐私集合求交方法 | |
CN117370927A (zh) | 基于区块链的安全多方计算融合方法及系统 | |
CN110545289B (zh) | 基于混合同态加密的错误数据注入攻击防御方法 | |
CN116167088A (zh) | 一种两方联邦学习中进行隐私保护的方法、系统及终端 | |
CN114564730A (zh) | 基于对称加密的联邦分组统计量计算方法、设备及介质 | |
CN113904833A (zh) | 一种基于门限的动态多因素身份认证方法和通信方法 | |
CN114362912A (zh) | 基于分布式密钥中心的标识密码生成方法、电子设备及介质 | |
CN116132012A (zh) | 一种可信任的隐私数据比较方法及其存储装置、智能终端 | |
CN114386068A (zh) | 一种抗合谋攻击的多方条件隐私保护集合求交方法及系统 | |
Thanikaiselvan et al. | Encrypting multiple images using stacked autoencoders | |
JP2886517B2 (ja) | 共通鍵通信システム | |
Beaver | Equivocable oblivious transfer | |
CN113330712A (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 |