【技术实现步骤摘要】
用于算法过渡的多公钥数字证书的密钥使用方法
[0001]本专利技术属于密码
,特别是涉及用于算法过渡的多公钥数字证书的密钥使用方法。
技术介绍
[0002]X509数字证书是一种基于公钥密码技术的电子身份凭证,利用它可以实现各类应用中的身份鉴别、数字签名、数据加密、保密通信等安全功能。每个数字证书对应一对用户密钥,公钥和私钥,其中用户公钥包含在数字证书中、通过数字证书安全发布,因此,数字证书也称为公钥数字证书,用户私钥由用户(密码模块或密码装置或系统)安全保存。数字证书的拥有者用户在数字证书中称为主体(Subject),因此,数字证书中的用户公钥称为主体公钥,对应一个私钥称为主体私钥。数字证书会限定用户(主体)密钥的密钥用途,数字证书给出的密钥用途(包括证书中密钥用途字段和扩展密钥用途字段中给出的密钥用途)是应用层面的用途(比如抗抵赖),不是密码运算层面的用途(比如签名、签名验证运算),而且密钥用途针对的是密钥对的用途,不仅仅是公钥或私钥的用途,比如,抗抵赖涉及使用私钥对数据进行签名运算生成签名值(数字签名),以及使用公钥对数据的签名值(数字签名)进行签名验证运算,因此,密钥用途与使用公钥、私钥的密码运算相关,但不是一回事。关于数字签名需说明一下,它有多种含义,它可以是指一个防伪防篡改的技术概念,可以是指使用私钥对数据进行的签名运算处理过程,可以是指使用私钥对数据进行签名运算后得到的结果即签名值。
[0003]在实际应用中由于某些原因,比如因为运算/计算效率的问题、政策法规的要求,可能需要用一种公钥密码 ...
【技术保护点】
【技术特征摘要】
1.一种用于算法过渡的多公钥数字证书的密钥使用方法,其特征是:用于算法过渡的多公钥数字证书是一种X509格式的数字证书,其在单公钥数字证书基础上经扩展包含了多个用户公钥,其中一个公钥为公钥密码算法A的公钥PK
A
,公钥PK
A
对应单公钥数字证书中的主体公钥,存放在数字证书的主体公钥信息字段中,其他公钥分别为公钥密码算法B1的公钥PK
B1
、
…
、公钥密码算法B
m
的公钥PK
Bm
,m≥1;公钥PK
A
为多公钥数字证书的主体公钥也称为主公钥,公钥PK
B1
、
…
、公钥PK
Bm
为多公钥数字证书的从公钥;公钥密码算法B1、
…
、公钥密码算法B
m
为密码算法过渡的目标公钥密码算法;若m>1,则公钥密码算法B1、
…
、公钥密码算法B
m
对应的密钥的密钥用途不同,公钥密码算法B1、
…
、公钥密码算法B
m
的密钥的密钥用途的合集包含多公钥数字证书的公钥密码算法A的主体密钥的密钥用途;公钥密码算法B1、
…
、公钥密码算法B
m
的密钥的密钥用途在多公钥数字证书中给出或者缺省给出;针对公钥PK
A
及整个数字证书的数字签名数据即签名值为数字证书中的签名值字段中存放的数字签名数据即签名值;针对每个从公钥有单独的数字签名或没有单独的数字签名;针对从公钥的数字签名是对包含从公钥的数据进行签名;针对不同公钥的数字签名的签发者及所采用的数字签名算法不必相同;多公钥数字证书中的从公钥以及针对从公钥的数字签名数据即签名值为在单公钥数字证书基础上扩展的证书信息;用于算法过渡的多公钥数字证书对应有一组私钥,其中包括公钥密码算法A的私钥SK
A
,公钥密码算法B1的私钥SK
B1
、
…
、公钥密码算法B
m
的私钥SK
Bm
,各私钥分别与多公钥数字证书上的公钥对应,其中SK
A
为主体公钥即主公钥PK
A
对应的私钥,即主体私钥也称为主私钥,私钥SK
B1
、
…
、SK
Bm
分别为从公钥PK
B1
、
…
、公钥PK
Bm
对应的私钥,称为多公钥数字证书的从私钥;多公钥数字证书对应的一组私钥保存在用户或用户授权的密码组件中;主私钥与从私钥相关联;所述密码组件为提供密码功能的软件或硬件或软硬件结合的组件,包括密码模块或密码装置或密码系统;多公钥数字证书的主体公钥/主公钥和主体私钥/主私钥统称为主体密钥/主密钥;多公钥数字证书的从公钥和从私钥统称为从密钥;能识别用于算法过渡的多公钥数字证书、使用其从密钥进行密码运算的密码组件为支持多公钥数字证书的密码组件,否则为不支持多公钥数字证书的密码组件;当不支持多公钥数字证书的密码组件接收到使用公钥密码算法A的密钥包括公钥和私钥进行密码运算的请求后,使用请求中指定的公钥密码算法A的密钥进行密码运算;当支持多公钥数字证书的密码组件接收到使用公钥密码算法A的密钥包括公钥和私钥进行密码运算的请求后,按如下方式进行处理:若公钥密码算法A的密钥为多公钥数字证书的主体密钥即主密钥,则密码组件根据密码运算的类型、密码运算所针对的数据的类型以及密钥用途,选择多公钥数字证书的主密钥或从密钥进行密码运算;若公钥密码算法A的密钥不是多公钥数字证书的主体密钥,则密码组件按通常的使用非多公钥数字证书的密钥进行密码运算的方式进行密码运算处理,其中通常的使用非多公钥数字证书的密钥进行密码运算的方式包括使用单公钥数字证书的密钥进行密码运算、以及使用单独存在的公钥密码算法的密钥进行密码运算的方式;支持多公钥数证书的密码组件接收到密码调用请求、使用密钥进行密码运算的过程中,若使用或包括使用从公钥进行涉及数据保密的密码运算,并将使用或包括使用从公钥
进行密码运算后的结果作为公钥密码算法A的密码数据返回,则返回的是公钥密码算法A的伪密码数据;所述使用或包括使用从公钥进行涉及数据保密的密码运算是指在密码运算过程中使用从公钥进行密码运算且使用从公钥进行密码运算的目的是使得密码运算得到的数据在传输或存储或使用过程中防止敏感数据被泄露;支持多公钥数证书的密码组件接收到密码调用请求、使用密钥所进行密码运算的过程中,若使用或包括使用从私钥进行涉及数据防篡改、防伪造的密码运算,并将使用或包括使用从私钥进行密码运算后的结果作为公钥密码算法A的密码数据返回,则返回的是公钥密码算法A的伪密码数据;所述使用或包括使用从私钥进行涉及数据防篡改、防伪造的密码运算是指在密码运算过程中使用从私钥进行密码运算且使用从私钥进行密码运算的目的是使得密码运算得到的数据在传输或存储或使用过程中防止数据被篡改、被伪造;若密码组件将使用公钥密码算法A的密钥进行密码运算后的结果返回,则返回的是公钥密码算法A的真实的密码数据;所述密码数据为使用密钥进行密码运算后得到的数据;所述伪密码数据是被标记为或当作为使用一种公钥密码算法的密钥进行密码运算后得到并按此算法的规定编码后的数据,但实际上不是使用此被标记或当作使用的公钥密码算法的密钥进行密码运算后得到并按此算法的规定编码后的数据;所述真实的密码数据是使用实际采用的公钥密码算法及密钥进行密码运算得到并按此实际采用的公钥密码算法的规定编码后的数据;伪密码数据对应有真实的密码数据;伪密码数据中包含或不包含有对应的真实的密码数据;所述伪密码数据具有或不具有被标记或当作使用的公钥密码算法的密码数据结构;所述伪密码数据中有标志或者伪密码数据具有不同的数据长度用于与被标记或当作使用的公钥密码算法的真实的密码数据相区分、相区别;伪密码数据对应的真实的密码数据的存放位置预先约定,或者伪密码数据中有对应的真实的密码数据的获取位置信息;当支持多公钥数字证书的密码组件针对之前使用密钥进行密码运算得到的密码数据进行处理时,若待处理的密码数据是公钥密码算法A的伪密码数据,则待处理的密码数据是之前使用或包括使用从密钥进行密码运算得到的数据,否则不是;若伪密码数据中不包含真实的密码数据,则密码组件从约定的位置获得伪密码数据对应的真实的密码数据,或者密码组件依据伪密码数据中给出的真实的密码数据的获取位置,获得伪密码数据对应的真实的密码数据;若伪密码数据中不包含真实的密码数据,则真实的密码数据临时和/或永久地保存在约定的位置,以及/或者临时和/或永久地保存在伪密码数据中给出的密码数据的获取位置;若真实的密码密码数据同时保存在临时存放位置和永久存放位置,则当需要获得伪密码数据对应的真实的密码数据时,密码组件先从临时存放位置获取真实的密码数据,若从临时存放位置无法获得真实的密码数据,则从永久存放位置获取真实的密码数据。2.根据权利要求1所述的用于算法过渡的多公钥数字证书的密钥使用方法,其特征是:支持多公钥数字证书的密码组件接收到使用公钥密码算法A的密钥进行密码运算的请求后:若调用请求为使用一个公钥密码算法A的公钥进行加密运算,而调用请求中指定的公钥密码算法A的公钥为一个多公钥数字证书的主体公钥即主公钥,则密码组件根据密码运算的类型和密钥用途,选择使用以调用请求中指定的公钥密码算法A的公钥作为主体公钥
的多公钥数字证书中的相应从公钥进行密码运算;若调用请求为使用一个公钥密码算法A的公钥进行加密运算,而调用请求中指定的公钥密码算法A的公钥不是一个多公钥数字证书的主体公钥,则密码组件使用调用请求中指定的公钥密码算法A的公钥进行密码运算;若调用请求为使用一个公钥密码算法A的私钥进行解密运算,而调用请求中指定的公钥密码算法A的私钥为一个多公钥数字证书的主体私钥即主私钥,且待解密的数据是伪密码数据,则密码组件根据密码运算的类型和密钥用途,选择使用以调用请求中指定的公钥密码算法A的私钥作为主体私钥的多公钥数字证书的相应从私钥进行密码运算;若调用请求为使用一个公钥密码算法A的私钥进行解密运算,而调用请求中指定的公钥密码算法A的私钥不是一个多公钥数字证书的主体主私钥,或者待解密的数据不是伪密码数据,则密码组件使用调用请求中指定的公钥密码算法A的私钥进行密码运算。3.根据权利要求1所述的用于算法过渡的多公钥数字证书的密钥使用方法,其特征是:若支持多公钥数字证书的密码组件接收到使用公钥密码算法A的密钥进行密码运算的请求,而调用请求为使用一个公钥密码算法A的公钥和一个公钥密码算法A的私钥进行密码运算,其中包括密钥协商、签加密密码运算,且调用请求中指定的公钥密码算法A的公钥为一个多公钥数字证书的主体公钥即主公钥,调用请求中指定的公钥密码算法A的私钥为一个多公钥数字证书的主体私钥即主私钥,或者密码运算所针对的数据是之前使用一个从公钥和一个从私钥进行密码运算得到的伪密码数据,则密码组件根据密码运算的类型和密钥用途,选择使用以调用请求中指定的公钥密码算法A的公钥作为主体公钥的多公钥数字证书中的相应从公钥以及以调用请求中指定的公钥密码算法A的私钥作为主体私钥的多公钥数字证书的相应从私钥进行密码运算;若支持多公钥数字证书的密码组件接收到使用公钥密码算法A的密钥进行密码运算的请求,而调用请求中指定的公钥密码算法A的公钥不是一个多公钥数字证书的主体私钥即主公钥,或调用请求中指定的公钥密码算法A的私钥不是一个多公钥数字证书的主体私钥,且密码运算所针对的数据不是之前使用一个从公钥和一个从私钥进行密码运算得到的伪密码数据,则密码组件使用调用请求中指定的公钥密码算法A的公钥和公钥密码算法A的私钥进行密码运算。4.根据权利要求1所述的用于算法过渡的多公钥数字证书的密钥使用方法,其特征是:若验证数字签名的密码组件一定支持多公钥数字证书,则:当支持多公钥数字证书的密码组件接收到使用多公钥数字证书的公钥密码算法A的主体私钥即主私钥进行签名运算的请求后,根据密码运算的类型和密钥用途选择、使用多公钥数字证书的相应从私钥进行签名运算;当接收到使用公钥密码算法A的公钥对签名值进行签名验证或从签名值解密恢复出签名值对应的散列值,而调用请求中指定的公钥密码算法A的公钥为多公钥数字证书的主体公钥即主公钥,待处理的签名值为伪密码数据即伪签名值,则密码组件利用伪签名值获得真实的签名值,然后根据密码运算的类型和密钥用途选择、使用多公钥数字证书的相应从公钥进行密码运算。5.根据权利要求4所述的用于算法过渡的多公钥数字证书的密钥使用方法,其特征是:若针对多公钥数字证书进行数字签名的签发者的数字证书即CA数字证书也是多公钥
数字证书,则多公钥数字证书的签名值字段中的签名值为CA数字证书的从私钥进行签名运算所生成的伪签名值,若伪签名值不包含真实的签名值,则真实的签名值存放在多公钥数字证书中,以及/或者存放在约定的位置;若伪签名值不包含真实的签名值,而真实的签名值存放在多公钥数字证书中,则要使用公钥针对多公钥数字证书的签名值即伪签名值进行密码运算处理的密码组件从多公钥数字证书中获取对应的真实的签名值;密码组件通过检查确定密码运算处理要使用的公钥为多公钥CA数字证书的主体公钥从而确定待密码运算处理的伪签名值为多公钥数字证书的伪签名值,或者/以及多公钥数字证书中的伪签名值有与其他伪签名值有不一样的标志信息,密码组件通过标志信息确定待密码运算处理的伪签名值为多公钥数字证书中的伪签名值。6.根据权利要求1所述的用...
【专利技术属性】
技术研发人员:龙毅宏,许明,陈韶光,王利国,
申请(专利权)人:北京天威诚信电子商务服务有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。