可延展伪名证书系统和方法

文档序号:1358987阅读:132来源:国知局
专利名称:可延展伪名证书系统和方法
技术领域
本发明一般地涉及计算机通信网络安全,更具体地,涉及通信系统隐私保护。
背景技术
目前,公钥密码系统被广泛使用。通常可以容易地获得许多公钥密码编码和解码技术,来提供一定程度的安全性以及隐私性。例如,授权给Rivest等的美国专利No.4,405,829以及El Gamal(Tahir ElGamal,A public-key cryptosystem and a signature scheme based on discrete logarithms,Advances in Cryptology Proceedings;CRYPTO 84,pages 10-18,1985)是本领域公知的技术。Rivest专利和El Gamal的教导通过引用结合于此。
利用诸如RSA和El Gamal之类的传统公钥密码系统,为了与其他方安全地通信,用户需要向外界公开他/她的公钥。然而,在大多数情形下,用户只拥有一对公/私钥对,即一个公钥和其对应的唯一的私钥。公钥密码系统这一典型的使用方式存在一个不希望出现的后果,即使得用户的公钥完全成为了他/她的标识。这意味着即使担心隐私的用户受到这类公钥密码系统以及其他设计得很好的隐私保护措施的保护,对手仍能够基于该唯一公钥的使用模式,通过收集和观察该用户公开的信息,关联出受保护的用户的活动。
在例如RSA和El Gamal所公开的传统的公钥密码系统中,如果用户担心他/她的单个公钥可能会危害他/她的隐私,一种可能的办法是要求有所担心的个体拥有若干不同的公钥,并慎重地向不同的对方公开各个公钥。
除了拥有许多公钥对之外,Waters等已提出了一种方法,其利用ElGamal密码系统来实现了一种不可比公钥(Incomparable Public Key)方案,借此用户可以同时拥有若干公钥,其中所有这些公钥都对应于单个私钥。参见B.R.Waters,E.W.Felten,A.Sahai,Receiver Anonymity viaIncomparable Public keys,CCS’03,Washington,DC,USA,pp.112~121。Waters等人的教导也通过引用结合于此。
如上所述,用户可以拥有若干公钥。但是,在大多数情形中,当个人A获得一个公钥时,该公钥必须被另外的某方认证。例如,公钥可以被公知的认证机构(Certificate Authority,CA)认证,或者,公钥可以被该个人的朋友C认证。如果第三人B看到该公钥及其证书,则因为B信任CA或者B信任C,该第三人B可以信任该公钥。
在用户拥有若干公钥的情况下,一种认证这些公钥的可能的方法是请求CA认证每个公钥,如图25所示。因为CA必须在线处理所有证书请求,所以需要非常强大的CA,这增加了拥有和维护的成本。当网络中的每个用户拥有大量公钥时,这种成本被扩大了。
另一种可能是请求某个朋友认证每个公钥,如图26所示。但是,这与用户的隐私担心相矛盾。不仅这样,请求朋友认证公钥不仅效率低并且可能是无效的,而且在许多商务场合也是不可信赖的。
除了公钥认证之外,在多条用户数据需要被认证的许多其他情况中,也存在上述包括CA集中化方案和朋友认证方案在内的方案的缺点。

发明内容
本发明提供了一种用于通信网络的可延展伪名证书系统和方法。
根据本发明的一个方面,提供了一种用于用户在通信网络中认证数据的计算装置。网络包括受信实体和至少一个验证者。计算装置包括可操作地耦合到网络的根证据单元,根证据单元适合于从受信实体接收根证据;可操作地耦合到根证据单元的伪名证书生成单元,伪名证书生成单元适合于基于根证据生成至少一个伪名证书;和可操作地耦合到伪名证书生成单元的传送单元,传送单元适合于将配备有伪名证书的用户数据传送到通信网络。
根据本发明的另一个方面,提供了一种用于用户在通信网络中认证数据的方法。网络包括受信实体和至少一个验证者。该方法包括从受信实体接收根证据;基于根证据生成至少一个伪名证书;以及将配备有一个伪名证书的用户数据传送给一个验证者。
根据本发明的另一个方面,提供了一种用于在通信网络中管理证书的装置。网络包括至少一个用户和至少一个验证者。该装置包括系统参数计算单元,系统参数计算单元适合于计算系统参数;可操作地耦合到系统参数计算单元的参数公布单元,参数公布单元适合于公布要被用户和验证者共享的共享系统参数;可操作地耦合到网络的根证据请求接收单元,根证据接收单元适合于接收来自用户的根证据请求;和可操作地耦合到根证据请求接收单元和系统参数计算单元的根证据生成单元,根证据生成单元适合于响应于根证据请求,为用户生成根证据,该根证据被用户用于生成多个伪名证书。
根据本发明的另一个方面,提供了一种用于在通信网络中管理证书的方法。网络包括至少一个用户和至少一个验证者。该方法包括计算系统参数;公布要被用户和验证者共享的共享系统参数;接收来自用户的根证据请求;以及响应于根证据请求,为用户生成根证据,该根证据被用户用于生成多个伪名证书。
根据本发明的另一个方面,提供了一种用于网络通信中的用户的可延展伪名证书系统。网络包括一个受信实体。该系统包括可操作地耦合到网络的根证据单元,根证据单元适合于从受信实体接收根证据;可操作地耦合到根证据单元的伪名证书生成单元,伪名证书生成单元适合于基于根证据生成至少一个伪名证书;可操作地耦合到伪名证书生成单元的传送单元,传送单元适合于将配备有伪名证书的用户数据传送到通信网络;和可操作地耦合到通信网络的验证者单元,验证者单元适合于通过接收到的伪名证书验证用户数据。
根据本发明的另一个方面,提供了一种用于在通信网络中通过伪名证书认证用户数据的方法。网络包括受信实体和至少一个验证者。该方法包括从受信实体向用户颁发根证据;基于根证据,由用户生成至少一个伪名证书;以及将配备有一个伪名证书的用户数据传送给一个验证者,验证者通过该伪名证书验证用户数据。
根据本发明的另一个方面,提供了一种制品。该制品具有其上存储有指令的机器可读介质,指令当被一个或多个处理器执行时,使得处理器从受信实体接收根证据;从根证据生成至少一个伪名证书;以及将配备有一个伪名证书的数据传送给一个验证者。
根据本发明的另一个方面,提供了一种制品。该制品具有其上存储有指令的机器可读介质,指令当被一个或多个处理器执行时,使得处理器计算系统参数;公布要被网络的所有用户共享的共享系统参数;接收来自网络的一个用户的根证据请求;以及为用户生成根证据,该根证据被用户用于生成多个伪名证书。
可延展伪名证书系统具有许多优点,尤其是当与匿名公钥一起使用时。用户可以生成可信赖的匿名公钥,其中匿名公钥被伪名证书保证为是被CA认证的。用户隐私保护的功能完全是分布式的。用户自己生成不同的匿名公钥,也自己生成不同的伪名证书。认证机构的介入被最小化,从而使得实现轻量级CA变得可能。因为伪名证书在CA侧是可追查的,因此用户不能滥用匿名能力。


当结合附图阅读时,通过下面的描述,可更全面地理解本发明的前述及其他目的、各种特征以及本发明本身,在附图中图1是示出了根据APK(anonymous public key)技术的利用匿名公钥密码系统的具有两个终端的示例性系统的框图,其中一个终端可以公开一个不同的公钥用于与另一个终端的新的通信会话;图2是示出了根据APK技术的利用匿名公钥密码系统的具有若干终端的示例性系统的框图,其中一个终端在与其他终端的通信中可以使用不同的公钥来用于不同的会话;图3是示出了参与图1和图2所示通信系统的发送者和接收者之间的示例性通信会话的流程图;图4是示出了根据APK技术,在基于公私钥对的通信会话中,发送者和接收者的示例性功能块的框图;图5是示出了根据APK技术,图4中的APK产生设备的示例性功能块的框图;图6是示出了根据APK技术,产生匿名公钥的示例性处理流程的流程图;图7是示出了根据APK技术的消息加密与解密的示例性过程的示图;图8A是示意性示出了本发明一般概念的框图;图8B是示意性示出了本发明的一般认证过程的流程图;图9是示意性示出了本发明第一实施例的系统体系结构的框图;图10是示出了根据第一实施例,在系统启动阶段中的CA初始化过程的一个示例的流程图;图11是示出了根据第一实施例,在系统启动阶段中的用户初始化过程的一个示例的流程图;图12是示出了根据第一实施例的RC(root certificate,根证书)请求过程的一个示例的流程图;图13是示出了根据第一实施例,用户如何产生匿名公钥的流程图;图14是示出了根据第一实施例,用户如何从根证书导出伪名证书用于匿名公钥的流程图;图15是示出了根据第一实施例的匿名鉴别过程的一个示例的流程图;图16是示出了根据第一实施例的追查过程的流程图;图17是示出了根据第一实施例的示例性用户装置的框图;图18是示出了根据第一实施例的示例性CA装置的框图;图19是示意性示出了根据本发明第二实施例的系统体系结构的框图;图20是示出了根据第二实施例的伪名认证方法的一个示例的流程图;图21是示出了利用传统组签名方案时,证明者向验证者证明他/她在组中的过程的示图;图22是示出了利用根据本发明的第二实施例的方案,验证伪名证书和公钥的有效性的示例过程的示图;图23是示出了利用根据本发明的第二实施例的方案,验证伪名证书和公钥的有效性的另一示例过程的示图;图24是示出了根据本发明的第二实施例的验证单元的一个示例的框图;图25是示出了一个传统证书系统的框图,其中证书由认证机构发放;以及图26是示出了另一个传统证书系统的框图,其中证书由用户的朋友发放。
具体实施例方式本发明涉及由曾柯和藤田友之(Tomoyuki FUJITA)提出的新型的APK(Anonymous Public Key,匿名公钥)技术。APK技术的详细内容可以在2004年11月10日由日电(中国)有限公司递交的题为“在安全通信系统中生成匿名公钥的方法、设备和系统”的待决中国专利申请No.200410090903.X中找到。
首先,在下面的描述中将说明APK技术方案。
如上所述,用户可能希望拥有若干公钥。通过利用其中每个不同公钥具有相应的不同私钥的多个公钥对,传统公钥密码系统可以在一定程度上缓解隐私担忧。然而,随着公钥数量增加,对于个人来说,公私钥对的管理成本增加了。此外,随着私钥数量增加,私钥被公开或丢失的安全性风险增加了。
不可比公钥方案通过利用不同的生成子(generator)构建El Gamal密码系统的公钥,来生成新的公钥,这使得计算优化变得很困难。例如,(g,ga)和(h,ha)是通过Waters等人的不可比公钥方案生成的不同公钥,其中g和h是不同的生成子。传统上,El Gamal密码系统只利用一个生成子,因此能够受益于离线计算生成子的幂并只维护一张生成子的幂表。而Waters等人的方案需要要么维护若干张生成子的幂表,要么进行在线计算,从计算优化和成本管理来说二者都很不理想。
我们提出了一种匿名公钥技术(APK)。APK独特的地方在于终端用户可以自己生成大量公钥,而只维护和保持一个私钥。
下面将参考图1到图7描述APK技术。
在APK技术中,术语“群”指的是如下定义的数学概念(除非另有说明)群(G,◇)由满足如下三个规律的集合G及其上的二元运算◇构成(i)群运算满足结合律,即对于G的任意元素a、b、c,有a◇(b◇c)=(a◇b)◇c;(ii)集合G存在一个基元e,对于任何G的元素a都有a◇e=e◇a=a;(iii)对于G的任何元素a,G中都存在一个元素a-1(称为a的逆元),满足a◇a-1=a-1◇a=e。
例如,整数集Z及加法运算构成一个群。基元是0,一个整数a的逆元是-a。对于更多的信息,可以参考《Handbook of AppliedCryptography》,可在http://www.cacr.math.uwaterloo.ca/hac/在线获得。
根据APK技术的通信系统可具有若干终端和若干通信信道。图1以简化框图示出了APK方案的一个实现方式。在图1中,终端A与终端a进行了若干次会话的通信。对于终端A来说,至少存在一个通信信道来向终端a发送信息。所述会话可能使用一个或若干通信信道。终端a可能也可能不使用相同的通信信道来向终端A发送信息。通过所述通信信道,终端A向终端a公开不同的公钥Ea到Ez来用于不同的通信会话,但将它的私钥x保密。如果终端a需要的话,也可以向终端A公开若干不同的公钥,在此意义上终端a等同于终端A。
如图1所示,通过产生不同的公钥来用于不同的会话,对于终端a或任何第三方来说都不可能关联出终端A的活动模式。例如,在电子拍卖的场合中,终端A的用户将能够防止他人关联并分析其出价模式和策略,这是因为对于每次会话都产生了不同的公钥。
图2也以简化框图的形式示出了APK技术的另一个实现方式。在图2中,终端A与多个终端(从终端a到终端z)通信。终端A与其每一个通信对方之间所使用的通信信道可能相同也可能不同。如图2的左半部分所示,通过所述通信信道,终端A分别向终端a、终端b、……、终端z公开了不同的公钥Ea到Ez以及其他信息。在此情形下,我们假设在终端A和终端a到z之间存在一种“一对多”的关系。所述公开可以多种方式完成。例如,可以有其他信息与所述公钥一起公开,或者所述公钥可以包含在电子邮件或证书中。反过来,终端a和终端z可能也可能不使用相同的通信信道(在所述通信信道上,这些终端中的每一个接收到终端A的公钥)来向终端A发送信息,这些信息已用所接收的公钥加密。如前所述,终端A将自己的私钥x保密。类似地,如果终端a到终端z需要的话,可以向终端A分别公开若干不同的公钥,在此意义上终端a到终端z等同于终端A。类似地,从图2的右半部分可看出,终端a到z分别向终端A公开各自的公钥Ea到Ez。在此情形下,我们认为在终端a到z和终端A之间存在一种“多对一”的关系。
图3示出了参与图1和图2所示的通信系统中的发送者和接收者之间的示例性通信会话。在图3中,每一次发送者希望向接收者公开公钥时,发送者都决定(步骤S31)或者是从它现有的公钥池中选择一个公钥(步骤S32),或者产生一个新的公钥(步骤S33)。然后,发送者将公钥发送给接收者(步骤S34)。需要发送消息时(步骤S35),接收者查找发送者的公钥(步骤S36)以加密消息(步骤S37),然后将加密的消息发送给发送者。最终,发送者解密所接收的加密消息(步骤S38),并恢复出发送自接收者的原始消息。注意,接收者可能在它要向发送者发送加密消息之前很久就已经从发送者接收到了所述公钥。
应指出的是,发送者可以被设计成总是产生不同的公钥(步骤S33)而不依赖于任何现有的密钥。然而,如本领域内的技术人员可以认识到的那样,使用现有公钥池将可大大减少计算开销,这是因为操纵现有公钥比起从头开始计算来说内在地要少很多计算量。
还应该指出的是,图3中的发送者和接收者的指定只是出于方便的考虑,因为发送者首先将它的公钥发送给接收者。接收者接收到来自发送者的公钥之后,接收者在向它的“接收者”(所述发送者)发送加密消息时就成了“发送者”。在两个终端之间的典型双向通信会话中,所述角色在整个会话中会频繁颠倒。
现在参考图4,其示出了基于根据APK技术的公私钥对的通信会话中,发送者和接收者的示例性功能块。在此,发送者41至少包括处理通信信道的发送单元43和接收单元45、处理密文解密的解码设备47、以及处理公钥产生的APK产生设备49。接收者42至少包括发送单元44、接收单元46、以及处理将要发送的信息例如明文的加密的编码设备48。发送者41可向接收者42公开多个公钥,以使得如果发送者41和接收者42之间存在多个会话,则每个会话可使用发送者41不同的公钥。如果发送者41也工作为接收者,则它还可包括一个编码设备48。类似地,如果接收者42工作为发送者,则它还可包括一个解码设备47和APK产生设备49。
图4中的编码设备48和解码设备47都是数据通信和加密领域中公知的。下面的图5进一步示出了APK产生设备49。参考图5,控制单元55处理产生公钥以及管理公钥的过程。寄存器54可用来存储私钥、所产生的公钥、所接收的公钥以及其他控制单元55所需的数据。另外,在此所使用的寄存器54可以通过可存储信息的任何器件实现,例如片上寄存器、ROM和RAM。APK产生设备49可与解码设备47共享寄存器54,以存储所接收的密文以及解密时的中间输出。下面将描述APK产生设备49的其他组件。
注意,在图5中,“群”运算是由群指数运算器57处理的。APK产生设备49也可有其他实施方式,其中的群运算由一个独立的群运算器处理。
下面将描述图4和图5的APK产生设备49根据APK技术产生匿名公钥(“APK”)的过程。
图6示出了产生APK/私钥对的示例性处理流程。首先,群选择器51选择一个群G(步骤S60)。例如,计算机可具有存储器,其中存储了代表各种符合条件的群的各种数据结构。在控制单元55的控制下,群选择器51通过选择代表群的数据结构来选择一个群。在实践中,已经存在一些商用函数库,其可以运行在计算机上并提供这种服务。需要实现APK技术的应用程序可利用一些具体参数来调用这种库提供的特定函数。然后所调用的函数就可以返回所需的(多个)群。在一个实现方式中,G是有限循环群,其阶数是n(n是正整数)。有限循环群G的候选者包括但不局限于有限域Fq1上的椭圆曲线上的点构成的群;有限域Fq2上的乘法群Fq2*,其中q2=pm1,m1是正整数,p是素数;群Zn1*,其中n1是合数;以及乘法群Zn2*,其中n2是素数。
在上述四中示例性群中,第一种群可能具有最佳的安全性能,而后三种在本领域中使用得更为普遍。群G的“有限循环”特性确保了群指数运算最终都会被映射到群G内;然而,映射方法可能会根据群而不同。另外,它还确保了生成子的存在。
然后,子群选择器52选择G阶数为m的子群,其中m≤n(步骤S61)。如果m选择为素数,则将具有优选的安全性能。请注意所述子群可被选择为G自身,这也就意味着m=n。在另一个实现方式中,假设在群G被确定或选择后,可省略子群的选择,这也意味着G自身被隐式地选择为所述子群,因为在数学上G是它自身的一个子群。也就是说,当G本身被选择为所述子群时(使得m=n),则这一选择可在表面上被省略。当然,如果省略子群的选择,则也可省略子群选择器52(如图5所示)。
然后,整数选择器56选择一个整数作为私钥x,使得x满足1<|x|<m(步骤S62)。应理解到,一个终端可具有多个私钥,尽管在此的描述为了简单起见集中于如何从一个私钥生成多个公钥。
然后,生成子选择器53选择并确定群G的一个生成子(步骤S63)。如果G是有限循环群,则它总会有至少一个生成子。应注意,g和x的选择是彼此独立的。也就是说,尽管步骤S62在此被描述为在步骤S63之前,但它们的执行顺序可以颠倒过来,或者并行地执行。
选择G、m、x和g后,在控制单元55的控制下,选择一个满足0<|r|<m的整数r作为所述指示符,以产生新的公钥(步骤S64)。
选择了G、m、x、g和r后,通过计算y1=gr和y2=y1x来产生新的公钥(步骤S65)。然后可向接收者公开公钥(y1,y2)以用于加密(步骤S66)。当然,可以有其他信息与所述公钥一起公开。
应注意,g、x和r的选择彼此之间没有顺序和依赖性需求,因此步骤S62、S63和S64可以任何顺序执行,不论是串行还是并行。另外,g、x和r的选择可以是随机的,也可以根据所需的标准进行。
或者,前述步骤中的一些可被控制单元55省略,而在其他地方执行。例如,群G和所述子群可由第三方例如信托机构指定。因此,控制单元55就跳过了选择群和子群的步骤,因为它们在外部被确定。而且,如果以前已产生过一个匿名公钥,则肯定已选择并确定了所述群、子群、生成子和私钥。因此当要产生新的公钥时,控制单元55就跳过这4个步骤而直接进行到后续步骤。
如果y1或y2原来位于群G的范围之外,则它们必须被映射到群G内。映射方法可根据不同的群而不同。然而,循环群G确保了这种映射方法的存在。
应注意,前述步骤或者可以在系统的单个设备/模块执行(利用集成或分离的组件),也可以分布式的方式进行,其中系统的不同设备分别执行这些步骤中的一些步骤。
下面描述群、子群和生成子选择的示例。假设选择了群Zp*,其中p=11,因此Z11*={1,2,3,4,5,6,7,8,9,10}。由于11是素数,因此数学上Z11*的阶数是11-1=10。元素2是Z11*的生成子,因为可容易地验证Z11*={2imod 11/i=0,1,...,9}。由于群是它自身的子群,所述子群可被选择为Z11*。子群的另一个选择例如是{1,3,4,5,9},阶数为5,具有生成子3。也很容易地可验证35=1 mod 11。
而且,如本领域内的技术人员可认识到的那样,所有所述设备和组件都可实现为硬件、软件、固件或其组合,根据不同的考虑而各异。
基本上是在图6中描述的示例性方法只是可用于产生根据APK技术的匿名公钥的许多方法中的一种。还存在更高级的方法,不仅可用于相同的目的,还可获得性能上的优化。为描述这些优化方法,下面参考图4、5和7简单地总结本领域内公知的编码和解码过程,其中⊙是群G上的可逆运算, 是⊙的逆运算。已将APK技术应用到图7中的过程中。
为了加密明文M,首先将M表示为G的元素(例如将M表示为ASCII码)(步骤S80),然后选择满足1<|k|<m的一个整数k作为指定符(步骤S81),并如下计算一对值(步骤S82)C1=y1k和C2=M⊙y2k其中C1和C2和群G的元素。所有这些操作都可由图4中的编码设备48完成。⊙的示例可以是群G上的乘法、除法、加法或减法。如果C1和C2原来位于群G的范围之外,则它们必须被映射到群G内。映射方法根据不同的群而不同。
此时,获得了消息M的密文C=(C1,C2)(步骤S83),并可由发送单元44通过通信信道向外发送。
对于位于群G的范围之外的将要编码的消息M,在编码前它必须被转换成若干群元素。在接下来的解码之后,所恢复出的群元素必须被转换回到初始的消息。转换方法可根据不同的群而不同。一个示例是将消息分割成若干块,每个块都是群G的元素,并串接所有的块来重构M。
在通信信道的另一侧,接收到密文消息C(步骤S84)。为了从密文C获取明文M,首先必须在两种方式之间作出决定,即是否进行直接指数运算(步骤S85)。如果是,则首先计算rb=C1x(步骤S86),然后通过计算 来获得M(步骤S87);否则就首先计算ra=C1-x(步骤S88),然后通过计算M=C2⊙ra来获得M(步骤S89)。
在成功地解密密文(C1,C2)后,根据解密的实现方式,APK产生设备49根据APK技术可利用所接收的密文以及中间解密输出ra来产生新的匿名公钥,其形式为(y1=C1-1,y2=ra)。类似地,APK产生设备49可利用所接收的密文以及中间解密输出rb来产生新的匿名公钥,其形式为(y1=C1,y2=rb)。在这两种产生新的匿名公钥的方法中,都可避免指数运算,提高了计算效率。
而且,当提供了单个匿名公钥(y1,y2)时,APK产生设备49可产生一个新的匿名公钥,形式为(y2,y2x)。这一方法可被使用多次以产生一系列公钥。按照这种方式,所产生的公钥的存储消耗可被大大减少,因为公钥第二部分y2与其后续结果的第一部分相同。对于一系列w个公钥,最多可节省百分比为(w-1)/2w的存储,也就意味着对于足够大的w来说,几乎节省了50%。
在APK技术中,由于公钥是基于生成子的幂的形式,利用同一个生成子来产生的,因此生成子g的幂可被重复使用于产生一系列公钥,这涉及的是乘法而不是指数运算,因而节省了存储器并加速了计算。同时,由于在解码设备中只需要维护一张生成子的幂表,因此可以离线执行新公钥的计算。
例如,在一个实现方式中,当在解码设备中接收到密文消息C=(C1,C2)时,可获取C并用来产生新的公钥。如前所述,C1=y1k=grk,并且grk可被保存来产生新的公钥,因为乘积“rk”只是另一个整数。应注意,尽管grk可被保存来产生新的公钥,但是rk的值对于解码设备来说可能仍然是未知的,除非编码设备在发送加密消息时公开了k。
当提供了单个匿名公钥(y1,y2)时,APK产生设备49可产生一个新的匿名公钥,形式为(y1×y1,y2×y2),其中×是群乘法。一般地,如果提供了若干匿名公钥(y11,y21)、(y12,y22)、…、(y1j,y2j),j≥2,则基于所存储的多个g的幂y11=gr1、y12=gr2、…、y1j=grj,以及y21=y11x、y22=y12x、…、y2j=y1jx,可以计算一个新的公钥为(y1(j+1)=y11y12…y1j,y2(j+1)=y21y22…y2j),其中y11y12…y1j是y11、y12…y1j,的乘积,y21y22…y2j是y21,、y22、…、y2j的乘积。很清楚,为了产生新的匿名公钥,指数运算被乘法所取代,提高了计算效率。由于可以在线执行乘法,因此按照这种方式产生的新公钥不必被预先计算,这直接意味着存储空间的节省。
上述优化技术可结合起来使用以产生新的匿名公钥。例如,在接收并成功地解密一系列密文(C11,C21)、(C12,C22)、…、(C1j,C2j),j≥2后,APK产生设备49可利用所接收的密文以及中间解密输出rb1、rb2、…、rbj来产生一个新的匿名公钥,形式为(y1=(C11C12…C1j),y2=(rb1rb2…rbj)),其中C11C12…C1ji是C11、C12、…、C1j的乘积,rb1rb2…rbj是rb1、rb2、…、rbj的乘积。
而且,利用对y2的计算,可以计算一系列公钥(y2w1,y2w2),其中w1=xw,w2=x(w+1),w≥0。而且,这一计算中获得的所有结果,尤其是g的幂,都可利用来产生其他公钥。
而且,基于从密文C获取的C1,解码设备可以产生更多的新公钥。为此,计算并保存C1x和C1-x,然后可以产生两个系列的公钥。一般地,当接收到多个加密消息CC1=(C11,C12)、CC2=(C21,C22)、…、CCj=(Cj1,Cj2),j≥1时,对于C1x,可以产生一系列的公钥((C11C21…Cj1)u1,(C11C21…Cj1)u2),其中C11C21…Cj1是C11、C21、…、Cj1的乘积,u1=xu,u2=x(u+1)并且u≥0,对于G1-x,可以产生另一系列的公钥((C11C21…Cj1)v1,(C11C21…Cj1)v2),其中C11C21…Cj1是C11、C21、…、Cj1的乘积,v1=-xv,v2=-x(v+1)并且v≥0。而且,这一计算中获得的所有结果,尤其是g的幂,都可被利用来产生其他公钥。
在下面的描述中,将说明本发明的一般概念。
上述待决申请中描述的APK技术提出了一个问题如何认证大量匿名公钥。对于可以认证大量匿名公钥的方案,我们希望该方案是1)安全的。没有人能够伪造证书,并且没有人能够伪装为证书的拥有者。
2)可靠的。用户隐私不会通过任何证书而不公开。
3)可撤销。在用户滥用匿名的情况下,用户的真实身份可以被公开。
4)可信赖。证书具有商务有效性。
5)分散化。由于APK中的分布式方法,证书方案应当是分散化的。
6)高效的。越少涉及第三方机构越好。
如上所述,传统认证方法具有许多缺点。此外,由于APK是一种分布式的隐私保护方案,所以集中化的认证方案不适合于APK方案。
因此,提出了一种认证用户数据的分布式的方案,即可延展伪名证书(Malleable Pseudonym Certificate,MPC)方案。
本发明的可延展伪名证书(MPC)方案是一种认证大量公钥的新型方案。与所有证书都由受信实体产生和发放的传统方案不同,MPC方案是一种分布式的方案,其中,其数据要被他人验证的用户根据从受信实体获取的根证据(root proof),自己生成伪名证书。
根证据可以是受信实体发放的证书,用于用户生成伪名证书。下文中,这样的证书被称作根证书。根证据还可以是组私钥,通过该组私钥,用户可以以组成员的名义生成伪名证书。但是,根证据并不限于此。根证据可以是能够证明用户的可信度并且能够用来通过某种算法生成伪名证书的任何数据。
图8A示意性地示出了MPC方案的一般概念。
用户U是网络中的一个用户,其经由网络与其他用户进行通信。在通信会话期间,U的某些数据可能需要被另一用户或对端验证。例如,用户U的数据DATA1要被用户V1验证,U的数据DATA2要被用户V2验证,U的数据DATA1要被用户V3验证,等等。下文中,希望验证用户U的数据以获得信心的用户或者对端被称作验证者。
DATA1、DATA2和DATA3可以是用户的用于不同通信会话的不同公钥。在一种实现方式中,这些数据是不可比公钥或者APK。但是,所述数据并不限于公钥。要被验证的数据可以是用于各种目的的任何数据。
为了鉴别数据,用户U将数据发送给验证者(V1、V2、V3等),其中数据配备有证书,例如PC1、PC2、PC3等。在MPC方案中,这些证书都是从由受信实体发放给用户U的一个根证据生成的。注意,这些证书(PC1、PC2、PC3等)是由用户U自己计算的,无需受信实体的任何介入。验证者通过这样的所附加的证书验证用户U的数据,并且数据可以通过证书而被保证是由受信实体认证的。如果验证者信任所述的受信实体,则他可以相信用户U的数据的真实性。
受信实体可以是CA、受信的组、U的朋友或者可以证明U的可信度的其他方。
在根据本发明的MPC方案中,在验证者可以通过这样的证书验证出U的数据是由受信实体认证的并由此获得信心的同时,用户可以将这些证书生成为使得验证者不能找出用户U的真实身份,即,用户数据的拥有者。因此,用户生成的这样的证书在下面被称作伪名证书。
在用户数据是APK的情况下,可以将各对APK和伪名证书出示给验证者,例如V1。在V1验证出APK是由受信实体认证并从而获得信心的同时,V1无法找出这对APK和伪名证书的拥有者。即使用户与V1多次通信,每次他/她也可以出示不同的匿名公钥和伪名证书对,使得V1不能区分自己是否在与该用户通信。
图8B是示意性地示出了根据本发明的MPC方案的一般验证过程的流程图。
在步骤81,用户从受信实体得到根证据。举例来说,用户将他/她的基本数据(下文中称作根数据)及其用户证据交给CA。CA对用户的根数据和根数据的用户证据执行身份检验。用户通过CA的身份检查之后,CA向用户颁发证书。
在步骤82,用户从根证据生成伪名证书。从同一根证据,用户可以生成多个不同的伪名证书。
在步骤83,用户将配备有一个伪名证书的用户数据发送给验证者。
在步骤84,验证者通过伪名证书验证所述的用户数据。由于该数据被伪名证书证明为是有受信实体认证的,所以如果验证者信任该受信实体,则验证者有信心认为用户数据是可信的。然后,验证者可以基于所述数据,与用户安全地通信。例如,在用户数据是匿名公钥的情况下,基于用户的匿名公钥,用户可以对他/她的消息进行数字签名,或者验证者可以加密给他/她的消息。但是,用户数据并不限于用户的匿名公钥。例如,其可以是用户的不可比公钥。
如从图8A和图8B可以看出的,用户可以产生可信赖的数据,其中数据通过伪名证书被保证是由受信实体认证的。用户隐私保护的功能完全是分布式的。用户自己产生不同的匿名公钥以及不同的伪名证书。受信实体只需为用户的根数据颁发根证据。例如,CA向用户颁发对于他/她的根公钥的根证书(RC)。其中认证机构的介入被最小化,从而CA的轻量级实现变得可行。
此外,利用根据本发明的MPC方案,受信实体可以存储用户的根证据,使得在受信实体处,伪名证书是可追查的。
在用户U行为不当的情况下,例如他/她对消息进行了数字签名,但是后来又否认该签名,则受骗者可以将用户U的伪名证书发送回受信实体。受信实体将具有找出该伪名证书的真实拥有者的能力,并且只有受信实体具有这种能力。
考虑一个具体的情况,U生成成对的匿名公钥和伪名证书。然后,他/她与V1通信,表明该公钥和证书。基于伪名证书,V1验证出该匿名公钥的确是由受信实体认证的。因此,当他/她签名承诺他/她将支付50块钱给V1时,V1将他/她写作的电子书发送给U。因为V1只看到匿名公钥和伪名证书,因此他/她并不知道购买者的真实身份。然而,如果U赖帐,V1可以将该伪名证书发送给受信实体,受信实体通过该伪名证书可以揭露该伪名证书的真实拥有者。在该情况中,拥有者是U,他/她将因此受到惩罚。以这种方式,用户不能滥用系统的匿名能力。
在下面的说明中,将参考图9到图18描述根据本发明的第一实施例。
图9是示意性示出了本发明第一实施例的系统体系结构的框图。
根据第一实施例,受信实体是认证机构CA。要被验证者验证的用户U的数据是用户U的匿名公钥。
假设U通过了个人身份检验,CA向U颁发根证书(RC)。从该根证书,U生成伪名证书用于他/她的匿名公钥。然后,U将配备有伪名证书(PC1、PC2、PC3...)的匿名公钥(APK1、APK2、APK3...)发送给验证者V(V1、V2、V3...)。V验证从U接收的伪名证书,如果预定条件被满足,则接受该证书。
在第一实施例中,U可以从RC导出伪名证书用于某些匿名公钥,而无需CA的介入,同时V可以基于伪名证书判断U的可靠性,也不需要涉及CA。
另外,V将存储从U处收集的数据,并且在某些情况下,例如U行为非法时,V可以将从U处收集的数据提交给CAS,并且CA能够公开U的真实身份。
在下面的描述中,假定密码术是基于强RSA(SRSA)假设的。对于SRSA的具体内容,请参见N.Baric′,B.Pfitzmann,Collision-freeAccumulators and Fail-stop Signature Schemes without Trees,Advances inCryptology-EUROCRYPT’97,pp.480~494,1997;以及R.Cramer,V.Shoup,Signature Schemes Based on The Strong RSA Assumption,ACM Transactionson Information and System Security,vol.3(3)161~185,2000,其通过引用结合于此。
此外,一些证明技术可能会在本发明的该实施例中被使用,这些技术允许一个证明者相对于某个值的知识,使得验证者相信该证明者,而与该值自身有关的有用信息不会被泄漏。
在根据本发明的第一实施例中,使用了所谓的知识证明技术(参见S.Goldwasser,S.Micali,C.Rackoff,The Knowledge Complexity of InteractiveProof Systems,17thACM Symposium on Theory of Computation,pp.291~304,1985,其通过引用结合于此)。已经提出了许多方法用于零知识证明离散对数知识(参见A.Fiat,A.Shamir,How To Prove YourselfPracticalSolutions to Identification and Signature Problems,Advances in Cryptology-CRYPTO’86,pp.186~194,1986;D.Chaum,Demonstrating Possession of aDiscrete Logarithm without Revealing It,Advances in Cryptology-CRYPTO’86,pp.200~212,1987;D.Chaum,J.H.Evertse,J.van de Graaf,AnImproved Protocol for Demonstrating Possession of Discrete Logarithms andSome Generalizations,Advances in Cryptology-EUROCRYPTO’87,pp.127~141,1987;D.Chaum,T.P.Pedersen,Wallet Databases with Observers,Advances in Cryptology-CRYPTO’92,pp.89~105,1993;and K.Sako,J.Kilian,Receipt-Free Mix-Type Voting Scheme-A Practical Solution to theImplementation of a Voting Booth,Advances in Cryptology-CRYPTO’98,pp.393~403,1998,它们通过引用结合于此)。
在本发明的第一实施例中,式(1)将被用于表示证明者和验证者之间对于共同的输入(gj,yj)的知识证明KP{(x1,...,xi)/(g1,y1),...,(gi,yi):y1=g1x1and...andyi=gixianda1<x1<b1and..andai<xi<bi}---(1)]]>其中,gj产生<gj>,j=1,...,i,该知识证明证明了知识xj,使得对于所有j=1,...,i,保持了yj=gjxj,]]>并且aj<xj<bj。用于证明aj<xj<bj的技术出现在T.Okamoto,An Efficient Divisible Electronic Cash Scheme,Advances inCryptology-CRYPTO’95,pp.438~451,1995中,并且后来在A.Chan,Y.Frankel,Y.Tsiounis,Easy Come-Easy Go Divisible Cash,Advances inCryptology-EUROCRYPT’98,pp.561~575,1998中有所发展,其中其被命名为Range Bounded Commitment(RBC)。上述文献的教导通过引用结合于此。
可以想到,上述式(1)可以一般化为乘法表示。例如KP{(x1,x2)/(g1,h1,y1),(g2,y2):y1=g1x1×h1x2anda<x1<b}---(2)]]>表示x1和x2的零知识证明,假设a<x1<b,其使得同时保持了y1=g1x1×h1x2]]>和y2=g2x2.]]>下面,将参考图10到图16描述根据本发明第一实施例的方法的细节。
根据第一实施例的方法主要由五个阶段组成系统启动、RC请求、MPC导出、匿名鉴别以及追查(如果需要的话)。
图10是示出了在根据本实施例的系统启动阶段中的CA初始化过程的一个示例的流程图。
在步骤101,CA生成SRSA模数nc。nc的因数分解被保密。
在步骤102,CA生成素数p和q,使得p-1被q整除。
在步骤103,CA计算整数lq=|q|,即q的长度。
在步骤104,CA从Z*p选择GF(q)(q阶的有限阈)的一个生成子g。
在步骤105,CA从QR(nc)选择整数ca,cb和cc。
在步骤106,CA选择整数lc<lq。
上述数学概念可以在A.Menezes,P.van Oorschot,S.Vanstone,Handbook of Applied Cryptography,CRC Press,1996,其通过引用结合于此。最后,在步骤107,CA向例如因特网的网络公布nc、p、q、g、lq、ca、cb、cc和lc。
图11是示出了根据本实施例的系统启动阶段中的用户初始化过程的一个示例的流程图。
根据CA公布的系统参数,用户U在步骤111随机选择其自己的私钥xu∈(0,2lq)。
在步骤112,用户U计算他/她的根公钥(g,yu=gxu)(modp)]]>。
为了获得RC,U需要向CA鉴别他/她的身份,而CA必须保证yu并没有被其他用户用作公钥。
图12是示出了根据本实施例的RC请求过程的一个示例的流程图。
在步骤121,用户U计算au=caxu(modnc).]]>在步骤122,用户U向CA提交他/她的根公钥(g,yu)和au。
在步骤123,用户U和CA执行知识证明KP{xu)/(g,yu),(ca,au):yu=gxuandau=caxuandxu∈(-22lq,22lq)}.]]>如果知识证明成功,则在步骤124,CA选择一个足够大的随机素数eu>22lq+1]]>,其中gcd(eu,f(nc))=1,保证eu尚未分配给其他用户,并计算su=(cb/au)1/eu(modnc).]]>在步骤125,CA对(g,yu)颁发(eu,su)给用户,作为RC。
在步骤126,CA以用户U的名字将解蔽值(demasking)eu存储在数据库中,用于可能的追查。
在步骤127,用户U验证保持了一致性cb=sueu×au(modnc).]]>所述RC是二元组(eu,su),其中eu实际上是RSA公钥,su是cb/au的数字签名。但是,如在下一阶段将论述的,具备了该单个签名,U可以有效地导出用于他/她的全部匿名公钥的证书。RC是对所有按照(gr,yur)的形式的匿名公钥进行签名的数据签名。
图13是示出了根据本实施例,用户U如何生成匿名公钥的流程图,图14是示出了根据本实施例,用户U如何从RC导出伪名证书的流程图。匿名公钥和伪名证书一起保证了隐私保护和匿名可靠性。
如图13所示,在步骤131,用户U从{0,1,…,21c-1}中选择整数r,并在步骤132计算匿名公钥(gr,yur)(modp)。
如图14所示,在步骤141,用户U从{0,1,…,q-1}选择整数t,并在步骤142计算su~=su×cct(modnc)]]>和yu~=su~eu(modnc).]]>伪名证书实际上是二元组 现在,用户具有cb=su~eu×caxn×cc-t×eu(modnc),]]>其中,eu、xu和-t×eu的知识将在下一阶段证明给验证者。
在预先准备了匿名公钥和伪名证书之后,U可以将它们呈现给验证者。
图15是示出了根据本实施例的匿名鉴别过程的一个示例的流程图。在步骤151,用户U将匿名公钥(y1r=gr,y2r=yur)]]>和伪名证书 提交给验证者V。
在步骤152,V计算yb=cb/yu~(modnc).]]>在步骤153,用户U和验证者V执行知识证明KP{x1,x2,x3)/(su~,yu~),(ca,cc,yb),(y1r,y2r):yu~=su~x1andyb=cax2×ccx3andy2r=y1rx2andx2∈(-22lq,22lq)}]]>在步骤154,V存储上述知识证明的副本,以用于可能的追查。
由于在图12的步骤126,CA已经将解蔽值eu以用户U的名义存储在其数据库中,所以CA具有追查能力。
在V将U的匿名公钥接受为是被CA的证书管理服务(CMS)认证的,并且与U进行交易之后,如果U行为不当,则V可以将U的不当行为的证据提供给CA,并请求CA帮助。CA将明确审查从V收到的证据。如果从CA的角度,由合理的理由让V知道U的真实身份,则CA可以与V合作确定U的真实身份。
图16是示出了根据本实施例的追查过程的流程图。
在步骤161,V将伪名证书 提交给CA。
在步骤162,对于CA的数据库中所存储的全部解蔽值eu,CA计算 并且将结果与 相比较。
匹配的 和 显示出伪名证书 的拥有者的解蔽值。以这种方式,CA可以发现并揭露U的真实身份。
下面,将参考图17和图18描述用户侧和CA侧的示例装置。
图17是示出了根据第一实施例的用户的示例装置170的框图。
如图17所示,用户装置170基本上包括用于从CA接收RC的根证据单元171、耦合到根证据单元171的用于基于RC生成伪名证书的伪名证书生成单元172,以及耦合到伪名证书生成单元172的用于传送配备有伪名证书的用户数据的传送单元173。
在根证书是经由网络通过数字请求被请求的情况下,用户装置170还可以包括根证据请求单元174,用于产生RC请求,并将该请求传送到CA。
要被验证者验证的用户数据可以是公钥、不可比公钥、匿名公钥等。在匿名公钥的情况下,用户装置170还可以包括匿名公钥生成单元175,用于生成匿名公钥。匿名公钥生成单元175的详细结构可以在上述APK技术的描述中找到。当要通过伪名证书认证的用户数据不是匿名公钥时,匿名公钥生成单元175可以被相应的数据生成单元代替。
如果RC的颁发需要用户与CA之间的证明过程,或者鉴别过程中验证者要求知识证明,则用户装置170还可以包括证明单元176,用于执行与CA或者验证者之间的证明操作。
上述单元可以各自包括用于存储各个单元所使用的数据的存储器。在另一种实现方式中,用户装置170可以包括存储单元177,用于存储在装置的操作期间,所有单元使用的数据。
在大多数情况下,用户也需要验证其他用户的数据。因此,用户装置可以包括验证单元178,用于通过附到从其他用户接收的数据上的伪名证书来验证其他用户的数据。
根证据单元171、传送单元173、根证据请求单元174、证明单元176和验证单元178可以通过各自的通信端口或者通过用户装置170中耦合到上述单元的通信单元,来向/从网络发送/接收数据,其中通信单元用于经由网络与其他装置进行通信。
上述单元彼此耦合以执行根据本发明第一实施例的过程。当这些单元被实现为硬件模块时,它们可以通过数据总线彼此耦合。
图18是示出了根据第一实施例的CA的一个示例装置180的框图。
如图18所示,CA装置180基本上包括用于计算系统参数的系统参数计算单元181、耦合到系统参数计算单元181的用于公布由网络的全部用户共享的参数的系统参数公布单元182、耦合到网络的用于接收用户的RC请求的根证据请求接收单元183,以及耦合到根证据请求接收单元183和所述系统参数计算单元181的用于响应于根证据请求而生成RC的根证据生成单元184。
在颁发根证据之前需要检验用户RC请求的情况中,CA装置180还包括耦合到根证据请求接收单元183的检验单元185,用于响应于用户的RC请求,执行身份检验。身份检验可以包括上述的知识证明过程。
在希望具有追查能力的情况中,CA装置还可以包括耦合到网络的追查单元186,用于使用所存储的由根证据生成单元184生成的根证据的解蔽值,追查从验证者收到的伪名证书的拥有者的身份。
上述单元可以各自包括用于存储各个单元所用数据的存储器。在另一种实现方式中,CA装置180可以包括存储单元187,用于存储装置的操作过程中,全部单元所使用的数据。例如,根证据生成单元184所生成的RC可以被存储在根证据生成单元184内部的存储器中,或者存储在存储单元187中。
上述单元彼此耦合以执行根据本发明第一实施例的过程。当这些单元被实现为硬件模块时,它们可以通过数据总线彼此耦合。
系统参数公布单元182和根证据请求接收单元183可以通过各自的通信端口或者CA装置180中的通信单元来向/从网络发送/接收数据,其中通信单元耦合到上述单元,用于经由网络与其他装置进行通信。
上述用户装置和CA装置仅仅是示例。不管怎样,这些装置中所包括的部件并不限于上述这些单元,其具体的结构可以改变或被修改。例如,装置可以包括在网络中的计算设备中通常安装的其他单元,例如用于输入和输出数据的I/O接口、用于经由网络连接到其他装置的各种通信接口、用于控制各个单元的操作的控制器,等等。由于这些单元是本领域公知的,因此在图中被省略,并且本领域的技术人员可以容易地考虑到将它们添加到上述装置中。
已经作为一个示例描述的本发明的第一实施例。但是,本发明并不限于该第一实施例中所描述的具体细节。例如,用户的公钥可以通过其他方法生成。不可比公钥(参见B.R.Waters,E.W.Felten,A.Sahai,ReceiverAnonymity via Incomparable Public Keys,CCS’03,Washington,DC,USA,PP.112~121,2003)可以被用作要被伪名证明被认证的用户数据。并且,被伪名证书认证的用户数据并不限于公钥,而可以是用户发出的任何数据或消息。此外,实施例可以被修改以适应其他证明技术和CA方法。除了图14中所描述的算法,也可以使用其他算法来从RC计算伪名证书,只要该算法保证伪名证书保持了与RC相同的可验证证据或秘密,并且同时使得验证者看不到与所述数据的拥有者的身份有关的信息。第一实施例已经描述了根公钥是(g,yu)。但是,根公钥也可以是匿名公钥(gr,yur)中的任何一个。
在下面的说明中,将参考图19到图24描述根据本发明的第二实施例。
本发明的第二实施例利用组签名方案来产生公钥的伪名证书。这里,公钥可以是不可比公钥、匿名公钥或者用户的任何其他公钥。
在过去的15年里,组签名方案被很好地研究(参见D.Chaum,E.vanHeyst,Group Signatures,Advances in Cryptology-EUROCRYPTO’91,pp.257~265,1991;J.Camenisch,M.Michels,A Group Signature Scheme Based onan RSA-Variant,Advances in Cryptology-ASIACRYPT’98,pp.160~174,1998;和G.Ateniese,J.Camenisch,M.Joye,G.Tsudik,A Practical andProvably Secure Coalition-Resistant Group Signature Scheme,Advances inCryptology-CRYPTO’2000,pp.255~270,2000,它们通过引用结合于此)。简要地说,有一个组管理员,其建立一个组,并管理组成员的接纳和撤销。所有组成员共享相同的组公钥PKg,但是每个成员Ui具有不同的组私钥SKi。给定消息m,组成员Ui可以以组的名义将该消息签名为s=SIG(m,PKg,SKi),其中,SIG(*)是特定的组签名算法。对消息m的签名s可以通过组公钥PKg被验证,即,存在签名验证算法VERIF(*),对于给定的PKg、s和m,当且仅当s=SIG(m,PKg,SKi)时,VERIF(s,m,PKg)输出“有效”。但是,验证者很难确定s的签名者Ui。从验证者的角度,组成员具有相等的概率成为s的签名者。这种有趣的特性正是“组签名”名字的由来。
一些组签名方案提供了这样的能力,其中组管理员能够确定s的签名者,即,存在追查算法TRACE(*),对于给定的PKg、s和SKm,当且仅当s=SIG(m,PKg,SKi)时,TRACE(s,PKg,SKm)输出Ui,其中,SKm是组管理员的私钥。
图19是示意性示出了根据本发明第二实施例的系统体系结构的框图。
根据第二实施例,受信实体是由组管理员M建立的组190。用户U是组中的一个成员,并且具有分配给他/她的组私钥。在传统的组签名方案中,消息以组的名义被签名。然而,在本发明的第二实施例中,组签名被用于生成公钥的伪名证书。
图20是示出了根据第二实施例的伪名认证方法的示例的流程图。
在初始化阶段201,组管理员建立组,并公布组公钥PKg。另外,组管理员将私钥SKm保密,该私钥SKm将被用于追查行为不当的用户。
在步骤202,组成员U加入组中,并得到他/她的用于该组的组私钥SKu。
在步骤203,U计算匿名公钥apk=gr,yur)(modp)。
在步骤204,U将匿名公钥apk作为一条消息,并将apk数字签名为s=SIG(apk,PKg,SKu)。很明显,s是对apk的组签名。
在步骤205,U将s和apk提交给验证者用于验证,并且验证者在步骤206验证用户的匿名公钥。由于VERIF(s,apk,PKg)将输出有效响应,所以apk将被验证者接受,认为其是由匿名组成员数字签名的。因此,s保证了匿名组成员拥有该匿名公钥apk。也就是说,s是对匿名公钥apk的伪名证书。
很明显,根据本发明的第二实施例中的根证据是用户的组私钥。
在需要追查的情况中,s将被呈现给组管理员M,由于追查算法TRACE(s,PKg,SKm)将输出U,所以组管理员可以基于s确定并揭露U的身份。
在上述示例中,用户数据时匿名公钥。但是,用户数据也可以是用户的其他数据,例如不可比公钥或者用户的任何其他公钥。
根据本发明第二实施例的用户装置与图17所示的装置170类似。在第二实施例中,根证据单元从组管理员处接收用户的组私钥,伪名证书生成单元通过组签名的方式生成伪名证书,并且传送单元将配备有伪名证书的用户数据传送到网络。第二实施例中的根证据请求单元被用于产生对于组成员资格的请求,并将该请求发送给组管理员。
如上面所讨论的,通过组签名验证算法,验证者可以确信用户数据是被组成员认证的。但是,在许多情况中,验证者需要知道发送以组成员名义签名的数据的用户是否是该数据的真正拥有者,或者是否是对该数据签名的真正的组成员。
图21是示出了利用传统的组签名方案,一个证明者向验证者证明他/她处于组中的过程的示图。
如图21所示,开始时,验证者产生一个质询消息(步骤211),并将其发送给证明者。接收到来自验证者的质询消息后,证明者使用他/她的组私钥对该质询消息签名(步骤212),并将所生成的组签名发送回验证者。然后,验证者利用组公钥对接收自证明者的数据执行组签名验证(步骤213)。正确的验证使得验证者确信该证明者是在该组中的。
注意,利用传统的组签名方案,证明者响应于由验证者生成的质询消息,以在线的方式计算对于该质询消息的组签名。这样的组签名在线计算是耗时并且高成本的。此外,如果证明者多次与验证者联系,每次验证者都生成新的质询消息,证明者不得不计算多个组签名。
利用根据本发明的第二实施例的方案,可以更方便和有效地验证用户数据(即,他/她的公钥)和伪名证书的有效性。
图22是示出了根据本发明的第二实施例的方案,用于验证伪名证书和公钥的有效性的一个示例过程的示图。
如图22所示,证明者使用他/她的组私钥预先对公钥进行签名,生成组签名(步骤221)。当证明者希望联系验证者时,他/她将公钥连同所产生的伪名证书(即,与该公钥相对应的组签名)发送给验证者。从证明者接收到公钥和伪名证书后,验证者通过组公钥和该伪名证书,对该用户数据执行组签名验证(步骤222)。正确的验证使得验证者确信该公钥是被组成员签名的。如果验证者希望知道该用户是否就是对该公钥签名的组成员,则验证者可以要求证明者证明与该公钥有关的知识。在步骤223和224,对该公钥展开知识证明。具体的证明过程与图17中所示的类似。如果证明者向验证者证明了与该公钥相对应的私钥的知识,则验证者可以相信该证明者。
显然,利用根据本发明的上述方法,伪名证书可以被预先计算,而不是响应于验证者的质询以在线的方式计算。也就是说,证明者可以在证明者侧的计算设备空闲的时间计算组签名。在与验证者联系之前,多个伪名证书和公钥可以是已经计算好的。当与验证者联系时,证明者只需要将公钥连同伪名证书一起发送给验证者。验证者检查伪名证书的正确性。然后,证明者仅向验证者证明与该公钥相对应的私钥的知识。这种证明方法比签署组签名更加高效。
图23是示出了利用根据本发明的第二实施例的方案,用于验证伪名证书和公钥的有效性的另一示例过程的示图。
假设验证者已经存储了曾经正确通过验证的公钥。当验证者从证明者处接收到具有伪名证书的公钥(步骤231)时,验证者将所接收的公钥与已经被验证正确并存储的那些公钥相比较(步骤232)。如果所接收的公钥与所存储的公钥中的一个相匹配,则验证者可以直接进行关于该公钥的知识证明(步骤235)。如果没有匹配的公钥,则验证者通过所接收的公钥的伪名证书和组公钥,对所接收的公钥执行组签名验证(步骤233)。如果所接收的伪名证书通过了组签名验证,则验证者将所接收的公钥存储为已经被验证正确的公钥(步骤234),然后过程进行到步骤235。否则,过程结束。
如果证明者决定用相同的伪名证书多次联系验证者时,验证者只需要在第一次的时候检查伪名证书的正确性。在以后的会话中,验证者简单地将从证明者处接收的公钥与其本地存储的公钥进行匹配。如果存在匹配的情况,则验证者和证明者可以直接进行到关于该公钥的知识证明。这种用法更加高效,并且匿名性和信任都被保持了。
图24是示出了根据本发明第二实施例的验证单元的一个示例的框图。验证单元240被设置在验证者的计算装置中,或者可以被设置在用户装置中作为图17所示的验证单元178。
验证单元240包括验证模块245,用于执行组签名与公钥的验证。其中,验证模块245可以被划分为组签名验证部分241和公钥知识验证部分242。当接收到来自证明者的配备有组签名的公钥时,验证模块245使用组签名验证部分241,利用所接收的公钥和组公钥验证组签名。当接收自证明者的公钥被组签名验证部分241验证合格之后,公钥知识验证部分242执行与证明者的关于连同该组签名一起接收的公钥的知识证明。
验证单元240还可以包括耦合到验证模块245的存储器243,以及耦合到验证模块245和存储器243的比较模块244。存储器243存储曾经被验证正确的公钥。当接收到来自证明者的公钥和组签名时,比较模块244将所接收的公钥与存储器243中所存储的公钥相比较,并将比较结果通知给验证模块245。如果所接收的公钥与曾经被验证正确的公钥中的一个相同,则验证模块245跳过组签名验证算法的计算,直接使用公钥知识验证部分242执行与证明者的关于连同该组签名一起接收的公钥的知识证明。如果所接收的公钥与所存储的公钥中的任何一个都不匹配,则验证模块245使用组签名验证部分241进行如上所述的组签名验证算法的计算。
根据本发明,在受信实体为CA的情况中,也可以以类似的方式进行证书和公钥的验证。参考图15,用户计算匿名公钥和伪名证书之后,将匿名公钥连同配备的伪名证书发送给验证者(步骤151)。然后,验证者与用户执行知识证明来验证伪名证书和匿名公钥(步骤153)。如步骤153所示,利用本发明,通过一次知识证明就可以同时验证伪名证书与匿名公钥。在一种实现方式中,用户离线计算匿名公钥、伪名证书以及知识证明所需数据。验证者收到这些数据之后,进行本地离线计算就可以验证伪名证书与公钥。在另一种实现方式中,验证者存储曾经验证正确的公钥。在验证用户发送的证书和公钥时,验证者首先将用户的公钥与所存储的公钥相比较。如果匹配,则说明该公钥已经是经过认证的。验证者可以在与用户进行知识证明时,省略关于证书的知识证明的计算,而仅仅与用户进行关于公钥的知识的证明。相比于传统方案中的在线验证或者证书与公钥的分步验证,根据本发明的上述验证方式更加高效。
在受信实体为CA的情况中,验证者装置中的验证单元同样包括一个验证模块。在一种实现方式中,验证单元执行例如图15的步骤153所示的知识证明。在另一种实现方式中,验证单元还可以包括与验证模块耦合的存储器以及与验证模块和存储器耦合的比较模块。其中,存储器存储曾经被验证正确的公钥。当接收到来自证明者的证书和公钥时,比较模块将所接收的公钥与存储器中所存储的公钥相比较,并将比较结果通知给验证模块。如果所接收的公钥与曾经被验证正确的公钥中的一个相同,则验证模块仅进行与证明者的关于公钥的知识证明,而省略知识证明计算中关于证书的知识的计算。如果所接收的公钥与所存储的公钥中的任何一个都不匹配,则验证模块进行涉及证书和公钥的知识证明计算,例如图15的步骤153所示。
已经描述了两种情况中根据本发明进行证书和用户数据的验证的过程以及验证装置的结构。但是本发明并不限于上面描述的具体细节。本领域的技术人员可以根据具体应用和算法,对验证过程和验证装置作出相应的修改和改变。
如从上述描述可见的,根据本发明,用户可以生成可信赖的匿名公钥,其中该匿名公钥通过伪名证书被保证为是由受信实体认证的。用户隐私保护的功能完全是分布式的。用户自己生成不同的匿名公钥,并且也自己生成不同的伪名证书。在根据本发明的一个实施例中,CA的介入被最小化,从而实现轻量级的认证机构变得可能。此外,因为伪名证书在CA或者组管理员的级别上是可追查的,所以用户不能滥用匿名能力。
本发明可以实现为硬件、软件、固件或者它们的组合,并且可以用在它们的系统、子系统、部件或者子部件中。当以软件方式实现时,本发明的元素实质上是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信网络上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
本发明可以以其他的具体形式实现,而不脱离其精神和本质特征。例如,特定实施例中所描述的算法可以被修改,而系统体系结构并不脱离本发明的基本精神。因此,当前的实施例在所有方面都被看作是示例性的而非限定性的,本发明的范围由所附权利要求而非上述描述定义,并且,落入权利要求的含义和等同物的范围内的全部改变从而都被包括在本发明的范围之中。
权利要求
1.一种用于用户在通信网络中认证数据的计算装置,所述网络包括受信实体和至少一个验证者,所述计算装置包括可操作地耦合到所述网络的根证据单元,所述根证据单元适合于从所述受信实体接收根证据;可操作地耦合到所述根证据单元的伪名证书生成单元,所述伪名证书生成单元适合于基于所述根证据生成至少一个伪名证书;和可操作地耦合到所述伪名证书生成单元的传送单元,所述传送单元适合于将配备有所述伪名证书的所述用户数据传送到所述通信网络。
2.根据权利要求1所述的计算装置,其中,所述伪名证书被生成为不包含所述验证者能够从其获得所述用户的真实身份的信息。
3.根据权利要求1所述的计算装置,其中,所述用户数据包含所述用户的公钥。
4.根据权利要求3所述的计算装置,其中,所述用户数据中包含的公钥是不可比公钥。
5.根据权利要求3所述的计算装置,其中所述用户数据中包含的公钥是匿名公钥,并且所述计算装置还包括可操作地耦合到所述传送单元的匿名公钥生成单元,所述匿名公钥生成单元适合于生成所述用户的多个匿名公钥,所述多个匿名公钥对应于所述用户的一个私钥。
6.根据权利要求5所述的计算装置,其中,所述匿名公钥生成单元从所述私钥和一个生成子生成所述多个匿名公钥,所述私钥和所述生成子来自一个预定的群。
7.根据权利要求1所述的计算装置,其中,所述根证据是由所述受信实体颁发给所述用户的根证书。
8.根据权利要求1所述的计算装置,其中,所述根证据是所述用户的组私钥,并且其中,所述伪名证书是所述用户数据的组签名。
9.根据权利要求1所述的计算装置,还包括可操作地耦合到所述网络的根证据请求单元,所述根证据请求单元适合于生成对于所述根证据的请求,并将所述请求传送到所述受信实体。
10.根据权利要求1所述的计算装置,还包括可操作地耦合到所述网络的证明单元,所述证明单元适合于与所述受信实体或者所述验证者执行知识证明。
11.一种用于用户在通信网络中认证数据的方法,所述网络包括受信实体和至少一个验证者,所述方法包括从所述受信实体接收根证据;基于所述根证据生成至少一个伪名证书;以及将配备有一个伪名证书的所述用户的数据传送给一个验证者。
12.根据权利要求11所述的方法,其中,所述伪名证书被生成为不包含所述验证者能够从其获得所述用户的真实身份的信息。
13.根据权利要求11所述的方法,其中,所述用户数据包含所述用户的公钥。
14.根据权利要求13所述的方法,其中,所述用户数据中包含的公钥是不可比公钥。
15.根据权利要求13所述的方法,其中所述用户数据中包含的公钥是匿名公钥,并且所述方法还包括由所述用户生成多个匿名公钥,所述多个匿名公钥对应于所述用户的一个私钥。
16.根据权利要求15所述的方法,其中,所述多个匿名公钥生成自所述私钥和一个生成子,所述私钥和所述生成子来自一个预定的群。
17.根据权利要求11所述的方法,其中,所述根证据是由所述受信实体颁发给所述用户的根证书。
18.根据权利要求11所述的方法,其中,所述根证据是所述用户的组私钥,并且其中,所述伪名证书是所述用户数据的组签名。
19.根据权利要求11所述的方法,还包括生成对于所述根证据的请求,以及将所述请求传送到所述受信实体。
20.根据权利要求11所述的方法,还包括与所述受信实体或者所述验证者执行知识证明。
21.一种用于在通信网络中管理证书的装置,所述网络包括至少一个用户和至少一个验证者,所述装置包括系统参数计算单元,所述系统参数计算单元适合于计算系统参数;可操作地耦合到所述系统参数计算单元的参数公布单元,所述参数公布单元适合于公布要被所述用户和所述验证者共享的共享系统参数;可操作地耦合到所述网络的根证据请求接收单元,所述根证据接收单元适合于接收来自所述用户的根证据请求;和可操作地耦合到所述根证据请求接收单元和所述系统参数计算单元的根证据生成单元,所述根证据生成单元适合于响应于所述根证据请求,为所述用户生成根证据,所述根证据被所述用户用于生成多个伪名证书。
22.根据权利要求21所述的装置,其中,所述根证据是颁发给所述用户的公钥的根证书。
23.根据权利要求21所述的装置,其中,所述根证据是颁发给所述用户的根匿名公钥的根证书。
24.根据权利要求21所述的装置,其中,所述根证据是颁发给所述用户的组私钥。
25.根据权利要求21所述的装置,还包括可操作地耦合到所述根证据生成单元的检验单元,所述检验单元适合于对所述根证据请求执行身份检验。
26.根据权利要求21所述的装置,还包括可操作地耦合到所述网络的追查单元,所述追查单元适合于基于所述根证据,追查接收自所述验证者的伪名证书的拥有者的身份。
27.一种用于在通信网络中管理证书的方法,所述网络包括至少一个用户和至少一个验证者,所述方法包括计算系统参数;公布要被所述用户和所述验证者共享的共享系统参数;接收来自所述用户的根证据请求;以及响应于所述根证据请求,为所述用户生成根证据,所述根证据被所述用户用于生成多个伪名证书。
28.根据权利要求27所述的方法,其中,所述生成根证据包括生成颁发给所述用户的公钥的根证书。
29.根据权利要求27所述的方法,其中,所述生成根证据包括生成颁发给所述用户的根匿名公钥的根证书。
30.根据权利要求27所述的方法,其中,所述生成根证据包括生成颁发给所述用户的组私钥。
31.根据权利要求27所述的方法,还包括在接收所述根证据请求之后,对所述根证据请求执行身份检验。
32.根据权利要求27所述的方法,还包括基于所述根证据,追查接收自所述验证者的伪名证书的拥有者的身份。
33.一种用于网络通信中的用户的可延展伪名证书系统,所述网络包括一个受信实体,所述系统包括可操作地耦合到所述网络的根证据单元,所述根证据单元适合于从所述受信实体接收根证据;可操作地耦合到所述根证据单元的伪名证书生成单元,所述伪名证书生成单元适合于基于所述根证据生成至少一个伪名证书;可操作地耦合到所述伪名证书生成单元的传送单元,所述传送单元适合于将配备有所述伪名证书的所述用户的数据传送到所述通信网络;和可操作地耦合到所述通信网络的验证者单元,所述验证者单元适合于通过接收到的伪名证书验证所述用户的数据。
34.根据权利要求33所述的系统,其中,所述伪名证书被生成为不包含所述验证者单元能够从其获得所述用户的真实身份的信息。
35.根据权利要求33所述的系统,其中,所述用户数据包含所述用户的公钥。
36.根据权利要求35所述的系统,其中,所述用户数据中包含的公钥是不可比公钥。
37.根据权利要求35所述的系统,其中所述用户数据中包含的公钥是匿名公钥,并且所述系统还包括可操作地耦合到所述传送单元的匿名公钥生成单元,所述匿名公钥生成单元适合于生成所述用户的多个匿名公钥,所述多个匿名公钥对应于所述用户的一个私钥。
38.根据权利要求37所述的系统,其中,所述匿名公钥生成单元从所述私钥和一个生成子生成所述多个匿名公钥,所述私钥和所述生成子来自一个预定的群。
39.根据权利要求33所述的系统,其中,所述根证据是由所述受信实体颁发给所述用户的根证书。
40.根据权利要求33所述的系统,其中,所述根证据是所述用户的组私钥,并且其中,所述伪名证书是所述用户数据的组签名。
41.根据权利要求33所述的系统,其中,所述验证者单元包括验证模块,用于验证所述伪名证书和所述用户数据。
42.根据权利要求41所述的系统,其中,所述验证者单元还包括耦合到所述验证模块的存储器,所述存储器用于存储已经被验证正确的数据;和可操作地耦合到所述存储器和所述验证模块的比较模块,所述比较模块适合于将接收到的用户数据与所述存储的数据相比较。
43.根据权利要求33所述的系统,还包括可操作地耦合到所述验证者单元的追查单元,所述追查单元适合于基于所述根证据,追查接收自所述验证者单元的伪名证书的拥有者的身份。
44.一种用于在通信网络中通过伪名证书认证用户数据的方法,所述网络包括受信实体和至少一个验证者,所述方法包括从所述受信实体向所述用户颁发根证据;基于所述根证据,由所述用户生成至少一个伪名证书;以及将配备有一个伪名证书的所述用户数据传送给一个验证者,所述验证者通过所述伪名证书验证所述用户数据。
45.根据权利要求44所述的方法,其中,所述伪名证书所述伪名证书被生成为不包含所述验证者能够从其获得所述用户的真实身份的信息。
46.根据权利要求44所述的方法,其中,所述用户数据包含所述用户的公钥。
47.根据权利要求46所述的方法,其中,所述用户数据中包含的公钥是不可比公钥。
48.根据权利要求46所述的方法,其中所述用户数据中包含的公钥是匿名公钥,并且所述方法还包括由所述用户生成多个匿名公钥,所述多个匿名公钥对应于所述用户的一个私钥。
49.根据权利要求48所述的方法,其中,所述多个匿名公钥生成自所述私钥和一个生成子,所述私钥和所述生成子来自一个预定的群。
50.根据权利要求44所述的方法,其中,所述颁发根证据包括为所述用户的公钥颁发根证书。
51.根据权利要求44所述的方法,其中,所述颁发根证据包括对所述用户颁发组私钥,并且其中,所述生成至少一个伪名证书包括生成所述用户数据的组签名。
52.根据权利要求44所述的方法,其中,所述验证者通过与所述用户执行知识证明来验证所述伪名证书和所述用户数据。
53.根据权利要求44所述的方法,其中,所述验证者通过以下步骤验证所述伪名证书和所述用户数据存储已经正确被所述验证者验证的数据;将接收自所述用户的用户数据与所述存储的数据相比较;如果所述用户数据与所述存储的数据中的一个相匹配,则与所述用户执行关于所述用户数据的知识证明;并且如果所述用户数据与所述存储的数据中的任何一个都不匹配,则对所述伪名证书和所述用户数据执行验证。
54.根据权利要求44所述的方法,还包括基于所述根证据,由所述受信实体追查接收自所述验证者的伪名证书的拥有者的身份。
55.一种具有机器可读介质的制品,所述机器可读介质上存储有指令,所述指令当被一个或多个处理器执行时,使得所述处理器从受信实体接收根证据;从所述根证据生成至少一个伪名证书;以及将配备有一个所述伪名证书的数据传送给一个验证者。
56.根据权利要求55所述的制品,其中,所述数据是匿名公钥。
57.一种具有机器可读介质的制品,所述机器可读介质上存储有指令,所述指令当被一个或多个处理器执行时,使得所述处理器计算系统参数;公布要被网络的所有用户共享的共享系统参数;接收来自所述网络的一个用户的根证据请求;以及为所述用户生成根证据,所述根证据被所述用户用于生成多个伪名证书。
58.根据权利要求55所述的制品,其中,所述根证据是所述用户的根匿名公钥的根证书。
全文摘要
本发明提供了一种用于通信网络的可延展伪名证书系统和方法。根据本发明的一个实施例,用户从受信实体获得根证据,基于该根证据生成一个或多个伪名证书,并每个都配备有一个伪名证书的匿名公钥发送到多个验证者。通过使用伪名证书,验证者相信用户的匿名公钥是被受信实体认证的。伪名证书不包含验证者可从其得到用户真实身份的信息。利用可延展伪名证书系统,受信实体只需要对用户的根公钥认证一次。用户可以自己生成大量匿名公钥,其中每个匿名公钥配备一个不同的伪名证书。
文档编号H04L9/30GK1937496SQ20051010356
公开日2007年3月28日 申请日期2005年9月21日 优先权日2005年9月21日
发明者曾珂, 藤田友之, 薛敏宇 申请人:日电(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1