CN115473610B - 一种用于安全多方计算的数据编解码方法及求交方法 - Google Patents
一种用于安全多方计算的数据编解码方法及求交方法 Download PDFInfo
- Publication number
- CN115473610B CN115473610B CN202211411268.5A CN202211411268A CN115473610B CN 115473610 B CN115473610 B CN 115473610B CN 202211411268 A CN202211411268 A CN 202211411268A CN 115473610 B CN115473610 B CN 115473610B
- Authority
- CN
- China
- Prior art keywords
- hash
- decoding
- matrix
- value
- data
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
- H04L1/0016—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy involving special memory structures, e.g. look-up tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Abstract
本发明公开了一种用于安全多方计算的数据编解码方法及求交方法。它包括数据编码方法和数据解码方法;数据编码方法包括以下步骤:获取待编码的原始数据集V及其对应的解码参数集Y;采用基于图结构的编码算法对解码参数集Y、原始数据集V进行编码得到编码后的数据结构D;数据解码方法包括以下步骤:获取数据结构D以及解码参数集Y中的解码参数;采用基于图结构的解码算法计算解码参数在数据结构D上的解码结果,解码结果为解码参数在原始数据集V中对应的原始数据。本发明采用基于图结构的编解码算法对数据进行高效的编解码,计算速度快,通信时间短。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种用于安全多方计算的数据编解码方法及求交方法。
背景技术
随着安全多方计算技术的普及,隐匿查询、隐匿求交相关的技术快速发展,在保证安全的前提下,对于此类技术的性能要求也越来越高。其中使用编解码方案是一种比较通用的解决方法,但基于编解码的方案通信或计算复杂度较高,导致运行效率欠佳。
数据编解码方法常用于金融风控场景的各大关键安全多方计算过程中。在金融机构联合风控建模中,金融机构首先需要确认双方拥有的共同数据进行联邦学习建模,为了保护非共有数据的安全,通常需要使用隐匿求交、隐匿查询技术用于共同特征数据(如:身份证号、手机号等信息)的筛选,而隐匿求交、隐匿查询就需要使用数据编解码方法作为保证数据安全计算的关键核心。
现有隐匿查询、隐匿求交中使用的数据编解码方法一般采用拉格朗日差值多项式拟合的编解码方式或布隆过滤器的编解码方式。拉格朗日差值多项式拟合的编解码方式存在计算复杂度偏高的缺陷,布隆过滤器的编解码方式存在通信复杂度偏高的缺陷。
发明内容
本发明为了解决上述技术问题,提供了一种用于安全多方计算的数据编解码方法及求交方法,其采用基于图结构的编解码算法对数据进行高效的编解码,计算速度快,通信时间短。
为了解决上述问题,本发明采用以下技术方案予以实现:
本发明的一种用于安全多方计算的数据编解码方法,包括数据编码方法和数据解码方法;
所述数据编码方法包括以下步骤:
S1:获取待编码的原始数据集V及其对应的解码参数集Y,原始数据集V中的原始数据与解码参数集Y中的解码参数一一对应;
S2:采用基于图结构的编码算法对解码参数集Y、原始数据集V进行编码得到编码后的数据结构D;
所述数据解码方法包括以下步骤:
K1:获取数据结构D以及解码参数集Y中的解码参数;
K2:采用基于图结构的解码算法计算解码参数在数据结构D上的解码结果,解码结果为解码参数在原始数据集V中对应的原始数据。
作为优选,所述步骤S2包括以下步骤:
S21:设置一个具有2p个哈希地址的哈希表,2p个哈希地址依次编号为1、2……2p,p>n,n为解码参数集Y中的解码参数个数;
采用哈希函数H1将解码参数集Y中的所有解码参数映射到哈希表中对应的哈希地址,每个解码参数映射到1个哈希地址;
采用哈希函数H2将解码参数集Y中的所有解码参数映射到哈希表中对应的哈希地址,每个解码参数映射到1个哈希地址;
将每个解码参数与其映射的哈希地址用连接线连接,画出映射关系图;
S22:遍历映射关系图,如果映射关系图中有环结构,则执行步骤S23,否则执行步骤S25;
S23:找出所有环结构,将所有环结构中的解码参数依次编号并统计解码参数的总数k,采用哈希函数H3计算所有环结构中的解码参数对应的哈希值,计算出的哈希值的位数为a,构造一个k行q列的矩阵G,q=2k+a,根据每个解码参数的编号及其对应的哈希值中值为1的位将矩阵G中对应位置的值置1,矩阵G中其余位置的值置0;
构建一个q行1列的具有q个元素的矩阵H,将所有环结构中的解码参数对应的k个原始数据取出构成k行1列的矩阵E,设定矩阵G与矩阵H做模数为2的有限域矩阵乘法运算得到的结果为矩阵E,求解出矩阵H中的元素的值;
将所有环结构中的k个解码参数经过哈希函数H1映射到的哈希地址存储的值赋值为矩阵H中第1至k行元素中对应元素的值,将所有环结构中的k个解码参数经过哈希函数H2映射到的哈希地址存储的值赋值为矩阵H中第k+1至2k行元素中对应元素的值,取矩阵H中第2k+1至q行的a个元素构成新的矩阵F,将所有环结构中的解码参数替换为对应的原始数据;
S24:找出所有非环结构,采用哈希函数H3计算所有非环结构中的解码参数对应的哈希值,根据每个解码参数对应的哈希值中值为1的位找出矩阵F中对应的元素,将所有非环结构内的解码参数替换为对应的原始数据,计算出每个非环结构内的每个哈希地址存储的值,计算出的哈希表和矩阵F组成数据结构D,结束;
S25:找出所有非环结构,采用哈希函数H3计算所有非环结构中的解码参数对应的哈希值,计算出的哈希值的位数为a,构建一个a行1列的具有a个元素的矩阵F,矩阵F内的a个元素的值都为0,根据每个解码参数对应的哈希值中值为1的位找出矩阵F中对应的元素,将所有非环结构内的解码参数替换为对应的原始数据,计算出每个非环结构内的每个哈希地址存储的值,计算出的哈希表和矩阵F组成数据结构D,结束。
将解码参数集Y中的每个解码参数通过哈希函数H1映射到哈希表中对应的1个哈希地址,通过哈希函数H2映射到哈希表中对应的另一个哈希地址,将每个解码参数与其映射的两个哈希地址用连接线连接,得到映射关系图;
当映射关系图中存在构成闭环的环结构时,就需要先求解出环结构中的哈希地址应该存储的值,再将所有环结构中的解码参数替换为对应的原始数据,然后再求出其他没有构成闭环的非环结构中的哈希地址应该存储的值,最后将所有非环结构内的解码参数替换为对应的原始数据;
当映射关系图中不存在构成闭环的环结构时,直接求解出每个非环结构内的每个哈希地址存储的值;
最后得到的哈希表和矩阵F组成数据结构D。
作为优选,所述步骤S23中根据编号为i的解码参数的编号及其对应的哈希值中值为1的位将矩阵G中对应位置的值置1的方法包括以下步骤,1≤i≤k:
矩阵G为:
其中,Giw表示矩阵G中第i行第w列的值,1≤w≤q;
根据解码参数的编号i将矩阵G中的Gii、Gi(k+i)的值都置1;
如果编号为i的解码参数对应的哈希值中的第j位的值为1,则将矩阵G中的Gi(2k+j)的值置1,1≤j≤a。
作为优选,所述步骤S23中给所有环结构中的编号为i的解码参数经过哈希函数H1映射到的哈希地址存储的值赋值、经过哈希函数H2映射到的哈希地址存储的值赋值的具体步骤如下:
编号为i的解码参数经过哈希函数H1映射到的哈希地址的值赋值为矩阵H中第i行元素的值,编号为i的解码参数经过哈希函数H2映射到的哈希地址的值赋值为矩阵H中第k+i行元素的值。
作为优选,所述步骤S24中根据非环结构中的某个解码参数对应的哈希值中值为1的位找出矩阵F中对应的元素的方法如下:
确定该解码参数对应的哈希值中值为1的位,找出每个值为1的位在矩阵F中对应的元素,找出的所有元素就是该解码参数对应的元素;
如果该解码参数对应的哈希值中的第j位的值为1,则矩阵F的第j行元素为第j位对应的元素。
作为优选,所述步骤S24中计算出某个非环结构内的每个哈希地址存储的值的方法如下:
找出与环结构具有交集哈希地址的非环结构,这些非环结构内的其他每个哈希地址存储的值等于该哈希地址连接的原始数据、该原始数据连接的另一个哈希地址存储的值、该原始数据对应的解码参数在矩阵F中对应的所有元素的值做异或运算的结果;
找出与环结构没有交集哈希地址的非环结构,计算这些非环结构内的其他每个哈希地址存储的值的方法如下:
找出只连接一个原始数据的哈希地址,给该哈希地址存储的值赋值一个随机数,非环结构内的其他每个哈希地址存储的值等于该哈希地址连接的原始数据、该原始数据连接的另一个哈希地址存储的值、该原始数据对应的解码参数在矩阵F中对应的所有元素的值做异或运算的结果。
作为优选,所述步骤S25中计算出每个非环结构内的每个哈希地址存储的值的方法如下:
找出只连接一个原始数据的哈希地址,给该哈希地址存储的值赋值一个随机数,非环结构内的其他每个哈希地址存储的值等于该哈希地址连接的原始数据、该原始数据连接的另一个哈希地址存储的值、该原始数据对应的解码参数在矩阵F中对应的所有元素的值做异或运算的结果。
计算某个非环结构内的每个哈希地址存储的值时,先找出只连接一个原始数据的哈希地址,给该哈希地址存储的值赋值一个随机数,然后就可以计算出该原始数据连接的另一个哈希地址存储的值,然后根据计算出的这个哈希地址存储的值去计算与该哈希地址连接的另一个原始数据连接的另一个哈希地址存储的值,沿着这个非环结构如上述方式依次计算出这个非环结构内所有的哈希地址存储的值,不用像现有技术那样用高斯消元法解矩阵乘法去进行编解码,提高了计算速度,缩短了通信时间。
作为优选,所述步骤K2中采用基于图结构的解码算法计算某个解码参数在数据结构D上的解码结果的方法包括以下步骤:
采用哈希函数H1将该解码参数映射到哈希表中对应的哈希地址,取出该哈希地址存储的值A1;
采用哈希函数H2将该解码参数映射到哈希表中对应的哈希地址,取出该哈希地址存储的值A2;
采用哈希函数H3计算该解码参数对应的哈希值,根据哈希值中值为1的位找出矩阵F中对应的元素,将找出的所有对应的元素做异或运算得到值A3;
将A1、A2、A3进行异或运算得到解码结果。
只需要进行多个异或运算就能进行解码,解码速度快。
本发明的一种用于安全多方计算的数据求交方法,第一方持有数据集x,第二方持有数据集y,包括以下步骤:
F1:第二方将数据集y代入函数f(y)=v,计算出数据集v,将数据集y作为解码参数集Y,将数据集v作为原始数据集V,采用上述的数据编码方法对解码参数集Y、原始数据集V进行编码得到编码后的数据结构D;
F2:第二方将数据结构D、数据集v发送给第一方;
F3:第一方将数据集x作为解码参数集Y,根据数据结构D、数据集x采用上述的数据解码方法计算数据集x中的数据在数据结构D上的解码结果,将计算出的解码结果与数据集v中的数据求交集,得到的位于交集中的解码结果对应的数据集x中的数据就是第一方和第二方的交集数据。
在本方案中,第二方先用函数f(y)=v计算出数据集v,这样数据集y与数据集v就是一一对应关系,然后将数据集y作为解码参数集Y,将数据集v作为原始数据集V,采用上述的一种用于安全多方计算的数据编解码方法中的数据编码方法对解码参数集Y、原始数据集V进行编码得到编码后的数据结构D,将数据结构D、数据集v发送给第一方。
第一方则将数据集x作为解码参数集Y,这样数据集x中与数据集y交集的数据就是正确的解码参数,其在数据结构D上的解码结果位于数据集v中,数据集x中与数据集y不是交集的数据在数据结构D上的解码结果是不会在数据集v中的,这样只需要找出数据集x中哪些数据的解码结果位于数据集v中,这些解码结果对应的数据集x中的数据就是交集数据。由于本方案采用了上述的一种用于安全多方计算的数据编解码方法,比现有技术计算速度快,通信时间短。
本发明的有益效果是:采用基于图结构的编解码算法对数据进行高效的编解码,计算速度快,通信时间短。
附图说明
图1是实施例的流程图;
图2是举例的映射关系图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:本实施例的一种用于安全多方计算的数据编解码方法,如图1所示,包括数据编码方法和数据解码方法;
数据编码方法包括以下步骤:
S1:获取待编码的原始数据集V及其对应的解码参数集Y,V={V1,V2,…Vn},Y={Y1,Y2,…Yn},原始数据集V中的原始数据与解码参数集Y中的解码参数一一对应;
S2:采用基于图结构的编码算法对解码参数集Y、原始数据集V进行编码得到编码后的数据结构D;
数据解码方法包括以下步骤:
K1:获取数据结构D以及解码参数集Y中的解码参数;
K2:采用基于图结构的解码算法计算解码参数在数据结构D上的解码结果,解码结果为解码参数在原始数据集V中对应的原始数据。
步骤S2包括以下步骤:
S21:设置一个具有2p个哈希地址的哈希表,2p个哈希地址依次编号为1、2……2p,p≥1.2n,n为解码参数集Y中的解码参数个数;
采用哈希函数H1将解码参数集Y中的所有解码参数映射到哈希表中对应的哈希地址,每个解码参数映射到1个哈希地址;
采用哈希函数H2将解码参数集Y中的所有解码参数映射到哈希表中对应的哈希地址,每个解码参数映射到1个哈希地址;
将每个解码参数与其映射的两个哈希地址用连接线连接,画出映射关系图;
S22:遍历映射关系图,如果映射关系图中有环结构,则执行步骤S23,否则执行步骤S25;
S23:找出所有环结构,将所有环结构中的解码参数依次编号并统计解码参数的总数k,采用哈希函数H3计算所有环结构中的解码参数对应的哈希值,计算出的哈希值的位数为a,构造一个k行q列的矩阵G,q=2k+a,根据每个解码参数的编号及其对应的哈希值中值为1的位将矩阵G中对应位置的值置1,矩阵G中其余位置的值置0;
根据编号为i的解码参数的编号及其对应的哈希值中值为1的位将矩阵G中对应位置的值置1的方法包括以下步骤,1≤i≤k,k≤n:
矩阵G为:
其中,Giw表示矩阵G中第i行第w列的值,1≤w≤q;
根据解码参数的编号i将矩阵G中的Gii、Gi(k+i)的值都置1;
如果编号为i的解码参数对应的哈希值中的第j位的值为1,则将矩阵G中的Gi(2k+j)的值置1,1≤j≤a;
构建一个q行1列的具有q个元素的矩阵H,将所有环结构中的解码参数对应的k个原始数据取出构成k行1列的矩阵E,设定矩阵G与矩阵H做模数为2的有限域矩阵乘法运算得到的结果为矩阵E,求解出矩阵H中的q个元素的值;
矩阵H为:
矩阵E为:
其中,Ei表示矩阵E的第i行的值,Ei为编号为i的解码参数对应的原始数据;
将所有环结构中的k个解码参数经过哈希函数H1映射到的哈希地址存储的值赋值为矩阵H中第1至k行元素中对应元素的值,将所有环结构中的k个解码参数经过哈希函数H2映射到的哈希地址存储的值赋值为矩阵H中第k+1至2k行元素中对应元素的值,取矩阵H中第2k+1至q行的a个元素构成新的矩阵F,将所有环结构中的解码参数替换为对应的原始数据;
给所有环结构中的编号为i的解码参数经过哈希函数H1映射到的哈希地址存储的值赋值、经过哈希函数H2映射到的哈希地址存储的值赋值的具体步骤如下:
编号为i的解码参数经过哈希函数H1映射到的哈希地址的值赋值为矩阵H中第i行元素的值,编号为i的解码参数经过哈希函数H2映射到的哈希地址的值赋值为矩阵H中第k+i行元素的值;
S24:找出所有非环结构,采用哈希函数H3计算所有非环结构中的解码参数对应的哈希值,根据每个解码参数对应的哈希值中值为1的位找出矩阵F中对应的元素,将所有非环结构内的解码参数替换为对应的原始数据,计算出每个非环结构内的每个哈希地址存储的值,计算出的哈希表和矩阵F组成数据结构D,结束;
根据非环结构中的某个解码参数对应的哈希值中值为1的位找出矩阵F中对应的元素的方法如下:
确定该解码参数对应的哈希值中值为1的位,找出每个值为1的位在矩阵F中对应的元素,找出的所有元素就是该解码参数对应的元素;
如果该解码参数对应的哈希值中的第j位的值为1,则矩阵F的第j行元素为第j位对应的元素;
S25:找出所有非环结构,采用哈希函数H3计算所有非环结构中的解码参数对应的哈希值,计算出的哈希值的位数为a,构建一个a行1列的具有a个元素的矩阵F,矩阵F内的a个元素的值都为0,根据每个解码参数对应的哈希值中值为1的位找出矩阵F中对应的元素,将所有非环结构内的解码参数替换为对应的原始数据,计算出每个非环结构内的每个哈希地址存储的值,计算出的哈希表和矩阵F组成数据结构D,结束。
步骤S24中计算出某个非环结构内的每个哈希地址存储的值的方法如下:
找出与环结构具有交集哈希地址的非环结构,这些非环结构内的其他每个哈希地址存储的值等于该哈希地址连接的原始数据、该原始数据连接的另一个哈希地址存储的值、该原始数据对应的解码参数在矩阵F中对应的所有元素的值做异或运算的结果;
找出与环结构没有交集哈希地址的非环结构,计算这些非环结构内的其他每个哈希地址存储的值的方法如下:
找出只连接一个原始数据的哈希地址,给该哈希地址存储的值赋值一个随机数,非环结构内的其他每个哈希地址存储的值等于该哈希地址连接的原始数据、该原始数据连接的另一个哈希地址存储的值、该原始数据对应的解码参数在矩阵F中对应的所有元素的值做异或运算的结果。
步骤S25中计算出每个非环结构内的每个哈希地址存储的值的方法如下:
找出只连接一个原始数据的哈希地址,给该哈希地址存储的值赋值一个随机数,非环结构内的其他每个哈希地址存储的值等于该哈希地址连接的原始数据、该原始数据连接的另一个哈希地址存储的值、该原始数据对应的解码参数在矩阵F中对应的所有元素的值做异或运算的结果。
步骤K2中采用基于图结构的解码算法计算某个解码参数在数据结构D上的解码结果的方法包括以下步骤:
采用哈希函数H1将该解码参数映射到哈希表中对应的哈希地址,取出该哈希地址存储的值A1;
采用哈希函数H2将该解码参数映射到哈希表中对应的哈希地址,取出该哈希地址存储的值A2;
采用哈希函数H3计算该解码参数对应的哈希值,根据哈希值中值为1的位找出矩阵F中对应的元素,将找出的所有对应的元素做异或运算得到值A3;
将A1、A2、A3进行异或运算得到解码结果。
在本方案中,数据编码时,将解码参数集Y中的每个解码参数通过哈希函数H1映射到哈希表中对应的1个哈希地址,通过哈希函数H2映射到哈希表中对应的另一个哈希地址,将每个解码参数与其映射的两个哈希地址用连接线连接,得到映射关系图。
当映射关系图中存在构成闭环的环结构时,就需要先求解出环结构中的哈希地址应该存储的值,求解环结构时,采用哈希函数H3计算所有环结构中的解码参数对应的哈希值,接着,构造一个k行q列的矩阵G,k是所有环结构中的解码参数的总数值,q=2k+a,a是采用哈希函数H3计算出的解码参数对应的哈希值的位数,这样就可以将解码参数的编号与矩阵G的行数一一对应,将解码参数对应的哈希值的每一位与矩阵G的对应行的最后a位一一对应,然后根据解码参数的编号及其对应的哈希值中值为1的位将矩阵G中对应位置的值置1;
以编号为i的解码参数为例,需要将矩阵G第i行第i列的值、第i行第k+i列的值置1,然后根据编号为i的解码参数对应的哈希值中值为1的位,将矩阵G第i行后a位中对应位置1,如果哈希值中第j位的值为1,则矩阵G第i行第2k+j列的值置1;
然后,构建一个q行1列的具有q个元素的矩阵H,将所有环结构中的解码参数对应的k个原始数据取出构成k行1列的矩阵E,设定矩阵G与矩阵H做模数为2的有限域矩阵乘法运算得到的结果为矩阵E,求解出矩阵H中的q个元素的值;
矩阵G与矩阵H做模数为2的有限域矩阵乘法运算得到的结果为矩阵E,就是将矩阵G的每一行分别与矩阵H做一次运算,得到的值等于矩阵E对应一行的值,例如,矩阵G的第i行与矩阵H做一次运算得到的结构等于矩阵E的第i行的值的表达式如下:
Gi1*H1⊕Gi2*H2⊕Gi3*H3⊕……⊕Gi(q-1)*Hq-1⊕Giq*Hq= Ei;
由于矩阵G中的值是1或0,实质上根据编号为i的解码参数及其对应的哈希值中值为1的位挑选出矩阵H中对应的元素,使这些元素进行异或运算的值等于矩阵E中第i行的值;
另外,由于每个编号的解码参数在矩阵G中对应行的前2k列中都只有2个对应位置的值为1,如上述表达式中编号为i的解码参数在矩阵G中第i行的前2k列只有Gii、Gi(k+i)的值置1,所以矩阵H中的Hi、Hk+i的值与编号为i的解码参数对应,而每个解码参数都要经过哈希函数H1、哈希函数H2处理映射到2个哈希地址,所以将这两个哈希地址存储的值赋值为解码参数对应的矩阵H中的2个值。这样编号为i的解码参数经过哈希函数H1、哈希函数H2处理映射到2个哈希地址存储的值就是矩阵H中对应的2个值,
编号为i的解码参数经过哈希函数H3处理得到的哈希值的值为1的位与矩阵H中第2k+1至q行中对应位置的值对应,而矩阵H中第2k+1至q行的a个元素构成新的矩阵F,这样在解码时,将解码参数经过哈希函数H1、哈希函数H2处理找到对应的2个哈希地址存储的值,在将解码参数经过哈希函数H3处理计算出哈希值,根据哈希值的值为1的位从矩阵F中找出对应的值,然后将这些值都进行异或,得到的结构就是编号为i的解码参数对应的原始数据Ei,跟上述表达式一致。
再将所有环结构中的解码参数替换为对应的原始数据,然后再求出其他没有构成闭环的非环结构中的哈希地址应该存储的值,最后将所有非环结构内的解码参数替换为对应的原始数据。
当映射关系图中不存在构成闭环的环结构时,直接求解出每个非环结构内的每个哈希地址存储的值。计算某个非环结构内的每个哈希地址存储的值时,先找出只连接一个原始数据的哈希地址,给该哈希地址存储的值赋值一个随机数,然后就可以计算出该原始数据连接的另一个哈希地址存储的值,然后根据计算出的这个哈希地址存储的值去计算与该哈希地址连接的另一个原始数据连接的另一个哈希地址存储的值,沿着这个非环结构如上述方式依次计算出这个非环结构内所有的哈希地址存储的值,不用像现有技术那样用高斯消元法解矩阵乘法去进行编解码,提高了计算速度,缩短了通信时间。
最后得到的哈希表和矩阵F组成数据结构D。
本方法就是在数据编码时先构建映射关系图,然后找出环结构,先计算出环结构,求解环结构过程中求解出矩阵H中的q个元素的值的计算复杂度与现有的数据编码方式一致,而后续的求解非环结构时由于只需进行异或运算,大大提高了计算速度,之后解码时,只需要进行3个哈希运算找出对应的值后进行异或运算就能进行解码,解码速度快。
举例说明:
数据编码的方法如下:
原始数据集V={V1,V2,V3,V4,V5},解码参数集Y={Y1,Y2,Y3,Y4,Y5},哈希表中有12个哈希地址分别为:d1、d2、d3……d12。
采用哈希函数H1将解码参数集Y中的所有解码参数映射到哈希表中对应的哈希地址,每个解码参数映射到1个哈希地址;
采用哈希函数H2将解码参数集Y中的所有解码参数映射到哈希表中对应的哈希地址,每个解码参数映射到1个哈希地址;
将每个解码参数与其映射的两个哈希地址用连接线连接,画出映射关系图,如图2所示,从图2中可以看出存在1个环结构和1个非环结构,环结构为:Y2—d3—Y3—d7—Y5—d9—Y2,非环结构为:d1—Y1—d6—Y4—d4。
先求解环结构,方法如下:
将Y2、Y3、Y5依次编号为1、2、3,采用哈希函数H3计算Y2对应的哈希值、Y3对应的哈希值、Y5对应的哈希值,这里举例:Y2对应的哈希值为101101,Y3对应的哈希值为011001,Y5对应的哈希值为110010;
环结构中解码参数的总数k=3,哈希值的位数为a=6,q=2k+a=12,所以构造一个3行12列矩阵G,根据每个解码参数的编号及其对应的哈希值中值为1的位将矩阵G中对应位置的值置1,得到矩阵G如下:
构建一个12行1列的具有12个元素的矩阵H,矩阵H如下:
将环结构中的解码参数对应的3个原始数据V2、V3、V5取出构成3行1列的矩阵E,矩阵E如下:
设定矩阵G与矩阵H做模数为2的有限域矩阵乘法运算得到的结果为矩阵E,可分解出如下3个公式:
1*H1⊕1*H4⊕1*H7⊕1*H9⊕1*H10⊕1*H12= V2;
1*H2⊕1*H5⊕1*H7⊕1*H10⊕1*H11 = V3;
1*H3⊕1*H6⊕1*H8⊕1*H11⊕1*H12 = V5;
采用高斯消元法求解出矩阵H中的12个元素的值。
将Y2经过哈希函数H1映射到的哈希地址d3存储的值赋值为H1,
将Y3经过哈希函数H1映射到的哈希地址d7存储的值赋值为H2,
将Y5经过哈希函数H1映射到的哈希地址d9存储的值赋值为H3,
将Y2经过哈希函数H2映射到的哈希地址d9存储的值赋值为H4,
将Y3经过哈希函数H2映射到的哈希地址d3存储的值赋值为H5,
将Y5经过哈希函数H2映射到的哈希地址d7存储的值赋值为H6,
由于上述公式求解出来的H1=H5,H2=H6,H3=H4,所以重复赋值后哈希地址存储的值不变。
取矩阵H中第7至12行的6个元素构成新的矩阵F,矩阵F如下:
将环结构中的解码参数Y2、Y3、Y5替换为对应的原始数据V2、V3、V5。
接着,求解非环结构,方法如下:
采用哈希函数H3计算Y1对应的哈希值、Y4对应的哈希值,这里举例:Y1对应的哈希值为010101,Y4对应的哈希值为011000;
根据Y1对应的哈希值010101找出矩阵F中与V1对应的元素H7、H9、H11,
根据Y4对应的哈希值011000找出矩阵F中与V4对应的元素H10、H11,
将非环结构内的解码参数Y1、Y4替换为对应的原始数据V1、V4。
由于非环结构与与环结构没有交集,找出只连接一个原始数据的哈希地址d1,给哈希地址d1存储的值赋值一个随机数r1,
哈希地址d6存储的值= V1⊕r1⊕H7⊕H9⊕H11=g1,
哈希地址d4存储的值= V4⊕g1⊕H10⊕H11。
最后,将得到的哈希表和矩阵F组成数据结构D,结束。
数据解码的方法如下:
以解码参数Y2为例,采用哈希函数H1将解码参数Y2映射到哈希表中的哈希地址d3,取出哈希地址d3存储的值H5,A1= H5;
采用哈希函数H2将解码参数Y2映射到哈希表中的哈希地址d9,取出哈希地址d9存储的值H4,A2= H4;
采用哈希函数H3计算出解码参数Y2对应的哈希值101101,根据哈希值101101中值为1的位找出矩阵F中对应的元素H7、H9、H10、H12,A3= H7⊕H9⊕H10⊕H12;
所以解码参数Y2在数据结构D上的解码结果= H5⊕H4⊕H7⊕H9⊕H10⊕H12,由于H1=H5,所以解码结果等于V2,结果正确。
对于映射关系图中没有环结构的情况:
如果映射关系图中没有环结构,则无需进行求解环结构的步骤,直接求解每个非环结构就可以。求解每个非环结构时,同样引入矩阵F,矩阵F内的元素都置0,这样便于没有环结构情况的编码解码也都用到哈希函数H3,与有环结构的情况的解码方法统一。
例如,假设图2映射关系图中如果没有环结构,只有非环结构为:d1—Y1—d6—Y4—d4,编码时,只需要先找出只连接一个原始数据的哈希地址,如哈希地址d1,给哈希地址d1存储的值赋值一个随机数r1,由于矩阵F内的元素都置0,哈希地址d6存储的值= r1⊕V1=g2。
以解码参数Y1为例,
采用哈希函数H1将解码参数Y1映射到哈希表中的哈希地址d1,取出哈希地址d1存储的值r1,A1= r1;
采用哈希函数H2将解码参数Y1映射到哈希表中的哈希地址d6,取出哈希地址d6存储的值g2,A2= g2;
采用哈希函数H3计算出解码参数Y1对应的哈希值010101,根据哈希值010101中值为1的位找出矩阵F中对应的元素F1、F3、F5,由于F1、F3、F5都为0,所以A3=0;
所以解码参数Y1在数据结构D上的解码结果=r1⊕g2=V1,结果正确。
本实施例的一种用于安全多方计算的数据求交方法,第一方持有数据集x,第二方持有数据集y,包括以下步骤:
F1:第二方将数据集y代入函数f(y)=v,计算出数据集v,将数据集y作为解码参数集Y,将数据集v作为原始数据集V,采用上述的数据编码方法对解码参数集Y、原始数据集V进行编码得到编码后的数据结构D;
F2:第二方将数据结构D、数据集v发送给第一方;
F3:第一方将数据集x作为解码参数集Y,根据数据结构D、数据集x采用上述的数据解码方法计算数据集x中的数据在数据结构D上的解码结果,将计算出的解码结果与数据集v中的数据求交集,得到的位于交集中的解码结果对应的数据集x中的数据就是第一方和第二方的交集数据。
在本方案中,第二方先用函数f(y)=v计算出数据集v,这样数据集y与数据集v就是一一对应关系,然后将数据集y作为解码参数集Y,将数据集v作为原始数据集V,采用上述的一种用于安全多方计算的数据编解码方法中的数据编码方法对解码参数集Y、原始数据集V进行编码得到编码后的数据结构D,将数据结构D、数据集v发送给第一方。
第一方则将数据集x作为解码参数集Y,这样数据集x中与数据集y交集的数据就是正确的解码参数,其在数据结构D上的解码结果位于数据集v中,数据集x中与数据集y不是交集的数据在数据结构D上的解码结果是不会在数据集v中的,这样只需要找出数据集x中哪些数据的解码结果位于数据集v中,这些解码结果对应的数据集x中的数据就是交集数据。由于本方案采用了上述的一种用于安全多方计算的数据编解码方法,比现有技术计算速度快,通信时间短。
例如:
数据集x={x1,x2,x3,x4,x5},数据集y={y1,y2,y3,y4,y5},数据集v={v1,v2,v3,v4,v5},
第二方将数据集y作为解码参数集Y,将数据集v作为原始数据集V,采用上述的数据编码方法对解码参数集Y、原始数据集V进行编码得到编码后的数据结构D,第二方将数据结构D、数据集v发送给第一方;
如果x1= y1,则x1在数据结构D上的解码结果为v1,由于v1存在于数据集v中,所以x1是第一方和第二方的交集数据,同理可以找出数据集x中所有与数据集y的交集数据。
Claims (7)
1.一种用于安全多方计算的数据编解码方法,其特征在于,包括数据编码方法和数据解码方法;
所述数据编码方法包括以下步骤:
S1:获取待编码的原始数据集V及其对应的解码参数集Y,原始数据集V中的原始数据与解码参数集Y中的解码参数一一对应;
S2:采用基于图结构的编码算法对解码参数集Y、原始数据集V进行编码得到编码后的数据结构D;
所述数据解码方法包括以下步骤:
K1:获取数据结构D以及解码参数集Y中的解码参数;
K2:采用基于图结构的解码算法计算解码参数在数据结构D上的解码结果,解码结果为解码参数在原始数据集V中对应的原始数据;
所述步骤S2包括以下步骤:
S21:设置一个具有2p个哈希地址的哈希表,2p个哈希地址依次编号为1、2……2p,p>n,n为解码参数集Y中的解码参数个数;
采用哈希函数H1将解码参数集Y中的所有解码参数映射到哈希表中对应的哈希地址,每个解码参数映射到1个哈希地址;
采用哈希函数H2将解码参数集Y中的所有解码参数映射到哈希表中对应的哈希地址,每个解码参数映射到1个哈希地址;
将每个解码参数与其映射的哈希地址用连接线连接,画出映射关系图;
S22:遍历映射关系图,如果映射关系图中有环结构,则执行步骤S23,否则执行步骤S25;
S23:找出所有环结构,将所有环结构中的解码参数依次编号并统计解码参数的总数k,采用哈希函数H3计算所有环结构中的解码参数对应的哈希值,计算出的哈希值的位数为a,构造一个k行q列的矩阵G,q=2k+a,根据每个解码参数的编号及其对应的哈希值中值为1的位将矩阵G中对应位置的值置1,矩阵G中其余位置的值置0;
构建一个q行1列的具有q个元素的矩阵H,将所有环结构中的解码参数对应的k个原始数据取出构成k行1列的矩阵E,设定矩阵G与矩阵H做模数为2的有限域矩阵乘法运算得到的结果为矩阵E,求解出矩阵H中的元素的值;
将所有环结构中的k个解码参数经过哈希函数H1映射到的哈希地址存储的值赋值为矩阵H中第1至k行元素中对应元素的值,将所有环结构中的k个解码参数经过哈希函数H2映射到的哈希地址存储的值赋值为矩阵H中第k+1至2k行元素中对应元素的值,取矩阵H中第2k+1至q行的a个元素构成新的矩阵F,将所有环结构中的解码参数替换为对应的原始数据;
S24:找出所有非环结构,采用哈希函数H3计算所有非环结构中的解码参数对应的哈希值,根据每个解码参数对应的哈希值中值为1的位找出矩阵F中对应的元素,将所有非环结构内的解码参数替换为对应的原始数据,计算出每个非环结构内的每个哈希地址存储的值,计算出的哈希表和矩阵F组成数据结构D,结束;
S25:找出所有非环结构,采用哈希函数H3计算所有非环结构中的解码参数对应的哈希值,计算出的哈希值的位数为a,构建一个a行1列的具有a个元素的矩阵F,矩阵F内的a个元素的值都为0,根据每个解码参数对应的哈希值中值为1的位找出矩阵F中对应的元素,将所有非环结构内的解码参数替换为对应的原始数据,计算出每个非环结构内的每个哈希地址存储的值,计算出的哈希表和矩阵F组成数据结构D,结束;
所述步骤K2中采用基于图结构的解码算法计算某个解码参数在数据结构D上的解码结果的方法包括以下步骤:
采用哈希函数H1将该解码参数映射到哈希表中对应的哈希地址,取出该哈希地址存储的值A1;
采用哈希函数H2将该解码参数映射到哈希表中对应的哈希地址,取出该哈希地址存储的值A2;
采用哈希函数H3计算该解码参数对应的哈希值,根据哈希值中值为1的位找出矩阵F中对应的元素,将找出的所有对应的元素做异或运算得到值A3;
将A1、A2、A3进行异或运算得到解码结果。
3.根据权利要求1或2所述的一种用于安全多方计算的数据编解码方法,其特征在于,所述步骤S23中给所有环结构中的编号为i的解码参数经过哈希函数H1映射到的哈希地址存储的值赋值、经过哈希函数H2映射到的哈希地址存储的值赋值的具体步骤如下:
编号为i的解码参数经过哈希函数H1映射到的哈希地址的值赋值为矩阵H中第i行元素的值,编号为i的解码参数经过哈希函数H2映射到的哈希地址的值赋值为矩阵H中第k+i行元素的值。
4.根据权利要求1或2所述的一种用于安全多方计算的数据编解码方法,其特征在于,所述步骤S24中根据非环结构中的某个解码参数对应的哈希值中值为1的位找出矩阵F中对应的元素的方法如下:
确定该解码参数对应的哈希值中值为1的位,找出每个值为1的位在矩阵F中对应的元素,找出的所有元素就是该解码参数对应的元素;
如果该解码参数对应的哈希值中的第j位的值为1,则矩阵F的第j行元素为第j位对应的元素。
5.根据权利要求4所述的一种用于安全多方计算的数据编解码方法,其特征在于,所述步骤S24中计算出某个非环结构内的每个哈希地址存储的值的方法如下:
找出与环结构具有交集哈希地址的非环结构,这些非环结构内的其他每个哈希地址存储的值等于该哈希地址连接的原始数据、该原始数据连接的另一个哈希地址存储的值、该原始数据对应的解码参数在矩阵F中对应的所有元素的值做异或运算的结果;
找出与环结构没有交集哈希地址的非环结构,计算这些非环结构内的其他每个哈希地址存储的值的方法如下:
找出只连接一个原始数据的哈希地址,给该哈希地址存储的值赋值一个随机数,非环结构内的其他每个哈希地址存储的值等于该哈希地址连接的原始数据、该原始数据连接的另一个哈希地址存储的值、该原始数据对应的解码参数在矩阵F中对应的所有元素的值做异或运算的结果。
6.根据权利要求1所述的一种用于安全多方计算的数据编解码方法,其特征在于,所述步骤S25中计算出每个非环结构内的每个哈希地址存储的值的方法如下:
找出只连接一个原始数据的哈希地址,给该哈希地址存储的值赋值一个随机数,非环结构内的其他每个哈希地址存储的值等于该哈希地址连接的原始数据、该原始数据连接的另一个哈希地址存储的值、该原始数据对应的解码参数在矩阵F中对应的所有元素的值做异或运算的结果。
7.一种用于安全多方计算的数据求交方法,第一方持有数据集x,第二方持有数据集y,其特征在于,包括以下步骤:
F1:第二方将数据集y代入函数f(y)=v,计算出数据集v,将数据集y作为解码参数集Y,将数据集v作为原始数据集V,采用权利要求1所述的数据编码方法对解码参数集Y、原始数据集V进行编码得到编码后的数据结构D;
F2:第二方将数据结构D、数据集v发送给第一方;
F3:第一方将数据集x作为解码参数集Y,根据数据结构D、数据集x采用权利要求1所述的数据解码方法计算数据集x中的数据在数据结构D上的解码结果,将计算出的解码结果与数据集v中的数据求交集,得到的位于交集中的解码结果对应的数据集x中的数据就是第一方和第二方的交集数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211411268.5A CN115473610B (zh) | 2022-11-11 | 2022-11-11 | 一种用于安全多方计算的数据编解码方法及求交方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211411268.5A CN115473610B (zh) | 2022-11-11 | 2022-11-11 | 一种用于安全多方计算的数据编解码方法及求交方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115473610A CN115473610A (zh) | 2022-12-13 |
CN115473610B true CN115473610B (zh) | 2023-03-24 |
Family
ID=84338261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211411268.5A Active CN115473610B (zh) | 2022-11-11 | 2022-11-11 | 一种用于安全多方计算的数据编解码方法及求交方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115473610B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5861922A (en) * | 1992-09-16 | 1999-01-19 | Fujitsu Ltd. | Image data coding and restoring method and apparatus for coding and restoring the same |
CN110909027A (zh) * | 2019-10-17 | 2020-03-24 | 宁波大学 | 一种哈希检索方法 |
CN111625534A (zh) * | 2020-04-09 | 2020-09-04 | 中国人民解放军战略支援部队信息工程大学 | 用于哈希运算的数据结构及基于该结构的哈希表存储、查询方法 |
CN112925934A (zh) * | 2021-01-20 | 2021-06-08 | 同济大学 | 基于哈希编码的相似图像检索方法、系统、设备及介质 |
WO2022023739A1 (en) * | 2020-07-28 | 2022-02-03 | V-Nova International Ltd | Integrating a decoder for hierachical video coding |
CN114239074A (zh) * | 2022-02-25 | 2022-03-25 | 蓝象智联(杭州)科技有限公司 | 一种不暴露中间结果的私有数据隐匿求交方法 |
CN114510368A (zh) * | 2022-01-17 | 2022-05-17 | 杭州加速科技有限公司 | 一种基于rs纠删码的编解码加速方法及系统 |
CN114661680A (zh) * | 2022-05-25 | 2022-06-24 | 蓝象智联(杭州)科技有限公司 | 一种私有数据隐匿共享方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101421729A (zh) * | 2006-03-03 | 2009-04-29 | 奥多比公司 | 有效表示和搜索数据库中的有向无环图结构的系统和方法 |
US8406553B2 (en) * | 2009-07-17 | 2013-03-26 | Microsoft Corporation | Poisson disk sample maps |
JP2011205705A (ja) * | 2011-07-11 | 2011-10-13 | Fujitsu Ltd | データ転送方法及び、これを適用する通信システム及びプログラム |
JP6351313B2 (ja) * | 2013-07-11 | 2018-07-04 | キヤノン株式会社 | 画像符号化装置、画像復号装置、画像処理装置、並びにそれらの制御方法 |
CN111078460B (zh) * | 2019-11-18 | 2020-08-25 | 北京中电兴发科技有限公司 | 一种快速纠删码计算方法 |
CN111078911B (zh) * | 2019-12-13 | 2022-03-22 | 宁波大学 | 一种基于自编码器的无监督哈希方法 |
CN112131471B (zh) * | 2020-09-23 | 2023-10-20 | 平安国际智慧城市科技股份有限公司 | 基于无权无向图进行关系推荐的方法、装置、设备及介质 |
-
2022
- 2022-11-11 CN CN202211411268.5A patent/CN115473610B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5861922A (en) * | 1992-09-16 | 1999-01-19 | Fujitsu Ltd. | Image data coding and restoring method and apparatus for coding and restoring the same |
CN110909027A (zh) * | 2019-10-17 | 2020-03-24 | 宁波大学 | 一种哈希检索方法 |
CN111625534A (zh) * | 2020-04-09 | 2020-09-04 | 中国人民解放军战略支援部队信息工程大学 | 用于哈希运算的数据结构及基于该结构的哈希表存储、查询方法 |
WO2022023739A1 (en) * | 2020-07-28 | 2022-02-03 | V-Nova International Ltd | Integrating a decoder for hierachical video coding |
CN112925934A (zh) * | 2021-01-20 | 2021-06-08 | 同济大学 | 基于哈希编码的相似图像检索方法、系统、设备及介质 |
CN114510368A (zh) * | 2022-01-17 | 2022-05-17 | 杭州加速科技有限公司 | 一种基于rs纠删码的编解码加速方法及系统 |
CN114239074A (zh) * | 2022-02-25 | 2022-03-25 | 蓝象智联(杭州)科技有限公司 | 一种不暴露中间结果的私有数据隐匿求交方法 |
CN114661680A (zh) * | 2022-05-25 | 2022-06-24 | 蓝象智联(杭州)科技有限公司 | 一种私有数据隐匿共享方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115473610A (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhu et al. | Deep leakage from gradients | |
CN104521177B (zh) | 使用单次注册用于基于存储器的puf的软判决误差校正 | |
CN104064193B (zh) | 一种线性预测语音编码的信息隐藏方法与提取方法 | |
CN109658078A (zh) | 基于生物特征的区块链私钥生成方法、装置及介质 | |
CN106131139A (zh) | 一种云关系数据库的浮点数据的加密及查询方法 | |
CN107181600A (zh) | 一种密码登录认证方法、系统及用户设备和认证服务器 | |
CN115865953B (zh) | 一种基于跨境支付的分布式存储系统 | |
CN111179144A (zh) | 一种多进制秘密信息多次嵌入的高效信息隐藏方法 | |
CN115242371A (zh) | 差分隐私保护的集合交集及其基数计算方法、装置及系统 | |
CN113255007A (zh) | 一种安全隐匿三要素查询方法 | |
CN104598801B (zh) | 一种基于算法重构的动态二维码生成方法 | |
CN104376307A (zh) | 一种指纹图像信息编码方法 | |
CN115473610B (zh) | 一种用于安全多方计算的数据编解码方法及求交方法 | |
CN112019354B (zh) | 一种基于生成式对抗网络的口令遍历装置及方法 | |
CN108804933B (zh) | 一种用于信息隐藏技术中的大数据的进制转换方法 | |
CN107248914B (zh) | 一种iOS设备上新型对称加密系统及加密方法 | |
CN110957003B (zh) | 一种面向用户隐私保护的高效基因比对方法 | |
CN115760126A (zh) | 一种金融交易信息加密方法 | |
CN116662388A (zh) | 一种高效的隐匿查询方法和系统 | |
CN111737713A (zh) | 基于可视密码的二维码秘密共享方法 | |
CN109450460A (zh) | 一种rs码与卷积码的级联码的参数识别方法 | |
CN107609059B (zh) | 一种基于j-w距离的中文域名相似度量方法 | |
CN112364319B (zh) | 一种基于二叉树混洗的生物特征模板保护方法及装置 | |
CN110708160B (zh) | 基于sm2算法标量乘法编码的抗侧信道攻击方法及系统 | |
CN112422273A (zh) | 一种基于比特自检puf的无偏响应去偏结构及生成方法 |
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 |