G06F21/62 G06F21/60
1.一种私有数据交集获取方法,其特征在于,包括:
A.获取同态算法的公钥以及来自申请方的第一加密数据集,所述第一加密数据集为所述申请方利用所述公钥对所述申请方的第一原始私有数据加密得到的;
B.向被申请方发送加密请求,所述加密请求包括所述公钥,以使所述被申请方利用所述公钥对所述被申请方的第二原始私有数据进行加密,得到第二加密数据集;
C.获取所述第二加密数据集,并生成随机数,所述随机数不为0;
D.按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,以及各个差值与所述随机数的第一乘积,以得到计算结果集;
E.将所述计算结果集发送至所述申请方,以使得所述申请方根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
2.根据权利要求1所述的私有数据交集获取方法,其特征在于,步骤A进一步包括:
A1.接收所述申请方发送的所述公钥;
或者,A2.接收所述申请方发送的公钥地址,并从所述公钥地址指向的存储空间获取所述公钥;
或者,A3.接收第三方发送的所述公钥或所述公钥地址。
3.根据权利要求1所述的私有数据交集获取方法,其特征在于,步骤A进一步包括:
A4.接收所述申请方发送的所述第一加密数据集;
或者,A5.接收所述申请方发送的数据地址,并从所述数据地址指向的存储空间获取所述第一加密数据集。
4.根据权利要求1所述的私有数据交集获取方法,其特征在于,步骤C进一步包括:
C1.确定所述第一加密数据集中数据的数量,以作为第一数量;
C2.确定所述第二加密数据集中数据的数量,以作为第二数量;
C3.计算所述第一数量和所述第二数量的第二乘积,并生成数量为所述乘积的随机数。
5.根据权利要求4所述的私有数据交集获取方法,其特征在于,步骤D进一步包括:
D1.按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,所述差值的数量为所述第二乘积;
D2.将数量为所述第二乘积的差值与数量为所述第二乘积的随机数进行乘法运算,以得到所述第一乘积。
6.一种计算设备,其特征在于,所述计算设备包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:
A.获取同态算法的公钥以及来自申请方的第一加密数据集,所述第一加密数据集为所述申请方利用所述公钥对所述申请方的第一原始私有数据加密得到的;
B.向被申请方发送加密请求,所述加密请求包括所述公钥,以使所述被申请方利用所述公钥对所述被申请方的第二原始私有数据进行加密,得到第二加密数据集;
C.获取所述第二加密数据集,并生成随机数,所述随机数不为0;
D.按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,以及各个差值与所述随机数的第一乘积,以得到计算结果集;
E.将所述计算结果集发送至所述申请方,以使得所述申请方根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
7.根据权利要求6所述的计算设备,其特征在于,所述处理器运行所述计算机指令执行步骤A时还可以执行以下步骤:
A1.接收所述申请方发送的所述公钥;
或者,A2.接收所述申请方发送的公钥地址,并从所述公钥地址指向的存储空间获取所述公钥;
或者,A3.接收第三方发送的所述公钥或所述公钥地址。
8.根据权利要求6所述的计算设备,其特征在于,所述处理器运行所述计算机指令执行步骤A时还可以执行以下步骤:
A4.接收所述申请方发送的所述第一加密数据集;
或者,A5.接收所述申请方发送的数据地址,并从所述数据地址指向的存储空间获取所述第一加密数据集。
9.根据权利要求6所述的计算设备,其特征在于,所述处理器运行所述计算机指令执行步骤C时还可以执行以下步骤:
C1.确定所述第一加密数据集中数据的数量,以作为第一数量;
C2.确定所述第二加密数据集中数据的数量,以作为第二数量;
C3.计算所述第一数量和所述第二数量的第二乘积,并生成数量为所述乘积的随机数。
10.根据权利要求9所述的计算设备,其特征在于,所述处理器运行所述计算机指令执行步骤D时还可以执行以下步骤:
D1.按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,所述差值的数量为所述第二乘积;
D2.将数量为所述第二乘积的差值与数量为所述第二乘积的随机数进行乘法运算,以得到所述第一乘积。
11.一种私有数据交集获取方法,其特征在于,包括:
A.利用同态算法的公钥对第一原始私有数据加密,以得到第一加密数据集;
B.将所述第一加密数据集或者所述第一加密数据集的数据地址发送至智能合约,以供所述智能合约获取所述公钥以及所述第一加密数据集,向被申请方发送加密请求所述加密请求包括所述公钥,以使所述被申请方利用所述公钥对所述被申请方的第二原始私有数据进行加密,得到第二加密数据集,获取所述第二加密数据集,并生成随机数,按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,以及各个差值与所述随机数的第一乘积,以得到计算结果集;
C.接收所述计算结果集,并根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
12.根据权利要求11所述的私有数据交集获取方法,其特征在于,步骤B之后还包括:
将所述公钥或公钥地址发送至所述智能合约,以供所述智能合约从所述公钥地址指向的存储空间获取所述公钥。
13.一种计算设备,其特征在于,所述计算设备包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:
A.利用同态算法的公钥对第一原始私有数据加密,以得到第一加密数据集;
B.将所述第一加密数据集或者所述第一加密数据集的数据地址发送至智能合约,以供所述智能合约获取所述公钥以及所述第一加密数据集,向被申请方发送加密请求所述加密请求包括所述公钥,以使所述被申请方利用所述公钥对所述被申请方的第二原始私有数据进行加密,得到第二加密数据集,获取所述第二加密数据集,并生成随机数,按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,以及各个差值与所述随机数的第一乘积,以得到计算结果集;
C.接收所述计算结果集,并根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
14.根据权利要求13所述的计算设备,其特征在于,所述处理器运行所述计算机指令执行步骤B之后时还可以执行以下步骤:
将所述公钥或公钥地址发送至所述智能合约,以供所述智能合约从所述公钥地址指向的存储空间获取所述公钥。
15.一种私有数据交集获取方法,其特征在于,包括:
A.接收来自智能合约的加密请求,所述加密请求包括同态算法的公钥;
B.利用所述公钥对第二原始私有数据进行加密,得到第二加密数据集;
C.将所述第二加密数据集或者所述第二加密数据集的数据地址发送至所述智能合约,所述智能合约还获取所述公钥以及来自申请方的第一加密数据集,所述第一加密数据集为所述申请方利用所述公钥对所述申请方的第一原始私有数据加密得到的,按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,以及各个差值与所述随机数的第一乘积,以得到计算结果集,将所述计算结果集发送至所述申请方,以使得所述申请方根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
16.一种计算设备,其特征在于,所述计算设备包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:
A.接收来自智能合约的加密请求,所述加密请求包括同态算法的公钥;
B.利用所述公钥对第二原始私有数据进行加密,得到第二加密数据集;
C.将所述第二加密数据集或者所述第二加密数据集的数据地址发送至所述智能合约,所述智能合约还获取所述公钥以及来自申请方的第一加密数据集,所述第一加密数据集为所述申请方利用所述公钥对所述申请方的第一原始私有数据加密得到的,按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,以及各个差值与所述随机数的第一乘积,以得到计算结果集,将所述计算结果集发送至所述申请方,以使得所述申请方根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
17.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1至5中任一项所述私有数据交集获取方法的步骤,或者执行权利要求11或12所述私有数据交集获取方法的步骤,或者执行权利要求15所述私有数据交集获取方法的步骤。
本发明涉及数据处理技术领域,尤其涉及一种私有数据交集获取方法、计算设备、存储介质。
目前存在许多的私有数据集求交集的应用场景。比如在银行和电信运营商联合反欺诈的应用场景,银行和电信运营商都有各自涉嫌欺诈的电话号码列表,如果能求得两方电话号码列表的交集,那么交集中的电话号码就有更大的嫌疑,从而帮助提高风控的准确性。
但是,在实际业务中,双方所拥有的数据,如电话号码列表都是各自的私有敏感数据,不愿意将其分享给对方,导致无法获取双方的数据交集,为数据监控带来不便。
本发明的实施例提供了一种私有数据交集获取方法、计算设备、存储介质。
为解决上述技术问题,本发明实施例提供一种私有数据交集获取方法,私有数据交集获取方法包括:A.获取同态算法的公钥以及来自申请方的第一加密数据集,所述第一加密数据集为所述申请方利用所述公钥对所述申请方的第一原始私有数据加密得到的;B.向被申请方发送加密请求,所述加密请求包括所述公钥,以使所述被申请方利用所述公钥对所述被申请方的第二原始私有数据进行加密,得到第二加密数据集;C.获取所述第二加密数据集,并生成随机数,所述随机数不为0;D.按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,以及各个差值与所述随机数的第一乘积,以得到计算结果集;E.将所述计算结果集发送至所述申请方,以使得所述申请方根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
本实施例所述方案中,通过对第一加密数据集和第二加密数据集进行数学运算,并将数学运算的结果,也即将计算结果集返回至申请方;由于同态算法支持数学运算,使得申请方能够基于计算结果集反推出私有数据交集,可以在不泄露各方私有数据集的前提下,计算出该私有数据集的交集;同时由于申请方获得的仅是数学运算的结果,因此申请方并不能反推出被申请方的第二原始私有数据,保证了被申请方的数据安全;此外,申请方传递的是加密后的第一加密数据集,而同态算法的私钥保存在申请方,被申请方也不会获知申请方的第一原始私有数据,保证了申请方的数据安全。
本发明实施例还提供一种计算设备,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.获取同态算法的公钥以及来自申请方的第一加密数据集,所述第一加密数据集为所述申请方利用所述公钥对所述申请方的第一原始私有数据加密得到的;B.向被申请方发送加密请求,所述加密请求包括所述公钥,以使所述被申请方利用所述公钥对所述被申请方的第二原始私有数据进行加密,得到第二加密数据集;C.获取所述第二加密数据集,并生成随机数,所述随机数不为0;D.按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,以及各个差值与所述随机数的第一乘积,以得到计算结果集;E.将所述计算结果集发送至所述申请方,以使得所述申请方根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
本发明实施例提供一种私有数据交集获取方法,私有数据交集获取方法包括:A.利用同态算法的公钥对第一原始私有数据加密,以得到第一加密数据集;B.将所述第一加密数据集或者所述第一加密数据集的数据地址发送至智能合约,以供所述智能合约获取所述公钥以及所述第一加密数据集,向被申请方发送加密请求所述加密请求包括所述公钥,以使所述被申请方利用所述公钥对所述被申请方的第二原始私有数据进行加密,得到第二加密数据集,获取所述第二加密数据集,并生成随机数,按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,以及各个差值与所述随机数的第一乘积,以得到计算结果集;C.接收所述计算结果集,并根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
本发明实施例还提供一种计算设备,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.利用同态算法的公钥对第一原始私有数据加密,以得到第一加密数据集;B.将所述第一加密数据集或者所述第一加密数据集的数据地址发送至智能合约,以供所述智能合约获取所述公钥以及所述第一加密数据集,向被申请方发送加密请求所述加密请求包括所述公钥,以使所述被申请方利用所述公钥对所述被申请方的第二原始私有数据进行加密,得到第二加密数据集,获取所述第二加密数据集,并生成随机数,按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,以及各个差值与所述随机数的第一乘积,以得到计算结果集;C.接收所述计算结果集,并根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
本发明实施例提供一种私有数据交集获取方法,私有数据交集获取方法包括:A.接收来自智能合约的加密请求,所述加密请求包括同态算法的公钥;B.利用所述公钥对第二原始私有数据进行加密,得到第二加密数据集;C.将所述第二加密数据集或者所述第二加密数据集的数据地址发送至所述智能合约,所述智能合约还获取所述公钥以及来自申请方的第一加密数据集,所述第一加密数据集为所述申请方利用所述公钥对所述申请方的第一原始私有数据加密得到的,按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,以及各个差值与所述随机数的第一乘积,以得到计算结果集,将所述计算结果集发送至所述申请方,以使得所述申请方根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
本发明实施例还提供一种计算设备,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.接收来自智能合约的加密请求,所述加密请求包括同态算法的公钥;B.利用所述公钥对第二原始私有数据进行加密,得到第二加密数据集;C.将所述第二加密数据集或者所述第二加密数据集的数据地址发送至所述智能合约,所述智能合约还获取所述公钥以及来自申请方的第一加密数据集,所述第一加密数据集为所述申请方利用所述公钥对所述申请方的第一原始私有数据加密得到的,按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,以及各个差值与所述随机数的第一乘积,以得到计算结果集,将所述计算结果集发送至所述申请方,以使得所述申请方根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
图1是本发明实施例一种私有数据交集获取方法的流程图;
图2是本发明实施例另一种私有数据交集获取方法的流程图;
图3是本发明实施例又一种私有数据交集获取方法的流程图;
图4是本发明实施例一种应用场景的示意图。
如背景技术中所述,在实际业务中,双方所拥有的数据,如电话号码列表都是各自的私有敏感数据,不愿意将其分享给对方,导致无法获取双方的数据交集,为数据监控带来不便。
本实施例所述方案中,通过对第一加密数据集和第二加密数据集进行数学运算,并将数学运算的结果,也即将计算结果集返回至申请方;由于同态算法支持数学运算,使得申请方能够基于计算结果集反推出私有数据交集,可以在不泄露各方私有数据集的前提下,计算出该私有数据集的交集;同时由于申请方获得的仅是数学运算的结果,因此申请方并不能反推出被申请方的第二原始私有数据,保证了被申请方的数据安全;此外,申请方传递的是加密后的第一加密数据集,而同态算法的私钥保存在申请方,被申请方也不会获知申请方的第一原始私有数据,保证了申请方的数据安全。
以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者他们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
本文所使用的术语“包含”、“包括”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”,表示还可以包括其他内容。在本公开内容中,术语“基于”是“至少部分地基于”;术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。
本文中出现的“申请方”是指想要获取其拥有的数据与另一方所拥有的数据的交集的一方,此处的另一方是指被申请方。在实际中,申请方和被申请方可以是企业、公司等所使用的终端设备,例如服务器等。
本文中出现的“私有数据”是指仅供自身访问或者具有访问权限的用户才能访问的数据。
本文中出现的“第一原始私有数据”是指申请方所拥有的私有数据。申请方的私有数据可以是申请方拥有的风险提示数据,例如涉嫌欺诈的电话号码集合。当然,第一原始私有数据还可以是申请方收集的其他用途的数据
本文中出现的“第一加密数据集”是指对申请方所拥有的第一原始私有数据利用同态算法的公钥加密计算后得到的数据。
本文中出现的“第二原始私有数据”是指被申请方所拥有的私有数据。被申请方的私有数据可以是被申请方拥有的风险提示数据,例如,涉嫌欺诈的电话号码集合。类似地,第二原始私有数据也可以是被申请方收集的其他用途的数据,通常,第二原始私有数据和第一原始私有数据的用途相同或相当。
本文中出现的“第二加密数据集”是指对被申请方所拥有的第二原始私有数据利用同态算法的公钥加密计算后得到的数据。
本文中出现的“计算结果集”是指对第一加密数据集中的各个数据与第二加密数据集中各个数据进行数学运算后得到的。具体可以是按照第一加密数据集中各个数据的排列顺序,依次计算第一加密数据集中的各个数据与第二加密数据集中各个数据的差值;计算结果集中数据的数量是第一加密数据集中数据的数量与第二加密数据集中数据的数量的乘积。
本文中出现的“私有数据交集”是指第一原始私有数据与第二原始私有数据中的共有数据。例如,私有数据交集可以是比第一原始私有数据和第二原始私有数据更加精确的风险提示数据,可以用于风险提示。当然,如果第一原始私有数据和第二原始私有数据是其他用途的数据,那么私有数据交集就是具有相应用途的数据,由于其是第一原始私有数据和第二原始私有数据的交集,因此,其可以用于更精确地完成该相应用途。
应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制发明的范围。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明实施例一种私有数据交集获取方法的流程图。
其中,本实施例的方法可以由部署在申请方和/或被申请方的区块链节点执行。该区块链节点可以是各种适当的计算设备,例如个人计算机(PC)、服务器、智能手机等。具体而言,区块链节点可以通过调用智能合约执行本实施例的方法。
具体地,在本实施例中,所述用于区块链网络的数据处理方法可以包括以下步骤:
步骤A.获取同态算法的公钥以及来自申请方的第一加密数据集,所述第一加密数据集为所述申请方利用所述公钥对所述申请方的第一原始私有数据加密得到的;
步骤B.向被申请方发送加密请求,所述加密请求包括所述公钥,以使所述被申请方利用所述公钥对所述被申请方的第二原始私有数据进行加密,得到第二加密数据集;
步骤C.获取所述第二加密数据集,并生成随机数,所述随机数不为0;
步骤D.按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,以及各个差值与所述随机数的第一乘积,以得到计算结果集;
步骤E.将所述计算结果集发送至所述申请方,以使得所述申请方根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
需要指出的是,本实施例中各个步骤的序号并不代表对各个步骤的执行顺序的限定。
在步骤A的具体实施中,智能合约可以接收来自申请方的私有数据交集获取请求,该请求中可以包括同态算法的公钥以及申请方的第一加密数据集。
在一个非限制性实施例中,所述步骤A可以包括以下一个步骤:A1.接收所述申请方发送的所述公钥;或者,A2.接收所述申请方发送的公钥地址,并从所述公钥地址指向的存储空间获取所述公钥;或者,A3.接收第三方发送的所述公钥或所述公钥地址。
本实施例中,公钥的接收方式可以有以上三种,也即直接接收公钥、接收公钥地址,从公钥地址指向的存储空间获取所述公钥,以及接收第三方发送的所述公钥或所述公钥地址。其中,申请方可以直接生成同态算法的公钥和私钥,并将公钥或公钥地址发送给智能合约。或者,由第三方生成同态算法的公钥和私钥,并将公钥或公钥地址发送给智能合约
具体而言,所述第三方可以是提供同态算法加密服务的平台。
在一个非限制性实施例中,所述步骤A可以包括以下一个步骤:A4.接收所述申请方发送的所述第一加密数据集;或者,A5.接收所述申请方发送的数据地址,并从所述数据地址指向的存储空间获取所述第一加密数据集。
本实施例中,申请方可以将第一加密数据集或数据地址发送给智能合约。具体而言,由于加密数据集的数据量可能比较大,直接传输效率较低,因此申请方可以传递获取第一加密数据集的地址信息。由智能合约通过传入的地址信息获取第一加密数据集。
需要说明的是,在具体实施时,步骤A4、A5可以和步骤A1、A2、A3进行自由组合,例如,步骤A1和步骤A4,步骤A1和步骤A5等,本发明实施例对此不作限制。
在一个非限制性实施例中,所述公钥地址或数据地址可以采用各种适当的方式来表示。例如,至少可以基于如下协议表示:文件协议(如file://...);超文本传输协议(Hyper Text Transfer Protocol,简称HTTP);文件传输协议(File Transfer Protocol,简称FTP)。
在步骤B的具体实施中,智能合约可以向被申请方发送加密请求,被申请方返回第二加密数据集。
在步骤C和步骤D的具体实施中,智能合约可以生成随机数,并利用该随机数与第一加密数据集、第二加密数据集中的各个数据执行数学运算,具体可以是按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,以及各个差值与所述随机数的第一乘积。
具体而言,随机数的数量可以是一个,也可以是多个,例如随机数数量可以是第一加密数据集中数据数量与第二加密数据集中数据数量的乘积。
在一个具体的例子中,智能合约可以生成一个随机数集合,随机数集合中随机数的数量大于等于1小于等于第一加密数据集中数据数量与第二加密数据集中数据数量的乘积。智能合约在计算时,可以从随机数集合中选取随机数,选取方式可以是顺序选取或者随机选取等。
在步骤E的具体实施中,智能合约可以将计算结果集发送至所述申请方。由于同态算法支持数学运算,使得申请方能够基于计算结果集反推出私有数据交集。其中,第一乘积为0表示对应的申请方的加密数据与被申请方的加密数据是相同的,由于第一加密数据集与第二加密数据集是采用相同的公钥加密的,因此对应的申请方的原始私有数据与被申请方的原始私有数据是相同的,那么申请方只需对申请方的加密数据进行解密获得对应第一乘积为0的第一原始私有数据,就得到了申请方和被申请人方的共有数据,也即私有数据交集。
本发明实施例可以在不泄露各方私有数据集的前提下,计算出该私有数据集的交集;同时由于申请方获得的仅是数学运算的结果,因此申请方并不能反推出被申请方的第二原始私有数据,保证了被申请方的数据安全;此外,申请方传递的是加密后的第一加密数据集,而同态算法的私钥保存在申请方,被申请方也不会获知申请方的第一原始私有数据,保证了申请方的数据安全。
在一个非限制性实施例中,所述步骤C可以包括以下一个步骤:C1.确定所述第一加密数据集中数据的数量,以作为第一数量;C2.确定所述第二加密数据集中数据的数量,以作为第二数量;C3.计算所述第一数量和所述第二数量的第二乘积,并生成数量为所述乘积的随机数。
本实施例中,由于第一加密数据集中各个数据分别与第二加密数据集中各个数据计算差值后,差值的总数量为第一数量和所述第二数量的乘积,也即第二乘积。为了保证计算结果集中数据的安全性,可以为每一个差值分配一个随机数,那么随机数的数量也是第二乘积。
进一步而言,所述步骤D可以包括以下一个步骤:D1.按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,所述差值的数量为所述第二乘积;D2.将数量为所述第二乘积的差值与数量为所述第二乘积的随机数进行乘法运算,以得到所述第一乘积。
本实施例中,由于智能合约生成了数量为第二乘积的随机数,因此在计算第一乘积时,可以为每一个差值分配一个随机数,进一步保证了第一乘积的随机性,增加了计算结果集泄露的难度,从而保证了计算结果集的安全性。
本发明实施例还公开了一种计算设备。本领域技术人员理解,本实施例的计算设备用于实施上述图1所示实施例中所述的方法技术方案。
具体地,在本实施例中,所述计算设备可以包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.获取同态算法的公钥以及来自申请方的第一加密数据集,所述第一加密数据集为所述申请方利用所述公钥对所述申请方的第一原始私有数据加密得到的;B.向被申请方发送加密请求,所述加密请求包括所述公钥,以使所述被申请方利用所述公钥对所述被申请方的第二原始私有数据进行加密,得到第二加密数据集;C.获取所述第二加密数据集,并生成随机数,所述随机数不为0;D.按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,以及各个差值与所述随机数的第一乘积,以得到计算结果集;E.将所述计算结果集发送至所述申请方,以使得所述申请方根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
在一个非限制性实施例中,所述处理器运行所述计算机指令执行步骤A时还可以执行以下步骤:A1.接收所述申请方发送的所述公钥;或者,A2.接收所述申请方发送的公钥地址,并从所述公钥地址指向的存储空间获取所述公钥;或者,A3.接收第三方发送的所述公钥或所述公钥地址。
在一个非限制性实施例中,所述处理器运行所述计算机指令执行步骤A时还可以执行以下步骤:A4.接收所述申请方发送的所述第一加密数据集;或者,A5.接收所述申请方发送的数据地址,并从所述数据地址指向的存储空间获取所述第一加密数据集。
在一个非限制性实施例中,所述处理器运行所述计算机指令执行步骤C时还可以执行以下步骤:C1.确定所述第一加密数据集中数据的数量,以作为第一数量;C2.确定所述第二加密数据集中数据的数量,以作为第二数量;C3.计算所述第一数量和所述第二数量的第二乘积,并生成数量为所述乘积的随机数。
在一个非限制性实施例中,所述处理器运行所述计算机指令执行步骤D时还可以执行以下步骤:D1.按照所述第一加密数据集中各个数据的排列顺序,依次计算所述第一加密数据集中的各个数据与所述第二加密数据集中各个数据的差值,所述差值的数量为所述第二乘积;D2.将数量为所述第二乘积的差值与数量为所述第二乘积的随机数进行乘法运算,以得到所述第一乘积。
关于所述计算设备的工作原理、工作方式的更多内容,可以参照上述图1中的相关描述,这里不再赘述。
图2是本发明实施例另一种私有数据交集获取方法的流程图。
其中,本实施例的方法可以由申请方来执行,所述申请方可以是各种适当的计算设备,例如个人计算机(PC)、服务器、智能手机等。
具体地,在本实施例中,所述私有数据交集获取方法可以包括如下步骤:
步骤A.利用同态算法的公钥对第一原始私有数据加密,以得到第一加密数据集;
步骤B.将所述第一加密数据集或者所述第一加密数据集的数据地址发送至智能合约;
步骤C.接收所述计算结果集,并根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
本实施例中,申请方利用所述公钥对第一原始私有数据加密,利用所述私钥解密所述计算结果集,确定对应第一乘积为0的第一原始私有数据。
在一个具体的例子中,第一加密数据集为{E(a1),E(a2),E(a3)},第二加密数据集为{E(b1),E(b2),E(b3),E(b4)};智能合约生成随机数集合R={r11,r12,r13,r14,r21,r22,....,r34}。计算结果集如下:
c11=E(r11)×(E(a1)-E(b1));
c12=E(r12)×(E(a1)–E(b2));
c13=E(r13)×(E(a1)–E(b3));
c14=E(r14)×(E(a1)–E(b4));
c21=E(r21)×(E(a2)–E(b1));
c22=E(r22)×(E(a2)–E(b2));
…,
c34=E(r34)×(E(a3)–E(b4));
申请方使用私钥key2对计算结果集中的每个数据进行同态算法解密。如果解密结果的值为0,比如D(c34)=0,那说明原始私有数据a3和b4的值是相等的。由此可以得到申请方数据集{a1,a2,a3}和被申请方数据集{b1,b2,b3,b4}的交集为a3。
在一个非限制性实施例中,步骤B之后还可以包括以下步骤:将所述公钥或公钥地址发送至所述智能合约,以供所述智能合约从所述公钥地址指向的存储空间获取所述公钥。
本实施例中,申请方可以直接生成同态算法的公钥和私钥,或者从第三方获取同态算法的公钥和私钥。
本发明实施例还公开了一种计算设备。本领域技术人员理解,本实施例的计算设备用于实施上述图2所示实施例中所述的方法技术方案。
具体地,在本实施例中,所述计算设备可以包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.利用同态算法的公钥对第一原始私有数据加密,以得到第一加密数据集;B.将所述第一加密数据集或者所述第一加密数据集的数据地址发送至智能合约;C.接收所述计算结果集,并根据所述计算结果集以及所述同态算法的私钥确定对应第一乘积为0的第一原始私有数据,以得到私有数据交集。
在一个非限制性实施例中,所述处理器运行所述计算机指令执行步骤B之后时还可以执行以下步骤:将所述公钥或公钥地址发送至所述智能合约,以供所述智能合约从所述公钥地址指向的存储空间获取所述公钥。
关于所述计算设备的工作原理、工作方式的更多内容,可以参照上述图2中的相关描述,这里不再赘述。
图3是本发明实施例又一种私有数据交集获取方法的流程图。
其中,本实施例的方法可以由被申请方来执行,所述被申请方可以是各种适当的计算设备,例如个人计算机(PC)、服务器、智能手机等。
具体地,在本实施例中,所述私有数据交集获取方法可以包括如下步骤:
步骤A.接收来自智能合约的加密请求,所述加密请求包括同态算法的公钥;
步骤B.利用所述公钥对第二原始私有数据进行加密,得到第二加密数据集;
步骤C.将所述第二加密数据集或者所述第二加密数据集的数据地址发送至所述智能合约。
本实施例中,被申请方需要执行的操作包括接受加密请求,对第二原始私有数据进行加密,以及将第二加密数据发送给智能合约。
本实施例中,由于智能合约计算过程中引入了随机数,这些随机数不会让申请方知道。计算结果集中第一乘积不为0的数据,比如c13=E(r13)×(E(a1)–E(b3)),其中,E(r13)为随机数,E(a1)为第一加密数据集中的数据,E(b3)为第二加密数据集中的数据。申请方无法通过第一乘积c13和E(a1)推算出第二原始私有数据b3的值,从而保护了被申请方的数据隐私和数据安全。
本发明实施例还公开了一种计算设备。本领域技术人员理解,本实施例的计算设备用于实施上述图3所示实施例中所述的方法技术方案。
具体地,在本实施例中,所述计算设备可以包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.接收来自智能合约的加密请求,所述加密请求包括同态算法的公钥;B.利用所述公钥对第二原始私有数据进行加密,得到第二加密数据集;C.将所述第二加密数据集或者所述第二加密数据集的数据地址发送至所述智能合约。
关于所述计算设备的工作原理、工作方式的更多内容,可以参照上述图3中的相关描述,这里不再赘述。
请参照图4,假定申请方有一个手机号码数据集,也即第一原始私有数据集:A={a1,a2,a3};被申请方有一个以手机号码为标识数据集,也即第二原始私有数据集:B={b1,b2,b3,b4}。申请方、被申请方处于同一联盟链,各自有自己的区块链节点(如图4所示402和403)。每个区块链节点都安装了相同的计算数据集交集的智能合约,智能合约的安全管理机制要求该智能合约经过双方的审核并签名认可后,才能由各方安装运行,确保智能合约的计算逻辑公开透明、无法被任何一方篡改。如果原始数据集的标识无法转换为整数,那么双方可通过特定的算法(不限于HASH算法)将数据集的标识转换为整数,再进行隐私数据交集的运算。
申请方业务系统401生成同态算法的公钥和私钥对{key1,key2},其中key1是公钥,key2是私钥。在步骤S401中用公钥key1对第一原始私有数据集{a1,a2,a3}中的每一个数据做同态算法加密,得到第一加密数据集{E(a1),E(a2),E(a3)}。申请方业务系统401调用被申请方区块链节点403的智能合约接口,在步骤S402中发送加密请求,申请计算双方数据集交集,加密数据集{E(a1),E(a2),E(a3)}和公钥key1作为参数传递给智能合约。
被申请方区块链节点403的智能合约接收到申请方业务系统401的调用请求后,在步骤S403中向被申请方业务系统404申请第二加密数据集。在步骤S404中,被申请方业务系统404使用申请方传递过来的公钥key2对其第二原始私有数据进行加密,得到第二加密数据集{E(b1),E(b2),E(b3),E(b4)},并且在步骤S405中,将第二加密数据集返回给智能合约。
在步骤S406中,智能合约生成随机数集合R={r11,r12,r13,r14,r21,r22,....,r34},生成随机数的数量根据申请方的加密数据的数量和被申请方加密数据的数量来生成,按照如下方式进行计算,计算时,以申请方的第一加密数据集中各个数据的顺序进行计算:
c11=E(r11)*(E(a1)-E(b1));
c12=E(r12)*(E(a1)–E(b2));
c13=E(r13)*(E(a1)–E(b3));
c14=E(r14)*(E(a1)–E(b4));
c21=E(r21)*(E(a2)–E(b1));
c22=E(r22)*(E(a2)–E(b2));
…,
c34=E(r34)*(E(a3)–E(b4));
在步骤S407中,智能合约将计算结果集C={c11,c12,c13,…,c34}作为调用结果返回给申请方业务系统401。计算过程中用到的随机数集R={r11,r12,r13,r14,r21,r22,....,r34}不能被返回给申请方,使用完即被系统释放。
在步骤S408中,申请方业务系统401使用私钥key2对计算结果集中的每个数据进行同态算法解密。如果解密结果的值为0,比如D(c34)=0,那说明a3和b4的值是相等的。由此可以得到申请方数据集{a1,a2,a3}和被申请方数据集{b1,b2,b3,b4}的交集为a3。
本实施例中联盟链的智能合约安全管理机制保证了区块链节点智能合约的公开透明、不可篡改。申请方和被申请方双方中的任何一方如果擅自改动了智能合约的逻辑,将导致另一方对智能合约的签名失效,从而无法运行。因此也可以确保智能合约按照双方事先约定好的业务逻辑运行。
需要说明的是,上述申请方和被申请方的数据集仅仅用于示例,实际使用中双方数据集中的数据元素个数可以是任意数量。
本发明实施例还公开了一种存储介质,所述存储介质为计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时可以执行图1、图2所图3所示方法的步骤。所述存储介质可以包括ROM、RAM、磁盘或光盘等。所述存储介质还可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
本文发布于:2023-04-13 09:44:56,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/1/86413.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |