CN114338164A - 一种匿名安全比较方法和系统 - Google Patents
一种匿名安全比较方法和系统 Download PDFInfo
- Publication number
- CN114338164A CN114338164A CN202111634653.1A CN202111634653A CN114338164A CN 114338164 A CN114338164 A CN 114338164A CN 202111634653 A CN202111634653 A CN 202111634653A CN 114338164 A CN114338164 A CN 114338164A
- Authority
- CN
- China
- Prior art keywords
- combination
- ciphertext
- key
- dimension
- information
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000004422 calculation algorithm Methods 0.000 claims description 52
- 238000003860 storage Methods 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 241000894007 species Species 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- MZWGYEJOZNRLQE-KXQOOQHDSA-N 1-stearoyl-2-myristoyl-sn-glycero-3-phosphocholine Chemical compound CCCCCCCCCCCCCCCCCC(=O)OC[C@H](COP([O-])(=O)OCC[N+](C)(C)C)OC(=O)CCCCCCCCCCCCC MZWGYEJOZNRLQE-KXQOOQHDSA-N 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本说明书实施例公开了一种匿名安全比较方法和系统。第一方获得匿名集合信息,用第一密钥加密与目标ID和第一对象的组合关联的第一明文信息得到第一密文信息,并将匿名集合信息和第一密文信息发送给第二方。第二方用第二密钥加密第一密文信息,得到二级密文信息。第二方基于匿名集合信息获得加密数据集合,加密数据集合包括匿名集合中每个ID与多个候选对象中每一个的组合对应的加密比较结果,与该组合关联的解密密钥能够基于与该组合关联的第二密文信息得到,该第二密文信息为用第二密钥加密与该组合关联的明文信息的结果。第二方将二级密文信息和加密数据集合返回给第一方,以便第一方能够获得目标ID对应的第二对象与第一对象的比较结果。
Description
技术领域
本说明书涉及信息技术领域,特别涉及一种匿名安全比较方法和系统。
背景技术
在安全多方计算(Secure Muti-Party Computation,SMPC/MPC)中,安全比较是一个很经典且有广泛应用场景的计算问题。如何在不泄露各方私密数据的前提下获得各方私密数据的比较结果,是安全比较问题的关键。
发明内容
本说明书实施例之一提供一种匿名安全比较方法。所述方法由第一方执行,其包括:获得匿名集合信息,匿名集合信息用于确定包括目标ID以及至少一个非目标ID的匿名集合;根据可交换加密算法用第一密钥加密与目标ID和第一对象的组合关联的第一明文信息,得到第一密文信息;将匿名集合信息和第一密文信息发送给第二方;接收第二方返回的加密数据集合和二级密文信息,其中,加密数据集合包括匿名集合中每个ID与多个候选对象中每一个的组合对应的加密比较结果,所述第一对象为所述多个候选对象之一,针对每个ID和候选对象的组合,其对应的比较结果为该组合中的ID对应的第二对象与该组合中的候选对象的比较结果,所述加密比较结果是用与该组合关联的加密密钥加密该组合对应的比较结果得到的,与该加密密钥匹配的解密密钥能够基于与该组合关联的第二密文信息得到,该第二密文信息为根据可交换加密算法用第二密钥加密与该组合关联的明文信息的结果,二级密文信息为根据可交换加密算法用第二密钥加密第一密文信息的结果;用与第一密钥匹配的解密密钥解密二级密文信息,得到与目标ID和第一对象的组合关联的第二密文信息;基于与目标ID和第一对象的组合关联的第二密文信息,获得与目标ID和第一对象的组合关联的解密密钥;用与目标ID和第一对象的组合关联的解密密钥解密加密数据集合中的加密比较结果,得到目标ID对应的第二对象与第一对象的比较结果。
本说明书实施例之一提供一种安全比较系统。所述系统在第一方实现,其包括:匿名集合信息获得模块,用于获得匿名集合信息,匿名集合信息用于确定包括目标ID以及至少一个非目标ID的匿名集合;第一加密模块,用于根据可交换加密算法用第一密钥加密与目标ID和第一对象的组合关联的第一明文信息,得到第一密文信息;第一发送模块,用于将匿名集合信息和第一密文信息发送给第二方;第一接收模块,用于接收第二方返回的加密数据集合和二级密文信息,其中,加密数据集合包括匿名集合中每个ID与多个候选对象中每一个的组合对应的加密比较结果,所述第一对象为所述多个候选对象之一,针对每个ID和候选对象的组合,其对应的比较结果为该组合中的ID对应的第二对象与该组合中的候选对象的比较结果,所述加密比较结果是用与该组合关联的加密密钥加密该组合对应的比较结果得到的,与该加密密钥匹配的解密密钥能够基于与该组合关联的第二密文信息得到,该第二密文信息为根据可交换加密算法用第二密钥加密与该组合关联的明文信息的结果,二级密文信息为根据可交换加密算法用第二密钥加密第一密文信息的结果;第一解密模块,用于用与第一密钥匹配的解密密钥解密二级密文信息,得到与目标ID和第一对象的组合关联的第二密文信息;解密密钥获得模块,用于基于与目标ID和第一对象的组合关联的第二密文信息,获得与目标ID和第一对象的组合关联的解密密钥;比较结果获得模块,用于用与目标ID和第一对象的组合关联的解密密钥解密加密数据集合中的加密比较结果,得到目标ID对应的第二对象与第一对象的比较结果。
本说明书实施例之一提供一种安全比较装置,包括处理器和存储设备,所述存储设备用于存储指令。其中,当所述处理器执行指令时,实现如本说明书任一实施例所述的由第一方执行的安全比较方法。
本说明书实施例之一提供一种匿名安全比较方法。所述方法由第二方执行,其包括:从第一方接收匿名集合信息和第一密文信息,其中,匿名集合信息用于确定目标ID以及至少一个非目标ID的匿名集合,第一密文信息为根据可交换加密算法用第一密钥加密与目标ID和第一对象的组合关联的第一明文信息的结果;根据可交换加密算法用第二密钥加密第一密文信息,得到二级密文信息;基于匿名集合信息获得加密数据集合,加密数据集合包括匿名集合中每个ID与多个候选对象中每一个的组合对应的加密比较结果,所述第一对象为所述多个候选对象之一,其中,针对每个ID和候选对象的组合,根据可交换加密算法用第二密钥加密与该组合关联的明文信息,得到与该组合关联的第二密文信息,基于该第二密文信息获得与该组合关联的加密密钥,使得与该加密密钥匹配的解密密钥能够基于该第二密文信息得到,用该加密密钥加密该组合中的ID对应的第二对象与该组合中的候选对象的比较结果,得到该组合对应的加密比较结果;将加密数据集合和二级密文信息返回给第一方,以使第一方能够获得目标ID对应的第二对象与第一对象的比较结果。
本说明书实施例之一提供一种安全比较系统。所述系统在第二方实现,其包括:第二接收模块,用于从第一方接收匿名集合信息和第一密文信息,其中,匿名集合信息用于确定目标ID以及至少一个非目标ID的匿名集合,第一密文信息为根据可交换加密算法用第一密钥加密与目标ID和第一对象的组合关联的第一明文信息的结果;第二加密模块,用于根据可交换加密算法用第二密钥加密第一密文信息,得到二级密文信息;加密数据集合获得模块,用于基于匿名集合信息获得加密数据集合,加密数据集合包括匿名集合中每个ID与多个候选对象中每一个的组合对应的加密比较结果,所述第一对象为所述多个候选对象之一,其中,针对每个ID和候选对象的组合,加密数据集合获得模块具体用于根据可交换加密算法用第二密钥加密与该组合关联的明文信息,得到与该组合关联的第二密文信息,基于该第二密文信息获得与该组合关联的加密密钥,使得与该加密密钥匹配的解密密钥能够基于该第二密文信息得到,用该加密密钥加密该组合中的ID对应的第二对象与该组合中的候选对象的比较结果,得到该组合对应的加密比较结果;第二发送模块,用于将加密数据集合和二级密文信息返回给第一方,以使第一方能够获得目标ID对应的第二对象与第一对象的比较结果。
本说明书实施例之一提供一种安全比较装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的由第二方执行的安全比较方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的匿名安全比较的应用场景示意图;
图2是根据本说明书一些实施例所示的匿名安全比较方法的示例性交互流程图;
图3是根据本说明书一些实施例所示的生成加密数据集合中每个加密比较结果的示例性流程图;
图4是是根据本说明书一些实施例所示的ID和候选对象的组合的排列示意图;
图5是根据本说明书一些实施例所示的多个候选对象的比较结果示意图;
图6是根据本说明书一些实施例所示的在第一方实现的安全比较系统的示例性模块图;
图7是根据本说明书一些实施例所示的在第二方实现的安全比较系统的示例性模块图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书一些实施例所示的匿名安全比较的应用场景示意图。
如图1所示,匿名安全比较的参与方包括第一方和第二方。第一方持有第一对象X1以及多个ID,如ID1,ID2,...,IDi,...,IDn;第二方持有同样的多个ID,以及与多个ID一一对应的多个第二对象X2。第一方希望通过安全比较获得目标ID对应的第二对象X2与第一对象X1的比较结果Y,其中,目标ID可以是第一方根据实际需要从多个ID中确定的。这里的匿名可指第一方的目标ID不会泄露。这里的安全可指,第一方的第一对象X1以及目标ID不会泄露,第二方的第二对象X2也不会泄露。这里的比较可以是针对大小(如数值大小)、高低(如等级高低)、先后(如时间先后)等相对关系而言的。
仅作为示例,第一方可以是电商平台,其持有产品的订单金额。第二方可以是资金管理平台,其管理多个用户的账户余额。在交易过程中,电商平台可以事先比较用户的订单金额与其账户余额的大小关系,以确定是否进一步通过资金管理平台从该用户的账户中扣款以支付其订单费用,例如,若订单金额小于或等于用户的账户余额,则通过所述资金管理平台支付订单费用。然而,电商平台不希望泄露用户的订单信息(如产品的订单金额)以及用户ID,资金管理平台也不希望泄露用户的账户余额。因此,需要提供一种匿名安全比较方案,使得在不泄露双方数据隐私的前提下,电商平台可以获得订单金额和账户余额的比较结果。
图2是根据本说明书一些实施例所示的匿名安全比较方法的示例性交互流程图。如图2所示,该方法可以包括以下步骤。
步骤110,第一方获得匿名集合信息。在一些实施例中,步骤110可以由匿名集合信息获得模块610实现。
匿名集合信息用于描述包括目标ID以及至少一个非目标ID的匿名集合。换言之,基于匿名集合信息可以确定包括目标ID以及至少一个非目标ID的匿名集合。
可以理解,将目标ID与非目标ID放在一起,可以达到匿名的目的。非目标ID的获取方式可以有多种。在一些实施例中,可以从不包含目标ID的ID集合(如前述的多个ID)中随机选取若干ID作为所述至少一个非目标ID。在一些实施例中,可以将目标ID的至少一个近似ID确定为所述至少一个非目标ID。例如,当ID为10位的号码时,可以将开头3位和末尾4位都与目标ID相同的ID加入匿名集合。具体地,假设目标ID为“0123456789”,可以将满足“012***6789”格式(*表示0~9中的任意数)的所有ID加入匿名集合。
在一些实施例中,可以将匿名集合本身作为匿名集合信息。在又一些实施例中,可以将匿名集合的标识信息作为匿名集合信息。例如,匿名集合信息可以包括匿名集合中ID的共同特征信息。具体地,续前例,可以将“012***6789”格式的信息作为匿名集合信息,进而接收匿名集合信息的一方,如第二方,可以将所述ID集合中满足该格式的ID确定为匿名集合的成员。
步骤120,第一方根据可交换加密算法用第一密钥加密与目标ID和第一对象的组合关联的第一明文信息,得到第一密文信息。在一些实施例中,步骤120可以由第一加密模块620实现。
第一明文信息可以是目标ID和第一对象本身,也可以是目标ID和第一对象形成的组合的标识信息,关于第一明文信息的更多描述可以在本说明书其他地方找到。可以理解,第一方用第一密钥加密第一明文信息后,外界,如第二方,在没有解密权限的情况下无法由第一密文信息获取第一对象,即可以避免第一对象对外泄露。
第一密钥可以是第一方已经拥有的符合所述可交换加密算法的加密密钥,第一方也可以根据所述可交换加密算法临时生成第一密钥。
借助可交换加密算法,第一方可以获得第二对象与第一对象的比较结果的解密权限。关于可交换加密算法的性质,可以在步骤150的相关描述中找到。
步骤130,第一方将匿名集合信息和第一密文信息发送给第二方。在一些实施例中,步骤130可以由第一发送模块630实现。
步骤210,第二方从第一方接收匿名集合信息和第一密文信息。在一些实施例中,步骤210可以由第二接收模块710实现。
参考步骤110和步骤120,匿名集合信息反映包括目标ID以及至少一个非目标ID的匿名集合,第二方可以基于匿名集合信息确定所述匿名集合。第一密文信息为根据可交换加密算法用第一密钥加密与目标ID和第一对象的组合关联的第一明文信息的结果。
步骤220,第二方根据可交换加密算法用第二密钥加密第一密文信息,得到二级密文信息。在一些实施例中,步骤220可以由第二加密模块720实现。
第二密钥可以是第二方已经拥有的符合所述可交换加密算法的加密密钥,第二方也可以根据所述可交换加密算法临时生成第二密钥。
应当理解,本文提及的可交换加密算法可以是非对称加密算法,也可以是对称加密算法。换言之,第一密钥/第二密钥可以是对称密钥,也可以是非对称密钥。对于非对称密钥,第一密钥(如公钥)和与其匹配的解密密钥(如私钥)是不同的,第二密钥(如公钥)和与其匹配的解密密钥(如私钥)是不同的。对于对称密钥,第一密钥和与其匹配的解密密钥是相同,第二密钥和与其匹配的解密密钥是相同。仅作为示例,本文提及的可交换加密算法包括但不限于椭圆曲线加密算法(Elliptic Curve Cryptography,ECC)、RSA算法和SRA算法。
步骤230,第二方基于匿名集合信息获得加密数据集合。在一些实施例中,步骤230可以由加密数据集合获得模块730实现。
加密数据集合可以包括匿名集合中每个ID与多个候选对象中每一个的组合对应的加密比较结果。可以理解,每个ID可用于确定对应的第二对象,每个ID和候选对象的组合对应的加密比较结果即该组合中的ID对应的第二对象与该组合中的候选对象的加密比较结果。举例说明,假设匿名集合包含3个ID且有4个候选对象,则总共可产生3*4=12个(种)组合,每个组合对应一对对象(第一对象和第二对象)的(加密)比较结果。
在一些实施例中,所述多个候选对象可以由第二方确定,同时第一方可以知晓所述多个候选对象或者说与第二方生成多个候选对象的方式达成共识,以便第一方可以从多个候选对象中选择与实际对象相同或最相近的一个作为第一对象。例如,第二对象为数值(如金额),则多个候选对象可以是多个数值组成的等差数列。举例说明,假设某ID对应的第二对象为账户余额且账户余额为100,所述多个候选对象可以是第一项为10,公差为20的等差数列,数列的元素总数为10,即所述多个候选对象可以是10,30,50,…,190。
在一些实施例中,第二方可以预先将ID集合(包含匿名集合)中每个ID对应的第二对象与每一个候选对象进行比较,当账户余额大于或等于候选金额时,用“1”记录账户余额与该候选金额的比较结果,反之用“0”记录账户余额与该候选金额的比较结果。在又一些实施例中,第二方可以根据匿名集合信息临时确定匿名集合中每个ID对应的第二对象与每一个候选对象的比较结果。
在第二方不知晓第一对象以及目标ID是匿名集合中哪个ID的情况下,第二方可以准备匿名集合中每个ID对应的第二对象与多个候选对象中每一个的比较结果。如此,当第一对象为所述多个候选对象之一时,第一方可以获得目标ID对应的第二对象与第一对象的比较结果。
将各ID对应的第二对象与各候选对象的比较结果以加密形态传输给第一方,可以避免第二对象对外泄露。续前例,某ID对应的第二对象,如账户余额,为100。一旦发现账户余额与候选金额90的比较结果为“1”且账户金额与候选金额120的比较结果为“0”,就能推测账户余额在90~120之间。尽管,在一些场景下,多个候选对象间具有较大的间隔(即公差),但比较结果出现差异的若干连续候选对象依然可以反映第二对象的近似值,这也可视作第二对象的泄露。然而在又一些场景下,候选对象可能具有更小的间隔(如公差为1甚至更小),则会导致第二对象更大程度的泄露。例如,账户余额为100.21,候选金额取整数,若账户余额与候选金额100的比较结果为“1”且账户金额与候选金额101的比较结果为“0”,则说明账户余额约等于100。
在一些实施例中,针对每个ID和候选对象的组合,该组合对应的加密比较结果可以按如下流程生成:根据可交换加密算法用第二密钥加密与该组合关联的明文信息,得到与该组合关联的第二密文信息;基于该第二密文信息获得与该组合关联的加密密钥,使得与该加密密钥匹配的解密密钥(即与该组合关联的解密密钥)能够基于与该第二密文信息得到;用该加密密钥加密该组合中的ID对应的第二对象与该组合中的候选对象的比较结果,得到该组合对应的加密比较结果。与第一明文信息类似的,与ID和候选对象的组合关联的明文信息可以是该组合中的ID和候选对象本身,也可以是该组合的标识信息,关于明文信息的更多描述可以在本说明书其他地方找到。关于生成加密比较结果的更多内容还可以参见关于图3的相关说明。
与ID和候选对象的组合关联的解密密钥用于对该组合中的ID对应的第二对象与该组合的候选对象的加密比较结果进行解密,得到该组合中的ID对应的第二对象与该组合的候选对象的比较结果。针对每个ID和候选对象的组合,与该组合关联的解密密钥能够基于与该组合关联的第二密文信息获得,这意味着:获得了与ID和候选对象的组合关联的第二密文信息且知晓解密密钥的生成方法,就相当于获得了该组合中的ID对应的第二对象与该组合中的候选对象的加密比较结果的解密权限。例如,第一方知晓解密密钥的生成方法,当获得了与目标ID和第一对象的组合关联的第二密文后,第一方便可以获得目标ID对应的第二对象与第一对象的加密比较结果的解密权限,进而得到两者的比较结果。
在一些实施例中,可以采用对称密钥作为比较结果的加密密钥和解密密钥,即加密密钥和解密密钥相同。对称加密具有加解密效率高的优点,适合在线比较。在一些实施例中,比较结果的加密密钥和解密密钥可以是不同的,例如,可以采用非对称加密方式对比较结果进行加密。
步骤240,第二方将加密数据集合和二级密文信息返回给第一方,以使第一方能够获得目标ID对应的第二对象与第一对象的比较结果。在一些实施例中,步骤240可以由第二发送模块740实现。
关于第一方获得目标ID对应的第二对象与第一对象的比较结果的详细过程,可以参考步骤150~170及其相关描述。
步骤140,第一方接收第二方返回的加密数据集合和二级密文信息。在一些实施例中,步骤140可以由第一接收模块640实现。
关于加密数据集合和二级密文信息的更多细节,可以参考步骤220、步骤230及其相关描述。
步骤150,第一方用与第一密钥匹配的解密密钥解密二级密文信息,得到与目标ID和第一对象的组合关联的第二密文信息。在一些实施例中,步骤150可以由第一解密模块650实现。
根据前述内容,二级密文信息为根据可交换加密算法用第二密钥加密第一密文信息的结果,其中,第一密文信息为根据可交换加密算法用第一密钥加密第一明文信息的结果。与目标ID和第一对象的组合关联的第二密文信息为根据可交换加密算法用第二密钥加密第一明文信息的结果。
可交换加密算法满足:对同一明文使用多个密钥迭代加密时,最终获得的密文与加密顺序无关。使用多个密钥迭代加密是指:每次加密使用一个密钥,每进行一次加密便以当前获得的密文为输入再次加密,直至获得最终的密文。为了直观理解可交换算法的性质,下面以两次加密为例给出相应的数学表达:Ekey2(Ekey1(M))=Ekey1(Ekey2(M))。其中,key1和key2表示两次加密使用的密钥,E()表示所述可交换加密算法,M表示明文。可以看出,无论是先使用key1加密还是先使用key2加密,获得的二次(级)密文都不变。基于此,使用与任意一个加密密钥匹配的解密密钥对二级密文进行解密,都可以得到使用另一个加密密钥加密明文得到的一级密文。例如,使用与key1匹配的解密密钥对二级密文Ekey2(Ekey1(M))进行解密,相当于使用与key1匹配的解密密钥对二级密文Ekey1(Ekey2(M))进行解密,解密结果就等于使用key2加密明文M得到的一级密文Ekey2(M)。
不妨将可交换加密算法记为E(),第一密钥记为key1,第二密钥记为key2,第一明文信息记为M。相应地,第一密文信息可以记为Ekey1(M),二级密文信息可以记为Ekey2(Ekey1(M))。如此,第一方使用与第一密钥key1匹配的解密密钥解密二级密文信息Ekey2(Ekey1(M)),相当于使用与第一密钥key1匹配的解密密钥对二级密文信息Ekey1(Ekey2(M))进行解密,解密结果就等于使用第二密钥key2加密第一明文信息M得到的第二密文信息Ekey2(M)。由于第二密文信息Ekey2(M)为使用第二密钥key2加密与目标ID和第一对象的组合关联的第一明文信息M的结果,第二密文信息Ekey2(M)即与目标ID和第一对象的组合关联的第二密文信息。
步骤160,第一方基于与目标ID和第一对象的组合关联第二密文信息,获得与目标ID和第一对象的组合关联的解密密钥。在一些实施例中,步骤160可以由解密密钥获得模块660实现。
可以理解,与目标ID和第一对象的组合关联的解密密钥匹配于与目标ID和第一对象的组合关联的加密密钥。前面提到,与ID和候选对象的组合关联的解密密钥能够基于与该组合关联的第二密文信息得到。当第一对象为所述多个候选对象之一时,与目标ID和第一对象的组合关联的解密密钥能够基于与目标ID和第一对象的组合关联的第二密文信息得到。
步骤170,第一方用与目标ID和第一对象的组合关联的解密密钥解密加密数据集合中的加密比较结果,得到目标ID对应的第二对象与第一对象的比较结果。在一些实施例中,步骤170可以由比较结果获得模块670实现。
在一些实施例中,加密数据集合中各加密比较结果对应的解密密钥可以互不相同。可以理解,为了使得加密数据集合中各加密比较结果对应的解密密钥互不相同,加密数据集合中各加密比较结果对应的加密密钥可以互不相同。例如,针对每个ID和候选对象的组合,可以基于与该组合关联的第二密文信息获得与该组合关联的加密密钥和解密密钥,当与各组合关联的明文信息互异时,加密数据集合中各加密比较结果对应的解密密钥也是互不相同的。由此,当第一对象为所述多个候选对象之一时,可以确保第一方只能获得目标ID和第一对象的组合对应的加密比较结果的解密权限,即,第一方只能解密出目标ID对应的第二对象与第一对象的比较结果,进而防止第二对象泄露。另外,由于各加密比较结果对应的解密密钥互不相同,第一方可以遍历加密数据集合中的加密比较结果,直至用与目标ID和第一对象的组合关联的解密密钥解密成功,解密结果即目标ID对应的第二对象与第一对象的比较结果。
下面结合图3说明加密数据集合中每个加密比较结果的生成过程。如图3所示,针对每个ID和候选对象的组合,该组合对应的加密比较结果可以按流程300生成,流程300可以由第二方执行,其包括以下步骤。
步骤310,根据可交换加密算法用第二密钥加密与该组合关联的明文信息,得到与该组合关联的第二密文信息。
在一些实施例中,每个ID和候选对象的组合可以具有索引,与ID和候选对象的组合关联的明文信息包括该组合的索引。第一对象为所述多个候选对象之一,自然地,与目标ID和第一对象的组合关联的第一明文信息即包括目标ID和第一对象的组合的索引。可以理解,各组合的索引对于双方而言可以是公开信息。
在一些实施例中,所述索引可以是一维的。例如,多个组合可以组成一个序列,索引可以是组合在序列中的序号或下标。
在一些实施例中,针对每个ID和候选对象的组合,该组合的索引可以是多维的,例如,索引可以包括第一维数据和第二维数据,或者包括更多维数据。
在一些实施例中,鉴于索引是针对ID和候选对象的组合而言的,自然地,ID和候选对象就可以作为二维索引的两个维度。即,针对任一ID和候选对象的组合,其索引的第一维数据可以反映该组合中的ID,第二维数据可以是该组合中的候选对象的标识。具体地,第一维数据可以是ID的实际值,也可以是ID的映射值,只要能区分匿名集合中的不同ID即可。同理,第二维数据可以是候选对象的实际值,也可以是候选对象的映射值,只要能区分不同的候选对象即可。仅作为示例,假设匿名集合为{ID1,ID2,ID3}且所述多个候选对象为0~9,则总共可以产生30个(种)组合。与IDx(1≤x≤3)和候选对象p(0≤p≤9)的组合的索引可以表示为IDx||p,其中,符号||表示拼接,符号||前为第一维数据,符号||后为第二维数据。
在一些实施例中,针对每个ID和候选对象的组合,其索引的每一维(假设为第i维)数据可以包括第i维标记以及该组合的第i维数值。其中,第i维数值为将多个ID和候选对象的组合排列成N维张量时,该组合的第i维坐标。以二维索引为例,针对每个ID和候选对象的组合,其索引的第一维数据可以包括第一维标记以及该组合的第一维数值,第二维数据可以包括第二维标记以及该组合的第二维数值,其中,第一维数值为将多个ID和候选对象的组合排列成二维矩阵时,该组合的行坐标,第二维数值为该组合的列坐标。仅作为示例,假设匿名集合为{ID1,ID2,ID3}且所述多个候选对象为0~9,则总共可以产生30个(种)组合。可以按图4所示的5*6表格来排列这30个组合,进而每个组合的索引可以包括对应其行坐标的第一维数据以及对应其列坐标的第二维数据。其中,第一维标记和第二维标记可用任意符号,只要二者互异即可。第一维数值和第二维数值可以分别是行坐标(或行号)和列坐标(或列号)。基于此,参考图4,以ID2和候选对象3的组合(ID2,3)为例,其索引为(0||2,1||1)。其中,符号||可以表示拼接。符号||前为标记,第一维标记可以是0,第二维标记可以是1。符号||后为具体数值,标识行号或列号。
在一些实施例中,可以根据可交换加密算法用第二密钥加密ID和候选对象的组合的索引,得到与该组合关联的第二密文信息。对于多维索引,可以使用第二密钥分别加密索引的第一维数据、第二维数据等,得到第二密文信息中的第一维密文、第二维密文等。
通过上述示例,不难发现各组合的索引在单个维度上具有重复性,这使得:通过适当提高索引维度,可以减少第二方为获得与各组合关联的第二密文信息而执行的加密次数,进而提高加密数据集合的获得效率。举例说明,假设匿名集合包括3个ID且有10个候选对象,则总共可产生3*10=30个(种)组合。对于一维索引,这30个组合的索引要通过30个实例(如数值)来表示,相应地,需要通过30次加密来获得与这30个组合一一关联的30份第二密文信息。对于ID标识+候选对象标识形式的二维索引,这30个组合的索引的第一维数据可通过3个实例来表示,第二维数据可以通过10个实例来表示,相应地,只需要通过3+10=13次加密来获得与这30个组合一一关联的30份第二密文信息。对于5×6的二维矩阵(张量)形式的二维索引,这30个组合的索引的第一维数据可通过5个实例来表示,第二维数据可以通过6个实例来表示,相应地,只需要通过5+6=11次加密来获得与这30个组合一一关联的30份二级密文信息。可以看出,二维索引相较于一维索引可以显著减少加密次数。对于多维张量形式的多维索引,只要参与安全计算的多方对各组合的排列成张量的方式达成一致,也可实现对同一组合得到相同的多维索引。例如,双方可以预先约定匿名集合中的ID总数、张量的维度以及将各组合“填充”到张量中的顺序。示例性的,对于5×6的二维矩阵,双方可以约定先基于ID升序排序各组合,再基于候选对象升序排列同一ID的多个组合,然后将如此排序的多个组合从左到右、从上到下依次“填充”到矩阵中。
当与ID和候选对象的组合关联的明文信息包括多维索引时,相应地,第一对象作为所述多个候选对象之一,与目标ID和第一对象的组合关联的第一密文信息可以包括第1维密文Y_1至第N维密文Y_N。其中,第i维密文Y_i为用第一密钥(记为key1)加密目标ID和第一对象的组合的索引的第i维数据X_i的结果,即Y_i=E(key1,X_i)。以二维索引为例,当所述索引包括第一维数据X_1和第二维数据X_2时,第一密文信息可以包括第一维密文Y_1和第二维密文Y_2。其中,第一维密文Y_1为用第一密钥(记为key1)加密目标ID和第一对象的组合的索引的第一维数据X_1的结果,即Y_1=E(key1,X_1);第二维密文Y_2为用第一密钥(记为key1)加密目标ID和第一对象的组合的索引的第二维数据X_2的结果,即Y_2=E(key1,X_2)。
二级密文信息可以包括第1维二级密文Z_1至第N维二级密文Z_N。其中,第i维二级密文Z_i为用第二密钥key2加密第一密文信息中的第i维密文Y_i的结果,即Z_i=E(key2,Y_i)。即,第二方可以用第二密钥key2加密第一密文信息中的第i维密文Y_i,得到二级密文信息中的第i维二级密文Z_i。相应地,第一方可以用与第一密钥key1匹配的解密密钥解密二级密文信息中的第i维二级密文Z_i,得到与目标ID和第一对象的组合关联的第二密文信息中的第i维密文Y_i。以二维索引为例,当所述索引包括第一维数据X_1和第二维数据X_2时,二级密文信息可以包括第一维二级密文Z_1和第二维二级密文Z_2。其中,第一维二级密文Z_1为用第二密钥key2加密第一密文信息中的第一维密文Y_1,得到二级密文信息中的第一维二级密文Z_1;第二维二级密文Z_2为用第二密钥key2加密第一密文信息中的第二维密文Y_2,得到二级密文信息中的第二维二级密文Z_2。
步骤320,基于与该组合关联的第二密文信息获得与该组合关联的加密密钥,使得与该加密密钥匹配的解密密钥能够基于该第二密文信息得到。
根据前文,对于一维索引,第二密文信息可以包括一维密文。可以计算该一维密文的哈希值得到所述加密密钥。根据前文,对于多维索引,第二密文信息可以包括多维密文。在一些场景下,为了获得一维的加密密钥来加密比较结果,针对每个ID和候选对象的组合,第二方可以对与该组合关联的第二密文信息中的各维密文(例如,对于N维索引,第1维密文到第N维密文)进行合并,并基于合并结果获得与该组合关联的加密密钥。进一步地,可以将合并结果的哈希值作为加密密钥。
相应地,第一对象为所述多个候选对象之一,第一方可以获得与目标ID和第一对象的组合关联的第二密文信息中各维密文的合并结果的哈希值,并基于该哈希值获得与目标ID和第一对象的组合关联的解密密钥(此时为对称加密的场景)。
以二维索引为例,针对每个ID和候选对象的组合,第二方可以对与该组合关联的第二密文信息中的第一维密文和第二维密文进行合并,并将合并结果的哈希值作为与该组合关联的加密密钥。在一些实施例中,所述合并可以指求和或者异或运算,即,所述合并结果可以是和值或者异或结果。相应地,第一方可以获得与目标ID和第一对象的组合关联的第二密文信息中的第一维密文和第二维密文的合并结果的哈希值,并基于该哈希值获得与目标ID和第一对象的组合关联的解密密钥。
步骤330,用该加密密钥加密该组合中的ID对应的第二对象与该组合中的候选对象的比较结果,得到该组合对应的加密比较结果。
比较结果(相对关系)可以通过设定规则表示。例如,可以用“1”表示第二对象大于或等于候选对象,用“0”表示第二对象小于候选对象。当然,也可以用“0”表示第二对象小于候选对象,用“1”表示第二对象大于或等于候选对象。又如,可以用0/1之外的其他预设值来表示比较结果。
可以理解,不宜单独对“相等”(或“相同”)这类敏感的比较结果进行单独表示,因为这将导致第二对象的泄露。例如,如果用“0”表示第二对象小于候选对象,用“1”表示第二对象等于候选对象,以及用“2”表示第二对象大于候选对象。那么,在第一对象刚好等于第二对象的情况下,第一方可以根据获得的第二对象与第一对象的比较结果为“1”,将第一对象的值确定为第二对象的值。不难看出,参考前述示例,可以将比较结果划分成若干类(如两类),并将“等于”划分为其中任意一类比较结果。
仅作为示例,当ID1、ID2、ID3对应的第二对象分别为1、5、6时,10个候选对象(0~9)的比较结果可以如图5所示。可以看出,当候选对象小于或等于第二对象时,第二对象与该候选对象的比较结果记为“1”;当候选对象大于第二对象时,第二对象与该候选对象的比较结果记为“0”。
需要说明的是,在一些实施例中,第二方发送给第一方的加密数据集合中的加密比较结果可以是按照ID和候选对象的组合的索引顺序排列的。由于ID和候选对象的组合及其索引方式可以在双方公开,因此第一方可以根据目标ID和第一对象的组合的索引快速从加密数据集合中确定目标ID和第一对象的组合对应的加密比较结果(即目标ID对应的第二对象与第一对象的加密比较结果),进而利用解密密钥快速、准确的获得目标ID对应的第二对象与第一对象的比较结果。
应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
图6是根据本说明书一些实施例所示的在第一方实现的安全比较系统的示例性模块图。
如图6所示,系统600可以包括匿名集合信息获得模块610、第一加密模块620、第一发送模块630、第一接收模块640、第一解密模块650、解密密钥获得模块660和比较结果获得模块670。
匿名集合信息获得模块610可以用于获得匿名集合信息,匿名集合信息可用于确定包括目标ID以及至少一个非目标ID的匿名集合。
第一加密模块620可以用于根据可交换加密算法用第一密钥加密与目标ID和第一对象的组合关联的第一明文信息,得到第一密文信息。
第一发送模块630可以用于将匿名集合信息和第一密文信息发送给第二方。
第一接收模块640可以用于接收第二方返回的加密数据集合和二级密文信息。其中,加密数据集合可包括匿名集合中每个ID与多个候选对象中每一个的组合对应的加密比较结果,所述第一对象为所述多个候选对象之一。针对每个ID和候选对象的组合,其对应的比较结果为该组合中的ID对应的第二对象与该组合中的候选对象的比较结果,所述加密比较结果是用与该组合关联的加密密钥加密该组合对应的比较结果得到的,与该加密密钥匹配的解密密钥能够基于与该组合关联的第二密文信息得到,该第二密文信息为根据可交换加密算法用第二密钥加密与该组合关联的明文信息的结果。二级密文信息为根据可交换加密算法用第二密钥加密第一密文信息的结果。
第一解密模块650可以用于用与第一密钥匹配的解密密钥解密二级密文信息,得到与目标ID和第一对象的组合关联的第二密文信息。
解密密钥获得模块660可以用于基于与目标ID和第一对象的组合关联的第二密文信息,获得与目标ID和第一对象的组合关联的解密密钥。
比较结果获得模块670可以用于用与目标ID和第一对象的组合关联的解密密钥解密加密数据集合中的加密比较结果,得到目标ID对应的第二对象与第一对象的比较结果。
图7是根据本说明书一些实施例所示的在第二方实现的安全比较系统的示例性模块图。
如图7所示,系统700可以包括第二接收模块710、第二加密模块720、加密数据集合获得模块730和第二发送模块740。
第二接收模块710可以用于从第一方接收匿名集合信息和第一密文信息。其中,匿名集合信息可用于确定目标ID以及至少一个非目标ID的匿名集合,第一密文信息为根据可交换加密算法用第一密钥加密与目标ID和第一对象的组合关联的第一明文信息的结果。
第二加密模块720可以用于根据可交换加密算法用第二密钥加密第一密文信息,得到二级密文信息。
加密数据集合获得模块730可以用于基于匿名集合信息获得加密数据集合。加密数据集合可包括匿名集合中每个ID与多个候选对象中每一个的组合对应的加密比较结果,所述第一对象为所述多个候选对象之一。其中,针对每个ID和候选对象的组合,加密数据集合获得模块具体可用于:根据可交换加密算法用第二密钥加密与该组合关联的明文信息,得到与该组合关联的第二密文信息;基于该第二密文信息获得与该组合关联的加密密钥,使得与该加密密钥匹配的解密密钥能够基于该第二密文信息得到;用该加密密钥加密该组合中的ID对应的第二对象与该组合中的候选对象的比较结果,得到该组合对应的加密比较结果。
第二发送模块740可以用于将加密数据集合和二级密文信息返回给第一方,以使第一方能够获得目标ID对应的第二对象与第一对象的比较结果。
关于系统600、系统700及其模块的更多细节,可以参考图2及其相关描述。
应当理解,图6、图7所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,第一解密模块650和解密密钥获得模块660可以是一个系统中的不同模块,也可以是一个模块实现这两个模块的功能。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:(1)提供了一种匿名安全比较方法,可以保护双方的数据隐私;(2)只有一轮交互且通信量低,可以实现满足低时延、高并发要求的在线比较;(3)借助多维索引可以显著减少加密次数,进而可以大大提高比较效率。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本申请中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (23)
1.一种匿名安全比较方法,其中,所述方法由第一方执行,其包括:
获得匿名集合信息,匿名集合信息用于确定包括目标ID以及至少一个非目标ID的匿名集合;
根据可交换加密算法用第一密钥加密与目标ID和第一对象的组合关联的第一明文信息,得到第一密文信息;
将匿名集合信息和第一密文信息发送给第二方;
接收第二方返回的加密数据集合和二级密文信息;其中,加密数据集合包括匿名集合中每个ID与多个候选对象中每一个的组合对应的加密比较结果,所述第一对象为所述多个候选对象之一,针对每个ID和候选对象的组合,其对应的比较结果为该组合中的ID对应的第二对象与该组合中的候选对象的比较结果,所述加密比较结果是用与该组合关联的加密密钥加密该组合对应的比较结果得到的,与该加密密钥匹配的解密密钥能够基于与该组合关联的第二密文信息得到,该第二密文信息为根据可交换加密算法用第二密钥加密与该组合关联的明文信息的结果;二级密文信息为根据可交换加密算法用第二密钥加密第一密文信息的结果;
用与第一密钥匹配的解密密钥解密二级密文信息,得到与目标ID和第一对象的组合关联的第二密文信息;
基于与目标ID和第一对象的组合关联的第二密文信息,获得与目标ID和第一对象的组合关联的解密密钥;
用与目标ID和第一对象的组合关联的解密密钥解密加密数据集合中的加密比较结果,得到目标ID对应的第二对象与第一对象的比较结果。
2.如权利要求1所述的方法,其中,每个ID和候选对象的组合具有索引,与ID和候选对象的组合关联的明文信息包括该组合的索引;与目标ID和第一对象的组合关联的第一明文信息包括该组合的索引。
3.如权利要求2所述的方法,其中,用与目标ID和第一对象的组合关联的解密密钥解密加密数据集合中的加密比较结果,包括:
根据与目标ID和第一对象的组合关联的索引,从加密数据集合中确定目标ID对应的第二对象与第一对象的加密比较结果;
用与目标ID和第一对象的组合关联的解密密钥解密该加密比较结果,得到目标ID对应的第二对象与第一对象的比较结果。
4.如权利要求2所述的方法,其中,所述索引包括第一维数据和第二维数据;
针对每个ID和候选对象的组合,与该组合关联的第二密文信息包括用第二密钥加密其索引的第一维数据得到的第一维密文和用第二密钥加密其索引的第二维数据得到的第二维密文;
用第一密钥加密与目标ID和第一对象的组合关联的第一明文信息,得到第一密文信息,包括:用第一密钥加密该组合的索引的第一维数据,得到第一密文信息中的第一维密文;用第一密钥加密该组合的索引的第二维数据,得到第一密文信息中的第二维密文;
二级密文信息包括用第二密钥加密第一密文信息中的第一维密文得到的第一维二级密文和用第二密钥加密第一密文信息中的第二维密文得到的第二维二级密文;
所述用与第一密钥匹配的解密密钥解密二级密文信息,得到与目标ID和第一对象的组合关联的第二密文信息,包括:用与第一密钥匹配的解密密钥解密二级密文信息中的第一维二级密文,得到与目标ID和第一对象的组合关联的第二密文信息中的第一维密文;用与第一密钥匹配的解密密钥解密二级密文信息中的第二维二级密文,得到与目标ID和第一对象的组合关联的第二密文信息中的第二维密文。
5.如权利要求4所述的方法,其中,针对每个ID和候选对象的组合,其索引的第一维数据反映该组合中的ID,第二维数据为该组合中的候选对象的标识。
6.如权利要求4所述的方法,其中,针对每个ID和候选对象的组合,其索引的第一维数据包括第一维标记以及该组合的第一维数值,第二维数据包括第二维标记以及该组合的第二维数值;其中,第一维数值为将多个组合排列成矩阵时,该组合的行坐标,第二维数值为该组合的列坐标。
7.如权利要求4所述的方法,其中,针对每个ID和候选对象的组合,与该组合关联的加密密钥基于与该组合关联的第二密文信息中的第一维密文和第二维密文的合并结果的哈希值得到;
基于与目标ID和第一对象的组合关联的第二密文信息,获得与目标ID和第一对象的组合关联的解密密钥,包括:
获得该组合关联的第二密文信息中的第一维密文和第二维密文的合并结果的哈希值,基于该哈希值获得与该组合关联的解密密钥。
8.如权利要求7所述的方法,其中,所述合并结果为异或结果。
9.如权利要求1所述的方法,其中,针对每个ID和候选对象的组合,该组合中的ID对应的第二对象与该组合中的候选对象的比较结果的加密密钥和解密密钥相同。
10.如权利要求1所述的方法,其中,加密数据集合中各加密比较结果对应的解密密钥互不相同。
11.一种安全比较系统,其中,所述系统在第一方实现,其包括:
匿名集合信息获得模块,用于获得匿名集合信息,匿名集合信息用于确定包括目标ID以及至少一个非目标ID的匿名集合;
第一加密模块,用于根据可交换加密算法用第一密钥加密与目标ID和第一对象的组合关联的第一明文信息,得到第一密文信息;
第一发送模块,用于将匿名集合信息和第一密文信息发送给第二方;
第一接收模块,用于接收第二方返回的加密数据集合和二级密文信息;其中,加密数据集合包括匿名集合中每个ID与多个候选对象中每一个的组合对应的加密比较结果,所述第一对象为所述多个候选对象之一,针对每个ID和候选对象的组合,其对应的比较结果为该组合中的ID对应的第二对象与该组合中的候选对象的比较结果,所述加密比较结果是用与该组合关联的加密密钥加密该组合对应的比较结果得到的,与该加密密钥匹配的解密密钥能够基于与该组合关联的第二密文信息得到,该第二密文信息为根据可交换加密算法用第二密钥加密与该组合关联的明文信息的结果;二级密文信息为根据可交换加密算法用第二密钥加密第一密文信息的结果;
第一解密模块,用于用与第一密钥匹配的解密密钥解密二级密文信息,得到与目标ID和第一对象的组合关联的第二密文信息;
解密密钥获得模块,用于基于与目标ID和第一对象的组合关联的第二密文信息,获得与目标ID和第一对象的组合关联的解密密钥;
比较结果获得模块,用于用与目标ID和第一对象的组合关联的解密密钥解密加密数据集合中的加密比较结果,得到目标ID对应的第二对象与第一对象的比较结果。
12.一种安全比较装置,包括处理器和存储设备,所述存储设备用于存储指令,其中,当所述处理器执行指令时,实现如权利要求1~10中任一项所述的方法。
13.一种匿名安全比较方法,其中,所述方法由第二方执行,其包括:
从第一方接收匿名集合信息和第一密文信息;其中,匿名集合信息用于确定目标ID以及至少一个非目标ID的匿名集合,第一密文信息为根据可交换加密算法用第一密钥加密与目标ID和第一对象的组合关联的第一明文信息的结果;
根据可交换加密算法用第二密钥加密第一密文信息,得到二级密文信息;
基于匿名集合信息获得加密数据集合,加密数据集合包括匿名集合中每个ID与多个候选对象中每一个的组合对应的加密比较结果,所述第一对象为所述多个候选对象之一;其中,针对每个ID和候选对象的组合:根据可交换加密算法用第二密钥加密与该组合关联的明文信息,得到与该组合关联的第二密文信息;基于该第二密文信息获得与该组合关联的加密密钥,使得与该加密密钥匹配的解密密钥能够基于该第二密文信息得到;用该加密密钥加密该组合中的ID对应的第二对象与该组合中的候选对象的比较结果,得到该组合对应的加密比较结果;
将加密数据集合和二级密文信息返回给第一方,以使第一方能够获得目标ID对应的第二对象与第一对象的比较结果。
14.如权利要求13所述的方法,其中,每个ID和候选对象的组合具有索引,与ID和候选对象的组合关联的明文信息包括该组合的索引;与目标ID和第一对象的组合关联的第一明文信息包括该组合的索引。
15.如权利要求14所述的方法,其中,所述索引包括第一维数据和第二维数据;
第一密文信息包括用第一密钥加密与目标ID和第一对象的组合的索引的第一维数据得到的第一维密文和用第一密钥加密该组合的索引的第二维数据得到的第二维密文;
针对每个ID和候选对象的组合,所述用第二密钥加密与该组合关联的明文信息,得到与该组合关联的第二密文信息,包括:用第二密钥加密该组合的索引的第一维数据,得到与该组合关联的第二密文信息中的第一维密文;用第二密钥加密该组合的索引的第二维数据,得到与该组合关联的第二密文信息中的第二维密文;
所述用第二密钥加密第一密文信息,得到二级密文信息,包括:用第二密钥加密第一密文信息中的第一维密文,得到第一维二级密文;用第二密钥加密第一密文信息中的第二维密文,得到第二维二级密文。
16.如权利要求15所述的方法,其中,针对每个ID和候选对象的组合,其索引的第一维数据反映该组合中的ID,第二维数据为该组合中的候选对象的标识。
17.如权利要求15所述的方法,其中,针对每个ID和候选对象的组合,其索引的第一维数据包括第一维标记以及该组合的第一维数值,第二维数据包括第二维标记以及该组合的第二维数值;其中,第一维数值为将多个组合排列成矩阵时,该组合的行坐标,第二维数值为该组合的列坐标。
18.如权利要求15所述的方法,其中,所述基于该第二密文信息获得与该组合关联的加密密钥,包括:
获得该第二密文信息中的第一维密文和第二维密文的合并结果的哈希值,基于该哈希值获得与该组合关联的加密密钥。
19.如权利要求18所述的方法,其中,所述合并结果为异或结果。
20.如权利要求13所述的方法,其中,针对每个ID和候选对象的组合,该组合对应的比较结果的加密密钥和解密密钥相同。
21.如权利要求13所述的方法,其中,加密数据集合中各加密比较结果对应的加密密钥互不相同,使得加密数据集合中各加密比较结果对应的解密密钥互不相同。
22.一种安全比较系统,其中,所述系统在第二方实现,其包括:
第二接收模块,用于从第一方接收匿名集合信息和第一密文信息;其中,匿名集合信息用于确定目标ID以及至少一个非目标ID的匿名集合,第一密文信息为根据可交换加密算法用第一密钥加密与目标ID和第一对象的组合关联的第一明文信息的结果;
第二加密模块,用于根据可交换加密算法用第二密钥加密第一密文信息,得到二级密文信息;
加密数据集合获得模块,用于基于匿名集合信息获得加密数据集合,加密数据集合包括匿名集合中每个ID与多个候选对象中每一个的组合对应的加密比较结果,所述第一对象为所述多个候选对象之一;其中,针对每个ID和候选对象的组合,加密数据集合获得模块具体用于:根据可交换加密算法用第二密钥加密与该组合关联的明文信息,得到与该组合关联的第二密文信息;基于该第二密文信息获得与该组合关联的加密密钥,使得与该加密密钥匹配的解密密钥能够基于该第二密文信息得到;用该加密密钥加密该组合中的ID对应的第二对象与该组合中的候选对象的比较结果,得到该组合对应的加密比较结果;
第二发送模块,用于将加密数据集合和二级密文信息返回给第一方,以使第一方能够获得目标ID对应的第二对象与第一对象的比较结果。
23.一种安全比较装置,包括处理器和存储设备,所述存储设备用于存储指令,其中,当所述处理器执行指令时,实现如权利要求13~21中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111634653.1A CN114338164B (zh) | 2021-12-29 | 2021-12-29 | 一种匿名安全比较方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111634653.1A CN114338164B (zh) | 2021-12-29 | 2021-12-29 | 一种匿名安全比较方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338164A true CN114338164A (zh) | 2022-04-12 |
CN114338164B CN114338164B (zh) | 2024-04-30 |
Family
ID=81016411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111634653.1A Active CN114338164B (zh) | 2021-12-29 | 2021-12-29 | 一种匿名安全比较方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338164B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080114991A1 (en) * | 2006-11-13 | 2008-05-15 | International Business Machines Corporation | Post-anonymous fuzzy comparisons without the use of pre-anonymization variants |
CN105190668A (zh) * | 2013-03-14 | 2015-12-23 | 三星电子株式会社 | 具有广告机制的信息递送系统及其操作方法 |
US20160344707A1 (en) * | 2015-05-21 | 2016-11-24 | Nili Philipp | Encrypted query-based access to data |
US20170177683A1 (en) * | 2015-11-04 | 2017-06-22 | Kabushiki Kaisha Toshiba | Anonymization system |
WO2019049615A1 (ja) * | 2017-09-05 | 2019-03-14 | 日本電信電話株式会社 | 匿名ブロードキャスト方法、鍵交換方法、匿名ブロードキャストシステム、鍵交換システム、通信装置、プログラム |
CN111767553A (zh) * | 2020-05-29 | 2020-10-13 | 上海橙群微电子有限公司 | 数据加密解密方法、mcu及电子设备、可读存储介质 |
CN112235260A (zh) * | 2020-09-25 | 2021-01-15 | 建信金融科技有限责任公司 | 一种匿名数据存证方法、装置、设备和存储介质 |
CN112381540A (zh) * | 2020-11-13 | 2021-02-19 | 从法信息科技有限公司 | 基于零知识证明验证签署文书的方法、装置和电子设备 |
CN112637109A (zh) * | 2019-09-24 | 2021-04-09 | 北京京东尚科信息技术有限公司 | 数据传输方法、系统、电子设备及计算机可读介质 |
-
2021
- 2021-12-29 CN CN202111634653.1A patent/CN114338164B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080114991A1 (en) * | 2006-11-13 | 2008-05-15 | International Business Machines Corporation | Post-anonymous fuzzy comparisons without the use of pre-anonymization variants |
CN105190668A (zh) * | 2013-03-14 | 2015-12-23 | 三星电子株式会社 | 具有广告机制的信息递送系统及其操作方法 |
US20160344707A1 (en) * | 2015-05-21 | 2016-11-24 | Nili Philipp | Encrypted query-based access to data |
US20170177683A1 (en) * | 2015-11-04 | 2017-06-22 | Kabushiki Kaisha Toshiba | Anonymization system |
WO2019049615A1 (ja) * | 2017-09-05 | 2019-03-14 | 日本電信電話株式会社 | 匿名ブロードキャスト方法、鍵交換方法、匿名ブロードキャストシステム、鍵交換システム、通信装置、プログラム |
US20200358622A1 (en) * | 2017-09-05 | 2020-11-12 | Nippon Telegraph And Telephone Corporation | Anonymous broadcast method, key exchange method, anonymous broadcast system, key exchange system, communication device, and program |
CN112637109A (zh) * | 2019-09-24 | 2021-04-09 | 北京京东尚科信息技术有限公司 | 数据传输方法、系统、电子设备及计算机可读介质 |
CN111767553A (zh) * | 2020-05-29 | 2020-10-13 | 上海橙群微电子有限公司 | 数据加密解密方法、mcu及电子设备、可读存储介质 |
CN112235260A (zh) * | 2020-09-25 | 2021-01-15 | 建信金融科技有限责任公司 | 一种匿名数据存证方法、装置、设备和存储介质 |
CN112381540A (zh) * | 2020-11-13 | 2021-02-19 | 从法信息科技有限公司 | 基于零知识证明验证签署文书的方法、装置和电子设备 |
Non-Patent Citations (1)
Title |
---|
明洋;原红平;孙变;乔正阳;: "标准模型下高效的基于身份匿名广播加密方案", 计算机应用, no. 10 * |
Also Published As
Publication number | Publication date |
---|---|
CN114338164B (zh) | 2024-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180204284A1 (en) | Cryptographically secure financial instruments | |
CN112069528A (zh) | 一种基于区块链的融资事务处理方法和系统 | |
US11997075B1 (en) | Signcrypted envelope message | |
JP2023508088A (ja) | ブロックチェーンオーバーレイネットワークへの鍵のマッピング | |
Zaw et al. | Database security with AES encryption, elliptic curve encryption and signature | |
CN112788001A (zh) | 一种基于数据加密的数据处理业务处理方法、装置及设备 | |
Li et al. | GPSC: A grid-based privacy-reserving framework for online spatial crowdsourcing | |
CN113434555B (zh) | 一种基于可搜索加密技术的数据查询方法和装置 | |
Kaci et al. | Toward a big data approach for indexing encrypted data in cloud computing | |
US20230316241A1 (en) | Partitioning a request into transactions for a blockchain | |
CN117371010A (zh) | 数据匿踪查询方法、电子设备和可读存储介质 | |
WO2020212349A1 (en) | Methods and systems for validating data in a distributed computing network | |
Carminati et al. | Secure web service composition with untrusted broker | |
WO2013153628A1 (ja) | 演算処理システムおよび演算結果認証方法 | |
CN114338164B (zh) | 一种匿名安全比较方法和系统 | |
CN115495774A (zh) | 一种风险数据查询方法、系统、可信单元和服务器 | |
WO2017209228A1 (ja) | 暗号化情報照合装置、暗号化情報照合方法、及び、暗号化情報照合プログラムが格納された記録媒体 | |
CN115442115A (zh) | 一种风险数据推送方法、系统、服务器和可信单元 | |
CN114266063A (zh) | 一种安全比较方法和系统 | |
Banasode et al. | Protecting and Securing Sensitive Data in a Big Data Using Encryption | |
EP3637670A1 (en) | Method and system for executing a cryptography scheme | |
CN112818384B (zh) | 基于区块链的资产处理方法、装置、设备及存储介质 | |
US20210250337A1 (en) | Method and device for matching evaluation of structured data sets protected by encryption | |
US11646885B2 (en) | Safe token storage | |
US20230396450A1 (en) | Key derivation method |
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 |