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

文档序号:9754242阅读:来源:国知局
书以外各证书的存在。证书持有者可通过发布证书公告的方式自行撤销旧证书并替换为新证书,使证书管理更为简单高效。
[0031](4)本发明中任一证书的合法性依赖于其父节点证书的合法性,从而最终依赖于根节点证书的合法性;证书验证者只需验证证书持有者发布的所有相关证书公告,就可以完成对相应子节点证书的验证,并可通过缓存已验证证书的方法提高证书验证的效率。
[0032](5)本发明中可设定证书持有者所拥有的所有证书具有重叠的证书生存期,这使得证书持有者可以在有效期内的任意时刻通过发布证书公告自行完成证书的撤销及替换;也可设定各证书具有不重叠但相互衔接的相对较短的有效期,这使得证书持有者可通过证书的按时替换来更新其有效证书。在后一种情况下,因验证者在验证证书合法性时总会检查该证书是否为持有者当前的有效证书,故一旦持有者的私钥发生泄露,即便在网络无法颁发证书撤销列表的情况下,本发明也可有效限制私钥泄露的影响持续期。
【附图说明】
[0033]图1为本发明实现流程图;
[0034]图2为本发明中证书关联链构造过程的示意图;
[0035]图3为证书持有者发布证书公告从而自行撤销旧证书并替换为新证书的示意图;
[0036]图4为本发明中证书关联树构造过程的示意图;
[0037]图5为DSA证书的关联链构造过程示意图;
[0038]图6为E⑶SA证书的关联树构造过程示意图。
【具体实施方式】
[0039]为了使本发明的目的、技术方案和优点更加清晰明白,以下将结合具体实施例,并参照附图对本发明做详细的说明。
[0040]本发明中所使用的符号统一约定如下:小写英文字母表示整数、整型变量、返回值为整数的函数等;大写字母表示其他复合型数据结构,如公钥证书、椭圆曲线上的点以及椭圆曲线本身等。|m I表示m的比特长度;‘ I I ’表示比特串的拼接;xeR[a,b]表示从区间[a,b]中随机、独立、均匀赋值给x;mod表示取模运算。同时,将证书构造过程中最后得到的证书称为根节点证书,证书持有者以离线方式将其交付给CA签名(或在自组织网络中与可能的通信对端通过离线方式交换)。根据所用签名算法的不同,记基于有限域上DLP的DSA的参数为素数P和q,生成元为g,其中q为g的阶;记基于椭圆曲线上DLP的ECDSA采用的椭圆曲线为E,其基点也即生成元为G,记G的阶为素数η;记采用的单向哈希函数为f,其中f与选取的q或η之间的关系至少要满足|q| > If I或|n| > |f|。对于证书C,根据签名算法的不同将其绑定的公钥记为z或Q,C关联的私钥记为d。在DSA中,私钥的选取需满足deR[l,q-l],且与公钥z满足生成关系z = gd mod p;在E⑶SA中,私钥的选取需满足deR[l,n-l],且与公钥Q满足生成关系Q = dG。
[0041]下面以节点个数为I的链为例对证书关联链进行具体说明。证书与链中的节点一一对应,证书即节点,节点即证书。记证书链中第i个证书为Ci,最后构造而成的证书为根节点证书Cl。
[0042]如图2所示,证书构造过程如下:
[0043]I)证书持有者首先选取证书C1关联的私钥ch;
[0044]2)证书持有者从第I张证书开始,根据私钥CU生成相应的公钥,并结合有效期等信息构造相应的证书C1;再计算fXCO,将HC1)经一定处理后作为Ch关联的私钥;以此类推直至得到第一张也即根节点证书C1;
[0045]3)证书持有者以离线提交给CA签发(或在自组织网络中与可能的通信对端通过离线交换)的方式建立&的合法性,即根节点证书对通信对端是可信赖的。
[0046]如图3所示,证书替换过程如下:
[0047]当证书(^需替换时,证书持有者用新的有效证书(:2替换C1,并以适当的形式发布(cU,C2)作为证书自撤销与替换公告。类似地,当证书(^需替换时,则证书持有者用新的有效证书Ci+i替换Ci,并公布(di,Ci+i)。
[0048]证书验证过程如下:
[0049]在证书持有者当前使用的证书为Cj的情况下,证书验证者检查Cj合法性的具体步骤为:
[0050]I)证书验证者首先检查Cj是否在其有效期内,若是,再检查根节点证书C1的合法性,若合法,则继续验证过程;否则判定Cj无效,结束验证过程;
[0051 ] 2)证书验证者沿Cj的构造路径,从C1开始依次检查各证书公告中公开的私钥di与匕绑定的公钥是否满足生成关系,若满足,再检查(^是否与C1+1满足导出关系,若是,则以此类推直至检查到Cj;否则判定Cj无效,结束验证过程;
[0052 ] 3)若上述验证全部通过,则判定证书Cj合法。
[0053]上述过程说明了证书关联链的构造方法。当f与选取的q或η之间的关系满足| q | >2 I f I或I n k 2 I f I时,关联证书所用的数据结构除链形结构外,还可为树形结构。
[0054]下面以深度为h的全满二叉树为例对证书关联树进行具体说明。证书与树的节点
--对应,证书即节点,节点即证书。将二叉树第X层(I < X < h)左起第y个证书记为C(x,y),最后构造而成的证书为根节点证书Ca, υ。
[0055]如图4所示,证书构造过程如下:
[0056]1)证书持有者首先选取2卜1个值(101,1),(101,2),(101,3),...,d(h,2h—V作为二叉树叶子节点关联的私钥;
[0057]2)证书持有者从第h层开始,根据各节点私钥生成对应的公钥,并结合有效期等信息构造相应的证书Cu,」);再将相邻证书的单向哈希值两两组合,经一定处理后作为父节点证书关联的私钥;以此类推直至得到根节点证书Ca, υ ;
[0058]3)证书持有者以离线提交给CA签发(或在自组织网络中与可能的通信对端通过离线交换)的方式建立Ca,υ的合法性,即根节点证书对通信对端是可信赖的。
[0059]证书替换过程如下:
[0060]当证书Ca1)需替换时,证书持有者用Ca1)或c(2,2)替换Ca1),并以适当的形式发布(da,υ ,Ccu))或(dancer))作为证书公告。其中,证书公告中公布的新证书取决于证书持有者选择启用哪个子节点作为其新证书(例如Ca2)),另一未被选中的子节点证书(例如Cai))可在之后任意时刻通过发布证书公告(例如(daD ,Cai)))来启用为有效证书。类似地,当证书需替换时,证书持有者可用的子节点证书(^+1,2」-υ或C(i+1,2j)替换C(i,j),并公布(d(i,j),C(i+i,2j-1))或(d(i,j),C(i+i,2j));也可选用任一已使用证书的未被启用的子节点证书作为新有效证书,并相应发布证书公告。例如,证书持有者启用证书的顺序为:(:(1,1)、(:(2,2)、(:(3,4),则当(:(3,4)需替换时,证书持有者可在(:(3,4)的子节点证书(:(4,7)、(:(4,8),Ca 2)的子节点证书Ca 3),以及Ca, υ的子节点证书c(2,i)中任选其一,通过发布相应的证书公告将其启用为新有效证书。
[0061 ] 证书验证过程如下:
[0062]在证书持有者当前使用的证书为Cu,y)的情况下,证书验证者检查证书Cu,y)合法性的具体步骤为:
[0063]I)证书验证者首先检查C(x,y)是否在其有效期内,若是,再检查根节点证书Ca1)的合法性,若是,则继续验证过程;否则判定Cu, y)无效,结束验证过程;
[0064]2)证书验证者沿Cu,y)的构造路径,从Ca1)开始依次检查各证书公告中公开的私钥cku)与Cu,绑定的公钥是否满足生成关系,若满足,再检查该证书是否与路径中对应的子节点证书满
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1