组合式数字证书的制作方法

文档序号:7993750阅读:377来源:国知局
组合式数字证书的制作方法
【专利摘要】一种系统(2),该系统(2)可包括:存储器(6)以及处理单元(8),该存储器存储计算机可读指令;该处理单元访问该存储器(6)并且执行计算机可读指令。计算机可读指令可包括证书管理器(10),其被配置以请求产生N个随机值,其中N是大于或者等于一的整数;证书管理器(10)可还被配置以从至少两个不同证书机构(12)中的至少一个证书机构(12)请求数字证书。该请求可包括N个随机值中的给定一个。证书管理器(10)可还被配置以产生公私钥对的私钥(16),其中所述私钥(16)是基于至少两个证书机构(12)的每一个的私钥产生的。
【专利说明】组合式数字证书
【技术领域】
[0001]本发明一般涉及数字证书,更具体地涉及用于产生组合式数字证书的设备和方法。
【背景技术】
[0002]公钥加密是指要求两个不同钥匙的加密系统,一个用于锁定或者加密明码文本,另一个用于解锁或者解密密文。这些钥匙中的一个是公开或者公共的(公钥),另一个保持私有(私钥)。如果锁定/加密钥匙是公开的那个,则系统使得能够进行从公众到解锁钥匙的拥有者的私有通信。如果解锁/解密钥匙是公开的那个,则系统用作被私钥的拥有者锁定的文档的签名验证器。
[0003]可以使用若干不同的公钥原语来提供数字签名。一些是基于离散对数问题并且称为基于离散对数的公钥加密系统。公钥加密系统可以在各种方案中用以提供保密性、完整性、认证或者认可功能。可通过诸如公钥数字证书这样的数字证书来实现认可或者认证。公钥数字证书可以包括两部分:数据和数据的签名。数据可包括公钥和受信第三方(证书机构,CA)的订户的唯一标识符。在订户的公钥上的CA的签名在订户的公钥和订户的身份(ID)之间传达真实绑定。

【发明内容】

[0004]一个示例涉及系统,该系统可包括存储器以及处理单元,该存储器存储计算机可读指令;该处理单元访问该存储器并且执行计算机可读指令。计算机可读指令可包括证书管理器,其被配置以请求产生N个随机值,其中N是大于或者等于一的整数;证书管理器可还被配置以从至少两个证书机构中的至少一个证书机构请求数字证书。该请求可包括N个随机值中的给定一个。证书管理器可还被配置以产生公私钥对的私钥,其中所述私钥是基于至少两个证书机构的每一个的私钥产生的。
[0005]另一个示例涉及用于产生组合式数字证书的方法。该方法可包括:在计算机产生N个值,其中N是大于或者等于二的整数;该方法可还包括:从所述计算机向N个证书机构中的对应证书机构提供包括N个随机值中的给定一个的请求。该方法可还包括:在所述计算机从所述N个证书机构中的每个接收数字证书;该方法可还包括:在所述计算机基于从所述N个证书机构的每一个接收到的数据的组合产生针对所述计算机的私钥;该方法可还包括:在所述计算机基于从所述N个证书机构的每一个接收到的每一个数字证书的组合产生组合式数字证书。
[0006]再一个示例涉及用于产生组合式数字证书的方法。该方法可包括:在计算机产生随机值。该方法可还包括:将所述随机值从所述计算机提供到两个证书机构中的第一个;该方法可还包括:在所述计算机从所述两个证书机构中的第二个接收数字证书。该数字证书可以基于在第一个证书机构产生的数字证书。该方法可还包括:在所述计算机基于来自所述两个证书机构的每一个的数字产生针对所述计算机的私钥;该方法可还包括:在所述 计算机基于在所述计算机接收到的数字证书中包括的数据产生组合式数字证书。
【专利附图】

【附图说明】
[0007]图1示出用于产生组合式数字证书的系统的示例。
[0008]图2A和图2B示出用于产生组合式证书的示例方法的流程图。
[0009]图3A和图3B示出用于产生组合式证书的示例方法的另一个流程图。
[0010]图4示出用于产生组合式数字证书的系统的另一个示例。
【具体实施方式】
[0011 ] 在一个示例中,可采用计算机,诸如加密处理器来产生并且管理组合式数字证书。组合式数字证书可包括用于产生公钥的数据,该公钥是基于从多个证书机构接收到的数据产生的。另外,计算机还可产生对应的私钥,该私钥可以与组合式数字证书分开(并且安全地)存储。私钥还可基于从多个证书机构提供的数据。这样,即使未许可的用户(例如,黑客)破坏多个证书机构中的一个,这种未许可的用户不能够确定私钥。
[0012]图1示出用于产生和管理组合式数字证书3的系统2的示例。可通过采用任意离散对数公钥系统诸如,但不限于艾尔伽马而(El-Gamal)签名、斯诺尔(Schnorr)签名、数字安全算法(DSA)或者其变体来产生组合式数字证书3。这些方案中的任何一个可使用椭圆曲线加密法(ECC),其固有地提供低存储和计算要求。系统2可包括例如计算机4,其包括用于存储机器可读指令的存储器6。计算机4可以被实现成例如加密处理器、专用集成电路芯片(ASIC)、智能卡、智能电话、台式计算机、笔记本计算机等。存储器6可以被实现为例如非瞬时性计算机可读介质,诸如,随机存取存储器(RAM)、闪速存储器、硬盘驱动器等。存储器6的一些部分在被请求时可以被外部系统访问。然而,在一些不例中,存储器6的一些部分可以是安全的并且仅可由计算机4的内部部件访问。计算机4可还包括用于访问存储器6和执行机器可读指令的处理单元8。处理单元8可以例如实现为处理器核。存储器6可包括证书管理器10,其可产生、修改和/或管理组合式数字证书3,该组合式数字证书3可还存储在存储器6中。应理解的是在其它示例中,证书管理器10可以被存储在另一个系统上,诸如外部系统、服务器或者主机系统,诸如包含计算机4的智能电话或者其它装置。
[0013]证书管理器10可响应于满足条件而启动组合式数字证书3的产生。例如,如果计算机4被实现为加密处理器,则证书管理器10可响应于来自另一个系统的激活请求启动数字证书的产生。在其它示例中,证书管理器10可以响应于用户输入来启动产生组合式数字证书3。
[0014]计算机4可通过网络14与N个证书机构12通信,其中N是大于等于二的整数。网络14可以被实现为例如公共网络(例如,因特网)、私有网络等。N个证书机构12中的每一个证书机构12可被实现为发行数字证书的系统。数字证书以证书的命名主体证实对公钥的所有权。这允许其它(第三方)依靠签名或者对应于被认证的公钥的私钥进行的认定。在这种信任关系的模型中,1-N个证书机构12中的每一个是被证书的主体(所有者)和依靠证书的第三方这两者信任的受信第三方。
[0015]在一个示例中,响应于启动组合式数字证书3的产生,证书管理器10可请求由处理单元8产生N个随机数,这些随机数可被称为“rl...rN”。应注意的是在一些示例中,证书管理器10在相对大时间段上可提供产生随机数的分开的请求。例如,证书处理器10可被配置以请求在制造时产生rl。另外,证书管理器10可被配置以请求在将计算机4提供到客户场所之后产生r2-rN。作为一个示例,计算机4可以嵌入有rl,并且可被配置以在客户场所激活时请求产生r2-rN。
[0016]证书管理器10可发送rl (或者其倍数)到证书机构I。作为响应,证书机构I可返回数字证书1,其可包括用于产生针对计算机4的公钥的数据,其中该公钥与证书机构I关联。证书机构I还可包括数据,诸如用于产生对应于与证书机构I关联的公钥的私钥的整数。应注意在一些示例中,数字证书I和用于产生私钥和与证书机构I关联的公钥的数据在制造计算机4时可被嵌入在计算机4中。另外,证书管理器10可发送r2...rN到2-N个证书机构12的每一个的对应证书机构12。作为响应,2-N个证书机构12的每一个可向计算机4提供对应的数字证书,以及用于产生公钥和针对计算机4的对应私钥的数据,该数据可被称为证书数据,计算机4与对应的2-N个证书机构12关联的。证书管理器10和/或处理单元8可采用由1-N个证书机构12的每一个提供的证书数据来产生针对计算机4的私钥,该私钥可被称为Skeyl6。另外,在一些示例中,证书管理器10还可提供基于数字证书1-N的公钥数据18以用于产生针对计算机4的对应于Skeyl6的公钥,其可被称为Pkey。在一些示例中,公钥数据18可被提供到第三方。在其它示例中,公钥数据18可由第三方通过其它方法(例如,登记服务)知道。在一些示例中,证书管理器10还可产生组合式证书3,其可包括公钥数据18。在一些示例中,组合式证书3还可包括用于标识1-N个证书机构12的每一个的数据。通过采用这个技术,证书管理器10可产生基于由1-N个证书机构12的每一个提供的数字证书的组合式数字证书3。另外,通过采用这个技术,1-N个证书机构12的每一个都不需要彼此通信。
[0017]在另一个示例中,在启动产生数字证书时,证书管理器10可请求由处理单元8产生一个随机数,该随机数可被称为rl。证书管理器10可发送rl到证书机构I。作为响应,证书管理器I可产生数字证书I和用于产生针对计算机4的公钥和对应私钥的数据(例如,整数)。证书机构I可将用于产生私钥的数据转发到计算机4并且将数字证书I转发到证书机构2,其中私钥与证书机构I关联。另外,证书机构2可认证证书机构I来确保数字证书I源于证书机构I而不是未授权的来源(例如,黑客)。证书机构2基于数字证书I可产生数字证书2,并且将数字证书2转发到证书管理器10,该数字证书可包括用于产生与证书机构I和证书机构2关联的PKey的公钥数据18。证书机构2还可提供用于产生与证书机构2关联的私钥的数据(例如,整数)。证书管理器10和/或处理单元8基于从证书机构I和证书机构2提供的数据可产生SKeyl6,其中SKeyl6对应于Pkey。证书管理器10和/或处理单元8基于数字证书2还可产生组合式数字证书3。在一些示例中,组合式证书3可包括公钥数据18,其可被用以于PKey。通过采用这个技术,组合式证书的大小可减小,其可节省存储。
[0018]在两种技术中,组合式数字证书3可基于由1-N个证书机构12提供的数据。在第一个技术中,即使未授权的用户(例如,黑客)获得对1-N个证书机构12中任一个的访问权,组合式数字证书3也不被损坏。事实上,为了损坏组合式数字证书3的安全性,这种未授权的用户将需要损坏全部1-N个证书机构12。在第二个技术中,由于证书机构I是由证书机构2认证的,所以由证书机构I提供的数据可被证书机构2信任。因而,组合式数字证书3提供对安全破坏的明显抵抗。另外,这种安全破坏的可能性会在1-N个证书机构12的每一个上分配。
[0019]鉴于上述结构和功能特征,参照图2A、图2B、图3A和图3B将更好地理解示例方法。另外,为了简单说明,图2A、图2B、图3A和图3B的示例方法被示出并且描述为连续执行,本示例不限于所例示的顺序,因为在其它示例中一些动作可以按照与此处示出和描述不同的顺序和/或并行地进行。
[0020]图2A和图2B示出可被采用以产生诸如图1示出的组合式数字证书3的组合式数字证书的不例方法200的不例流程图。
[0021]在210,可以启动证书产生。证书启动例如可由证书管理器启动,诸如图1例示的证书管理器10。在这种情形下,证书管理器可在计算机上执行,诸如加密处理器。在方法200中,可通过采用来自ECC的技术来产生组合式证书。然而,附加地或者另选地可采用其它加密技术。在ECC中,沿着曲线E的点可限定有限场。在一个示例中,算式I可限定用于方法200的有限场:
[0022]算式1:y2 = x3+ax+b ;
[0023]其中,
[0024]P = {xP, yP} ;Q = {xQ, yQ};并且P和Q是在曲线E上的点。
[0025]另外,在ECC中,曲线E上的点的数量可表示为有限整数“η”。在这种情形下,算式2和3可表不η、P和Q之间的关系。
[0026]算式2:nP = P+P+P...+P
[0027]算式3:Q = ηΡ
[0028]在220,可产生N个随机数,例如,由处理器单元,诸如图1例示的处理单元8。N个随机数的每一个可被计算为曲线E上的点。例如,在一个示例中,处理单元可产生随机数ri,其中i是在I到N之间的整数。处理单元可采用椭圆曲线点乘法来计算r1.G,其中G是在产生器点G处限定的曲线E上的数点,使得r1.G是曲线E上的点。在230,证书管理器可将随机数ri提供到对应的证书机构i,该证书机构i可以被实现为图1例示的1-N个证书机构12中的一个。在这种情形下,证书机构i可具有被标记为的私钥和标记为Qqu的公钥。在这种情形下,算式4可描绘之间的关系。应注意的是算式4表示椭圆曲线乘法。
[0029]算式4:QCAi = cCAi.G
[0030]在一个示例中,针对每一个订户A,每一个证书机构i可指派不同的标识号码(例如,唯一 ID)。在这种情形下,每一个标识号码可被实现为由N个证书机构的每一个贡献的每一个标识号码的和(IDa = Σ (IDm))。替代地,证书机构i中的给定一个可具有由其它证书机构i共孚的唯一标识号码。在240,证书机构i可计算Ii1.G,其中Iii是在区间[l,n_l]内的随机数。在250,证书机构i可采用算式5来计算P”应注意的是算式5表示椭圆曲线加法。
[0031]算式5:Pi = T1.G+kj.G
[0032]在260,证书机构i可采用算式6来计算e”
[0033]算式6:ei = H(P」|ID)
[0034]其中H是单向哈希函数A是在算式5中给出的椭圆曲线加法的结果点;并且ID是针对计算机的唯一标识符。
[0035]在270,证书机构i可采用算式7或者另选的算式8来计算Si。
[0036]算式7:Si = ej.Ii1-Cai (mod η)
[0037]算式8:Si = kj-ej.cCAi (mod n)
[0038]在280,证书机构i可提供数字证书i和其它数据到证书管理器,使得至少P1、Si和ei被提供到证书管理器。在290,可判断是否i小于或者等于N。如果判断是肯定的(例如,是),则方法200可进行到300。如果判断是否定的(例如,否),则方法可进行到310 (图2B)。在300,i的值可增加I并且方法可返回到230。
[0039]在图2B的310,证书管理器可计算针对关联的计算机的私钥,该私钥可被标记为
“SKey”。SKey例如可被存储在计算机的安全存储器中。在采用算式7来计算Si的示例中,
证书管理器可采用算式9来计算SKey。替代地,在采用算式8来计算Si的示例中,证书管
理器可采用算式10来计算SKey。
【权利要求】
1.一种产生组合式数字证书的方法,该方法包括: 在计算机产生N个随机值,其中N是大于或者等于二的整数; 从所述计算机向N个证书机构中的对应证书机构提供请求,该请求包括所述N个随机值中的给定一个; 响应于所述请求,在所述计算机从所述N个证书机构中的每一个接收数字证书; 在所述计算机基于从所述N个证书机构的每一个接收到的数据的组合产生针对所述计算机的私钥;以及 在所述计算机基于从所述N个证书机构的每一个接收到的每一个数字证书的组合产生组合式数字证书。
2.根据权利要求1所述的方法,其中,从所述N个证书机构的每一个接收到的每一个数字证书是基于椭圆曲线加密法产生的。
3.根据权利要求2所述的方法,其中,所述N个随机值的每一个表示在椭圆曲线上的点。
4.根据权利要求3所述的方法,其中,来自所述N个证书机构的给定数字证书包括表示所述椭圆曲线上的点的数字的集合,其中在所述椭圆曲线上的所述点是基于所述N个随机值中所述给定一个计算的。
5.根据权利要求2所述的方法,其中,针对所述计算机的所述私钥被配置使得:
6.根据权利要求1所述的方法,其中,所述N个随机值的所述给定一个是在所述计算机的制造时产生的,并且所述N个随机值的剩余部分是在所述计算机的激活之后产生的。
7.根据权利要求1所述的方法,其中,从所述N个证书机构的每一个接收到的每一个数字证书是彼此独立地产生的。
8.—种产生组合式数字证书的方法,该方法包括: 在计算机产生随机值; 将所述随机值提供给两个证书机构中的第一个; 在所述计算机从所述两个证书机构中的第二个接收数字证书,其中所述数字证书基于在所述第一个证书机构产生的数字证书; 在所述计算机基于来自所述两个证书机构的每一个的数字产生针对所述计算机的私钥;以及在所述计算机基于在所述计算机接收到的所述数字证书中包括的数据产生组合式数 据证书。
9.根据权利要求8所述的方法,所述方法还包括:产生与针对所述计算机的所述私钥对应的针对所述计算机的公钥,其中所述公钥基于所述两个证书机构的每一个的公钥。
10.根据权利要求8所述的方法,其中,从所述两个证书机构中的所述第二个接收到的所述数字证书基于椭圆曲线加密法。
11.根据权利要求10所述的方法,其中针对所述计算机的所述私钥被配置使得:
SKey = e (S1+!*) +s2mod η ; 其中: SKey表示针对所述计算机的所述私钥; r表示由所述计算机产生的所述随机值; Si表示从所述两个证书机构中的所述第一个证书机构提供的整数; s2表示从所述两个证书机构中的所述第二个证书机构提供的整数; e表示在所述两个证书机构中的所述第二个证书机构执行的哈希函数的结果;以及 η表示被采用以计算Si和s2的椭圆曲线中的点的数量。
12.根据权利要求 18所述的方法,所述方法还包括在第三方产生对应于SKey的公钥。
13.—种系统,该系统包括: 存储器,其存储计算机可读指令;以及 处理单元,其用于访问所述存储器并且执行所述计算机可读指令; 其中,所述计算机可读指令包括: 证书管理器,该证书管理器被配置以: 请求产生N个随机值,其中N是大于或者等于一的整数; 从至少两个不同证书机构中的至少一个证书机构请求数字证书,其中所述请求包括所述N个随机值中的给定一个;以及 产生公私钥对的私钥,其中,所述私钥是基于所述至少两个不同证书机构的每一个的私钥产生的。
14.根据权利要求13所述的系统,其中,所述证书管理器采用椭圆曲线加密法来产生所述私钥。
15.根据权利要求13所述的系统,其中,所述至少两个不同证书机构包括至少三个不同证书机构。
16.根据权利要求13所述的系统,其中证书管理器还被配置以从所述至少两个证书机构中的另一个请求另一个数字证书,并且其中,由所述至少两个不同证书机构的每一个产生的针对所述证书管理器的所述数字证书是彼此独立地产生的。
17.根据权利要求13所述的系统,其中,由所述至少两个不同证书机构中的另一个证书机构产生的数字证书是基于从所述至少两个不同证书机构的给定证书机构接收到的数据产生的。
18.根据权利要求13所述的系统,其中,所述系统是加密处理器。
19.一种非瞬时计算机可读介质,其具有用于执行方法的计算机可执行指令,该方法包括:请求产生N个随机值,其中N是大于或者等于一的整数; 从至少两个不同证书机构中的至少一个证书机构请求数字证书,其中所述请求包括所述N个随机值中的给定一个;以及 请求产生公私钥对的私钥,其中,所述私钥是基于所述至少两个不同证书机构的每一个的私钥产生的。
【文档编号】H04L9/32GK104012036SQ201280062244
【公开日】2014年8月27日 申请日期:2012年12月17日 优先权日:2011年12月15日
【发明者】E·T·彼得斯 申请人:德克萨斯仪器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1