著录项信息
专利名称 | 隐式认证的公钥 |
申请号 | CN201280039062.2 | 申请日期 | 2012-05-04 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2014-04-30 | 公开/公告号 | CN103765809A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L9/00 | IPC分类号 | H;0;4;L;9;/;0;0查看分类表>
|
申请人 | 塞尔蒂卡姆公司 | 申请人地址 | 加拿大安大略省沃特卢市
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 黑莓有限公司 | 当前权利人 | 黑莓有限公司 |
发明人 | 大卫·威廉·卡拉维兹;格雷戈里·马克·扎韦鲁哈;丹尼尔·理查德·L·布朗 |
代理机构 | 中科专利商标代理有限责任公司 | 代理人 | 赵伟 |
摘要
描述了使用隐式证书的方法、系统和计算机程序。在一些方面,访问隐式证书。所述隐式证书与实体相关联,并且由证书机构生成。所述隐式证书包括所述实体的公钥重构值。访问证书机构公钥信息。所述证书机构公钥信息与颁发所述隐式证书的证书机构相关联。基于对散列函数求值来生成第一值。所述散列函数的求值基于所述证书机构公钥信息和所述实体的公钥重构值。可以基于所述第一值生成或以其他方式使用所述实体的公钥值。
1.一种密码系统中使用的方法,包括:
访问隐式证书,所述隐式证书与实体相关联并且由从属于根证书机构的从属证书机构生成,其中所述隐式证书包括所述实体的公钥重构值;
访问与所述从属证书机构相关联的从属证书机构公钥信息;
访问与所述根证书机构相关联的根证书机构公钥信息;
基于对散列函数求值来生成第一值,其中,对所述散列函数求值根据散列函数输入来产生散列函数输出,所述散列函数输入包括所述从属证书机构公钥信息、所述根证书机构公钥信息以及所述实体的公钥重构值;以及
基于所述第一值生成所述实体的公钥值。
2.根据权利要求1所述的方法,其中,所述从属证书机构包括位于所述根证书机构和第二从属证书机构中间的第一从属证书机构,以及所述实体包括所述从属第二证书机构,以及所述隐式证书基于隐式证书链。
3.根据权利要求1所述的方法,其中,所述实体包括对应机构。
4.根据权利要求1所述的方法,其中,生成所述公钥值包括以下至少之一:
使所述公钥值生效;或者
使用所述公钥值验证来自所述实体的数字签名。
5.根据权利要求1所述的方法,其中,生成所述公钥值包括:对使用所述公钥值的密码函数求值。
6.根据权利要求5所述的方法,其中,对所述密码函数求值不显式地计算所述公钥值。
7.根据权利要求1所述的方法,其中,所述第一值和所述公钥值是由所述实体生成的。
8.根据权利要求1所述的方法,其中,所述第一值和所述公钥值是由所述从属证书机构生成的。
9.根据权利要求1所述的方法,其中,所述第一值和所述公钥值是由依赖所述公钥值的不同的第二实体生成的。
10.根据权利要求1所述的方法,其中,所述从属证书机构公钥信息包括下述值中的至少一个:所述从属证书机构的公钥值或者所述从属证书机构的公钥重构值。
11.一种包括密码模块的计算系统,所述密码模块能够操作用于执行操作,所述操作包括:
访问隐式证书,所述隐式证书与实体相关联并且由从属于根证书机构的从属证书机构生成,其中所述隐式证书包括所述实体的公钥重构值;
访问与所述从属证书机构相关联的从属证书机构公钥信息;
访问与所述根证书机构相关联的根证书机构公钥信息;
基于对散列函数求值来生成第一值,其中,对所述散列函数求值根据散列函数输入来产生散列函数输出,所述散列函数输入包括所述从属证书机构公钥信息、所述根证书机构公钥信息以及所述实体的公钥重构值;以及
基于所述第一值生成所述实体的公钥值。
12.根据权利要求11所述的计算系统,其中,所述密码模块包括签名生成模块。
13.根据权利要求11所述的计算系统,其中,所述密码模块包括签名验证模块。
14.根据权利要求11所述的计算系统,其中,所述密码模块包括证书生成模块。
隐式认证的公钥\n[0001] 优先权要求\n[0002] 本申请要求在2011年6月10日提交的序列号为61/495,788的美国临时申请的优先权,在此通过引用将其全部内容并入本文。\n背景技术\n[0003] 本说明书涉及在密码系统中使用隐式证书。密码系统可以在公共信道上提供安全通信。例如,在公钥密码系统中可以实现数字签名方案。在一些密码系统中,用户基于可信的第三方颁发的证书来验证其他用户的数字签名的真实性。\n附图说明\n[0004] 图1是示例数据通信系统的示意图。\n[0005] 图2是另一示例数据通信系统的示意图。\n[0006] 图3是示例密码系统的示意图。\n[0007] 图4是示出用于在密码系统中执行操作的示例技术的流程图。\n[0008] 图5是示出用于使用数字签名的示例技术的流程图。\n[0009] 在各个图中,类似的参考标号和标记指示类似的要素。\n具体实施方式\n[0010] 可以按照以下技术来生成和/或使用公钥、数字签名或这两者:基于隐式证书来降低特定的攻击将战胜密码机制的可能性的技术。在一些实施例中,一种或多种技术可被实现为针对连锁攻击或其他类型的攻击的对策。这些对策可以代表这样一类解决方案,其中每个解决方案可被用于有效地阻挠敌手伪造隐式证书或与隐式认证的公钥相关联的签名的能力。例如在信赖方是公钥基础设施内的端实体的情况下,在信赖方是从属于另一证书机构的证书机构的情况下,或者在其他情况下,可以有效地实现这种技术。\n[0011] 如此,隐式证书方案可以包括一个或更多个对策组件。在一些实例中,对策组件被应用在用于根据其隐式证书来重构使用者(subject)公钥的算法中。下文关于图2和图4描述了在公钥构建方案中可以应用的一些示例对策技术。在一些实例中,对策组件被应用在用于对消息上的数字签名进行基于隐式证书的验证的算法中。下文关于图3和图5描述了可被应用到数字签名生成和验证方案的一些示例对策技术。在一些示例中,可以使用这些对策组件与附加的或不同的对策组件的组合。\n[0012] 图1是示例数据通信系统100的示意图,其示出了在其中可以实现基于隐式证书的密码方案和关联的对策的示例上下文。可以在其他上下文中实现基于隐式证书的密码方案和关联的对策。数据通信系统100包括:证书机构服务器104,两个终端102、106,以及数据网络108。数据通信系统100可以包括附加的、更少的、或者不同的组件。例如,数据通信系统\n100可以包括附加的存储设备、附加的服务器(包括附加的证书机构服务器)、附加的终端、以及图中未示出的其他特征。\n[0013] 证书机构服务器104和终端102、106可以通过数据网络108相互通信以及与数据通信系统100中的其他组件通信。在图1示出的示例中,终端102可以向证书机构服务器104发送证书请求,以及证书机构服务器104可以通过向终端102发送隐式证书122来进行响应。终端102可以向终端106发送签名消息124,以及终端106可以使用证书机构服务器104颁发的隐式证书122来验证签名消息124的真实性。数据通信系统100可以支持附加的或不同类型的通信。在一些实现中,终端102、106还可以在相互之间、与证书机构服务器104、以及与数据通信系统100的其他组件交换加密的消息和其他类型的信息。\n[0014] 在一些实现中,签名消息124包括隐式认证的签名。隐式认证的签名可以是消息上的数字签名,或者隐式认证的签名可以是消息的修改版本上的数字签名。可以利用隐式认证的密钥对来对消息进行签名和验证。隐式证书方案以及使用隐式证书的签名方案可被基于所期望的安全级别进行参数化,其中该安全级别可被例如以比特为单位表示为k。隐式证书方案的示例包括椭圆曲线Qu-Vanstone(ECQV)隐式证书方案以及最优邮寄证书(OMC)隐式证书方案。可以使用附加的或不同的隐式证书方案。可以使用隐式证书的数字签名方案的示例包括椭圆曲线Pintsov-Vanstone(ECPV)签名方案,基于密钥的ECPV签名方案,以及Schnorr签名方案。可以使用附加的或不同的数字签名方案。\n[0015] ECPV签名方案是具有部分消息恢复的签名方案。标准ANSI X9.62、IEEE P1363a和ISO9796-3规定了ECPV签名方案的示例实现(使用2k比特输出散列函数)。套件E规定了具有\n2k比特输出的ECPV签名的示例(具体地,AES128-MMO)。ECPV签名方案的基于密钥的变形允许签名者对签名消息的可恢复部分进行加密,使得仅目标接收方可以恢复该可恢复部分。\n其他各方仍可以验证消息的公共部分上的签名。\n[0016] ECQV隐式证书方案是隐式证书方案的示例。在高效加密标准组(SECG)于2009年5月公布的第二版“Standards for Efficient Cryptography4(SEC4)Standard”中描述了ECQV机制的实现。该SEC4标准规定使用具有2k比特输出的散列函数。套件E也规定了ECQV,但是具有短的(k比特)散列函数,AES-128-MMO。\n[0017] 在一些方面,隐式证书可以使得信赖方能够利用公钥基础设施,而不需要向信赖方显式地传输公钥。公钥可被用在密码协议中,诸如用于验证据称已经由公钥的拥有者签名的消息的完整性和来源真实性。与在证书主体内包含使用者公钥、使用者标识符、以及证书机构在至少使用者公钥和使用者标识符上生成的数字签名的显式证书相比,隐式证书可以更加简洁。在一些实现中,隐式证书不显式包含使用者公钥,而是使得能够根据隐式证书重构使用者公钥。在一些实现中,隐式证书可以显式包含使用者公钥。信赖方可以使用证书机构的公钥来重构使用者公钥。\n[0018] 在图1示出的示例中,隐式证书方案被下述三方使用:证书机构、证书请求者、以及证书处理者。在示出的示例中,请求者实体从证书机构实体获取隐式证书。隐式证书证明请求者的身份,并且允许处理者实体获取请求者的公钥。更普遍地,在一些上下文中,附加的或不同的实体可以使用隐式证书方案。\n[0019] 作为隐式证书方案的示例,ECQV隐式证书方案的一些实现可以按照六个操作方面进行描述。这六个方面可以以任何合适的顺序或组合来执行。而且,可以以更少的、附加的、或者不同的操作方面来实现隐式证书方案。此处作为示例提供六个操作方面的描述。\n[0020] ECQV隐式证书方案的第一方面是ECQV设立步骤。在该阶段,证书机构建立椭圆曲线域参数、散列函数、证书加密格式,并且实体具有随机数生成器。证书机构生成密钥对。实体接收证书机构的公钥和域参数的真实副本。可以使用任何合适的技术来实现ECQV设立。\n[0021] ECQV隐式证书方案的第二方面是证书请求操作。证书请求者生成针对证书的请求。将该请求发送给证书机构。该请求的密码成分是使用与证书机构在ECQV设立期间使用的相同过程生成的公钥。可以使用任何合适的技术来实现证书请求。\n[0022] ECQV隐式证书方案的第三方面是证书生成操作。当接收到证书请求时,证书机构确认请求者的身份,并且创建隐式证书。证书机构实体向请求者实体发送响应。可以使用任何合适的技术来实现证书生成。\n[0023] ECQV隐式证书方案的第四方面是已认证公钥提取操作。给定请求者实体的隐式证书、域参数、以及证书机构的公钥,公钥提取算法计算请求者的公钥。可以使用任何合适的技术来实现已认证公钥提取。\n[0024] ECQV隐式证书方案的第五方面是证书接收操作。在接收到对证书请求的响应之后,请求者计算其隐式认证的密钥对,并且确保该密钥对是有效的。可以使用任何合适的技术来实现证书接收。\n[0025] ECQV隐式证书方案的第六方面是ECQV签名验证操作。在一些实现中,可以使用形成请求者的证书上的显式签名的附加信息来增强ECQV隐式证书。可以使用任何合适的技术来实现签名验证。\n[0026] 在一些情形中,隐式证书颁发可被实现为请求者与证书机构之间的双行程协议,其中第一流程是来自请求者的证书请求,而第二流程是来自证书机构的响应,该响应包含证书。\n[0027] 在一个示例操作方面,请求者实体、证书机构以及验证者(或者处理者)实体有权访问椭圆曲线域参数(包括群的生成器G)、随机数生成器、散列函数H、证书编码方案、有效数据类型、以及用于执行该方案的任何其他参数或函数。可以基于密码系统中的指定安全级别来选择所述参数和函数中的一些或全部。请求者已经被分配唯一的标识符I。请求者通过选择值ku∈R[1,n-1]并且计算RU:=kUG来生成请求(I,RU)。此处,kU可以是整数,G可以是椭圆曲线群的生成器,以及RU可以是该群中的椭圆曲线点。请求者向证书机构发送该请求。证书机构基于该请求生成隐式证书CertU。为了生成该请求,证书机构选择随机值k∈R[1,n-\n1],并且通过计算P=RU+kG生成公钥重建数据P。此处,k可以是整数,以及P可以是其生成器是G的椭圆曲线群中的椭圆曲线点。证书机构然后通过证书编码例程CertU:=Encode(P,I,*)来生成隐式证书CertU。证书机构然后通过计算e:=Hn(CertU)生成散列值e,并且通过计算r:=ek+dCAmod n生成私钥分发值r。此处,r表示整数,函数Hn表示散列函数,以及Hn的输出可以是整数mod n。Encode()函数中的自变量“*”可以表示通配符,以允许证书机构在证书中包含附加的可选的数据,下文将进行举例说明。\n[0028] 隐式证书编码方案的示例包括固定长度字段方案、最小ASN.1编码方案、兼容X.509的ASN.1编码方案等等。固定长度字段方案和ASN.1编码方案可被用于在一些情况下获得更大带宽效率。兼容X.509的ASN.1编码方案生成可被重新编码为标准X.509证书(如,具有或不具有显式签名值)的隐式证书。通过固定长度字段方案编码的证书可以包括一系列字段,每个字段具有固定长度。例如,实体可以都对证书中的字段fn的数目、每个字段的八位字节长度、指示哪个字段将包含公钥重构数据的索引值i、以及针对每个字段元素的有效性规则达成一致意见。在一些实现中,证书中的字段之一是公钥重构数据,而其他字段可以具有开放格式。例如,其他字段可以包括诸如请求者的电子邮件地址或者隐式证书的期满日期之类的值。\n[0029] 在一个示例操作方面,证书机构向请求者发送私钥分发数据r以及隐式证书CertU。请求者使用该证书数据来生成请求者的椭圆曲线密钥对(b,B)。请求者可以通过下述方式生成椭圆曲线密钥对(b,B):计算散列值e:=Hn(CertU),计算私钥值b=ekU+r(mod n),以及计算公钥值B=eP+C。对于附加的或不同类型的隐式证书方案,该示例操作可被适配或修改。\n[0030] 在图1示出的示例中,证书机构服务器104是能够执行密码系统中的证书机构的操作的计算系统。证书机构服务器104通常可操作用于接收、发送、处理和存储与密码系统关联的信息。尽管图1示出单个证书机构服务器104,但是可以使用多个证书机构服务器104(包括服务器簇)以及使用不同于服务器的附加的或不同类型的计算设备来实现证书机构。\n[0031] 证书机构服务器104通常包括数据处理装置、数据存储介质和数据通信接口。例如,证书机构服务器104可以包括处理器、存储器、输入/输出控制器、和/或其他特征。存储器例如可以包括随机访问存储器(RAM)、存储设备(如,可写只读存储器(ROM)等)、硬盘、缓冲存储器、或者其他类型的存储介质。存储器可以存储与计算机应用关联的指令(如计算机代码)、程序和计算机程序模块、以及其他资源。处理器可以包括任何类型的数据处理装置,如通用微处理器、专用处理器、数字控制器、或者其他类型的设备。输入/输出控制器可以耦合到输入/输出设备(如显示器、键盘等)以及数据网络108。输入/输出设备可以通过通信链路接收和发送模拟或数字形式的数据,所述通信链路例如是串行链路、无线链路(如红外、射频等)、并行链路、或者其他类型的链路。\n[0032] 数据网络108可以包括任何合适类型的数据通信网络。例如,数据网络108可以包括无线或有线网络、蜂窝网络、电信网络、企业网、专用公共网络、局域网(LAN)、广域网(WAN)、私有网络、公共网络(如互联网)、WiFI网络、包括卫星链路的网络、或者其他类型的数据通信网络。数据网络108可以包括通过防火墙或者实现各种安全级别的类似特征来定义的分层结构。\n[0033] 终端102、106是能够基于数据通信系统100规定的通信方案进行通信的计算设备。\n终端102、106通常可操作用于接收、发送、处理和存储信息。尽管图1示出两个终端102、106,但是数据通信系统100可以包括任何数目的终端。数据通信系统100可以包括终端的组或子组,子组或组中的终端能够相互通信,但是不一定能够与其他组或子组中的终端通信。数据通信系统100可以包括不同类型的终端,具有不同类型的硬件和软件配置的终端,并且位于各种不同位置的终端。在一些实例中,可以将多个设备或子系统一起识别为单个终端。数据通信系统100中的终端均可以利用证书机构服务器104颁发的隐式证书。\n[0034] 终端102通常包括数据处理装置、数据存储介质和数据通信接口。例如,终端102可以包括存储器、处理器和输入/输出控制器。终端可以包括用户接口设备,如显示器、触摸屏、鼠标、或键盘。终端的存储器可以存储与计算机应用关联的指令(如计算机代码)、程序和计算机程序模块、以及其他资源。\n[0035] 终端102可被实现为手持设备,如智能电话、个人数字助理(PDA)、便携式媒体播放器、膝上型计算机、笔记本计算机、平板计算机等等。终端可以包括工作站、大型机、非便携式计算机系统,在建筑物、交通工具或者其他类型的设施中安装的设备。终端可以包括嵌入式通信设备。例如,终端可以包括消息收发设备,其被嵌入在智能能量系统的智能能量表中。也可以使用其他类型的终端。\n[0036] 终端可以与具体的用户实体、具体的用户身份或者其任意组合相关联。一个或更多个终端可以与人类用户相关联。在一些实现中,终端不与任何具体的人类用户相关联。一个或更多个终端可以与具体设备、具体位置、具体设施、或者其他标识信息相关联。\n[0037] 在一个操作方面,终端102向证书机构服务器104发送证书请求120,以及证书机构服务器104生成针对终端102的隐式证书122。隐式证书122将特定的公钥值与特定的用户实体(如,终端102、与终端102关联的用户、在终端102中实现的模块等)相关联。终端102从证书机构服务器104接收隐式证书122。当终端102有消息要发送给终端106时,终端102使用隐式证书122生成针对消息的数字签名。该数字签名与消息组合在一起,以形成签名消息124,终端102将该签名消息124发送给终端106。在一些实现中,数字签名和消息是分开发送的。\n终端106接收签名消息124,获取隐式证书122,并且基于隐式证书122验证数字签名。隐式证书还可用于其他类型的方案中,例如用于加密方案中。\n[0038] 数据通信系统100实现的隐式证书方案允许终端102、106即使当数据网络108上的通信被恶意用户观察时,或者当恶意用户(如,通过篡改诚实终端的通信)干预通信系统100时,也以安全的方式相互通信。隐式证书122将与终端102关联的用户实体和能够用于验证终端102生成的数字签名的特定公钥值捆绑在一起。终端106能够获取隐式证书122,以验证数字签名是由与终端102关联的用户实体生成的,而不是由冒充者生成的。终端106还可以验证隐式证书122是由可信的第三方在证书机构服务器104处生成的。以这种方式,隐式证书122可以提供可信的第三方做出的确认:签名消息124是由与终端102关联的用户实体签名的,而不是由冒充者签名的。\n[0039] 示例隐式证书122包括与终端102关联的用户实体的标识。示例隐式证书122包括能被用于构建用户实体的公钥的信息。在一些实例中,使用隐式证书122验证数字签名还确认:用户实体拥有对应的私钥。图1示出的示例隐式证书122既不包括公钥的显式表示,也不包括证书机构的数字签名的显式表示。因此,在一些实现中,隐式证书122比一些其他类型的数字证书更加简洁。在一些实例中,隐式证书122包括证书机构的数字签名,其允许用户实体(如与终端106关联的用户实体)验证隐式证书122是由可信的证书机构生成的。在一些实例中,证书机构要求用户实体证实用户实体的私钥的知识。在一些实例中,隐式证书122包括用户的公钥的显式表示。\n[0040] 替代显式表示终端102的公钥,图1中的示例隐式证书122包括公钥重构数据,该公钥重构数据能够与其他信息(例如,证书机构的公钥等)组合以生成与终端102关联的用户实体的公钥。示例隐式证书122被构建为使得对终端102生成的数字签名的成功验证用作终端102拥有该私钥的确认。因此,根据一些隐式证书方案,可以在密钥使用期间共同验证用户实体与其公钥的捆绑以及用户实体关于其私钥的知识。\n[0041] 因为示例隐式证书122不包括终端102的公钥的显式表示,在一些情况下,证书机构有可能在不曾生成公钥值的显式表示的情况下颁发隐式证书122,以及终端102、106有可能在不曾生成公钥值的显式表示的情况下使用隐式证书122。例如,在一些椭圆曲线密码系统中,公钥的值可被表达为:B=eP+C,并且替代显式计算公钥B的值,终端102、106在它们例如使用公钥来生成或验证数字签名时将值e、P和C并入更大的等式(如,签名等式或验证等式)。如此,有可能能够在不显式计算公钥的情况下实际上使用或生成公钥。\n[0042] 图2是另一示例数据通信系统200的示意图。数据通信系统200包括:证书机构服务器204a、204b和204x;终端202和206;数据网络208;以及敌手212。数据通信系统200可以包括附加的、更少的、或者不同的组件。例如,数据通信系统200可以包括附加的存储设备、附加的服务器(包括附加的证书机构服务器)、附加的终端、附加的敌手以及图中未示出的其他特征。在一些示例实现中,终端202可以实现为图1中的终端102,并且终端206可以实现为图1中的终端106。在一些示例实现中,证书机构服务器204a、204b、204x中的每一个可以实现为图1中的证书机构服务器104。敌手212可以实现为终端、服务器或者任意其他合适的计算设备或系统。\n[0043] 终端202、206可以基于隐式证书方案交换消息。例如,隐式证书方案可被用于数据认证、数据加密或者这些和其他功能的组合。在一些实例中,终端202向终端206发送消息,以及终端202可以基于证书机构服务器204a、204b、204x之一颁发的隐式证书对消息加密、对消息签名、或者执行这两者。敌手212可以观察网络208上的通信,并且发起攻击,从而尝试损害隐式证书方案的安全。证书机构服务器204a、204b、204x和终端202、206实现的隐式证书方案包括能够挫败敌手212的某些类型的攻击的对策。\n[0044] 在一些实例中,基于证书机构服务器204a、204b、204x生成的隐式证书链来颁发与终端202关联的隐式证书。例如,证书机构服务器204a、204b、204x可以包括根证书机构和多个从属证书机构。隐式证书链可以包括针对根证书机构的隐式证书和针对每个从属证书机构的隐式证书。\n[0045] 在一些示例实现中,通信系统200中实现的隐式证书方案使用基于ECQV隐式证书链导出的公钥。一般而言,根证书机构或者任意从属证书机构可以颁发隐式证书。ECQV隐式证书链可以由根证书机构和一个或更多个从属证书机构的组合来生成,其中每个从属证书机构具有来自上级证书机构的隐式证书。链中的最后一个证书机构可以向用户实体(如,终端)颁发隐式证书。\n[0046] 可以使用针对如椭圆曲线群之类的群的附加标记(additive notation)来描述通信系统200实现的示例ECQV隐式证书方案,在所述群中离散对数问题被认为是困难的。群具有阶数(order)n。在一些实现中,群具有基本阶数。系统参数包括群的生成器G,其是已知的并且可用于使用通信系统200的所有实体。\n[0047] 在一些实例中,ECQV隐式证书被颁发给终端202所代表的用户实体或者与终端202关联的用户实体。用户实体的ECQV隐式证书可以由参数对(P,I)表示,或者基于参数对(P,I)。值P是针对用户实体的公钥重构数据,以及值I是用户实体的标识信息。可以根据隐式证书来重构用户实体的公钥B。用户实体与证书机构交互,以获取ECQV隐式证书(P,I)和私钥b,使得B=bG。在一些实现中,用户实体的ECQV隐式证书(P,I)基于证书机构形成的ECQV隐式证书链。\n[0048] 在一些实例中,每个从属证书机构的重构的公钥充当用于验证该从属证书机构颁发的证书的公钥。例如,根证书机构可以具有私钥c,该私钥c可以是整数,并且公钥C=cG。链中的每个隐式证书由参数对(Pj,Ij)表示,其中j从1到m+1,其中m+1是链的长度。对应的公钥表示为Cj。除了B=Cm+1,每个公钥Cj是从属证书机构的公钥。第l个公钥可以基于函数F,根据下述公式来生成:\n[0049] Cl=Cl-1+F(C,C1,...,Cl-1,P1,...,Pl,I1,...,Il,*1,...,*l)Pl.(1a)[0050] 这m+1个等式可以被组合成如下单个等式:\n[0051] B=Cm+1=C+F(C,P1,I1,*1)P1+…+F(C,C1,...,Cm,P1,...,Pm+1,I1,...,Im+1,*1,...,*m+1)Pm+1\n[0052] (1b)\n[0053] 此处,已经包括*i(其中i=1,...,m+1),以赢取在如(Pj,Ij,*j)之类的隐式证书结构中包括附加信息的可能性。\n[0054] 在一些实例中,等式1a和1b中的函数F的输出是基于对散列函数或另一类型的函数求值而生成的。例如,函数F可以是散列函数,函数F可以包括一个或更多个散列函数,函数F可以调用一个或更多个散列函数,或者函数F可以以其他方式利用散列函数或其他类型的函数。在一些实例中,散列函数是将任意输入映射到在0与n之间的整数的随机函数,或者接近该随机函数。在一些实例中,散列函数是将任意输入映射到在0与 之间的整数的随机函数,或者接近该随机函数。散列函数的示例包括:SHA散列函数族(SHA-1,SHA-256,等等),通过截断它们的输入创建的这些函数的变形,以及其他散列函数。另一示例散列函数是MMO散列函数,其是利用块密码创建的,通常是利用AES块密码创建的(所得函数称为AES-MMO)。其他基于块密码的散列函数也是合适的。由具有固定密钥(其在域参数中公布)的HMAC构造来创建的函数是另一示例函数。在一些实现中,可以使用例示为具有固定密钥的其他MAC函数,如CBC-MAC。\n[0055] 等式1a和1b是在图2中实现的示例隐式证书方案中使用的公钥生成公式的通用表示。在各种实现中,函数F可以采取各种形式。下面描述若干特定的示例。可以选择函数F,使得挫败敌手的攻击。换言之,在一些实例中,函数F可以降低敌手攻击成功的可能性。例如,在一些实例中,可以选择函数F,使得提供与某些传统方案相比提高的安全性。\n[0056] 根据一些传统方案,可以如下重构每个公钥:\n[0057] Cj=Cj-1+H(Pj,Ij)Pj, (2)\n[0058] 其中,H是散列函数,。根据传统方案,这m+1个等式可被组合成如下单个等式:\n[0059] B=Cm+1=C+H(P1,I1)P1+...+H(Pm+1,Im+1)Pm+1 (3)\n[0060] 在一些实例中,该传统方案允许敌手伪造将会被未觉察的信赖方接受的隐式证书。如此,敌手有可能模仿实体(如从属于另一证书机构的证书机构实体)的合法动作,从而向上级证书机构请求隐式证书,该隐式证书将使得该从属证书机构继而能够生成对于从属于它的证书机构而言可接受的证书,或者能够生成对于将使用与已认证公钥对应的私钥来例如对消息进行数字签名(可使用已认证公钥验证该消息)的任何实体而言可接受的证书,或者能够对使用已认证公钥加密的加密消息进行解密。在一些实例中,敌手的恶意模仿仅需要关于公共可用信息的被动知识,例如敌手冒充要求其产生模仿的隐式证书的证书机构的隐式证书系统参数和公钥或隐式证书。在一些实例中,上述等式1a和1b中表示的方案可被实现为对抗这种攻击的成功对策。\n[0061] 在对上述等式2和3表示的传统方案的一些示例攻击中,敌手能够使用关于根证书机构的公钥的知识或者关于从属于根证书机构的证书机构的公钥的知识来向证书链添加四个附加链接,导致敌手知道与添加的第四链接的公钥对应的私钥。在对传统方案的另一示例攻击中,敌手添加三个链接并且对选定的任意单个消息进行数字签名,并且该数字签名使用与第三添加链接关联的公钥正确验证。在一些实例中,上述等式1a和1b中表示的方案可被实现为对抗这种攻击的成功对策。\n[0062] 在一些示例实现中,上述等式1a和1b中表示的方案可被用于战胜链式攻击,而等式2和3中表示的方案可能易受链式攻击的伤害。在链式攻击中,敌手有权访问椭圆曲线域参数,包括G(或者更一般地,离散对数群的描述和生成器)、根证书机构的公钥C、以及m+1个标识字符串I1,...,Im+1。成功的链式攻击的输出是m+1个公钥重构数据值P1,...,Pm+1和与重构的公钥B=Cm+1对应的私钥b,即bG=B。\n[0063] 为了实现针对示例的长度为4的链的链式攻击,敌手访问输入,包括根证书机构的公钥C和四个标识符I1,I2,I3,I4。该链式攻击可以做出关于上述等式2和3中的散列函数H的假设,以简化对何时攻击会成功的分析,但是这些假设不是实现攻击所必需的。例如,链式攻击可以假设上述等式2和3中的散列函数H生成在间隔1到n之间均匀分布的值。该链式攻击有可能可以假设上述等式2和3中的散列函数H生成不那样分布的值,如在0与 之间的值,或者以某种方式偏差的值。\n[0064] 链式攻击的成功实现可以生成输出,包括四个公钥重构值P1,P2,P3,P4以及使得下式成立的私钥b:\n[0065] bG=C+H(P1,I1)P1+H(P2,I2)P2+H(P3,I3)P3+H(P4,I4)P4.(4)\n[0066] 为了实现针对示例的长度为4的链的链式攻击,敌手基于输入执行下述动作。令j的范围为从1到2。计算Hj,k=H(Pj,k,Ij),其中Pj,k=C+kG,并且k的范围为从1到n1/3。将值Hj,k组装到列表Lj中。总的计算(针对j=1和j=2)可能花费2n1/3次标量乘法和散列求值的时间。\n[0067] 示例的链式攻击可以如下继续进行。生成值(r,s,1+H1,r+H2,smod n,(H1,r)r+(H2,s)s mod n)的列表L1,2,使得1+H1,r+H2,smod n
法律信息
- 2019-11-12
专利权的转移
登记生效日: 2019.10.24
专利权人由塞尔蒂卡姆公司变更为黑莓有限公司
地址由加拿大安大略变更为加拿大安大略省沃特卢市
- 2019-07-30
- 2014-06-04
实质审查的生效
IPC(主分类): H04L 9/00
专利申请号: 201280039062.2
申请日: 2012.05.04
- 2014-04-30
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-12-19
|
2006-06-16
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |