CN115765969B - 一种基于同态加密的隐匿集合求交方法、装置及存储介质 - Google Patents

一种基于同态加密的隐匿集合求交方法、装置及存储介质 Download PDF

Info

Publication number
CN115765969B
CN115765969B CN202310030147.4A CN202310030147A CN115765969B CN 115765969 B CN115765969 B CN 115765969B CN 202310030147 A CN202310030147 A CN 202310030147A CN 115765969 B CN115765969 B CN 115765969B
Authority
CN
China
Prior art keywords
data
party
encryption
intersection
encrypted 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
Application number
CN202310030147.4A
Other languages
English (en)
Other versions
CN115765969A (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.)
Lanxiang Zhilian Hangzhou Technology Co ltd
Original Assignee
Lanxiang Zhilian Hangzhou 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 Lanxiang Zhilian Hangzhou Technology Co ltd filed Critical Lanxiang Zhilian Hangzhou Technology Co ltd
Priority to CN202310030147.4A priority Critical patent/CN115765969B/zh
Publication of CN115765969A publication Critical patent/CN115765969A/zh
Application granted granted Critical
Publication of CN115765969B publication Critical patent/CN115765969B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请实施例公开了一种基于同态加密的隐匿集合求交方法、装置及存储介质,其中基于同态加密的隐匿集合求交方法包括步骤:对待隐匿集合求交的数据做布谷鸟哈希;通过和数据方做不经意伪随机函数,对待隐匿集合求交的数据进行加密得到第一加密数据,并且使数据方得到对应的加密密钥,以及利用加密密钥对自身的待隐匿集合求交的数据进行加密得到第二加密数据;生成同态加密的私钥和对应的公钥,使用公钥对截断拆分后的第一加密数据进行分组打包加密得到第三加密数据,将第三加密数据和公钥发送给数据方;获取数据方发送的第四加密数据,利用私钥对第四加密数据进行解密,当得到的解密结果按拆分的位置累加为0时,对应分箱位置的数据为交中数据。

Description

一种基于同态加密的隐匿集合求交方法、装置及存储介质
技术领域
本申请涉及隐私安全计算技术领域,具体涉及一种基于同态加密的隐匿集合求交方法、装置及存储介质。
背景技术
传统的隐匿集合求交方案存在网络传输较大的限制,同时由于需要多轮网络通讯和较大的数据量传输使得在实际生产场景中难以规模化使用,在公网环境下网络带宽一般不会很高,因此这种需要大流量传输的应用在实际生产场景中难以高效实现,在低带宽场景下需要有一种低通讯量版本的隐匿集合求交方案进行实现。
发明内容
本申请实施例的目的在于提供一种基于同态加密的隐匿集合求交方法、装置及存储介质,用以解决现有技术中的有些基于不经意传输的隐匿集合求交方案存在网络传输较大的限制,造成在实际生产的低带宽场景场景中难以高效实现隐匿集合求交的问题。
为实现上述目的,本申请实施例提供一种基于同态加密的隐匿集合求交方法,所述方法应用于结果方,包括步骤:对待隐匿集合求交的数据做布谷鸟哈希,将自身待隐匿集合求交的数据映射到相应的分箱当中,与数据方约定相同的哈希函数,以使所述数据方对自身待隐匿集合求交的数据做简单哈希,完成数据对齐操作;
通过和所述数据方做不经意伪随机函数,对待隐匿集合求交的数据进行加密得到第一加密数据,并且使所述数据方得到对应的加密密钥,以及利用所述加密密钥对自身的待隐匿集合求交的数据进行加密得到第二加密数据;
生成同态加密的私钥和对应的公钥,使用所述公钥对截断拆分后的所述第一加密数据进行分组打包加密得到第三加密数据,将所述第三加密数据和所述公钥发送给所述数据方;
获取所述数据方发送的第四加密数据,所述第四加密数据由所述数据方在所述第三加密数据、所述公钥和对截断拆分后的所述第二加密数据进行分组打包后得到的明文的基础上进行同态计算后得到;
利用所述私钥对所述第四加密数据进行解密,当得到的解密结果按拆分的位置累加为0时,对应分箱位置的数据为交中数据。
可选地,对待隐匿集合求交的数据进行加密得到所述第一加密数据之前,还包括:
对待隐匿集合求交的数据做布谷鸟哈希,做布谷鸟哈希的方法包括:使用哈希函数对分箱后的待隐匿集合求交的数据进行分箱位置映射,当映射到的分箱位置中为空则将数据插入分箱中,并不再使用下一个哈希函数进行映射,当映射到的分箱位置中已经有数据插入,则用下一个哈希函数进行映射,保证每个分箱中最多只有一个数据。
可选地,和所述数据方做不经意伪随机函数的方法包括:
将待隐匿集合求交的数据哈希到加密后的椭圆曲线的点A上,对所述点A进行加密计算得到点B,将所述点B发送给所述数据方;
获取所述数据方发送的点C,对所述点C进行加密计算得到所述第一加密数据,所述点C由所述数据方利用所述加密密钥对所述点B进行加密计算后得到。
为实现上述目的,本申请还提供另一种基于同态加密的隐匿集合求交方法,所述方法应用于数据方,包括以下步骤:
对待隐匿集合求交的数据做简单哈希,将自身待隐匿集合求交的数据映射到相应的分箱当中,与结果方约定相同的哈希函数,以使所述结果方对自身待隐匿集合求交的数据做布谷鸟哈希,完成数据对齐操作;
通过和所述结果方做不经意伪随机函数,得到对所述结果方的待隐匿集合求交的数据进行加密得到第一加密数据的加密密钥,利用所述加密密钥对自身的待隐匿集合求交的数据进行加密得到第二加密数据;
获取所述结果方发送的同态加密的公钥和使用所述公钥对截断拆分后的所述第一加密数据进行分组打包加密得到的第三加密数据,在所述第三加密数据、所述公钥和对截断拆分后的所述第二加密数据进行分组打包后得到的明文的基础上进行同态计算,得到第四加密数据;
将所述第四加密数据发送给所述结果方,以使所述结果方利用所述公钥对应的私钥对所述第四加密数据进行解密,当得到的解密结果按拆分的位置累加为0时,对应分箱位置的数据为交中数据。
可选地,利用所述加密密钥对自身的待隐匿集合求交的数据进行加密得到所述第二加密数据之前,还包括:
对待隐匿集合求交的数据做简单哈希,做简单哈希的方法包括:使用哈希函数对分箱后的待隐匿集合求交的数据进行分箱位置映射,并将数据插入分箱中。
可选地,进行加密计算,得到所述第四加密数据的方法包括:
利用公式:
Figure 464669DEST_PATH_IMAGE002
进行加密计算,得到所述第四加密数据,其中,
Figure 251360DEST_PATH_IMAGE003
为得到的所述第四 加密数据,
Figure 343818DEST_PATH_IMAGE004
为所述第三加密数据,y1至yn为所述第二加密数据截断后的数据,r为所述数 据方生成不为零的随机数。
可选地,还包括:使用Paterson-Stockmeyer 算法进行同态计算,以得到所述第四加密数据。
可选地,截断后的所述第二加密数据的每组的数据量保持一致。
为实现上述目的,本申请还提供一种基于同态加密的隐匿集合求交装置,包括:存储器;以及
与所述存储器连接的处理器,所述处理器被配置成实现如上所述的方法的步骤。
为实现上述目的,本申请还提供一种计算机存储介质,其上存储有计算机程序,其中所述计算机程序被机器执行时实现如上所述的方法的步骤。
本申请实施例具有如下优点:
本申请实施例提供一种基于同态加密的隐匿集合求交方法,包括步骤:对待隐匿集合求交的数据做布谷鸟哈希,将自身待隐匿集合求交的数据映射到相应的分箱当中,与数据方约定相同的哈希函数,以使所述数据方对自身待隐匿集合求交的数据做简单哈希,完成数据对齐操作;通过和数据方做不经意伪随机函数,对待隐匿集合求交的数据进行加密得到第一加密数据,并且使所述数据方得到对应的加密密钥,以及利用所述加密密钥对自身的待隐匿集合求交的数据进行加密得到第二加密数据;生成同态加密的私钥和对应的公钥,使用所述公钥对截断拆分后的所述第一加密数据进行分组打包加密得到第三加密数据,将所述第三加密数据和所述公钥发送给所述数据方;获取所述数据方发送的第四加密数据,所述第四加密数据由所述数据方在所述第三加密数据、所述公钥和对截断拆分后的所述第二加密数据进行分组打包后得到的明文的基础上进行同态计算后得到;利用所述私钥对所述第四加密数据进行解密,当得到的解密结果按拆分的位置累加为0时,对应分箱位置的数据为交中数据。
通过上述方法,实现了在低带宽场景下的低通讯量版本的隐匿集合求交,解决了现有技术中的隐匿集合求交方案存在网络传输较大的限制的问题。
附图说明
为了更清楚地说明本申请的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
图1为本申请实施例提供的一种基于同态加密的隐匿集合求交方法的流程图;
图2为本申请实施例提供的一种基于同态加密的隐匿集合求交方法的不经意伪随机函数的简化流程示意图;
图3为本申请实施例提供的一种基于同态加密的隐匿集合求交方法的截断拆分流程示意图;
图4为本申请实施例提供的一种基于同态加密的隐匿集合求交方法的数据方数据分箱内数据分组示意图;
图5为本申请实施例提供的一种基于同态加密的隐匿集合求交方法的结果方对第一加密数据进行截断拆分和分组打包加密的流程示意图;
图6为本申请实施例提供的另一种基于同态加密的隐匿集合求交方法的流程图;
图7为本申请实施例提供的一种基于同态加密的隐匿集合求交方法的做布谷鸟哈希和简单哈希后得到数据表;
图8为本申请实施例提供的一种基于同态加密的隐匿集合求交方法的截断拆分和分组打包加密的流程示意图;
图9为本申请实施例提供的一种基于同态加密的隐匿集合求交装置的模块框图。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,下面所描述的本申请不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本申请一实施例提供一种基于同态加密的隐匿集合求交方法,所述方法应用于结果方,参考图1,图1为本申请的一实施方式中提供的一种基于同态加密的隐匿集合求交方法的流程图,应当理解的是,该方法还可以包括未示出的附加框和/或可以省略所示出的框,本申请的范围在此方面不受限制。
本申请实施例所提供的基于同态加密的隐匿集合求交方法的应用场景包括:银行A中有一群还款能力下降的一批人,导致存在多次逾期的行为而形成银行A对这部分人的信用产生不良评价,同时银行B希望知道自己的客户中是否存在银行A中还款能力不足的这批人,基于这种情况银行A和银行B之间可以使用本申请提供的方案进行一次隐匿集合求交,银行A这边将产生不良信用的客户作为隐匿集合求交数据方的输入,银行B将自身全量客户作为隐匿集合求交结果方的输入,银行A和银行B在执行完基于本申请的基于同态加密的隐匿集合求交方法的隐匿集合求交任务后,银行B仅能得到自身客户在银行A中被标记产生不良评价的客户,而不能得到其他信息,同时银行A无法获得银行B中的任何信息,保护了各方客户数据信息,同时银行B可以根据求交结果,提前做好对风险的把控。应当理解的是,本申请实施例所提供的方案还可以应用在其他类似场景中,只要是基于本申请所提供的方案的原理能够实现隐匿集合求交的目的即可,本申请对此不作限制。
在步骤101处,对待隐匿集合求交的数据做布谷鸟哈希,将自身待隐匿集合求交的数据映射到相应的分箱当中,与数据方约定相同的哈希函数,以使所述数据方对自身待隐匿集合求交的数据做简单哈希,完成数据对齐操作。
在一些实施例中,做布谷鸟哈希的方法包括:使用哈希函数对分箱后的待隐匿集合求交的数据进行分箱位置映射,当映射到的分箱位置中为空则将数据插入分箱中,并不再使用下一个哈希函数进行映射,当映射到的分箱位置中已经有数据插入,则用下一个哈希函数进行映射,保证每个分箱中最多只有一个数据。
具体地,结果方做布谷鸟哈希,数据方做简单哈希,目的是为了将两边数据进行对齐,简化后续过程中计算的复杂度。
假设结果方的待隐匿集合求交的数据记为x,数据方待隐匿集合求交的数据记为 y,双方将数据映射到相应分箱时所用的哈希函数为
Figure 797933DEST_PATH_IMAGE005
Figure 966746DEST_PATH_IMAGE006
Figure 506312DEST_PATH_IMAGE007
,按结果方的数据总 量n1的1.2倍作为两边的最终分箱数,记最终的分箱数为
Figure 903927DEST_PATH_IMAGE008
,则
Figure 478127DEST_PATH_IMAGE009
。结果方执 行cuckoo hash(布谷鸟哈希)将x插入到结果方的分箱中,cuckoo hash计算过程为:使用
Figure 427629DEST_PATH_IMAGE005
Figure 313545DEST_PATH_IMAGE006
Figure 639484DEST_PATH_IMAGE007
对数据x进行位置映射,如果映射到的分箱位置中为空则将x插入分箱中, 并不再使用下一个哈希函数进行映射,如果映射到的分箱位置已经有数据插入,则用下一 个哈希函数进行映射,保证每个分箱中最多只有一个数据。simple hash计算过程为:依次 使用
Figure 442093DEST_PATH_IMAGE005
Figure 562496DEST_PATH_IMAGE006
Figure 342233DEST_PATH_IMAGE007
对y进行分箱位置映射,并将y插入相应分箱位置,不考虑当前分箱中 是否存在数据,每个分箱位置可以放多个值。
两边空的分箱中填入dummy值,结果方填充全0,数据方填充全1,两边的dummy值不同,以保证不会交中。
在步骤102处,通过和数据方做不经意伪随机函数,对待隐匿集合求交的数据进行加密得到第一加密数据,并且使所述数据方得到对应的加密密钥,以及利用所述加密密钥对自身的待隐匿集合求交的数据进行加密得到第二加密数据。
具体地,结果方和数据方做一轮不经意伪随机函数(Oblivious PseudorandomFunction, OPRF),结果方在不知道数据方加密秘钥的情况下得到对应的第一加密数据。数据方得到加密秘钥,并用加密秘钥对自身数据进行加密得到第二加密数据。
OPRF简单过程如图2所示,其目的是使结果方在不暴露自身数据的情况下,得到数据方的加密密钥对自身数据进行加密的密文,同时结果方无法通过自身的明文和加密后的密文反推出数据方的密钥,即整个过程中数据方不知道结果方的数据,结果方不知道数据方所持有的密钥。
在一些实施例中,和所述数据方做不经意伪随机函数的方法包括:
将待隐匿集合求交的数据哈希到加密后的椭圆曲线的点A上,对所述点A进行加密计算得到点B,将所述点B发送给所述数据方;
获取所述数据方发送的点C,对所述点C进行加密计算得到所述第一加密数据,所述点C由所述数据方利用所述加密密钥对所述点B进行加密计算后得到。
具体地,OPRF的流程如下:
1. 结果方:将自身数据X哈希到在一些加密安全的椭圆曲线点A上,其次挑选一个 秘密数r,计算点
Figure 330918DEST_PATH_IMAGE010
,将点B发送至数据方端,其中r对外保密。
2. 数据方:接收到点B后。挑选一个秘密数s。计算
Figure 348552DEST_PATH_IMAGE011
,将点C发送至结果方 端,其中s对外保密。
3.结果方:接收到点C后,计算r的逆
Figure 46381DEST_PATH_IMAGE012
椭圆曲线的阶,并进一步计算
Figure 782256DEST_PATH_IMAGE013
,由于椭圆曲线的特性,仅根据点A和点C无法反推出数据方 端的秘密s。
经过上述OPRF步骤后,结果方端得到加密后的数据,而不知道加密秘钥。数据方端得到对结果方数据进行加密的加密秘钥,而不知道结果方的数据。
在步骤103处,生成同态加密的私钥和对应的公钥,使用所述公钥对截断拆分后的所述第一加密数据进行分组打包加密得到第三加密数据,将所述第三加密数据和所述公钥发送给所述数据方。
具体地,结果方生成同态加密的私钥sk和对应的公钥pk,将本方经过OPRF后得到的第一加密数据截断后用公钥pk进行打包加密得到同态密文(第三加密数据),并将同态密文和公钥pk序列化后发送至数据方。
在步骤104处,获取所述数据方发送的第四加密数据,所述第四加密数据由所述数据方在所述第三加密数据、所述公钥和对截断拆分后的所述第二加密数据进行分组打包后得到的明文的基础上进行同态计算后得到。(数据方端第二加密数据分组打包时不需要同态加密,是明文算的,但实际代码运行过程中需要,公钥对结果方端发送来的序列化后的密文反序列化到内存中计算。)
具体地,数据方在接收到第三加密数据的同态密文和公钥pk后,反序列化同态密文并将其加载到内存中,将OPRF阶段输出结果(第二加密数据)进行同样地截断拆分,并对数据进行分组,同时打包组大小和结果方打包大小一致。
数据方在经过上述打包分组后,计算同态密文和对应打包分组内数据在降低密态乘法深度的基础上加密计算出密文结果,得到最终的同态密文(第四加密数据),将最终计算得到的同态密文(第四加密数据)序列化后发送至结果方。
在一些实施例中,数据方进行加密计算,得到所述第四加密数据的方法包括:
利用公式:
Figure 574631DEST_PATH_IMAGE014
进行加密计算,得到所述第四加密数据,其中,
Figure 712352DEST_PATH_IMAGE003
为得到的所述第 四加密数据,
Figure 440136DEST_PATH_IMAGE004
为所述第三加密数据,y1至yn为所述第二加密数据截断后的数据,r为所述 数据方生成不为零的随机数,随机数r是为了保护数据方的数据。
具体地,同态加密下的计算过程:
在同态加密的计算过程中,密态乘法计算的深度将影响整体方案的性能,因此降低整体计算过程中密态乘法的深度将提高整体求交任务的性能。
Figure 37208DEST_PATH_IMAGE015
整体方案中使用BFV同态加密方案,结果方端生成私钥sk和对应的公钥pk,使用公 钥pk对OPRF阶段后每个分箱内得到的数据进行同态加密得到对应的同态密文
Figure 243062DEST_PATH_IMAGE004
。在OPRF 阶段结束后结果方和数据方得到的每条数据长度一般为256bit,截取前80bit 用于BFV同 态加密,同时将截取得到的80bit数据平均拆分为四等份,每份数据长度为20bit,拆分过程 如图3所示。
在很多场景下数据方端数据量较大而结果方端数据相对较少,这种小交大场景下,数据方端大量数据在简单哈希映射到了总分箱较少的集合里,导致每个分箱内的都有较多的数据,为了降低数据方端密态乘法计算的深度,提高整体效率,本实施例提出将数据方端分箱内数据分组如图4所示。
在步骤105处,利用所述私钥对所述第四加密数据进行解密,当得到的解密结果按拆分的位置累加为0时,对应分箱位置的数据为交中数据。
具体地,结果方在得到数据方发送来的最终计算后的同态密文(第四加密数据)后,反序列化到内存中再利用私钥sk对同态密文进行解密,如果解密结果为0则代表该分箱位置中的数据为交中数据,如果解密结果不为0则代表该分箱位置数据为未交中数据。
在一些实施例中,截断拆分后的所述第二加密数据的每组的数据量保持一致。
具体地,每个组内数据容量保持一致,只需每个分组内进行同态加密计算算出对 应的
Figure 625502DEST_PATH_IMAGE016
,降低了直接计算整体分箱内全部数据进行同态加密计算下的
Figure 524187DEST_PATH_IMAGE016
所需要的密文乘法计算的深度,每个分组内计算得到
Figure 234654DEST_PATH_IMAGE016
后,统一 发送回结果方端进行解密,如果属于同一个分箱内的
Figure 119565DEST_PATH_IMAGE016
解密结果有一个为0,则 表明结果方端该分箱内的数据为交中数据,反之,如果解密出来的结果都是不为零的随机 数,则表明结果方端该分箱内的数据为未交中数据。
在一些实施例中,OPRF结果截断拆分的情况下,则需要将结果方端和数据方端OPRF结果数据进行统一截断拆分,即截断位置长度和拆分的大小必须保持一致性,以此保证求交结果的正确性。同时考虑到对数据加密的过程中可以对多个待加密数据进行统一的打包加密,因此为了提高效率对结果方端截断拆分后的数据进行打包加密如图5所示。
在一些实施例中,使用Paterson-Stockmeyer 算法进行同态计算,以得到所述第四加密数据。
具体地,为了降低数据方端同态下密文乘法计算的深度,结果方端预先计算x的次 方后加密整体发送至数据方端,假设
Figure 231878DEST_PATH_IMAGE017
的最高次项为
Figure 160519DEST_PATH_IMAGE018
各项系数如下所示:
Figure 623862DEST_PATH_IMAGE019
如果每个次方都要在结果方端计算后加密则需要预先计算
Figure 545419DEST_PATH_IMAGE020
并由公钥pk 加密为
Figure 777817DEST_PATH_IMAGE021
后序列化发送至数据方端,但这样做会使网络通讯增加,尤其当数据方 端数据较多时,经简单哈希映射在相同分箱的数据会更多,则需要计算密文下
Figure 752726DEST_PATH_IMAGE022
的次方将 更高,对应每个密文次方序列化后发送会使网络通讯量变得难以接受。如果仅发送
Figure 562419DEST_PATH_IMAGE004
至数 据方端,数据方端密文乘法计算出
Figure 913766DEST_PATH_IMAGE017
所需要的密文次方,则数据方端密文乘法的深度 将会加深很多,数据方端计算耗时将会增大,难以应对一些需要快速得到求交结果的实时 场景。基于此,本实施例在对数据方端数据进行分组的基础上需降低组内密文乘法的计算 深度,使用Paterson-Stockmeyer 算法进行实现,针对上式中的
Figure 610458DEST_PATH_IMAGE017
计算,结果方端预 先计算
Figure 287427DEST_PATH_IMAGE023
Figure 318837DEST_PATH_IMAGE024
后,用公钥pk对其加密得到对应的密文
Figure 473875DEST_PATH_IMAGE025
Figure 415286DEST_PATH_IMAGE026
,并这些密文(第三加密数据)序列化后发送至数据方端,用于计算
Figure 105899DEST_PATH_IMAGE017
。 Paterson-Stockmeyer 算法计算公式如下:
Figure 499971DEST_PATH_IMAGE027
相比于计算
Figure 583334DEST_PATH_IMAGE021
需要15个密文,此方法只需要计算6个密文
Figure 379252DEST_PATH_IMAGE025
Figure 7810DEST_PATH_IMAGE026
,同时密文乘法的深度也降低了,节省了计算端的计算耗时。
本申请一实施例提供另一种基于同态加密的隐匿集合求交方法,所述方法应用于数据方,参考图6,图6为本申请的一实施方式中提供的一种基于同态加密的隐匿集合求交方法的流程图,应当理解的是,该方法还可以包括未示出的附加框和/或可以省略所示出的框,本申请的范围在此方面不受限制。
在步骤201处,对待隐匿集合求交的数据做简单哈希,将自身待隐匿集合求交的数据映射到相应的分箱当中,与结果方约定相同的哈希函数,以使所述结果方对自身待隐匿集合求交的数据做布谷鸟哈希,完成数据对齐操作。
在步骤202处,通过和结果方做不经意伪随机函数,得到对所述结果方的待隐匿集合求交的数据进行加密得到第一加密数据的加密密钥,利用所述加密密钥对自身的待隐匿集合求交的数据进行加密得到第二加密数据。
在步骤203处,获取所述结果方发送的同态加密的公钥和使用所述公钥对截断拆分后的所述第一加密数据进行分组打包加密得到的第三加密数据,在所述第三加密数据、所述公钥和对截断拆分后的所述第二加密数据进行分组打包后得到的明文的基础上进行同态计算,得到第四加密数据。
在步骤204处,将所述第四加密数据发送给所述结果方,以使所述结果方利用所述公钥对应的私钥对所述第四加密数据进行解密,当得到的解密结果按拆分的位置累加为0时,对应分箱位置的数据为交中数据。
在一些实施例中,做简单哈希的方法包括:使用哈希函数对分箱后的待隐匿集合求交的数据进行分箱位置映射,并将数据插入分箱中。
在一些实施例中,进行加密计算,得到所述第四加密数据的方法包括:
利用公式:
Figure 154758DEST_PATH_IMAGE028
进行加密计算,得到所述第四加密数据,其中,
Figure 386019DEST_PATH_IMAGE029
为得到的所述第四加 密数据,
Figure 161077DEST_PATH_IMAGE004
为所述第三加密数据,y1至yn为所述第二加密数据截断后的数据,r为所述数据 方生成不为零的随机数。
在一些实施例中,使用Paterson-Stockmeyer 算法进行同态计算,以得到所述第四加密数据。
在一些实施例中,截断后的所述第二加密数据的每组的数据量保持一致。
具体实现方法参考前述方法实施例,此处不再赘述。
通过上述方法,实现了在低带宽场景下的低通讯量版本的隐匿集合求交,解决了现有技术中的隐匿集合求交方案存在网络传输较大的限制的问题。
以下实施例通过实例对本申请提供的一种基于同态加密的隐匿集合求交方法的实现过程进行解释说明:
结果方端数据:
D1 D2 D3 D4 D5 D6 D7 D8 E9 E10
数据方端数据:
D1 D2 D3 D4 D5 D6 D7 E8 E9 E10 E11 E12 E13
交中数据为:
D1 D2 D3 D4 D5 D6 D7 E9 E10
计算过程:
结果方端计算布谷鸟哈希,数据方端计算简单哈希得到如图7所示的数据表。
其中dum0代表结果方端数据通过布谷鸟哈希向分箱内映射后剩余为空的分箱内填充的数据,
其中为了防止计算分享索引的过程中出现h1(x) = h2(y)而导致错误的求交结果,在计算得到分箱索引后会将使用的不同哈希函数拼接到数据中去,即数据D1在塞入分箱内时,会将使用的哈希函数和数据D1进行拼接后塞入,比如数据D1使用的是h1哈希函数映射进相应分箱位置,则在分箱中插入的数据是D1_H1。结果方端在插入数据D5时,用h1哈希函数映射到的分箱位置为7,但是7号分箱已经存在数据D4_H1,换用h2哈希函数继续映射,h2哈希函数映射的位置为5,但是5号分箱已经存在数据D2_H1,因此需要用h3哈希函数继续映射得到位置6,6号分箱为空,因此将D5_H3数据塞入分箱中,其他数据映射方式类似。
参考图8,结果方端和数据方端两边执行OPRF,并对得到的OPRF结果进行统一的截断拆分。结果方端利用Paterson-Stockmeyer 算法提前计算好要发送的密文次方(数据方端分组内数据量的多少对结果方端是透明的),并通过打包加密的方式将数据进行加密,将加密后的数据和公钥pk序列化后发送至数据方端。
数据方端在接收到结果方端发送的序列化后的密文和公钥后,将其反序列化至内 存中,并结合Paterson-Stockmeyer 算法计算每个分组内的同态密文结果
Figure 85171DEST_PATH_IMAGE030
,将 同态密文结果
Figure 93316DEST_PATH_IMAGE030
序列化后发送至结果方端,结果方端反序列化至内存中后使用私 钥sk解密,并根据拆分的位置累加得到对应的明文结果如表1所示:
表1:
Figure 128268DEST_PATH_IMAGE031
从上述表1中可以看出,结果方端分箱索引为1,2,3,4,5,6,7,10,12内的数据为交中数据,而其余结果由于随机数r是数据方产生,结果方在不知道r的情况下无法反推出数据的任何方数据。交中数据分别为D3,D1,E9,D7,D2,D5,D4,D6,E10,和明文求交结果相一致。
图9为本申请实施例提供的一种基于同态加密的隐匿集合求交装置的模块框图。该装置包括:
存储器301;以及与所述存储器301连接的处理器302,所述处理器302被配置成实现如前面所述的方法的步骤。
具体实现方法参考前述方法实施例,此处不再赘述。
本申请可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本申请的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
注意,除非另有直接说明,否则本说明书(包含任何所附权利要求、摘要和附图)中所揭示的所有特征皆可由用于达到相同、等效或类似目的的可替代特征来替换。因此,除非另有明确说明,否则所公开的每一个特征仅是一组等效或类似特征的一个示例。在使用到的情况下,进一步地、较优地、更进一步地和更优地是在前述实施例基础上进行另一实施例阐述的简单起头,该进一步地、较优地、更进一步地或更优地后带的内容与前述实施例的结合作为另一实施例的完整构成。在同一实施例后带的若干个进一步地、较优地、更进一步地或更优地设置之间可任意组合的组成又一实施例。
虽然,上文中已经用一般性说明及具体实施例对本申请作了详尽的描述,但在本申请基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本申请精神的基础上所做的这些修改或改进,均属于本申请要求保护的范围。

Claims (10)

1.一种基于同态加密的隐匿集合求交方法,其特征在于,所述方法应用于结果方,包括以下步骤:
对待隐匿集合求交的数据做布谷鸟哈希,将自身待隐匿集合求交的数据映射到相应的分箱当中,与数据方约定相同的哈希函数,以使所述数据方对自身待隐匿集合求交的数据做简单哈希,完成数据对齐操作;
通过和所述数据方做不经意伪随机函数,对待隐匿集合求交的数据进行加密得到第一加密数据,并且使所述数据方得到对应的加密密钥,以及利用所述加密密钥对自身的待隐匿集合求交的数据进行加密得到第二加密数据;
生成同态加密的私钥和对应的公钥,使用所述公钥对截断拆分后的所述第一加密数据进行分组打包加密得到第三加密数据,将所述第三加密数据和所述公钥发送给所述数据方;
获取所述数据方发送的第四加密数据,所述第四加密数据由所述数据方在所述第三加密数据、所述公钥和对截断拆分后的所述第二加密数据进行分组打包后得到的明文的基础上进行同态计算后得到;
利用所述私钥对所述第四加密数据进行解密,当得到的解密结果按拆分的位置累加为0时,对应分箱位置的数据为交中数据。
2.根据权利要求1所述的基于同态加密的隐匿集合求交方法,其特征在于,
做布谷鸟哈希的方法包括:使用哈希函数对分箱后的待隐匿集合求交的数据进行分箱位置映射,当映射到的分箱位置中为空则将数据插入分箱中,并不再使用下一个哈希函数进行映射,当映射到的分箱位置中已经有数据插入,则用下一个哈希函数进行映射,保证每个分箱中最多只有一个数据。
3.根据权利要求1所述的基于同态加密的隐匿集合求交方法,其特征在于,和所述数据方做不经意伪随机函数的方法包括:
将待隐匿集合求交的数据哈希到加密后的椭圆曲线的点A上,对所述点A进行加密计算得到点B,将所述点B发送给所述数据方;
获取所述数据方发送的点C,对所述点C进行加密计算得到所述第一加密数据,所述点C由所述数据方利用所述加密密钥对所述点B进行加密计算后得到。
4.一种基于同态加密的隐匿集合求交方法,其特征在于,所述方法应用于数据方,包括以下步骤:
对待隐匿集合求交的数据做简单哈希,将自身待隐匿集合求交的数据映射到相应的分箱当中,与结果方约定相同的哈希函数,以使所述结果方对自身待隐匿集合求交的数据做布谷鸟哈希,完成数据对齐操作;
通过和所述结果方做不经意伪随机函数,得到对所述结果方的待隐匿集合求交的数据进行加密得到第一加密数据的加密密钥,利用所述加密密钥对自身的待隐匿集合求交的数据进行加密得到第二加密数据;
获取所述结果方发送的同态加密的公钥和使用所述公钥对截断拆分后的所述第一加密数据进行分组打包加密得到的第三加密数据,在所述第三加密数据、所述公钥和对截断拆分后的所述第二加密数据进行分组打包后得到的明文的基础上进行同态计算,得到第四加密数据;
将所述第四加密数据发送给所述结果方,以使所述结果方利用所述公钥对应的私钥对所述第四加密数据进行解密,当得到的解密结果按拆分的位置累加为0时,对应分箱位置的数据为交中数据。
5.根据权利要求4所述的基于同态加密的隐匿集合求交方法,其特征在于,
做简单哈希的方法包括:使用哈希函数对分箱后的待隐匿集合求交的数据进行分箱位置映射,并将数据插入分箱中。
6.根据权利要求4所述的基于同态加密的隐匿集合求交方法,其特征在于,进行加密计算,得到所述第四加密数据的方法包括:
利用公式:
Figure 405743DEST_PATH_IMAGE001
进行加密计算,得到所述第四加密数据,其中,
Figure DEST_PATH_IMAGE002
为得到的所述第四加密数 据,
Figure 493522DEST_PATH_IMAGE003
为所述第三加密数据,y1至yn为所述第二加密数据截断后的数据,r为所述数据方生 成不为零的随机数。
7.根据权利要求4或6所述的基于同态加密的隐匿集合求交方法,其特征在于,还包括:
使用Paterson-Stockmeyer 算法进行同态计算,以得到所述第四加密数据。
8.根据权利要求4所述的基于同态加密的隐匿集合求交方法,其特征在于,
截断后的所述第二加密数据的每组的数据量保持一致。
9.一种基于同态加密的隐匿集合求交装置,其特征在于,包括:
存储器;以及
与所述存储器连接的处理器,所述处理器被配置成实现如权利要求1至8中任一项所述的方法的步骤。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被机器执行时实现如权利要求1至8中任一项所述的方法的步骤。
CN202310030147.4A 2023-01-10 2023-01-10 一种基于同态加密的隐匿集合求交方法、装置及存储介质 Active CN115765969B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310030147.4A CN115765969B (zh) 2023-01-10 2023-01-10 一种基于同态加密的隐匿集合求交方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310030147.4A CN115765969B (zh) 2023-01-10 2023-01-10 一种基于同态加密的隐匿集合求交方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN115765969A CN115765969A (zh) 2023-03-07
CN115765969B true CN115765969B (zh) 2023-06-09

Family

ID=85348835

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310030147.4A Active CN115765969B (zh) 2023-01-10 2023-01-10 一种基于同态加密的隐匿集合求交方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN115765969B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116781243B (zh) * 2023-08-21 2023-10-31 北京电子科技学院 一种基于同态加密的不经意传输方法、介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114239074A (zh) * 2022-02-25 2022-03-25 蓝象智联(杭州)科技有限公司 一种不暴露中间结果的私有数据隐匿求交方法
WO2022099893A1 (zh) * 2020-11-10 2022-05-19 杭州趣链科技有限公司 数据查询方法、装置、系统以及数据集处理方法
CN114861203A (zh) * 2022-04-27 2022-08-05 蓝象智联(杭州)科技有限公司 基于不经意伪随机函数的隐匿求交方法
CN115378693A (zh) * 2022-08-18 2022-11-22 西安电子科技大学 一种用于纵向联邦学习数据对齐的隐匿集合求交方法
CN115567188A (zh) * 2022-11-11 2023-01-03 蓝象智联(杭州)科技有限公司 一种多键值隐匿求交方法、装置及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022099893A1 (zh) * 2020-11-10 2022-05-19 杭州趣链科技有限公司 数据查询方法、装置、系统以及数据集处理方法
CN114239074A (zh) * 2022-02-25 2022-03-25 蓝象智联(杭州)科技有限公司 一种不暴露中间结果的私有数据隐匿求交方法
CN114861203A (zh) * 2022-04-27 2022-08-05 蓝象智联(杭州)科技有限公司 基于不经意伪随机函数的隐匿求交方法
CN115378693A (zh) * 2022-08-18 2022-11-22 西安电子科技大学 一种用于纵向联邦学习数据对齐的隐匿集合求交方法
CN115567188A (zh) * 2022-11-11 2023-01-03 蓝象智联(杭州)科技有限公司 一种多键值隐匿求交方法、装置及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
崔炜荣 ; 杜承烈 ; .社交网络中基于CP-ABE的隐私保护属性匹配方法.计算机应用.2017,(第04期),全文. *

Also Published As

Publication number Publication date
CN115765969A (zh) 2023-03-07

Similar Documents

Publication Publication Date Title
Brakerski et al. Anonymous IBE, leakage resilience and circular security from new assumptions
US9083526B2 (en) Fully homomorphic encryption
US8189775B2 (en) Method of performing cipher block chaining using elliptic polynomial cryptography
JP4575283B2 (ja) 暗号装置、復号装置、プログラム及び方法
Alsaidi et al. Compression multi-level crypto stego security of texts utilizing colored email forwarding
US9467286B2 (en) Encryption device, decryption device, encryption method, decryption method, and program
EP2460310B1 (en) Symmetric-key encryption method and cryptographic system employing the method
US20150244518A1 (en) Variable-length block cipher apparatus and method capable of format preserving encryption
CN109450640B (zh) 基于sm2的两方签名方法及系统
JP2011232782A (ja) 楕円曲線上の新しいトラップドア1方向性関数と、その、より短い署名及び非対称暗号化への応用
CN109327304A (zh) 一种云计算中实现隐私保护的轻量级同态加密方法
CN111555880A (zh) 数据碰撞方法、装置、存储介质及电子设备
CN115765969B (zh) 一种基于同态加密的隐匿集合求交方法、装置及存储介质
EP4181456A1 (en) Secure integer comparison using binary trees
US20220385448A1 (en) Methods and systems for public and private-key leveled fully homomorphic encryption without bootstrapping with hensel codes
CN114172651B (zh) 一种sm9公钥加密算法、解密算法的gpu加速实现方法
Chu et al. Improved Integral Attacks on SIMON32 and SIMON48 with Dynamic Key‐Guessing Techniques
CN112580071A (zh) 一种数据处理方法及装置
Bai et al. Privacy‐Preserving Oriented Floating‐Point Number Fully Homomorphic Encryption Scheme
CN107147626A (zh) 一种AES算法与ElGamal算法相结合的加密文件传输方法
Gorbenko et al. Methods of building general parameters and keys for NTRU Prime Ukraine of 5 th–7 th levels of stability. Product form
Karakoç et al. Enabling Two-Party Secure Computation on Set Intersection
CN115022000A (zh) 铁路信号系统的通信方法、装置及电子设备
Tutoveanu Active implementation of end-to-end post-quantum encryption
Rajashekarappa et al. Study on cryptanalysis of the tiny encryption algorithm

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