一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于选择性公开属性的来源验证的制作方法

2022-04-14 05:01:31 来源:中国专利 TAG:


1.本发明涉及一种用于选择性地公开记录的属性(例如医学属性)的系统。本发明还涉及在这种系统中使用的发布者设备、选择者设备和接收者设备。本发明还涉及对应于相应设备的发布者方法、选择者方法和接收者方法。本发明还涉及一种计算机可读存储介质。


背景技术:

2.针对医学研究和处置的医学数据(诸如基因组数据)的使用在可能的应用方面保持大的希望,但是如果未仔细处理,还携带在数据隐私和安全方面的大的风险。随着越来越多人的医学数据正变得可用,进行医学研究(例如,以找到更好或更定制的处置)的范围正增加。同时,这样的医学研究涉及高度敏感数据,例如基因型和/或表现型数据。在许多情况下,例如,可以使用关于许多不同患者的数据。因此,需要采取适当的措施来防止对这样的数据的未授权的访问和修改。
3.限制医学研究设置中的数据暴露的已知方式是去标识。例如,在已知系统中,医学数据可以从一个或多个来源方收集(例如,来自各种设备或医学试验的数据),并且存储在中央平台处。研究人员可以请求具有特定特性的患者的医学数据。根据法律和全球标准,这样的数据应当去标识。因此,平台可以选择关于一个或多个患者的数据;将数据去标识,例如,选择医学数据(例如,表现型和基因型数据)的子集;并且向研究人员提供去标识的数据。
4.更一般地,去标识(例如,提供在其特殊性和细节中足够有限的个人信息的记录的修订版本使得其可以不再链接到其数据对象)正变得越来越常见,由诸如gdpr的立法推动以及诸如ga4gh信标的医学标准驱动。例如,去标识的数据可以被用于除基因组研究之外的医学研究,但也用在各种其他应用领域(诸如金融服务和广告)中。针对记录更一般地(例如,不包含个人信息),去标识可以被认为是一种类型的选择性公开,例如,让数据提供者决定记录的哪个部分与接受者共享。
5.从去标识的数据的接受者的观点(例如,接收关于患者的去标识的医学数据的研究人员),数据被去标识的事实可能引入由危险分子造成的欺诈或者操纵的风险。由于去标识的数据可能不可链接到其原始源,因此在具有合法源的真实数据与不具有合法源的假数据之间辨别能够是困难的。因此,以这样的方式执行去标识是期望的:接受者(例如支付数据的某人或者出于监管目的检查数据的某人)可以信任去标识的数据是合法的,例如,来源于值得信任的源。例如,当去标识的数据被非法复制时,就会出现一个问题。特别是,如果数据附加了货币价值,例如,如果研究人员为访问数据付费,则可能会有这种复制的动机,例如人为地增加数据量。由于数据是去标识的,因此很难验证两个记录是否真的不同。除了恶意之外,还可能由于错误而出现复制记录,例如编程错误、操作者错误等。期望接收者(例如研究人员)能够验证这一点。
6.更复杂的是,认证措施很难使用。例如,与记录关联的认证标签也可以简化复制。此外,这样的认证标签需要可从去标识的数据中验证,而不是从完整的记录中验证。更复杂
的是,数据的最终接受者(例如,研究人员)可能会与数据发布者直接联系。通常,有一个选择者,例如,发布者和接收者之间的经纪人,例如其将正确数据输送到正确的研究人员。然而,这意味着优选地在已经将数据提供给选择者之后执行去标识。
7.事实上,发布者和接收者之间的直接联系可能是不可能的。例如,发布者可能是不再活跃或已退役的组织或机器。期望一种对数据进行去标识的安全方式,该方式优选地独立于数据的发布者,同时仍允许由数据的接受者进行验证。


技术实现要素:

8.确保真实性可使用常规技术执行,例如通过向数据的所有发起者发送请求以在去标识的数据上数字签出,这证明其对此赞同。然而,这是麻烦、常常昂贵并且可能甚至不可能的,例如,如果发起者是已经退役的组织或机器。因此,需要确保选择性地公开的记录的可信度的更好的自动化技术。
9.为了解决这些和其他问题,提出了如由权利要求定义的用于选择性地公开记录的属性的系统。所述系统可以包括:发布者设备,其用于向用于选择性公开的选择者设备提供记录;选择者设备,其用于向接收者设备选择性地公开记录的部分;以及接收者设备,其用于选择性地获得记录的部分。
10.所述记录可以包括一个或多个属性。在选择性公开中,所述选择者设备可以将要公开的一个或多个属性确定为所述一个或多个属性的子集,并且将要公开的一个或多个数据条目确定为所述多个数据条目的子集。所述记录可以是个人信息记录,例如,属性可以包括关于人的信息。然而,包括其他类型的敏感信息的记录同样是可能的。
11.属性通常来自预定义集合,例如,如果多个记录由所述系统处理,每个记录可以为相同属性集提供值。例如,一个或多个记录可以表示关于人的表现型信息,例如,长度、头发颜色、特定医学条件的诊断等。针对特定记录中的属性的值通常贯穿记录的寿命是固定的。属性通常是数字、分类的固定长度的字符串等等。
12.可以将各种类型的数据链接到签名。例如,数据可以表示记录表示的人的基因组部分,例如单核苷酸多态性(snp),例如如由基因组数据的变体调用格式(vcf)文件的数据行编码的。
13.为了仍然使得能够以安全的方式选择性地公开这两个属性,发明人已经设计了发布者设备以使用接收者设备已知其对应发布者公钥的发布者私钥来生成属性上的数字签名。众所周知,消息上的数字签名允许具有发布者公钥的人确定消息已由持有对应私钥的一方签名。在这种情况下,发布者设备可以在一个或多个属性上生成数字签名,例如在包括一个或多个属性的属性消息上生成数字签名。
14.因此,这些数字签名可以允许建立记录属性的真实性,例如它们的来源。在这种情况下,优选选择数字签名,使得它们有效地允许对它们执行所谓的零知识证明,如稍后讨论的。
15.因此,根据实施例的发布者设备可以确定秘密记录标识符,例如,特定于特定记录的随机生成的标识符,并且可以将其包括在属性消息中并且任选地包括在它为该记录签名的数据消息中。然后发布者设备可以将记录、秘密记录标识符和数字签名提供给选择者设备。秘密记录标识符因此可以用于保证相应数字签名对应于由发布者设备提供的单个记
录。
16.当执行选择性公开时,所述选择者设备现在可以将要公开的属性连同其签名一起提供给所述接受者设备。然而,属性消息还可以包含非公开的属性,但是所述接受者设备将通常仍然需要那些属性来验证所述签名。而且,所述签名包含所述秘密记录标识符,因此所述接受者将通常需要所述秘密记录标识符来验证所述签名。因此如果在两个不同公开中所述接受者从相同记录获得属性的非交叠集,则所述接受者可以基于所述秘密记录标识符将这两个不同部分记录链接到彼此。或者,所述接受者可以使用所述秘密记录标识符将其部分记录链接到由不同接受者接收的其他部分记录。
17.此外,如果属性消息被去标识,对接收者而言变得很难验证是否记录中的任何被复制。有趣的是,如下所述,秘密记录标识符能够对接受者设备保持隐藏。代替地,选择者设备可以被配置为根据秘密记录标识符确定公共记录标识符。公共记录标识符可以与要公开的那一个或多个属性一起提供给接收者设备。对于给定记录公开,公共记录标识符能够与秘密记录标识符是双射的,也就是说,如果对应秘密记录标识符相等,则两个公共记录标识符相等。
18.发明人想出所述选择者设备使用零知识证明向所述接收者证明所提供的值属于由发布者设备签名的单个记录。如从密码学已知的,零知识证明是一方(证明者)可以向另一方(验证者)证明其知道满足某些性质的值的方法。在零知识证明中,有趣地,这在证明者未向验证者公开值的情况下完成。例如,在零知识证明中,验证者知道公钥并且证明者可以向所述验证者证明其知道对应于该公钥的私钥而不向所述验证者揭示私钥。
19.在这种情况下,所述选择者设备可以利用所述接收者设备执行零知识证明,其中,所述选择者设备证明秘密记录标识符、属性消息上的数字签名、以及数字消息上的数字签名的知识。选择者设备还证明他具有对应于公共记录标识符的秘密记录标识符的知识。
20.换句话说,所述选择者设备通常未向所述接收者设备公开所述秘密记录标识符或者任何数字签名,但是相反证明其知道有效标识符和签名。下面提供了高效构建这样的证明的具体范例,但是应注意,一般技术在允许证明满足任意关系的数据的知识的文献中是可用的,使得原则上可以使用任何数字签名方案和任何一般零知识证明系统。
21.关于属性,所述选择者设备可以证明所述属性消息上的数字签名是至少包括要公开的一个或多个属性和所述秘密记录标识符的消息上的数字签名。所述接收者设备可以验证关于其已经从所述选择者设备获得以确定接收到的属性的正确性的一个或多个属性的证明的该部分。所述选择者设备还可以证明数字签名利用对应于发布者公钥的私钥来签名,所述接收者可以使用所述发布者公钥来验证其。通过执行所述证明的该部分作为验证器,因此所述接收者设备可以获得其已经从所述接收者设备获得的属性实际上是由所述发布者设备提供的记录的一部分的保证。
22.有趣的是,选择者设备可以选择公共表密钥,并根据秘密记录标识符以及公共表密钥确定公共记录标识符。例如,选择者设备可以生成表密钥对,例如,私有表密钥和对应的公共表密钥,以获得公共表密钥。有趣的是,不需要私有表密钥。例如,公共表密钥可以用作id的固定点,一个不需要私钥的应用程序。代替于生成表密钥对,选择者设备可以直接获得对应组g或g1中的点,以获得公共表密钥,而无需首选生成私有表密钥。例如,可以将短语散列到组中的点,并将该短语公开给接收者设备。生成随机私钥的一个优点是减少两次错
误使用同一个公共表密钥的变化。
23.公共表密钥可以被提供给接收者设备,并且在零知识证明中用于证明与公共记录标识符和公共表密钥相对应的秘密记录标识符的知识。公共表密钥允许选择者设备控制,对于哪些公开,接受者设备应该能够将记录彼此分开。当且仅当对应的秘密记录标识符相等时,使用相同的表密钥给出对公共记录标识符相等的保证。但是,为不同的表密钥计算的公共记录标识符将不相等,无论对应的秘密记录标识符是否相等。以这种方式,接受者设备可以验证他接收到的一组数据中的复制,但他仍然不能将接收到的数据与在不同场合或由不同接受者设备接收到的数据进行核对。
24.在实施例中,可以由发布者在包括相应数据条目的数据消息上计算单独的数字签名,例如,每个数据条目一个。根据实施例的发布者设备可以在属性消息中包括秘密记录标识符,也可以在它为那个记录签名的一个或多个数据消息中包括秘密记录标识符。这允许根据数据类型使用不同的签名方案。然而,应注意,这种方法是任选的,因为数据消息可以以其他方式链接到记录,例如,通过在属性中包括它们的散列。
25.关于所述数据条目,所述选择者设备可以证明所述数据消息上的数字签名是包括要公开的数据条目并且各自包括所述秘密记录标识符的消息上的数字签名,例如,相应消息各自包括数据条目和所述第二记录标识符。所述接收者设备可以验证关于其已经从所述选择者设备获得以确定其正确性的数据条目的证明的该部分。所述选择者设备还可以证明所述数字签名利用对应于所述发布者公钥的私钥来签名,所述接收者可以使用所述发布者公钥来验证其。通过执行所述证明的该部分作为验证器,因此所述接收者设备可以获得其已经从所述接收者设备获得的数据条目是由所述发布者设备提供的记录的一部分的保证。特别地,所述证明可以保证所述数字签名中的每一个包括所述秘密记录标识符并且因此是由所述发布者设备提供的相同记录的一部分;所述接收者设备可能仍然实际上未获悉所述秘密记录标识符,这防止在不同选择性公开中获得的部分记录之间的链接。
26.因此,提供了一种系统,其中,选择者设备可以在经改进的隐私和/或真实性保证的情况下向接收者设备提供记录的属性。此外,提供了不同设备,各自提供贡献于各种优势的特定特征。例如,所述发布者设备可以确定秘密记录标识符并且将其包括在用于记录的相应数字签名中。所述数字签名优选地具有允许高效的零知识证明在其上执行的类型,下面提供了其范例,但是任何类型的数字签名可以组合适合的零知识证明系统使用。作为另一范例,选择者和接收者设备可以执行零知识证明以向所述接收者设备确定选择性地公开的值属于所述发布者设备的单个记录。
27.由于所讨论的措施,所述接收者设备可以获得所获得的属性属于由所述发布者设备提供的单个记录的保证。仍然,所述接收者设备通常未获悉未公开的属性或数据条目,或者甚至所述记录包括多少数据条目。特别地,尽管所述记录的部分由标识符链接,但是该标识符可以是所述接收者设备未获悉的秘密记录标识符。执行所述选择性公开的负担从所述发布者设备移除,其可能仅需要向所述选择者设备提供其记录一次并且此后可能不需要涉及。所述系统可以特别地适合于大和/或动态数据条目集,因为所述多个数据条目的子集的选择性公开通常涉及所公开的数据条目的数目中而非数据条目的总数中的计算和通信缩放。例如,代替于公开全基因组,可以仅公开相关部分,其中,公开仅在相关部分的数目中缩放。因此,提供了记录的部分的经改进的选择性公开。
28.在实施例中,所述记录的属性可以包括关于人的一个或多个表现型属性。所述记录的数据条目可以包括所述人的一个或多个基因组部分。例如,所述系统可以是用于向针对医学研究的研究人员提供基因组数据的系统。给定基因组数据的灵敏度并且还改进与各种管辖权中的隐私调节的依从性,对于这样的记录而言去匿名化是重要的;同时,记录中的基因组部分的数目可以是大的,例如,记录可以包括所述人的全部序列基因组或其大部分。在这样的情况下,允许如所描述的基因组部分的集合的子集的选择性公开,因此,如本文所描述的有益缩放特性是特别相关的。
29.各种数字签名方案可以被用于针对所述多个数据条目将所述属性消息和所述数据消息签名。如之前所讨论的,原则上可以使用任何数字签名方案。现在讨论了各种特别有利的选项。
30.各种实施例基于匿名证书。匿名证书本身在本领域中被称为用户通过其属性(例如,用户的年龄和来源国)的一个或多个上的证书发布者获得证明的方式。用户可以向第三方匿名示出证书以证明他/她满足特定性质,例如,年龄是至少18,而不揭示允许链接回到用户的信息。匿名证书方案的属性通常被假定为数值的;其他类型的属性可以以各种方式编码,例如,文本属性可以通过向文本应用单向函数等编码为数值属性。
31.公开了这样的匿名证书方案的范例,例如,在j.camenisch等人的“signature schemes and anonymous credentials from bilinear maps”(proceedings crypto

04)(在涉及的匿名证书方案的描述的范围内通过引用并入本文)并且在j.camenisch等人的“an accumulator based on bilinear maps and efficient revocation for anonymous credentials”(proceedings pkc

09)(在涉及的匿名证书方案的描述的范围内通过引用并入本文)。
32.有趣地,在实施例中,在如本文呈现的属性消息上的数字签名包括利用所述发布者私钥签名的匿名证书的意义上,匿名证书可以针对本文呈现的系统重新目的化。所述匿名证书可以具有所述记录和所述秘密记录标识符的一个或多个属性作为属性。实际上,“相反”使用匿名证书。传统地,用户和发布者运行所述用户获得关于所述发布者可能不知道其值的属性的证书的发布协议;在由第三方请求证明性质时,所述用户使用发布的匿名证书。相反,在本情况下,不需要这样的发布协议,并且所述发布者设备可以直接向所述选择者设备提供证书。不同于在常规情况下,保持证书的选择者设备通常是证书不相关的中间方,例如,选择者设备可以保持关于不同实体的不同记录,例如其不涉及的人。所述选择者设备然后可以选择性地公开这些记录的部分和/或从其自己的意志当中示出或证明属性的性质。不管这些差异,有趣地,匿名证书仍然可以用作本系统中的构建块。
33.在一些实施例中,用于所述数据消息的数字签名方案与用于所述属性消息的数字签名方案相同,例如,用于数据条目的数字签名可以是具有所述秘密记录标识符和所述数据条目的匿名证书,或者应用到所述数据条目的单向函数作为属性。这导致特别简单的设计。
34.在各种实施例中,所述选择者设备获得多个记录,例如,来自单个发布者设备的多个记录、来自多个发布者设备的多个记录等。因此,所述选择者设备可以充当用于向接收者设备提供对所述多个记录的访问的系统,例如,选择并且向接受者(例如,想要对基因组数据执行研究的医学研究人员)提供数据的集中式访问点。
35.在实施例中,所述发布者设备被配置为获得记录查询并且根据所述记录查询选择要公开的多个记录中的一个或多个。例如,所述接收者设备可以提供记录查询,或者可以以其他方式确定记录查询。通常,所述记录查询为记录提供要满足的一个或多个条件。例如,所述发布者设备可以选择满足所述条件的所有记录、满足所述条件的前x个记录、满足所述条件的x个随机记录等等。例如,条件可以是属性上的条件,例如,所述条件可以说明属性等于特定值或另一属性、所述属性位于某个范围内等等。条件还可以是数据条目上的条件,例如,包含某些数据的数据条目的存在,例如,具有特定突变的基因组。所述发布者设备然后可以选择性地公开针对选定的记录的每个当前记录的属性,例如,通过重复对要公开的属性的确定、对当前记录的属性的提供、以及对针对一个或多个选定的记录的每个当前记录的零知识证明的执行。以这种方式,接收者设备可以接收针对其特定使用相关的记录。
36.在实施例中,所述选择者设备使用针对当前记录的零知识证明向所述接收者设备证明当前记录满足所述记录查询。例如,记录查询可以包括未提供到所述接收者设备的属性上的条件,例如,年龄》65。所述零知识证明可以被用于证明这样的条件保持。还能够证明自身未提供到所述接收者设备的数据条目的性质。相对于所公开的属性的条件通常不需要在零知识中证明,因为所述接收者知道其。证明全记录查询也不是严格必要的,例如,出于效率原因,仅可以证明所述记录查询的最相关条件。有趣地,借助于零知识证明,所述接收者设备可以接收其接收的记录满足所述记录查询的保证,例如,年龄大于65,同时不获悉细节,例如,确切年龄。因此,可以获得数据最小化和真实性的特别有益的组合。
37.在实施例中,所述选择者设备还获得例如从所述接收者设备接收或以其他方式确定的数据条目查询。所述选择者设备可以根据所述数据条目查询来确定要公开的一个或多个数据条目。例如,所述数据条目查询可以指定要满足的数据条目的一个或多个条件,可以指定要包括的一个或多个特定数据条目,例如,特定位置处的基因组数据等。这样一来,能够控制哪些数据条目要提供。类似方法可以被用于确定哪些属性要公开。
38.当然,控制哪些记录和/或记录的部分要公开的记录查询和/或数据条目查询的使用不排除所述选择者设备在要公开给接收者设备的数据上执行检查的可能性,例如,所述选择者设备可以执行要公开给接收者设备的记录集的属性满足某些数据最小化性质(例如,诸如k匿名的隐私性质)的检查。
39.在实施例中,所述零知识证明可以涉及所述选择者设备,其向所述接收者设备提供对所述秘密记录标识符的承诺并且证明关于所述承诺的所述数字签名的知识。例如,所述承诺可以是如本领域中已知的佩德森型承诺。向所述接收者设备提供评论可以允许所述接收者设备高效地建立:通过提供那些数字签名中的每一个包括与所述评论相同的秘密记录标识符将相同秘密记录标识符包括在相应数字签名中。
40.在实施例中,所述零知识证明可以是由所述选择者设备确定和发送并且由所述接收者设备接收和验证的非交互式零知识证明。这可以降低需要的通信量,和/或允许当双方不同时在线时的数据传送。
41.本文所描述的技术可以应用在宽范围的实际应用中。这样的实际应用包括用于在医学或金融背景下例如向研究人员提供去匿名化数据集的平台。例如,这样的平台可以由许多医院或者外部服务提供商操作。更一般地,需要记录(特别地包含灵活或大数据条目集的记录)的部分的选择性公开的任何类型的应用可以受益于本文所描述的技术。
42.方法的实施例可以在计算机上被实施为计算机实施的方法或者在专用硬件或者在两者的组合中。用于方法的实施例的可执行代码可以被存储在计算机程序产品上。计算机程序产品的范例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,所述计算机程序产品包括用于当所述程序产品在计算机上运行时执行方法的实施例的计算机可读介质上存储的非瞬态程序代码。
43.在实施例中,所述计算机程序包括适于当所述计算机程序在计算机上运行时执行方法的实施例的所有步骤的计算机程序代码。优选地,所述计算机程序被实现在计算机可读介质上。
44.本发明的另一方面提供一种使所述计算机程序可用于下载的方法。该方面当所述计算机程序被上载到例如apple的appstore、google的playstore或者microsoft的windowsstores中时并且当所述计算机程序可用于从这样的商店下载时被使用。
附图说明
45.将仅通过范例参考附图描述本发明的另外的细节、方面和实施例。附图中的元素为了简单和清晰来图示而不一定按比例绘制。在附图中,对应于已经描述的元素的元素可以具有相同附图标记。
46.在附图中:
[0047]-图1a示意性地示出了不涉及零知识证明的选择性公开系统的范例;
[0048]-图1b示意性地示出了选择性公开系统的实施例的范例;
[0049]-图2示意性地示出了发布者设备的实施例的范例;
[0050]-图3示意性地示出了选择者设备的实施例的范例;
[0051]-图4示意性地示出了接收者设备的实施例的范例;
[0052]-图5示意性地示出了发布者方法的实施例的范例;
[0053]-图6示意性地示出了选择者方法的实施例的范例;
[0054]-图7示意性地示出了接收者方法的实施例的范例;
[0055]-图8示意性地示出了根据实施例的具有包括计算机程序的可写部分的计算机可读介质,
[0056]-图9示意性地示出了根据实施例的处理器系统的表示。
[0057]
附图标记列表:
[0058]
000、100选择性公开系统
[0059]
010、110、210发布者设备
[0060]
011、111、311选择者设备
[0061]
012、112、412接收者设备
[0062]
130、131、132存储器
[0063]
140、141、142处理器
[0064]
150、151、152网络接口
[0065]
160计算机网络
[0066]
070、170、270发布者私钥
[0067]
071、171、471发布者公钥
[0068]
072、172、272、372记录
[0069]
173、273、373秘密记录标识符
[0070]
174、374、474零知识证明
[0071]
175、275、375公共记录标识符
[0072]
075所公开的属性上的数字签名
[0073]
180、280、380属性消息上的数字签名
[0074]
081-084、181-184、281-282、381-384、483-484属性
[0075]
241标识符生成单元
[0076]
242属性签名单元
[0077]
341选择单元
[0078]
342证明单元
[0079]
441验证单元
[0080]
800计算机可读介质
[0081]
810可写部分
[0082]
820计算机程序
[0083]
910(一个或多个)集成电路
[0084]
920处理单元
[0085]
922存储器
[0086]
924专用集成电路
[0087]
926通信元件
[0088]
930互连
[0089]
940处理器系统
具体实施方式
[0090]
尽管本发明容许许多不同的形式的实施例,但是在附图中示出并且在本文中将详细描述一个或多个特定实施例,应理解本公开要被认为是本发明的示范性原理而不旨在将本发明限于所示和所描述的特定实施例。
[0091]
在以下中,为了理解,在操作中描述了实施例的元素。然而,将显而易见,相应元素被布置为执行被描述为由其执行的功能。
[0092]
此外,本发明不限于实施例,并且本发明位于每个和每一个新颖特征或者上文所描述或者在相互不同的从属权利要求中记载的特征的组合中。
[0093]
图1a示出了用于选择性地公开记录的属性的系统000的范例,该系统不使用权利要求所定义的关于属性的签名或零知识证明。
[0094]
在图中示出了希望使得选择者设备011(例如,基因组平台)能够选择性地公开记录072的部分的发布者设备010。图中所示的特定记录072包括针对预定义属性集081-082(例如,表现型和/或基因型数据)的值。发布者设备010向选择者设备011提供记录。
[0095]
当选择者设备011想要向接收者设备102选择性地公开记录011的部分时,选择者设备可以选择属性081-082中的一个或多个,在这种情况下,属性083和084,以公开给接收者设备012。接收者设备012可以接收要公开的属性083、084。
[0096]
尽管步骤至此提供选择性公开,例如,仅记录的一部分由接收者设备012获得,但是尚未提供真实性,例如,接收者设备012未获得接收到的属性来源于受信任的发布者设备010、和/或接收到的属性属于同一记录(例如,全部指代同一人)的保证。为了获得这样的保证,可以采用数字签名075。在该范例中,数字签名075可以是常规签名,例如,rsa或ecdsa签名。在图中并且贯穿本说明书采用的注释s(x;y)可以指代具有消息y上的私钥x的签名。在公开时,发布者设备010可以向例如由选择者设备011提示的接收者设备012提供要公开的属性上的利用发布者私钥070签名的数字签名075。接收者设备012可以相对于对应于发布者私钥070的发布者公钥071验证数字签名075。数字签名通常没有消息恢复,例如,消息未从签名导出并且相反签名和消息一起相对于公钥071来验证。
[0097]
尽管以上系统可以给选择性公开提供真实性保证,但是其具有发布者设备010需要涉及在每个选择性公开中的不期望的特性。这是麻烦、常常昂贵、并且有时不可能的,例如,发布者设备010或其组织可能不再存在。因此,下面解决的问题是如何利用可比较的真实性保证但是以发布者设备不需要涉及在选择性公开中的这样的方式来执行选择性公开。另一个问题是不诚实或粗心的选择者设备011可能复制向012公开的记录中的一些。例如,可能会多次公开去标识的记录072。去标识后,设备012不可能验证复制。即使两个记录相同,这也可能是由于去标识导致的。特别是,当公开很少属性和/或涉及大量记录时,两个或更多个记录可能非常正确地完全相同。清除此类相同的记录会扭曲可能从数据中导出的推论。然而,不移除复制记录会带来同样的风险。
[0098]
图1b示意性地示出了用于选择性地公开记录172的属性的系统100的实施例的范例。系统100可以包括发布者设备100、选择者设备111、和/或接收者设备112。
[0099]
发布者设备110可以用于向用于选择性公开的选择者设备111提供记录172。发布者设备110可以包括处理器130和存储器140。存储器140可以用于数据和/或指令存储。例如,存储器140可以包括处理器130被配置为作用于其的软件和/或数据。存储器140还可以存储发布者私钥170,其与对应的发布者公钥171形成公钥-私钥对。存储器140还可以存储记录172。记录172可以包括一个或多个属性181-182。仅通过范例,示出了两个属性。处理器130可以被实施为一个或多个处理器电路,例如微处理器、asic、fpga等。存储器140可以包括可由处理器130执行的计算机程序指令。处理器130可能连同存储器140一起根据发布者设备的实施例来配置。发布者设备110还可以包括通信接口150,其被布置为与其他设备(特别地选择者设备111)通信。例如,通信接口可以包括连接器,例如,有线连接器,例如,以太网连接器,或无线连接器,例如,天线,例如,wi-fi、4g或5g天线。通信接口还可以是去往内部或者外部数据存储设备、键盘、应用接口(api)等的存储接口。
[0100]
发布者设备110可以被配置为确定秘密记录标识符173。发布者设备110还可以被配置为在一个或多个属性181-182和秘密记录标识符173上使用发布者私钥170生成数字签名180。例如,处理器130可以将签名算法应用于包括一个或多个属性181-182和秘密记录标识符173的属性消息。
[0101]
发布者设备110可以被配置为向选择者设备111提供记录172、秘密记录标识符173、属性消息上的数字签名180。
[0102]
如图所示并贯穿附图使用的,s1(x;y)可以被用于指代使用私钥x在消息y上(例如,在属性消息上)签名的数字签名。数字签名通常没有消息恢复,例如,可以使用与私钥对
应的公钥与消息一起验证数字签名。
[0103]
选择者设备111可以被配置用于向接收者设备112选择性地公开记录172的属性。选择者设备111可以包括处理器131和存储器141。存储器141可以用于数据和/或指令存储。例如,存储器141可以包括处理器131被配置为作用于的软件和/或数据。存储器141还可以存储记录172、秘密记录标识符173、属性消息上的数字签名180。处理器131可以被实施为一个或多个处理器电路,例如微处理器、asic、fpga等。存储器141可以包括可由处理器131执行的计算机程序指令。处理器131可能连同存储器141一起根据选择者设备的实施例来配置。选择者设备111还可以包括通信接口151,其被布置为与其他设备(特别地发布者设备110和接收者设备112)通信。例如,通信接口可以包括连接器,例如,有线连接器,例如,以太网连接器,或无线连接器,例如,天线,例如,wi-fi、4g或5g天线。通信接口还可以是去往内部或者外部数据存储设备、键盘、应用接口(api)等的存储接口。
[0104]
选择者设备111可以被配置为获得记录172、秘密记录标识符173和属性消息上的数字签名180。选择者设备111可以被配置为使用发布者公钥171来验证数字签名180。这不是必需的,因为如果签名180不正确,那么稍后当接收者设备112验证签名180时这也将被发现。
[0105]
选择者设备111还可以被配置为将要公开的一个或多个属性确定为一个或多个属性181-182的子集。仅通过范例,该附图示出了要公开的两个属性183-184。选择者设备111可以被配置为向接收者设备112提供要公开的一个或多个属性183、184。
[0106]
选择者设备111还可以被配置为根据秘密记录标识符173确定公共记录标识符175。公共记录标识符是以这样的方式根据秘密记录标识符计算的:使得当且仅当两个对应的秘密记录标识符不同时两个公共记录标识符不同。因此,人们可以通过比较它们的公共记录标识符来验证去标识的记录是或不是一些其他去标识的记录的副本。
[0107]
有趣的是,选择者设备可以被配置为生成公共表密钥。生成公共表密钥也可以通过生成私有表密钥来完成,例如,以表密钥对的形式,但这不是必需的。公共表密钥与如向接收者设备公开的特定属性表相关联。可能会发生来自相同记录的信息在其他场合被公开给这个或其他接收者设备的情况,并且能够期望避免两种公开可能被拼凑在一起。例如,在针对第一接收者设备的第一公开中可以公开属性1和2,而在针对第二接收者设备的第二公开中可以公开属性1和3。如果两个接收者设备在哪里串通,则重建其中属性1、2和3再次联合的记录能够是可能的。作为结果,隐私可能受到侵犯。如果记录具有唯一的记录标识符,则这种记录组合特别容易。为了避免这种可能性,可以为应该可组合的数据的每次公开选择新的表密钥。公共记录标识符可以根据秘密记录标识符和公共表密钥来确定。例如,确定公共记录标识符可以包括根据秘密记录标识符将双线性图应用到例如公共表密钥和组点。
[0108]
可以将公共表密钥提供给接收者设备。不同的表密钥的效果是,两次数据公开中的相同的秘密记录标识符会有不同的对应公共记录标识符,从而避免了在公共记录标识符的基础上组合数据。
[0109]
另一方面,如果在某些情况下能够期望可以跨不同的公开检查复制项,则可以省略表密钥,或者可以在多个公开中使用相同的表密钥。
[0110]
选择者设备111还可以被配置为利用接收者设备112执行零知识证明174。零知识证明此处被示出为消息从选择者设备111发送到接收者设备112,例如,非交互式零知识证
明,但是这不是必要的,例如,零知识证明可以包括多个消息在各方之间交换,例如,交互式零知识证明。
[0111]
如在该附图中并且贯穿说明书所使用的,注释zk(x;y)指代值x满足关于值y的特定性质的零知识证明。例如,值x被包括在零知识证明的所谓的证人中。证明者通常使用值x执行证明并且验证器通常使用值y验证证明。
[0112]
在零知识证明中,选择者设备可以证明以下各项的知识:
[0113]-秘密记录标识符173;
[0114]-属性消息上的数字签名180作为至少包括要公开的一个或多个属性183-184和秘密记录标识符的消息上的数字签名,其是利用对应于发布者公钥171的私钥来签名的。
[0115]
接收者设备112可以被配置用于从选择者设备111选择性地获得记录172的属性183-184。接收者设备112可以包括处理器132和存储器142。存储器142可以用于数据和/或指令存储。例如,存储器142可以包括处理器132被配置为作用于的软件和/或数据。存储器142还可以存储发布者公钥171。处理器132可以被实施为一个或多个处理器电路,例如微处理器、asic、fpga等。存储器142可以包括可由处理器132执行的计算机程序指令。处理器132可能连同存储器142一起根据接收者设备的实施例来配置。接收者设备112还可以包括通信接口152,其被布置为与其他设备(特别地选择者设备111)通信。例如,通信接口可以包括连接器,例如,有线连接器,例如,以太网连接器,或无线连接器,例如,天线,例如,wi-fi、4g或5g天线。通信接口还可以是去往内部或者外部数据存储设备、键盘、应用接口(api)等的存储接口。
[0116]
接收者设备112可以被配置为从选择者设备111获得一个或多个属性183-184。接收者设备112还可以被配置为关于所获得的值183-184和发布者公钥174利用选择者设备111执行零知识证明以确定所获得的值183-184属于发布者设备110的记录172。
[0117]
系统100的各种设备通过计算机网络160彼此通信。计算机网络可以是因特网、内联网、lan、wlan等。计算机网络160可以是因特网。计算机网络可以是全部或部分有线的,和/或全部或部分无线的。例如,计算机网络可以包括以太网连接。例如,计算机网络可以包括无线连接,诸如wi-fi、zigbee等。计算机网络160可以包括额外元件,例如,路由器、集线器。
[0118]
图1的各种设备可以具有相应用户接口,其可以包括公知的元件,诸如一个或多个按钮、键盘、显示器、触摸屏等。例如,接收者设备112的用户接口可以被布置用于容纳用于获得满足特定记录查询的记录的部分的用户交互。
[0119]
有趣的是,系统100实现了系统000不能实现的。选择者设备111能够例如通过仅将记录的部分提供给接收者设备112来对记录进行去标识。然而,接收者设备可以验证它接收到的记录的部分实际上起源于发布者设备110,即,接收者设备可以验证接收到的数据的真实性和完整性。此外,接收者设备112可以通过验证公共记录标识符中的任何是否复制或者是否不能通过零知识证明验证公共记录标识符中的任何来验证去标识的记录中的一些是否是彼此的复制。此外,发布者设备110仅需要在它向选择者设备111提供数据的时刻涉及。不需要发布者稍后的涉及以向接收者设备112证明真实性、完整性或没有重复。
[0120]
图2示意性地示出了用于向用于选择性公开的选择者设备提供记录(例如,用于图1b的系统100中)的发布者设备210的实施例的范例。
[0121]
图2示意性地示出了可以是发布者设备210(未分离地示出)的处理器的功能单元的功能单元。例如,图2可以被用作处理器的可能功能组织的蓝图。例如,图2中所示的功能单元(例如,单元241-243)可以全部或者部分地被实施在被存储在设备210处(例如,在设备210的电子存储器中)并且由设备210的微处理器可执行的计算机指令中。在混合实施例中,功能单元部分地被实施在硬件中(例如,作为协处理器),并且部分地在设备210上存储并且运行的软件中。出于解释的目的,图2还示出了可以在其操作的各种阶段处由设备210存储的各种元件。
[0122]
附图中所示的是包括一个或多个属性281-282的记录272。例如,记录272可以是基因组记录。在这种情况下,属性281-282可以包括人的表现型属性,例如年龄、bmi、指示对一种或多种医学状况的诊断的标志等中的一项或多项。在该范例中,属性可以是整数或编码为整数的其他类型的值。整数通常来自值n由所使用的(一个或多个)签名方案定义的范围0,

,n-1,例如,如下所述。
[0123]
代替于直接将信息编码到属性中,人们替代地可以对属性中的信息的散列进行编码。这以相同的方式起作用,不同之处是如果该信息被包括在属性的已公开部分中,则该信息能够被公开。接收者设备然后可以计算来自信息的散列并且计算签名确实是在正确的散列上计算的。在这种情况下,散列用作公开的属性。
[0124]
链接更大量数据的备选方式是将它们包括在单独的消息中,例如数据消息中。数据消息然后可以被签名并链接到秘密记录标识符。然后可以扩展零知识证明以证明数据消息上的签名确实链接到对应于公共记录标识符的秘密记录标识符。这能够是与用于属性的签名s1不同类型的签名s2。
[0125]
作为说明性范例,可以方便地包括在上述两种方式中的任何一种中的较大量数据是基因组信息。例如,记录272的数据条目可以表示人的基因组的单核苷酸多态性(snp)。例如,记录272可以从变型调用格式(vcf)文件导出或由变型调用格式(vcf)文件编码。如在生物信息学中已知的,vcf文件可以被用于关于参考基因组存储基因序列变化。任选地,vcf文件还可以存储表现型信息。下面示出了vcf文件的部分:
[0126][0127]
例如,针对对应于如上文所图示的vcf文件的记录,记录的数据条目可以对应于vcf文件的行。例如,数据条目可以是表示vcf文件的行的字符串。vcf文件的散列可以作为
属性包括在内。备选地,vcf文件可以签名并链接到秘密记录标识符。
[0128]
在图中还示出了标识符生成单元241。标识符生成单元241可以生成秘密记录标识符273。通常,秘密记录标识符273是例如来自与属性281-282相同的范围0,

,n-1的整数。有益的是,随机地根据大域生成秘密记录标识符273,使得其对于其他设备不可预测并且使例如由其他设备生成的标识符之间的冲突概率最小化。例如,标识符生成单元241可以随机地根据至少2
30
、至少2
62
、或2
126
个可能值生成秘密记录标识符273。
[0129]
还示出了发布者私钥270,其可以由发布者设备210生成或以其他方式获得。发布者私钥270可以是可与用于生成下文所讨论的数字签名280的数字签名方案兼容的任何种类的秘密密钥。
[0130]
还示出了属性签名单元242。属性签名单元242可以使用发布者私钥270生成属性消息上的数字签名280。属性消息可以包括一个或多个属性281-282和秘密记录标识符273。如其他地方所讨论的,尽管原则上可以使用任何签名方案s1,但是特别有益的是数字签名280是匿名证书;换句话说,对于签名生成而言是生成匿名证书的算法。秘密记录标识符273可以用作匿名证书的属性。
[0131]
作为具体范例,匿名证书方案如下:给定属性m的有序列表,签名可以是四元组(c,s,γ,σ),其中,属性签名单元242随机生成值c、s和γ、并且将σ计算为:
[0132][0133]
其中x是秘密密钥273,其相关联的公钥y=h
x
被接收者设备信任。h可能是素数阶q的组g的一组生成器hi,并且对于和h0也类似。此处,γ273是秘密记录标识符,其在这种表示法中被认为是签名的部分。有趣的是,可能是用于将秘密记录标识符γ包括到签名中的组g的生成器。证明可以改编自上文提到的文章“signature schemes and anonymous credentials from bilinear maps”和“an accumulator based on bilinear maps and efficient revocation for anonymous credentials”。
[0134]
发布者设备210还可以向选择者设备提供记录272、秘密记录标识符273和属性消息上的数字签名280,例如,经由通信接口(未示出)发送它们。
[0135]
尽管到目前为止,已经关于单个记录272讨论了签名过程,但是相同的单元241-243也可以用于为多个记录产生相应的秘密标识符和签名集。而且,发布者设备210可以通过使单元242、243适当地确定新的属性消息签名来更新记录的属性。如果使用单独的数据,例如基因组信息,那么这些数据也可以提供给选择者。
[0136]
图3示意性地示出了用于向接收者设备选择性地公开记录372的属性(例如,用于使用在图1b的系统100中)的选择者设备311的实施例的范例。
[0137]
图3示意性地示出了可以是选择者设备311(未分离地示出)的处理器的功能单元的功能单元。例如,图3可以被用作处理器的可能功能组织的蓝图。例如,图3中所示的功能单元(例如,单元341-342)可以全部或者部分地被实施在被存储在设备311处(例如,在设备311的电子存储器中)并且由设备311的微处理器可执行的计算机指令中。在混合实施例中,功能单元部分地被实施在硬件中(例如,作为协处理器),并且部分地在设备311上存储并且运行的软件中。出于解释的目的,图3还示出了可以在其操作的各个阶段处由设备311存储
的各种元件。
[0138]
附图中示出了包括一个或多个属性381-382的记录372;秘密记录标识符370;使用发布者私钥生成的属性消息上的数字签名380,其中,属性消息包括一个或多个属性381-382和秘密记录标识符370。例如,记录、秘密记录标识符和数字签名可以对应于图2的那些。例如,该数据可以从发布者设备获得。
[0139]
还示出了选择单元341。选择单元341可以将要向接收者设备公开的一个或多个属性确定为一个或多个属性381-382的子集。在该特定范例中,选择了属性383、384。可以基于例如由接收者设备提供的数据条目查询来确定要公开的属性,例如,数据条目查询可以指示要公开的特定数据条目和/或用于选择数据条目的准则,并且类似地针对属性。选择单元341可以额外地基于不是由接收者设备提供的准则和/或检查来执行选择,例如,由发布者设备与记录一起提供的隐私策略。
[0140]
例如,记录372可以包括个人识别信息,例如可以潜在地用于识别特定人的数据。范例包括全名、社会安全号码、驾驶执照号码、银行帐号、护照号码和电子邮件地址。这样的信息可以在将信息发送到接收者设备之前从记录372中移除。记录372还可以包括尽管不是直接个人识别但可能对隐私敏感的属性,例如年龄、体重等。如果不需要这样的信息,可以避免将这些属性发送到接收设备。
[0141]
此外示出了证明单元342。证明单元342可以利用接收者设备执行零知识证明374。如在密码学中已知并且在其他地方所讨论的,零知识证明用于让证明者向验证器证明语句。零知识证明优选地满足完整性、坚固性和零知识的性质。
[0142]
完整性意指如果语句是真的,那么遵循协议的证明者将说服遵循协议的验证器。坚固性意指如果语句是假的,那么欺诈证明者不可能能够说服遵循协议的验证器。在知识的证明的情况下,完整性还可能意指不仅语句是真的,而且证明者知道在语句中发生的某些值,被称为证人。坚固性通常保持直到欺诈验证器成功说服验证器的某个坚固性误差;然而,零知识证明可以包括降低坚固性误差的协议的多个实例。零知识意指验证器未从除语句是真的事实之外的证明获悉信息。零知识可以是计算和/或统计的。
[0143]
在这种情况下,选择者设备可以使用零知识证明374来证明以下各项的知识:秘密记录标识符373;属性消息上的数字签名380作为至少包括要公开的一个或多个属性383、384和秘密记录标识符373的消息上的数字签名,其是利用对应于发布者公钥的私钥来签名的。换句话说,零知识证明的证人可以包括秘密记录标识符和签名;相对于其证明其有效性的公共值可以包括属性383、384、以及发布者公钥。
[0144]
特别地,为了证明签名380包括秘密记录标识符373而不向接收者设备公开秘密记录标识符,证明单元342可以构建秘密记录标识符的承诺(例如,佩德森型承诺),并且将其提供给接收者设备。因此,零知识证明374可以证明相同秘密记录标识符373被包括在每个签名中并且在承诺中。针对各种种类的零知识证明和签名方案,这可以是证明共同秘密标识符的存在的高效方式。
[0145]
许多不同类型的零知识证明在本领域中已知并且可以容易应用,例如,诸如schnorr协议的σ-协议;例如借助于fiat-shamir启发法从交互式零知识协议获得的非交互式零知识证明;零知识简洁非交互式知识论证(zk-snark)等。
[0146]
然而,特别有益的是,如果不是依赖于基因技术,则使用允许签名的知识的高效证
明的属性的签名方案s1。例如,可以有益的是,使签名方案s1基于匿名证书方案(例如,上文所讨论的camenisch等人的方案),因为其允许高效的零知识证明被执行。例如,基于将组元素求幂的原理的签名的使用也是特别高效的,因为这再次允许高效的零知识证明。
[0147]
现在详细讨论基于属性签名380的特别有益的实施方式。camenisch-stadler表示法如j.camenisch等人,“an accumulator based on bilinear maps and efficient revocation for anonymous credentials”(proceedings pkc’09)中所述被使用。属性签名380可以具有以下形式:
[0148][0149]
应注意到,零知识证明此处被呈现为交互式证明,但是具有以下理解:可以使其为非交互式的,例如,使用fiat-shamir启发法。证明还可以扩展以证明关于属性值的性质,例如,以证明记录满足记录查询,例如,30≤bmi≤40。关于多个记录的证明也可以并行执行和/或使用已知技术组合为一个非交互式零知识证明。
[0150]
详细地,在该范例中,证明单元342可以计算记录m的公共记录标识符。例如,他可以选择私有表密钥a并计算该表的公共表密钥k=ha。对于该特定的表,公共/私有表密钥对可能是唯一的。公共表密钥也可以通过其他方式被选择为g1中的随机点,例如通过随机生成点的系数,例如通过散列短语,例如公共短语。对于去标识的数据集的每个行,创建者现在可以生成唯一公共记录标识符id,如下:此外,在该范例中,证明单元342可以构建可以提交给接收者设备的多个承诺:
[0151]
针对生成器和随机生成的值t,针对秘密记录标识符γ;
[0152]
和随机生成的值开;以及
[0153][0154]
在零知识证明的第一部分中,证明单元342可以证明以下知识:签名380,作为包括要公开的一个或多个属性和对应于上文所描述的承诺x的秘密记录标识符的消息上的签名,并且其利用对应于公钥y=h
x
的私钥x来签名。设置mult=ρc和tmp=开
·
c,零知识证明的第一部分可以用于证明:
[0155][0156][0157]
此处,是由证明单元342生成并提供给接收者设备的具有随机值p的签名σ的盲化。对公开的属性求和,而对未公开的属性求和,任选地编码为散列等。
[0158]
在零知识证明的第二部分中,可以证明秘密记录标识符对应于公共记录标识符,例如,通过证明:
[0159][0160]
承诺的效果是对应的数据对接收设备盲化,但选择者设备绑定到下层数据的特定
值。无需公开承诺。在上面,e被用于指代密码配对,例如,type-3椭圆曲线配对,诸如如本领域中已知的256位barreto-naehrig(bn)曲线上的配对。bn曲线上的配对可以形式上指代如下:e(g1×
g2)
→gt
。上文所使用的各种生成器(例如,h的生成器、引入生成器等)可以是在我的袖子中没有东西(nothing-up-my-sleeves)方法中生成的g1的生成器,例如,散列g1的基础生成器直到遇到点。
[0161]
在另外的零知识证明中,可能明确证明:
[0162][0163]
例如,可以证明承诺x中的秘密标识符的知识。有趣的是,但这不是必需的,如上面提到的零知识证明的第二部分中使用x一样。上述证明可以基于例如在美国专利申请us4995082a中公开的schnorr证明系统。有趣的是,上述证明可能偏离camenisch的零知识证明
[0164]
尽管以上流程已经针对单个记录来讨论,但是将理解,选择者设备311可以容易地适于其存储多个记录和相关联的信息(例如,来自多个发布者设备)的情况。以这样的方式,选择者设备311还可以选择性地公开多个记录的部分。例如,如还在其他地方所讨论的,选择者设备311可以获得记录查询并且根据记录查询来选择多个记录中的一个或多个。由单元341和343执行的步骤可以针对相应的选定的记录重复以执行针对相应记录的选择性公开。
[0165]
有趣地,针对记录的零知识证明然后还可以被用于证明当前记录满足记录查询。例如,记录查询可以包括属性上的条件,例如,年龄》65,40≤年龄《65等。例如,在使用调整的camenisch匿名证书作为签名380的特定情况下,可以容易地使用用于证明关于这样的证书的属性的性质的已知技术。
[0166]
图4示意性地示出了用于从选择者设备选择性地获得记录的属性(例如,用于图1b的系统100中)的接收者设备412的实施例的范例。
[0167]
图4示意性地示出了可以是接收者设备412(未分离地示出)的处理器的功能单元的功能单元。例如,图4可以被用作处理器的可能功能组织的蓝图。例如,图4中所示的功能单元(例如,单元441)可以全部或者部分地被实施在被存储在设备412处(例如,在设备412的电子存储器中)并且由设备412的微处理器可执行的计算机指令中。在混合实施例中,功能单元部分地被实施在硬件中(例如,作为协处理器),并且部分地在设备412上存储并且运行的软件中。出于解释的目的,图4还示出了可以在其操作的各种阶段处由设备412存储的各种元件。
[0168]
在图中示出了存储在接收者设备412的存储器中的发布者公钥471。记录的部分的真实性可以相对于该公钥建立。还示出了记录的属性483、484,在该范例中两个。接收者设备412可以从选择者设备接收该信息,如其他地方所讨论的。
[0169]
在图中还示出了验证单元441。验证单元441可以关于所获得的值483、484和发布者公钥471利用选择者设备执行零知识证明。此处示出了验证单元441可以非交互式地验证的非交互式零知识证明474,但是相反证明也可以是交互式的,例如,利用生成挑战并且将其提供到选择者设备的验证单元441。如从证明者的视角所讨论的,证明可以是关于选择者设备311的。证明474可以确定所获得的值483-484属于对应于发布者公钥481的发布者设备的记录。因此,选择者设备可以证明以下知识:秘密记录标识符;至少包括要公开的一个或
多个属性483-484和秘密记录标识符的消息上的数字签名,其是利用对应于发布者公钥471的私钥来签名的,其是利用对应于发布者公钥471的私钥来签名的。
[0170]
可以对应于选择者设备用来证明上述陈述的零知识证明系统来执行零知识证明的验证。在该特定范例中,关于选择者设备311讨论的多个部分的证明可以如上所述被使用。例如,接收者设备412可以从选择者设备接收对秘密标识符的承诺。如上所述,选择者设备然后可以证明秘密记录标识符和属性483-484上的签名的知识,验证单元441验证该知识。
[0171]
尽管附图中未明确示出,但如前所述,如本文所述的选择性公开技术可以应用于可能来自不同发布者设备的多个记录,在这种情况下,验证单元442可以针对每个公开的记录重复上述流程。接收者设备还可以向接收者设备提供记录查询以影响要获得什么记录。
[0172]
因此,通过上面讨论的各种措施,接收者设备412可以获得其需要的信息,例如属性483、484和关于公钥471的适当真实性保证,同时不需要访问其他敏感材料,例如未公开的属性,秘密记录标识符或发布者私钥。
[0173]
验证单元441还可以被配置为识别接收到的公共记录标识符中的两个或更多个是否重复。如果接收者设备412接收到两个具有相同公共记录标识符的去标识记录,其是用相同的公共表密钥(如果使用的话)计算的,那么对应的秘密记录标识符也是相等的。此时可能会生成警告和/或可能中止操作。
[0174]
验证后,研究人员可以使用公开的属性,但他们不访问未公开的属性,例如隐私敏感信息等。
[0175]
下面提供了对特定有效实施例的总结。然而应注意,也可以为其他类型的签名构建零知识协议。在特定实施例中:
[0176]
发布者可能有带有公钥y=h
x
的私钥x。数据可以以多个记录的形式表示,例如,包括属性mi的向量m。对于每个向量,可以通过随机选择值c、s和γ来计算签名;后者是秘密记录标识符。属性签名能够具有以下形式:
[0177][0178]
其中,h是素数阶q的组g的一组生成器hi,如h、和向量m的签名可以被表示为四元组(c,s,γ,σ)。发布者向选择者提供向量m、包括秘密记录标识符的对应的签名以及公钥y。
[0179]
选择者可以计算向量m的公共记录标识符。例如,他可以选择私有表密钥a并计算该表的公共表密钥k=ha。公共/私有表密钥对对于该特定表可能是唯一的,例如,数据向接受者设备的该公开。对于每个记录,选择者现在可以生成唯一公共记录标识符id,如下所示:
[0180]
选择者将属性中的一些转发给接收者,而非全部以及公共记录标识符id。为了证明来源,可以执行以下协议。选择者,例如证明单元342生成随机盲化值ρ,t和开,并计算值mult=ρc和tmp=开

c。证明单元342构建可以发送到接收者设备的以下承诺:
[0181][0182]
针对生成器和随机生成的值t,针对秘密记录标识符γ;
[0183][0184]
证明单元342现在让验证者参与对以下值的知识的零知识证明:c,s,u,ρ,t,开,mult,tmp,m1,

,mn[0185]
零知识证明的第一部分可用于证明:
[0186]
1.
[0187]
2.
[0188]
3.
[0189]
其中,h1对应于公开属性,并且h2对应于非公开属性;一起得到h1∪h2=h。请注意,可以任选地将属性编码为证明和/或签名等中的散列。如果属性能够很大,则后者很方便。值y,h,hi,可能是公开的,并且值id、a、c和x也是证明者和验证者已知的。该值a是签名的盲化,其不需要独立验证,因为如果a是盲化超过其他任何东西,则证明不起作用。同样,不需要单独检查x,因为其被包括在第三个证明语句的顶部。
[0190]
令人惊讶的是,上述证明可以确切阐述为证明一系列指数的知识,所述指数一起从已知基数获得已知值。这可以用schnorr协议来证明。双线性图e可以例如通过所谓的类型1双线性图或类型3双线性图等。
[0191]
该系统可以扩展为数据条目的单独签名。例如,在用于选择性地公开属性的系统(100)的实施例中,记录包括多个数据条目。该扩展是任选的。发布者设备的处理器可以被配置为使用发布者私钥在针对多个数据条目的多个数据消息上生成多个数字签名,针对数据条目的数据消息包括数据条目和秘密记录标识符。数据消息上的数字签名被提供给选择者设备。选择者设备的处理器可以被配置为将要公开一个或多个的数据条目确定为多个数据条目的子集。选择者和接收者设备的零知识证明证明:要公开的数据条目的数据消息上的数字签名作为包括要公开的数据条目且各自包含秘密记录标识符的消息上的数字签名,其是利用对应于发布者公钥的私钥签名的。在实施例中,发布者设备的处理器被配置为通过计算组元素(g)对值(x γ h(m))的乘法倒数的取幂,在数据消息上生成数字签名,例如,(g
1/(x γ h(m))
),所述值是至少基于发布者私钥(x)、秘密记录标识符(γ)和数据条目(m)。然而,也可以使用其他数字签名。
[0192]
图5示意性地示出了向用于选择性公开的选择者设备提供记录的发布者方法500的实施例的范例。方法500通常是计算机实施的。
[0193]
发布者方法500可以包括存储510发布者私钥,发布者私钥与对应的发布者公钥形成公钥-私钥对;以及记录,该记录包括一个或多个属性;
[0194]
发布者方法500可以包括确定520秘密记录标识符。
[0195]
发布者方法500可以包括使用发布者私钥来生成530属性消息上的数字签名,属性消息包括一个或多个属性和秘密记录标识符。
[0196]
发布者方法500可以包括将记录、秘密记录标识符、属性消息上的数字签名、以及数据消息上的数字签名提供550到选择者设备。
[0197]
图6示意性地示出了向接收者设备选择性地公开记录的属性的选择者方法600的
实施例的范例。方法600通常是计算机实施的。
[0198]
选择者方法600可以包括:存储610记录,包括一个或多个属性;秘密记录标识符;使用发布者私钥生成的属性消息上的数字签名,所述属性消息包括一个或多个属性和秘密记录标识符;以及使用发布者私钥生成的数据消息上的数字签名和秘密记录标识符。
[0199]
选择者方法600可以包括获得620记录、秘密记录标识符、属性消息上的数字签名、以及数据消息上的数字签名。
[0200]
选择者方法600可以包括将要公开的一个或多个属性确定630为一个或多个属性的子集。
[0201]
选择者方法600可以包括根据秘密记录标识符确定635公共记录标识符。
[0202]
选择者方法600可以包括向接收者设备提供640要公开的一个或多个属性。
[0203]
选择者方法600可以包括利用接收者设备执行650零知识证明,其中,以下各项的知识被证明:
[0204]-秘密记录标识符;
[0205]-属性消息上的数字签名作为至少包括要公开的一个或多个属性和秘密记录标识符的消息上的数字签名,其是利用对应于发布者公钥的私钥签名的。
[0206]
图7示意性地示出了从选择者设备选择性地获得记录的属性的接收者方法700的实施例的范例。方法700通常是计算机实施的。
[0207]
接收者方法700可以包括存储710发布者公钥。
[0208]
接收者方法700可以包括从选择者设备获得720一个或多个属性。
[0209]
接收者方法700可以包括关于所获得的值和发布者公钥利用选择者设备来执行730零知识证明以确定所获得的值属于对应于发布者公钥的发布者设备的记录,其中,选择者设备证明以下各项的知识:
[0210]-秘密记录标识符;
[0211]-至少包括要公开的一个或多个属性和秘密记录标识符的消息上的数字签名,其是利用对应于发布者公钥的私钥来签名的。
[0212]
执行方法的许多不同方式是可能的,如对于本领域技术人员将显而易见的。例如,可以改变步骤的顺序或者可以并行执行一些步骤。此外,在步骤之间可以插入其他方法步骤。插入的步骤可以表示诸如本文描述的方法的细化,或者可以与该方法无关。例如,一些步骤可以至少部分地并行执行。此外,在下一步骤开始之前,给定步骤可能尚未完全完成。
[0213]
方法的实施例可以使用软件执行,其包括用于使处理器系统执行方法500、600或700的指令。软件可以仅包括由系统的特定子实体采取的那些步骤。软件可以存储在合适的存储介质中,例如硬盘、软盘、存储器、光盘等。软件可以作为信号沿着线、无线或使用数据网络(例如,因特网)发送。该软件可以可用于下载和/或在服务器上远程使用。可以使用位流来执行方法的实施例,该位流被布置为配置可编程逻辑,例如,现场可编程门阵列(fpga),以执行该方法。
[0214]
将意识到,本发明还扩展到计算机程序,特别是适于将本发明付诸实践的载体上或载体中的计算机程序。程序可以采取源代码、目标代码、代码中间源和诸如部分编译形式的目标代码的形式,或者适用于实施方法的实施例的任何其他形式。涉及计算机程序产品的实施例包括与阐述的方法中的至少一个的处理步骤中的每个相对应的计算机可执行指
令。这些指令可以细分为子例程和/或存储在可以静态或动态链接的一个或多个文件中。涉及计算机程序产品的另一实施例包括与阐述的系统和/或产品中的至少一个的模块中的每个相对应的计算机可执行指令。
[0215]
图8示出了具有包括计算机程序820的可写部件810的计算机可读介质800,计算机程序820包括用于使得处理器系统执行根据实施例的发布者方法、选择者方法或接收者方法的指令。计算机程序820可以根据物理标记或者借助于计算机可读介质800的磁化被实现在计算机可读介质800上。然而,任何其他适合的实施例也是可以想象的。此外,将意识到,尽管计算机可读介质800此处被示出为光盘,但是计算机可读介质800可以是任何适合的计算机可读介质(诸如硬盘、固态存储器、闪存等),并且可以是非可记录或可记录的。计算机程序820包括用于使处理器系统执行所述方法的指令。
[0216]
图9示意性地示出了根据实施例的处理器系统940的表示。处理器系统包括一个或多个集成电路910。在图7b中示意性地示出了一个或多个集成电路910的架构。电路910包括处理单元920(例如,cpu),其用于运行计算机程序部件以执行根据实施例的方法和/或实施其模块或者单元。电路910包括用于存储编程代码、数据等的存储器922。存储器922的部分可以是只读的。电路910可以包括通信元件926,例如,天线、连接器或者两者等。电路910可以包括用于执行方法中定义的处理的部分或全部的专用集成电路924。处理器920、存储器922、专用ic 924和通信元件926可以经由相互连接930(比如说总线)彼此连接。处理器系统910可以被布置用于分别地使用天线和/或连接器的接触和/或无接触通信。
[0217]
例如,在实施例中,处理器系统940(例如,发布者设备、选择者设备、或接收者设备)可以包括处理器电路和存储器电路,处理器被布置为运行存储在存储器电路中的软件。例如,处理器电路可以是intel core i7处理器、arm cortex-r8等。在实施例中,处理器电路可以是arm cortex m0。存储器电路可以是rom电路、或者非易失性存储器,例如,闪存。存储器单元可以是易失性存储器(例如,sram存储器)。在后者情况下,设备可以包括非易失性软件接口(例如,硬盘驱动器、网络接口等),其被布置用于提供软件。
[0218]
通常地,设备各自包括微处理器,其执行被存储在设备处的适当的软件;例如,该软件可能已经被下载和/或被存储在对应的存储器(例如,易失性存储器(诸如ram)或者非易失性存储器(诸如闪存))中。备选地,设备可以全部或者部分地以可编程逻辑来实施,例如,作为现场可编程门阵列(fpga)。设备可以全部或者部分地被实现为所谓的专用集成电路(asic),即,针对其特定用途定制的集成电路(ic)。例如,电路可以以cmos实现,例如,使用硬件描述语言,诸如verilog、vhdl等。
[0219]
在实施例中,发布者设备包括标识符生成电路、属性签名电路。在实施例中,选择者设备包括选择电路和证明电路。在实施例中,接收者设备包括验证电路。设备可以包括额外电路。电路实施本文所描述的对应单元。电路可以是处理器电路和存储电路,处理器电路运行电子地表示在存储电路中的指令。处理器电路可以以分布式方式来实施,例如,作为多个子处理器电路。存储设备的部分可以是只读的。电路还可以是fpga、asic等。存储设备可以被分布在多个分布式子存设备上。存储器的部分或者全部可以是电子存储器、磁性存储器等。例如,存储设备可以具有易失性和非易失性部分。
[0220]
应当注意,上文所提到实施例图示而不是限制本发明,并且本领域的技术人员将能够设计许多备选实施例。
[0221]
在权利要求中,括号内的任何附图标记不应被解释为对权利要求的限制。动词“包括”及其变形词的使用不排除权利要求中记载的元件或步骤之外的元件或步骤的存在。元件前面的词语“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括若干不同元件的硬件和借助于适当编程的计算机来实施。在列举了若干模块的设备权利要求中,这些模块中的若干个可以由同一个硬件项来实现。在互不相同的从属权利要求中记载了特定措施的仅有事实并不指示不能有利地使用这些措施的组合。
[0222]
在权利要求中,括号中的参考涉及示范性实施例的附图中的附图标记或实施例的公式,从而增加了权利要求的可理解性。这些参考不应解释为对权利要求的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献