CN114726546B - 数字身份认证方法、装置、设备和存储介质 - Google Patents

数字身份认证方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN114726546B
CN114726546B CN202210509130.2A CN202210509130A CN114726546B CN 114726546 B CN114726546 B CN 114726546B CN 202210509130 A CN202210509130 A CN 202210509130A CN 114726546 B CN114726546 B CN 114726546B
Authority
CN
China
Prior art keywords
public key
certificate
terminal user
coefficient
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210509130.2A
Other languages
English (en)
Other versions
CN114726546A (zh
Inventor
郑军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Infosec Technologies Co Ltd
Original Assignee
Beijing Infosec Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Infosec Technologies Co Ltd filed Critical Beijing Infosec Technologies Co Ltd
Priority to CN202210509130.2A priority Critical patent/CN114726546B/zh
Publication of CN114726546A publication Critical patent/CN114726546A/zh
Application granted granted Critical
Publication of CN114726546B publication Critical patent/CN114726546B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例提供一种数字身份认证方法、装置、设备和存储介质,所述方法包括:获取证书颁发机构下发的系统证书和终端用户证书,其中,系统证书为证书颁发机构的证书,并且所述系统证书的类型为显式证书,所述终端用户证书的类型包括隐式证书或无证书。基于终端用户私钥,获取所述终端用户证书相对应的中间公钥。根据所述中间公钥和系统公钥,生成目标公钥,所述系统公钥为所述系统证书对应的公钥,所述目标公钥用于认证终端用户的数字身份。在本方案中,融合了显式证书和其它证书的优势,不仅可以有效的满足现有的公钥基础设施信任体系的建立,同时也可以有效的降低终端设备的存储空间,减少带宽开销,从而有效提升通信效率。

Description

数字身份认证方法、装置、设备和存储介质
技术领域
本发明涉及信息安全数据处理技术领域,尤其涉及一种数字身份认证方法、装置、设备和存储介质。
背景技术
随着科学技术的不断发展,信息安全行业也得到了全人类关注和重视,进入了一个快速发展的轨道。但是,随着物联网的来临,其对信息安全要求以及高速低时延的要求越来越高。
在传统方案中,现有的数字信息身份基本上采用基于X.509证书的显式证书。然而,显式证书的数据较大,将会占用终端用户较大的存储空间,同时还会降低安全通信速度。因此,传统的方案,已经不能满足物联网下的高速的传输数据的要求。
发明内容
本发明实施例提供一种数字身份认证方法、装置、设备和存储介质,用以降低终端用户设备的存储空间,减少带宽开销,从而有效提升通信效率。
第一方面,本发明实施例提供一种数字身份认证方法,应用于终端设备,该方法包括:
获取证书颁发机构下发的系统证书和终端用户证书,所述系统证书为证书颁发机构的证书,其中,所述系统证书的类型为显式证书,所述终端用户证书的类型包括隐式证书或无证书;
基于终端用户私钥,获取所述终端用户证书相对应的中间公钥;
根据所述中间公钥和系统公钥,生成目标公钥,所述系统公钥为所述系统证书对应的公钥,所述目标公钥用于认证终端用户的数字身份。
可选地,所述根据所述中间公钥和系统公钥,生成目标公钥,包括:
若所述终端用户证书为隐式证书,则利用杂凑算法对所述终端用户证书进行处理,得到中间公钥系数;
利用杂凑算法对所述中间公钥和系统公钥进行处理,得到系统公钥系数;
根据所述中间公钥、所述系统公钥、所述中间公钥系数以及所述系统公钥系数,生成目标公钥。
可选地,所述方法还包括:
若所述终端用户证书为无证书,则利用杂凑算法对所述终端用户的身份标识以及中间公钥进行处理,得到中间公钥系数;
利用杂凑算法对所述中间公钥和系统公钥进行处理,得到系统公钥系数;
根据所述中间公钥、所述系统公钥、所述中间公钥系数以及所述系统公钥系数,生成目标公钥。
可选地,所述根据所述中间公钥、所述系统公钥、所述中间公钥系数以及所述系统公钥系数,生成目标公钥,包括:
获取中间公钥与中间公钥系数的第一乘积值、以及系统公钥与系统公钥系数的第二乘积值;
将所述第一乘积值与第二乘积值之和确定为目标公钥。
可选地,所述生成目标公钥之后,还包括:
基于终端用户私钥,获取所述终端用户证书相对应的私钥因子,所述私钥因子是证书颁发机构基于系统私钥和临时私钥生成的;
根据所述私钥因子、所述终端用户私钥,生成目标私钥。
可选地,所述根据所述私钥因子、所述终端用户私钥,生成目标私钥,包括:
获取私钥因子、以及终端用户私钥与中间公钥系数的乘积值;
获取所述私钥因子与乘积值之和;
对所述私钥因子与乘积值之和做模的运算,得到目标私钥。
可选地,所述方法还包括:
获取终端用户的目标私钥、待发送消息、以及椭圆曲线参数;
基于所述终端用户的目标私钥和椭圆曲线参数对待发送消息进行签名,得到签名值,所述签名值用于进行数字身份认证。
第二方面,本发明实施例提供一种数字身份认证装置,位于终端设备,该装置包括:
第一获取模块,用于获取证书颁发机构下发的系统证书和终端用户证书,所述系统证书为证书颁发机构的证书,其中,所述系统证书的类型为显式证书,所述终端用户证书的类型包括隐式证书或无证书;
第二获取模块,用于基于终端用户私钥,获取所述终端用户证书相对应的中间公钥;
生成模块,用于根据所述中间公钥和系统公钥,生成目标公钥,所述系统公钥为所述系统证书对应的公钥,所述目标公钥用于认证终端用户的数字身份。
可选地,所述生成模块具体可以用于:
若所述终端用户证书为隐式证书,则利用杂凑算法对所述终端用户证书进行处理,得到中间公钥系数;
利用杂凑算法对所述中间公钥和系统公钥进行处理,得到系统公钥系数;
根据所述中间公钥、所述系统公钥、所述中间公钥系数以及所述系统公钥系数,生成目标公钥。
可选地,所述生成模块具体还可以用于:
若所述终端用户证书为无证书,则利用杂凑算法对所述终端用户的身份标识以及中间公钥进行处理,得到中间公钥系数;
利用杂凑算法对所述中间公钥和系统公钥进行处理,得到系统公钥系数;
根据所述中间公钥、所述系统公钥、所述中间公钥系数以及所述系统公钥系数,生成目标公钥。
可选地,所述生成模块具体还可以用于:
获取中间公钥与中间公钥系数的第一乘积值、以及系统公钥与系统公钥系数的第二乘积值;
将所述第一乘积值与第二乘积值之和确定为目标公钥。
可选地,所述生成模块之后还可以包括第三获取模块,具体可以用于:
基于终端用户私钥,获取所述终端用户证书相对应的私钥因子,所述私钥因子是证书颁发机构基于系统私钥和临时私钥生成的;
根据所述私钥因子、所述终端用户私钥,生成目标私钥。
可选地,所述第三获取模块具体还可以用于:
获取私钥因子、以及终端用户私钥与中间公钥系数的乘积值;
获取所述私钥因子与乘积值之和;
对所述私钥因子与乘积值之和做模的运算,得到目标私钥。
可选地,所述装置还可以包括确定模块,具体可以用于:
获取终端用户的目标私钥、待发送消息、以及椭圆曲线参数;
基于所述终端用户的目标私钥和椭圆曲线参数对待发送消息进行签名,得到签名值,所述签名值用于进行数字身份认证。
第三方面,本发明实施例提供一种终端设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第一方面所述的数字身份认证方法。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被管控设备的处理器执行时,使所述处理器至少可以实现如第一方面所述的数字身份认证方法。
第五方面,本发明实施例提供一种数字身份认证方法,应用于证书颁发机构,所述方法包括:
接收终端用户发送的证书请求,所述证书请求中包括证书信息、所述终端用户的身份标识、终端用户公钥;
基于所述证书请求,由随机数发生器产生临时公钥和临时私钥;
根据所述临时公钥和所述终端用户公钥,生成中间公钥;
基于所述中间公钥和证书信息,生成与身份标识相对应的终端用户证书。
可选地,所述根据所述临时公钥和所述终端用户公钥,生成中间公钥,包括:
基于所述终端用户的身份标识,生成临时公钥系数;
根据所述临时公钥、所述终端用户公钥以及所述临时公钥系数,生成中间公钥。
可选地,所述基于所述终端用户的身份标识,生成临时公钥系数,包括:
选取椭圆曲线;
确定与所述椭圆曲线相对应的椭圆曲线参数;
利用哈希函数对所述终端用户的身份标识和所述椭圆曲线参数进行处理,得到临时公钥系数。
可选地,所述根据所述临时公钥、所述终端用户公钥和临时公钥系数,生成中间公钥,包括:
获取终端用户公钥、临时公钥与临时公钥系数的乘积值;
将所述终端用户公钥与乘积值之和确定为中间公钥。
第六方面,本发明实施例提供一种数字身份认证装置,位于证书颁发机构,所述装置包括:
接收模块,用于接收终端用户发送的证书请求,所述证书请求中包括证书信息、所述终端用户的身份标识、终端用户公钥;
产生模块,用于基于所述证书请求,由随机数发生器产生临时公钥和临时私钥;
第一生成模块,用于根据所述临时公钥和所述终端用户公钥,生成中间公钥;
第二生成模块,用于基于所述中间公钥和证书信息,生成与身份标识相对应的终端用户证书。
可选地,所述第一生成模块具体可以用于:
基于所述终端用户的身份标识,生成临时公钥系数;
根据所述临时公钥、所述终端用户公钥以及所述临时公钥系数,生成中间公钥。
可选地,所述第一生成模块具体还可以用于:
选取椭圆曲线;
确定与所述椭圆曲线相对应的椭圆曲线参数;
利用哈希函数对所述终端用户的身份标识和所述椭圆曲线参数进行处理,得到临时公钥系数。
可选地,所述第一生成模块具体还可以用于:
获取终端用户公钥、临时公钥与临时公钥系数的乘积值;
将所述终端用户公钥与乘积值之和确定为中间公钥。
第七方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第五方面所述的数字身份认证方法。
第八方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器至少可以实现如第五方面所述的数字身份认证方法。
本发明实施例提供的数字身份认证方案可以适用于终端设备和证书颁发机构,针对任一终端设备,首先终端设备可以获取证书颁发机构下发的系统证书和终端用户证书,其中系统证书为证书颁发机构的证书,并且系统证书的类型为显式证书,终端用户证书的类型可以为隐式证书或者无证书。然后终端设备可以基于终端用户私钥,获取终端用户证书相对应的中间公钥。最后,终端设备根据中间公钥和系统公钥,生成目标公钥,其系统公钥为系统证书对应的公钥,目标公钥用于认证终端用户的数字身份。
在上述方案中,系统证书采用显式证书模式,终端用户证书采用隐式证书或者无证书模式,融合了显式证书和其它证书(隐式证书、无证书)的优势,不仅可以有效的满足现有的公钥基础设施信任体系的建立,同时也可以有效的降低终端设备的存储空间,减少带宽开销,从而有效提升通信效率。并且,终端设备通过中间公钥和系统公钥,可以得到目标公钥,利用得到的目标公钥进行终端用户的数字身份认证,使得终端用户证书具有显式证书所具备的功能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数字身份认证方法的流程图;
图2为本发明实施例提供的一种数字身份认证方法的应用示意图;
图3为本发明一示例性实施例的另一种数字身份认证方法的流程示意图;
图4为本发明一示例性实施例的一种数字身份认证方法的流程示意图;
图5为本发明实施例提供的一种数字身份认证信任体系建立的流程示意图;
图6为本发明实施例提供的一种数字身份认证装置的结构示意图;
图7为与图6所示实施例提供的数字身份认证装置对应的电子设备的结构示意图;
图8为本发明实施例提供的一种数字身份认证装置的结构示意图;
图9为与图8所示实施例提供的数字身份认证装置对应的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”。
还需要说明的是,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
随着网络信息技术应用的日渐普及,对网络信息安全也提出了越来越高的要求。然而,在解决网络信息安全问题的所有机制与方案中,终端用户数字身份认证往往是最基础也是最关键的一步,数字身份认证是信息安全的第一道防线。
在公钥密码体系中,一个终端用户均有公钥和私钥两个密钥,并且公钥是公开给任何人的,任何人只要获得了公钥,就可以使用公钥对消息加密,将加密后的密文发送至接收者。但是,这种公钥密钥机制可能会面临中间人替换公钥的风险。为了解决这种问题,通常可以采用显式证书机制实现终端用户身份和终端用户公钥之间的安全对应。例如,X.509证书机制采用公钥基础设施(Public Key Infrastructure,简称PKI)技术,系统建设有公信力的证书颁发机构(Certificate Authority,简称CA),用于鉴定终端用户身份,并为终端用户签发数字证书,数字证书安全地将终端用户身份和终端用户密钥绑定在一起。终端用户在业务系统中先交换证书,再使用公私钥来完成终端用户的数字身份认证。
但是,由于显式证书的数据较大,对终端设备的存储空间有更高的要求,同时在传输的过程中,会造成较大的通信报文长度,从而降低带宽的利用率,影响整体的安全通信效率。基于此,本发明实施例提供了解决方案,终端用户采用隐式证书或者无证书机制,并且提供了生成终端用户目标公钥和目标私钥的方法,使得终端用户证书既具有隐式证书或无证书的特点,同时还具有显式证书的特点。
本发明实施例提供的数字身份认证方法可以由一电子设备来执行,该电子设备可以是诸如PC机、笔记本电脑、智能手机等终端设备。下面对终端设备执行的数字身份认证过程进行示例性说明。
图1为本发明实施例提供的一种数字身份认证方法的流程图。图2为本申请一示例性实施例的一种数字身份认证方法的应用场景示意图;参考附图1、附图2所示,本实施例提供了一种数字身份认证方法,该方法的执行主体可以为终端设备,具体的,如图1所示,该数字身份认证方法可以包括如下步骤:
101、获取证书颁发机构下发的系统证书和终端用户证书,系统证书为证书颁发机构的证书,其中,系统证书的类型为显式证书,终端用户证书的类型包括隐式证书或无证书。
102、基于终端用户私钥,获取终端用户证书相对应的中间公钥。
103、根据中间公钥和系统公钥,生成目标公钥,系统公钥为系统证书对应的公钥,目标公钥用于认证终端用户的数字身份。
本发明实施例中提供了一种终端用户数字身份认证方法,终端用户证书采用隐式证书或无证书,证书链上的系统证书(CA证书)都采用显式证书,并可以基于生成的目标公钥来完成终端用户的数字身份认证。对终端用户的数字身份消息进行认证可以避免消息的盗取,从而提高了消息的安全性。
由于在公钥密码体系中,公钥是公开给任何人的,在加密的过程中,加密者无法知道加密所用的公钥是否为接收者的,那么,可以使用终端用户证书来进行数字身份的认证。
在进行终端用户数字身份信息认证之前,首先需要向证书颁发机构(CA机构)申请证书,证书颁发机构基于终端用户的证书请求和终端用户的身份标识生成相应的证书,并将生成的证书链下发至终端用户。
在本发明实施例中,终端用户接收证书颁发机构下发的系统证书和终端用户证书。其中,系统证书为证书颁发机构的证书即CA证书,系统证书采用显式证书,显式证书中包含了CA机构的身份标识信息、真实的最终公钥以及签名值,因此显式证书可以通过证书中的签名值即可显示并确认证书的上下级关系,即可以直接通过证书就能直观快捷的完成证书链信息的确认。终端用户证书为终端用户的证书,终端用户证书的类型可以为隐式证书或无证书。其中,隐式证书中包含了终端用户的身份标识信息、中间公钥信息,无证书中包含了中间公钥信息。
由于隐式证书中不包含签名值,无证书中不包含身份标识和签名值,那么隐式证书或无证书的数据就会比较小。因此,在通信传输的过程中,终端用户使用隐式证书或无证书模式,可以有效地减少通信数据的长度,从而有效提升通信效率。
同时,由于隐式证书、无证书不包含签名值,需要通过签名验签的方式进一步地确认证书链信息。并且由于隐式证书、无证书中包含的公钥信息,并不是最终公钥信息,并不能直接用于数字签名的验签、加密、解密等过程中,因此,本发明实施例中提供了一种计算目标私钥和目标公钥的方法,这样就可以直接基于目标私钥和目标公钥来完成验签、加密、解密等过程。
终端设备生成目标公钥的具体实现过程可以为:终端设备在接收到证书颁发机构下发的系统证书和终端用户证书之后,则可以基于终端用户私钥,获取终端用户证书相对应的中间公钥。然后,基于系统证书,获取系统证书相对应的公钥即系统公钥。最后,根据中间公钥和系统公钥,生成目标公钥。
其中,获取终端用户证书相对应的中间公钥的具体实现方式可以为:证书颁发机构使用终端用户公钥对私钥因子a加密得到密文A,将密文A、终端用户证书以及系统证书返回至终端设备。可选地,证书颁发机构也可以使用终端用户公钥同时对私钥因子、终端用户证书以及系统证书进行加密处理,并将加密后的私钥因子、终端用户证书以及系统证书发送至终端设备。终端设备收到来自证书颁发机构的证书响应消息后,使用终端用户私钥对消息进行解密处理,获得终端用户证书和私钥因子,并从终端用户证书中获得中间公钥。其中,私钥因子作为计算目标私钥的一个因子,将终端用户证书、中间公钥信息与CA机构私钥信息绑定在一起。
值得注意的是:由于终端用户采用的是隐式证书或无证书,那么这里获得的中间公钥信息,并不能作为最终用于签名验签、加密、解密,那么就需要生成目标公钥用于最终的签名验签、加密、解密。其中,目标公钥可以基于中间公钥和系统公钥生成,目标公钥可以用于认证终端用户的数字身份。
在一可选实施例中,根据中间公钥和系统公钥,生成目标公钥,其具体的实现方式可以为:若终端用户证书为隐式证书,则利用杂凑算法对终端用户证书进行处理,得到中间公钥系数。然后,利用杂凑算法对中间公钥和系统公钥进行处理,得到系统公钥系数。最后,根据中间公钥、系统公钥、中间公钥系数以及系统公钥系数,生成目标公钥。这里,在生成目标公钥时,引入了一个系统公钥参数,此参数将证书颁发机构的密钥和隐式证书(无证书)的中间密钥进行了一次结合,进一步加强了密钥安全性。
在另一可选实施例中,根据中间公钥和系统公钥,生成目标公钥,其具体的实现方式可以为:若终端用户证书为无证书,则利用杂凑算法对终端用户的身份标识以及中间公钥进行处理,得到中间公钥系数。再利用杂凑算法对中间公钥和系统公钥进行处理,得到系统公钥系数。最后,根据中间公钥、系统公钥、中间公钥系数以及系统公钥系数,生成目标公钥。
具体的,本实施例中的根据中间公钥、系统公钥、中间公钥系数以及系统公钥系数,生成目标公钥,包括:
步骤1031:获取中间公钥与中间公钥系数的第一乘积值、以及系统公钥与系统公钥系数的第二乘积值。
步骤1032:将第一乘积值与第二乘积值之和确定为目标公钥。
具体的,假设中间公钥为Qc,中间公钥系数为e,系统公钥为Qca,系统公钥系数为w,那么,在获取到这些值之后,则可以确定中间公钥与中间公钥系数的第一乘积值为e*Qc、系统公钥与系统公钥系数的第二乘积值为w*Qca,最后将上述获得的第一乘积值与第二乘积值确定为目标公钥,也即目标公钥Qu1=e*Qc+w*Qca。
由上述描述可知,目标公钥是由终端用户和CA机构协同产生的,在计算过程中,将中间公钥信息与CA密钥信息结合起来,进一步保护了密钥安全。并且,终端用户的身份标识信息也参与到目标公钥的计算,那么在最终使用目标公钥时,可以安全有效地验证消息的来源,因此,目标公钥可以用于终端用户的数字身份认证,并实现了利用更短的消息报文达到显式证书所具有的功能。
本实施例中,通过所获取的第一乘积值和第二乘积值确定与终端用户证书相对应的目标公钥,并根据目标公钥对接收到的信息进行验签,不仅可以安全有效地验证消息的来源,并且还有效地提高了安全通信的效率。
在一个实施例中,在获得与终端用户证书相对应的目标公钥之后,本实施例中的方法还可以包括:
104、基于终端用户私钥,获取终端用户证书相对应的私钥因子,其中私钥因子是证书颁发机构基于系统私钥和临时私钥生成的。
105、根据私钥因子、终端用户私钥,生成目标私钥。
在生成目标公钥之后,终端设备可以基于终端用户私钥,对来自CA证书的消息进行解密,获得终端用户证书和私钥因子,私钥因子是由证书颁发机构基于系统私钥和证书颁发机构随
机生成的临时私钥生成的。因此,私钥因子可以作为计算目标私钥的一个因子。然后,基于私钥因子、终端用户私钥,生成终端用户对应的目标私钥。
在获取到私钥因子之后,可以结合终端用户私钥确定与终端用户相对应的目标私钥。具体的,本发明实施例中,根据私钥因子、终端用户私钥,生成目标私钥,包括:首先,获取私钥因子、以及终端用户私钥与中间公钥系数的乘积值。接着,获取私钥因子与乘积值之和。最后,对私钥因子与乘积值之和做模的运算,得到目标私钥。
具体的,假设私钥因子为a,终端用户私钥为du,中间公钥系数为e,那么,在获得私钥因子和中间公钥因子之后,则可以确定终端用户私钥与中间公钥系数的乘积值为e*du,私钥因子与乘积值之和为a+e*du,最后将上述私钥因子与乘积值之和做模n的运算,得到目标私钥du1,即目标私钥du1=(a+e*du)mod n。
由上述描述可知,目标私钥是由终端用户和证书颁发机构协同产生的,进一步的保护了密钥的安全。并且可以基于目标私钥来完成终端用户的签名的生成。此外,终端设备在获得到终端用户对应的目标私钥后,可以将终端用户证书、目标私钥、目标公钥保存至安全存储区,也可以将目标公钥和目标私钥与终端用户证书进行绑定,以便在后续签名验签等过程中,直接使用目标密钥对进行操作。并且使用目标密钥进行签名验签、加解密时,可以直接按照现有的数字签名算法、数字加密算法进行,即本发明提供的数字身份认证方法可以兼容市场上大多数安全设备,具有较好的通用性。
综上,在本发明实施例中,终端设备首先获取证书颁发机构下发的系统证书和终端用户证书,并且系统证书的类型为显式证书,终端用户证书的类型可以为隐式证书或者无证书。然后终端设备基于终端用户私钥,获取终端用户证书相对应的中间公钥。最后,终端设备根据中间公钥和系统公钥,生成目标公钥,基于目标公钥实现终端用户的数字身份认证。在上述方案中,系统证书采用显式证书模式,终端用户证书采用隐式证书或者无证书模式,融合了显式证书和其它证书的优势,并且,终端设备通过中间公钥和系统公钥,得到目标公钥,利用得到的目标公钥进行终端用户的数字身份认证,使得终端用户证书不仅具有显式证书所具备的功能,同时也可以有效的降低终端设备的存储空间,减少带宽开销,从而有效提升通信效率。
图3为本发明一示例性实施例的另一种数字身份认证方法的流程示意图;在上述任意一个实施例的基础上,继续参考附图3所示,为了提高该方法的实用性,本实施例中的方法还可以包括:
301、获取终端用户的目标私钥、待发送消息、以及椭圆曲线参数。
302、基于终端用户的目标私钥和椭圆曲线参数对待发送消息进行签名,得到签名值,签名值用于进行数字身份认证。
在获取到终端用户的目标私钥、待发送信息之后,可以获取椭圆曲线参数,然后基于终端用户的目标私钥和椭圆曲线参数对待发送信息进行签名,得到对应的签名值,其签名值可以用于终端用户的数字身份认证。其中,使用终端用户对应的目标私钥进行签名生成的过程,可以按照国标SM2数字签名算法进行签名生成。
在实际应用中,发送者可以使用自己的目标私钥对待发送信息数据进行签名,得到签名值,然后将待发送信息、签名值、身份标识、以及对应的证书链发送至接收者。接收者根据接收到的信息,获得发送者最终用于验签的目标公钥,再利用目标公钥、签名值以及信息数据进行验签,其具体的验签过程可以按照国标SM2数字签名算法进行验签,其实现过程不再此赘述。如果验签成功,则认为消息为真实的发送者发送的,并且未被篡改。若验签失败,则认为此消息无效,将其丢弃。在验签的过程中,若身份标识信息、签名值、中间公钥、系统证书任意一项被篡改,都会导致验签失败。因此,使用该方法可以安全有效地完成终端用户的数字身份认证,保证了数据传输的安全性。
在一可选实施例中,假设终端用户使用隐式证书模式进行签名验签、加解密时,使用目标私钥对待签名数据按照SM2数字签名算法进行签名验签,使用目标公钥按照数字加密算法进行加密,使用目标公钥按照数字加密算法进行解密。即当终端用户使用隐式证书模式进行签名验签、加解密时,其签名验签过程、加解密过程相对于显式证书来说,只是增加了计算目标公钥和目标私钥的步骤,可以平滑的兼容现有的标准接口。
在另一可选实施例中,假设终端用户使用无证书模式进行签名验签、加解密时,使用目标私钥对待签名数据按照SM2数字签名算法进行签名验签,使用目标公钥按照数字加密算法进行加密,使用目标公钥按照数字加密算法进行解密。即当终端用户使用隐式证书模式进行签名验签、加解密时,其签名验签过程、加解密过程相对于显式证书来说,只是增加了计算目标公钥和目标私钥的步骤,可以平滑的兼容现有的标准接口。
本实施例中,发送者可以使用生成的目标私钥对待发送信息数据进行签名,得到签名值。接收者可以根据获得的目标公钥来完成验签过程。即通过使用目标密钥进行签名、验签、加密、解密时的过程与现有的数字签名算法、数字加密算法的标准保持一致。
图4为本发明一示例性实施例的一种数字身份认证方法的流程示意图;参考附图4所示,本实施例提供了一种数字身份认证方法,该方法的执行主体可以为证书颁发机构,可以理解的是,该证书颁发机构可以实现为软件、或者软件和硬件的组合。具体的,该数字身份认证方法可以包括:
401、接收终端用户发送的证书请求,证书请求中包括证书信息、终端用户的身份标识、终端用户公钥。
402、基于证书请求,由随机数发生器产生临时公钥和临时私钥。
403、根据临时公钥和终端用户公钥,生成中间公钥。
404、基于中间公钥和证书信息,生成与身份标识相对应的终端用户证书。
证书颁发机构在生成证书之前,首先需要建立多级的灵活部署的CA信任体系,该体系中的系统证书都采用显式证书。具体的建立过程可以参考附图5,选取一条椭圆曲线,随机产生随机数,并计算生成一对密钥,将CA标识、公钥信息以及私钥信息根据证书结构编码生成对应的根系统证书。接着,随机生成一个随机数,基于该随机数,计算生成一对密钥。然后生成证书请求,并将证书请求发送至上一级CA,用于签发子系统证书。并将签发的子系统证书导入信任体系的系统中。
当信任体系建立完成后,可以接收终端用户证书的请求,并且可以根据证书请求签发对应的证书响应至终端设备。其具体的终端用户证书的签发过程可以实现为:接收终端用户发送的证书请求,其中,证书请求中包括证书信息、终端用户的身份标识、终端用户公钥。然后,基于证书请求,由随机数发生器产生临时公钥和临时私钥。接着,根据临时公钥和终端用户公钥,生成中间公钥。最后,基于中间公钥和证书信息,生成与身份标识相对应的终端用户证书。
其中,根据临时公钥和终端用户公钥,生成中间公钥的具体实现方式可以为:基于终端用户的身份标识,生成临时公钥系数。根据临时公钥、终端用户公钥以及临时公钥系数,生成中间公钥。
可选地,基于所述终端用户的身份标识,生成临时公钥系数,具体可以实现为:选取椭圆曲线;确定与椭圆曲线相对应的椭圆曲线参数;利用哈希函数对终端用户的身份标识和椭圆曲线参数进行处理,得到临时公钥系数。
具体的,假设终端用户的身份标识为Iu,临时公钥系数为u,那么,在获取到终端用户的身份标识之后,则可以确定临时公钥系数u=H256(Iu)mod n。由于临时公钥系数将终端用户的身份标识进行绑定,这样根据临时公钥系数确定出的中间公钥中,包含有终端用户的身份标识,根据中间公钥就可以确定该公钥属于那个终端用户的。
在获取到临时公钥系数之后,可以结合临时公钥与终端用户公钥确定与终端用户相对应的中间公钥。具体的,本发明实施例中,根据所述临时公钥、所述终端用户公钥和临时公钥系数,生成中间公钥,包括:获取终端用户公钥、临时公钥与临时公钥系数的乘积值。将终端用户公钥与乘积值之和确定为中间公钥。
具体的,假设临时公钥为Qk,临时公钥系数为u,终端用户公钥为Qu,那么,在获得临时公钥系数之后,则可以确定临时公钥与临时公钥系数的乘积值为u*Qk,终端用户公钥与乘积值之和为Qu+u*Qk,最后将终端用户公钥与乘积值之和确定为中间公钥,即中间公钥为Qu+u*Qk。
由上述描述可知,中间公钥是由终端用户和证书颁发机构协同产生的,并且生成的中间公钥包含有终端用户的身份标识信息,那么基于中间公钥即可确定该公钥为确认用户身份信息。显然,这与传统的隐式证书或者无证书中的公钥不再一样,本发明确定出的中间公钥信息与用户身份标识信息进行绑定,使得密钥更安全,不易被篡改。
在本发明实施例中,证书颁发机构基于终端用户发送的证书请求,由随机数发生器产生临时公钥和临时私钥。并根据临时公钥和终端用户公钥,生成中间公钥。最后,基于中间公钥和证书信息,生成与身份标识相对应的终端用户证书。当生成对应的证书后,证书颁发机构会将其相关的证书链下发至终端设备中。
本发明实施例提供的方案的一些步骤的具体执行过程可以参考前述其他实施例中的相关说明,在此不赘述。
具体应用时,本应用实施例提供了一种数字身份认证方法,该方法的执行主体可以包括终端设备和证书颁发机构,并且终端用户采用隐式证书模式,具体的,数字身份认证方法可以包括以下步骤:
步骤1:制作隐式证书。
a) 首先选择一条椭圆曲线,其椭圆曲线可以采用国标SM2曲线。
b) 选择一个证书标准,该证书标准可以是以下任意一种RFC5280、IEEE1609、2- 2016、YD/T 3957-2021。为了描述方便,将证书结构分成
Figure 396442DEST_PATH_IMAGE001
Figure 542253DEST_PATH_IMAGE002
,三大结构。其中
Figure 449029DEST_PATH_IMAGE001
包含了证书公钥、有效期、证书扩展、证书权限等信息,
Figure 587755DEST_PATH_IMAGE003
为签名算法,
Figure 263587DEST_PATH_IMAGE004
为签名值。
c) 证书颁发机构(CA机构)随机产生一对主密钥
Figure 642616DEST_PATH_IMAGE005
,作为CA机构的密 钥,其中
Figure 771109DEST_PATH_IMAGE006
,G为椭圆的基点。将
Figure 729837DEST_PATH_IMAGE007
、有效期、证书扩展、证书权限等消息 组成
Figure 512373DEST_PATH_IMAGE001
,然后利用
Figure 265566DEST_PATH_IMAGE008
进行签名得到
Figure 678092DEST_PATH_IMAGE004
,将
Figure 909353DEST_PATH_IMAGE001
Figure 356515DEST_PATH_IMAGE002
编码成CA证 书。其中根证书使用自己的私钥对
Figure 280609DEST_PATH_IMAGE009
进行签名得到
Figure 898541DEST_PATH_IMAGE004
,子CA机构则使用上级CA证书的 私钥对
Figure 667914DEST_PATH_IMAGE001
进行签名得到
Figure 969582DEST_PATH_IMAGE004
,并计算Z=
Figure 64577DEST_PATH_IMAGE010
(ENTLA‖
Figure 654959DEST_PATH_IMAGE011
‖a‖b‖
Figure 477290DEST_PATH_IMAGE012
Figure 899044DEST_PATH_IMAGE013
Figure 164940DEST_PATH_IMAGE014
‖)。
d) 终端用户产生一对密钥对
Figure 242618DEST_PATH_IMAGE015
,将
Figure 619372DEST_PATH_IMAGE016
Figure 82584DEST_PATH_IMAGE017
等信息发送至CA。
f) CA机构将
Figure 316119DEST_PATH_IMAGE018
Figure 881092DEST_PATH_IMAGE017
等信息根据证书的编码结构编码得到终端的隐式证书
Figure 795959DEST_PATH_IMAGE019
,计算e=
Figure 395567DEST_PATH_IMAGE020
(
Figure 255463DEST_PATH_IMAGE019
) mod n;然后计算r =(e*k+w*
Figure 838892DEST_PATH_IMAGE021
)mod n;
g) 判断
Figure 823028DEST_PATH_IMAGE022
是否为椭圆曲线上的无穷远点,如果是则返回至 第d步。
h) 使用
Figure 277143DEST_PATH_IMAGE023
,并将R和证书
Figure 55743DEST_PATH_IMAGE019
Figure 313418DEST_PATH_IMAGE024
返回给终 端用户,这里也可以同时将证书
Figure 835666DEST_PATH_IMAGE025
i) 终端用户收到来自CA的证书响应消息后,首先使用
Figure 941026DEST_PATH_IMAGE026
对消息做解密,获得
Figure 890527DEST_PATH_IMAGE027
,并从证书
Figure 651810DEST_PATH_IMAGE019
中获取的临时公钥
Figure 961437DEST_PATH_IMAGE028
,然后计算
Figure 186882DEST_PATH_IMAGE029
,
Figure 41706DEST_PATH_IMAGE030
Figure 290284DEST_PATH_IMAGE031
Figure 951073DEST_PATH_IMAGE032
Figure 234287DEST_PATH_IMAGE033
Figure 774858DEST_PATH_IMAGE034
=
Figure 245154DEST_PATH_IMAGE035
= e*(
Figure 912896DEST_PATH_IMAGE036
)+
Figure 847354DEST_PATH_IMAGE037
= (e*k +w
Figure 309559DEST_PATH_IMAGE038
)*G +e
Figure 796646DEST_PATH_IMAGE039
=
Figure 2499DEST_PATH_IMAGE040
j) 判断
Figure 994726DEST_PATH_IMAGE041
是否相等,如果不相等则返回步骤a,否则保存
Figure 424570DEST_PATH_IMAGE042
Figure 135037DEST_PATH_IMAGE043
),
Figure 128270DEST_PATH_IMAGE044
至安全存储区。
步骤2:生成隐式证书对应的签名。
使用目标私钥
Figure 975003DEST_PATH_IMAGE045
对待发送消息M进行签名,其具体的实现方式可以包括:
S1:计算
Figure 310170DEST_PATH_IMAGE046
=
Figure 976775DEST_PATH_IMAGE047
(ENTLA‖
Figure 39277DEST_PATH_IMAGE048
‖a‖b‖
Figure 740517DEST_PATH_IMAGE049
Figure 981006DEST_PATH_IMAGE049
Figure 400486DEST_PATH_IMAGE050
Figure 1100DEST_PATH_IMAGE051
)。
S2:计算
Figure 619163DEST_PATH_IMAGE052
=
Figure 30553DEST_PATH_IMAGE053
S3:计算e=
Figure 671750DEST_PATH_IMAGE054
S4:随机生成随机数k Є [1,n-1]。
S5:计算椭圆上的点(
Figure 92367DEST_PATH_IMAGE055
Figure 20396DEST_PATH_IMAGE056
)=[k]*G。
S6:计算r = (e+
Figure 337108DEST_PATH_IMAGE055
) mod n ,若r=0 或者r+k=n,则返回S4。
S7:计算s= (
Figure 527918DEST_PATH_IMAGE057
*(k-r*
Figure 221067DEST_PATH_IMAGE045
)) mod n。
S8:得到消息M的签名值为(r,s)。
根据以上可知,隐式证书的签名过程与国标SM2椭圆曲线数字签名算法保持一致。
步骤3:对隐式证书进行验签。
使用目标公钥对接收到的消息M进行验签,其具体的实现方式可以包括:
V0:计算
Figure 16985DEST_PATH_IMAGE046
=
Figure 488287DEST_PATH_IMAGE047
(ENTLA‖
Figure 166393DEST_PATH_IMAGE048
‖a‖b‖
Figure 397654DEST_PATH_IMAGE058
Figure 48078DEST_PATH_IMAGE058
Figure 768909DEST_PATH_IMAGE050
Figure 871995DEST_PATH_IMAGE051
)。
V1:校验
Figure 890635DEST_PATH_IMAGE059
Є [1,n]。
V2:校验
Figure 661145DEST_PATH_IMAGE060
Є [1,n]。
V3:将
Figure 552878DEST_PATH_IMAGE061
确定为M’,即M’=
Figure 877680DEST_PATH_IMAGE061
V4:计算e’=
Figure 716323DEST_PATH_IMAGE062
V5:计算t = (
Figure 138077DEST_PATH_IMAGE063
)mod n ,若t=0则验签不t通过。
V6:计算椭圆曲线点(x’, y’)= [
Figure 653241DEST_PATH_IMAGE064
]*G+[t]
Figure 465339DEST_PATH_IMAGE065
V7:计算R = (e’+ x’)mod n,检验R=
Figure 638831DEST_PATH_IMAGE066
是否成立,若成立则验证通过,否则验 证不通过。
隐式证书的验签过程与国标SM2椭圆曲线数字签名算法保持一致。其具体实现方 式可参考SM2数字签名算法。并且通过上述计算过程可知,若
Figure 118354DEST_PATH_IMAGE067
被篡改,则计算出来的 e将发生改变,将导致最终计算出来的
Figure 555152DEST_PATH_IMAGE068
发生改变,与终端用户的目标私钥
Figure 372322DEST_PATH_IMAGE045
不能 形成一对密钥对。即
Figure 552768DEST_PATH_IMAGE069
,那么验签自然不通过。若
Figure 621218DEST_PATH_IMAGE067
不是
Figure 25655DEST_PATH_IMAGE070
签发,则计算出来的
Figure 77924DEST_PATH_IMAGE071
将导致最终计算出来的
Figure 45749DEST_PATH_IMAGE043
发生改 变,与终端用户的目标私钥
Figure 234285DEST_PATH_IMAGE045
不能形成一对密钥对。即
Figure 809623DEST_PATH_IMAGE069
,那么 验签自然不通过。
本实施例中未展开描述的相关内容,可以参考前述实施例中的相关说明,在此不赘述。
另外具体应用时,在另一可选实施例中,终端用户采用无证书模式,本应用实施例提供了一种数字身份认证方法,该方法的执行主体可以包括终端设备和证书颁发机构,具体的,数字身份认证方法可以包括以下步骤:
步骤1:制作无证书。
a)选取一条椭圆曲线,例如可以是国标SM2曲线。
b)CA机构产生随机产生一对主密钥
Figure 83609DEST_PATH_IMAGE072
其中
Figure 605858DEST_PATH_IMAGE073
,G为椭圆 曲线的基点。并计算Z=
Figure 163747DEST_PATH_IMAGE047
(ENTLA‖
Figure 909986DEST_PATH_IMAGE048
‖a‖b‖
Figure 936848DEST_PATH_IMAGE049
Figure 731628DEST_PATH_IMAGE049
Figure 691494DEST_PATH_IMAGE074
Figure 530006DEST_PATH_IMAGE075
),为了来 方便对CA机构的的身份的认证,CA建立采用显式证书模式。公钥以数字证书模式提供。
c)终端用户产生一对密钥
Figure 778585DEST_PATH_IMAGE076
d)终端用户将
Figure 439373DEST_PATH_IMAGE077
和自己的身份标识
Figure 722587DEST_PATH_IMAGE078
发送至CA机构。
e)CA机构随机产生一对密钥(k,
Figure 13891DEST_PATH_IMAGE079
),其中
Figure 736384DEST_PATH_IMAGE080
,并计算u=
Figure 669705DEST_PATH_IMAGE081
(
Figure 807425DEST_PATH_IMAGE082
)mod n ,
Figure 269631DEST_PATH_IMAGE083
Figure 476490DEST_PATH_IMAGE084
Figure 479081DEST_PATH_IMAGE085
接着,计算e=
Figure 471308DEST_PATH_IMAGE047
(
Figure 104414DEST_PATH_IMAGE086
||
Figure 80461DEST_PATH_IMAGE087
) mod n; r = (e*u*k+w*
Figure 808114DEST_PATH_IMAGE088
)mod n;
f)判断
Figure 717164DEST_PATH_IMAGE089
是否为椭圆曲线上的无穷远点,如果是则返回至第 d步。
g)使用
Figure 521172DEST_PATH_IMAGE090
,并将R和
Figure 922198DEST_PATH_IMAGE091
返回给终端用户,这里也可以同时将
Figure 266591DEST_PATH_IMAGE092
h)终端用户收到来自CA的证书响应消息后,首先使用
Figure 482678DEST_PATH_IMAGE093
对消息做解密,获得
Figure 457587DEST_PATH_IMAGE094
,然后计算
Figure 142646DEST_PATH_IMAGE095
Figure 493993DEST_PATH_IMAGE096
Figure 555797DEST_PATH_IMAGE097
Figure 701608DEST_PATH_IMAGE098
,u=
Figure 608384DEST_PATH_IMAGE047
(
Figure 497843DEST_PATH_IMAGE078
)mod n;
Figure 235991DEST_PATH_IMAGE099
Figure 67550DEST_PATH_IMAGE100
=
Figure 196043DEST_PATH_IMAGE101
= e*(
Figure 889193DEST_PATH_IMAGE102
)+
Figure 419531DEST_PATH_IMAGE103
= (e*u*k +w
Figure 421991DEST_PATH_IMAGE038
)*G +e
Figure 303359DEST_PATH_IMAGE039
=
Figure 596937DEST_PATH_IMAGE040
k)判断
Figure 981782DEST_PATH_IMAGE041
是否相等,如果不相等则返回步骤a,否则保存
Figure 437034DEST_PATH_IMAGE042
Figure 805699DEST_PATH_IMAGE043
),至安全存储区。
步骤2:生成无证书对应的签名。
使用目标私钥
Figure 824339DEST_PATH_IMAGE045
对待发送消息M进行签名,其具体的实现方式可以包括:
S1:计算
Figure 391587DEST_PATH_IMAGE046
=
Figure 221003DEST_PATH_IMAGE047
(ENTLA‖
Figure 811384DEST_PATH_IMAGE048
‖a‖b‖
Figure 446765DEST_PATH_IMAGE058
Figure 806202DEST_PATH_IMAGE058
Figure 58716DEST_PATH_IMAGE104
Figure 136394DEST_PATH_IMAGE105
)。
S2:计算
Figure 778728DEST_PATH_IMAGE052
=
Figure 54988DEST_PATH_IMAGE061
S3;计算e=
Figure 226206DEST_PATH_IMAGE054
S4:随机生成随机数k Є [1,n-1]。
S5:计算椭圆上的点(
Figure 40448DEST_PATH_IMAGE106
Figure 17631DEST_PATH_IMAGE107
)=[k]*G。
S6:计算r = (e+
Figure 554923DEST_PATH_IMAGE106
) mod n ,并判断r的大小,若r=0 或者r+k=n,则返回步骤 S4。
S7;计算s= (
Figure 959359DEST_PATH_IMAGE108
*(k-r*
Figure 11629DEST_PATH_IMAGE045
))mod n。
S8:得到消息M的签名值为(r,s)。
无证书的验签过程与国标SM2椭圆曲线数字签名算法保持一致。其具体实现方式可参考现有的SM2数字签名算法。
步骤3:对无证书进行验签。
使用目标公钥对接收到的消息M进行验签,其具体的实现方式可以包括:
V0:计算
Figure 979454DEST_PATH_IMAGE046
=
Figure 167989DEST_PATH_IMAGE047
(ENTLA‖
Figure 743327DEST_PATH_IMAGE048
‖a‖b‖
Figure 17314DEST_PATH_IMAGE109
Figure 539562DEST_PATH_IMAGE049
Figure 644921DEST_PATH_IMAGE050
Figure 578111DEST_PATH_IMAGE110
)。
V1:校验
Figure 339394DEST_PATH_IMAGE111
Є [1,n]。
V2:校验
Figure 462070DEST_PATH_IMAGE112
Є [1,n]。
V3:计算M’=
Figure 625199DEST_PATH_IMAGE113
V4:计算e’=
Figure 745601DEST_PATH_IMAGE062
V5:计算t = (
Figure 511957DEST_PATH_IMAGE114
)mod n ,若t=0则验签不t通过。
V6:计算椭圆曲线点(x’, y’)= [
Figure 110428DEST_PATH_IMAGE115
]*G+[t]
Figure 128063DEST_PATH_IMAGE065
V7:计算R = (e’+ x’)mod n,检验R=
Figure 481684DEST_PATH_IMAGE066
是否成立,若成立则验证通过,否则 验证不通过。
无证书的验签过程与国标SM2椭圆曲线数字签名算法保持一致。其具体实现方式可参考SM2数字签名算法。
本实施例中未展开描述的相关内容,可以参考前述实施例中的相关说明,在此不赘述。
从上述计算目标公钥的过程可知,如果Iu、
Figure 951979DEST_PATH_IMAGE091
Figure 868989DEST_PATH_IMAGE116
中的任意因数的改变, 都将影响最终的
Figure 741130DEST_PATH_IMAGE117
的计算结果,最终导致
Figure 468914DEST_PATH_IMAGE118
不能形成一对合法的密钥 对,从而导致验签失败。因此,使用该方法具体较好的安全性。
以下将详细描述本发明的一个或多个实施例的数据存储装置。本领域技术人员可以理解,这些装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图6为本发明实施例提供的一种数字身份认证装置的结构示意图,该装置位于一终端设备,如图6所示,该装置包括:第一获取模块11、第二获取模块12、生成模块13。
第一获取模块11,用于获取证书颁发机构下发的系统证书和终端用户证书,所述系统证书为证书颁发机构的证书,其中,所述系统证书的类型为显式证书,所述终端用户证书的类型包括隐式证书或无证书;
第二获取模块12,用于基于终端用户私钥,获取所述终端用户证书相对应的中间公钥;
生成模块13,用于根据所述中间公钥和系统公钥,生成目标公钥,所述系统公钥为所述系统证书对应的公钥,所述目标公钥用于认证终端用户的数字身份。
可选地,所述生成模块13具体可以用于:若所述终端用户证书为隐式证书,则利用杂凑算法对所述终端用户证书进行处理,得到中间公钥系数;利用杂凑算法对所述中间公钥和系统公钥进行处理,得到系统公钥系数;根据所述中间公钥、所述系统公钥、所述中间公钥系数以及所述系统公钥系数,生成目标公钥。
可选地,所述生成模块13具体还可以用于:若所述终端用户证书为无证书,则利用杂凑算法对所述终端用户的身份标识以及中间公钥进行处理,得到中间公钥系数;利用杂凑算法对所述中间公钥和系统公钥进行处理,得到系统公钥系数;根据所述中间公钥、所述系统公钥、所述中间公钥系数以及所述系统公钥系数,生成目标公钥。
可选地,所述生成模块13具体还可以用于:获取中间公钥与中间公钥系数的第一乘积值、以及系统公钥与系统公钥系数的第二乘积值;将所述第一乘积值与第二乘积值之和确定为目标公钥。
可选地,所述生成模块13之后还可以包括第三获取模块,具体可以用于:基于终端用户私钥,获取所述终端用户证书相对应的私钥因子,所述私钥因子是证书颁发机构基于系统私钥和临时私钥生成的;根据所述私钥因子、所述终端用户私钥,生成目标私钥。
可选地,所述第三获取模块具体还可以用于:获取私钥因子、以及终端用户私钥与中间公钥系数的乘积值;获取所述私钥因子与乘积值之和;对所述私钥因子与乘积值之和做模的运算,得到目标私钥。
可选地,所述装置还可以包括确定模块,具体可以用于:获取终端用户的目标私钥、待发送消息、以及椭圆曲线参数;基于所述终端用户的目标私钥和椭圆曲线参数对待发送消息进行签名,得到签名值,所述签名值用于进行数字身份认证。
图6所示装置可以执行前述实施例中终端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图6所示数字身份认证装置的结构可实现为一电子设备,如图7所示,该电子设备可以包括:第一处理器21、第一存储器22、第一通信接口23。其中,第一存储器22上存储有可执行代码,当所述可执行代码被第一处理器21执行时,使第一处理器21至少可以实现如前述实施例中终端设备执行的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的数字身份认证方法。
图8为本发明实施例提供的一种数字身份认证装置的结构示意图,该装置位于证书颁发机构,如图8所示,该装置包括:接收模块31、产生模块32、第一生成模块33、第二生成模块34。
接收模块31,用于接收终端用户发送的证书请求,所述证书请求中包括证书信息、所述终端用户的身份标识、终端用户公钥;
产生模块32,用于基于所述证书请求,由随机数发生器产生临时公钥和临时私钥;
第一生成模块33,用于根据所述临时公钥和所述终端用户公钥,生成中间公钥;
第二生成模块34,用于基于所述中间公钥和证书信息,生成与身份标识相对应的终端用户证书。
可选地,所述第一生成模块33具体可以用于:基于所述终端用户的身份标识,生成临时公钥系数;根据所述临时公钥、所述终端用户公钥以及所述临时公钥系数,生成中间公钥。
可选地,所述第一生成模块33具体还可以用于:选取椭圆曲线;确定与所述椭圆曲线相对应的椭圆曲线参数;利用哈希函数对所述终端用户的身份标识和所述椭圆曲线参数进行处理,得到临时公钥系数。
可选地,所述第一生成模块33具体还可以用于:获取终端用户公钥、临时公钥与临时公钥系数的乘积值;将所述终端用户公钥与乘积值之和确定为中间公钥。
图8所示装置可以执行前述实施例中证书颁发机构执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图8所示设备控制装置的结构可实现为一被控设备,如图9所示,该设备可以包括:处理器41、存储器42、通信接口43。其中,存储器42上存储有可执行代码,当所述可执行代码被处理器41执行时,使处理器41至少可以实现如前述实施例中证书颁发机构执行的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的数字身份认证方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (13)

1.一种数字身份认证方法,其特征在于,应用于终端设备,包括:
获取证书颁发机构下发的系统证书和终端用户证书,所述系统证书为证书颁发机构的证书,其中,所述系统证书的类型为显式证书,所述显式证书包括所述证书颁发机构对证书属性的签名,所述终端用户证书的类型包括隐式证书或无证书;
基于终端用户私钥,获取所述终端用户证书相对应的中间公钥;
若所述终端用户证书为隐式证书,则利用杂凑算法对所述终端用户证书进行处理,得到中间公钥系数;
若所述终端用户证书为无证书,则利用杂凑算法对所述终端用户的身份标识以及中间公钥进行处理,得到中间公钥系数;
利用杂凑算法对所述中间公钥和系统公钥进行处理,得到系统公钥系数;
根据所述中间公钥、所述系统公钥、所述中间公钥系数以及所述系统公钥系数,生成目标公钥,并将所述目标公钥与所述终端用户证书进行绑定,所述系统公钥为所述系统证书对应的公钥,所述目标公钥用于认证终端用户的数字身份。
2.根据权利要求1所述的方法,其特征在于,所述根据所述中间公钥、所述系统公钥、所述中间公钥系数以及所述系统公钥系数,生成目标公钥,包括:
获取中间公钥与中间公钥系数的第一乘积值、以及系统公钥与系统公钥系数的第二乘积值;
将所述第一乘积值与第二乘积值之和确定为目标公钥。
3.根据权利要求1所述的方法,其特征在于,所述生成目标公钥之后,还包括:
基于终端用户私钥,获取所述终端用户证书相对应的私钥因子,所述私钥因子是证书颁发机构基于系统私钥和临时私钥生成的;
根据所述私钥因子、所述终端用户私钥,生成目标私钥。
4.根据权利要求3所述的方法,其特征在于,所述根据所述私钥因子、所述终端用户私钥,生成目标私钥,包括:
获取私钥因子、以及终端用户私钥与中间公钥系数的乘积值;
获取所述私钥因子与乘积值之和;
对所述私钥因子与乘积值之和做模的运算,得到目标私钥。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取终端用户的目标私钥、待发送消息、以及椭圆曲线参数;
基于所述终端用户的目标私钥和椭圆曲线参数对待发送消息进行签名,得到签名值,所述签名值用于进行数字身份认证。
6.一种数字身份认证方法,其特征在于,应用于证书颁发机构,包括:
接收终端用户发送的证书请求,所述证书请求中包括证书信息、所述终端用户的身份标识、终端用户公钥;
基于所述证书请求,由随机数发生器产生临时公钥和临时私钥;
基于所述终端用户的身份标识,生成临时公钥系数;
根据所述临时公钥、所述终端用户公钥以及所述临时公钥系数,生成中间公钥;
基于所述中间公钥和证书信息,生成与身份标识相对应的终端用户证书。
7.根据权利要求6所述的方法,其特征在于,所述基于所述终端用户的身份标识,生成临时公钥系数,包括:
选取椭圆曲线;
确定与所述椭圆曲线相对应的椭圆曲线参数;
利用哈希函数对所述终端用户的身份标识和所述椭圆曲线参数进行处理,得到临时公钥系数。
8.根据权利要求7所述的方法,其特征在于,根据所述临时公钥、所述终端用户公钥和临时公钥系数,生成中间公钥,包括:
获取终端用户公钥、临时公钥与临时公钥系数的乘积值;
将所述终端用户公钥与乘积值之和确定为中间公钥。
9.一种数字身份认证装置,其特征在于,位于终端设备,包括:
第一获取模块,用于获取证书颁发机构下发的系统证书和终端用户证书,所述系统证书为证书颁发机构的证书,其中,所述系统证书的类型为显式证书,所述显式证书包括所述证书颁发机构对证书属性的签名,所述终端用户证书的类型包括隐式证书或无证书;
第二获取模块,用于基于终端用户私钥,获取所述终端用户证书相对应的中间公钥;
生成模块,用于若所述终端用户证书为隐式证书,则利用杂凑算法对所述终端用户证书进行处理,得到中间公钥系数;若所述终端用户证书为无证书,则利用杂凑算法对所述终端用户的身份标识以及中间公钥进行处理,得到中间公钥系数;利用杂凑算法对所述中间公钥和系统公钥进行处理,得到系统公钥系数;根据所述中间公钥、所述系统公钥、所述中间公钥系数以及所述系统公钥系数,生成目标公钥,并将所述目标公钥与所述终端用户证书进行绑定,所述系统公钥为所述系统证书对应的公钥,所述目标公钥用于认证终端用户的数字身份。
10.一种数字身份认证装置,其特征在于,位于证书颁发机构,包括:
接收模块,用于接收终端用户发送的证书请求,所述证书请求中包括证书信息、所述终端用户的身份标识、终端用户公钥;
产生模块,用于基于所述证书请求,由随机数发生器产生临时公钥和临时私钥;
第一生成模块,用于基于所述终端用户的身份标识,生成临时公钥系数;根据所述临时公钥、所述终端用户公钥以及所述临时公钥系数,生成中间公钥;
第二生成模块,用于基于所述中间公钥和证书信息,生成与身份标识相对应的终端用户证书。
11.一种终端设备,其特征在于,包括:存储器、处理器、通信接口;其中,所述存储
器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利
要求1至5中任一项所述数字身份认证方法。
12.一种电子设备,其特征在于,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求6至8中任一项所述数字身份认证方法。
13.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被处理器执行时,使所述处理器执行如权利要求1至8中任一项所述数字身份认证方法。
CN202210509130.2A 2022-05-11 2022-05-11 数字身份认证方法、装置、设备和存储介质 Active CN114726546B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210509130.2A CN114726546B (zh) 2022-05-11 2022-05-11 数字身份认证方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210509130.2A CN114726546B (zh) 2022-05-11 2022-05-11 数字身份认证方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN114726546A CN114726546A (zh) 2022-07-08
CN114726546B true CN114726546B (zh) 2022-09-16

Family

ID=82231736

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210509130.2A Active CN114726546B (zh) 2022-05-11 2022-05-11 数字身份认证方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN114726546B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115529127B (zh) * 2022-09-23 2023-10-03 中科海川(北京)科技有限公司 基于sd-wan场景的设备认证方法、装置、介质、设备
CN115514484A (zh) * 2022-11-22 2022-12-23 国开启科量子技术(北京)有限公司 数字证书请求在线发送方法、数字证书在线颁发方法
CN117118759B (zh) * 2023-10-24 2024-01-30 四川省数字证书认证管理中心有限公司 用户控制服务器端密钥可靠使用的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110380862A (zh) * 2019-06-25 2019-10-25 济南晟安信息技术有限公司 签名验证方法、装置、计算机设备和存储介质
CN112367175A (zh) * 2020-11-12 2021-02-12 西安电子科技大学 基于sm2数字签名的隐式证书密钥生成方法
CN114302367A (zh) * 2021-12-17 2022-04-08 国汽(北京)智能网联汽车研究院有限公司 证书申请方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110380862A (zh) * 2019-06-25 2019-10-25 济南晟安信息技术有限公司 签名验证方法、装置、计算机设备和存储介质
CN112367175A (zh) * 2020-11-12 2021-02-12 西安电子科技大学 基于sm2数字签名的隐式证书密钥生成方法
CN114302367A (zh) * 2021-12-17 2022-04-08 国汽(北京)智能网联汽车研究院有限公司 证书申请方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN114726546A (zh) 2022-07-08

Similar Documents

Publication Publication Date Title
CN111740828B (zh) 一种密钥生成方法以及装置、设备、加解密方法
CN109672539B (zh) Sm2算法协同签名及解密方法、装置及系统
CN109559122B (zh) 区块链数据传输方法及区块链数据传输系统
CN111314089B (zh) 一种基于sm2的两方协同签名方法及解密方法
CN109274503B (zh) 分布式协同签名方法及分布式协同签名装置、软盾系统
WO2021042685A1 (zh) 一种区块链的交易方法、装置及系统
CN114726546B (zh) 数字身份认证方法、装置、设备和存储介质
US8130961B2 (en) Method and system for client-server mutual authentication using event-based OTP
CN106789042B (zh) Ibc域内的用户访问pki域内的资源的认证密钥协商方法
CN107425971B (zh) 无证书的数据加/解密方法和装置、终端
CN110113150B (zh) 基于无证书环境的可否认认证的加密方法和系统
AU2003202511A1 (en) Methods for authenticating potential members invited to join a group
CN110971411B (zh) 一种基于sotp技术对私钥乘加密的sm2同态签名方法
CN108494559B (zh) 一种基于半可信第三方的电子合同签订方法
CN112104453A (zh) 一种基于数字证书的抗量子计算数字签名系统及签名方法
CN106713349B (zh) 一种能抵抗选择密文攻击的群组间代理重加密方法
CN103414559A (zh) 一种云计算环境下的基于类ibe系统的身份认证方法
CN115208586B (zh) 一种基于秘密分享的数字签名方法及系统
CN113765662A (zh) 一种基于sm2算法的签名及解密方法和系统
CN110519226B (zh) 基于非对称密钥池和隐式证书的量子通信服务端保密通信方法和系统
CN111756537B (zh) 基于sm2标准的两方协同解密方法、系统及存储介质
CN116318739B (zh) 一种电子数据交换方法及系统
CN116346336B (zh) 一种基于多层密钥生成中心的密钥分发方法及相关系统
CN116614811A (zh) 一种车联网的分布式信息认证方法及系统
CN114189338B (zh) 基于同态加密技术的sm9密钥安全分发和管理系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant