CN103095453A - 应用私有集合交集的公钥加密的布隆过滤器 - Google Patents
应用私有集合交集的公钥加密的布隆过滤器 Download PDFInfo
- Publication number
- CN103095453A CN103095453A CN2012102368273A CN201210236827A CN103095453A CN 103095453 A CN103095453 A CN 103095453A CN 2012102368273 A CN2012102368273 A CN 2012102368273A CN 201210236827 A CN201210236827 A CN 201210236827A CN 103095453 A CN103095453 A CN 103095453A
- Authority
- CN
- China
- Prior art keywords
- bloom filter
- encrypting
- encrypt
- client
- ciphertext
- 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
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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- 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/08—Randomization, e.g. dummy operations or using noise
-
- 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/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
公开了方法、系统、以及装置,包括编码在计算机存储介质上的计算机程序,用于从计算机可读存储器检索集合,该集合包括多个元素,使用计算设备将集合的元素添加到布隆过滤器,该布隆过滤器包括多个位,以及使用计算设备加密布隆过滤器的多个位中的每个位,以提供加密的布隆过滤器,加密使用同态的、公钥加密来完成。实施方式还在于对加密的布隆过滤器执行操作,并使用加密的布隆过滤器执行私有集合交集(PSI)。
Description
技术领域
本发明涉及应用私有集合交集的公钥加密的布隆过滤器。
背景技术
布隆(Bloom)过滤器是一种具有良好空间效率的盖然论的(probabilistic)数据结构,用来测试一个元素是否为一个集合中的元素。布隆过滤器被提供为位阵列,当布隆过滤器为空时,每个位被设定为0。提供多个不同的散列函数(hash functions),每个散列函数以统一的随机分布将一些集合元素映射或散列(hashing)到阵列位置中的一个。为了将集合的元素添加到布隆过滤器,所述元素被提供给每一个散列函数,以得到多个相应的阵列位置。阵列位置中的每一个被设定到1。为了确定元素是否在布隆过滤器中,再次将元素提供给每个散列函数,以再次确定阵列位置。如果在所述阵列位置处的任何位等于0,则所述元素不在所述集合中。如果在所述阵列位置处的所有位等于1,则所述元素在所述集合中,虽然可能存在误判(false positive)。
私有集合交集(Private set intersection,PSI)能够使各参与方,例如客户端和服务方,计算包括在它们各自的集合中的元素的交集,而不会公开关于这些元素的任何信息。在此过程期间,客户端能够获知(learn)在集合内的元素的交集,而相反,服务方则不能获知在集合内的元素的交集。PSI具有许多应用,因此是许多基于搜索的计算技术的基础建造模块,比如搜索存储DNA档案的法庭数据库的执法系统,或涉及到具有多种角色的各参与方的供应链管理系统。一种检查在两个集合内的元素的交集的方案是使用布隆过滤器。而布隆过滤器的一个缺点在于机密性(confidentiality)。
发明内容
通常,本公开的实施方式在于一种方法,包括动作:从计算机可读存储器检索第一集合,第一集合包括多个元素;使用计算设备将第一集合的元素添加到第一布隆过滤器,第一布隆过滤器包括多个位;以及使用所述计算设备加密第一布隆过滤器的多个位中的每个位,以提供第一加密的布隆过滤器,加密使用同态的(homomorphic)、公钥加密来完成。
在一些实施方式中,动作还包括对第一加密的布隆过滤器执行操作。
在一些实施方式中,操作包括将元素添加到第一加密的布隆过滤器的元素添加、确定元素是否存在于第一加密的布隆过滤器中的元素包含验证、以及将第一加密的布隆过滤器的内容与第二布隆过滤器的内容进行比较中的至少一个。
在一些实施方式中,第二布隆过滤器包括第二加密的布隆过滤器。
在一些实施方式中,动作还包括确定第一布隆过滤器对于操作的索引,所述操作包括添加操作,并且对于第一布隆过滤器的每个位,如果通过添加操作来设定位则将所述位设定为等于1,而如果不通过添加操作来设定位则对所述位进行随机化。
在一些实施方式中,动作还包括确定与可能存在于第一布隆过滤器中的元素相对应的第一布隆过滤器的索引,所述操作包括测试操作,对于与所述索引相对应的每个设定的布隆过滤器、对密文进行扩展,以提供扩展的密文,使用同态性(homomorphism)对于所有设定的位计算逻辑与(AND)操作,以及生成扩展的密文是二次剩余(quadratic residue)的零知识证明(zeroknowledge proof,ZKP)。
在一些实施方式中,操作是非交互(non-interactive)操作,从而所述操作能够被执行而无需解密第一加密的布隆过滤器。
在一些实施方式中,所述同态的、公钥加密包括Goldwasser-Micali(GM)加密。
在一些实施方式中,所述同态的、公钥加密包括Boneh、Goh、Nissim(BGN)加密。
在一些实施方式中,加密包括基于第一布隆过滤器的许多散列函数生成公钥、私钥对。
在一些实施方式中,使用公钥完成第一布隆过滤器的加密。
在一些实施方式中,动作还包括传送第一加密的布隆过滤器,在计算设备处接收第一加密的返回集合,第一加密的返回集合基于第一加密的布隆过滤器和第二集合来生成,第二集合包括多个元素,使用计算设备解密第一加密的返回集合,以提供第一返回集合,以及确定第一集合和第一返回集合之间的交集。
在一些实施方式中,在第一集合和第一返回集合之间的交集代表第一集合和第二集合之间的交集。
在一些实施方式中,动作还包括将第一集合、第一布隆过滤器、以及第一加密的布隆过滤器传送到可信第三方,从可信第三方接收签名,以及将签名传送到实体,该实体是第二集合的拥有者。
在一些实施方式中,动作还包括基于第一加密的布隆过滤器生成ZKP,以及将ZKP传送到实体,该实体是第二集合的拥有者。
在一些实施方式中,传送第一加密的布隆过滤器包括将第一加密的布隆过滤器传送到服务提供者。
在一些实施方式中,第一加密的返回集合由服务提供者基于第一加密的布隆过滤器和第二加密的布隆过滤器来生成,第二加密的布隆过滤器由实体提供到服务提供者,该实体是第二集合的拥有者。
在一些实施方式中,基于生成第一加密的布隆过滤器的扩展的密文结果、对于第二集合中的每个元素评价测试功能、并计算在扩展的密文结果和测试功能的结果之间的异或(XOR)操作来生成第一加密的结果集合。
本公开还提供耦接到一个或多个处理器的计算机可读存储介质,具有存储在其上的指令,当由一个或多个处理器执行指令时,使得一个或多个处理器执行根据这里提供的方法的实施方式的操作。
本公开还提供用于实现这里提供的方法的系统。该系统包括一个或多个处理器、以及耦接到一个或多个处理器的计算机可读存储介质,该计算机可读存储介质具有存储在其上的指令,当由一个或多个处理器执行指令时,使得一个或多个处理器执行根据这里提供的方法的实施方式的操作。
应该理解,根据本公开的方法能够包括这里所描述的各方面和特征的任意组合。也就是说,根据本公开的方法并不限于这里所具体描述的方面和特征的组合,而是还包括所提供的方面和特征的任意组合。
在附图和以下描述中阐述了本公开的一个或多个实施例的细节。本公开的其它特征和优点将从描述和附图、以及从权利要求中清楚地看出。
附图说明
图1是能够运行本公开的实施方式的示例系统体系结构的框图。
图2是描绘包括违法物品的示例供应链的框图。
图3是示出能够根据本公开的实施方式运行的示例过程的流程图。
图4是示出能够根据本公开的实施方式运行的示例过程的流程图。
图5是示出能够根据本公开的实施方式运行的示例过程的流程图。
图6是能够使用来运行本公开的实施方式的示例计算机系统的示意图。
在各个附图中相似的参考符号指示相似的元素。
具体实施方式
本公开的实施方式一般在于加密在关注机密性的应用中使用的布隆过滤器。根据本公开,布隆过滤器能够使用同态的、公钥加密来加密,从而只有私钥的持有者(即,加密布隆过滤器的实体)能够访问存储在布隆过滤器中的数据。为了使加密的布隆过滤器在应用中有用,公钥持有者能够将元素添加到布隆过滤器而无需进行交互(例如,解密和再次加密布隆过滤器),并且公钥持有者能够检验元素包含或不包含在加密的布隆过滤器内,同样无需进行交互。为了达成这一点,特定的零知识证明(ZKP)被实施。
本公开还提供用于使用加密的布隆过滤器的私有集合交集(PSI)。PSI能够使各参与方(parties),例如供应链中的参与方和/或第三方,计算包括在各个集合中的元素的交集,而不公开关于元素的任何信息。在这些过程期间,参与方能够获知集合内元素的交集,同时保持数据机密性。因此,集合中所有元素的秘密(privacy)可以保持保密(private)。用于PSI实施方式的协议可以包括结合了加密的布隆过滤器的多种变化,加密的布隆过滤器作为一种检查元素是否包含在集合中的具有空间效率和时间效率的(space efficient andtime-efficient)手段,能够保护系统免受可能攻击系统的恶意方的危害。
本公开的实施方式将在这样的示例的上下文中进行描述,包括:物品在供应链内的实体之间移动。但是,应该理解,本公开的实施方式也适用于其它的上下文。其它的示例上下文可以包括:数据库管理、网络管理、并且保密(privacy-preserving)执法(例如,与飞机乘客进行核对的禁飞名单;包括数据库搜索的刑事侦查)。
在示例的上下文中,企业使用供应链将产品或服务从一个或多个供应者(实体、合伙人或公司)转换并移动到客户。供应链是一种可以涉及企业内外的各种组织和人员的系统。另外,供应链能够利用技术、活动以及信息,将自然资源、原材料以及组件从一个或多个供应者转换为能够递送给客户的成品(finished product)。
当产品通过供应链时,企业可以将产品在各个供应者之间移动。供应者能够与供应链共享产品相关数据。然而,供应者可能希望在企业将产品在供应者之间移动时保持与产品移动和转换相关的信息的机密性。这与具有动态改变的供应者的专用供应链特别相关。企业能够确定对于在供应链中共享信息的需求与机密信息不扩散到竞争者或供应链外的其它人之间的平衡。在供应链中的供应者之间共享信息可以使每个供应者提供附加的服务,这给产品制造带来益处。信息共享还可能导致制造过程的优化和改善,进而降低制造成本。
在示例的上下文中,并且为了例示和清楚的目的,第一供应者可以看作客户端(c),而第二供应者可以看作服务方(s)。在一些实施方式中,在这里进一步详细讨论的,集合信息(set information)在客户端和服务方之间通信,以执行在客户端集合和服务方集合之间的PSI。在一些实施方式中,还在这里进一步详细讨论的,可信第三方(TTP)能够通过提供认证服务来支持PSI活动。在一些实施方式中,还在这里进一步详细讨论的,PSI活动可以外包(outsourced)给服务提供者(SP),其中,集合信息在客户端和服务提供者、以及在服务方和服务提供者之间通信。
图1是能够运行本公开的实施方式的示例系统100的框图。系统100使得n个实体(示例为实体114、116、118、120)能够通过网络102访问中心计算机106,该中心计算机106包括中心数据库112和中心服务方110。
在图1的示例中,实体(例如,实体114、116、118、120)可以是公司、合伙人、组织或位于供应链122的供应者。例如,实体114在供应链122中位于实体116之前。实体118在供应链122中位于实体120之前。供应链122制造物品104。物品104与任何附加的组件一起,能够在制造过程期间被引入到供应链122中的每个实体。在图1的示例中,成品由实体120输出,随后递送给客户。
在某些示例中,物品104能够包括附接的机器可读介质。在示出的示例中,机器可读介质包括RFID标签124。对于物品104,唯一识别号可以存储在RFID标签124上。供应链122中的每个实体能够在物品104被制造、或者由各个实体处理时,生成实体特有的数据(entity-specific data)并将实体特有的数据与物品104相关联。实体特有的数据可以与物品的唯一识别号相关联,用于存储在计算机可读介质中(例如,在各个实体处)。
在一些实施方式中,中心计算机106位于服务提供者外部。在一些实施方式中,中心计算机106能够由提供认证服务的一个或多个TTP来操作,如这里进一步详细讨论的。在一些实施方式中,中心计算机106能够由能够执行PSI活动的一个或多个SP来操作,如这里进一步详细讨论的。例如,中心数据库112可以是云存储器,而中心计算机106可以是TTP或SP提供的(hosted)云计算系统。在一些实施方式中,并且如这里进一步详细讨论的,SP能够执行PSI操作,同时对于基础数据(underlying data)是易忘的(oblivious),而保持其机密性。
现在参考图2,有向图200描绘了示例的供应链。顶点202代表供应者,而边缘204代表供应者之间的运输链(transportation links)。为了检查供应链的完整性(integrity),在不公开除了在供应链上执行的操作的有效性(validity)以外的任何消息的同时,可以使用在供应链中进行物品级(item-level)跟踪的一般(generic)模型。当物品i前进通过供应链时,它能够被许多不同的供应者s处理(handled)。在一些实施方式中,供应链包括多个物品和多个供应者,其中,每个物品具有唯一标识符,而每个供应者具有唯一标识符。用I={i0,...,in}代表物品集合,用S={s0,...,sm}代表供应者集合。作为示例,图2示出了物品集合210,I={i1,i2,i3},以及供应者集合212,S={s1,s2,s3,s4,s5}。
在一些实施方式中,可以提供数据结构dS,其包括处理物品i的供应者Si的集合210,并且在物品i移动通过供应链时随着物品i一起运送。作为示例,图2示出了分别处理物品i1、i2、和i3的供应者S1、S2和S3的集合210。在第一供应者将物品装运(ship)到第二供应者之前,第一供应者将第二供应者添加到数据结构dS。在某些示例中,dS的运送可以是电子形式的,并且包括在网络消息中(例如,高级装运通知),伴随物品移动通过供应链。在某些示例中,dS的运送可以是切实(tangible)形式的(例如,RFID标签),物理地伴随物品移动通过供应链。一旦提供了dS,就可以对运送物品i的供应链过程执行许多简单的、有效的检查。
在一些实施方式中,集合Si210可以与已知的违犯者(violator)的黑名单Sbl进行比较。例如,这些违犯者可以是涉及到不期望的行业行为的公司:
例如,图2示出了处理物品i2的供应者S2的集合210不应该包括供应者s4。
在一些实施方式中,集合Si210可以与强制供应者(mandatory supplier)的白名单Swl进行比较。例如,这些供应者可以是涉及到期望的行业行为的公司:
例如,图2示出了处理物品i1的供应者S1的集合210应该包括供应者s2。
在一些实施方式中,可以提供数据结构dl,其包括已经由供应者s处理的物品208的集合Is。因此,在一个供应者处维持dI。每次供应者处理物品i,供应者将物品i添加到数据结构dI。一旦提供了一个或多个数据结构dI,就可以对运送物品i的供应链过程执行许多简单的、有效的检查。
在一些实施方式中,分别在两个供应者s1和s2处的两个数据结构和可以相互比较,以确定它们是否包括相同的集合Is212。如果它们包括相同的集合Is,则并且在这两个供应者之间没有货物的流入或流出。作为示例,图2示出了供应者I1,I2,I3,I4,和IS,的集合212,其中,例如,I1,=IS。
为了确定两个集合之间的交集(即,为了检查元素是否包含在集合内),两个数据结构可以被比较。布隆过滤器是能够提供用于执行这种操作的具有良好空间效率的手段的数据结构。如果布隆过滤器未受保护,任何人都能够检查元素是否包含在集合中,并进而也许能够获知集合中的任何或所有元素。因而,保护布隆过滤器内容的机密性是在设计基于搜索的计算技术时可以考虑的一个重要特征,比如设计用来管理图2中所示的示例供应链的系统,其中可能存在行业间谍的风险。
给定数据结构,可以定义多个参与方,用来配置数据结构的安全特性。在某些示例中,可以定义授权机构(authority)。授权机构控制数据结构,并且可以是物品的制造方,或者甚至是独立组织,如行业协会。在某些示例中,可以定义供应者。供应者能够将元素添加到集合,并且,例如,将集合Si与黑名单Sbl进行比较,或者将集合与进行比较;因此,供应者通过处理货物和检验供应链的完整性来参与到供应链中。
一般,本公开的实施方式在于加密布隆过滤器,对加密的布隆过滤器执行一个或多个操作。实施方式还提供使用加密的布隆过滤器,以确定集合之间的交集,以便保护系统免受恶意参与方的损害,如在供应链情况下免受恶意供应者的损害,而无需区分恶意供应者和诚实供应者。在一些实施方式中,假设所有的供应者都是恶意的,并且所有的供应者都能够对数据执行所有操作。在某些示例中,可以定义攻击者。攻击者可以具有对网络的完全控制,并且能够在任何示例的顶点(例如,图2中所示的顶点202)读和写任何数据结构。
在一些实施方式中,当攻击者简单的损坏数据结构时,发生破坏攻击,由此破坏通信。为了解决破坏攻击,可以基于物品是否具有适当的安全检查做出默认的判断。在某些示例中,没有适当的安全检查的物品可以被认为是违法的。对于这种情况,破坏供应链的攻击者不能插入伪造的物品,但是攻击者能够执行动作,生成能够导致货物供应的破坏的误判。在某些示例中,没有适当的安全检查的物品可以被认为是合法的。这个判断可以防止由于误判导致的破坏,但是伪造问题仍然可能成功。
在一些实施方式中,当攻击者简单地将信息从一个数据结构复制到另一个数据结构时,发生克隆攻击。在某些示例中,克隆攻击是防伪(anti-counterfeiting)的共同问题。对于这种情况,没有物品级(标签上)的反制措施,但是从全局数据的角度看,防止也是可行的。
在一些实施方式中,数据结构的内容应该保持保密。给定任何数据结构d,攻击者应该不能确定元素e是否在集合中(除了可以忽略的可能性)。即使给出关于元素ei包含或不包含的几次成功的检查,或者关于集合相等和不相等的额外的成功检查,攻击者也应该不能确定元素e′是否包括在集合中
而且,攻击者应该不能在添加元素e之前或之后链接数据结构d。给定数据结构对d0和d1、元素e、以及添加了元素e的随机选择的数据结构db∈{d0∪{e},d1∪{e}},攻击者应该不能从db确定随机选择b的身份(identity)(除了可以忽略的可能性)。这防止了攻击者跟踪物品经过供应链,并且加强了针对防止供应链间谍的保密措施(privacy measures)。
根据本公开的实施方式,PSI能够使得诸如第一供应者(称为客户端)和第二供应者(称为服务方)的参与方能够计算各自集合内包括的元素的交集,而不公开有关这些元素和/或集合的任何信息(例如,各自集合的大小)。在一些实施方式中,客户端能够获知集合内元素的交集,反之服务方不能获知集合内元素的交集。因此,不在交集中的所有元素的秘密能够被保持保密。在一些实施方式中,客户端集合的大小可能是很敏感的信息,并可能也对服务方隐藏。在某些示例中,客户端C具有大小为v的集合{c1,...,cv},而服务方V具有大小为w的集合{v1,...,vw}。执行所述计算为客户端提供了交集{c1,...,cv}∩{v1,...,vw},但是服务方并未获知交集。
这里提供的PSI实施方式包括使用布隆过滤器和布隆过滤器的每个位的同态加密。在数据库团体中,使用布隆过滤器已经成为改善数据库中分布式加入的性能的制定的惯例(established practice)。虽然布隆过滤器在测试集合包含时允许误判,但是通过使用参数k(即,在布隆过滤器中使用的散列函数的数量)能够将得到误判的可能性降低到任意低的可能性。在某些示例中,集合(例如,客户端集合和/或服务方集合)被添加到各自的布隆过滤器,并且布隆过滤器可以使用同态的、公钥加密进行加密。示例的同态加密可以包括Goldwasser Micali(GM)加密和Boneh、Gob、Nissim(BGN)加密。
根据本公开,可以对加密的布隆过滤器执行操作,其可以称为密文(ciphertext)。在一些实施方式中,所述操作时非交互操作,其中公钥持有者不需要解密和再次加密布隆过滤器。示例的操作可以包括元素添加、元素包含或不包含检验、以及过滤器内容比较(即,PSI)。在某些示例中,可以使用Sander Young Yung(SYY)来执行操作。
在一些实施方式中,一种基础PSI(base PSI),称为半诚实PSI(semi-honestPSI,PSISH),可以通过使用加密的布隆过滤器来提供。在一些实施方式中,可以提供认证的PSI(authenticated PSI,APSI)。APSI使得客户端能够以TTP认证其集合。这样的认证通过将所有可能的元素包括在输入中,而防止客户端获得服务方的整个集合。而且,服务方能够在执行操作以支持PSI之前检验由客户端提交的数据的真实性(authenticity)。在一些实施方式中,当认证不可用时,客户端能够执行ZKP以保持全面的保密。这样的实施方式可以称为恶意PSI模型(PSIMAI),如这里进一步详细讨论的。
在一些实施方式中,可以提供外包PSI(outsourced PSI,OPSI)。OPSI使得SP能够基于从客户端和服务方两者提供给SP的数据,执行操作以支持PSI。在OPSI内,仍然保持保密,因为SP不能提取关于输入或交集的任何信息。在某些示例中,服务方能够在服务提供者处存储其集合,然后客户端能够在服务方离线时查询数据库。
用于PSI的协议可以包括多个实施方式。在一些实施方式中,能够利用半诚实模型(PSISH),其使用布隆过滤器和同态加密来实现PSI。
如这里所讨论的,可以使用布隆过滤器来提供用于检查元素是否包含在集合中的、具有良好空间效率和时间效率的手段。空布隆过滤器b包括m个位(所有位被设定为0),以及k个散列函数hi,其中(0≤i<k)。在一些实施方式中,散列函数不需要是随机预知(oracle)。对于布隆过滤器b的第j位(0≤j<m),布隆过滤器支持用于将集合的元素x添加到布隆过滤器的操作Add(x)。可以执行操作Test(x)以测试元素x是否包含在布隆过滤器中。执行操作Create(m)生成了设定为0的m个位的布隆过滤器:
并导致公布k个散列函数fi(0≤i<k):
执行操作Add(x),以所有k个散列函数hi对元素x进行散列,并且在结果索引gi处的k个位被设定为1:
执行操作Test(x),以所有k个散列函数hi对元素x进行散列,并且如果在结果索引gi处的所有k个位都被设定,则测试函数返回1(真)。
在一些实施方式中,布隆过滤器具有较小的误判可能性,即,即使x从未被添加到布隆过滤器,Test(x)也可能返回真。误判的可能性随着添加到集合的元素数量的增加而增加。给定将要添加的元素数量w和期望最大误判率2-k,则布隆过滤器的大小m可以计算为:
在一些实施方式中,PSI协议可以通过如下过程来执行,包括发送布隆过滤器用于使用GM加密进行加密的客户端集合(按位),使用SYY技术对服务方中的每个元素评估Test函数(等式6),以及计算在扩展的密文结果和服务方结果之间的异或(XOR),并返回XOR。
在一些实施方式中,GM加密被用来加密布隆过滤器的位。GM加密是公钥、语义安全的(IND-CPA,表示没有对手能区分不同消息的加密,即使允许自身进行加密)、同态加密方案。GM加密的明文长度仅为1位,并且其使用二次剩余模量(quadratic residuosity modulus),两个较大的质数p和q的合数。二次剩余(quadratic residue)r是这样一个数,从而存在数s,其中s2=r mod n。GM加密编码1作为二次非剩余(quadratic non-residue),而编码0作为二次剩余。特别是,二次非剩余是伪二次剩余(pseudo-quadraticresidues),即,它们的Jacobi符号均为1。在某些示例中,区分(differentiating)伪二次剩余和二次剩余涉及因子分解(factoring)。对于两个较大的质数的合数n=pq以及伪二次剩余v,公钥为n,v,而私钥为p和q。为了加密0,选择随机数r,然后计算r2mod n(二次剩余)。为了加密1,选择随机数r,然后计算vr2 mod n(二次非剩余)。
在一些实施方式中,解密包括确定加密是否为二次剩余。操作可以概括如下:
KeyGen(k):给定k(安全参数),生成私钥sk={p,q}和公钥pk={n=pq,v}。
Encrypt(x,pk):给定明文x和公钥pk,产生密文c。
Decrypt(c,sk):给定密文c和私钥sk,产生明文x。
此外,如上所述,GM加密是语义安全的(IND-CPA),即,不能从密文和公钥中推断是否为特定的明文。
在一些实施方式中,BGN加密被用来对布隆过滤器的位进行加密,如以下进一步详细讨论的。
使用SYY技术对集合中的每个元素评估Test函数(等式6)。SYY技术对GM加密继续操作,并能够计算一个逻辑AND操作。可以对密文执行一个或多个逻辑XOR操作。密文E(x)被如下扩展:
Expand(c,pk):给定密文c=E(x)和公钥pk,计算σi。这个操作然后被重复u次(0≤i<u)。例如,随机掷硬币ri∈{0,1}(i=1,...,u),并设定:
结果为长度u的向量σ=(σ1,...,σk),其被称为扩展的密文。如果x=1,则ei=0,以及σi=E(0),其中i=1,...,u。否则,如果x=0,则ei在{0,1}中随机地分布,并且σi为随机位的GM密文。
在一些实施方式中,可以计算两个扩展的密文σ(对于E(x))和ρ(对于E(y))的逻辑AND。表示为σi=E(ei)和ρi=E(di),逻辑AND可以通过扩展的密文向量的元素的按对相乘τi=σi·ρi来执行。如果x∧y=1,则 其中i=1,...,u。然而,如果x∧y=0,则ci保持为在{0,1}中随机地分布,因为ei或di中的至少一个随机地分布在{0,1}中。因此,τ是x∧y的扩展的密文。为了解密扩展的密文τ,可以解密每个元素D(σi)=ei。如果ei=0,其中i=1,...,u,则最终明文为x=1;否则,x=0。则存在2-u的可能性,其错误地(falsely)解密为1,因为对于x=0的扩展的密文σ,明文ei在{0,1}u中随机地分布。
在某些示例中,展示根s(s2=r)提供了一种简单的方法,证明密文具有明文0。这个过程可以通过平方s来检验,并且被描述为零知识(zero-knowledge),因为其并不揭示密钥p和q。从而,如这里所定义的,零知识意味着检验人(verifier)不能获知关于证明人(prover)的秘密输入的信息。而且,如果r是二次非剩余,则不存在这样的s。例如,给定公共输入r,n=pq和证明人的秘密输入p、q,证明人输出s,并且如果s2=r,则检验人接受。然而,这个示例不能用来证明密文具有明文1。如果证明方(proving party)要求这里没有根s,则检验方(verifying party)无法进行检查。
在某些示例中,ZKP能够以交互的形式来展示。例如,给定公共输入r,n=pq和证明人的秘密输入p、q,检验人能够统一地选择随机数s和位b ∈{0,1}。如果b=0,则检验人发送s2到证明人。如果b=1,则检验人发送rs2到证明人。证明方输出b的猜测b′,并发送s的猜测s′。如果b′=b且s′=s,则检验方能够接受。
在一些实施方式中,将ZKP应用到输入中包括证明三个特性:(诚实检验人(honest-verifier))零知识、完整性、以及公正性(soundness)。零知识能够通过从检验人的输入和输出来仿真检验人的角度来检验。如这里所定义的,完整性意味着如果r当真是二次非剩余,则诚实检验人将总是接受。例如,如果r是二次非剩余,则rs2是二次非剩余,但s2总是二次剩余。因此,证明方通过计算二次剩余,能够区分选择b。如这里所定义的,公正性意味着如果r不是二次非剩余(即,t2=r),则诚实检验方(honest verifying party)将很有可能拒绝。如果b=1且t2=r,则存在s′=st,从而s′2=rs2。因此来自检验方的消息则不能被证明人区分b的全部两种情况,则正确猜测b′的可能性最高为1/2。
在一些实施方式中,这个ZKP可能并行地重复n次,以便增加对于二次剩余的情况而拒绝ZKP的可能性。则错误接受(false accept)的可能性为2-n。在某些示例中,ZKP能够进一步呈现为非交互的。给定对公共随机串(commonrandom string)的访问,能够仿真来自检验人的消息(即,检验人发送数字序列u)。使用s′,能够非交互地检验b的正确猜测b′。如果检验人发送二次非剩余u(具有1/2的可能性),并且r是二次剩余(t2=r),则不存在s′,因为ur-1为二次非剩余。
除了二次剩余ZKP,另一个ZKP,混合(shuffle)ZKP可以被实现。对于GM密文E(ei)的长度u的向量σ,对于1,...,u的随机置换(random permutation)π,以及具有明文0的GM密文的长度u的向量ρ,可以计算混合τ=π(σ)·ρ,从而给定σ和τ(而非密钥),完全不会揭示关于π。因此,混合ZKP证明τ当真是σ的置换,即,π和ρ不存在。例如,给定公共输入σ,τ,证明人的秘密输入为π,ρ=(E(0),...),从而τ=π(σ)·ρ。在某些示例中,混合ZKP具有次线性(sub-linear)通信复杂性,这意味着传送少于u个元素。
计算并返回在扩展的密文结果与服务方的元素之间的XOR。对于服务方元素si的第j个位(标为si,j),该元素扩展的密文为:
El(si)=E(si,1),...,E(si,l) (10)
扩展的密文能够按位解密,并且能够重新构建si。大于2的输入(fan-in)的逻辑AND可以表示为:
基础实施方式(例如,PSISH)可以由以下模型(在以下参考图3进一步详细讨论)来描述:
C :b=Create(m)
i=1,...v:b.Add(ci)
C→S:n,u,E(b1),...,E(bm)
S:
S→C:El(s′1),...,El(s′w)
C:{c1,...,cv}∩{s′1,...,s′w}
其中C表示由客户端执行的PSI操作,而S表示由服务方执行的PSI操作。简而言之,客户端创建布隆过滤器,并将客户端集合(c=c1,...,cv)的元素(ci)添加到布隆过滤器。客户端加密布隆过滤器的位(例如,使用GM加密),以提供加密的布隆过滤器(E(b)=E(b1),...E(bm))。服务方使用SYY技术对服务方集合(s=s1,...,sw)中的每个元素(si)评估Test函数,基于加密的布隆过滤器提供扩展的密文结果,并在扩展的密文结果与服务方集合中的元素之间执行XOR,以提供加密的返回集合(El(s′1),...,El(s′w))。返回的元素s′1或是交集中的元素(如果所有的布隆过滤器的位都是1,即,),或是{0,1}l中随机选择的元素。理想地,参数l应当被选择为大于输入域(inputdomain)大小的对数,因为服务方元素被用0填充。客户端解密加密的返回集合,并确定在客户端集合和返回集合之间的交集。
在APSI实施方式中,客户端除了其它数据以外还向TTP展示客户端集合、布隆过滤器、以及加密的布隆过滤器,该TTP检验客户端集合实际上就是在PSI协议中使用的集合。将x的签名表示为S(x),以下模型例示了关于APSI的在客户端、TTP以及服务方之间的交集:
C→TTP:n,u,c1,...,cv,E(b1),...,E(bm),b1,...,bm,r1,...,rm
TTP:b′=Create(m)
i=1,...,v:b.Add(ci)
i=1,...,m:
TTP→C:S(E(b1),...,E(bm)
C→S:E(b1),...,E(bm),S(E(b1),...,E(bm))
APSI实施方式的剩余部分与PSISH类似,除了客户端也向服务方提交签名(signature)S(E(b1),...,E(bm)),以便在PSI协议期间进行检验。
在某些示例中,客户端保持全面的保密,并且认证也可能不是可选的。对于这种情况,PSIMAL实施方式可以被用来证明零知识,发送者(即,密钥的持有者)知道数字的二次剩余,但是在协议期间并不揭示它。如果x是二次剩余,则-x为二次非剩余,反之亦然。在某些示例中,给定公共输入x,n=pq和证明人的秘密输入p、q,ZKP可以被应用到x,ZKP(x)。
为了实现ZKP(x),证明方(例如,客户端)选择随机数t,以及随机符号±,并发送y=±t2到检验方(例如,服务方)。检验方选择随机挑战(randomchallenge)a∈{0,1},并发送a到证明方。如果a=0,则证明方发送z=t。如果a=1且x=r2,则证明方发送z=rt。如果a=1,并且x是二次非剩余,则证明方计算r′,从而r′2=-x,并发送z=r′t。如果±yxa=z2,则检验方接受。因此,对于PSIMAL协议,客户端提交已经知道密文的明文的ZKP,然后PSI协议通过如下实现来开始:
C→S:n,u,E(b1),...,E(bm),ZKP(E(b1)),...,ZKP(E(bm))
也就是,PSIMAL实现方式与PSISH类似,除了客户端也提供ZKP(E(b1)),...,ZKP(E(bm))到服务方。
虽然服务方可能不坚持所规定的计算,例如,通过返回加密的元素El(si)而不测试布隆过滤器,其并不攻击计算的正确性。客户端本地执行与其输入集合的交集。因此,在真实模型中存在服务方,得出与理想模型所生成的相同的输出。换句话说,在服务方选择s′作为输入和服务方将s′插入到结果中之间不存在差别。
对于客户端的机密性,所有的输入都使用IND-CPA安全加密来加密。对于服务方的机密性,在布隆过滤器与服务方集合中的元素之间的匹配误判的可能性为2-k+2-l。因此,服务方错误地揭示元素的可能性由于k或l而是可以忽略的。为了保证对于恶意的客户端或服务方的安全性,可以证明,对于在真实模型中的任何可能的客户端或服务方行为,在理想模型中存在客户端或服务方提供给TTP的输入,从而在真实协议中的客户端或服务方的观点(view)可以从理想模型中的观点有效地仿真。
在一些实施方式中,仿真器SIMS可以从恶意的真实世界服务方中构建。仿真器SIMS在GM加密中运行KeyGen(k),并创建全1的(all ls)布隆过滤器b,即,bi=1(i=1,...,m)。然后仿真器发送n,u,E(b1),...,E(bm),并仿真签名S(E(b1),...,E(bm))。在从恶意的服务方接收El(s′1),...,El(s′w)之后,仿真器SIMS解密s′1,...,s′w。仿真器SIMS现在能够起到理想的服务方的角色,与TTP(以及理想的客户端)交互并提交s′1,...,s′w到TTP。
现在参考与交互的诚实客户端的输出,对于客户端C接收的每个集合s′1,...,s′w,存在来自服务方的输入集合s1,...,sw。客户端建造交集{c1,...,cv}∩{s′1,...,s′w},并且在理想模型中,每个元素si′都已经被仿真器使用,从而输出是相同的。
在一些实施方式中,仿真器SIMC能够从恶意的真实世界的客户端中构建。在某些示例中,仿真器SIMC现在能够起到执行认证的可信第三方T的角色。在接收n,u,c1,...,cv,E(b1),...,E(bm),b1...,bm,r1...,rm之后,仿真器SIMC执行所有ZKP检验。如果任何检验失败,则仿真中止。仿真器SIMC记录集合c={c1,...,cv},并返回有符号的(signed)布隆过滤器S(E(b1),...,E(bm))。在某些示例中,仿真器SIMC现在能够起到真实世界服务方的角色。在接收E(b1),...E(bm),S(E(b1),...E(bm))之后,仿真器检验签名。如果签名不能被检验,则仿真中止。在某些示例中,仿真器SIMC现在能够起到与TTP(以及真实服务方)交互并提交的真实客户端的角色。在接收交集之后,仿真器SIMC创建随机元素,并将它们以及内的元素添加到S={s′1,...,s′w}。其加密每个si′的每个位,并发送E(s′1,1),...,E(s′w,1)到客户端由于集合等于客户端集合{c1,...,cv},并且集合仅包含中的元素和随机选择的元素,在通过SIMC的仿真中,恶意的客户端的观点与真实协议中的观点是不能区分的。
在一些实施方式中,另外的数据di(例如,数据库元组)被与匹配元素si一起传送。这里公开的协议可以容易地扩展到容纳数据传送。允许表示利用密钥Ki(x)的对称加密(symmetric encryption),服务方对于每个元素si在对称加密系统中选择随机密钥Ki(x)。在准备其响应时,其使用密钥的按位扩展的密文El(Ki),而非元素的扩展的密文El(si),并且也返回到客户端。现在,在匹配的情况下,客户端能够恢复密钥Ki,然后恢复(解密)元素si和di。
GM加密仅使用模乘(modular multiplication),并且所有的二次剩余r2可以在预计算阶段进行准备,用于对密文进行随机化(randomizing)。然后客户端使用最多vk个模乘用于加密。服务方扩展密文,并计算否定(negation)(k个模乘)。服务方不需要随机化扩展的密文中的每个密文;而是,服务方可以随机化结果中的密文(l模乘)。服务方可以计算扩展的密文和元素之间的乘积(kl+l个模乘),并且服务方可以对其w个元素的每一个执行这个操作。综上,这生成了个vk+w(kl+k+2l)模乘。例如,如果k=16和l=32被实例化,则可以达到592w+16v个模乘。
在某些示例中,如果客户端集合的大小v是服务方集合大小w的至少十分之一,PSI是有效的。而且,使用这里提供的PSI实施方式,在客户端上的计算负荷是相当小的,因此更适合于计算能力较弱的设备。而且,假设固定基础的(fixed-base)预计算,当应对多个具有不同参数的协议实例时,模数取幂(modular exponentiation)可能成为一个问题。如果客户端集合的大小v是服务方集合大小w的至少6%,忽略这些(以及二次剩余的预计算)造成这里描述的PSI实施方式更加有效。
在一些实施方式中,公钥加密的布隆过滤器(PEBF)可以使用GM加密来加密布隆过滤器的每个位。如这里进一步讨论的,可以使用PEBF执行操作,示例操作包括PEBF-Create(m,k),PEBF-Add(x),PEBF-Test(x),以及PEBF-Compare(E(b′))。每个示例的操作在以下进一步详细的讨论。
在某些示例中,在GM加密方案中,可以创建公钥私钥对(PEBF-Create(m,k)),pk,sk,←KeyGen(k)。在某些示例中,可以创建布隆过滤器,bj,fi,←Create(m),并且布隆过滤器中的每个位可以被加密,E(bj)←Encrypt(bj,pk)。对于利用公钥pk,的b=(...,bj,...)的按元素的加密E(b),PEBF的公共组件(public component)是E(b)、fi、pk,而PEBF的私有组件(private component)是sk。多个定理可以证明PEBF的公共组件不会揭示关于布隆过滤器的内容的任何信息。
在一些实施方式中,可以证明第一定理1。让对手选择两个布隆过滤器内容b0=(...,b0,j,...)和b1=(...,b1,j,...)。给定随机选择β和PEBF的公共组件E(bβ)、fi、pk,则任何对手输出β的可能性最高为
为了执行PEBF-Add(x)操作,计算布隆过滤器的索引,li←fi(x)。然后,可以通过如果通过Add(x)操作设定位则以明文1替代每个位、或者如果位没有被设定则通过再次随机化来再计算布隆过滤器的每个位:
因此,定理1的推论是PEBF的公共组件不会揭示关于所添加的物品的任何信息,无论是添加前还是添加后。
在一些实施方式中,推论2可以被证明。对于相同的PEBF给定两个公共组件,E(b)、fi、pk,但是对于布隆过滤器内容b0=(...,b0,j,...)和b1=(...,b1,j,...),从而存在索引h,其中b0,h≠b1,h,任何对手输出h的可能性最高为:
PEBF-Test(x)操作被提供用来使用私钥sk检查PEBF是否包含元素x。可以构建ZKP PEBF-Testtrue,从而x包含在PEBF的公共组件内:E(b)、fi、pk。对于公共输入xiE(b)、fi、pk和证明人的秘密输入sk,对于x可以计算设定的布隆过滤器索引,li←fi(x),而对于每个设定的布隆过滤器位的密文可以被扩展,使用同态性对于所有设定的布隆过滤器位计算逻辑与AND,因此,这证明零知识,σj(0≤j<u)是二次剩余,Proof-QR(σj)。
在一些实施方式中个,推论3提出ZKP PEBF-Testtrue为零知识诚实检验人,并且是完整和公正的。提供推论3可以通过对于检验人的观点示出仿真器来达成。仿真器计算开始三步(first three steps),然后对于Proof-QR(s2)调用u次。证明揭示了σi是二次剩余,并很有可能是二次非剩余,这也通过ZKP的输出来暗示。
在某些示例中,为了满足完整性的特性,可以证明如果test(x)=true,则PEBF-Testtrue被诚实检验人接受。例如,如果test(x)=true,则为二次非剩余,为二次剩余,因而所有的σj都是二次剩余。
在某些示例中,为了满足公正性的特性,可以证明如果test(x)=false,则很有可能PEBF-Testtrue被诚实检验人拒绝。例如,如果test(x)=false,则存在索引h(0≤h<k),从而lh=fh(x)以及然后,全部和σj都在{E(0),E(1)}中(被统一地)随机地分布。因此,二次剩余的至少一个ZKP将以1-2-u的可能性发生错误。
在一些实施方式中,为了证明元素x没有包含在PEBF中,可以证明σ的至少一个索引具有二次非剩余。然而,知道σj是二次非剩余可能仅暗示(w.h.p.)特定的bj=0。因此,可以简单地假设Expand()操作中的随机选择,从而只是用一个E(bj)的密文,其它的密文被固定为E(0)。因此,通过实现PEBF-Testtrue测试中开始三步,选择(1,ldots,u)的随机置换π和密文的长度u的向量ρ=(E(0),...),并计算τ←π(σ)·ρ,能够构建更复杂的ZKP PEBF-Testfalse。进一步证明零知识,即τ是σ的混洗(shuffle)(Proof-Shuffle(σ,τ))的混合揭示了索引h,从而τh为二次非剩余,这也能够在零知识(Proof-QNR(τh)中证明)。
在一些实施方式中,推论4提出ZKP PEBF-Testfalse为零知识诚实检验人,并且是完整和公正的。以和满足ZKP PEBF-Testtrue类似的方式,能够满足完整性和公正性的特性。对于零知识诚实检验人,通过统一地选择随机h,并且对于τ,以及对于σ选择密文的随机置换,能够提供以下仿真器,除了应当选择明文1(二次非剩余)的τh的情况之外。
在某些示例中,在索引h通过调用Proof-Shuffle(σ,τ)的仿真器,可以替代二次剩余。如果仿真器失败,则因为二次剩余被替代,仿真器能够再次发动(rewound),并选择新的h。则h的选择将以1/2的较高可能性落在二次非剩余上,并且可以调用Proof-QNR(τh)的仿真器。
在某些示例中,通过用E(b′)表示相同散列函数fi的加密的布隆过滤器内容,能够实现PEBF-Compare(E(b′))。使用密钥sk,可以构建ZKP PEBF-Compare,从而PEBF的公共组建的b相等。例如,对于公共输入E(b′),E(b),pk和证明人的秘密输入sk,使用加密方案的同态性可以加密两个加密的布隆过滤器内容的否定的(negated)逻辑XOR:
然后每个布隆过滤器位(0≤i<m)的密文可以被扩展,σi←Expand(E(b″),pk),并且可以使用同态性σ←σ0,...,σm-1来计算布隆过滤器位的逻辑AND。因此,可以证明零知识,σj(0≤j<u)为二次剩余Proof-QR(σj)。
在一些实施方式中,推论5提出ZKP PEBF-Compare为零知识诚实检验人,并且是完整和公正的。使用如所使用的相同的仿真器,通过示出如果b=b,则由诚实检验人接受ZKP PEBF-Compare,能够满足完整性的特性。因此,如果b=b′,则b″=1m,并且σ都是二次剩余。为了满足公正性的特性,可以证明,如果b≠b′,则ZKP PEBF-Compare将有很大可能被诚实检验人拒绝。例如,如果b≠b′,则b″包含0,并且σ以1-2-u的可能性包含二次非剩余。从而,至少一个ZKP Proof-QR(σj)将很有可能被拒绝。对于b≠b′的ZKP的构建遵循与ZKP PEB-Testfalse相同的过程。
使用加密的布隆过滤器用于PSI的一个有用的特征在于计算可以外包给易忘的SP(即,包括集合大小的所有数据都是完全机密的,即使SP执行PSI操作),如在云计算中(即,OPSI)。易忘SP的目的(与理想模型中TPP相反)在于计算一个或多个加密的返回集合,而无需获知关于输入或交集的任何信息(包括其大小)。在OPSI中,客户端提交其加密的布隆过滤器E(b)用于其集合{c1,...,cv},而服务方也提交加密的布隆过滤器E(b′i)用于其集合{s1,...,sw}。SP易忘地(obliviously)对密文评估Test函数:
等式16的乘法深度(multiplicative depth)2不能使用SYY技术进行评估。因此,能够评估这个方程的同态加密系统的新的组合可以使用BGN加密来构建,该BGN加密使得能够评估输入2的一次相乘(one multiplication of fan-in2)(补充无限的添加)。在评估第一逻辑AND之后,SYY技术可以用来评估第二逻辑AND。
在一些实施方式中,BGN加密的简化将明文域从降低到并且它还包括一些优点。在某些示例中,不再需要解决用于解密的离散对数的困难问题;而是,简单的计算就已经足够。在某些示例中,密钥持有者不需要将明文的域保持为秘密。而是,任何参与方都能够在明文组中执行操作(例如,否定)。
在某些示例中,BGN加密可以根据密码配对(cryptographic pairings)来理解。给定安全参数κ和两个较大质数p和q的次数(order)n=pq的两个组和其中n的位大小(bit-size)通过κ来确定,BGN加密方案使用可计算的、非退化(non-degenerate)双线性映射而且,双线性配对满足了许多特性。在某些示例中,满足双线性(bilinearity),则对于以及对于 在某些示例中,满足非退化性(non-degenerateness),则为的生成器(generator)。在某些示例中,倘若存在对于所有计算的有效算法,则可满足计算性。
在一些实施方式中,使用组中的元素加密第一阶段(stage)的算法。0被编码为中的二次剩余,而1被编码为中的伪二次剩余。在这个第一阶段,将明文x的加密表示为E1(x),并且将相应的解密表示为D1(c),E1(x)在XOR操作中是同态的:
在一些实施方式中,通过使用双线性映射的特性,能够对两个密文执行一个逻辑AND操作。由于双线性映射的结果继承了指数(exponents),如果一个操作数(operand)是二次剩余,则结果将是二次剩余。在中结果将或是二次剩余或是二次非剩余,并且第二阶段加密方案可以遵循GM构建。在第二阶段中,将明文x的加密表示为E2(x),并将相应的解密表示为D2(c):
再次,第二阶段加密系统在XOR操作中为同态的:
SYY技术也可以应用到第二阶段加密,用于无限输入(unbounded fan-in)逻辑AND。将扩展的密文表示为则同态加密系统的组合可以用来评估关于密文的下列等式:
在一些实施方式中,当因子分解很难执行时,IND-CPA安全模型可以被采用用于BGN构建。
在OPSI的一些实施方式中,客户端和服务方都将它们的加密的输入发送给SP,SP并未获知有关输入或输出的任一集合的任何信息:
C:b=Create(m)
i=1,...v:b.Add(ci)
C→SP:n,u,E1(b1),...,E1(bm)
S:i=1,...,w:b′i=Create(m)
b′i.Add(si)
S→SP:
P:i=1,...,w:
P→C:
在一些实施方式中,SP还将解密的结果集合提供给服务方。OPSI的一些实施方式只在半诚实模式中是安全的。针对恶意的SP的安全性涉及检验计算的完整性,者与执行计算一样复杂。
在OPSI的某些示例中,外包的计算能够独立于客户端或服务方的可用性而执行。客户端可以将加密的布隆过滤器存储在SP处,并且服务方能够在新的集合或元素到达时查询它们。在OPSI的某些示例中,服务方能够存储加密的按元素的布隆过滤器和按位的加密的元素,并且客户端能够使用新的布隆过滤器查询SP。
图3是示出能够根据本公开的实施方式运行的示例过程300的流程图。一般,示例过程300可以是PSISH的实施方式的代表。示例过程300可以使用一个或多个计算机程序应用来运行,而所述一个或多个计算机程序应用使用一个或多个计算机设备来运行。在一些实施方式中,示例过程300的操作可以由第一实体(例如,客户端)执行,并且操作可以由第二实体(例如,服务方)执行。
生成第一集合(302)。例如,客户端可以生成第一集合的元素(例如,c={c1,...,cv})。基于第一集合生成布隆过滤器(304)。例如,可以生成布隆过滤器,并且第一集合的元素可以使用Add操作添加到布隆过滤器。布隆过滤器被加密,以提供加密的布隆过滤器(306)。在一些实施方式中,加密布隆过滤器的每个位。在一些实施方式中,使用GM加密对布隆过滤器进行加密。在一些实施方式中,使用BGN加密对布隆过滤器进行加密。除了其它数据以外,加密的布隆过滤器也被传送(308)。在图3的示例上下文中,加密的布隆过滤器可以通过网络从客户端的计算设备传送到服务方的计算设备。
加密第二数据集合(310)。例如,服务方可以包括第二集合的元素(例如,s={s1,...,sw})。在一些实施方式中,使用GM加密对第二集合进行加密。在一些实施方式中,使用BGN加密对第二集合进行加密。确定加密的返回集合(312)。例如,服务方可以执行Test操作和SYY技术,如这里所讨论的,以生成加密的返回集合。示例的加密的返回集合可以包括传送加密的返回集合(314)。在图3的示例上下文中,加密的返回集合可以通过网络从服务方的计算设备传送到客户端的计算设备。接收加密的返回集合(例如,在客户端)(316)。对加密的返回集合进行解密,以提供返回集合(318)。基于返回集合确定第一集合与第二集合的交集(302)。
在一些实施方式中,图3的示例过程300可以包括操作以支持PSTMAL。在一些实施方式中,可以生成加密的布隆过滤器的ZKP。加密的布隆过滤器的ZKP可以利用加密的布隆过滤器传送到服务方(308)。
图4是示出能够根据本公开的实施方式运行的示例过程400的流程图。一般,示例过程400可以是APSI的实施方式的代表,并且包括以上参考图3详细讨论的示例过程300的操作。示例过程400可以使用一个或多个计算机程序应用来运行,所述一个或多个计算机程序应用使用一个或多个计算机设备来运行。在一些实施方式中,示例过程300、400的操作可以由第一实体(例如,客户端)执行,操作可以由第二实体(例如,服务方)执行,以及操作可以由TPP执行。
第一集合、布隆过滤器、以及加密的布隆过滤器被传送到TTP(402)。TTP处理第一集合、布隆过滤器、以及加密的布隆过滤器,并生成与加密的布隆过滤器相对应的签名(例如,S(E(b1),...,E(bm))(404)。TTP将签名传送到客户端(406)。客户端接收签名(408)。客户端传送签名和加密的布隆过滤器(308),如以上参考图3所讨论的。
图5是示出能够根据本公开的实施方式运行的示例过程500的流程图。一般,示例过程500可以是OPSI的实施方式的代表。示例过程500可以使用一个或多个计算机程序应用来运行,所述一个或多个计算机程序应用使用一个或多个计算机设备来运行。在一些实施方式中,示例过程500的操作可以由第一实体(例如,客户端)执行,操作可以由第二实体(例如,服务方)执行,以及操作可以由SP执行。
生成第一集合和第二集合(502)。例如,客户端可以生成第一集合的元素(例如,c={c1,...,cv}),并且服务方可以生成第二集合的元素(例如,s={s1,...,sw})。基于第一集合生成第一布隆过滤器,并且基于第二集合生成第二布隆过滤器(504)。例如,第一布隆过滤器可以由客户端生成,并且第一集合的元素可以使用Add操作添加到布隆过滤器,而第二布隆过滤器可以由服务方生成,并且第二集合的元素可以使用Add操作添加到第二布隆过滤器。对第一和第二布隆过滤器进行加密以分别提供第一和第二加密的布隆过滤器(506)。在一些实施方式中,第一布隆过滤器的每个位被客户端加密,而第二布隆过滤器的每个位被服务方加密。在一些实施方式中,使用BGN加密对布隆过滤器进行加密。除了其它的数据以外,第一和第二加密的布隆过滤器被传送(508)。在图5的示例上下文中,第一加密的布隆过滤器可以从客户端的计算设备传送到SP的计算设备,而第二加密的布隆过滤器可以从服务方的计算设备传送到SP的计算设备。
接收第一和第二布隆过滤器(510)。确定加密的返回集合(512)。例如,SP可以执行Test操作和SYY技术,如这里所讨论的,以生成加密的返回集合。在某些示例中,可以确定第一加密的返回集合和第二加密的返回集合。例如,可以基于第一加密的布隆过滤器和第二加密的布隆过滤器确定第一加密的返回集合和第二加密的返回集合中的每一个。示例的第一加密的返回集合可以包括示例的第二加密的返回集合可以包括传送第一和第二加密的返回集合(514)。在图5的示例上下文中,第一加密的返回集合可以通过网络从SP的计算设备传送到服务方的计算设备,而第二加密的返回集合可以通过网络从SP的计算设备传送到客户端的计算设备。接收第一和第二加密的返回集合(例如,分别在服务方和客户端)(516)。第一和第二加密的返回集合被解密,以分别提供第一和第二返回集合(518)。基于第二返回集合确定第一集合和第二集合的交集(520)(例如,客户端确定交集)。基于第一返回集合确定第二集合和第一集合的交集(522)(例如,服务方确定交集)。
本公开的实施方式提供了许多优点。在某些示例中,作为安全性和性能优势的组合来达成这些优点。在一些实施方式中,PSIMAL和APSI实施方式在恶意的模型中是可证明地安全的(provably secure)。在某些示例中,这些实施方式以最小的信任假设进行操作,这意味着它们在标准模型中是安全的(没有随机的预知)。这些变化的密码假设包括因子分解很难执行,这是可以做出的最弱的假设。在某些示例中,PSIMAL和APSI实施方式是隐藏客户端集合大小的(即,它们不揭示客户端的集合的大小)。在某些示例中,APSI实施方式使用认证的客户端集合,这意味着客户端利用TTP认证其集合,TTP保证其坚持某些策略(policy)。这防止了客户通过提交具有所有可能的元素的集合作为其输入来“偷窃”服务方的输入。
在一些实施方式中,提供了改善的效率。例如,PSI和APSI实施方式具有线性的复杂度(O(k(υ+w)))。在某些示例中,OPSI实施方式具有二次复杂度O(kw2)。在某些示例中,PSI和APSI实施方式使用不昂贵的(inexpensive)操作(按照执行所需的处理能力(power))。它们不使用模数取冥(modularexponentiation)或全域的(full-domain)散列函数;而是,它们只使用模乘。在某些示例中,APSI实施方式使用类似的数量的(绝对数量)归一化的(normalized)模乘,作为最有效、线性复杂度的协议。然而,这个实施方式不使用全域的散列,而仍然使用非常少的预计算。
在一些实施方式中,改善的操作被展示为PSI能够被外包给易忘的SP,其中,客户端和服务方都提交加密的输入,并且SP易忘地执行计算而无需获知关于输入(包括客户端集合大小)和交集(包括其大小)的任何信息。在某些示例中,计算可以独立地执行,即,客户端或服务方将它们的(加密的)输入存储在服务提供者,而其它参与方能够在任何需要的时候查询其输入。
参考图6,提供了示例计算系统600的示意图。系统600可以用于结合在这里描述的实施方式而描述的操作。例如,系统600可以包括在这里讨论的任何或所有服务方组件中。系统600包括处理器610、存储器620、存储设备630、以及输入/输出设备640。组件610、620、630、以及640中的每一个使用系统总线650互连。处理器610能够处理用于在系统600中运行的指令。在一个实施方式中,处理器610为单线程(single-thread)处理器。在另一个实施方式中,处理器610是多线程(multi-thread)处理器。处理器610能够处理存储在存储器620或存储设备630上的指令,以便为输入/输出设备640上的用户界面显示图形信息。
存储器620将信息存储在系统600内。在一个实施方式中,存储器620为计算机可读介质。在一个实施方式中,存储器620是易失性存储单元。在另一个实施方式中,存储器620是非易失性存储单元。存储设备630能够为系统600提供海量的存储。在一个实施方式中,存储设备630是计算机可读介质。在各种不同的实施方式中,存储设备630可以是软盘设备、硬盘设备、光盘设备、磁带设备。输入/输出设备640为系统600提供输入/输出操作。在一个实施方式中,输入/输出设备640包括键盘和/或指示设备。在另一个实施方式中,输入/输出设备640包括显示单元,用于显示图形用户界面。
所描述的特征可以以数字电子电路来实现,或者以计算机硬件、固件、软件、或者它们的组合来实现。装置可以以有形地体现在信息载体中的计算机程序产品来实现,例如,在机器可读存储设备中,用于由可编程处理器来运行;方法步骤可以由可编程处理器来执行,所述可编程处理器通过对输入数据进行操作并生成输出来运行指令程序,以执行所描述的实施方式的功能。所描述的特征可以有利地在一个或多个计算机程序中实现,所述计算机程序能够在可编程系统上运行,所述可编程系统包括至少一个可编程处理器,所述可编程处理器耦接以便从数据存储系统接收数据和指令,并向数据存储系统传送数据和指令,所述可编程系统还包括至少一个输入设备以及至少一个输出设备。计算机程序是一组指令,其能够在计算机中直接地或间接地使用,以执行一定的活动或者带来一定的结果。计算机程序可以以任何形式的编程语言来编写,包括编译或解释语言,并且可以以任何形式来布置,包括独立程序或模块、组件、子例程、或者适于在计算环境中使用的其它单元。
用于运行指令程序的合适的处理器包括,例如,全部通用和专用微处理器,以及任何类型计算机的单处理器或多个处理器之一。一般,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的关键单元是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器。通常,计算机还包括或者可操作地耦接以与之通信的:用于存储数据文件的一个或多个海量存储设备;这样的设备包括诸如内部的硬盘和可移动盘的磁盘;磁光盘;和光盘。适于具体体现计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,例如包括诸如EPROM、EEPROM和闪存设备的半导体存储设备;诸如内部硬盘和可移动盘的磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由ASIC(专用集成电路)补充或合并在ASIC中。
为了提供与用户的交互,可以在具有显示设备和键盘以及指示设备的计算机上实现所述特征,诸如CRT(阴极射线管)或LCD(液晶显示器)监视器的显示设备用于向用户显示信息,而通过诸如鼠标或轨迹球的键盘和指示设备,用户可以向计算机提供输入。
所述特征可以在包括如下部件的计算机系统中实现:诸如数据服务器的后端组件,或者诸如应用程序服务器或因特网服务器的中间件组件,或者诸如具有图形用户接口或因特网浏览器的客户端计算机的前端组件,或者它们的任何组合。系统的组件可以通过诸如通信网络的数字数据通信的任何形式或介质来连接。通信网络的示例包括,例如,LAN、WAN以及形成因特网的计算机和网络。
计算机系统可以包括客户机和服务器。客户机和服务器通常相互远离,并且典型地,通过如上所述的网络进行交互。依靠运行在各个计算机上并且相互具有客户机-服务器关系的计算机程序,建立客户机和服务器的关系。
此外,在附图中描绘的逻辑流并不要求所示的特定次序,或者顺序的次序,以达成所描述的结果。另外,可以提供其它的步骤,或者从所描述的流程中消除步骤,并且其它组件可以添加到所描述的系统中或者从其中去除。因此,其它实施方式也在以下权利要求的范围内。
已经描述了本公开的许多实施方式。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其它实施方式也在以下权利要求的范围内。
Claims (20)
1.一种计算机实现的方法,包括:
从计算机可读存储器检索第一集合,第一集合包括多个元素;
使用计算设备将第一集合的元素添加到第一布隆过滤器,第一布隆过滤器包括多个位;以及
使用所述计算设备加密第一布隆过滤器的多个位中的每个位,以提供第一加密的布隆过滤器,加密使用同态的、公钥加密来完成。
2.如权利要求1所述的方法,还包括对第一加密的布隆过滤器执行操作。
3.如权利要求2所述的方法,其中,所述操作包括将元素添加到第一加密的布隆过滤器的元素添加、确定元素是否存在于第一加密的布隆过滤器中的元素包含验证、以及将第一加密的布隆过滤器的内容与第二布隆过滤器的内容进行比较中的至少一个。
4.如权利要求3所述的方法,其中,第二布隆过滤器包括第二加密的布隆过滤器。
5.如权利要求2所述的方法,还包括:
确定第一布隆过滤器对于所述操作的索引,所述操作包括添加操作;以及
对于第一布隆过滤器的每个位,如果通过添加操作来设定位则将所述位设定为等于1,而如果不通过添加操作来设定位则对所述位进行随机化。
6.如权利要求2所述的方法,还包括:
确定与可能存在于第一布隆过滤器中的元素相对应的第一布隆过滤器的索引,所述操作包括测试操作;
对于与所述索引相对应的每个设定的布隆过滤器位对密文进行扩展,以提供扩展的密文;
使用同态性对于所有设定的位计算逻辑与(AND)操作;以及
生成扩展的密文是二次剩余的零知识证明(ZKP)。
7.如权利要求2所述的方法,其中,所述操作是非交互操作,从而所述操作能够被执行而无需解密第一加密的布隆过滤器。
8.如权利要求1所述的方法,其中,所述同态的、公钥加密包括Goldwasser-Micali(GM)加密。
9.如权利要求1所述的方法,其中,所述同态的、公钥加密包括Boneh、Goh、Nissim(BGN)加密。
10.如权利要求1所述的方法,其中,加密包括基于第一布隆过滤器的许多散列函数生成公钥、私钥对。
11.如权利要求10所述的方法,其中,使用公钥完成第一布隆过滤器的加密。
12.如权利要求1所述的方法,还包括:
传送第一加密的布隆过滤器;
在所述计算设备处接收第一加密的返回集合,第一加密的返回集合基于第一加密的布隆过滤器和第二集合来生成,第二集合包括多个元素;
使用所述计算设备解密第一加密的返回集合,以提供第一返回集合;以及
确定第一集合和第一返回集合之间的交集。
13.如权利要求12所述的方法,其中,第一集合和第一返回集合之间的交集代表第一集合和第二集合之间的交集。
14.如权利要求12所述的方法,还包括:
将第一集合、第一布隆过滤器、以及第一加密的布隆过滤器传送到可信第三方;
从所述可信第三方接收签名;以及
将所述签名传送到实体,所述实体是第二集合的拥有者。
15.如权利要求12所述的方法,还包括:
基于第一加密的布隆过滤器生成零知识证明(ZKP);以及
将所述ZKP传送到实体,所述实体是第二集合的拥有者。
16.如权利要求12所述的方法,其中,传送第一加密的布隆过滤器包括将第一加密的布隆过滤器传送到服务提供者。
17.如权利要求16所述的方法,其中,第一加密的返回集合由所述服务提供者基于第一加密的布隆过滤器和第二加密的布隆过滤器来生成,第二加密的布隆过滤器由实体提供到所述服务提供者,所述实体是第二集合的拥有者。
18.如权利要求12所述的方法,其中,基于生成第一加密的布隆过滤器的扩展的密文结果、对于第二集合中的每个元素评价测试功能、并计算在扩展的密文结果和所述测试功能的结果之间的异或(XOR)操作来生成第一加密的结果集合。
19.一种耦接到一个或多个处理器的计算机可读存储介质,具有存储在其上的指令,当由所述一个或多个处理器执行所述指令时,使得所述一个或多个处理器执行操作,包括:
从计算机可读存储器检索第一集合,第一集合包括多个元素;
使用计算设备将第一集合的元素添加到第一布隆过滤器,第一布隆过滤器包括多个位;以及
使用所述计算设备加密第一布隆过滤器的多个位中的每个位,以提供第一加密的布隆过滤器,加密使用同态的、公钥加密来完成。
20.一种系统,包括:
一个或多个计算机;以及
耦接到一个或多个计算机的计算机可读存储介质,具有存储在其上的指令,当由所述一个或多个计算机执行所述指令时,使得所述一个或多个计算机执行操作,包括:
从计算机可读存储器检索第一集合,第一集合包括多个元素;
将第一集合的元素添加到第一布隆过滤器,第一布隆过滤器包括多个位;以及
加密第一布隆过滤器的多个位中的每个位,以提供第一加密的布隆过滤器,加密使用同态的、公钥加密来完成。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/178,680 | 2011-07-08 | ||
US13/178,680 US8526603B2 (en) | 2011-07-08 | 2011-07-08 | Public-key encrypted bloom filters with applications to private set intersection |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103095453A true CN103095453A (zh) | 2013-05-08 |
CN103095453B CN103095453B (zh) | 2017-11-03 |
Family
ID=46548179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210236827.3A Active CN103095453B (zh) | 2011-07-08 | 2012-07-09 | 应用私有集合交集的公钥加密的布隆过滤器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8526603B2 (zh) |
EP (1) | EP2547033B1 (zh) |
CN (1) | CN103095453B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105794145A (zh) * | 2013-11-27 | 2016-07-20 | 微软技术许可有限责任公司 | 服务器辅助的具有数据传输的私有集交集(psi) |
CN106874516A (zh) * | 2017-03-15 | 2017-06-20 | 电子科技大学 | 一种云存储中基于kcb树和布隆过滤器的高效密文检索方法 |
CN106991148A (zh) * | 2017-03-27 | 2017-07-28 | 西安电子科技大学 | 一种支持全更新操作的数据库验证系统及方法 |
CN107315967A (zh) * | 2017-06-23 | 2017-11-03 | 北京小米移动软件有限公司 | 数据匹配方法、装置及计算机可读存储介质 |
CN108432179A (zh) * | 2015-09-22 | 2018-08-21 | 谷歌有限责任公司 | 用于在保护隐私的同时预防数据丢失的系统和方法 |
CN110263555A (zh) * | 2019-05-15 | 2019-09-20 | 苏宁易购集团股份有限公司 | 两方数据安全碰撞方法和系统 |
CN111510464A (zh) * | 2020-06-24 | 2020-08-07 | 同盾控股有限公司 | 一种保护用户隐私的疫情信息共享方法及系统 |
CN111885056A (zh) * | 2020-07-22 | 2020-11-03 | 北京金山云网络技术有限公司 | 基于区块链的零知识证明方法、装置及电子设备 |
CN112836239A (zh) * | 2021-02-19 | 2021-05-25 | 支付宝(杭州)信息技术有限公司 | 保护隐私的双方协同确定目标对象数据的方法及装置 |
CN113557512A (zh) * | 2020-02-14 | 2021-10-26 | 谷歌有限责任公司 | 安全的多方到达率和频率估算 |
Families Citing this family (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130230168A1 (en) * | 2010-11-15 | 2013-09-05 | Nec Corporation | Information processing device, information processing method, and computer readable medium |
US8572405B2 (en) * | 2012-03-15 | 2013-10-29 | Sap Ag | Collusion-resistant outsourcing of private set intersection |
US8880867B2 (en) * | 2012-04-12 | 2014-11-04 | Sap Ag | Fault-tolerant privacy-preserving statistics |
US9535658B2 (en) * | 2012-09-28 | 2017-01-03 | Alcatel Lucent | Secure private database querying system with content hiding bloom filters |
US9652511B2 (en) * | 2013-03-13 | 2017-05-16 | International Business Machines Corporation | Secure matching supporting fuzzy data |
WO2015017787A2 (en) | 2013-08-01 | 2015-02-05 | Visa International Service Association | Homomorphic database operations apparatuses, methods and systems |
EP2860905A1 (en) * | 2013-10-09 | 2015-04-15 | Thomson Licensing | Method for ciphering a message via a keyed homomorphic encryption function, corresponding electronic device and computer program product |
US10445769B2 (en) * | 2013-12-24 | 2019-10-15 | Google Llc | Systems and methods for audience measurement |
US10382194B1 (en) | 2014-01-10 | 2019-08-13 | Rockwell Collins, Inc. | Homomorphic encryption based high integrity computing system |
US9454574B2 (en) | 2014-03-28 | 2016-09-27 | Sybase, Inc. | Bloom filter costing estimation |
US9817977B2 (en) * | 2014-04-04 | 2017-11-14 | Palo Alto Research Center Incorporated | Methods for selection of collaborators for online threat mitigation |
US9477839B2 (en) * | 2014-04-04 | 2016-10-25 | Palo Alto Research Center Incorporated | Methods for centralized privacy-preserving collaborative threat mitigation |
US10693626B2 (en) * | 2014-04-23 | 2020-06-23 | Agency For Science, Technology And Research | Method and system for generating/decrypting ciphertext, and method and system for searching ciphertexts in a database |
US9740879B2 (en) | 2014-10-29 | 2017-08-22 | Sap Se | Searchable encryption with secure and efficient updates |
US9342707B1 (en) * | 2014-11-06 | 2016-05-17 | Sap Se | Searchable encryption for infrequent queries in adjustable encrypted databases |
WO2016122513A1 (en) * | 2015-01-29 | 2016-08-04 | Hewlett Packard Enterprise Development Lp | Data analytics on encrypted data elements |
US9608810B1 (en) | 2015-02-05 | 2017-03-28 | Ionic Security Inc. | Systems and methods for encryption and provision of information security using platform services |
US10262160B2 (en) * | 2015-09-09 | 2019-04-16 | Amazon Technologies, Inc. | Verification of data set components using digitally signed probabilistic data structures |
US10078687B2 (en) | 2015-09-09 | 2018-09-18 | Amazon Technologies, Inc. | Deletion of elements from a probabilistic data structure |
US10263784B2 (en) * | 2015-09-09 | 2019-04-16 | Amazon Technologies, Inc. | Signature verification for data set components using probabilistic data structures |
US9830470B2 (en) | 2015-10-09 | 2017-11-28 | Sap Se | Encrypting data for analytical web applications |
US10503730B1 (en) | 2015-12-28 | 2019-12-10 | Ionic Security Inc. | Systems and methods for cryptographically-secure queries using filters generated by multiple parties |
US10740474B1 (en) | 2015-12-28 | 2020-08-11 | Ionic Security Inc. | Systems and methods for generation of secure indexes for cryptographically-secure queries |
US9830463B2 (en) * | 2016-01-22 | 2017-11-28 | Google Llc | Systems and methods for detecting sensitive information leakage while preserving privacy |
US11095625B2 (en) | 2016-03-18 | 2021-08-17 | Micro Focus Llc | Data objects associated with private set intersection (PSI) |
EP3270321B1 (en) * | 2016-07-14 | 2020-02-19 | Kontron Modular Computers SAS | Technique for securely performing an operation in an iot environment |
US10558634B2 (en) * | 2016-09-06 | 2020-02-11 | Salesforce.Com, Inc. | Multi-user probabalistic array |
US10089475B2 (en) * | 2016-11-25 | 2018-10-02 | Sap Se | Detection of security incidents through simulations |
WO2018122287A1 (en) * | 2016-12-30 | 2018-07-05 | Robert Bosch Gmbh | Method and system for search pattern oblivious dynamic symmetric searchable encryption |
US11196541B2 (en) | 2017-01-20 | 2021-12-07 | Enveil, Inc. | Secure machine learning analytics using homomorphic encryption |
US10721057B2 (en) * | 2017-01-20 | 2020-07-21 | Enveil, Inc. | Dynamic channels in secure queries and analytics |
US20180212753A1 (en) | 2017-01-20 | 2018-07-26 | Enveil, Inc. | End-To-End Secure Operations Using a Query Vector |
US11777729B2 (en) * | 2017-01-20 | 2023-10-03 | Enveil, Inc. | Secure analytics using term generation and homomorphic encryption |
US11196540B2 (en) | 2017-01-20 | 2021-12-07 | Enveil, Inc. | End-to-end secure operations from a natural language expression |
US11507683B2 (en) | 2017-01-20 | 2022-11-22 | Enveil, Inc. | Query processing with adaptive risk decisioning |
CN107124268B (zh) * | 2017-04-01 | 2020-08-11 | 中国人民武装警察部队工程大学 | 一种可抵抗恶意攻击的隐私集合交集计算方法 |
CN107196926B (zh) * | 2017-04-29 | 2020-04-14 | 河南师范大学 | 一种云外包隐私集合比较方法与装置 |
US10430598B2 (en) * | 2017-06-08 | 2019-10-01 | The Government Of The United States, As Represented By The Secretary Of The Army | Secure generalized bloom filter |
GB2565539A (en) * | 2017-08-11 | 2019-02-20 | Infosum Ltd | Systems and methods for determining dataset intersection |
US11049599B2 (en) * | 2018-06-08 | 2021-06-29 | International Business Machines Corporation | Zero knowledge multi-party prescription management and drug interaction prevention system |
CN108737115B (zh) * | 2018-06-20 | 2020-12-18 | 湖北工业大学 | 一种具有隐私保护的私有属性集交集求解方法 |
US10867053B2 (en) | 2018-06-26 | 2020-12-15 | Sri International | Creating software packages for performing secure computations |
US11005971B2 (en) * | 2018-08-02 | 2021-05-11 | Paul Swengler | System and method for user device authentication or identity validation without passwords or matching tokens |
US11243929B2 (en) * | 2018-08-08 | 2022-02-08 | Visa International Service Association | System and method for dynamic bulk data ingestion prioritization |
US10902133B2 (en) | 2018-10-25 | 2021-01-26 | Enveil, Inc. | Computational operations in enclave computing environments |
CN109495465B (zh) * | 2018-11-05 | 2020-12-25 | 河南师范大学 | 基于智能合约的隐私集合交集方法 |
US10817262B2 (en) | 2018-11-08 | 2020-10-27 | Enveil, Inc. | Reduced and pipelined hardware architecture for Montgomery Modular Multiplication |
CN109525386B (zh) * | 2018-11-29 | 2021-05-18 | 东北大学 | 一种基于Paillier同态加密私有交集和的方法 |
US10937339B2 (en) | 2019-01-10 | 2021-03-02 | Bank Of America Corporation | Digital cryptosystem with re-derivable hybrid keys |
US11764940B2 (en) | 2019-01-10 | 2023-09-19 | Duality Technologies, Inc. | Secure search of secret data in a semi-trusted environment using homomorphic encryption |
US11366892B2 (en) * | 2019-02-05 | 2022-06-21 | Shape Security, Inc. | Detecting compromised credentials by improved private set intersection |
US11218290B2 (en) * | 2019-02-28 | 2022-01-04 | Sap Se | Efficient cloud-based secure computation of the median using homomorphic encryption |
US10746567B1 (en) | 2019-03-22 | 2020-08-18 | Sap Se | Privacy preserving smart metering |
CN110400162B (zh) * | 2019-04-10 | 2023-12-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、服务器及系统 |
GB2575896B (en) * | 2019-04-15 | 2021-01-06 | Thales Holdings Uk Plc | Methods and systems for validating data in a distributed computing network |
CN110598427B (zh) * | 2019-08-14 | 2022-09-13 | 腾讯科技(深圳)有限公司 | 数据的处理方法、系统和存储介质 |
CN110719159B (zh) * | 2019-09-24 | 2023-06-30 | 河南师范大学 | 抗恶意敌手的多方隐私集合交集方法 |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
CN111552978B (zh) * | 2020-04-21 | 2022-08-23 | 杭州趣链科技有限公司 | 基于DH加密和Hash表的隐私保护集合求交集方法 |
CN111914279B (zh) * | 2020-08-13 | 2023-01-06 | 深圳市洞见智慧科技有限公司 | 一种高效准确的隐私求交系统、方法及装置 |
US11601258B2 (en) | 2020-10-08 | 2023-03-07 | Enveil, Inc. | Selector derived encryption systems and methods |
CN112491529B (zh) * | 2020-11-12 | 2022-03-29 | 安徽工业大学 | 用于不可信服务器环境中数据文件加密及完整性验证方法及其系统 |
CN115087978B (zh) * | 2021-01-15 | 2023-08-01 | 谷歌有限责任公司 | 用于欺诈检测的跨域频率滤波器 |
IL281330A (en) * | 2021-03-08 | 2022-10-01 | Google Llc | Improved execution of secure multilateral calculation |
CN113515538B (zh) * | 2021-06-08 | 2023-07-07 | 四川新网银行股份有限公司 | 一种基于多方安全计算的机构间隐私数据查询及预警方法 |
CN113157778B (zh) * | 2021-06-09 | 2021-09-24 | 富算科技(上海)有限公司 | 分布式数据仓库的可代理查询方法、系统、设备及介质 |
CN113518092B (zh) * | 2021-07-22 | 2022-08-26 | 西安电子科技大学 | 实现多方隐私的集合交集方法 |
US11687667B2 (en) * | 2021-08-06 | 2023-06-27 | Amazon Technologies, Inc. | Privacy-preserving computing with third-party service |
CN115333789B (zh) * | 2022-07-20 | 2024-04-19 | 湖北工业大学 | 一种非对称模式下基于大规模数据集的隐私保护交集计算方法及装置 |
CN115396148B (zh) * | 2022-07-22 | 2024-04-12 | 西安邮电大学 | 隐私保护的名单查询方法、系统、介质、设备及终端 |
CN115935438B (zh) * | 2023-02-03 | 2023-05-23 | 杭州金智塔科技有限公司 | 数据隐私求交系统及方法 |
CN116842561B (zh) * | 2023-06-29 | 2024-05-24 | 上海零数众合信息科技有限公司 | 一种数据集可动态增删的隐私求交系统和方法 |
CN116881521B (zh) * | 2023-08-08 | 2024-07-12 | 北京火山引擎科技有限公司 | 数据获取方法、设备及存储介质 |
CN117972795B (zh) * | 2024-04-01 | 2024-06-11 | 山东省计算中心(国家超级计算济南中心) | 基于异或过滤器的密态空间关键字安全检索方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100146299A1 (en) * | 2008-10-29 | 2010-06-10 | Ashwin Swaminathan | System and method for confidentiality-preserving rank-ordered search |
US20100281269A1 (en) * | 2007-12-21 | 2010-11-04 | Morpho | Identification Based on Encrypted Biometric Data |
CN101901248A (zh) * | 2010-04-07 | 2010-12-01 | 北京星网锐捷网络技术有限公司 | 一种布隆过滤器的生成、更新以及查询元素方法和装置 |
CN101923568A (zh) * | 2010-06-23 | 2010-12-22 | 北京星网锐捷网络技术有限公司 | 布隆过滤器的元素增加、删除方法以及布隆过滤器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4978288B2 (ja) * | 2007-04-19 | 2012-07-18 | 沖電気工業株式会社 | 無線ネットワークシステム、情報提供装置及び無線端末 |
-
2011
- 2011-07-08 US US13/178,680 patent/US8526603B2/en active Active
-
2012
- 2012-07-04 EP EP12004963.0A patent/EP2547033B1/en active Active
- 2012-07-09 CN CN201210236827.3A patent/CN103095453B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100281269A1 (en) * | 2007-12-21 | 2010-11-04 | Morpho | Identification Based on Encrypted Biometric Data |
US20100146299A1 (en) * | 2008-10-29 | 2010-06-10 | Ashwin Swaminathan | System and method for confidentiality-preserving rank-ordered search |
CN101901248A (zh) * | 2010-04-07 | 2010-12-01 | 北京星网锐捷网络技术有限公司 | 一种布隆过滤器的生成、更新以及查询元素方法和装置 |
CN101923568A (zh) * | 2010-06-23 | 2010-12-22 | 北京星网锐捷网络技术有限公司 | 布隆过滤器的元素增加、删除方法以及布隆过滤器 |
Non-Patent Citations (2)
Title |
---|
DAN BONEH: "Public Key Encryption that Allows PIR Queries", 《INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH》 * |
FLORIAN KERSCHBAUM: "Public-Key Encrypted Bloom Filters with Applications to Supply Chain Integrity", 《DATA AND APPLICATIONS SECURITY AND PRIVACY XXV》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105794145A (zh) * | 2013-11-27 | 2016-07-20 | 微软技术许可有限责任公司 | 服务器辅助的具有数据传输的私有集交集(psi) |
CN105794145B (zh) * | 2013-11-27 | 2019-03-26 | 微软技术许可有限责任公司 | 利用服务器辅助的私有集交集(psi)的方法 |
CN108432179A (zh) * | 2015-09-22 | 2018-08-21 | 谷歌有限责任公司 | 用于在保护隐私的同时预防数据丢失的系统和方法 |
CN106874516A (zh) * | 2017-03-15 | 2017-06-20 | 电子科技大学 | 一种云存储中基于kcb树和布隆过滤器的高效密文检索方法 |
CN106991148A (zh) * | 2017-03-27 | 2017-07-28 | 西安电子科技大学 | 一种支持全更新操作的数据库验证系统及方法 |
CN106991148B (zh) * | 2017-03-27 | 2020-11-27 | 西安电子科技大学 | 一种支持全更新操作的数据库验证系统及方法 |
CN107315967A (zh) * | 2017-06-23 | 2017-11-03 | 北京小米移动软件有限公司 | 数据匹配方法、装置及计算机可读存储介质 |
CN107315967B (zh) * | 2017-06-23 | 2020-06-19 | 北京小米移动软件有限公司 | 数据匹配方法、装置及计算机可读存储介质 |
CN110263555A (zh) * | 2019-05-15 | 2019-09-20 | 苏宁易购集团股份有限公司 | 两方数据安全碰撞方法和系统 |
US12069161B2 (en) | 2020-02-14 | 2024-08-20 | Google Llc | Secure multi-party reach and frequency estimation |
US11784800B2 (en) | 2020-02-14 | 2023-10-10 | Google Llc | Secure multi-party reach and frequency estimation |
CN114175568A (zh) * | 2020-02-14 | 2022-03-11 | 谷歌有限责任公司 | 安全的多方到达率和频率估算 |
CN114175568B (zh) * | 2020-02-14 | 2023-06-06 | 谷歌有限责任公司 | 安全的多方到达率和频率估算 |
CN113557512A (zh) * | 2020-02-14 | 2021-10-26 | 谷歌有限责任公司 | 安全的多方到达率和频率估算 |
CN111510464A (zh) * | 2020-06-24 | 2020-08-07 | 同盾控股有限公司 | 一种保护用户隐私的疫情信息共享方法及系统 |
CN111510464B (zh) * | 2020-06-24 | 2020-10-02 | 同盾控股有限公司 | 一种保护用户隐私的疫情信息共享方法及系统 |
CN111885056A (zh) * | 2020-07-22 | 2020-11-03 | 北京金山云网络技术有限公司 | 基于区块链的零知识证明方法、装置及电子设备 |
CN112836239A (zh) * | 2021-02-19 | 2021-05-25 | 支付宝(杭州)信息技术有限公司 | 保护隐私的双方协同确定目标对象数据的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US8526603B2 (en) | 2013-09-03 |
EP2547033A2 (en) | 2013-01-16 |
CN103095453B (zh) | 2017-11-03 |
EP2547033B1 (en) | 2017-03-29 |
EP2547033A3 (en) | 2013-03-27 |
US20130010950A1 (en) | 2013-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103095453A (zh) | 应用私有集合交集的公钥加密的布隆过滤器 | |
Ullah et al. | Elliptic Curve Cryptography; Applications, challenges, recent advances, and future trends: A comprehensive survey | |
Han et al. | Improving privacy and security in decentralized ciphertext-policy attribute-based encryption | |
CN109478223B (zh) | 区块链实现的方法和系统 | |
CN104811450B (zh) | 云计算中一种基于身份的数据存储方法及完整性验证方法 | |
EP2228942B1 (en) | Securing communications sent by a first user to a second user | |
Huang et al. | Achieving accountable and efficient data sharing in industrial internet of things | |
CN103401839B (zh) | 一种基于属性保护的多授权中心加密方法 | |
Feng et al. | An efficient privacy-preserving authentication model based on blockchain for VANETs | |
CN110120873B (zh) | 基于云外包交易数据的频繁项集挖掘方法 | |
Yang et al. | Decentralization using quantum blockchain: A theoretical analysis | |
Zhao et al. | Are you the one to share? Secret transfer with access structure | |
CN106506165B (zh) | 基于同态加密的虚拟资产匿名排序方法 | |
CN111010280A (zh) | 一种基于群签名的可监管区块链构造方法 | |
CN107690079A (zh) | 直播平台中的用户隐私保护方法 | |
Kulyk et al. | Coercion-resistant proxy voting | |
Gao et al. | Quantum election protocol based on quantum public key cryptosystem | |
Lou et al. | A weak quantum blind signature with entanglement permutation | |
Sivasundari et al. | RETRACTED ARTICLE: Hybrid aggregated signcryption scheme using multi-constraints differential evolution algorithm for security | |
Nait-Hamoud et al. | Certificateless Public Key Systems Aggregation: An enabling technique for 5G multi-domain security management and delegation | |
Li et al. | Novel quantum voting protocol with eight-qubit cluster entangled state | |
CN112422294B (zh) | 基于环签名的匿名投票方法及装置、电子设备、存储介质 | |
Zhao et al. | A regulatable mechanism for transacting data assets | |
Longo | Formal Proofs of Security for Privacy-Preserving Blockchains and other Cryptographic Protocols | |
Lu et al. | Research on Data Security and Encryption Technology in Network Transmission |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: German Waldo Applicant after: SAP AG Address before: German Waldo Applicant before: SAP AG |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: SAP AG TO: SAP EUROPE AG |
|
GR01 | Patent grant | ||
GR01 | Patent grant |