CN102301643B - 数据处理系统中的密码证书的管理方法和系统 - Google Patents

数据处理系统中的密码证书的管理方法和系统 Download PDF

Info

Publication number
CN102301643B
CN102301643B CN201080005950.3A CN201080005950A CN102301643B CN 102301643 B CN102301643 B CN 102301643B CN 201080005950 A CN201080005950 A CN 201080005950A CN 102301643 B CN102301643 B CN 102301643B
Authority
CN
China
Prior art keywords
key certificate
certificate
evidence
accumulator
group element
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.)
Expired - Fee Related
Application number
CN201080005950.3A
Other languages
English (en)
Other versions
CN102301643A (zh
Inventor
J·卡梅尼施
C·索里恩特
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN102301643A publication Critical patent/CN102301643A/zh
Application granted granted Critical
Publication of CN102301643B publication Critical patent/CN102301643B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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
    • H04L9/3221Cryptographic 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 interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了用于在数据处理系统(1)中管理密码证书的动态集合的方法和装置。在所述集合中的密码证书和预定义的多个组元素的相应组元素之间定义映射。周期性地生成指示证书的集合的密码累加器。该密码累加器包括与映射到该集合中的证书的组元素相关的相应组元素的乘积。为该集合中的每个证书周期性地生成证据。每个证据包括该组元素的相应不同子集的乘积,针对每个证据的子集依赖于在所述集合中的证书和为其生成证据的证书。周期性地在数据处理系统(1)中发布密码累加器以便对系统组件(6,7)可用,该系统组件(6,7)涉及验证在系统(1)中使用的密码证书是否是由该累加器指示的动态集合的成员。

Description

数据处理系统中的密码证书的管理方法和系统
技术领域
本发明大体上涉及数据处理系统中的密码证书的管理。提供在数据处理系统中管理此类证书的动态集合中使用的方法、装置和计算机程序。 
背景技术
密码证书典型地是密码签名、证明或者其它由可信方(“发行者”)向用户发行的密码令牌。继而可以接下来在用户和另一方(“验证者”,其可以是或可以不是发行者)之间的数据通信中使用证书作为针对其发行证书的信息的证明。典型的场景包括用户通过数据通信网络连接到远程服务器并使用证书来证明访问某些受限制的服务或者其它资源的授权。用户和验证者之间的证书验证过程经常涉及证明证书是定义的数据项集合中的一个,例如,证书是在授权证书或有效证书的列表上。也可能需要以不公开该证书本身的方式,或者没有实际上揭露关于该证书或证明方的任何其它信息的方式来制作此类证明,以便大体上保持匿名性和用户隐私。 
在大多数应用中,有效证书的集合是动态的,由于发行新证书并且从集合中移除“旧”证书而随时间改变。特别是,密码证书的有效性可以是暂时的,这或是因为证书是针对有限时间周期而发行的,或是因为证书在发行后出于某些其它原因而被撤销。在前者的情况下,可以在证书中包括截止日期(例如,作为在证书中加密的数据的成分或者“属性”之一)并由验证者检查以确保有效性。然而,在后者的情况下,其中意外的事件可能要求证书的早期撤销(无效),验证者从发行者(或其它可信方)请求附加信息来证实有效性。例如,当用户从他的工作辞职时,应当使允许他访问工作场所的证书无效。更极 端的例子是对撤销已经被泄露并被恶意方用于非法购买的信用卡之类的证书的需求。在此类情况下,验证者需要检查可信方证书的有效性。 
验证者检查证书有效性的需求引起了各种问题,特别是在隐私是首要关注的情况下。在匿名不是问题的场景中,可以在事务期间向验证者揭露诸如与证书相关的序列号之类的标识符。验证者继而可以在由发行者周期性发布的被撤销证书id的列表中检查此项。另一解决办法是验证者向在线发行者发送证书撤销状态查询。前者解决办法是通信低效率的,这是由于被撤销证书的列表可能非常大,而后者解决办法要求签发机关长期在线。两个解决办法都要求所有各方的证书id的知识,破坏了用户的隐私。然而,匿名证书系统要求以用户仅公开发生事务所要求的最少量的信息的方式执行用户、发行者和验证者之间的事务。而且,发行者无法知晓向验证者示出了哪些证书属性,并且发行者和验证者无法链接用户事务。由于匿名证书系统的目的在于保护用户匿名性和事务不可链接性,因此发行者和验证者在事务期间无法知晓证书的id,并且需要备选的撤销状态检查技术。 
用于处理以上问题的一种已知技术使用密码累加器。密码累加器允许大集合的输入被哈希到单个短输出,即累加器中。继而由累加器证据(witness)来提供在累加器中实际上包含给定输入的证据。例如,如果通过F(xI,...,xn)=ACC来为输入x1至xn定义累加器(ACC),则证明在ACC中包含给定输入xi要求证据wi以及存在验证函数V,从而使得V(xi,wi)=ACC。通过如果在累加器中不包含xy,则计算wy,从而使得V(xy,wy)=ACC不可行的特征来确保安全性。当在上述场景中应用时,累加所有当前有效证书的序列号,并且发布所生成的累加器。用户继而可以通过使用他们的证据以证明(在零知识的情况下)他们的证书的序列号包含在发布的累加器中,来向验证者证明他们的证书仍然有效。此类系统已经在以下中进行了描述:“Short group signatures”,Boneh等,编辑Matthew K.Franklin,Advances in Cryptology-CRYPTO 2004,LNCS第3152卷,第41-55页,Springer Verlag,2004; 以及“Dynamic accumulators and application to efficient revocation of anonymous credentials”,Camenisch和Lysyanskaya,编辑Moti Yung,Advances in Cryptology-CRYPTO 2002,LNCS第2442卷,第61-76页,Springer Verlag,2002。然而,这些解决办法的缺点是用户需要更新他们的累加器证据,并且更新为每个新撤销的证书要求至少一次模幂运算。由于在典型应用中可能有大量被撤销的证书,这些解决办法带来重大的计算(和通信)开销,以及特别是远大于能由诸如智能卡之类的资源受限的用户设备处理的开销。例如,上文的Camenisch和Lysyanskaya的参考文献介绍了动态累加器,并示出了动态累加器在匿名证书系统以及身份托管和组签名中撤销的适用性。所提出的累加器和用户证据的更新需要与增加到系统或从系统中撤销的用户数量呈线性的若干取幂。在“Universal accumulators with efficient nonmembership proofs”,Jiangtao Li等,编辑Jonathan Katz和Moti Yung,ACNS,Computer Science中的Lecture Notes第4521卷,第253-269页,Springer,2007中,该累加器被扩展,引入了值没有被累加的证据和证明。 
在“Accumulators from bilinear pairings and applications”,Lan Nguyen,编辑Alfred Menezes,CT-RSA,Computer Science中的Lecture Notes第3376卷,第275-292页,Springer,2005中,从双线性配对构造动态累加器。将该系统应用到匿名证书系统导致要由每个用户存储非常大的系统参数(与可累加的值的数量呈线性的若干元素)以便证明他们的证书有效性。同样地,在“Cryptanalysis and improvement of an ID-based ad-hoc anonymous identification scheme”,Zhang和Chen,CT-RSA 05,2005中指出累加器并不安全,并且任何方在没有任何秘密知识的情况下也能够在匿名识别协议中成功。而且,更新证据要在每个事件取一次幂并且因而没有效率(在论文中,作者撰写了乘法并将加法用作代数组的基本操作,这是由于加法有时与双线性映射和椭圆曲线组相关地完成(参见上文的Nguyen参考文献))。 
在“A new dynamic accumulator for batch updates”,Peishun Wang 等,编辑Sihan Qing等,ICICS,Computer Science中的Lecture Notes第4861卷,第98-112页,Springer,2007中提出了用于批更新的动态累加器。错过了许多证据更新的用户可以向发行者请求更新信息,并使用一次乘法来更新他们的证据。然而,该方案对于诸如证书撤销之类的应用将不可用。例如,一方将如何实现对包含在累加器中的元素的知识的有效证据并不显而易见,而这对于针对证书撤销的累加器的使用是必要的。 
发明内容
本发明的第一方面提供一种用于在数据处理系统中管理密码证书的动态集合的方法。该方法包含: 
在所述集合的密码证书和预定义的多个组元素的相应组元素之间定义映射; 
周期性地生成指示证书集合的密码累加器,所述密码累加器包括与映射到所述集合中的证书的组元素相关的相应组元素的乘积; 
在所述数据处理系统中周期性地发布密码累加器;以及 
周期性地为所述集合中的每个证书生成证据,每个证据包括所述组元素的相应不同子集的乘积,针对每个证据的所述子集依赖于所述集合中的证书以及为其生成证据的证书。 
体现本发明的方法可以提供快速且有效的基于累加器的技术,该技术用于在数据处理系统中管理密码证书的动态集合以及提供证书撤销。生成证据作为上文定义的组元素的子集的乘积,并且这可以带来有效的证据更新。特别地,证据的计算与该集合中的证书的数量是呈线性的,并且每个证据的更新与该集合的变化的数量是呈线性的。因而可以使用一次乘法来实现证据更新。计算复杂性上的改进使得在典型应用中的证据更新可以例如由发行者或者一个或更多证据更新授权机构实际地集中处理,将计算负担从用户中转移出去。这允许在涉及诸如智能卡之类的资源受限的用户设备或者其它具有受限计算能力的设备的数据处理系统中的便利的应用。而且,如由以下示例所 证明的一样,系统可以基于匿名证书为在用户和验证者之间的有效证明协议提供基础,并且因而可非常适合于隐私敏感型应用。 
可以不时地、定期地或以其它方式执行密码累加器的周期性生成,以反映在证书的动态集合中的变化。因此,在任何时刻,累加器应当包括与集合中当前映射到证书的元素相关的组元素的乘积。在操作开始时,可以通过从针对证书的初始集合的适当的组元素计算定义的乘积来生成累加器。然而,随后,可以仅通过经由乘法因子来更新先前的累加器值来生成累加器,以反映如下文描述的新乘积。类似地,可以通过计算组元素的适当子集的乘积来生成针对证书的初始集合的每个证据,而可以通过经由如下文描述的乘法因子更新先前的证据来生成遵循集合中的改变的更新的证据。每一次重新生成累加器时,典型地将生成新的证据集合,尽管系统可以被设想为仅当期望时(例如,针对个体用户的“需求”),执行证据更新。在任何情况下,由于证据优选地由如上文讨论的代表用户的授权机构生成,因而在优选实施例中,在数据处理系统中周期性地发布证据以供用户访问。类似地,每一次生成累加器时,典型地将立即在数据处理系统中发布该累加器,以使其能够由在后续的证书验证过程中涉及的系统的组件使用。系统可以被设想为在其中可以通过直接向相关的系统组件传递累加器/证据来影响发布。然而,更通常地,将通过提供经由该系统中的一个或多个数据通信信道对该累加器/证据的访问来影响发布,其中当要求验证过程时系统组件能够访问累加器/证据。 
体现本发明的方法可以包括生成多个组元素。虽然本领域技术人员可以设想备选方式,但如下文描述的优选实施例一样,可以使用(至少)秘密值γ和组生成器g来生成每个组元素。更具体地,在优选实施例中,对于i∈{1,2,3,...,n},组元素包括相应元素 其中n是在集合中的证书预定义最大数量。(组元素也可以包括用于在如下讨论的系统中使用的附加的或“辅助的”值)。继而,在集合中的证书和相应组元素gi之间定义映射。在这些实施例中,密码累加器包括针对使组元素gi被映射到该集合中的证书的值i的组元素gn+1-i的乘积。因 而,累加的元素经由i值与映射到集合中的证书的元素gi相关。在优选实施例中,组元素包括辅助元素 g n + 2 = g γ n + 2 , g n + 3 = g γ n + 3 , g n + 4 = g γ n + 4 , . . . , g 2 n = g γ 2 n 以供在生成证据中使用。具体而言,对于集合中映射到组元素gi的每个证书,证据包括针对使组元素gj被映射到集合中的另一证书的所有j值的组元素gn+1-j+i的乘积。 
可以在相应组元素和诸如与每个证书相关联的序列号之类的数字标识符之间定义证书到组元素的映射。该标识符理想地被定义在证书本身中。在一些实施例中,可以通过将所分配的组元素指定为针对证书的标识符来定义映射。 
本发明的第二方面提供用于在数据处理系统中管理密码证书的动态集合的装置。所述装置包括适于执行根据本发明的第一方面的方法的控制逻辑,以及用于所述多个组元素的存储器。 
本发明的第三方面提供一种数据处理系统,其包括都适于经由数据通信网络通信的用户计算机和验证者计算机以及适于经由网络与所述用户计算机和验证者计算机通信的证书管理装置。所述证书管理装置包括控制逻辑,其适于执行根据本发明的第一方面的用于管理包括与所述用户计算机相关联的用户证书的密码证书的动态集合的方法。所述用户计算机存储所述用户证书,并且适于经由所述网络获得由所述证书管理装置为所述用户证书周期性生成的证据。所述用户计算机和验证者计算机适于经由网络通信,以实现证明所述用户计算机对与由密码累加器指示的集合中的证书对应的证据的知识的验证协议。如较早讨论的,证据更新可以作为对于其他证书/累加器管理操作的独立的任务而被处理。因而证书管理装置可以包括:发行者计算机,其适于周期性地生成指示证书集合的密码累加器;以及一个或多个证据更新计算机,其用于基于遵循在所述集合中的变化的密码累加器的生成来为证书周期性地生成更新的证据。本发明的第四方面提供根据本发明的第三方面的上述数据处理系统的证据更新计算机。本发明的第五方面提供根据本发明的第三方面的数据处理系统的用户计算机。 
本发明的第六方面提供包括程序代码装置的计算机程序,该程序 代码装置用于使计算机执行根据本发明第一方面的方法。应当理解,在此以最普遍的含义使用术语“计算机”并且其包括任何具有用于实现计算机程序的数据处理能力的设备、组件或系统。而且,体现本发明的计算机程序可以构成独立的程序,或者可以是更大的程序的成分,并且可以被供应例如体现为诸如用于加载到计算机中的电子传送或者磁盘之类的计算机可读介质。计算机程序的程序代码装置可以包含指令集合的以任何语言、代码或注释的任何表达,该指令集合旨在使计算机直接地,或者在(a)转换成另一语言、代码或注释,和b)以不同的介质形式再现,两者之一后或两者之后,执行所述的方法。 
通常,在这里参照本发明的一个方面的实施例来描述特征的情况下,可以在本发明的另一方面的实施例中提供相应的特征。 
附图说明
现在将通过示例的方式,参考附图来描述本发明的优选实施例,其中: 
图1是体现本发明的数据处理系统的示意性图示; 
图2指示由图1系统的发行者计算机执行的设置过程; 
图3指示图1的发行者计算机的后续操作; 
图4图示在图1系统中的用户计算机和验证者计算机之间的交互;以及 
图5图示在图1系统中的优选实现中的用户计算机和验证者计算机之间的交互。 
具体实施方式
在描述体现本发明的数据处理系统之前,首先提出被用作将在所描述的示例性实施例的操作中使用的构造块的各种假定和密码工具。 
如果对每个整数c,存在整数K,从而使得对所有k>K,|υ(k)|<1/kc,则函数υ可以忽略不计。如果对于输入的大小不存在概率多项式时间(p.p.t)算法来解决,则问题被认为是严重的(或难处理的)。 
双线性配对假设G和GT是素数阶q的组,映射e:G×G→GT必须满足以下属性: 
(a)双线性:如果e(ax,by)t=e(a,b)x,y,则映射e:G×G→GT是双线性的 
(b)非简并性:对于所有生成器g,h∈G,e(g,h),生成GT; 
(c)有效性:存在有效算法BMGen(1k)输出(q,G,GT,e,g)以生成双线性映射,并且针对任何a,b∈G,存在有效的算法以计算e(a,b)。 
安全性基于下列数论假定。将描述的实施例中的累加器结构基于Diffie-Hellman指数假定。证书的不可伪造性基于强Diffie-Hellman假定。对于证书撤销,需要证明对针对证书的累加器证据的拥有。该证据基于我们的新的隐藏强Diffie-Hellman指数(SDHE)假定。 
定义1(n-DHE)。Diffie-Hellman指数(DHE)假定:在素数阶q的组G中的n-DHE问题定义如下:假设 对于输入{g,g1,g2,...gn,gn+2,...,g2n}∈G2n,输出gn+1。 
n-DHE假定说明该问题难于解决。 
在“Hierarchicalidentity based encryption with constant size ciphertext”,Boneh等,第440-456页,编辑Cramer,Advances in Cryptology-EUROCRYPT 2005,24th Annual International Conference on the Theory and Applications of Cryptographic Techniques,Aarhus,Denmark,5月22-26日,2005,Proceedings,Computer Science中的Lecture Notes,第3494卷,Springer,2005,作者介绍了在双线性映射上定义的双线性Diffie-Hellman指数(BDHE)假定。这里对手不得不计算 e ( g , h ) γ n + 1 ∈ ∈ G T .
引理1 针对具有双线性配对e:G×G→GT的组G的n-DHE假定由针对同一组的n-BDHE假定来蕴涵。 
在“Short signatures without random oracles”,Dan Boneh和Xavier Boyen,编辑Christian Cachin和Jan Camenisch,EUROCRYPT,Computer Science中的Lecture Notes第3027卷,第56-73页,Springer,2004中,Boneh和Boyen介绍了强Diffie-Hellman假定。 
定义2(n-SDH-见前述参考文献“Short signatures without random  oracles”)。对于输入 输出(g1/(x+c),c)在计算上不可行。 
在“Full-domain subgroup hiding and constant-size group signatures”,Boyen和Waters,编辑Tatsuaki Okamoto和XiaoyunWang,Public Key Cryptography,Computer Science中的Lecture Notes第4450卷,第1-15页,Springer,2007中,作者介绍了隐藏强Diffie-Hellman假定,以允许在消息未知的情况下使用BB签名(参见上文引用的“Short signatures without random oracles”)。我们使用或要求隐藏强Diffie-Hellman假定的变体,将其称为隐藏强Diffie-Hellman指数(n-HSDHE)假定。这两个假定迄今为止是无与伦比的。 
定义3(n-HSDHE)。对于输入 g , g x , u ∈ G , { g 1 / ( x + y i ) , g γ i , u γ i } i = 1 . . . n 和 输出新元组{g1/(x+c),gc,uc}在计算上不可行。 
已知的基于离散对数的零知识证明
在普通参数模型中,我们使用若干已知的结果来证明关于离散对数的陈述。当涉及这些证据时,我们将遵循由Camenisch和Stadler介绍的,针对各种离散对数知识的证据以及关于离散对数的陈述的有效性的证据的表示法(“Proof systems for general statements about discrete logarithms”,Jan Camenisch和Markus Stadler,Technical Report TR 260,Institute for Theoretical Computer Science,ETH Zurich,1997年3月)。例如, 
表示“整数α,β和δ知识的零知识证明以使保持y=gαhβ和 其中y,g,h, 是具有相同阶的一些组G=<g>=<h>和 的元素。(要注意,在y和 的表示中的一些元素是相等的)。常规上值α,β和δ表示正被证明的哪个知识的量(并保密),而所有其它值已经对验证者已知。对于包括了我们在此考虑的所有组 的素数阶组,众所周知存在能够从成功的证明器中提取这些量的知识提取器。 
具有有效协议的签名方案
在将被描述的证书系统中的签名方案在“Signature schemes and anonymous credentials from bilinear maps”,Camenisch和Lysyanskaya,编辑Matthew K.Franklin,Advances in Cryptology-CRYPTO 2004,LNCS第3152卷,第56-72页,Springer Verlag,2004中详述,并且在n-SDH假定下已被证明是安全的。假定具有生成器h,h0,h1,...,hl,hl+1的素数阶q的非简并双线性映射e:G×G→GT。签名者的密钥是x∈Zq而公钥是y=hx。 
通过挑选 以及计算 来计算消息 上的签名。签名是(σ,c,s)。通过检查是否 来验证。多个消息  m 1 , . . . , m l &Element; Z q * 可以被签名为 &sigma; = ( h 0 h 1 m 1 , . . . , h l m l h l + 1 s ) 1 x + c 并且通过检查是否  e ( &sigma; , yh c ) = e ( h 0 h 1 m . . . h l m l h l + 1 s , h ) 来验证。 
证明签名的知识。
现在假定在消息m1,...,ml∈Zq中向我们给予了签名(σ,c,s),并且想要证明我们事实上拥有这样的签名。为此,我们需要使用值 来增大公钥以使 未知。 
签名的知识如下证明: 
1.选择随机值r←Zq和open←Zq,并计算承诺 和盲签名  A = &sigma; h ~ r .
2.计算下列证明 
e ( h 0 , h ) e ( A , y ) = e ( A , h ) c &CenterDot; e ( h ~ , y ) - r &CenterDot; e ( h ~ , h ) - mult &CenterDot; &Pi; i - 1 l e ( h i , h ) - m i &CenterDot; e ( h l + 1 , h ) - s }
我们接着介绍动态累加器的一些基础来帮助理解将要描述的实施例。如果从累加器中添加/删除元素的计算开销独立于在累加器中包含的元素的数量,则累加器是动态的。安全的累加器包含算法AccGen,AccAdd,AccUpdate,AccWitUpdate和AccVerify。这些算法由管理累 加器(“授权机构”)、用户和验证器的授权机构使用。(在将要描述的一些优选实施例中,这些算法中的某些算法也可以由不可信的更新实体使用)。 
授权机构使用AccGen算法创建累加器密钥对(skA,pkA)、累加器accφ和发布状态stateφ。可以使用AccAdd算法向累加器accV增加新的值i以获得新的累加器accV∪{i}和状态stateU∪{i},以及一起获得的证据witi。可以使用AccUpdate算法来计算针对值V的给定集合的累加器。 
在这些操作中,accV和witi是常量大小(独立于累加的值的数量)。授权机构做一些关于当证据witi被生成时包含在累加器中的值和累加器的状态的记录。这些集合被分别表示为V和Vw。将记录信息进行发布,并且记录信息仅在更新证据时需要,而在验证值包含在累加器中时不需要。 
每一次累加器改变时,旧的证据变得无效。然而对于包含在累加器中的值i∈V,可以从记录信息Vw中更新所有的证据。在现存的累加器系统中,该更新是最性能密集的操作。累加器状态stateU也包含记录信息U,其为曾经添加到累加器中(但并不一定包含在当前的累加器中)的元素的集合。这是V和Vw的超集。 
在用户对于当前累加器的值i获得了更新的证据wit′i之后,他们可以使用AccVerify算法向任何验证者证明i是在累加器中。 
AccGen(1k,n)创建了累加器密钥对(skA,pkA)、空累加器accφ(用于累加至n值)和初始状态stateφ。 
AccAdd(skA,i,accV,stateU)允许授权机构向累加器添加i。其针对i输出新的累加器accV∪{i}和状态stateU∪{i}以及证据witi。 
AccUpdate(pkA,V,stateU)针对值 输出累加器accV。 
如果witi是针对accV的证据并且i∈V,则对accV, 
AccWitUpdate(pkA,witi,Vw,accV,V,stateU)输出证据wit′i。 
AccVerify(pkA,i,witi,accV)使用最新的证据witi和累加器accV来验证υ∈V。在此情况下,算法接受,否则算法拒绝。 
附图的图1是体现本发明的第一数据处理系统的简化示意图,该 示意图示出了在系统的操作中涉及的主要组件。数据处理系统1包括由负责管理数据项(在这里是密码证书)和负责管理密码累加器以供在将描述的证书验证过程中使用的授权机构操作的数据项管理计算机2。特别是,该授权机构(在这里是“发行者”)向用户发出密码证书并经由将要描述的累加器来指示系统中的有效证书。发行者计算机2包括用于实现以下描述的过程的证书管理逻辑3、存储器4和通信接口5。系统1还包括:用于使用从发行者计算机2获得的密码证书的用户计算机6,以及用于通过参考将要描述的累加器来验证用户证书的验证者计算机7。用户计算机6包括用于实现下面描述的密码过程的证明者逻辑8、存储器7和通信接口8。验证者计算机3包括用于执行下面描述的密码验证过程的验证者逻辑11、存储器12和通信接口13。计算机2、6和7可以经由它们各自的通信接口在数据通信网络15中进行通信(其中网络15实际上可能包括多个组件网络和/或互联网络)。此外,系统1包括分发者计算机16,这里在网络15中示出并对所有计算机2、6、7是可访问的,分发者计算机的目的在下面说明。 
发行者、用户和验证者计算机的控制逻辑3、8、11被配置用于实现下面描述的密码过程的适当的步骤。通常,该控制逻辑可以实现为硬件或软件或它们的组合,并且用户、验证者和发行者设备2、6、7的明确形式很大程度上与将要描述的系统的基本操作无关。然而,在该示例中,我们假定这些设备由通用计算机、作为用户pc的用户计算机6、作为用户pc2经由网络15可连接到的服务器的发行者计算机2和验证者计算机7来实现。证书管理逻辑3、证明者逻辑8和验证者逻辑11在这里由将主计算机配置为执行所描述的功能的相应计算机程序来实现。通过这里的描述,合适的软件对本领域技术人员来说是显而易见的。然而,应当注意,计算机2、6、7和16的功能通常可以由一个或多个组件设备来实现。例如,用户计算机6的功能在实际中可以分布在向网络15提供通信接口的通用计算机和诸如智能卡之类的独立用户设备之间。此类独立设备可以为证书和密码软件提 供安全存储,并且当期望时可以经由有线或者无线链路连接到用户计算机。 
在这个说明性示例中,在访问控制场景中使用系统1。验证者计算机7由服务提供者(SP)来操作。操作用户计算机6的用户可以通过网络15连接到SP计算机7以请求对受限服务的访问权。为了获得对该服务的访问权,用户必须证明拥有从发行者2获得的密码证书。SP计算机7必须验证所出示的证书是有效的。这涉及证实证书是由发行者2维护的有效证书集合中的一个证书。这通过使用密码累加器构造来实现。我们首先考虑在用户隐私并非最主要的出发点的情形中基于累加器系统的操作。即,用户需要证明拥有有效证书但并不关注由此过程带来的其它可能的身份揭露信息。构成此初始累加器构造的基础的算法将被定义如下并部分基于Boneh、Gentry和Waters(参见“Collusion Resistant Broadcast Encryption with Short Ciphertexts and Private Keys”,Boneh、Gentry和Waters,Advances in Cryptology-CRYPTO 2005,Computer Science中的Lecture Notes第3621卷,第258-275页,Springer,2005)的广播加密方案。特别地,在将要被描述的构造中的累加器计算与加密密钥在参考方案中生成的方式有关,并且证据计算与解密密钥在参考方案中生成的方式有关。 
我们首先考虑在系统操作中的预备阶段,其中证书首先由发行者计算机2向用户发行。在图2的流程图中指示了发行者计算机2的操作中的关键步骤。(注意,通常,证书的发行可以脱机执行(例如,在向用户发行的智能卡上提供)和/或证书可以经由网络15随着用户的成功应用来在线发行。图2表示了发行过程的简化,但可以从该图中理解相关的操作原则)。设置过程开始于步骤20,其中证书管理逻辑3生成将在累加器的操作中被使用的各种参数。这个参数设置过程通过由逻辑3实现的以下的算法来定义: 
AccGen(1k,n):运行BMGen(1k)来获得双线性映射e:G×G→GT的设置参数paramsBM=(q,G,GT,e,g)。 
挑选随机值γ∈Zq。为安全签名方案,例如在SDH假定下安全的 上文讨论的BB签名方案,生成密钥对sk和pk。假设  pk A = ( params BM , pk , z = e ( g , g ) &gamma; + 1 ) , skA=(paramsBM,γ,sk), 并且 
在该过程中,证书管理逻辑3使用秘密值γ和组生成器g来生成组元素 其中n是将要“被包含”在累加器中(即,在有效证书的集合中)的证书的预定义最大数量。这些是将要按如下解释的映射到证书的组元素。此外,逻辑3生成辅助组元素  g n + 2 = g &gamma; n + 2 , g n + 3 = g &gamma; n + 3 , g n + 4 = g &gamma; n + 4 , . . . , g 2 n = g &gamma; 2 n , 其将被用于如下所述的证据计算。 
接下来,在图2的步骤21中,逻辑3定义了在组元素和将要发行的证书之间的映射。每个证书具有在证书中定义的、采取序列号形式的标识符,并且该映射在这些序列号和相应组元素之间定义。虽然当然地能够提供到组元素的任意数字映射,但为了简化,在这里我们通过整数集合1至n来表示序列号。因而,对于具有序列号i∈{1,2,3,...,n}的每个证书,在这里证书被映射到组元素 
步骤22表示由逻辑3对将要发行给用户的证书C(i)的初始集合的生成。这些是将被初始包含在累加器中的证书。可以按照已知的方式生成证书,每个证书包括相应序列号i。接下来,在步骤23中,逻辑3按照下面的算法生成累加器以用于证书的初始集合: 
AccUpdate(pkA,V,stateU):检查是否 以及否则输出⊥。该算法输出accV=∏i∈Vgn+1-i。 
因而,对于其中组元素gi映射到有效证书集合中的证书的i的值,在这里生成密码累加器作为组元素gn+1-i的乘积。实际上累加的组元素因而经由i的值与映射到有效证书的元素gi相关。 
在图2的步骤24中,证书逻辑3通过计算在签名密钥sk下gi‖i时的 和签名σi,生成针对累加器中的每个证书C的证据。 
因而,对于每个证书i,计算累加器证据w作为组元素的相应不同的子集的乘积。该子集依赖于在有效集合中的证书的i值,以及也依赖于为其生成每个证据的该证书的i值。具体而言,对于每个映射 到组元素gi的有效证书,对于针对其组元素gj映射到另一有效证书的所有j的值,证据包含组元素gn+1-j+i的乘积。因而,证据的生成利用了较早定义的辅助的组元素gn+2,...,g2n。签名σi指示在关联的证书和对应的组元素之间的映射。证据被输出为witi=(w,σi,gi)。 
在步骤25中,每个证书C(i),连同其关联的证据witi一起经由网络15向所述用户发送。接下来,在步骤26中,证书逻辑3通过向一个或多个分发者计算机16发送在步骤23中计算的累加器来发布密码累加器。分发者16通过提供对任何连接着的计算机6、7的访问权来在网络15上发布该累加器。继而完成了累加器设置的初始阶段。 
假定可能发行了新证书并且旧证书由发行者2撤销,证书逻辑3必须管理累加器以在有效证书的动态集合中反映变化。在图3的简化流程图中表示了该累加器管理过程。步骤30表示在定义的“阶段”中发生的证书的发行和撤销。每一次发行或者撤销证书,证书逻辑3将该事实与序列号i一起记录在存储器4中。尽管每一次发行或者撤销证书,原则上都能够执行确保更新过程,但典型地仍以有规律间隔周期性执行更新,例如每天。因此,在决定步骤31中,证书逻辑3检查当前阶段是否已经结束,并且如果没有结束则操作回到步骤30。然而,在每个阶段末,操作进行到步骤32,其中逻辑3更新累加器来说明每个从有效证书的集合中添加或者删除的证书。继而在步骤33中,通过为新发行的证书生成证据并且为现有的证书更新旧的证据来更新证据的集合,以反映有效集合中的变化。对于每个新发行的证书,通过下面的算法来定义这些过程: 
AccAdd(skA,i,accV,stateU):计算在签名密钥sk下且gi‖i时的 和签名σi。该算法输出witi=(w,σi,gi),更新的累加器值accV∪{i}=accV·gn+1-i,并且状态stateU∪{i}=(U∪{i},g1,...gn,gn+2,...,g2n)。 
可以看出仅通过将之前的acc值乘以组元素gn+1-i就实现了将证书i添加到累加器中。类似地,仅通过将之前的acc值除以组元素gn+1-i就实现了证书i的撤销。累加器更新因而变得快速而有效率,复杂度与添加/撤销的证书的数量是呈线性的。针对新添加的证书的证据生成与 以上在图2中的相同。现有证据的更新由以下定义: 
AccWitUpdate(pkA,witi,Vw,accV,V,stateU):将witi解析成(w,σi,gi)。如果i∈V并且 V &cup; Vw &Subset; U , 计算 
w &prime; = w &Pi; j &Element; V \ V w g n + 1 - j + i &Pi; j &Element; V w \ V g n + 1 - j + i
输出经更新的证据wit′i为(w′,σi,gi)。否则输出⊥。 
可以看出更新证据来提供给定证书的增加(或者撤销)仅要求旧证据值的乘以(或除以)适当的组元素gn+1-j+i。由于这可以用单一的乘法来获得,所以证据更新同样既快又有效率,复杂度与每个证据的改变的数量是呈线性的。 
回到图3,在步骤34中发行者计算机2的证书逻辑3向分发者计算机16发送更新的累加器和证据以供在网络15上发布。用一些识别标签的形式发布证据以支持个体用户在要求时识别针对他们的特定证书的证据。继而操作回到步骤30以进行新阶段。 
图4说明了当用户接下来希望经由验证者计算机7使用他的证书来访问在线服务时的进程。该图指示了由在图的左边的用户计算机6和在图的右边的验证者计算机7执行的关键步骤。当用户计算机6连接到验证者计算机7以请求对服务的访问权时,操作开始。计算机7的验证者逻辑11通过请求用户的证书来响应。该请求由用户计算机6的证明者逻辑8接收。证明者逻辑继而建立到分发者计算机16的连接以下载之前从发行者2获得并存储在存储器9中的针对证书C(i)的证据w的当前值。对说明累加器中的任何变化来说该步骤是必要的,这是因为依照图3的步骤32至34来发行证书。更新的证据w存储在存储器9中。接下来,证明者逻辑8向验证者7发送证书C(i),其包含如更早讨论的序列号i以及前面定义的所有证据witi(w,σi,gi)。验证者逻辑11继而类似地访问分发者计算机16以下载累加器accV的当前值,该当前值继而存储在存储器12中。接下来,验证者逻辑11运行下列验证协议: 
AccVerify(pkA,i,witi,accV):解析witi=(w,σi,gi)。如果σi是在验证密钥pk 下gi‖i时的有效签名,并且 则输出接受。否则输出拒绝。 
在该过程中,验证者逻辑11检查签名σi对于用户的证书C(i)以及相关联的组元素gi的序列号i是有效的。(注意,对将gi与它们映射到的值一起签名的该签名方案的使用避免了发布gi值的映射的需求,从而在验证期间避免了大量的发布参数)。验证者逻辑11还检查证据w证实组元素gi是在当前累加器accV中。这证实了用户的证书是有效的。验证者逻辑11继而根据证书是否被视为有效来允许或者拒绝用户计算机6对服务的访问。 
注意,尽管示出的当前证据和累加器值的获取集成在图4中的访问过程中,但在实践中每一方都可以周期性地在每个新阶段的开始仅获取新的值。 
将看到,上述内容提供了基于动态累加器构造的、具有累加器和证据的快速且有效的计算和更新的高效率证书验证系统。证据更新举例来说仅需要与对累加器的变化的数量呈线性的乘法(无取幂),并且不要求任何秘密信息的知识。因而,通常,可以由用户本身、或者由发行者,或者由某第三方来将针对用户的证据保持为最新。然而,尽管可以如现有方案中一样由用户单个执行证据更新,但优选实施例利用了系统的效率,其支持所有证据被可行地保持在主存储器中,以允许集中执行证据计算。这在上面的实施例中由发行者2来完成。作为备选,由于对包含在累加器中的值i∈V,能够从记录信息Vw更新所有的证据而无需任何密钥的知识,证据更新可以被有效地卸载到运行AccWitUpdate并仅被给予累加器状态stateU和记录信息V和Vw的不可信的更新实体。例如,图1中的分发者计算机16能够附加地用作证据更新计算机。在由发行者计算机2遵循有效集合中的变化而更新累加器的过程中,可以整体或者分批地,由一个或者多个此类分发者计算机16来执行保留在集合中的证书的证据更新。 
上文描述的基础方案充分有效地提供了在完全匿名的证书撤销系统中的操作的基础。以下讨论对上文的基础系统的各种变体,以实现匿名证书撤销系统的特定优选实施例。 
隐藏值被累加的有效证据
我们首先考虑支持用户证明她拥有包含在当前累加器中的值而不揭露她拥有哪个值(或者向她分配了哪个索引i)的有效协议。在这部分中,我们给出为我们的累加器构造而实现此点的有效协议。在前述的实施例中,通过对每一个组元素g1,...,gn进行签名来认证组元素g1,...,gn,用户继而如所描述的向验证者提供gi和签名。这里我们要求证明者证明她了解累加器发行者对“她”的gi的签名,而不揭露该签名或者gi值。这样的证据需要是有效的,并且要求具体的签名方案。由于累加的值仅被证明而从不揭露,我们可以并不与gi一起签名i来操作。这允许更有效的签名方案和证明系统。 
先决条件。我们用具体例证说明签名方案,该签名方案用于通过挑选新的u←G、密钥sk←Zq以及公钥pk=gsk来签名gi。签名包含两个元素 和 并且通过检查e(pk·gi,σi)=e(g,g)来验证。 
假设通过已经描述的累加器操作来生成  pk A = ( params BM , pk , z = e ( g , g ) &gamma; n + 1 ) , skA=(paramsBM,γ,sk),以及 我们也挑选附加的 用于承诺。h和u关于g的离散对数对于证明者应当是未知的。 
知识证明。对于任意 且i∈V,在输入accV=∏i∈Vgn+1-i和对应的证据witi=(w,σi,ui,gi)时, 针对值i,证明者执行下列随机化: 
随机挑选r,r′,r″,r′″,open∈Zq并分别计算  G &prime; = g i h ~ r , W &prime; = w h ~ r &prime; , D &prime; = g r h ~ open , S &prime; = &sigma; i h ~ r &prime; &prime; , U &prime; = u i h ~ r &prime; &prime; &prime; . 继而证明者证明 
g ( G &prime; , u ) e ( g , U &prime; ) = e ( h ~ , u ) r e ( 1 / g , h ~ ) r &prime; &prime; &prime; } .
在n-DHE和n-HSDHE假定下,上述协议是随机化值r的知识证 明,该随机化值r允许将G’反随机化为值gi,其中i在accV中累加,即,i∈V。 
在匿名证书方案(例如,匿名电子现金(e-cash),组签名,匿名证书系统,假名系统等等)中,用户得到一些可以按照匿名保护方式使用的的证书形式。在“A cryptographic framework for the controlled release of certified data”,Bangerter等,编辑Christianson等,Security Protocols Workshop,Computer Science中的Lecture Notes第3957卷,第20-42页,Springer,2004中,作者针对在证书中证明的信息的受控发布给出了密码框架。这使用了具体的签名协议,称为Camenisch-Lysyanskaya(CL)签名,用于向用户发行私人证书(参见“A signature scheme with efficient protocols”,Jan Camenisch和Anna Lysyanskaya,编辑I Cimato等,Security in Communication Networks,Third International Conference,SCN2002,LNCS第2576卷,第268-289页,Springer Verlag,2003)。私人证书(cert)包含与传统证书非常相像的属性和基于这些属性的签名,只是使用了更强大的签名方案: 
cert=(σ,m1,...,ml),具有σ=Sign(m1,...,ml;skI
假设(skI,pkI)←IssuerKeygen(1k)是证书发行者的密钥对。该框架支持两种类型的协议:1)交互式证书发行协议ObtainCert,其允许基于将要获得的承诺值的签名而不揭露这些值;以及2)签名拥有的知识的有效零知识证明。 
假设(m1,...,ml)表示一列数据项并假设 是数据项的子集。使用第一个协议,用户能够获得关于(m1,...,ml)的证书,从而使得发行者并不知晓H中的该数据项的任何知识,但发行者知晓其他数据项,即L\H。 
用户的私有证书对用户保持私有,也就是说,它们从不对任何其它方发布(作为整体):当使用(出示)证书以用于主张属性信息时,用户证明她知道(具有)具有特定属性的证书。该用户可以发布特定属性,而仅证明证书的剩余部分的知识: 
PK{(σ,m1,...,ml’):1=VerifySign(σ,m1,...,ml’,ml’+1,...,mI;pkI)∧...} 
在上述证明中仅ml′+1至mI的属性值被揭露。 
我们将上述框架扩展如下。假设V是具有阶段信息epochV的针对阶段的有效证书集合。如前,证书被分配唯一标识符i(嵌入证书中作为属性之一)和证据witi。我们要求只有当i∈V时,用户能够向验证者证明她拥有未撤销的证书。这通过使用户证明嵌入在她证书中的标识符对当前阶段是有效的标识符来实现。因而,在从事于证明之前,用户需要更新她的证据,并且双方(用户和验证者)需要获得针对V的最近阶段的信息epochV。优选的证书撤销系统基于更新的IssuerKeygen和ObtainCert协议、用于管理撤销的UpdateEpoch和UpdateWitness新算法、以及针对允许拥有证据witi的证明的新断言VerifyEpoch的零知识证明系统: 
IssuerKeygen(1k;n)创建用于发行多至n张证书的 阶段信息 和发行者密钥对(skI,pkI)。 
ObtainCert(U(pkI,H,{mj}j∈H);I(skI,H,{mj}j∈L\H,epochV,stateU))允许用户从发行者获得私人证书certi。发行者计算并发布用户的证据witi,以及更新的阶段信息epochV∪{i}和stateV∪{i}。 
如果 则UpdateEpoch(V,stateU)输出阶段信息epochV。否则其输出⊥。 
如果 则UpdateWitness(witi,epochV,stateU)输出更新的证据wit′i。否则其输出⊥。 
知道证书certi和对应的最新证据witi的用户能够如下使用新断言VerifyEpoch来向验证者证明拥有该证书和当前阶段的证书有效性。用户的秘密输入是certi。协议的通常输入是发行者的公钥pkI、阶段信息epochV以及证明陈述的详细说明(这包括关于证书所揭露的信息)。在下面的示例中,用户选择将前l′条消息保密,而揭露剩余的消息。PK{(σ、m1,...,ml’,i,witi):1=VerifySign(σ,m1,....,ml’,ml’+1,...,ml,i;pkI)∧ 
                             1=VerifyEpoch(i,witi;epochV,pkI)} 
签名方案。在下面的实施例中,通过将gi包括在证书中使得隐含i到gi的映射,以使得证明更加有效。因而,gi值用于私人证书和累加器两者来表示证书id i。这要求我们将较早提供的签名方案扩展 以在不知道秘密指数γi的情况下允许验证: 
1.签名者生成g,h,h0,h1,...,hl,hl+1←G并创建密钥x∈Zq和y=hx。 
2.接下来,签名者发布他在签名中允许的列表 
3.签名者挑选c,s←Z* q并按 ( &sigma; = ( h 0 h 1 m 1 . . . h l m l g i h l + 1 s ) 1 x + c , c ) 计算签名。 
4.通过检查 是在gi值的列表中并且检查  e ( &sigma; , yh c ) = e ( h 0 &Pi; j = 1 l h j m j ) g ^ i h l + 1 s , h 来验证关于消息m1,...,mk的签名(σ,c,s)。 
(如较早的实施例中所示,这里的最后一个步骤中对 是在gi值的列表中的检查稍后将由关于gi的签名/认证者来取代)。 
在经修改的结构中,由发行者计算机2的证书管理逻辑3执行的设置过程(对应于图2的步骤20)被定义为:IssuerKeygen(1k,n)。运行BMGen(1k)以生成(对称)双线性映射e:G×G→GT的参数paramsBM=(q,G,GT,e,g)。挑选附加的基数 和x,sk,γ←Zq,并计算y=hx和pk=gsk。(g,h, 和u关于彼此的离散对数互相未知)。计算g1,...,gn,gn+2,...,g2n,其中 并且 
输出  ( sk l , pk l ) = ( ( params BM , x , sk , &gamma; ) , ( params BM , y , h , h 0 , . . . , h l + 1 , h ~ , u , pk , z ) ) , 以及 
用户证书和证据的发行(对应于图2的步骤22、24和25)在下文中定义: 
ObtainCert(U(pkI,H,{mj}j∈H),I(skI,H,{mj}j∈L\H,epochV,stateU))。用户(用户计算机6的证明者逻辑8)运行下面的协议来从发行者中获得证书certi: 
1.用户挑选随机数s′∈Z* q,计算 并向发行者发送X。 
2.用户(作为证明者)使发行者(这里作为验证者)从事以下的证明 
PK { ( { m j } j &Element; H , s &prime; ) : X = &Pi; j &Element; H h j m j h l + 1 s &prime; } ,
其将使发行者确认正确形成了X。 
3.发行者将epochV解析成(accV,V)并将stateU解析成(U,g1,...,gn,gn+2,...,g2n)。继而计算epochV∪{i}=(accV·gn+1-i,V∪{i})和stateU∪{i}=(U∪{i},g1,...,gn,gn+2,...,g2n)。 
4.发行者挑选随机数c,s″∈Z* q,并计算 &sigma; = ( ( &Pi; j &Element; L \ H h j m j ) X g i h l + 1 s &prime; &prime; ) 1 / ( x + c ) .
5.发行者计算 w = &Pi; j &Element; V j &NotEqual; i g n + 1 - j + i , &sigma; i = g 1 / ( sk + &gamma; i ) u i = u &gamma; i , 并设置witi=(σi,ui,gi,w,V∪{i})。 
6.发行者向用户发送(σ,c,s″,{mj}j∈L\H,gi,i)并输出witi、epochV∪{i}以及stateU∪{i}。 
7.用户验证获得的证书,并输出certi=(σ,c,m1,...ml,gi,s=s′+s″,i)。 
对应于图2的步骤23的算法给出如下: 
UpdateEpoch(V,stateU):检查是否 否则输出⊥。该算法创建epochV用于证明拥有certi,i∈V。假设accV=∏i∈Vgn+1-i,输出epochV=(accV,V)。 
对应于图3的步骤33的旧证据的更新被定义为: 
UpdateWitness(witi,epochV,stateU):如果 用⊥中止。否则其将witi解析成(σi,ui,gi,w,Vw)。假设 该算法将wit′i输出为(σi,ui,gi,w′,V)。 
图5说明了当用户接下来希望与关联的证据witi=(σi,gi,ui,w,Vw)一起使用他的匿名证书credi=(σ,c,m1,...,ml,gi,s,i)时,在本实施例中在用户计算机6和验证者计算机7之间的交互。在每个新阶段的开始,每一方6,7从分发者计算机16下载更新的值以考虑累加器中的其间的改变。具体而言,证明者逻辑8获得针对用户的证书credi的当前证据值wi,并且验证者逻辑11获得包含当前累加器值的当前发布的epochV=(accV,V)。接着,响应于用户的访问请求,验证者逻辑11向证明者逻辑6发送验证请求。接下来,证明者逻辑定义将要在确保的证据中使用的各种参数。具体而言,证明者逻辑挑选ρ,ρ′,r,r′,r″,r′″←Zq, 并挑选开口open,open′←Zq来分别承诺ρ和r。证明者逻辑继而计算承诺  C = h &rho; h ~ open , C &prime; = g r h ~ open &prime; 和盲值 A = &sigma; h ~ &rho; , g ' = g i h ~ r , W ' = w h ~ r &prime; , S ' = &sigma; i h ~ r &prime; &prime; , 以及 证明者逻辑继而向验证者发送C,C’,A,G’,W’,S’和U’。证明者逻辑8和验证者逻辑11继而通信以实现零知识(ZK)验证协议。该协议的普通输入是发行者的公钥pkI、阶段信息epochV以及证明陈述的详细说明(这包括关于证书而揭露的信息)。在下面的示例中,用户选择将前l′条消息保密,而他揭露其余的消息: 
PK{(c,ρ,open,mult,tmp,m1,...,ml’s,r,open’,mult’,tmp’,r’,r”,r’”,): 
e ( h 0 &CenterDot; &Pi; j = i &prime; + 1 l h j m j &CenterDot; G &prime; , h ) e ( A , y ) = e ( A , h ) c &CenterDot; e ( h ~ , h ) r
e ( G &prime; , u ) e ( g , U &prime; ) = e ( h ~ , u ) r e ( 1 / g , h ~ ) r &prime; &prime; &prime; } .
在n-HSDHE和n-DHE假定下,上述协议是对关于(m1,...,ml,gi)的适应签名的知识证明以使i∈V。 
以上过程允许用户证明拥有有效的证书而不向验证者揭露任何其它信息,维持了完全的匿名性和交易不可链接性。与要求昂贵计算的先前的提案不同,所描述的系统是计算高效的,尤其是提供了高效率的证据更新。在具有大量用户的撤销系统(诸如基于被设想具有引入电子身份e-ID,电子票e-ticket等的电子系统的电子令牌之类)中,每个阶段撤销的数量很可能非常大。资源受限的用户设备典型地将无法处理要求适应这些变化的计算。然而,使用上述系统,通过单个授权机构(可以是或可以不是发行者)来处理更新是计算上可行的,从而允许采用动态累加器以用于在具有大量用户的隐私保护的系统中的撤销。甚者可能存在多个证据更新实体,负责为组用户升级证据。例如,在国家电子身份(e-ID)系统中,可以由每个县或者每个城市来 执行证据更新。这仅要求发布的参数,并且更新授权机构仅负责对它们组中的用户的证据更新的正确计算。证据更新实体之一的恶意行为并不会破坏系统安全性(因为他们仅需要发布的参数)而是可能仅导致服务的拒绝。也就是说,如果证据没有被正确地计算(不反映在累加器中的最新的变化)其将防止用户证明她的证书的有效性。在这种情况下,用户可以向发行授权机构报告以获得有效的证据更新并信令证据更新实体的不当行为。与现有系统相比,用户因而需要进行少得多的计算,并且更新授权机构需要按照重要性的次序进行更少量的计算。通过将计算复杂性的负担从用户转移到诸如发行授权机构之类的更强大方,甚至能够在移动场景中开展有效的证书撤销状态检查,在移动场景中用户使用诸如移动电话或者智能卡之类的设备从事与验证者的事务。 
当然应当理解,对上述示例性实施例可以进行多种改变。例如,累加器等的发布可以由发行者2而非独立分发者16执行,并且由所描述的实施例中的单个计算机表示的组件可以在实践中通过分布式计算系统中的多于一个计算机来实现。而且,本发明的实施例当然可以应用于除密码证书之外的数据项中。下面将介绍用于进一步改进效率的附加的修改。 
在前述的结构中,AccGen算法定义了stateU=(U,g1,...,gn,gn+2,...,g2n),其中U是跟踪曾经加入到该累加器(但可能后来已经被移除)的所有元素的记录信息。状态的其余部分是静态的。现在将描述减小stateU的大小的修改。在前述结构中的发布参数的大小与可能需要被累加的值的数量的预测上界是呈线性的。在这个上界难于预测的场景中,过度预测可能是耗费开销的事件。然而,在其中在给定时间点从不累加比 更大的值的具体情况中,可以把该开销降低到 通过累加器参数的懒惰评价来实现这点。假设 是最大的累加值。对于值i∈V,需要(1)值gn+1-i以将i添加到累加器中,(2)值gi以验证在累加器中的成员身份,以及(3)对于j∈(V\Vw)∪(Vw\V)的值gn+1-j+i,以计算和更新证据。注意,对于所有j ∈V∪Vw,j比 更小。我们声明,值 对于所有这些操作来说是足够的。显然,前两个要求是满足的。而且,如果j>i,则 g n + 1 - j + i &Element; { g n + 1 - i } i = 1 n ~ . 否则,1≤j<i并且 g n + 1 - j + i &Element; { g n + 1 } i = 1 n ~ . 这确立了第三个要求。在上述撤销方案的ObtainCert协议中, 加一,并且丢失的累加器参数被添加到stateU中。注意 更新的状态继而被用来更新阶段信息epochV和证据witi。可以对所描述的实施例做出多种其他变化和修改,而不背离本发明的范围。 

Claims (12)

1.一种用于在数据处理系统(1)中管理密码证书的动态集合的方法,所述方法包括: 
在所述集合中的密码证书和预定义的多个组元素的相应组元素之间定义映射; 
周期性地生成指示所述密码证书集合的密码累加器,所述密码累加器包括与映射到所述集合中的所述密码证书的所述组元素相关的相应组元素的乘积; 
在所述数据处理系统(1)中周期性地发布所述密码累加器; 
周期性地为所述集合中的每个所述密码证书生成证据,每个证据包括所述组元素的相应不同子集的乘积,针对每个证据的所述子集依赖于所述集合中的所述密码证书以及为其生成证据的所述密码证书;以及 
使用秘密值γ和组生成器g来生成每个组元素,其中: 
所述组元素包括相应组元素其中,n是所述集合中的所述密码证书的预定义的最大数量;以及 
所述映射在所述集合中的所述密码证书和相应组元素gi之间定义,其中所述密码累加器包括针对使所述组元素gi被映射到所述集合中的所述密码证书的i值的组元素gn+1-i的乘积。 
2.根据权利要求1所述的方法,包括在所述数据处理系统(1)中周期性地发布针对所述集合中的所述密码证书的所述证据。 
3.根据权利要求1或权利要求2所述的方法,其中所述映射在定义在每个所述密码证书中的数字标识符和所述相应组元素之间定义。 
4.根据权利要求1所述的方法,包括生成所述密码证书。 
5.根据权利要求4所述的方法,包括向所述数据处理系统(1)的用户计算机(6)传递每个所生成的密码证书。 
6.根据权利要求1所述的方法,其中: 
所述组元素包括辅助元素以 及 
对于映射到组元素gi的所述集合中的每个所述密码证书,所述证据包括针对使组元素gj被映射到在所述集合中的另一密码证书的所有j值的组元素gn+1-j+i的乘积。 
7.一种用于在数据处理系统(1)中管理密码证书的动态集合的系统,所述系统包括: 
一装置,被配置为在所述集合中的密码证书和预定义的多个组元素的相应组元素之间定义映射; 
一装置,被配置为周期性地生成指示所述密码证书集合的密码累加器,所述密码累加器包括与映射到所述集合中的所述密码证书的所述组元素相关的相应组元素的乘积; 
一装置,被配置为在所述数据处理系统(1)中周期性地发布所述密码累加器; 
一装置,被配置为周期性地为所述集合中的每个所述密码证书生成证据,每个证据包括所述组元素的相应不同子集的乘积,针对每个证据的所述子集依赖于所述集合中的所述密码证书以及为其生成证据的所述密码证书;以及 
一装置,被配置为使用秘密值γ和组生成器g来生成每个组元素,其中: 
所述组元素包括相应组元素其中,n是所述集合中的所述密码证书的预定义的最大数量;以及 
所述映射在所述集合中的所述密码证书和相应组元素gi之间定义,其中所述密码累加器包括针对使所述组元素gi被映射到所述集合中的所述密码证书的i值的组元素gn+1-i的乘积。 
8.根据权利要求7所述的系统,包括一装置,被配置为在所述数据处理系统(1)中周期性地发布针对所述集合中的所述密码证书的所述证据。 
9.根据权利要求7或权利要求8所述的系统,其中所述映射在定义在每个所述密码证书中的数字标识符和所述相应组元素之间定义。 
10.根据权利要求7所述的系统,包括一装置,被配置为生成所述密码证书。 
11.根据权利要求10所述的系统,包括一装置,被配置为向所述数据处理系统(1)的用户计算机(6)传递每个所生成的密码证书。 
12.根据权利要求7所述的系统,其中: 
所述组元素包括辅助元素以及 
对于映射到组元素gi的所述集合中的每个所述密码证书,所述证据包括针对使组元素gj被映射到在所述集合中的另一密码证书的所有j值的组元素gn+1-j+i的乘积。 
CN201080005950.3A 2009-01-31 2010-01-27 数据处理系统中的密码证书的管理方法和系统 Expired - Fee Related CN102301643B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP09151833.2 2009-01-31
EP09151833 2009-01-31
PCT/IB2010/050366 WO2010086802A1 (en) 2009-01-31 2010-01-27 Management of cryptographic credentials in data processing systems

Publications (2)

Publication Number Publication Date
CN102301643A CN102301643A (zh) 2011-12-28
CN102301643B true CN102301643B (zh) 2014-12-03

Family

ID=42101780

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080005950.3A Expired - Fee Related CN102301643B (zh) 2009-01-31 2010-01-27 数据处理系统中的密码证书的管理方法和系统

Country Status (4)

Country Link
EP (1) EP2384562B1 (zh)
JP (1) JP2012516603A (zh)
CN (1) CN102301643B (zh)
WO (1) WO2010086802A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9083535B2 (en) * 2010-11-05 2015-07-14 Nokia Corporation Method and apparatus for providing efficient management of certificate revocation
CN102970682B (zh) * 2012-12-10 2015-05-06 北京航空航天大学 一种应用于可信移动终端平台的直接匿名证明方法
US9768962B2 (en) * 2013-03-15 2017-09-19 Microsoft Technology Licensing, Llc Minimal disclosure credential verification and revocation
EP3741082B1 (en) * 2018-01-19 2021-12-29 Qed-It Systems Ltd. Proof chaining and decomposition
CN111684764B (zh) * 2018-02-05 2023-07-04 Lg 电子株式会社 使用盲激活码进行数字证书撤销的密码方法和系统
CN110289950B (zh) * 2019-05-29 2021-11-09 北京链化未来科技有限公司 一种密钥信息生成方法及装置
WO2020180365A1 (en) * 2019-12-05 2020-09-10 Futurewei Technologies, Inc. System and method of establishing a trusted relationship in a distributed system
CN112600677A (zh) * 2020-12-28 2021-04-02 中钞信用卡产业发展有限公司杭州区块链技术研究院 一种证照验证方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1848143A1 (en) * 2005-02-10 2007-10-24 NEC Corporation Member certificate acquiring device, member certificate issuing device, group signing device, and group signature verifying device
CN101248614A (zh) * 2005-08-26 2008-08-20 维亚赛斯公司 建立会话密钥的方法和实施该方法的单元

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7360080B2 (en) * 2000-11-03 2008-04-15 International Business Machines Corporation Non-transferable anonymous credential system with optional anonymity revocation
US7543139B2 (en) * 2001-12-21 2009-06-02 International Business Machines Corporation Revocation of anonymous certificates, credentials, and access rights

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1848143A1 (en) * 2005-02-10 2007-10-24 NEC Corporation Member certificate acquiring device, member certificate issuing device, group signing device, and group signature verifying device
CN101248614A (zh) * 2005-08-26 2008-08-20 维亚赛斯公司 建立会话密钥的方法和实施该方法的单元

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Dan Boneh,Xavier Boyen,Hovav Shacham.Short Group Signatures.《LECTURE NOTES IN COMPUTER SCIENCE》.2004,1-21. *
Jan Camenisch,Anna Lysyanskaya.Dynamic Accumulators and Application to Efficient Revocation of Anonymous Credentials.《LECTURE NOTES IN COMPUTER SCIENCE》.2002,1-17. *

Also Published As

Publication number Publication date
EP2384562A1 (en) 2011-11-09
CN102301643A (zh) 2011-12-28
JP2012516603A (ja) 2012-07-19
EP2384562B1 (en) 2013-07-17
WO2010086802A1 (en) 2010-08-05

Similar Documents

Publication Publication Date Title
Camenisch et al. An accumulator based on bilinear maps and efficient revocation for anonymous credentials
US8744077B2 (en) Cryptographic encoding and decoding of secret data
CN102301643B (zh) 数据处理系统中的密码证书的管理方法和系统
US8949609B2 (en) Anonymous authentication signature system, user device, verification device, signature method, verification method, and program therefor
Herranz Deterministic identity-based signatures for partial aggregation
US9882890B2 (en) Reissue of cryptographic credentials
US20040165728A1 (en) Limiting service provision to group members
US20120278609A1 (en) Joint encryption of data
CN104184588B (zh) 基于身份的不可拆分数字签名方法
CN101155032A (zh) 匿名可选择凭证系统及其方法
Singh et al. A novel credential protocol for protecting personal attributes in blockchain
US8015398B2 (en) Set membership proofs in data processing systems
Verma et al. Efficient identity‐based blind message recovery signature scheme from pairings
CN102301644B (zh) 数据处理系统中的数据项的验证
Islam et al. Design of provably secure and efficient certificateless blind signature scheme using bilinear pairing
Tso A new way to generate a ring: Universal ring signature
Fan et al. Date attachable offline electronic cash scheme
Shin et al. AAnA: Anonymous authentication and authorization based on short traceable signatures
Bultel et al. Improving the efficiency of report and trace ring signatures
Sertkaya et al. A privacy enhanced transferable electronic checkbook scheme
Guo et al. Random oracle-based anonymous credential system for efficient attributes proof on smart devices
Nguyen Efficient dynamic k-times anonymous authentication
Rasslan et al. An IoT Privacy-Oriented selective disclosure credential system
Huszti Anonymous multi-vendor micropayment scheme based on bilinear maps
Wu et al. A novel probabilistic signature based on bilinear square Diffie–Hellman problem and its extension

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141203

Termination date: 20190127

CF01 Termination of patent right due to non-payment of annual fee