CN110622165B - 用于确定隐私集交集的安全性措施 - Google Patents

用于确定隐私集交集的安全性措施 Download PDF

Info

Publication number
CN110622165B
CN110622165B CN201980001669.3A CN201980001669A CN110622165B CN 110622165 B CN110622165 B CN 110622165B CN 201980001669 A CN201980001669 A CN 201980001669A CN 110622165 B CN110622165 B CN 110622165B
Authority
CN
China
Prior art keywords
computing system
identifier
identifiers
blinded
records
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
CN201980001669.3A
Other languages
English (en)
Other versions
CN110622165A (zh
Inventor
S.帕特尔
M.M.扬
K.塞思
B.克罗特
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN110622165A publication Critical patent/CN110622165A/zh
Application granted granted Critical
Publication of CN110622165B publication Critical patent/CN110622165B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3218Cryptographic 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

用于在比较来自第一计算***和第二计算***的隐私数据集时保护隐私的***、方法、设备和其他技术。第二计算***标识与第二计算***的隐私数据库中的记录相对应的第一标识符集合。第二计算***接收与第一计算***的隐私数据库中的记录相对应的标识符集合的盲化版本。第二计算***基于第一标识符集合和第二标识符集合的盲化版本之间的匹配来确定第一计算***的隐私数据库中的记录与第二计算***的隐私数据库中的记录的交集或交集的特性。

Description

用于确定隐私集交集的安全性措施
技术领域
本说明书公开了用于为由不受信任和/或独立方维护的数据项安全地确定隐私集交集或隐私集交集的特性的***、方法、设备和其他技术。
背景技术
组织通常被委托管理并存储敏感和隐私数据。例如,研究机构可以收集数据作为由该机构进行的研究或实验的一部分,并且医疗保健组织可以管理与其患者的医疗护理和健康有关的数据。
隐私数据常常被数字化存储在由组织操作或代表组织的计算***上,并且该组织可以实施设计为保护其存储数据的保密性和完整性的安全性策略。对于许多组织来说,数据安全性处于高优先级,因为数据可能包含可以为组织、对组织感兴趣的第三方(例如,顾客、客户、员工)或两者产生价值的机密、敏感或其他隐私信息。此外,数据安全性的破坏(breach)可能在已经将隐私数据委托给组织的人当中造成对组织的信任的破坏。由于由一些组织存储的数据的敏感性,以及对数据被保全的高度关注,组织常常将其数据存储在隐私数据库中,该隐私数据库在物理上、逻辑上或两者都与未经授权的参与者隔离。
因为组织努力维护其隐私和敏感数据的机密性,数据可能与其他组织和实体孤立(silo)。然而,在一些实例中,组织和其他利益相关者可以从与第三方共享其数据的各方面、从第三方接收数据或两者受益。
发明内容
本说明书公开了用于为由不受信任和/或独立方维护的数据项安全地确定隐私集交集或隐私集交集的特性的***、方法、设备和其他技术。隐私数据集的交集是指数据集中的每一个共有的数据项。例如,由几方维护的隐私数据集中表示的相同对象或个人的数据项可以被分类为在隐私数据集中的交集内。
确定两方的数据集的交集可以涉及将来自每一方的集合的数据项与另一方的集合中的项进行比较。然而,在缺乏足够的安全性措施的情况下,数据项的底层内容可能被透露给执行这样的比较的一方。因此,如果数据包含不能被透露给其他方的隐私信息,则用于比较数据集的传统技术可能是不可接受的。本说明书中公开的技术提供了允许各方比较隐私数据项而不向未经授权方透露数据项的底层内容的协议和安全性措施。此外,该技术可以提供恶意安全性保证,该恶意安全性保证阻止一方任意偏离协议以获悉比被许可的更多的另一方的隐私数据。在其他实施方式中,该技术可以提供隐蔽(covert)安全性措施,该隐蔽(covert)安全性措施确保试图欺骗协议的一方将被另一方捕捉的统计上的显著可能性。如果一方在执行隐私集交集(Private Set Intersection,“PSI”)协议的过程期间试图欺骗,则另一方可以终止协议,并且无限期地或在指定时间段内阻止与欺骗方的进一步交互。
根据第一方面,提供了一种用于在比较第一计算***和第二计算***的隐私数据库时保护隐私的方法,该方法包括:由第二计算***标识与第二计算***的隐私数据库中的记录相对应的第一标识符集合;对于第一标识符集合中的每个标识符:(i)由第二计算***使用同态加密过程来生成标识符的加密版本,(ii)从第二计算***向第一计算***提供标识符的加密版本,(iii)由第二计算***从第一计算***接收使用第一计算***的秘密密钥而生成的标识符的盲化加密版本,以及(iv)由第二计算***对标识符的盲化加密版本进行解密,以生成标识符的盲化版本;由第二计算***接收与第一计算***的隐私数据库中的记录相对应的第二标识符集合的盲化版本;由第二计算***基于第一标识符集合的盲化版本和第二标识符集合的盲化版本之间的匹配,确定第一计算***的隐私数据库中的记录与第二计算***的隐私数据库中的记录的交集或交集的特性;以及由第二计算***提供交集或交集的特性的指示。
该方法可以包括以下特征中的一个或多个。对于第一标识符集合中的每个标识符,第一计算***可以通过根据伪随机函数处理标识符的加密版本和第一计算***的秘密密钥来生成标识符的盲化加密版本。伪随机函数可以是不经意(oblivious)伪随机函数。第二计算***可以通过将标识符的加密版本与第二计算***的秘密密钥进行组合,以在将标识符的加密版本提供给第一计算***之前修改该标识符的加密版本,并且其中第一计算***通过根据伪随机函数处理标识符的经修改的加密版本,进一步基于第二计算***的秘密密钥来生成标识符的盲化加密版本。对于第一标识符集合中的每个标识符,第二计算***可以通过将第二计算***的秘密密钥同态添加到标识符的加密版本来修改标识符的加密版本。该方法可以进一步包括:对于第一标识符集合中的每个标识符,由第二计算***将标识符的盲化版本映射到标识符;以及对于来自第一标识符集合的标识符的盲化版本和来自第二标识符集合的标识符的盲化版本之间的每个所标识的匹配:由第二计算***标识第二计算***的隐私数据库中与映射到来自第一标识符集合的标识符的盲化版本的标识符相对应的记录;以及由第二计算***将所标识的记录分类为在第一计算***的隐私数据库中的记录与第二计算***的隐私数据库中的记录的交集内。第二计算***可以以与第二计算***向第一计算***提供第一标识符集合的加密版本的第二顺序相对应的第一顺序从第一计算***接收第一标识符集合的盲化加密版本。第一顺序可以与第二顺序一致,使得第二计算***以与第二计算***向第一计算***提供第一标识符集合的加密版本相同的顺序从第一计算***接收第一标识符集合的盲化加密版本。该方法可以包括由第二计算***确定第一计算***的隐私数据库中的记录与第二计算***的隐私数据库中的记录的交集的特性,而不确定哪些记录在该交集内。交集的特性可以表示被包括在与第二计算***的隐私数据库中的记录相对应的第一标识符集合和与第一计算***的隐私数据库中的记录相对应的第二标识符集合两者中的共有标识符的数量的计数。交集的特性可以表示存储在第二计算***的隐私数据库的、在第一计算***的隐私数据库和第二计算***的隐私数据库之间的记录的交集内的记录中的值的总和。来自第一标识符集合的第一标识符子集也可以被包括在第二标识符集合当中,并且来自第一标识符集合的第二标识符子集不被包括在第二标识符集合当中。该方法可以进一步包括:由第二计算***确定第一计算***是否在不偏离规定协议的情况下对第一标识符集合的加密版本进行了盲化;以及响应于验证第一计算***在对第一标识符集合的加密版本进行盲化时偏离了规定协议,采取行动以停止规定协议的执行。该方法可以进一步包括:由第二计算***将虚拟标识符***到第一标识符集合中,该虚拟标识符不与第二计算***的隐私数据库中的记录相对应;以及在从第一计算***接收到第一标识符集合的盲化加密版本之后,验证第一计算***恰当地对虚拟标识符的加密版本进行了盲化。与第二计算***的隐私数据库中的记录相对应的第一标识符集合可以标识与第二计算***相关联的实体进行交易的一方的用户;并且与第一计算***的隐私数据库中的记录相对应的第二标识符集合可以标识被供应与第二计算***相关联的实体的数字媒体项的用户。
至少一个方面可以提供一种计算***,包括:一个或多个计算机上的隐私数据库,其存储多个数据记录,每个数据记录包括表示数据记录的身份或数据记录中表示的用户的身份的标识符;一个或多个处理器;以及一个或多个计算机可读介质,其上存储有指令,其中该指令在由一个或多个处理器执行时使得一个或多个处理器执行根据第一方面的操作。
至少一个方面可以提供一个或多个非暂时性计算机可读介质,其上存储有指令,其中该指令在由一个或多个处理器执行时使得一个或多个处理器执行根据第一方面的操作。
在某些实例中,本说明书中描述的主题的实施方式可以提供以下优点中的一个或多个。第一,可以确定来自不受信任和/或独立方的隐私数据项的交集,而没有任一方获悉另一方的数据的隐私内容。第二,可以确定来自不受信任和/或独立方的隐私数据项的交集的基数或关联值的总和,而没有任一方获悉另一方的数据的隐私内容并且没有任一方获悉哪些数据项在交集内。第三,不受信任和/或独立方可以执行协议以确定各方的隐私数据项的交集或交集的特性,同时提供半诚实(semi-honest)的安全性保证、恶意安全性保证或隐蔽安全性保证。该技术可以允许任一方例如通过将虚拟数据项***到待比较的集合中来以高可能性地检测另一方是否已经破坏了PSI协议的任何或一些步骤。第四,各方可以执行PSI协议以确定隐私数据项的交集或交集的特性,而不需要由受信任第三方生成的共有RSA模数。基于整个说明书、附图和权利要求书,附加特征和优点对于本领域普通技术人员来说将是显而易见的。
附图说明
图1是被配置为安全地确定存储在不受信任方的数据库中的隐私数据项的交集的计算环境的概念图。
图2描绘了包括被配置为执行用于安全确定存储在不受信任方的数据库中的隐私数据的隐私集交集的协议的第一计算***和第二计算***的计算环境。
图3描绘了用于确定由不受信任方维护的隐私数据项的交集的示例过程的流程图。
图4描绘了用于确定由不受信任方维护的隐私数据项的交集的基数的示例过程的流程图。
图5描绘了用于确定由不受信任方维护的隐私数据项的交集的关联值的总和的示例过程的流程图。
图6描绘了用于使用不经意伪随机函数来确定隐私集交集的示例协议的流程图。
图7描绘了用于确定隐私集交集的示例子协议的流程图。
图8描绘了使用基于虚拟的隐蔽安全性的一天开始(start-of-day)协议的泳道图。
图9描述了使用基于虚拟的隐蔽安全性的每段(per-segment)协议的泳道图。
图10描绘了可以用来执行与本文描述的计算机实施的方法和其他技术相关联的操作的示例计算机***的示意图。
具体实施方式
本说明书公开了促进独立方之间来自隐私数据集的信息的受控交换而不透露可以允许任一方辨别由另一方共享的数据的隐私方面的信息的基于计算机的***、方法、设备和其他技术。更具体地,本文公开的技术可以被应用于确定在两方或更多方的隐私数据集中持有的项的交集,而没有任何一方透露其隐私数据的底层内容。例如,如果两方具有表示相同用户的数据的记录,则表示用户的数据可以被分类在各方的隐私集交集内,并且可以确定用户在双方的隐私数据集中被表示的事实,而不透露每一方的集合的底层内容。针对附图更详细地描述了本公开的这些方面和附加方面。
参考图1,示出了环境100的概念图,其中可以针对环境100安全地确定两方的隐私数据库104a、隐私数据库104b的交集。环境100包括第一计算***102a和第二计算***102b。第一计算***102a由第一方操作或代表第一方,而第二计算***102b由第二方操作或代表第二方。计算***102a和计算***102b可以各自在一个或多个位置的一个或多个计算机上被实施。第一方和第二方可以分别为个人、企业、大学、政府、或维护关于该一方的活动的隐私数据的其他组织或实体。例如,企业可以维护关于销售、顾客名单、商业秘密和经营的隐私数据,而大学可以维护关于其教师和学生的隐私数据,诸如考评记录、学术和纪律报告等。第一方和第二方通常彼此分离,并且各自独立于另一方管理其隐私数据。然而,两方可以从比较它们的数据集并标识其中的共有项(即,确定隐私集交集)或确定该交集的特性(诸如数据集中的共有项的数量或与共有项相关联的值的总和)受益。
例如,在图1中,操作第一计算***102a的第一方可以是数字媒体项的在线分发者。作为其分发方案的一部分,第一计算***102a存储由第三方提供者提交的数字媒体项(例如,图像、视频、音频文件或文本),并且将数字媒体项放置在网页、应用、或已经被设计为合并第三方数字媒体项的其他接口中。例如,新闻网站可以在其网页中提供为第三方数字媒体项保留的槽(slot),并且每当来自站点的网页被供应给用户时,分发***(例如,第一计算***102a)可以选择由第三方提交的特定数字媒体项来填充这些槽。例如,选择的项可以被认为与新闻站点的内容相关和/或与网页被供应给其的用户的兴趣相关。
第一计算***102a维护存储供应给特定用户的数字媒体项的记录的隐私数据库104a。如图1所示,第一方的隐私数据库104a中的每个记录至少包括设备ID、通用ID、提供者ID和日期戳,并且每个记录与被供应给用户的第三方数字媒体项的特定实例相对应。例如,来自数据库104a表示的顶部的第一记录指示由提供者A提交以用于分发的数字媒体项在7月15日被供应给由设备ID G10967标识的用户设备。从顶部开始的下一个记录指示由提供者B提交以用于分发的数字媒体项在7月14日被供应给由设备ID B632519标识的用户设备。尽管在图1中示出了几个记录以用于说明,但是实际上,隐私数据库104a可以基于分发方案的规模而包括数百、数千、数百万或者甚至数十亿个记录。
数据库104a还包括“通用ID”字段。通用ID是由两方或更多方共享或以其他方式共同已知的用以标识特定个人、地点或事物的标识符。在数据库104a的示例中,通用ID标识被供应特定数字媒体项的用户。在一些实施方式中,第一计算***102a将设备ID和/或其他启发法(heuristic)翻译为或映射到所供应的数字媒体项的用户接收者的通用ID。例如,第一计算***102a可以使用请求第三方数字媒体项的用户的设备ID和IP地址来识别用户并访问该用户的通用ID。可以与相同用户交互的其他方也可以通过它们的通用ID来指代那些用户。在一些实施方式中,通用ID可以由独立机构发布,或者通过对任何一方有效的方式来分配。例如,通用ID可以是浏览两方或更多方的各个网站的用户的IP地址。每一方的站点可以基于用户的IP地址单独记录哪些用户浏览了它们的站点,从而向每一方提供用户的通用或共有标识符。
第二计算***102b维护存储各种用户与第二方参与的交易的记录的隐私数据库104b。每个记录与特定交易相对应并包括例如客户ID、通用ID、交易量、以及指示交易的时间和/或日期的戳。客户ID表示作为交易的一方的实体(例如,客户、顾客或供应商)的内部标识符。客户ID被映射到实体的通用ID,以便第一方和第二方两者均可以通过双方已知的标识符来指代相同实体。
此外,在图1的示例中,第二方与第一方的隐私数据库104a中的提供者“B”相对应。也就是说,第二方是向第一方提交数字媒体项以用于分发的一方,并且第一方诸如通过将项***网站、移动应用或其他发布者内容中的指定内容槽中来供应第二方的数字媒体项,以用于呈现给终端用户。
第一方、第二方或两者可能期望了解第一方代表第二方供应的数字媒体项在驱动终端用户发起与第二方的实际交易方面有多有效。数字媒体项放置的有效性可以通过称为转换率的度量而量化。转换表示向用户呈现数字媒体项而引起用户发起与数字媒体项的提供者(例如,图1中的第二方)的交易或发起其他类型的合格交互的实例。可以通过标识自数字媒体项被供应并呈现给用户以来在预先确定的时间量内发起与数字媒体项的提供者的交易的用户来对转换进行计数。
尽管第一方、第二方或双方可能期望标识转换,但任一方都无法访问确定转换所需的所有数据。第一方例如知道代表哪些内容提供者向哪些终端用户提供了哪些数字媒体项,但不知道哪些终端用户然后发起了与内容提供者的交易。同样地,第二方知道哪些实体发起了与第二方的交易(例如,从第二方购买商品或服务),但是不知道这些实体中的哪些与被供应第二方的数字媒体项的终端用户相对应。
本说明书中公开的技术可以许可第一方和第二方比较来自它们的隐私数据库104a和隐私数据库104b的记录,以便它们可以确定标识转换所需的信息和/或确定转换率,而不透露隐私记录的底层内容,并且在一些实施方式中,不向另一方透露数据库104a、数据库104b中表示的终端用户的身份。例如,转换可以通过标识隐私数据库104a中具有与隐私数据库104b中的记录相同的通用标识符(例如,用户标识符)的合格记录而确定。共享相同通用标识符的数据库104a、数据库104b的记录可以被称为隐私集交集。具体地,为了确定转换,第一计算***102a和第二计算***102b可以过滤数据库104a和数据库104b,以便只有来自每个数据库的、表示可能的转换的记录被相互比较(例如,将来自第一数据库104a的、与提供者B/第二方相对应的记录与来自第二数据库104b的、在用户被供应第二方的数字媒体项之后的预先确定的时间内发生的交易的记录进行比较)。在图1中,来自隐私数据库104a和隐私数据库104b的三对记录出现在隐私集交集106中。第一计算***102a和/或第二计算***102b可以通过比较来自每个数据库104a、104b的通用标识符的盲化值来确定隐私集交集106。如果在一对记录的盲化标识符当中确定匹配,则***102a或***102b将盲化标识符的对应记录分类为在隐私集交集106内。交集106内的每个记录可以例如表示转换。
此外,如下面参考图4和图5详细解释的,在一些实施方式中,第一***102a、第二***102b或两者可以确定交集106的一个或多个特性108,同时阻止任一方辨别哪些记录实际上在交集106内。特性108可以包括交集106的基数,其表示交集106内的项的数量的计数。在一些实施方式中,特性108包括交集106中的项的关联值的总和,诸如交集106中的记录的交易量的总和。因此,图1中示出的记录的交集106的基数为“3”,并且交集106中的记录的交易的总和为$49.79。通过确定交集106的特性108,可以确定关于交集106的有用信息,同时进一步保护各方的数据的隐私,因为任一方都没有确定其他方的记录的底层内容或标识哪些记录在交集106内。
本文公开的技术不限于确定转换。确定隐私集交集或这样的交集的特性通常可以应用于两方寻求在不破坏与数据相关联的隐私约束的情况下比较敏感数据的任何情况中。例如,正在为其雇员构建健康保险计划的雇主可以使用本文的技术来与医疗保健提供者协作,以获得在时间段内有多少雇员已经寻求医疗服务或者雇员在时间段内在医疗服务上的总花费的指示。
转向图2,针对确定独立方的隐私数据集中的交集或交集的特性而描绘了计算环境200。环境200包括第一计算***202a和第二计算***202b。第一计算***202a由第一方操作或代表第一方,并且第二计算***202b由第二方操作或代表第二方。第一***202a和第二***202b可以在物理上、地理上和/或逻辑上彼此分离,并且每个***202a和202b可以包括在一个或多个位置以集中式或分布式方式操作的一个或多个计算机。
第一计算***202a和第二计算***202b中的每一个被配置为通过诸如安全的互联网连接的通信信道来彼此通信。***202a、***202b可以彼此不同地被配置,但是可以包括一些共有组件以进行用于确定隐私集交集和/或交集的特性的操作。为了说明,将针对第一方计算***202a描述这些组件204a-214a,但是应当理解,第二方计算***202b可以包括被配置为执行与第一方计算***202a的组件204a-214a相对应的操作的对应组件204b-214b。
第一方计算***202a可以包括隐私数据库204a、密码引擎206a、密钥管理器208a、安全性策略储存库210a、处理器212a和通信接口214a。
隐私数据库204a存储第一方的数据项。数据项中的全部或一些可以被认为是“隐私的”,因为它们表示敏感字符的信息。隐私数据项可以与例如用户的个人信息、商业机密信息、患者医疗信息等有关,并且对隐私数据项的访问可以被限制。在一些实施方式中,隐私数据库204a以结构化方式存储诸如关系数据库中的记录的信息。数据库204a然后可以包括根据定义的模式存储隐私数据项的记录的一个或多个表,并且可以进一步包括管理对一个或多个表的修改、访问和查询的数据库管理***。数据库204a可以在***202a的一个或多个处理器上被实施,并且数据可以被存储在***202a的一个或多个存储设备上。
密码引擎206a被配置为对来自隐私数据库204a的数据项执行密码操作。例如,密码引擎206a可以根据针对图3-图9描述的过程和技术对隐私数据项应用同态加密,解密数据项,并且将盲化操作应用于数据项。密码引擎206a可以在执行密码操作时使用一个或多个密钥。密码引擎206a可以从密钥管理器208a检索给定密码操作的适当密钥。密钥管理器208a可以生成、交换、存储和/或销毁由密码引擎206a使用的密钥。在一些实施方式中,密钥管理器208a被提供在硬件安全性模块中,其中该硬件安全性模块包括基于硬件的安全性措施以减轻(mitigate)或检测对由密钥管理器208a维护的密钥的未经授权访问或篡改。
第一计算***202a可以被配置为根据指定安全性策略来操作。定义一个或多个安全性策略的配置文件可以被存储在***202a的一个或多个存储设备上的安全性策略储存库210a中。在一些实施方式中,***202a在与第二计算***202b进行交互期间遵守的协议基于所选择的安全性策略的参数而控制。***202可以基于第一方***202a为与第二方***202b的给定交互而选择的安全性策略来实施不同的安全性模型。例如,第一安全性策略可以指示第一***202a实施“半诚实”安全性模型,其确保交互的各方(例如,第一方和第二方)在它们忠实地遵循协议步骤的情况下仅获悉关于另一方的隐私数据的许可类型的信息。第二安全性策略可以指示第一***202b实施“恶意”安全性模型,其确保交互的各方仅获悉关于另一方的隐私数据的许可类型的信息,即使它们任意偏离协议。相反,第三安全性策略可以指示第一***202c实施“隐蔽”安全性模型,其确保交互的各方在它们忠实地遵循协议步骤的情况下仅获悉关于另一方的隐私数据的许可类型的信息,但是如果一方偏离协议,将会以某个概率p(例如,99%,可调)检测到破坏。例如,如果一方试图欺诈另一方并偏离交互协议以不被许可地获悉关于另一方的数据的隐私信息,恶意行动的一方将被阻止偏离协议以及被阻止在恶意安全性模型下实现其目标,而隐蔽安全性模型下的相同一方可能能够获悉比许可的更多,但会冒被检测到的风险。如果被检测到,另一方可以采取补救行动来恢复任何被破坏的信息,并且可以采取惩罚行动,诸如拒绝与恶意方的未来交互。
第一方计算***202a包括处理器212a。图中描绘了单个处理器212a,但是在其他实施方式中,***202a可以包括多个处理器。处理器212a或多个处理器可以体现在一个或多个物理处理设备中,并且可以包括硬件、软件和/或固件的组合。处理器212可以执行计算机可读指令以实施第一***202a的任何组件,并且可以执行一个或多个计算机程序,其中该一个或多个计算机程序可操作来使得第一***202a进行本文公开的用于确定隐私数据库204a和隐私数据库204b中的项的隐私集交集的技术,和/或可操作来使得第一***202a确定隐私集交集的特性。
接口214a是使得第一计算***202a能够与第二计算***202b以及可选地与一个或多个附加计算***通信的通信接口。例如,来自隐私数据库204a的加密和盲化数据项可以通过通信信道(例如,一个或多个物理或无线网络)而发送给第二计算***202b,并且来自隐私数据库204b的加密和盲化数据项可以通过通信信道而从第二计算***202b接收。
图3是用于确定由独立和/或不受信任方维护的隐私数据项的交集的示例过程300的流程图。过程300由代表第一方的第一方计算***(例如,***102a或***202a)和代表第二方的第二方计算***(例如,***102b或***202b)执行。
在阶段302处,第二方***从隐私数据库选择记录集合,以作为与来自第一方***的隐私数据库的记录进行比较的对象。在一些实施方式中,第二方***通过向隐私数据库查询匹配一个或多个搜索标准的记录来选择记录。例如,如果过程300的目标是标识某个时间段内的转换,则第二方***可以选择与在该时段内发生的交易相对应的记录。
在阶段304处,第二方***从在阶段302处标识的集合选择特定记录,并且确定与该记录或与该记录中表示的实体相关联的通用标识符。通用标识符是由第一方计算***和第二方计算***用来指代相似事物的标识符。例如,可以通过使用在第一方计算***和第二方计算***两者的隐私数据库中相同的通用标识符来标识被第一方计算***的内容分发平台供应数字媒体项的终端用户以及然后从第二方购买商品或服务的终端用户。
在阶段306处,第二方***306加密通用标识符。加密可以由第二方***的密码引擎执行。此外,在一些实施方式中,密码引擎使用同态技术加密通用标识符。示例同态加密技术是Camenisch-Shoup加密方案。通过同态地加密通用标识符,可以对解密时保存在明文中的密文(即,通用标识符的加密版本)执行操作。例如,通过对明文通用标识符执行某些操作,可以产生相同或对应的结果,就像对通用标识符的同态加密版本执行该操作并且然后解密。
在阶段308处,第二方***向第一方***发送加密的通用标识符,并且在阶段310处,第一方***接收加密的通用标识符。值得注意的是,第一方***不拥有解密通用标识符的必需密钥,因此第一方***不能确定通用标识符的明文值。
在阶段312处,第一方***对加密的通用标识符执行盲化操作。盲化操作可以由第一方***的密码引擎执行。通常,盲化操作是一种密码操作,其中该密码操作对加密的通用标识符的底层内容进行盲化或遮掩,以便第一方***和第二方***的数据项可以在盲化空间而不是明文中被比较。在一些实施方式中,第一方***使用不经意伪随机函数对加密的通用标识符进行盲化。不经意伪随机函数是基于由第一方***拥有的秘密密钥,而不是由第二方***拥有的秘密密钥。可替换地,可以使用基于以下而组合的密钥来执行不经意伪随机函数:(i)由第一方***贡献但第二方***未知的第一秘密部分和(ii)由第二方***贡献但第一方***未知的第二秘密部分。
在阶段314处,第一方***向第二方***发送通用标识符的盲化加密版本,并且在阶段316处,由第二方***接收通用标识符的盲化加密版本。在阶段318处,第二方***(例如,第二方***的密码引擎)使用由第二方***私有的秘密解密密钥对盲化加密的通用标识符进行解密,以构建通用标识符的盲化版本。因为解密是为了反转同态加密值,所以对通用标识符的盲化加密版本进行解密的结果与根本没有同态加密通用标识符的结果相对应,因此对通用标识符的盲化加密版本进行解密用于生成通用标识符的仅盲化版本。
在阶段320处,第二方***存储在阶段304处选择的记录通用标识符的去盲化或明文版本和通用标识符的盲化版本之间的相关性。在阶段322处,第二方***检查来自在阶段302处标识的记录集合的任何附加记录的通用标识符是否保持为盲化。如果是,过程300返回到阶段302,并且以相同的方式对来自集合的下一个所选择的记录的通用标识符进行盲化。第二方***继续从所选择的记录集合提供要被盲化的通用标识符,直到集合中的所有记录都被用尽。
同时,在阶段324处,第一方***从其隐私数据库选择要与来自第二方***的隐私数据库的所选择的记录进行比较的记录。出于标识转换的目的,第一方***可以选择例如表示在指定时间段期间代表第二方被提供数字媒体项的终端用户的记录集合。第一方***检索所选择的记录的通用标识符(326),并且使用用于对来自第二方***的隐私数据库的通用标识符的加密版本进行盲化的相同盲化操作和密钥来对通用标识符进行盲化(328)。在一些实施方式中,使用不经意伪随机函数对通用标识符进行盲化。在阶段330处,第一方***从第一方的隐私数据库向第二方***发送每个所选择的记录的盲化通用标识符,并且在阶段332处,第二方***接收盲化通用标识符。
在从第一方***和第二方***两者的隐私数据库获得了所选择的记录的盲化标识符之后,第二方***可以确定记录的隐私集交集。在阶段334处,第二方***比较来自每一方的隐私数据库的盲化标识符,并且确定在盲化标识符当中是否有任何匹配。每个所标识的匹配意味着第一方和第二方的隐私数据库之间的、指代相同的通用标识符的对应记录。例如,每个匹配可以表示转换,在该转换中被与第一方相关联的在线分发平台供应第二方的数字媒体项的用户稍后在指定时间段内发起与第二方的交易。为了最终确定哪些记录在隐私集交集内,第二方***在阶段336处使用在阶段320处存储的相关性数据来从第二方的隐私数据库查找去盲化通用标识符和/或数据库记录,其对应于与来自第一方的隐私数据库的盲化通用标识符匹配的盲化通用标识符。
值得注意的是,在图3的过程300中的第二方***能够通过将从第一方***接收的盲化标识符与标识符的去盲化版本进行相关来标识来自第二方的隐私数据库的、在来自第一方的隐私数据库的记录的交集内的个体记录。只要第二方***以与通用标识符的盲化版本(或盲化加密版本)被提供给第一方***相同或对应的顺序,从第一方***接收通用标识符的盲化版本(或盲化加密版本),则第二方***可以确定相关性。然而,在一些情况下,确定交集中的特定记录可能是不必要的。可替代地,各方可以寻求确定交集的特性,而不是确定构成交集的特定记录。确定交集的特性(诸如交集中的记录的基数或关联值的总和)可以有益于进一步保护所比较数据的敏感性,因为任一方都没有标识交集内的个体记录。
图4描绘了用于确定隐私集交集的基数的过程400的流程图。与图3的过程300相反,第二方不能辨别哪些记录在隐私集交集内,即使基数被确定。第二方被阻止标识交集的构成记录,因为第一方***在第二方的盲化标识符返回到第二方***之前对第二方的盲化标识符进行置乱(shuffle)。第二方因此不能将从第一方***接收的盲化标识符与提供给第一方***的去盲化标识符相关。过程400的操作可以如下进行。
在阶段402处,第二方***从其隐私数据库选择满足一个或多个选择标准的记录。对于每个所选择的记录,第二方***检索与记录相关联的通用标识符(404)。第二方***然后同态加密每个通用标识符(406),并且将通用标识符的加密版本发送给第一方***(408)。在阶段410处,第一方***接收第二方的通用标识符的加密版本。第一方***将盲化操作应用于第二方的通用标识符的加密版本中的每一个,以生成第二方的通用标识符的盲化加密版本(412)。第一方***对第二方的通用标识符的盲化加密版本进行随机置乱(414),并且将标识符的盲化加密版本发送给第二方***(416)。在阶段418处,第二方***以置乱顺序接收第二方的通用标识符的盲化加密版本。同时,在阶段420处,第一方***从其隐私数据库选择满足一个或多个选择标准的记录,并且检索与每个记录相关联的通用标识符(422)。第一方***然后将盲化操作应用于第一方的通用标识符中的每一个,以生成第一方的通用标识符的盲化版本(424)。第一方***将第一方的通用标识符的盲化版本发送到第二方***(426),其然后由第二方***接收(428)。第二方***解密第二方的通用标识符的盲化加密版本,以生成第二方的通用标识符的盲化版本(430),然后将第一方的通用标识符的盲化版本与第二方的通用标识符的盲化版本进行比较(432)。在第一方和第二方的通用标识符的盲化版本之间确定的任何匹配都被确定为在隐私集交集中。作为置乱的结果,第二方***不能将通用标识符的匹配盲化版本与去盲化版本进行相关,但是它可以通过对匹配盲化标识符的数量进行计数来确定交集的基数(434)。
图5描绘了用于在保护隐私的同时确定与隐私集交集中的记录相关联的值的总和的示例过程500的流程图。过程500可以由不受信任方的各个计算***(诸如***102a、***102b或***202a、***202b)执行。在一些实施方式中,过程500允许第二方确定与隐私集交集中的记录相关联的值的总和,而无需任一方标识根据其确定总和的个体值或记录。也就是说,不是如针对图3描述的那样标识交集中的每个记录,然后确定与所标识的记录相关联的值的总和,过程500在盲化空间中确定值的总和,以便各方不需要标识哪些记录构成隐私集交集。这些技术可以有用地应用于例如转换的上下文中,以确定由被在线分发平台中的第一方供应数字媒体项的用户发起的交易的总值。
在阶段502处,第二方***从其隐私数据库选择满足一个或多个选择标准的记录。对于每个所选择的记录,第二方***检索与记录相关联的通用标识符和与记录相关联的附加值(504)。第二方***然后同态加密每个通用标识符(506),同态加密与记录相关联的附加值(508),并且将通用标识符和关联值的加密版本发送给第一方***(510)。在阶段512处,第一方***接收第二方的通用标识符的加密版本和第二方的记录的关联值的加密版本。第一方***将盲化操作应用于第二方的通用标识符的加密版本中的每一个,以生成第二方的通用标识符的盲化加密版本(514),并且将盲化操作应用于第二方的记录的关联值的加密版本中的每一个(516)。第一方***对第二方的通用标识符的盲化加密版本进行随机置乱(518),但是维护标识符和它们的关联值之间的对应关系。第一方***然后将标识符的盲化加密版本及其对应的盲化加密的关联值发送给第二方***(520)。在阶段522处,第二方***以置乱顺序接收第二方的通用标识符的盲化加密版本和盲化加密的关联值。同时,在阶段524处,第一方***从其隐私数据库选择满足一个或多个选择标准的记录,并且检索与每个记录相关联的通用标识符(526)。第一方***然后将盲化操作应用于第一方的通用标识符中的每一个,以生成第一方的通用标识符的盲化版本(528)。第一方***将第一方的通用标识符的盲化版本发送给第二方***(530),其然后由第二方***接收(532)。第二方***解密第二方的通用标识符的盲化加密版本,以生成第二方的通用标识符的盲化版本(534),然后将第一方的通用标识符的盲化版本与第二方的通用标识符的盲化版本进行比较(536)。在第一方和第二方的通用标识符的盲化版本之间确定的任何匹配都被确定为在隐私集交集中。作为置乱的结果,第二方***不能将通用标识符的匹配盲化版本与它们的去盲化版本相关,但是它可以确定与隐私集交集中的记录相关联的值的总和。为了确定总和,第二方***解密关联值的盲化加密版本,以生成关联值的盲化版本(538)。第二方***对关联值的盲化版本求和,然后从总和移除盲化因子,以确定隐私集交集中的记录的关联值的去盲化总和(540)。
PSI协议综述
本文描述的技术的一些实施方式使用不经意伪随机函数(Oblivious-Pseudorandom Function,PRF)来计算隐私集交集(PSI)。更具体地,该技术可以使用PRF fk(m)=g1/(k+m)mod p,其中p是素数,并且g是Z*p的大素数阶子群的生成元。PRF可以由两方安全且不经意地计算,其中一方持有密钥k且另一方持有消息m。该不经意PRF计算可以形成PSI协议的核心。
在图6中描绘的流程图中表示使用oPRF作为子协议的PSI协议600的概述。假定A和B是分别具有个体数据集Da=(a1,...,an)和Db=(b1,…,bm)的两方,并且双方想要获悉Da∩Db
在阶段602处,A和B分别生成随机PRF密钥共享kA和kB。目标是在它们的数据集中的每一个上评估fk*,其中k*=kA+kB
在阶段604处,A和B运行m个并行oPRF评估,其中A作为使用kA的密钥持有者,并且B作为使用半盲化消息(kB+b1,kB+b2,…,kB+bm)的消息持有者。在这些评估的最后,双方获悉fk*(B)={g1/(k_A+k_B+b_i)mod p,对于所有i∈[m]}。
在阶段606处,A和B然后反向运行n个并行oPRF评估,其中B作为使用kB的密钥持有者,并且A作为使用半盲化消息(kA+a1,kA+a2,…,kA+an)的消息持有者。在这些评估之后,双方获悉fk*(A)={g1/(k_A+k_B+a_j)mod p,对于所有j∈[n]}。
在阶段608处,A和B通过取得来自阶段604和阶段606的输出的交集来确定PSI。也就是说,A将交集中的项计算为{aj:fk*(aj)∈fk*(B)},并且B将交集中的项计算为{bi:fk*(bi)∈fk*(A)}。
在图7中描述的流程图中表示oPRF子协议700的概述。假定S和R是两方,其中S持有PRF密钥k,并且R持有消息m,并且双方想要计算fk(m)。
在阶段702处,S和R各自分别生成足够大的可靠RSA模数nS和nR,并且将模数传送给彼此。它们还各自分别针对以nS和nR为模的大复合阶子群生成gS、hS和gR、hR随机生成元。S证明gS位于<hS>,并且R证明gR位于<hR>。
在阶段704处,S和R还选择素数p=kq+1,以及Z*p中ord g=q的生成元g。
在阶段706处,S针对模数nS^2生成Camenisch-Shoup密钥(pkS,skS),并且向R传送pkS下的k的加密C(S,k)。S进一步向R证明S知道在加密底层的k,并且k具有正确的大小(在Camenisch-Shoup风格的知识证明中使用nR作为承诺(commitment)模数)。该操作还向S承诺密钥k。
在阶段708处,R在pkS下生成其消息m的加密C(S,m),并且同态计算C(S,m+k)。R通过生成适当大小的随机盲化因子r1和r2并同态计算C(S,r1(m+k)+r2*q)来附加地对密文进行盲化。R将密文与r1和r2的承诺一起传送给S。R然后证明两个密文都是正确生成的,并且具有一定大小的r1、m和r2的知识使得(r1(m+k)+r2*q)不会在pkS的消息空间中绕回。各方可以使用Camenisch-Shoup知识证明,其中使用nS作为承诺模数。
在阶段710处,S解密C(S,r1(m+k)+r2*q)以接收值β,并且计算γ=β-1mod q。模数移除r2*q,因此γ=1/r1(k+m)mod q。S然后计算σ*=gγ,并且将该值与它被正确生成的证明一起传送给R。
在阶段712处,R计算g1/(k+m)=σ*r _ 1,并且将g1/(k+m)与它使用了与先前承诺的相同的r1的证明传送给S。
过程700不依赖于各方S和R之间的共有模数,因此,可替代地,各方使用几个方案的组合来确保安全性。首先,每一方必须选择可靠RSA模数,并且使Pedersen的承诺相对于另一方的模数,这移除了主要信任假设中的一个。每一方仍然使用Camenisch-Shoup作为其同态加密方案,但是具有它自己生成的参数,而没有共有模数。此外,用于加密的消息空间、Pedersen的承诺以及最终PRF评估各自具有不同大小,因此由一方生成的每个证明都应该包括区间证明分量,示出承诺/加密的值跨不同的消息空间是相同的。具体地,在任何时候都不应该将消息以大空间中的一个为模进行精简。
为了确保各方在协议的执行期间严格遵守受限的值域,并且不***在其上评估PRF的额外值,每一方提前承诺将在其上评估PRF的所有值,证明它们具有正确的大小,然后在协议中稍后证明该一方仅使用先前承诺的值。
Camenisch-Shoup加密
本文使用的技术和协议可以采用Camenisch-Shoup加密。这些加密技术可以涉及以下方面:
KeyGen:选择RSA模数n=pq。针对r<-Zn^2选择随机第n个残差g=rn mod n2。选择x<-n2/4并假定y=gS x。秘密密钥是(p,q,x),并且公钥是(n,g,y)。对于有效的实施方式,p和q应该具有大的素因子,并且甚至可以是可靠素数。
Encrypt(m):密文是元组(u,e),其中u=gr mod n2,e=(1+n)m.yr mod n2。r在Zn/4中被随机选择,并且m在[n]中。
Decrypt(u,e):可以通过计算(((e/ux)-1)mod n2)/n在给定p、q和x的情况下有效地恢复m。
消息空间大小=Zn。通过mod n,所有消息都隐式地精简。
ElGamal加密
KeyGen:选择随机素数p和Z*p的随机生成元g。选择随机r∈[φ(p)],并且设置y=gr mod p。秘密密钥是r,公钥是(g,p,y)。
Encrypt(m):选择随机r’,并且计算u=gr’mod p,e=yr’.m mod p。密文是c=(u,e)。
Decrypt(c):计算m=e/ur mod p。
离散对数证明的知识
这是证明公知的g、y∈某群G、以及秘密x的离散对数x=log(y)的知识的三轮协议。证明如下:
双方知道g、y。P知道x,使得y=gx。假定k和k’是安全性参数。
a.对于随机选择的r<-[-ord(g)*2k+k’,ord(g)*2k+k’],p传送u=gr
b.V传送随机的c<-[2k]。
c.p计算r’=r-cx并且将r’传送给V
d.V验证gr’=u/y
如果证明者提前知道c,那么证明者可以首先从[-ord(g)*2k+k’,ord(g)*2k+k’]随机均匀地选择r’,然后设置u=gr’/yc。只要k’足够大,k’和u的分布与真实分布的距离可以忽略。以这种方式,协议可以始终具有诚实验证者零知识:证明者运行协议到步骤b,获悉c,然后返回并欺骗以生成u。
如果离散对数在G中是硬的(hard),则协议是合理的。换句话说,如果P一致地成功说服V,那么可以提取离散对数x’,使得y=gx’。然而,该证明并不是知识证明,因为x’在不同的提取中可能是不同的(尽管所有的答案以ord g为模都是全等的),而知识证明将始终提取相同的值。为了保证每次提取相同的值,ord g应该附加地难以找到。本文公开的技术可以利用在隐藏阶(order)循环群中执行的知识证明,例如如Camenisch-Shoup描述的。
在随机预言(oracle)模型中使用Fiat-Shamir启发法,或者通过事先向V承诺c,该协议可以转换为完全零知识的协议。
Pedersen的承诺
Pedersen的承诺允许各方以完美隐藏并基于离散对数的硬度进行约束的方式承诺某群G中的指数x。
每一方都知道共有参数g、h、G,其中g和h是群G的不同生成元。G通常可以是任何群,只要logg h难以确定。
a.为了承诺消息m,计算随机r<-ord(G),并且输出c=gm.hr
b.为了向c违背承诺消息m,透露m和r。
只要g和h确实是生成元(或者,更弱的,如果g∈<h>),Pedersen的承诺是完美隐藏的,因为c在G(resp.<h>)中是完美随机的。即使接收方知道关于G的所有种类的秘密信息,该完美隐藏的性质也保持。只要log g h难以计算,承诺就附加地约束(以ord<g>为模)。
如果G是素数阶循环群,其中计算离散对数是困难的,则选择g为任何随机元素(例如,通过联合抛硬币)并且选择h为H(g)是足够的,其中H是散列函数。
使用Pedersen承诺的承诺值的相等性的知识证明
组合原语(2)+(3),可以获得承诺值的知识证明。具体地,可以证明y=gx,其中x是承诺com中承诺的值。即使当y和c位于不同的群中时,该技术也可以应用。它依赖于强RSA假设的安全性。
承诺com的群的阶应该对证明方隐藏。具体地,假设com是通过mod n而计算的,其中n=pq,并且p、q是可靠素数,其中p=2p’+1,q=2q’+1。更具体地,com的群是Z*n内的阶为n’=p’q’的子群G。这种群的有益性质是,如果Z*n的随机元素g被选择并上升为幂2,那么有高可能性它是G的生成元。
为了要保持的稳健性和要被提取的唯一值,任何执行的操作都不应该在隐藏阶群中绕回。具体地,x应该足够小于n’,以便c*x不在任何群中绕回,其中有一些附加的松弛以保证零知识。因此,如果挑战(challenge)c的长度为k,并且期望与安全性k’相对应的零知识,并且包含y的群为m阶,那么n’应该>8.2k+k’.m。
承诺可以如下:假定S(传送方)和R(接收方)为两方。假设双方知道y、g、m,并且S知道x,使得y=gx mod m。此外,根据上述讨论,假设R已经生成n,并且假定G’是Z*n内的n’阶子群。
a.首先,R证明了n是可靠RSA模数,遵循Camenisch-Michels第5.2节(这一步可以忽略,只有当R不正确地执行它时,它才会妥协对P的约束保证)
b.然后,S和R执行联合掷硬币操作以产生g’、h’,它们是G’的随机生成元。可替换地,更弱的约束是R选择g’和h’并证明g’∈<h’>。这保护了S的完美的隐藏性质,并且只有当R不良地选择g’和h’,例如使得可以计算logh’g’时,才妥协约束。
c.S传送针对r<-[n/4]的com=g’x/h’r
d.S选择r1<-[-2^k+k’.m,2^k+k’.m]和r2<-[-2k+k’.n/4,2k+k’.n/4],并且将u1=gr1、u2=g’r1.h’r2传送给R
e.R随机选择c<-2k并将其传送给S。
f.S计算r1’=r1-cx和r2’=r2-cr,并且将r1’和r2’传送给R
g.R验证gr1’=u1/yc mod m和g’r1’.h’r2’=u2/comc mod n,并且进一步验证|r1’|≤2k+k’.m超过整数。如果是这样,那么R推断com是x=loggy的承诺,并且|x|<2k+k’.m。
上述协议证明了S知道在承诺com底层的值x,它也是y的离散对数,此外|x|<2k+k’.m。同样地,它也是示出x具有有界大小的区间证明。紧接着随后一个性质,因为r1’是有界的,所以通过从2个接受的证明提取而获得的任何x,如x=(r1’-r1”)/(c-c’),也将是有界的。
已经基于强RSA假设示出Camenisch-Shoup,该协议提供了知识证明,具体地,当区间证明分量被包括时,该证明具有唯一的提取。
区间证明
通常,区间证明示出离散对数在特定区间内是有界的。除了最终证明者消息是有界的,区间证明可以类似于离散对数的知识证明。这具有2k的松弛,其中k是挑战c的长度,这意味着如果消息<m,该证明将仅说服验证者消息小于2k*m。
联合抛硬币
联合抛硬币是两方选择随机值的过程,其中任一方都不能影响它。对于n位随机值,每一方分别选择长度为n位的随机共享r1和r2,并且向其共享的另一方传送承诺(散列)。在接收到其他方承诺后,它们然后各自向另一方开放共享,并且都设置r=r1 XOR r2
Boneh-Boyen风格PRF
Boneh-Boyen签名fk(m)=g1/(k+m)mod p是强q-Diffie-Hellman-Inversion假设下的PRF,这时m∈[q]。也就是说,只要m是从指定的有限域得到的,fk(m)与随机元素mod p无法区分(并且该性质针对fk(m)的多个评估而保持)。
具体地,消息空间[q]应该是多项式大小的,因为安全性精简实际上在消息空间中的每个元素上迭代。
oPRF协议的详细描述
以下是与本文描述的技术一致的实施方式中可以使用的oPRF协议的进一步的细节。该协议使用安全性参数k(oPRF密钥),但隐式地k被分解为k’+k”,其中k’是挑战长度,k”是ZK质量参数。
永久性的设置阶段
在该阶段,双方生成可以跨整个PSI协议的不同运行而使用的共有参数。
双方决定大素数q、p=tq+1,以及以Z*p为模的q阶循环子群的生成元g。这些可以是预固定参数,或者也可以如下生成:
a)各方参与联合掷硬币,以联合选择起始候选q1
b)双方独自找到>q1的第一素数,并且相互确认结果。
c)双方找到最小的t>=2,使得tq+1是素数,并且设置p=tq+1。
d)双方执行步骤a和b以联合找到q阶子群的生成元g。注意,升为幂t的、Z*p的随机元素有高可能性是该子群的生成元(如果不是,gt=1)。
每一方独自选择大小>23k*q2的可靠RSA模数,分别为n1和n2。每一方对其生成的模数保持因子分解隐私。这些模数既用于承诺,也用于Camenisch-shoup加密。每一方还生成相对于其模数ni的Camenisch-Shoup加密的密钥(ski,pki),该密钥由经验证的随机第n个残差g组成,并且对于秘密x,y=gx
对于模数n1,第1方选择大子群的生成元g1’和h1’mod n1’,其中对于随机选择的r<-n1/4,g1’=h1r mod n1。具体而言,h1’被选择作为随机值mod n1,且升为幂4。此外,第1方向第2方证明r=logh_1’g1’mod n1的知识。第2方也这样做,选择生成元g2’和h2’mod n2’,并且证明logh_2’g2’mod n2的知识。
每个PSI协议设置阶段
本节讨论被执行以设置每个PSI协议运行的操作。在达到PSI运行时,应该重新置乱输入并重新选择密钥,以阻止对手对跨不同PSI运行的信息进行相关。
***置乱并承诺所有的值,并且证明它们大小正确。该大小证明应该严格,以减少q-DHI。置乱不需要证明。
第1方选择随机PRF密钥共享k1,并且第2方选择k2,每一个的大小<=q。双方使用密钥k1+k2在m的各种值上计算PRF g(1/k _ 1+k _ 2+m)mod p。
第1方向第2方传送与n1相对应的Camenisch-Shoup密钥下的k1的加密、以及n2下的k1的承诺。第2方也这样做,换句话说,传送n2的CS密钥下的k2的加密、以及n1下的k2的承诺。
第1方证明在加密的底层的k1的知识,它与其承诺的值相同,并且k1<=2k.q。具体而言,它执行以下ZK协议:
双方知道:
·n1,g为由第1方选择的随机值mod n1 2,g’=gn _ 1mod n1 2,经验证的第n1残差,y=gx mod n1 2,与第1方的Camenisch Shoup方案的公钥相对应。
·n2,n2的子群的生成元g2’、h2’,如步骤3中所选择的,
·(u,e)=Camenisch-Shoup密钥(n1,g’,y)下的k1的加密,
·com=n2下的k1的承诺
第1方知道:
·k1、r、r’,使得
·u=g’r mod n1 2
·e=yr.(1+n1)k _ 1mod n1 2
·com=g2k1 h2r’mod n2
·|k1|<q。
a.第2方承诺n1下的在[2k’]中的挑战chal
b.第1方选择r1<-[-2k.q,2k.q]、r2<-[-2k.n1/4,2k.n1/4]和r3<-[-2k.n2/4,2k.n2/4],并且传送
i.u1=g’r2 mod n1 2
ii.u2=(1+n1)r1.yr2 mod n1 2
iii.u3=g2r1.h2r3 mod n2
c.第2方开放来自步骤(a)的承诺,透露chal。
d.第1方响应如下
i.r1’=r1-chal.k1
ii.r2’=r2-chal.r
iii.r3’=r3-chal.r’
e.第2方验证
i.gr2’=u1/uchal mod n1 2
ii.(1+n1)^r1’.yr2’=u2/echal mod n1 2
iii.g2r1’.h2r3’=u3/comchal mod n2
iv.|r1’|<2k.q
第2方在步骤7中执行相同的协议,相反,以示出在其产生的加密和承诺下的k2的知识和相等性。
每个oPRF评估的过程
给定上述设置,协议中的每个oPRF评估可以包括以下操作的执行。回想一下,第2方首先在其承诺的输入中的每一个上评估oPRF,然后第1方在其输入中的每一个上也这样做。在一些实施方式中,每个oPRF评估需要来自传送方的33次指数运算,以及来自接收方的40次指数运算(包括所有证明,假设使用Fiat-Shamir ROM启发法,而不是承诺挑战)。
在下面的讨论中,持有密钥的一方被称为S,并且接收方是R。不失一般性,S被假设为第1方,并且R被假设为第2方,因此,S知道n1的因子分解,但不知道n2的因子分解,等等。
注释:
i)假定E(k1)=(u,e)是在步骤7中由S生成的k1的Camenisch-Shoup加密
ii)假定n1是S的模数,并且g1’、h1’是其生成元,并且y’是在步骤8中传送的S的Camenisch Shoup密钥的其他分量(先前已被证明用于E(k1))。
iii)假定n2是R的模数,并且g2’,h2’是其生成元
iv)假定p、g、q如步骤1中生成的那样
v)假定C(k2)=g1k2*h1’r1 mod n1和C(m)=g1m*h1r2 mod n1是分别在步骤7和5中由R生成的k2和m w.r.t.模数n1的承诺。
vi)如前所述,安全性参数k分解为k=k’+k”,其中k’是挑战长度,并且k”是ZK质量参数。
1)
a)R生成2个随机值a<-[q]和b<-[2k-2*q]。假定B=(a*(k1+k2+m))+(b*q)。R同态生成E(B)=(u’,e’),S的Camenisch-Shoup密钥下的B的加密如下:
对于r3<-[n1/4]
u’=ua*g”r3 mod n1 2
e’=ea*(1+n1)a*(k2+m)*((1+n1)q)b*y’r3 mod n1 2
b)R创建针对模数n1的对a和b的承诺C(a)、C(b),如下:
对于r4,r5<-[n1/4]
C(a)=g1a*h1r4 mod n1,C(b)=g1b*h1r5 mod n1
c)R创建C(a(k2+m))的承诺,如下:
对于r6<-[n1/4]
C(a(k2+m))=((C(k2)*C(m))a)*(h1r6)mod n1
可替换地,C(a(k2+m))可以根据先前值而重写:
C(a(k2+m))=(g1(a(k2+m)))*(h1(a(r1+r2)+r6))mod n1
假定r7=a(r1+r2)+r6
2)R将E(B)、C(a)、C(b)和C(a(k2+m))传送给S,并且证明以下内容:
i)a、b、a(k2+m)、r3、r4、…、r7的知识
ii)|a|<=2k*q并且|b|<22k*q
iii)相同的a用于计算C(a)和E(B),并且也用于从C(k2)和C(m)计算C(a(k2+m))。
iv)在C(b)和E(B)中使用相同的b。
v)在C(a(k2+m))和E(B)中使用相同的(a(k2+m))。
证明如下:
b)S承诺挑战c<-2k’(挑战空间,小于2k)。
c)R挑选v1<-[-2k.q,2k.q]、v2<-[-22k.q,22k.q]、
v3<-[-2k.n1,2k.n1]、v4、…、v7<-[-2k.n1/4,2k.n1/4]、
v8<-[-22k.n1.q,22k.n1.q]
请注意,v8的尺寸更大。这是因为它需要隐藏a(r1+r2)+r6,其比一般的更大。
d)R计算
i)u0=uv1*g”v4 mod n1 2
ii)u1=ev1*(1+n1)v3*((1+n1)q)v2*y’v4 mod n1 2
iii)u2=g1v1*h1v5 mod n1
iv)u3=g1v2*h1v6 mod n1
v)u4=(C(k2)*C(m))v1*h1v7 mod n1
vi)u5=g1v3*h1v8 mod n1
并且将u0、...、u5传送给S。
e)S向c开放其承诺
f)R计算v1’=v1-c.a、v2’=v2-c.b、
v3’=v3-c.a(k2+m)、v4’=v4-c.r3、…、v8’=v8-c.r7
g)S验证
i)uv1’*g”v4’=u0/uc mod n1 2
ii)ev1’*(1+n1)^(v3’)*((1+n1)q)^v2’*yv4’=u1/ec mod n1 2
iii)g1v1’*h1v5’=u2/C(a)c mod n1
iv)g1v2’*h1v6’=u3/C(b)c mod n1
v)(C(k2)*C(m))v1’*h1v7’=u4/C(a(k2+m))c mod n1
vi)g1v3’*h1v8’=u5/C(a(k2+m))c mod n1
vii)|v1’|<=2k*q和|v2’|<22k*q
3)S解密E(B)=(u,e)并恢复B,确认其绝对大小<22k.q2,并且计算G=B-1mod q。请注意,如果上述所有步骤都正确计算,那么G=1/a(k1+k2+m)mod q。S计算
i)σ*=gG mod p
ii)C(B)=g2B h2r mod n2
其中r<-n2/4,并且将σ*和C(B)传送给R。这也证明σ*被正确计算。通过示出σ*B=gmod p来这样做,其中B是与在E(B)中加密并在C(B)中承诺的相同的值。证明如下,其中(n1,g’,y)和(p,q,x)分别是S的Camenisch-Shoup公钥和秘密密钥。S将证明B、x和r的知识,并且B在σ*、E(B)和C(B)中相同,并且进一步地,x在E(B)和y中相同:
b)R承诺挑战c<-[2k’]
c)S挑选v1<-[-23k.q2,23k.q2]、v2<-[-2k.n1/4,2k.n1/4]、
v3<-[-2k.n2/4,2k.n2/4]
d)S计算
i)u1=σ*v1 mod p
ii)u2=(1+n1)v1*uv2 mod n1 2
iii)u3=g’v2 mod n1 2
iv)u4=g2v1*h2v3 mod n2
并且将u1、…、u4传送给R
e)R向c开放承诺
f)S计算
i)v1’=v1-c.B
ii)v2’=v2-c.x
iii)v3’=v3-c.r
g)R验证
i)σ*v1’=u1/gc mod p
ii)(1+n1)v1’*uv2’=u2/ec mod n1 2
iii)g’v2’=u3/yc mod n1 2
iv)g2v1’*h2v3’=u4/C(B)c mod n2
v)|v1’|<23k.q2
如果这些保持,那么R接受σ*是g(B^-1)mod p,其中B是E(B)中加密的值。
4)R计算σ=σ*a mod p,其中a是与步骤10b中在C(a)中承诺的相同的值。它将σ传送给S,并且使用与上述类似的技术证明σ被正确生成。(细节省略)。σ=g1/(k1+k2+m)mod p是所需的值。
恶意基数
本文公开的用于安全地确定基数的技术(在恶意设置中双方仅获悉交集的大小)类似于用于安全PSI的技术。通常,各方联合地并安全地计算每一方的列表中的每个项上的oPRF。然而,在完成协议之前,作为传送方的一方将可验证地置乱所有oPRF结果。因此,接收方将在其列表上接收正确的oPRF评估,并且可以找出哪些在交集中,但是由于置乱而不能辨别哪个oPRF值与其原始项中的哪个相对应。
该协议可以应用ElGamal密文的7轮可验证置乱。经修改的oPRF协议概述如下。在促进置乱的一些实施方式中,oPRF一起应用于所有消息,而不是一次应用于一个消息:
传送方S持有oPRF密钥k,并且接收方R具有t个消息m1、…、mt的列表。
S为Camenisch-Shoup密码***生成密钥kS1,并且为ElGamal密码***生成第二密钥kS2。ElGamal密钥在其中将计算PRF的相同群G(一般是Z*p中的q阶子群)中。
S向R传送其PRF密钥的Camenisch-Shoup同态加密C(S1,k),以及k的知识证明
对于其列表中的每个mi,R以C(S1,Bi)、承诺C(ai)和C(bi)、以及知识证明作为回应,其中Bi=bi*q+ai(k+mi)。(到目前为止,这与PSI oPRF相同,除了所有的R的消息被一起处理)。
S解密它接收到的每个密文,并且计算σ*i=gBi^-1mod p。它然后将ElGamal加密C(S2,σ*i)传送给R,并且证明它们从C(bi)s被正确计算。更明确地,对于每个C(S2,σ*i),S首先将n2下的承诺Com(Bi)传送给R,然后执行以下证明,其中k=k’+k”是安全性参数,挑战长度为k’并且ZK质量为k”。
1)双方知道
a)(u1,e1)=C(S1,Bi),S的Camenish Shoup密钥(n1,g,y)下的密文
b)(u2,e2)=C(S2,σ*i),S的ElGamal密钥(p,g’,y’)下的密文
c)c1=Com(Bi),R的承诺参数(n2,g2,h2)下的承诺
2)S知道
a)Camenish Shoup秘密密钥x1
b)值Bi
c)用于u2、e2的ElGamal秘密密钥x2
d)用来生成c1的随机性r
并且想要证明
(i)e1=u1 x1.(1+n1)Bi mod n1 2
(ii)y=gx1 mod n1 2
(iii)e2=u2 r.(g’-1)Bi mod p
(iv)c1=g2 Bi.h2 r mod n2//该承诺是为了稳健性和可提取性。
(v)|Bi|<22k.q2
3)R承诺随机挑战c<-2k’
4)S选择随机值r1<-[-2k.n1/4,2k.n1/4]、r2<-[-23k.q2,23k.q2]和r3<-[-2k.q,2k.q]、r4<-[-2k.n2/4,2k.n2/4],并且计算
a)v1=u1 r1.(1+n1)r2 mod n1 2
b)v2=gr1 mod n1 2
c)v3=g’r3 mod p
d)v4=u2 r3.(g’-1)r2 mod p
e)v5=g2 r2.h2 r4 mod n2
并且将v1、…、v5传送给R
5)R透露随机挑战c
6)S计算
a)r1’=r1-c.x1
b)r2’=r2-c.Bi
c)r3’=r3-c.x2
d)r4’=r4-c.r
并且将r1’、r2’、r3’、r4传送给R
7)R验证:
a)u1 r1’.(1+n1)r2’=v1/e1 c mod n1 2
b)gr1’=v2/yc mod n1 2
c)g’r3’=v3/y’c mod p
d)u2 r3’.(g’-1)r2’=v4/e2 c mod p
e)g2 r2’.h2 r4’=v5/c1 c mod n2
f)|r2’|<23k.q2
推断证明。
r1、r1’、r3和r3’的相同值可以跨所有消息mi而使用,因为它指的是相同的密钥x1和x2
R同态计算C(S2,σi)并将其与证明(这些密文是使用与之前承诺的相同的ai而正确地确定)一起传送给S,其中σi=σ*i ai mod p。更准确地,对于每个项i,R执行以下证明:
1)双方知道:
a)u1,v1=C(S2,σ*i),在S的公钥(p,g,y)下的ElGamal加密
b)u2,v2=C(S2i),相同密钥下的另一ElGamal加密
c)c1=Com(ai),S的参数(n1,g1,y1)下的对ai的承诺
2)R知道:
a)在承诺c1的底层的ai,并且使得σi=σ*i ai
b)在重新随机化(u2,v2)中使用的r
c)承诺Com(ai)中使用的r’
并且想要证明
d)u2=u1 ai.gr mod p
e)e2=e1 ai.yr mod p
f)c1=g1 ai.h1 r’mod n2
g)|ai|<2k.q
3)S承诺挑战c
4)R选择随机值r1<-[-2k.q,2k.q]、r2<-[-2k.q,2k.q]、r3<-[-2k.q,2k.q],
并且计算
a)v1=u1 r1.gr2 mod p
b)v2=e1 r1.yr2 mod p
c)v3=g1 r1.h1 r2 mod n1
并且将v1、v2和v3传送给S
5)S违背承诺挑战c
6)R计算
a)r1’=r1-c.ai
b)r2’=r2-c.r
c)r3’=r3-c.r’
7)S验证:
a)u1 r1’.gr2’=v1/u2 c mod p
b)e1 r1’.yr2’=v2/e2 c mod p
c)g1 r1’.h1 r2’=v3/c1 c mod n1
推断证明。
S选择置换π,并且对密文C(S2i)的列表进行置乱和解密,以向R透露列表σπ(i)。S然后传送正确置乱和解密的Groth证明。在返回值之前,S应该检查解密的σπ(i)的列表中是否有重复。如果有的话,S应该中止协议并推断R在欺骗。
R推断它已经接收到其列表的经置乱的PRF评估。
上述经修改的oPRF可以适应PSI协议,以提供基数的安全计算。在一些实施方式中,可以应用以下附加特征,所有这些特征可以使用与用于PSI的相同或对应的技术而处理。
每个oPRF计算可以基于划分密钥的计算,其中,第1方具有密钥k1,并且第2方具有密钥k2,并且两者都安全地计算PRFk(m),其中k=k1+k2。为此,如前所述,第1方作为具有密钥k1的传送方,并且第2方使用k2+m作为其消息。他们一起安全地计算g1/(k1+k2+m)
为了避免CRS,双方创建RSA模数,并且第1方针对第2方的模数进行承诺,反之亦然。
当执行跨越Camenisch-Shoup密文、ElGamal密文和承诺的相等性证明时,各方可以小心谨慎,因为其中的每一个可以具有不同的消息空间。具体地,区间证明可以用来示出加密的消息不会在消息空间中绕回。
恶意交集总和(交集中的项的同态总和)
在交集总和任务的一些实施方式中,有具有项的列表MA=(a1,…,an)和MB=(b1,…,bm)的两方A和B,此外,B的列表中的项具有与其相关联的值TB=(t1,…,tm)。目标是计算Sum{ti:bi∈MA∩MB},即位于两个列表的交集中的项的标签(即,关联值)的总和。
恶意基数协议可以被修改,以包括上述功能。在高层次上,该想法是将标签与相关联的oPRF值一起置乱,但首先要对它们进行双重加密,这样任一方都不知道哪些ti’在交集中。指数ElGamal加密方案可以与门限解密一起使用。
恶意盲化器(blinder)可能仅需要以与ID的置乱相同的顺序对标签值的阈值加密密文的单次额外置乱。附加的密文列表以相同的方式被置乱的证明可以重新使用来自原始置乱证明的大量工作。总之,这可以导致传送方4n次以上的指数运算(3n次用以验证标签的加密,以及n次用以额外置乱证明),以及接收方6n次以上的指数运算(2n次用以在联合密钥下加密标签值,2n次用以证明这些加密的正确性,并且2n次用以验证置乱)。
值得注意的是,指数ElGamal具有受限的密文空间。如果标签的总和太大而不能被包含在单个指数ElGamal密文中,那么标签可以被划分为多个密文。每个项因此可以与多个标签相关联,其全部被同步置乱,并且还按分量求和。这泄漏了一些附加的部分总和信息:每个标签分量的总和被透露。然而,在一些设置中,该泄漏可能是微不足道的。此外,每个附加标签可能需要来自传送方的3n次以上的指数运算和来自接收方的6n次指数运算。
用门限解密的指数ElGamal
Setup:各方联合选择素数p=tq+1,以及Z*p中的q阶子群的生成元g。
KeyGen:每一方Pi独自选择yi=gxi mod p,并且设置pki=yi、ski=xi
Encrypt(m):为了在密钥{pki=yi}的集合下加密消息m,假定Y=prod{yi}。设置u=gr mod p并且e=Yr.gm mod p。密文是(u,e)。
Decrypt(ski,u,e):通过计算一个新的密文(u’,e’),单方可以使用他们的秘密密钥xi对密文进行部分解密,其中u’=u并且e’=e.u-xi mod p。
一旦所有方已经用他们的密钥执行了部分解密,剩余的值是gm mod p,其可以通过计算离散对数而恢复。
指数ElGamal仅可以针对相对小的消息而解密,但如果消息长,则其可以在多个密文之间被划分,所有密文可以以同步方式被置乱。
下面提供了使用双重加密标签技术的恶意盲化器的候选协议:
oPRF评估之前:
·双方针对指数ElGamal方案(其是加性同态的,并且具有针对小消息的有效解密)选择密钥共享。两个密钥应该在相同群G中,具体而言,在一些联合选择的素数p的Z*p中。
·双方共享他们生成的公钥yi
·当B承诺他们的消息集MB时,B附加地传送在通过组合上述两个密钥而推导的联合指数ElGamal密钥Y下的、每个标签ti的加密Ti,并且证明底层明文的正确性和知识。
oPRF评估期间:
·在oPRF评估期间,双方在评估MA上的oPRF时,如同在恶意基数协议中。
·当评估MB上的oPRF时,各方也可以如同在恶意基数协议中,直到传送方接收到加密C(S2i)的步骤。此时,如前所述,传送方对这些值进行置乱和解密,将{σπ(i)}传送给R。然而,S使用相同的置换π,附加地对双重加密标签Ti进行置乱和重新随机化,以将列表{Tπ(i)}传送给R。这样做时,标签保持与相同的消息相关联,除了由于双重加密,实际置换保持隐藏。
oPRF评估之后:
在两次oPRF评估之后,A和B比较在MA和MB上的PRF评估来确定交集中的项。对于交集中的PRF值,每一方可以独自添加相关联的置乱的、双重加密标签Tπ(i),以创建双重加密总和Enc(sum)。
两方各自可验证地重新随机化Enc(sum)。(此处,该步骤是为了使模拟器能够用它想要的任何东西来代替总和)
两方然后各自可验证地对双重加密总和进行部分解密,然后独自计算离散对数以恢复值“sum”。
安全性证明
安全性证明类似于恶意PSI和基数的证明。换句话说,提供了一种模拟器。给定每个针对交集的大小的单个理想查询,以及交集中的值的总和,该模拟器可以模仿诚实抄本。当恶意方为A时,模拟器仅需要为理想功能提供集合MA,而如果恶意方为B,则模拟器提供MB和{Ti}。
在高层次上,如在恶意PSI中,模拟器从预oPRF阶段承诺的值中提取所有消息,如果适用的话,还提取在密文的底层的标签值,并且将该消息集合和标签(可选)用作其对理想化功能的单个查询。它然后预确定在所有值上的oPRF结果,以便模拟的oPRF交互产生对的基数的集合。它然后在oPRF评估阶段进行欺骗,以便oPRF始终评估到预确定值,以便基数计算是正确的。
此外,它在标签Ti的经验证的置乱中进行欺骗,用0的加密代替所有加密。它使用置乱协议的模拟器来实现该欺骗。双方对这些虚拟值计算加密总和,结果始终是0的加密。
最后,在重新随机化步骤期间,它用从理想功能接收到的真实总和的密文替换对(假的)总和进行加密的密文,并且模拟正确的重新随机化的证明。通过模拟的安全性和门限加密方案的CPA安全性,这些欺骗中的每一个都是不可检测的。
混合的具体顺序:首先在重新随机化步骤中进行欺骗,使用真实总和的新的加密,而不是从实际oPRF协议计算的总和。接下来,用0的加密代替置乱的oPRF的输出中的所有加密。置乱协议的模拟器保证,只要“总和”密文在下游(downstream)被丢弃(这由于第一次欺骗而发生),模拟就变得与诚实交互无法区分。
具有基于虚拟的隐蔽安全性的反转盲化器
在一些实施方式中,所公开的技术涉及在一天的过程(或其他时间段)内在两方(例如,User1和User2)之间的多个隐私交集-总和协议的执行,同时保证任一方都不会进行欺骗而不被捕捉。更详细地,
·User1具有存储用户标识符uj的数据库M1
·外部方(User2)具有存储多对用户标识符与相关联整数值(ui,ti)的数据库M2。其中ti可以是与用户ui相关联的交易数据。
·用户1的数据被进一步分解为“段”,其是M1的不相交子集。M1的第s段将被称为M1,s
·这两个用户希望允许User1获悉他们的数据集的每段交集总和。
也就是说,对于每个s,User1可以获悉:
Sums=Σti使得(ui,ti)∈M2并且ui∈M1,s
此外,应该针对隐蔽对手保证安全性。也就是说,如果用户中的一个在输入的某个可察觉的(appreciable)部分上进行欺骗,另一个用户应该能够以高可能性检测到该欺骗。
该协议包括三个阶段:每天一次的设置阶段、每段阶段和一天结束时的验证阶段。
每天设置
在一天的开始,User2上传{(ui,Pai2(ti)}的加密版本,其包括一天的加密交易,密钥在用户ID ui上。User1获悉{f(ui)},其为应用于User2的提交的UID中的每一个的双密钥PRF的输出,并且User1以置乱顺序创建对所有这样的f(ui),以及重新随机化的加密Pai2(ti)的承诺。可以采用任何合适的承诺方案,诸如使用SHA-256散列的Merkle树。
通过将虚拟值***到协议阶段中,User2可以验证User1正确执行其操作。通过要求由User2传送的加密值的证明,User1可以确保User2仅上传格式良好的数据。
阶段1:
·对于M2中的每个(ui,ti),针对随机选择的ai<-[q],bi<-[2λ*q],用户2同态计算Pai1(Bi)=Pai1(ai(k1+k2+ui)+biq)=Pai1(k1)ai*Pai1(a1(k2+ui)+biq),对于每个ui而不同,并且还计算hi=ga _ i。用户2还计算Pai2(ti),在用户2自己的Paillier密钥下的相关联交易值的加密。
·针对随机ck<2*q2、和dk和ek<q,用户2还生成虚拟元组(Pai1(ck),gd_k,Pai2(ek))。它生成(X*M2)/(1-X)这样的元组,使得虚拟元组形成M2和虚拟的组合数据库的X部分。
·用户2以置乱的顺序向用户1传送所有这样的(Pai1(Bi),hi,Pai2(ti))(真实的和虚拟的)。通过Paillier加密的安全性,虚拟元组将与“真实”元组无法区分。真实元组和虚拟元组中的hi可以具有相同的分布grandom
·对于传送的每个元组,如果元组是真实的,则用户2存储值(ai,bi,ui,ti,renc),以及如果元组是虚拟的,则用户2存储值(ck,dk,ek,renc),其中renc是用于Paillier加密的随机性(为了简洁起见,删除了renc上的索引i和k)。它以与置乱对被传送给用户1相同的顺序存储这些值。
阶段2:
·对于在阶段1中接收到的每个元组(Pai1(Bi),hi,Pai2(vi)),用户1解密以确定Bi并计算fi=hi (1/B_i),并且还选择随机值rj,并且同态计算Pai2(ti+ri)。用户1还重新随机化密文Pai2(ti+ri),并且存储用于重新随机化的随机性r’enc
·用户1对元组{(fi,Enc2(ti+ri),ri,r’enc)}进行置乱,单独承诺每个条目,并且将承诺传送给用户2,同时维护底层值的副本,包括所使用的ri和r’enc值。它还记住置乱的顺序。
阶段3:
·对于阶段1中生成的每个虚拟,用户将元组(ck,dk,ek,renc)以及阶段1中元组的置乱位置传送给用户1。这向用户1透露了该元组是虚拟。
阶段4:
·对于接收到的每个元组(ck,dk,ek,renc),用户1重新生成fk=g^(dk/ck),并且向用户2传送对(fk,Pai2(ek+rk),rk,r’enc)的承诺的开放。用户2可以使用这些来验证它在索引k处传送的虚拟对是由用户1正确操纵和承诺(参见下面的阶段5)
·用户1还选择在阶段1中从用户2接收的非虚拟元组的X部分子集J。它要求用户2提供这些被正确生成的证明。
阶段5:
·对于每个虚拟元组,用户2验证由用户1提供的开放是正确的,换句话说,fi=g^(dk/ck),并且Pai2(tk+rk)是使用随机性rrenc并且使用r’enc而重新随机化的ek+rk的加密。用户2还检查由用户1传送的承诺正确地向(fi,Pai2(ti+ri),ri,r’enc)开放。
·对于集合J中的每个索引i,用户2创建元组i在阶段1中被正确生成的证明。它通过证明ai和aik2+aiui+biq的知识来这样做,使得
οPai1(ai(k1+k2+ui)+biq)=Pai1(k1)^ai*Pai1(aik2+aiui+biq)
οhi=ga _ i,与用于指数Pai1(k1)的相同的指数ai
οai<2λ*q
οaik2+aiui+biq<2*q2
这些证明可以是指数知识的标准西格玛(sigma)协议。挑战不需要被限制为大小为{0,1},因为Paillier密钥是由验证者而不是证明者生成的。在设置阶段证明期间,因为验证者生成了Paillier密钥,所以如果挑战不在{0,1}中,它可能进行欺骗。
·用户2将所有这样的证明传送给用户1。这些证明并不约束用户2在任何地方使用相同的k2,或者甚至在设置期间使用与它在Pai2(k2)中传送的相同的k2。然而,对于特定的索引i,使用不同的k2,比如k2+x,相当于保持k2不变并将ui改变为ui+x,这是用户2可以做到的。因此,通过不检查k2在任何地方都相同,没有给用户2额外的幂。阶段6:
·用户1验证接收到的每个证明。
阶段3、4、5和6是“审计(audit)”风格的阶段,其提供了捕捉欺骗用户的概率保证。它们可以在任何稍后的点处被执行(例如,合并到稍后的每段消息中),只要它们以相对于彼此相同的顺序执行(例如,阶段3在阶段4之前,阶段4在阶段5之前,等等)。
每段协议
除了用户的角色反转,每段协议在风格上类似于一天开始协议。
阶段1:
·对于M1,s中的每个uj,针对随机选择的aj<-[q],bj<-[2λ*q],用户1同态计算Pai2(Bj)=Pai2(aj(k1+k2+uj)+bjq)=Pai2(k2)aj*Pai2(aj(k1+uj)+bjq),对于每个uj而不同,并且还计算hj=ga_j
·对于随机ck<2*q2并且dk<q,用户1还生成虚拟元组(Pai2(ck’),gd_k’)的X部分。
·用户1以置乱的顺序向用户2传送所有这样的(Pai2(Bj),hj)(真实的和虚拟的)。
·对于传送的每个元组,如果该对是真实的,则用户2还记住值(aj,bj,uj,renc),并且如果该对是虚拟的,则记住(ck’,dk’,renc),其中renc是用于加密的随机性。它以与置乱的对被传送给用户2相同的顺序存储这些值。
阶段2:
·对于在阶段1中接收到的每个元组(Pai2(Bj),hj),用户2解密以得到Bj并计算fj=hj (1/B_j)。它以置乱的顺序将所有这样的fj传送给用户1。
阶段3:
·对于在阶段1中生成的每个虚拟,用户1将元组(ck’,dk’,renc)传送给用户2,透露了该索引处的元组是虚拟。用户1进一步检查gdk/ck出现在由用户1在阶段2中接收到的fj的列表中。
·对于由用户1在阶段2中接收到的每个剩余fj(即,不与虚拟gdk/ck相对应),用户1在一天开始承诺中查找它。对于找到的所有fj,用户1同态添加对应的盲化Paillier密文,以得到Pai2(Sum*)=Pai2Intersection(ti+ri))
·用户1附加地生成与虚拟总和相对应的T个Paillier密文Pai2(r*i)。
·用户1将在彼此当中置乱的Pai2(Sum*)和Pai2(r*i)传送给用户2。用户1单独向在Paillier密文的底层的值传送T个承诺{Com(ri)}。
·用户1还向用户2传送与交集相对应的索引列表,以及对应的fi值(但不是Pai(ti+ri)、ri或r’enc值)的承诺开放。
阶段4:
·对于在阶段3中接收到的每个虚拟元组开放(ck’,dk’,renc),用户2验证其在阶段1中接收到对应的虚拟元组(Pai2(ck’,renc),gd_k)。
·用户2还验证与交集相对应的承诺开放,并且检查交集大小足够大。
·如果是,用户2解密从用户1接收的每个Paillier密文,并且将解密传送回用户1。
·用户2还选择在阶段1中从用户1接收的非虚拟元组的X部分子集J。它要求用户1提供它们被正确生成的证明。
阶段5:
·用户1验证每个虚拟值r*i出现在用户1在前一阶段传送的响应中。如果是,它向用户1在第3阶段中传送的Com(ri*)中的每一个传送开放。
·用户1还传送索引集J中的元组中的每一个被正确产生的证明。(用户1传送的证明类似于用户2在一天开始协议的阶段4中提供的证明)。
·用户1还传送交集的Pai2(ti+ri)值的承诺开放。
·最终,用户1计算Sums=Sum*-ΣIntersectionri,这是段的总和,用户1针对协议的输出。
阶段6:
·用户2验证由用户1在先前阶段中传送的证明和承诺开放。它还解密每个Pai2(ti+ri),并且验证Sum*=ΣIntersection(ti+ri),正如预期的那样。
一天结束的协议
在所有段已经完成执行之后,执行一天结束的协议。
阶段1:
·在一天结束时,用户1开放从一天开始的剩余的、未使用的fi的承诺(不是Pai(ti+ri)、ri或r’enc的承诺),并且将开放传送给用户2。
阶段2:
·用户2验证开放是在一天开始处接收到的承诺的正确开放。
·它还验证开放中的fi值与在每一段中看到的交集一致。用户2检查新透露的fi都没有被用户1不恰当地从某个段交集省略。
Paillier密文的批处理
替代针对每个数据库条目传送单独的Paillier密文,用户可以通过将多个条目的Paillier密文打包为单个明文来一起批处理多个条目的Paillier密文。这将大大减少通信量,因为每个Paillier密文可以被打包为其最大大小,而不是浪费大量的明文空间。ZK证明和虚拟策略也可以转移为批量设置。然而,在协议中执行的置乱必须保护批处理的数据库条目的接近性(proximity),这比协议的非批处理版本泄漏稍微更多的信息。此外,在协议期间传送的虚拟仅可以与其他虚拟一起被批处理,否则上述ZK证明和虚拟***策略将不再可能执行。
图10是计算机***1000的示意图。根据一个实现方式,***1000可以用来执行针对先前描述的任何计算机实施方法而描述的操作。***1000旨在包括各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。***1000还可以包括移动设备,诸如个人数字助理、蜂窝电话、智能手机和其他类似的计算设备。此外,该***可以包括便携式存储介质,诸如通用串行总线(Universal Serial Bus,USB)闪存驱动器。例如,USB闪存驱动器可以存储操作***和其他应用。USB闪存驱动器可以包括输入/输出组件,诸如可以***到另一计算设备中的USB端口的无线发送器或USB连接器。
***1000包括处理器1010、存储器1020、存储设备1030和输入/输出设备1040。组件1010、1020、1030和1040中的每一个使用***总线1050而互连。处理器1010能够处理用于在***1000内执行的指令。处理器可以使用多种架构中的任何一种而设计。例如,处理器1010可以是CISC(Complex Instruction Set Computer,复杂指令集计算机)处理器、RISC(Reduced Instruction Set Computer,精简指令集计算机)处理器或MISC(MinimalInstruction Set Computer,最小指令集计算机)处理器。
在一个实施方式中,处理器1010是单线程处理器。在另一实施方式中,处理器1010是多线程处理器。处理器1010能够处理存储在存储器1020中或存储设备1030上的指令,以在输入/输出设备1040上显示用户接口的图形信息。
存储器1020存储***1000内的信息。在一个实施方式中,存储器1020是计算机可读介质。在一个实施方式中,存储器1020是易失性存储单元。在另一实施方式中,存储器1020是非易失性存储单元。
存储设备1030能够为***400提供大容量存储。在一个实施方式中,存储设备1030是计算机可读介质。在各种不同的实施方式中,存储设备1030可以是软盘设备、硬盘设备、光盘设备或磁带设备。
输入/输出设备1040为***400提供输入/输出操作。在一个实施方式中,输入/输出设备1040包括键盘和/或定点设备。在另一实施方式中,输入/输出设备1040包括用于显示图形用户接口的显示单元。
所描述的特征可以在数字电子电路中被实施,或者在计算机硬件、固件、软件中或它们的组合中被实施。装置可以在有形地体现在信息载体中(例如,在用于由可编程处理器执行的机器可读存储设备中)的计算机程序产品中被实施;并且方法步骤可以由执行指令的程序的可编程处理器执行,以通过对输入数据进行操作并生成输出来执行所描述的实施方式的功能。所描述的特征可以在可编程***上执行的一个或多个计算机程序中被有利地实施,其中该可编程***包括至少一个可编程处理器,该可编程处理器耦合为从数据存储***、至少一个输入设备和至少一个输出设备接收数据和指令并向其发送数据和指令。计算机程序是可以在计算机中直接或间接用来执行某个活动或带来某个结果的指令集合。计算机程序可以以包括编译或解释语言的任何形式的编程语言而编写,并且其可以以任何形式而部署,包括作为独立程序或模块、组件、子例程、或适合在计算环境中使用的其他单元。
举例来说,用于执行指令的程序的合适的处理器包括通用和专用微处理器,以及任何种类的计算机的唯一处理器或多个处理器中的一个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器。通常,计算机还将包括用于存储数据文件的一个或多个大容量存储设备,或者可操作地耦合为与之通信;这样的设备包括磁盘,诸如内部硬盘和可移动磁盘;磁光盘;以及光盘。适合于有形地体现计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,例包括如半导体存储设备,诸如EPROM、EEPROM和闪存设备;磁盘,诸如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由ASIC(Application-Specific Integrated Circuit,专用集成电路)补充或被并入其中。
为了提供与用户的交互,该特征可以在计算机上被实施,其中该计算机具有用于向用户显示信息的诸如CRT(Cathode Ray Tube,阴极射线管)或LCD(Liquid CrystalDisplay,液晶显示器)监视器的显示设备,以及键盘和诸如用户可以通过其向计算机提供输入的鼠标或轨迹球的定点设备。此外,这样的活动可以经由触摸屏平板显示器和其他适当的机制而实施。
该特征可以在计算机***中被实施,其中该计算机***包括诸如数据服务器的后端组件,或者包括诸如应用服务器或互联网服务器的中间件组件,或者包括诸如具有图形用户接口或互联网浏览器的客户端计算机的前端组件,或者包括它们的任意组合。***的组件可以通过诸如通信网络的任何形式或介质的数字数据通信而连接。通信网络的示例包括局域网(Local Area Network,“LAN”)、广域网(Wide Area Network,“WAN”)、对等网络(具有自组织或静态成员)、网格计算基础设施和互联网。
计算机***可以包括客户端和服务器。客户端和服务器通常彼此远离,并且一般通过诸如所描述的一个的网络进行交互。客户端和服务器的关系是通过在各个计算机上运行并且彼此之间具有客户端-服务器关系的计算机程序产生的。
虽然本说明书包含许多具体的实施方式细节,但这些不应被解释为对任何发明或可能要求保护的内容的范围的限制,而是特定于特定发明的特定实施方式的特征的描述。单独的实施方式的上下文中的在本说明书中描述的某些特征也可以在单个实施方式中组合实施。相反,在单个实施方式的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施方式中实现。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从所要求保护的组合删除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为要求以所示的特定顺序或以先后顺序执行这些操作或者执行所有示出的操作来实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施方式中的各种***组件的分离不应被理解为在所有实施方式中都需要这样的分离,并且应该理解,所描述的程序组件和***通常可以一起集成在单个软件产品中或封装为多个软件产品。
因此,已经描述了主题的特定实施方式。其他实施方式在以下权利要求的范围内。在一些情况下,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定顺序或先后顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。

Claims (20)

1.一种用于在比较第一计算***和第二计算***的隐私数据集时保护隐私的方法,所述方法包括:
由第二计算***标识与第二计算***的隐私数据库中的记录相对应的第一标识符集合;
对于第一标识符集合中的每个标识符:
(i)由第二计算***使用同态加密过程来生成标识符的加密版本,
(ii)从第二计算***向第一计算***提供标识符的加密版本,
(iii)由第二计算***从第一计算***接收使用第一计算***的秘密密钥而生成的标识符的盲化加密版本,以及
(iv)由第二计算***对标识符的盲化加密版本进行解密,以生成标识符的盲化版本;
由第二计算***接收与第一计算***的隐私数据库中的记录相对应的第二标识符集合的盲化版本;
由第二计算***基于第一标识符集合的盲化版本和第二标识符集合的盲化版本之间的匹配,确定第一计算***的隐私数据库中的记录与第二计算***的隐私数据库中的记录的交集或交集的特性;以及
由第二计算***提供交集或交集的特性的指示。
2.根据权利要求1所述的方法,其中,对于第一标识符集合中的每个标识符,第一计算***通过根据伪随机函数处理标识符的加密版本和第一计算***的秘密密钥来生成标识符的盲化加密版本。
3.根据权利要求2所述的方法,其中,所述伪随机函数是不经意伪随机函数。
4.根据权利要求2或3所述的方法,其中,第二计算***通过将标识符的加密版本与第二计算***的秘密密钥进行组合,在将标识符的加密版本提供给第一计算***之前修改所述标识符的加密版本,并且其中第一计算***通过根据伪随机函数处理标识符的经修改的加密版本,还基于第二计算***的秘密密钥来生成标识符的盲化加密版本。
5.根据权利要求4所述的方法,其中,对于第一标识符集合中的每个标识符,第二计算***通过将第二计算***的秘密密钥同态添加到标识符的加密版本来修改标识符的加密版本。
6.根据权利要求1所述的方法,还包括:
对于第一标识符集合中的每个标识符,由第二计算***将标识符的盲化版本映射到标识符;以及
对于来自第一标识符集合的标识符的盲化版本和来自第二标识符集合的标识符的盲化版本之间的每个所标识的匹配:
由第二计算***标识第二计算***的隐私数据库中与映射到来自第一标识符集合的标识符的盲化版本的标识符相对应的记录;以及
由第二计算***将所标识的记录分类为在第一计算***的隐私数据库中的记录与第二计算***的隐私数据库中的记录的交集内。
7.根据权利要求6所述的方法,其中,第二计算***以与第二计算***向第一计算***提供第一标识符集合的加密版本的第二顺序相对应的第一顺序从第一计算***接收第一标识符集合的盲化加密版本。
8.根据权利要求7所述的方法,其中,第一顺序与第二顺序一致,使得第二计算***以与第二计算***向第一计算***提供第一标识符集合的加密版本相同的顺序从第一计算***接收第一标识符集合的盲化加密版本。
9.根据权利要求1所述的方法,包括由第二计算***确定第一计算***的隐私数据库中的记录与第二计算***的隐私数据库中的记录的交集的特性,而不确定哪些记录在所述交集内。
10.根据权利要求9所述的方法,其中,交集的特性表示被包括在与第二计算***的隐私数据库中的记录相对应的第一标识符集合和与第一计算***的隐私数据库中的记录相对应的第二标识符集合中的共有标识符的数量的计数。
11.根据权利要求9所述的方法,其中,交集的特性表示存储在第二计算***的隐私数据库的、在第一计算***的隐私数据库和第二计算***的隐私数据库之间的记录的交集内的记录中的值的总和。
12.根据权利要求1所述的方法,其中,来自第一标识符集合的第一标识符子集也被包括在第二标识符集合当中,并且来自第一标识符集合的第二标识符子集不被包括在第二标识符集合当中。
13.根据权利要求1所述的方法,还包括:
由第二计算***确定第一计算***是否在不偏离规定协议的情况下对第一标识符集合的加密版本进行了盲化;以及
响应于验证第一计算***在对第一标识符集合的加密版本进行盲化时偏离了规定协议,采取行动以停止规定协议的执行。
14.根据权利要求1所述的方法,还包括:
由第二计算***将虚拟标识符***到第一标识符集合中,所述虚拟标识符不与第二计算***的隐私数据库中的记录相对应;以及
在从第一计算***接收到第一标识符集合的盲化加密版本之后,验证第一计算***恰当地对虚拟标识符的加密版本进行了盲化。
15.根据权利要求1所述的方法,其中:
与第二计算***的隐私数据库中的记录相对应的第一标识符集合标识作为与和第二计算***相关联的实体进行交易的一方的用户;以及
与第一计算***的隐私数据库中的记录相对应的第二标识符集合标识被供应与第二计算***相关联的实体的数字媒体项的用户。
16.一种用于安全地确定隐私集交集或隐私集交集的特性的计算***,包括:
一个或多个计算机上的隐私数据库,存储多个数据记录,其中每个数据记录包括表示数据记录的身份或数据记录中表示的用户的身份的标识符;
一个或多个处理器;以及
一个或多个计算机可读介质,所述一个或多个计算机可读介质上存储有指令,其中所述指令在由一个或多个处理器执行时使得执行包括以下各项的操作:
由计算***标识与计算***的隐私数据库中的记录相对应的第一标识符集合;
对于第一标识符集合中的每个标识符:
(i)由计算***使用同态加密过程来生成标识符的加密版本,
(ii)从计算***向远程计算***提供标识符的加密版本,
(iii)由计算***从远程计算***接收使用远程计算***的秘密密钥而生成的标识符的盲化加密版本,以及
(iv)由计算***对标识符的盲化加密版本进行解密,以生成标识符的盲化版本;
由计算***接收与远程计算***的隐私数据库中的记录相对应的第二标识符集合的盲化版本;
由计算***基于第一标识符集合的盲化版本和第二标识符集合的盲化版本之间的匹配来确定远程计算***的隐私数据库中的记录与计算***的隐私数据库中的记录的交集或交集的特性;以及
由计算***提供交集或交集的特性的指示。
17.根据权利要求16所述的计算***,其中,对于第一标识符集合中的每个标识符,远程计算***通过根据伪随机函数处理标识符的加密版本和远程计算***的秘密密钥来生成标识符的盲化加密版本。
18.根据权利要求16或17中任一项所述的计算***,其中,所述操作还包括:
对于第一标识符集合中的每个标识符,由计算***将标识符的盲化版本映射到标识符;以及
对于来自第一标识符集合的标识符的盲化版本和来自第二标识符集合的标识符的盲化版本之间的每个所标识的匹配:
由计算***标识计算***的隐私数据库中、与映射到来自第一标识符集合的标识符的盲化版本的标识符相对应的记录;以及
由计算***将所标识的记录分类为在远程计算***的隐私数据库中的记录与计算***的隐私数据库中的记录的交集内。
19.根据权利要求16所述的计算***,其中:
与计算***的隐私数据库中的记录相对应的第一标识符集合标识作为与和计算***相关联的实体进行交易的一方的用户;以及
与远程计算***的隐私数据库中的记录相对应的第二标识符集合标识被供应与计算***相关联的实体的数字媒体项的用户。
20.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储有指令,其中所述指令在由一个或多个处理器执行时使得一个或多个处理器执行包括以下各项的操作:
由第二计算***标识与第二计算***的隐私数据库中的记录相对应的第一标识符集合;
对于第一标识符集合中的每个标识符:
(i)由第二计算***使用同态加密过程来生成标识符的加密版本,
(ii)从第二计算***向第一计算***提供标识符的加密版本,
(iii)由第二计算***从第一计算***接收使用第一计算***的秘密密钥而生成的标识符的盲化加密版本,以及
(iv)由第二计算***对标识符的盲化加密版本进行解密,以生成标识符的盲化版本;
由第二计算***接收与第一计算***的隐私数据库中的记录相对应的第二标识符集合的盲化版本;
由第二计算***基于第一标识符集合的盲化版本和第二标识符集合的盲化版本之间的匹配,确定第一计算***的隐私数据库中的记录与第二计算***的隐私数据库中的记录的交集或交集的特性;以及
由第二计算***提供交集或交集的特性的指示。
CN201980001669.3A 2018-04-19 2019-04-19 用于确定隐私集交集的安全性措施 Active CN110622165B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862660108P 2018-04-19 2018-04-19
US62/660,108 2018-04-19
PCT/US2019/028295 WO2019204711A1 (en) 2018-04-19 2019-04-19 Security measures for determination of private set intersections

Publications (2)

Publication Number Publication Date
CN110622165A CN110622165A (zh) 2019-12-27
CN110622165B true CN110622165B (zh) 2023-05-30

Family

ID=66429634

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980001669.3A Active CN110622165B (zh) 2018-04-19 2019-04-19 用于确定隐私集交集的安全性措施

Country Status (4)

Country Link
US (1) US11494506B2 (zh)
EP (1) EP3580685B1 (zh)
CN (1) CN110622165B (zh)
WO (1) WO2019204711A1 (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102149996B1 (ko) * 2017-03-03 2020-08-31 구글 엘엘씨 특정 식별 정보 노출없이 식별자간 링크를 설정하기 위한 시스템 및 방법
US11405365B2 (en) * 2019-03-13 2022-08-02 Springcoin, Inc. Method and apparatus for effecting a data-based activity
CN110535622A (zh) * 2019-08-01 2019-12-03 阿里巴巴集团控股有限公司 数据处理方法、装置和电子设备
US10885203B2 (en) 2019-08-01 2021-01-05 Advanced New Technologies Co., Ltd. Encrypted data exchange
US11973743B2 (en) 2019-12-13 2024-04-30 TripleBlind, Inc. Systems and methods for providing a systemic error in artificial intelligence algorithms
US11431688B2 (en) 2019-12-13 2022-08-30 TripleBlind, Inc. Systems and methods for providing a modified loss function in federated-split learning
US10924460B2 (en) 2019-12-13 2021-02-16 TripleBlind, Inc. Systems and methods for dividing filters in neural networks for private data computations
CN111177762B (zh) * 2019-12-30 2022-11-08 北京同邦卓益科技有限公司 一种数据处理方法、装置、服务器及联邦学习***
US20210359836A1 (en) * 2020-02-14 2021-11-18 Google Llc Secure multi-party reach and frequency estimation
CN111641603B (zh) * 2020-05-15 2022-07-01 北京青牛技术股份有限公司 基于同态加密的隐私集合交集数据交互方法和***
CN111753318B (zh) * 2020-06-04 2024-04-26 上海蚂蚁创将信息技术有限公司 私有数据的多方安全计算方法、装置及***
CN111510464B (zh) * 2020-06-24 2020-10-02 同盾控股有限公司 一种保护用户隐私的疫情信息共享方法及***
CN112052458B (zh) * 2020-07-28 2024-02-23 华控清交信息科技(北京)有限公司 信息处理方法、装置、设备及介质
CN111931207B (zh) * 2020-08-07 2024-04-09 北京百度网讯科技有限公司 获得隐私集合交集的方法、装置、设备及存储介质
US11937078B2 (en) * 2020-08-25 2024-03-19 Crypto Lab Inc. Mobile device for detecting route overlap and methods thereof
CN111931253B (zh) * 2020-09-15 2021-01-15 腾讯科技(深圳)有限公司 基于节点群的数据处理方法、***、设备和介质
US11949778B1 (en) 2020-09-16 2024-04-02 Snap Inc. Privacy-preserving multi-touch attribution
US11507693B2 (en) 2020-11-20 2022-11-22 TripleBlind, Inc. Systems and methods for providing a blind de-identification of privacy data
CN112580072B (zh) * 2020-12-09 2021-07-30 深圳前海微众银行股份有限公司 一种数据集合求交方法及装置
CN112733163B (zh) * 2021-01-04 2023-02-03 北京航空航天大学 基于离散对数相等性证明的可监管零知识证明方法及装置
US11687666B2 (en) * 2021-01-12 2023-06-27 Visa International Service Association System, method, and computer program product for conducting private set intersection (PSI) techniques with multiple parties using a data repository
CN112910631B (zh) * 2021-02-08 2022-11-22 上海海洋大学 一种基于云服务器辅助的高效隐私集合交集计算方法及***
CN113132345B (zh) * 2021-03-04 2022-07-26 北京航空航天大学 具有可搜索功能的代理隐私集合求交方法
US20220382908A1 (en) * 2021-05-25 2022-12-01 Meta Platforms, Inc. Private joining, analysis and sharing of information located on a plurality of information stores
CN113515538B (zh) * 2021-06-08 2023-07-07 四川新网银行股份有限公司 一种基于多方安全计算的机构间隐私数据查询及预警方法
US11943354B2 (en) * 2021-07-20 2024-03-26 Snap Inc. Privacy safe joint identification protocol
US11687667B2 (en) * 2021-08-06 2023-06-27 Amazon Technologies, Inc. Privacy-preserving computing with third-party service
CN113806795B (zh) * 2021-08-10 2024-03-01 中国科学院信息工程研究所 一种两方隐私集合并集计算方法和装置
CN114372291A (zh) * 2022-01-13 2022-04-19 平安科技(深圳)有限公司 隐私联合推理方法、装置、设备及存储介质
US11625377B1 (en) * 2022-02-03 2023-04-11 TripleBlind, Inc. Systems and methods for enabling two parties to find an intersection between private data sets without learning anything other than the intersection of the datasets
CN114520721B (zh) * 2022-03-22 2024-03-29 杭州博盾习言科技有限公司 多方安全计算隐私求交方法、装置、设备及存储介质
CN114726542B (zh) * 2022-04-08 2024-04-09 中国再保险(集团)股份有限公司 一种基于隐私求交的数据传输方法及装置
CN115422581B (zh) * 2022-08-30 2024-03-08 北京火山引擎科技有限公司 一种数据处理方法及装置
CN116244753B (zh) * 2023-05-12 2023-08-15 建信金融科技有限责任公司 隐私数据求交集的方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103401839A (zh) * 2013-07-02 2013-11-20 河海大学 一种基于属性保护的多授权中心加密方法
WO2017160317A1 (en) * 2016-03-18 2017-09-21 Entit Software Llc Data objects associated with private set intersection (psi)
CN107749865A (zh) * 2017-12-07 2018-03-02 安徽大学 一种基于同态加密的位置隐私查询方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9825760B2 (en) * 2012-07-12 2017-11-21 Elwha, Llc Level-two decryption associated with individual privacy and public safety protection via double encrypted lock box
GB2526059A (en) * 2014-05-13 2015-11-18 Ibm Managing unlinkable identifiers for controlled privacy-friendly data exchange
IL234613A0 (en) * 2014-09-11 2014-12-02 Google Inc Exchange consolidated and encrypted transaction information with a transaction information provider
US20170124152A1 (en) * 2015-11-02 2017-05-04 LeapYear Technologies, Inc. Differentially private processing and database storage
US10223547B2 (en) * 2016-10-11 2019-03-05 Palo Alto Research Center Incorporated Method for differentially private aggregation in a star topology under a realistic adversarial model
US10887293B2 (en) * 2018-03-20 2021-01-05 International Business Machines Corporation Key identifiers in an obliviousness pseudorandom function (OPRF)-based key management service (KMS)
US10887088B2 (en) * 2018-03-20 2021-01-05 International Business Machines Corporation Virtualizing a key hierarchy using a partially-oblivious pseudorandom function (P-OPRF)

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103401839A (zh) * 2013-07-02 2013-11-20 河海大学 一种基于属性保护的多授权中心加密方法
WO2017160317A1 (en) * 2016-03-18 2017-09-21 Entit Software Llc Data objects associated with private set intersection (psi)
CN107749865A (zh) * 2017-12-07 2018-03-02 安徽大学 一种基于同态加密的位置隐私查询方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
可验证的安全矩阵行列式计算云外包协议;申银杰;《计算机与现代化》;20150515(第05期);第103-106页 *
同态加密方案及安全两点直线计算协议;巩林明等;《软件学报》;20170324(第12期);第164-182页 *
基于数字签名的轻量级RFID认证协议;刘亚丽等;《计算机科学》;20150215(第02期);第95-99页 *

Also Published As

Publication number Publication date
WO2019204711A1 (en) 2019-10-24
US20220004654A1 (en) 2022-01-06
CN110622165A (zh) 2019-12-27
US11494506B2 (en) 2022-11-08
EP3580685B1 (en) 2021-03-24
EP3580685A1 (en) 2019-12-18

Similar Documents

Publication Publication Date Title
CN110622165B (zh) 用于确定隐私集交集的安全性措施
Tan et al. A survey on proof of retrievability for cloud data integrity and availability: Cloud storage state-of-the-art, issues, solutions and future trends
US8526603B2 (en) Public-key encrypted bloom filters with applications to private set intersection
CN107147720B (zh) 一种云存储数据共享中可追踪的有效公开审计方法和***
EP2465246B1 (en) Layered protection and validation of identity data delivered online via multiple intermediate clients
US20100083001A1 (en) Auditor Assisted Extraction And Verification Of Client Data Returned From A Storage Provided While Hiding Client Data From The Auditor
US10887104B1 (en) Methods and systems for cryptographically secured decentralized testing
CN107423637B (zh) 支持云上电子病历数据可追踪的完整性审计方法
CN104092686A (zh) 基于svm分类器的隐私保护和数据安全访问的方法
Vargas et al. Mitigating risk while complying with data retention laws
Zhang et al. Data security in cloud storage
Wei et al. Efficient dynamic replicated data possession checking in distributed cloud storage systems
Xu et al. An efficient provable secure public auditing scheme for cloud storage.
CN116361823A (zh) 用于隐私保护的区块链的选择性审计处理
Vaidya et al. Data leakage detection and security in cloud computing
CN110445756B (zh) 云存储中可搜索加密审计日志的实现方法
Öksüz Preserving Identity Leakage, Data Integrity and Data Privacy Using Blockchain in Education System
Mohammadi et al. A secure e-tendering system
Abraham et al. Proving possession and retrievability within a cloud environment: A comparative survey
Suwandi et al. A Safe Approach to Sensitive Dropout Data Collection Systems by Utilizing Homomorphic Encryption
Mishra et al. Management Information Systems
CN113630260B (zh) 一种组织身份加解密方法
US20210250337A1 (en) Method and device for matching evaluation of structured data sets protected by encryption
US20230254136A1 (en) Apparatus and methods for validating user data
Zhang et al. SDTA: Secure Decentralized Trading Alliance for Electronic Medical Data

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