一种基于离散对数难题构造并关联公钥证书的方法

文档序号:9754242阅读:459来源:国知局
一种基于离散对数难题构造并关联公钥证书的方法
【技术领域】
[0001]本发明涉及公钥证书领域,尤其涉及一种基于离散对数难题构造并关联公钥证书的方法。
【背景技术】
[0002]公钥基础设施(Public Key Inf rastructure,PKI)以公钥证书授权机构(Certificate Authority,CA)签发公钥证书(即数字证书)的方式,将用户身份与公钥绑定在一起,以解决密钥属于谁也即密钥认证的问题。常用的基于离散对数难题(DiscreteLogarithm Problem,DLP)的数字签名算法有基于有限域上DLP的数字签名算法(DigitalSignature Algorithm,DSA)和基于椭圆曲线上DLP的椭圆曲线数字签名算法(EllipticCurve Digital Signature Algorithm,ECDSA)等。
[0003]PKI中的CA作为法定的公钥证书授权机构,负责签发公钥证书,是通信双方都信任的第三方实体。每张公钥证书都包含了证书持有者的身份、证书所绑定的公钥数据、证书有效期、如何检查证书是否被撤销等信息,并应带有CA的数字签名以作为证书合法性的证明;证书中同时还应包含CA的名称,以便证书验证者找到CA的公钥从而验证CA对证书的签名。
[0004]在实际应用中,用户须定期或按需向CA申请更换证书以保证数字签名的不可否认性,在此过程中,用户须以离线方式向CA证明其身份,从而给用户带来了不便。此外,在某些应用场景如自组织网络中,通常不存在CA这样的可信第三方,证书的生成完全由各网络实体自行处理,节点间的信任只基于彼此离线交换过的证书而建立,一旦私钥泄露,网络难以像PKI中那样通过CA颁布证书撤销列表来撤销相应证书。因此,需引入更为灵活自主的机制以使证书的管理更为简单高效。

【发明内容】

[0005]本发明克服现有技术的不足,提供一种基于离散对数难题构造并关联公钥证书的方法。与传统网络中每个用户拥有一张证书不同,该方法是一种高效但与传统PKI机制相兼容的公钥证书管理方式,使得即便单个用户也能拥有多张相互关联的公钥证书,并根据需要以一定的顺序来使用它们;该方法较传统的公钥证书管理有多方面优势,能为用户提供包括证书自行撤销与替换在内的灵活可控的自服务机制等。
[0006]本发明涉及两种用户:一种是证书持有者,另一种是其通信对端,称为证书验证者。例如,证书持有者可以是一个提供HTTPS服务的网站,而证书验证者可以是一个浏览器。再如,在自组织网络中,任何参与通信的实体往往同时扮演证书持有者和验证者的角色。
[0007]在本发明中,对同一证书而言,其绑定的公钥由对应的私钥生成,公私钥之间存在生成关系,该关系依证书持有者选用的基于DLP的数字签名算法而定,并由DLP保证无法从公钥推出私钥;两张关联证书之间则存在导出关系,该关系体现在证书构造、替换、验证的过程中。其中导出关系的建立涉及单向哈希函数:哈希函数也称散列函数、杂凑函数等,其特点是输入长度任意但输出长度固定;单向哈希函数是特殊的哈希函数,其特点是从输出反推输入在实际计算上不可行。在网络安全应用中通常只考虑可抵抗碰撞的单向哈希函数,其特点是在有限时间内找到哈希值相等的两个不同输入值不可行。
[0008]本发明采用的技术方案如下:一种基于离散对数难题构造并关联公钥证书的方法,如图1所示,实现步骤如下:
[0009]一、构造过程
[0010]I)证书持有者随机选取叶子节点证书关联的私钥,根据私钥生成对应的公钥,并结合证书有效期等信息构造相应的证书;
[0011]2)证书持有者计算最新得到一层的各证书的单向哈希值,并将其经一定处理后导出为对应父节点证书关联的私钥;所述对计算结果的一定处理是为了得到符合所用签名算法要求的私钥;
[0012]3)证书持有者根据2)中得到的私钥生成对应的公钥,并结合有效期等信息构造相应的证书;
[0013]4)证书持有者重复2)、3)的过程,直至得到根节点证书;
[0014]5)证书持有者将4)中得到的根节点证书离线提交给CA签发(或在自组织网络中与可能的通信对端通过离线方式交换)。
[0015]二、替换过程
[0016]当某一证书需替换时,证书持有者以适当形式发布该证书关联的私钥与新有效证书,将此信息作为证书自撤销与替换公告(以下简称为证书公告)。
[0017]三、验证过程
[0018]I)证书验证者首先检查待验证证书是否在其有效期内,若是,再检查根节点证书的合法性,若合法,则继续验证过程;否则判定待验证证书无效,结束验证过程;
[0019]2)证书验证者沿证书构造路径,从根节点证书开始依次检查各证书公告中公开的私钥与其对应证书绑定的公钥是否满足生成关系,若满足,再检查证书公告所涉及的证书之间是否满足导出关系,若是,则以此类推直至完成对待验证证书的检查;否则判定待验证证书无效,结束验证过程;
[0020]3)若上述验证全部通过,则判定待验证证书合法。
[0021 ]另外,针对上述各步骤还有进一步限定如下。
[0022]所述构造过程中关联证书所用的数据结构可为链形(称为证书关联链),也可为树形(称为证书关联树);其中,证书关联链可看作证书关联树的一种退化形式。
[0023]所述构造过程中使用的单向哈希函数,可以是公开的(如SHA-224),也可以是受密钥保护的(如HMAC_SHA256)。在后一种情况下,受密钥保护的单向哈希函数可以依赖于同一个密钥,也可以依赖不同的密钥;密钥可以预先分发,也可以在相关证书启用之后再分发;具体策略由证书持有者根据实际需要来制定,从而满足特定的需求(典型的如可控的匿名性)。
[0024]所述构造过程步骤2)中,证书持有者将子节点证书的单向哈希值经一定处理后作为父节点证书关联的私钥:证书持有者在使用证书关联链时,直接对得到的单向哈希值进行处理;在使用证书关联树时,则需将相邻子节点证书的单向哈希值组合后再进行处理,其组合方式包括但并不限于比特串的拼接,此处拼接的顺序可有多种,在实际实施方案中证书持有者与证书验证者约定其中一种使用。
[0025]所述验证过程步骤2)中,从待验证证书到根节点证书的路径存在且唯一,根节点证书是信任的根源。实际操作中,只要证书验证者已经验证并缓存了证书持有者的某一张证书,则以其为根的子树中所有证书的合法性均可归结至该节点。因此,缓存已验证过的证书可以简化后续的证书验证过程,以省去总是归结至根节点证书的麻烦。
[0026]所述验证过程步骤2)中,同一证书绑定的公钥与其对应私钥之间存在生成关系,其生成关系依证书持有者选用的数字签名算法而定;相关联的证书之间存在导出关系,其导出关系包括但并不限于基于子节点证书的单向哈希值导出父节点证书关联的私钥。上述生成关系与导出关系均为单向关系,即实际操作中只能按指定的方向进行计算(如由私钥生成对应的公钥,由子节点证书构造父节点证书等),而不可逆向计算。
[0027]本发明与现有技术相比的有益效果为:
[0028](I)本发明适用于基于DLP的数字签名算法,例如基于有限域上DLP的DSA或基于椭圆曲线上DLP的E⑶SA等。
[0029](2)与传统网络中每个用户拥有一张证书不同,本发明提供一种高效但与传统PKI机制相兼容的公钥证书管理方式,使得即便单个用户也能拥有多张相互关联的公钥证书,并根据需要以一定的顺序来使用它们。尚未使用的证书应妥善保护,不应提前公开,以避免证书在启用之前就被泄露。
[0030](3)本发明提出了一种高效且与传统PKI机制相兼容的证书管理方法。本发明中的证书格式与传统PKI机制中的证书格式相同。在CA存在的环境中,CA不对根节点证书以外的证书进行签发,甚至不知晓根节点证
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1