CN115085939B - 抗量子签名方法、签名证书、验签方法及电子设备 - Google Patents
抗量子签名方法、签名证书、验签方法及电子设备 Download PDFInfo
- Publication number
- CN115085939B CN115085939B CN202210785763.6A CN202210785763A CN115085939B CN 115085939 B CN115085939 B CN 115085939B CN 202210785763 A CN202210785763 A CN 202210785763A CN 115085939 B CN115085939 B CN 115085939B
- Authority
- CN
- China
- Prior art keywords
- signature
- target
- preset
- tree
- hash
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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 using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种抗量子签名方法、签名证书、验签方法及电子设备包括:基于预设哈希算法,对待签名消息进行编码处理,得到目标编码数据;根据签名次数,从预设签名树中确定所述目标编码数据中各目标编码值相应的哈希公钥作为目标签名公钥;生成所述目标编码数据对应的包括各所述目标签名公钥的目标签名集合;根据所述目标签名公钥在所述预设签名树中的位置,确定目标认证路径,用于验证所述目标签名集合。上述方式在兼顾抗量子性的同时,有助于提高签名和相应验证过程的效率,同时还解决了因根据现有的密码学算法进行签名所导致的签名长度过长的问题,有助于减小所生成数字证书所包含的数据量,利于存储。
Description
技术领域
本发明涉及数据加密及验证技术领域,尤其涉及一种抗量子签名方法、签名证书、验签方法及电子设备。
背景技术
公钥密码基础设施(Public Key Infrastructure,PKI)发展至今,基于PKI的数字证书标识网络世界中的人、设备、组织机构等实体身份,已经应用到社会的各个领域。但随着计算机技术的快速发展和大规模量子计算机研制进程的加快,经典密码体制及相关应用***将不再安全,因此,开发具备抗量子能力的签名算法具有重要意义。
然而,现有的抗量子签名算法一般签名效率较低,且存在签名长度过长的问题。
发明内容
本发明提供了一种抗量子签名方法、签名证书、验签方法及电子设备,以在兼顾抗量子性的同时,提高签名的效率,并降低签名的长度。
第一方面,本发明提供了一种抗量子签名方法,该方法包括:
基于预设哈希算法,对待签名消息进行编码处理,得到目标编码数据;
根据签名次数,从预设签名树中确定所述目标编码数据中各目标编码值相应的哈希公钥作为目标签名公钥;
生成所述目标编码数据对应的包括各所述目标签名公钥的目标签名集合;
根据所述目标签名公钥在所述预设签名树中的位置,确定目标认证路径,用于验证所述目标签名集合;
其中,所述预设签名树基于以下方式构建:将相同预设私钥集合中各预设私钥对应的哈希公钥两两哈希,构建默克尔叶子树;将相同预设私钥簇中不同预设私钥集合对应默克尔叶子树的根节点两两哈希,得到默克尔子树;或者,将相同预设私钥簇中不同预设私钥集合对应默克尔叶子树的根节点整体哈希,得到默克尔子树;将不同预设私钥簇对应默克尔子树的根节点两两哈希,得到默克尔根树;将包括各所述默克尔叶子树、各所述默克尔子树和所述默克尔根树的默克尔树作为所述预设签名树。
第二方面,本发明提供了一种抗量子签名证书,该签名证书包括对待签名消息进行签名生成的目标签名集合和所述目标签名集合的目标认证路径,其中,所述目标签名集合和所述目标认证路径,基于如第一方面实施例所提供的任意一种抗量子签名方法生成。
第三方面,本发明提供了一种抗量子验签方法,该方法包括:
获取待验签消息和所述待验签消息对应的目标签名集合和目标认证路径;
基于预设哈希算法,对所述待验签消息进行编码处理,得到参考编码数据;
根据签名次数,从预设签名树中确定所述参考编码数据中各参考编码值相应的哈希公钥作为参考签名公钥;
根据所述参考签名公钥和所述目标认证路径,对所述目标签名集合进行验证;
其中,所述预设签名树基于以下方式构建:将相同预设私钥集合中各预设私钥对应的哈希公钥两两哈希,构建默克尔叶子树;并将相同预设私钥簇中不同预设私钥集合对应默克尔叶子树的根节点两两哈希,得到默克尔子树;或者,将相同预设私钥簇中不同预设私钥集合对应默克尔叶子树的根节点整体哈希,得到默克尔子树;将不同预设私钥簇对应默克尔子树的根节点两两哈希,得到默克尔根树;将包括各所述默克尔叶子树、各所述默克尔子树和所述默克尔根树的默克尔树作为所述预设签名树。
第四方面,本公开实施例提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面实施例所提供的任意一种抗量子签名方法;和/或,实现如第三方面实施例提供的任意一种抗量子验签方法。
根据本发明的技术方案,能够在兼顾签名的抗量子性的同时,提高签名效率,并降低签名的长度。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本发明提供的一种默克尔叶子树的构建过程示意图;
图1B是本发明提供的一种默克尔子树的构建过程示意图;
图1C是本发明提供的另一种默克尔子树的构建过程示意图;
图1D是本发明提供的一种默克尔根树的构建过程示意图;
图1E是根据本发明实施例一提供的一种抗量子签名方法的流程图;
图2是根据本发明实施例二提供的一种抗量子签名方法的流程图;
图3A是根据本发明实施例三提供的一种抗量子签名证书的结构示意图;
图3B是根据本发明实施例三提供的一种X.509证书格式的抗量子数字证书格式图;
图3C是根据本发明实施例三提供的一种抗量子证书链结构图;
图4是根据本发明实施例四提供的一种抗量子验签方法的流程图;
图5是根据本发明实施例五提供的一种抗量子验签方法的流程图;
图6是根据本发明实施例六提供的一种抗量子签名装置的结构示意图;
图7是根据本发明实施例七提供的一种抗量子验签装置的结构示意图;
图8是根据本发明实施例八提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本发明的签名和验签过程中,均涉及默尔克数结构的预设签名树,为了便于理解,首先对默克尔树的构建过程进行详细说明。
预先构建多个预设私钥簇;其中,各预设私钥簇中包括多个不同的预设私钥集合;各预设私钥集合中包括多个预设私钥,通常预设私钥的个数为偶数。相应的,将相同预设私钥集合中各预设私钥对应的哈希公钥两两哈希,构建默克尔叶子树;将相同预设私钥簇中不同预设私钥集合对应默克尔叶子树的根节点两两哈希,得到默克尔子树;或者,将相同预设私钥簇中不同预设私钥集合对应默克尔叶子树的根节点整体哈希,得到默克尔子树;将不同预设私钥簇对应默克尔子树的根节点两两哈希,得到默克尔根树;将包括各所述默克尔叶子树、各所述默克尔子树和所述默克尔根树的默克尔树作为所述预设签名树。
示例性的,针对各预设私钥集合,可以采用以下方式,构建默克尔叶子树:基于预设哈希算法,对该预设私钥集合中的各预设私钥两两哈希,得到各预设签名私钥对应的哈希公钥,并对各哈希公钥两两哈希,构建默克尔树,并将得到的默克尔树作为该预设私钥集合的默克尔叶子树。其中,预设私钥可以是随机生成的随机数。预设哈希算法可以是预先设定的,用于构建预设签名树时所采用预设安全参数的哈希算法,本发明对采用的具体哈希算法不作任何限定,例如可以采用SM3哈希算法。其中,各预设私钥集合中预设私钥的数量与预设哈希算法单次签名长度相关联;预设私钥的大小与预设安全参数相关联。
在一个具体实现方式中,若预设哈希算法单次签名长度为4bit(比特),则预设私钥集合中预设私钥的数量为16个;若预设哈希算法的预设安全参数为256,则抗量子强度为128,相应的,各预设私钥长度为36Byte(字节)。
具体参见图1A所示的第j个预设私钥簇中第i个预设私钥集合SKj[i]={skj,16i+s,s=0,1,…,N}对应的默克尔叶子树的构建过程示意图。其中,i和j为自然数。需要说明的是,图示仅示例性给出了N=15的情况,不应理解为对N的具体数值的限定。
具体的,可以基于预设哈希算法,对预设私钥集合SKj[i]中的每一个预设私钥skj,16i+s进行计算,得到各预设私钥skj,16i+s对应的哈希公钥pkj,16i+s;基于预设哈希算法,顺序对哈希公钥pkj,16i+s进行两两哈希,构建默克尔树,并将构建结果作为预设私钥集合SKj[i]的默克尔叶子树;将该默克尔叶子树的根节点,作为后续验签的公钥pkj[i]。
示例性的,针对各预设私钥簇,可以采用以下方式,构建默克尔子树:基于预设哈希算法,对该预设私钥簇中各预设私钥集合的默克尔叶子树的根节点进行两两哈希,构建默克尔树,并将构建结果作为预设私钥簇的默克尔子树。其中,预设私钥簇中预设私钥集合的数量,与预设哈希算法的预设安全参数和单次签名长度相关联。
在一个具体实现方式中,若预设哈希算法的预设安全参数为256,单次签名长度为4bit,则各预设私钥簇中预设私钥集合的数量为64个。
具体参见图1B所示的第j个预设私钥簇SKj对应一种默克尔子树的构建过程示意图。其中,图示仅以预设私钥集合为64个为例进行说明,不应理解为对预设私钥簇中预设私钥集合的数量的具体限定。
具体的,可以基于预设哈希算法,对预设私钥簇SKj={SKj[i],i=0,1,…,63}各预设私钥集合SKj[i]对应默克尔叶子树的根节点pkj[i]进行两两哈希,构建默克尔树,并将构建结果作为预设私钥簇SKj的默克尔子树;将该默克尔子树的根节点,作为后续验签的公钥pkj。
由于默克尔子树作为预设签名树的中间层,为了减少预设签名树生成过程的运算量,简化预设签名树结构,进而减少预设签名树的存储空间,提高后续使用预设签名树时的查找效率,还可以将默克尔子树的生成过程进行简化。
示例性的,针对各预设私钥簇,还可以采用以下方式,构建默克尔子树:将该预设私钥簇中各预设私钥集合对应默克尔叶子树的根节点整体哈希,构建一个特殊的默克尔树,并将构建结果作为该预设私钥簇的默克尔子树。其中,各预设私钥集合对应默克尔叶子树的根节点整体哈希得到的哈希节点即为默克尔子树的根节点,各预设私钥集合对应默克尔叶子树的根节点即为默克尔子树的叶子节点。
具体参见图1C所示的第j个预设私钥簇SKj对应的另一种默克尔子树的构建过程示意图。其中,图示仅以预设私钥集合为64个为例进行说明,不应理解为对预设私钥簇中预设私钥集合的数量的具体限定。
具体的,可以基于预设哈希算法,对预设私钥簇SKj={SKj[i],i=0,1,…,63}各预设私钥集合SKj[i]对应默克尔叶子树的根节点pkj[i]进行整体哈希,得到哈希节点pkj;针对该预设私钥簇SKj,生成相应的以pkj为根节点,以pkj[i]为叶子节点的默克尔子树。
示例性的,可以采用以下方式,构建默克尔根树:基于预设哈希算法,对多个预设私钥簇对应默克尔子树的根节点进行两两哈希,构建默克尔树,并将构建结果作为默克尔根树。其中,预设私钥簇的数量通常为偶数,与最大签名次数相关,可以由技术人员根据需要或经验值进行设置或调整。
图1D以2n个预设私钥簇为例,对默克尔根树的构建过程进行示例性说明。具体的,根据2n个预设私钥簇,可以构建2n个默克尔子树,该2n个默尔克子树对应的根节点可以为pkj。其中,j=0,1,…,2n-1。其中,n为自然数。基于预设哈希算法,对中的各元素两两哈希,构建默克尔树,并将构建的默克尔树作为默克尔根树;将该默克尔根树的根节点作为后续验签的公钥pk。
将上述所构建的各预设私钥集合的默克尔叶子树、各预设私钥簇的默克尔子树以及默克尔根数,按照节点之间的连接关系,得到一个预设签名树,作为后续签名和验签的基础。该预设签名树的根节点即为默克尔根树的根节点。
为了便于理解,可以将预设签名树划分为包括默克尔叶子树的第一层级、包括默克尔子树的第二层级和包括默克尔根树的第三层级。
实施例一
图1E为本发明实施例一提供的一种抗量子签名方法的流程图,本实施例可适用于对待签名消息进行签名的情况,该方法可以由一种抗量子签名装置来执行,该抗量子签名装置可以采用软件和/或硬件的形式实现,该抗量子签名装置可配置于电子设备中。参考图1E所示,该方法具体包括如下步骤:
S110、基于预设哈希算法,对待签名消息进行编码处理,得到目标编码数据。
示例性的,可以通过预设哈希算法对该待签名消息进行哈希计算,得到目标编码数据。
其中,预设哈希算法与前述构建预设签名树时,所采用的预设哈希算法相同。待签名消息可以是需要进行签名的消息。
S120、根据签名次数,从预设签名树中确定所述目标编码数据中各目标编码值相应的哈希公钥作为目标签名公钥。
其中,目标编码值为目标编码数据中的数值,与预设签名树中的哈希公钥一一对应。目标签名公钥可以是与相应目标编码值唯一对应的哈希公钥,作为签名的基础。签名次数通常从1开始,每执行一次签名进行递增,可以通过将已完成的签名操作的次数加1得到。需要说明的是,由于签名次数为0时在预设签名树中对应数据为构建预设签名树的基础,因此,与签名次数“在预相关的默克尔叶子树中的预设私钥sk0,0对应哈希公钥pk0,0和相应根节点pk0[0]不可公开。
具体地,可以根据当前签名操作所对应的签名次数,确定预设签名树中本次签名相关的默克尔子树和各默克尔叶子树。相应的,可以基于预先建立的目标编码数据中各目标编码值与本次签名相关的默克尔叶子树中各哈希公钥之间的对应关系,在本次签名相关的默克尔叶子树中查找与相应目标编码值匹配的哈希公钥,并将匹配到的哈希公钥作为目标签名公钥。
示例性地,根据签名次数,从预设签名树中确定所述目标编码数据中各目标编码值相应的目标签名公钥,可以包括:将所述目标编码数据中的各目标编码值转化成预设进制的数值;其中,所述预设进制的基数与所述预设私钥集合中预设私钥的数量相等;将所述签名次数对应预设私钥簇作为目标私钥簇;在所述预设签名树中所述目标私钥簇对应的默克尔叶子树中,根据目标编码值的数值转化结果,确定相应的目标签名公钥。
其中,预设进制可以是预先设定的对待签名消息进行编码处理所对应的进位计数制,例如可以是十六进制或八进制等。该预设进制的基数与预设私钥集合中预设私钥的数量相等,也即与预设哈希算法中的预设安全参数和单次签名长度相关联,例如,预设哈希算法中的预设安全参数为256,待签名消息的大小为4bit时,则对应的预设进制的类型为十六进制。预设进制的基数可以是该预设进制可使用的数字符号的数目,例如,十六进制的基数可以为16。目标私钥簇可以是本次签名操作所对应的预设私钥簇。
具体地,可以根据预设私钥集合中所包含的预设私钥的数量,确定与该预设私钥的数量相等的预设进制的基数;根据该预设进制的基数,将所获取的目标编码数据中的各目标编码值转化成相应预设进制的数值;可以根据当前签名操作所对应的签名次数,确定与该签名次数相对应的预设私钥簇,并将该签名次数所对应的预设私钥簇作为目标私钥簇;确定目标私钥簇中不同预设私钥集合对应的默克尔叶子树;根据目标编码数据中各目标编码值的顺序,确定各目标编码值对应的预设私钥集合;针对各目标编码值,根据该目标编码值的预设进制转化结果,在相应预设私钥集合的默克尔叶子树中,查找相匹配的哈希公钥,作为目标签名公钥。
可以理解的是,将目标编码数据中的各目标编码值转化成预设进制的数值,其中,所述预设进制的基数与所述预设私钥集合中预设私钥的数量相等,使得针对该待签名消息的签名操作可以与相应预设签名树的结构相匹配,从而基于该预设签名树完成对该待签名消息的签名操作,进而有助于提高该签名操作的效率。此外,将所述签名次数对应预设私钥簇作为目标私钥簇,并在所述预设签名树中所述目标私钥簇对应默克尔叶子树中,根据目标编码值的数值转化结果,能够在预先构建的预设签名树中确定相应的目标签名公钥,从而无需对待签名消息再进行复杂的计算,进而有助于提高对待签名消息进行签名的效率。
S130、生成所述目标编码数据对应的包括各所述目标签名公钥的目标签名集合。
具体地,可以将所确定的各目标签名公钥顺序组合,得到目标签名集合。
S140、根据所述目标签名公钥在所述预设签名树中的位置,确定目标认证路径,用于验证所述目标签名集合。
其中,目标认证路径可以是预设签名树中,可对目标签名公钥进行认证的节点路径。例如,可以是预设签名树中任一节点的位置,与目标签名公钥在该预设签名树中的位置之间,所经过的节点路径等。
具体地,可以预先建立各目标签名公钥在预设签名树中的位置与相应目标认证路径之间的映射关系。基于该映射关系,可以根据所确定的各目标签名公钥在预设签名树中的位置,匹配对应的目标认证路径。相应的,所匹配到的目标认证路径,可用于对目标签名集合进行验证。
本发明实施例通过根据签名次数,可从前述构建的预设签名树中,确定出基于预设哈希算法对待签名消息进行编码处理所得到的目标编码数据中的各目标编码值所对应的哈希公钥作为相应目标签名公钥,并生成包括各目标签名公钥的目标签名集合,且还可根据相应目标签名公钥在预设签名树中的位置确定用于验证目标签名集合得目标认证路径。上述方式使得在执行相应签名和认证操作的过程中,能够基于构建好的预设签名树对目标签名集合进行生成,并根据所确定出的目标认证路径对该目标签名集合进行验证,从而无需再基于现有的密码算法进行复杂的计算和校验以实现对待签名消息的签名和对应验证操作,进而在兼顾抗量子性的同时,有助于提高签名和相应验证过程的效率。同时,还解决了因根据现有的密码学算法进行签名所导致的签名长度过长的问题,有助于减小后续生成的数字证书中所包含的数据量,利于该数据证书的存储。
实施例二
图2为本发明实施例二提供的一种抗量子签名方法的流程图,本实施例以上述各实施例为基础进行了进一步地优化。
进一步地,将“根据所述目标签名公钥在所述预设签名树中的位置,确定目标认证路径”细化为“基于所述目标签名公钥在所述预设签名树中的位置,确定在所述预设签名树中,生成所述预设签名树的根节点所需的哈希节点的集合;根据所述哈希节点的集合,确定所述目标认证路径”,以完善目标认证路径的确定机制。需要说明的是,在本发明实施例中未详述部分,可参见其他实施例的相关表述。
参考图2所示,该方法具体包括如下参考步骤:
S210、基于预设哈希算法,对待签名消息进行编码处理,得到目标编码数据。
S220、根据签名次数,从预设签名树中确定所述目标编码数据中各目标编码值相应的哈希公钥作为目标签名公钥。
S230、生成所述目标编码数据对应的包括各所述目标签名公钥的目标签名集合。
S240、基于所述目标签名公钥在所述预设签名树中的位置,确定在所述预设签名树中,生成所述预设签名树的根节点所需的哈希节点的集合。
S250、根据所述哈希节点的集合,确定所述目标认证路径,用于验证所述目标签名集合。
具体地,可以通过确定目标签名公钥在相应预设签名树中的位置,确定该位置到预设签名树的根节点所需经过的各哈希节点,并基于上述各哈希节点,构建相应的集合。
根据各节点之间的连接关系,将不同哈希节点的集合顺序组合,生成至少一条目标认证路径。需要说明的是,各目标认证路径均以目标签名公钥为起点,以默克尔根树的根节点为终点。
为了便于后续进行验证,可以按照哈希节点所属预设签名树的层级,生成不同的目标认证路径。
示例性地,所述目标认证路径可以包括默克尔叶子树所属层级对应的局部认证路径;相应的,所述基于所述目标签名公钥在所述预设签名树中的位置,确定在所述预设签名树中,生成所述预设签名树的根节点所需的哈希节点的集合,可以包括:基于所述目标签名公钥在所属默克尔叶子树中的位置,确定在该默克尔叶子树中,生成所述目标签名公钥所属默克尔叶子树的根节点所需的局部哈希节点的集合;相应的,根据所述哈希节点的集合,确定局部认证路径,可以包括:将所需的局部哈希节点的集合作为所述目标签名公钥对应的局部认证路径。
其中,局部哈希节点可以是默克尔叶子树中满足条件的哈希节点。所需局部哈希节点的集合,可以是生成目标签名公钥对应默克尔叶子树的根节点时,所需的较少(例如最少)的局部哈希节点,所构成的集合;相应的,所需满足的条件,即为生成目标签名公钥对应默克尔叶子树的根节点所需的较少(例如最少)的哈希节点。局部认证路径可以是由默克尔叶子树中各目标签名公钥的位置,到默克尔叶子树的根节点对应位置之间,所经过的各局部哈希节点所构成的节点路径。
具体地,可以通过确定目标签名公钥在默克尔叶子树中所对应的位置,确定该位置到相应默克尔叶子树的根节点所对应的位置,并将两位置之间所需经过的各哈希节点作为局部哈希节点;将各局部哈希节点按照经过顺序组合,构建相应集合,并将该集合作为相应目标签名公钥对应的局部认证路径。由此可见,局部认证路径的数量与目标签名公钥的数量相一致,也即与目标编码数据中目标编码值的数量相一致。
可以理解的是,通过基于所述目标签名公钥在所属默克尔叶子树中的位置,确定在该默克尔叶子树中,生成所述目标签名公钥所属默克尔叶子树的根节点所需的局部哈希节点的集合,并将该所需的局部哈希节点的集合作为所述目标签名公钥对应的局部认证路径。上述方式能够生成针对预设签名树中第一层级的局部认证数据,使得在执行相应认证操作时,能够从局部的维度先展开认证,若发现该局部维度中出现认证失败的情况,即可以判定相应签名出现了作假,从而无需再针对该局部维度外的其他维度进行认证以判断相应签名是否存在作假,进而有效提高了针对相应签名的认证效率。
示例性地,所述目标认证路径可以包括默克尔根树所属层级对应的全局认证路径;相应的,所述基于所述目标签名公钥在所述预设签名树中的位置,确定在所述预设签名树中,生成所述预设签名树的根节点所需的哈希节点的集合,可以包括:基于所述目标签名公钥所属默克尔子树的根节点在所述预设签名树中的位置,确定在所述预设签名树中,生成所述预设签名树的根节点所需的全局哈希节点的集合;相应的,根据所述哈希节点的集合,确定全局认证路径,可以包括:将所需的全局哈希节点的集合作为所述全局认证路径。
其中,全局哈希节点可以是默克尔根树中满足条件的哈希节点。所需的全部哈希节点的集合时,可以是生成预设签名树的根节点所需的较少(例如最少)的全局哈希节点,所构成的集合;相应的,所需满足的条件,即为生成预设签名树的根节点所需的较少(例如最少)的哈希节点。全局认证路径可以是由各目标签名公钥所属默克尔子树的根节点在预设签名树中的位置到该预设签名树的根节点对应位置之间,所经过的各全局哈希节点所构成的节点路径。
具体地,可以通过预先设定的目标签名公钥和默克尔子树的根节点之间的映射关系,确定各目标签名公钥所对应默克尔子树的根节点。相应的,可以通过确定各目标签名公钥所属默克尔子树的根节点在相应默克尔根树的位置,进一步确定由该位置到默克尔根树的根节点对应位置;并将两位置之间所需经过的各哈希节点作为全局哈希节点;将各全局哈希节点按照经过顺序组合,构建相应集合,并将该集合作为相应目标签名公钥对应的全局认证路径。由此可见,全局认证路径的数量,与目标签名公钥所属默克尔子树的根节点的数量相一致。
可以理解的是,通过基于所述目标签名公钥所属默克尔子树的根节点在所述预设签名树中的位置,确定在所述预设签名树中,生成所述预设签名树的根节点所需的全局哈希节点的集合,并将该所需的全局哈希节点的集合作为全局认证路径。上述方式能够生成针对预设签名树中第三层级的全局认证数据,使得在执行相应的认证操作时,可以在全局维度上展开针对相应签名的认证,从而能够实现对各种隐秘作假行为的识别,其中,该隐秘作假行为可以是能够获取到部分认证路径,但未获取到全部认证路径的情况。需要说明的是,在未知情况下,全部认证路径的获取难度较高,因此极大程度上提高了作假的难度,有助于提高相应签名的可靠性。
本发明实施例通过基于目标签名公钥在预设签名树中的位置,确定在该预设签名树中,生成该预设签名树的根节点所需的哈希节点的集合,并根据所述哈希节点的集合,确定所述目标认证路径。上述方式使得能够基于目标签名公钥在已经构建的预设签名树中的位置到该预设签名树的根节点对应位置之间,所经过的各哈希节点确定相应的目标认证路径,确定方式方便快捷,提高了目标认证路径的确定效率。此外,由于所确定的目标认证路径中涵盖了,由目标签名公钥在预设签名树中的位置到该预设签名树的根节点对应位置之间,所经过的各哈希节点,避免了因目标认证路径过于简单,而造成的相应签名被轻易破解的情况发生,有效提高了相应签名的安全性和可靠性。
实施例三
在上述各实施例的技术方案的基础上,本发明还提供了一种签名证书。参见图3A所示的一种签名证书,该签名证书中包括对待签名消息进行签名生成的目标签名集合,以及所述目标签名集合的目标认证路径。其中,目标签名集合和目标签名集合的目标认证路径生成的具体过程,可以参考本发明上述各实施例中的详细描述,在此不作赘述。
可选的,该签名证书可以是一种抗量子数字证书,可以按照预设数字证书格式生成。其中,预设数字证书格式可以由技术人员根据需要或经验值进行设置或调整,本发明实施例对此不作任何限定。
在一个具体实现方式中,可以采用X.509证书格式,生成抗量子数字证书。具体的,参见图3B所示的一种X.509证书格式的抗量子数字证书格式图,该抗量子数字证书中可以包括版本号、序列号、签名算法、颁发者、有效日期、主体、主体公钥信息、扩展项以及签名等。
其中,主体可以理解为数字证书的持有方;颁发者,可以理解为数字证书的签名方;签名算法可以是基于sm3的哈希算法。有效日期包括起始日期和终止日期。签名可以包括签名值和认证路径。该签名值可以与本发明上述各实施例中的目标签名集合等同,该认证路径可以与本发明上述各实施例中的目标认证路径相同。
可选的,在涉及多方签名的情况下,还可以基于不同方的签名结果,生成抗量子数字证数链。
示例性的,在认证中心(Certificate Authority,CA)进行签名证书颁发时,可以生成一种抗量子证书链。该认证中心中可以包括不同层级的证书颁发者,例如可以包括根CA和一级CA等。参见图3C所示的抗量子证书链结构图,该抗量子证书链中包括根CA抗量子数字证书、一级CA抗量子数字证书以及用户抗量子数字证书。
其中,不同类型数字证书的颁发者和主体存在差异。根CA抗量子数字证书的颁发者和主体均为根CA;一级CA抗量子数字证书的颁发者为根CA,主体为一级CA;用户抗量子数字证书的颁发者为一级CA,主体为用户。
具体地,根CA采用基于sm3的哈希算法进行自签名,完成根CA数字证书的签发;根CA采用基于sm3的哈希算法对一级CA的证书进行签名,完成对一级CA证书的签发;一级CA采用基于sm3的哈希算法,对用户的证书进行签名,完成对用户抗量子证书的签发。相应的,相应的,在进行验签时,可以基于相应用户抗量子数字证书,针对相应一级CA抗量子数字证书执行验签操作,并基于该一级CA抗量子数字证书,针对相应根CA抗量子数字证书执行验签操作。
实施例四
图4为本发明实施例四提供的一种抗量子验签方法的流程图,本实施例可适用于对待签名消息对应的签名进行验签的情况,该方法可以由一种抗量子验签装置来执行,该抗量子验签装置可以采用软件和/或硬件的形式实现,该抗量子验签装置可配置于电子设备中。参考图4所示,该方法具体包括如下步骤:
S410、获取待验签消息和所述待验签消息对应的目标签名集合和目标认证路径。
其中,待验签消息可以是需要验证签名的消息,与前述待签名消息相对应。该签名后的待签名消息对应包括待验签消息、目标签名集合和目标认证路径等新。
S420、基于预设哈希算法,对所述待验签消息进行编码处理,得到参考编码数据。
其中,预设哈希算法可以与构建预设签名树时,所采用的哈希算法类型相同。
具体地,在确定相应待验签消息后,可以通过预设哈希算法对该待验签消息进行计算,并将所确定的计算结果作为参考编码数据。
S430、根据签名次数,从预设签名树中确定所述参考编码数据中各参考编码值相应的哈希公钥作为参考签名公钥。
其中,签名次数可以是对待验签消息所对应的待签名消息执行签名操作时的签名次数。参考编码值可以是参考编码数据中包括的各编码值,该参考编码数值与预设签名树中的哈希公钥一一对应。参考签名公钥可以是与相应参考编码值唯一对应的哈希公钥。
具体地,可以根据对相应待签名消息执行的签名操作所属的签名次数,确定该签名次数所对应的默克尔子树和默克尔子树所关联的默克尔叶子树。相应的,可以基于预先建立的参考编码数据中各参考编码值与所关联的默克尔叶子树中各哈希公钥之间的对应关系,在该默克尔叶子树中,查找与相应参考编码值匹配的哈希公钥,并将匹配到的哈希公钥作为参考签名公钥。
示例性地,根据签名次数,从预设签名树中确定所述参考编码数据中各参考编码值相应的参考签名公钥,可以包括:将所述参考编码数据中各参考编码值转化成预设进制的数值;其中,所述预设进制的基数与所述预设私钥集合中预设私钥的数量相等;将所述签名次数对应预设私钥簇作为参考私钥簇;在所述预设签名树中所述参考私钥簇对应的默克尔子树中,根据所述参考编码值的数值转化结果,确定相应的参考签名公钥。
其中,预设进制可以是预先设定的对待验签消息进行编码处理所对应的进位计数制,例如可以是十六进制或八进制等。该预设进制可以与对相应待签名消息进行签名时所采取的预设进制相同。该预设进制可以与对待签名消息进行签名时所对应的预设进制相同。参考私钥簇可以是当前次验签操作所对应的预设私钥簇。参考编码值的数值转化结果可以是基于预设进制对参考编码值进行转化所得到的结果。
具体地,可以根据预设私钥集合中所包含的预设私钥的数量,确定与该预设私钥的数量相等的预设进制的基数,并根据该预设进制的基数,将所获取的参考编码数据中的各参考编码值转化成相应预设进制的数值。可以根据当前验签操作所对应的签名次数,确定与该签名次数相对应的预设私钥簇,并将该签名次数所对应的预设私钥簇作为参考私钥簇;确定参考私钥簇中不同预设私钥集合对应的默克尔叶子树了;根据参考编码数据中各参考编码值的顺序,确定各参考编码值对应的预设私钥集合;针对各参考编码值,根据该参考编码值的预设进制转化结果,在相应预设私钥集合的默克尔叶子树中,查找相匹配的哈希公钥,作为参考签名公钥。
可以理解的是,将参考编码数据中的各参考编码值转化成预设进制的数值,其中,所述预设进制的基数与所述预设私钥集合中预设私钥的数量相等,使得针对该待验签消息的验签操作可以与相应预设签名树的结构相匹配,从而基于该预设签名树完成对该待验签消息的验签操作,进而有助于提高该验签操作的效率。此外,将所述签名次数对应预设私钥簇作为参考私钥簇,并在所述预设签名树中所述参考私钥簇对应的默克尔叶子树中,根据目标编码值的数值转化结果,能够在预先构建的预设签名树中确定相应的参考签名公钥,从而在对待验签消息进行验证时,无需再进行复杂的计算,进而有助于提高对待验签消息进行验证的效率。
S440、根据所述参考签名公钥和所述目标认证路径,对所述目标签名集合进行验证。
具体地,可以根据预先建立的各目标签名公钥在预设签名树中的位置与相应目标认证路径之间的映射关系,判断参考签名公钥与相应目标认证路径之间是否匹配于该映射关系。相应的,若匹配,表明该各参考签名公钥和相应目标签名公钥相同,目标签名集合通过验证;若不匹配,表明该各参考签名公钥和相应目标签名公钥之间存在不同,目标签名集合无法通过验证。
本发明实施例通过基于预设哈希算法,对所获取到的待验签消息进行编码处理,得到参考编码数据,并可根据签名次数,从前述预设签名树中查找确定所述参考编码数据中各参考编码值相应的哈希公钥作为参考签名公钥,且根据所述参考签名公钥和所述目标认证路径,对所述目标签名集合进行验证。上述方式使得在对待验签消息进行验签的过程中,可通过预先构建的预设签名树对相应参考签名公钥进行确定,从而无需再进行复杂的计算和校验以实现对相应待验签消息的认证,进而有助于提高相应验签操作的效率。
实施例五
图5为本发明实施例五提供的一种抗量子验签方法的流程图,本实施例以上述实施例为基础进行了进一步地优化。
进一步地,将“根据所述参考签名公钥和所述目标认证路径,对所述目标签名集合进行验证”细化为“根据所述参考签名公钥和所述目标认证路径中各哈希节点构建参考默克尔树;根据所述参考默克尔树的根节点与所述目标认证路径中根节点的一致性,对所述目标签名集合进行验证”,以完善对目标签名集合的验证机制。需要说明的是,在本发明实施例中未详述部分,可参见其他实施例的相关表述。
参考图5所示,该方法具体包括如下参考步骤:
S510、获取待验签消息和所述待验签消息对应的目标签名集合和目标认证路径。
S520、基于预设哈希算法,对所述待验签消息进行编码处理,得到参考编码数据。
S530、根据签名次数,从预设签名树中确定所述参考编码数据中各参考编码值相应的哈希公钥作为参考签名公钥。
S540、根据所述参考签名公钥和所述目标认证路径中各哈希节点构建参考默克尔树。
S550、根据所述参考默克尔树的根节点与所述目标认证路径中根节点的一致性,对所述目标签名集合进行验证。
其中,参考默克尔树可以是由参考签名公钥和目标认证路径中各哈希节点构成的默克尔树。
示例性的,可以将参考签名公钥替代目标认证路径中的目标签名公钥,构建默克尔树,并将构建结果作为参考默克尔树。
具体的,将参考签名公钥替代目标认证路径中的目标签名公钥,并基于预设哈希算法,确定参考签名公钥的哈希值;将该哈希值与目标认证路径中与替代后的目标签名公钥相邻的哈希节点,进行哈希,生成新的哈希值;将新的哈希值与目标认证路径中下一哈希节点再两两哈希,以此类推,直至目标认证路径中仅剩余一个哈希节点(也即预设签名树的根节点),构建默克尔树,得到相应的参考默克尔树。
若目标认证路径为以目标签名公钥为起点,以默克尔根树的根节点为终点的统一路径,则所生成的参考默克尔树可以是包括等效预设签名树中的第一层级的部分哈希节点、第二层级的部分哈希节点和第三层级的部分哈希节点的树结构。
若所生成的参考默克尔树是以参考签名公钥为起点,以相同根节点为终点的统一路径,且相同根节点为默克尔根树的根节点,则表明对目标签名集合验证通过。
示例性地,所述目标认证路径可以包括默克尔叶子树所属第一层级的局部认证路径;其中,所述局部认证路径为基于所述目标签名集合中各目标签名公钥在所属默克尔叶子树中的位置,生成的对应默克尔叶子树的根节点所需的局部哈希节点的集合。。其中,局部认证路径和的具体生成过程,可参见前述实施例的相关表述,在此不再赘述。
示例性地,根据所述参考签名公钥和所述目标认证路径中各哈希节点构建参考默克尔树,可以包括:根据所述参考签名公钥和所述局部认证路径中各哈希节点,构建局部参考默克尔树;相应的,所述根据所述参考默克尔树的根节点与所述目标认证路径中根节点的一致性,对所述目标签名集合进行验证,可以包括:若所述局部参考默克尔树的根节点与所述局部认证路径中默克尔叶子树的根节点一致,则对所述目标签名集合局部认证通过。
针对目标认证路径中的局部认证路径,可以采用参考签名公钥替代相应局部认证路径中的目标签名公钥,并基于预设哈希算法,确定参考签名公钥的哈希值;将该哈希值与相应局部认证路径中与替代后的目标签名公钥相邻的哈希节点,进行哈希,生成新的哈希值;将新的哈希值与相应局部认证路径中下一哈希节点再两两哈希,以此类推,直至局部认证路径中仅剩余一个哈希节点(也即局部认证路径对应默克尔叶子树的根节点),构建默克尔树,得到相应的局部参考默克尔树。若所构建的局部参考默尔克树的根节点与剩余的哈希节点相同,则确定该局部认证路径认证通过。
若目标签名集合中各目标签名公钥对应局部认证路径均验证通过,则表明在预设签名树中第一层级的局部认证过程中,均未出现作假情况,但是不能排除部分私钥泄露情况,因此通常局部认证路径用于进行作假识别,在局部认证路径均通过的情况下,结合默克尔根树所属第三层级的全局认证路径,进行兜底认证。
示例性地,所述目标认证路径可以包括默克尔根树所属第三层级的全局认证路径;其中,所述全局认证路径为基于述目标签名集合中各目标签名公钥所属默克尔子树的根节点在所述预设签名树中的位置,生成的所述预设签名树的根节点所需的全局哈希节点的集合。其中,全局认证路径的具体生成过程,可参见前述实施例的相关表述,在此不再赘述。
示例性地,根据所述参考签名公钥和所述目标认证路径中各哈希节点构建参考默克尔树,可以包括:根据所述参考签名公钥在所述预设签名树中所属默克尔子树的根节点和所述全局认证路径中各哈希节点,构建全局参考默克尔树;相应的,所述根据所述参考默克尔树的根节点与所述目标认证路径中根节点的一致性,对所述目标签名集合进行验证,可以包括:若所述全局参考默克尔树的根节点与所述全局认证路径中预设签名树的根节点一致,则对所述目标签名集合全局认证通过。
针对目标认证路径中的全局认证路径,可以采用参考签名公钥在预设签名树中对应默克尔子树的根节点,替代全局认证路径中目标签名公钥在预设签名树中对应默克尔子树的根节点,并基于预设哈希算法确定该根节点的哈希值;将该哈希值与相应全局认证路径中替代后的根节点相邻的哈希节点,进行哈希,生成新的哈希值;将新的哈希值与相应全局认证路径中下一哈希节点再两两哈希,以此类推,直至全局认证路径中仅剩余一个哈希节点(也即全局认证路径对应默克尔根树的根节点),构建默克尔树,得到相应的参考默克尔树。若所构建的参考默尔克树的根节点与剩余的哈希节点相同,则确定该全局认证路径认证通过。
若目标签名集合中各目标签名公钥对应全局认证路径均验证通过,则表明在预设签名树中第三层级的认证过程中,均未出现作假情况,则验签通过。由于全局认证路径能够实现在预设签名树中默克尔根树所属第三层级的认证,在作假的情况下,仅在预设签名树中大量私钥泄露的情况下,才会出现全局认证路径均通过的情况,从而能够从全局维度进行验签,提高了验签过程的可靠性和全面性。
可以理解的是,通过生成相应的局部认证路径,使得在进行相应目标认证路径生成过程中,仅需确定目标签名公钥的位置到默克尔叶子树的根节点的位置之间的各哈希节点所构成的路径即可,从而避免了因需要确定相应默克尔子树和预设签名树中各哈希节点对签名速率所造成的影响,进而有效提高了签名操作的效率,同时有助于提高针对该签名的认证效率;通过生成相应的全局认证路径,使得在进行相应目标认证路径生成过程中,不仅涵盖了目标签名公钥与相应默克尔子树的根节点之间的对应关系,还需对该默克尔子树的根节点在预设签名树中的位置到该预设签名树的根节点所需经过的各全局哈希节点构成的集合进行确定,从而使得所生成的全局认证路径体现了由目标签名公钥到相应预设签名树的根节点之间的对应关系,进而提高了全局认证路径的全面性,有助于提高相应签名的安全性。
本发明实施例通过根据参考签名公钥和目标认证路径中各哈希节点构建参考默克尔树,并根据该参考默克尔树的根节点与所述目标认证路径中根节点的一致性,对所述目标签名集合进行验证。上述方式使得在对相应待验签消息进行验证时,能够通过目标认证路径中各哈希节点快速构建相应的参考默克尔树,并基于该参考默克尔树的根节点与目标认证路径中根节点的比较结果对相应目标签名集合进行验证,从而无需再基于现有的密码学算法针对相应签名进行复杂的计算和校验,进而有效提高了对待验签消息的验证效率。
实施例六
图6为本发明实施例六提供的一种抗量子签名装置的结构示意图,本实施例可适用于对待签名消息进行签名的情况,该抗量子签名装置可以采用软件和/或硬件的形式实现,该抗量子签名装置可配置于电子设备中。参考图6所示,该装置包括:
目标编码数据生成模块610,用于基于预设哈希算法,对待签名消息进行编码处理,得到目标编码数据。
目标签名公钥生成模块620,用于根据签名次数,从预设签名树中确定所述目标编码数据中各目标编码值相应的哈希公钥作为目标签名公钥。
目标签名集合生成模块630,用于生成所述目标编码数据对应的包括各所述目标签名公钥的目标签名集合。
目标认证路径生成模块640,用于根据所述目标签名公钥在所述预设签名树中的位置,确定目标认证路径,用于验证所述目标签名集合。
其中,所述预设签名树基于以下方式构建:将相同预设私钥集合中各预设私钥对应的哈希公钥两两哈希,构建默克尔叶子树;并将相同预设私钥簇中不同预设私钥集合对应默克尔叶子树的根节点两两哈希,得到默克尔子树;或者,将相同预设私钥簇中不同预设私钥集合对应默克尔叶子树的根节点整体哈希,得到默克尔子树;将不同预设私钥簇对应默克尔子树的根节点两两哈希,得到默克尔根树;将包括各所述默克尔叶子树、各所述默克尔子树和所述默克尔根树的默克尔树作为所述预设签名树。
本发明实施例通过基于预设哈希算法,对所获取到的待验签消息进行编码处理,得到参考编码数据,并可根据签名次数,从上述构建的预设签名树中查找确定所述参考编码数据中各参考编码值相应的哈希公钥作为参考签名公钥,且根据所述参考签名公钥和所述目标认证路径,对所述目标签名集合进行验证。上述方式使得在执行相应签名和认证操作的过程中,能够基于构建好的预设签名树对目标签名集合进行生成,并根据所确定出的目标认证路径对该目标签名集合进行验证,从而无需再基于现有的密码算法进行复杂的计算和校验以实现对待签名消息的签名和对应验证操作,进而在兼顾抗量子性的同时,有助于提高签名和相应验证过程的效率。同时,还解决了因根据现有的密码学算法进行签名所导致的签名长度过长的问题,有助于减小后续生成的数字证书中所包含的数据量,利于该数据证书的存储。可选的,目标认证路径生成模块640,可以包括:
哈希节点的集合生成单元,用于基于所述目标签名公钥在所述预设签名树中的位置,确定在所述预设签名树中,生成所述预设签名树的根节点所需的哈希节点的集合;
目标认证路径确定单元,用于根据所述哈希节点的集合,确定所述目标认证路径。
可选的,所述目标认证路径可以包括局部认证路径;相应的,哈希节点的集合生成单元,可以包括:
局部哈希节点的集合生成子单元,用于基于所述目标签名公钥在所属默克尔叶子树中的位置,确定在该默克尔叶子树中,生成所述目标签名公钥所属默克尔叶子树的根节点所需的局部哈希节点的集合;
相应的,目标认证路径确定单元,可以包括:
局部认证路径生成子单元,用于将所需的局部哈希节点的集合作为所述目标签名公钥对应的局部认证路径。
可选的,哈希节点的集合生成单元,可以包括:
全局哈希节点的集合生成子单元,用于基于所述目标签名公钥所属默克尔子树的根节点在所述预设签名树中的位置,确定在所述预设签名树中,生成所述预设签名树的根节点所需的全局哈希节点的集合;
相应的,目标认证路径确定单元,可以包括:
全局认证路径生成子单元,用于将所需的全局哈希节点的集合作为所述全局认证路径。
可选的,目标签名公钥生成模块620,可以包括:
预设进制转化单元,用于将所述目标编码数据中的各目标编码值转化成预设进制的数值;其中,所述预设进制的基数与所述预设私钥集合中预设私钥的数量相等;
目标私钥簇生成单元,用于将所述签名次数对应预设私钥簇作为目标私钥簇;
目标签名公钥确定单元,用于在所述预设签名树中所述目标私钥簇对应的默克尔叶子树中,根据目标编码值的数值转化结果,确定相应的目标签名公钥。
本发明实施例所公开的抗量子签名装置可执行本发明实施例所公开的任意的抗量子签名方法,具备执行该抗量子签名方法相应的功能模块和有益效果。本实施例中未详尽描述的内容可以参考本发明任意抗量子签名方法实施例中的描述。
实施例七
图7为本发明实施例七提供的一种抗量子验签装置的结构示意图,本实施例可适用于对待签名消息对应的签名进行验签的情况,该抗量子验签装置可以采用软件和/或硬件的形式实现,该抗量子验签装置可配置于电子设备中。参考图7所示,该装置包括:
数据获取模块710,用于获取待验签消息和所述待验签消息对应的目标签名集合和目标认证路径。
参考编码数据生成模块720,用于基于预设哈希算法,对所述待验签消息进行编码处理,得到参考编码数据。
参考签名公钥生成模块730,用于根据签名次数,从预设签名树中确定所述参考编码数据中各参考编码值相应的哈希公钥作为参考签名公钥。
目标签名集合验证模块740,用于根据所述参考签名公钥和所述目标认证路径,对所述目标签名集合进行验证。
其中,所述预设签名树基于以下方式构建:将相同预设私钥集合中各预设私钥对应的哈希公钥两两哈希,构建默克尔叶子树;并将相同预设私钥簇中不同预设私钥集合对应默克尔叶子树的根节点两两哈希,得到默克尔子树;或者,将相同预设私钥簇中不同预设私钥集合对应默克尔叶子树的根节点整体哈希,得到默克尔子树;将不同预设私钥簇对应默克尔子树的根节点两两哈希,得到默克尔根树;将包括各所述默克尔叶子树、各所述默克尔子树和所述默克尔根树的默克尔树作为所述预设签名树。
本发明实施例通过基于预设哈希算法,对所获取到的待验签消息进行编码处理,得到参考编码数据,并可根据签名次数,从上述构建预设签名树中查找确定所述参考编码数据中各参考编码值相应的哈希公钥作为参考签名公钥,且根据所述参考签名公钥和所述目标认证路径,对所述目标签名集合进行验证。上述方式使得在对待验签消息进行验签的过程中,可通过预先构建的预设签名树对相应参考签名公钥进行确定,从而无需再进行复杂的计算和校验以实现对相应待验签消息的认证,进而有助于提高相应验签操作的效率。
可选的,目标签名集合验证模块740,可以包括:
参考默克尔树构建单元,用于根据所述参考签名公钥和所述目标认证路径中各哈希节点构建参考默克尔树;
目标签名集合验证单元,用于根据所述参考默克尔树的根节点与所述目标认证路径中根节点的一致性,对所述目标签名集合进行验证。
可选的,所述目标认证路径包括局部认证路径和/或全局认证路径;其中,所述局部认证路径为基于所述目标签名集合中各目标签名公钥在所属默克尔叶子树中的位置,生成的对应默克尔叶子树的根节点所需的局部哈希节点的集合;所述全局认证路径为基于述目标签名集合中各目标签名公钥所属默克尔子树的根节点在所述预设签名树中的位置,生成的所述预设签名树的根节点所需的全局哈希节点的集合。
可选的,参考默克尔树构建单元,可以包括:
局部参考默克尔树构建子单元,用于根据所述参考签名公钥和所述局部认证路径中各哈希节点,构建局部参考默克尔树;
相应的,目标签名集合验证单元,可以包括:
局部认证通过判定子单元,用于若所述局部参考默克尔树的根节点与所述局部认证路径中默克尔叶子树的根节点一致,则对所述目标签名集合局部认证通过。
可选的,参考默克尔树构建单元,可以包括:
全局参考默克尔树构建子单元,用于根据所述参考签名公钥在所述预设签名树中所属默克尔子树的根节点和所述全局认证路径中各哈希节点,构建全局参考默克尔树;
相应的,目标签名集合验证单元,可以包括:
全局认证通过判定子单元,用于若所述全局参考默克尔树的根节点与所述全局认证路径中预设签名树的根节点一致,则对所述目标签名集合全局认证通过。
可选的,参考签名公钥生成模块730,可以包括:
预设进制转换单元,用于将所述参考编码数据中各参考编码值转化成预设进制的数值;其中,所述预设进制的基数与所述预设私钥集合中预设私钥的数量相等;
参考私钥簇生成单元,用于将所述签名次数对应预设私钥簇作为参考私钥簇;
参考签名公钥确定单元,用于在所述预设签名树中所述参考私钥簇对应的默克尔子树中,根据所述参考编码值的数值转化结果,确定相应的参考签名公钥。
本发明实施例所公开的抗量子验签装置可执行本发明实施例所公开的任意的抗量子验签方法,具备执行该抗量子验签方法相应的功能模块和有益效果。本实施例中未详尽描述的内容可以参考本发明任意抗量子验签方法实施例中的描述。
实施例八
图8示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图8所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如抗量子签名方法和/或抗量子验签方法。
在一些实施例中,抗量子签名方法和/或抗量子验签方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的抗量子签名方法和/或抗量子验签方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行抗量子签名方法和/或抗量子验签方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的***和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (13)
1.一种抗量子签名方法,其特征在于,包括:
基于预设哈希算法,对待签名消息进行编码处理,得到目标编码数据;
根据签名次数,从预设签名树中确定所述目标编码数据中各目标编码值相应的哈希公钥作为目标签名公钥;
生成所述目标编码数据对应的包括各所述目标签名公钥的目标签名集合;
根据所述目标签名公钥在所述预设签名树中的位置,确定目标认证路径,用于验证所述目标签名集合;
其中,所述预设签名树基于以下方式构建:将相同预设私钥集合中各预设私钥对应的哈希公钥两两哈希,构建默克尔叶子树;将相同预设私钥簇中不同预设私钥集合对应默克尔叶子树的根节点两两哈希,得到默克尔子树;或者,将相同预设私钥簇中不同预设私钥集合对应默克尔叶子树的根节点整体哈希,得到默克尔子树;将不同预设私钥簇对应默克尔子树的根节点两两哈希,得到默克尔根树;将包括各所述默克尔叶子树、各所述默克尔子树和所述默克尔根树的默克尔树作为所述预设签名树。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标签名公钥在所述预设签名树中的位置,确定目标认证路径,包括:
基于所述目标签名公钥在所述预设签名树中的位置,确定在所述预设签名树中,生成所述预设签名树的根节点所需的哈希节点的集合;
根据所述哈希节点的集合,确定所述目标认证路径。
3.根据权利要求2所述的方法,其特征在于,其中,所述目标认证路径包括局部认证路径;相应的,所述基于所述目标签名公钥在所述预设签名树中的位置,确定在所述预设签名树中,生成所述预设签名树的根节点所需的哈希节点的集合,包括:
基于所述目标签名公钥在所属默克尔叶子树中的位置,确定在该默克尔叶子树中,生成所述目标签名公钥所属默克尔叶子树的根节点所需的局部哈希节点的集合;
相应的,根据所述哈希节点的集合,确定局部认证路径,包括:
将所需的局部哈希节点的集合作为所述目标签名公钥对应的局部认证路径。
4.根据权利要求2所述的方法,其特征在于,所述目标认证路径包括全局认证路径;相应的,所述基于所述目标签名公钥在所述预设签名树中的位置,确定在所述预设签名树中,生成所述预设签名树的根节点所需的哈希节点的集合,包括:
基于所述目标签名公钥所属默克尔子树的根节点在所述预设签名树中的位置,确定在所述预设签名树中,生成所述预设签名树的根节点所需的全局哈希节点的集合;
相应的,根据所述哈希节点的集合,确定全局认证路径,包括:
将所需的全局哈希节点的集合作为所述全局认证路径。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述根据签名次数,从预设签名树中确定所述目标编码数据中各目标编码值相应的目标签名公钥,包括:
将所述目标编码数据中的各目标编码值转化成预设进制的数值;其中,所述预设进制的基数与所述预设私钥集合中预设私钥的数量相等;
将所述签名次数对应预设私钥簇作为目标私钥簇;
在所述预设签名树中所述目标私钥簇对应的默克尔叶子树中,根据目标编码值的数值转化结果,确定相应的目标签名公钥。
6.根据权利要求1-4任一项所述的方法,其特征在于,对待签名消息进行签名生成的目标签名集合和所述目标签名集合的目标认证路径包括在抗量子签名证书中。
7.一种抗量子验签方法,其特征在于,包括:
获取待验签消息和所述待验签消息对应的目标签名集合和目标认证路径;
基于预设哈希算法,对所述待验签消息进行编码处理,得到参考编码数据;
根据签名次数,从预设签名树中确定所述参考编码数据中各参考编码值相应的哈希公钥作为参考签名公钥;
根据所述参考签名公钥和所述目标认证路径,对所述目标签名集合进行验证;
其中,所述预设签名树基于以下方式构建:将相同预设私钥集合中各预设私钥对应的哈希公钥两两哈希,构建默克尔叶子树;并将相同预设私钥簇中不同预设私钥集合对应默克尔叶子树的根节点两两哈希,得到默克尔子树;或者,将相同预设私钥簇中不同预设私钥集合对应默克尔叶子树的根节点整体哈希,得到默克尔子树;将不同预设私钥簇对应默克尔子树的根节点两两哈希,得到默克尔根树;将包括各所述默克尔叶子树、各所述默克尔子树和所述默克尔根树的默克尔树作为所述预设签名树。
8.根据权利要求7所述的方法,其特征在于,所述根据所述参考签名公钥和所述目标认证路径,对所述目标签名集合进行验证,包括:
根据所述参考签名公钥和所述目标认证路径中各哈希节点构建参考默克尔树;
根据所述参考默克尔树的根节点与所述目标认证路径中根节点的一致性,对所述目标签名集合进行验证。
9.根据权利要求8所述的方法,其特征在于,所述目标认证路径包括局部认证路径和/或全局认证路径;
其中,所述局部认证路径为基于所述目标签名集合中各目标签名公钥在所属默克尔叶子树中的位置,生成的对应默克尔叶子树的根节点所需的局部哈希节点的集合;
所述全局认证路径为基于述目标签名集合中各目标签名公钥所属默克尔子树的根节点在所述预设签名树中的位置,生成的所述预设签名树的根节点所需的全局哈希节点的集合。
10.根据权利要求9所述的方法,其特征在于,所述根据所述参考签名公钥和所述目标认证路径中各哈希节点构建参考默克尔树,包括:
根据所述参考签名公钥和所述局部认证路径中各哈希节点,构建局部参考默克尔树;
相应的,所述根据所述参考默克尔树的根节点与所述目标认证路径中根节点的一致性,对所述目标签名集合进行验证,包括:
若所述局部参考默克尔树的根节点与所述局部认证路径中默克尔叶子树的根节点一致,则对所述目标签名集合局部认证通过。
11.根据权利要求9所述的方法,其特征在于,所述根据所述参考签名公钥和所述目标认证路径中各哈希节点构建参考默克尔树,包括:
根据所述参考签名公钥在所述预设签名树中所属默克尔子树的根节点和所述全局认证路径中各哈希节点,构建全局参考默克尔树;
相应的,所述根据所述参考默克尔树的根节点与所述目标认证路径中根节点的一致性,对所述目标签名集合进行验证,包括:
若所述全局参考默克尔树的根节点与所述全局认证路径中预设签名树的根节点一致,则对所述目标签名集合全局认证通过。
12.根据权利要求7-11任一项所述的方法,其特征在于,所述根据签名次数,从预设签名树中确定所述参考编码数据中各参考编码值相应的参考签名公钥,包括:
将所述参考编码数据中各参考编码值转化成预设进制的数值;其中,所述预设进制的基数与所述预设私钥集合中预设私钥的数量相等;
将所述签名次数对应预设私钥簇作为参考私钥簇;
在所述预设签名树中所述参考私钥簇对应的默克尔子树中,根据所述参考编码值的数值转化结果,确定相应的参考签名公钥。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5任一项所述的一种抗量子签名方法;和/或,实现如权利要求7-12任一项所述的一种抗量子验签方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210785763.6A CN115085939B (zh) | 2022-07-04 | 2022-07-04 | 抗量子签名方法、签名证书、验签方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210785763.6A CN115085939B (zh) | 2022-07-04 | 2022-07-04 | 抗量子签名方法、签名证书、验签方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115085939A CN115085939A (zh) | 2022-09-20 |
CN115085939B true CN115085939B (zh) | 2023-04-07 |
Family
ID=83257805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210785763.6A Active CN115085939B (zh) | 2022-07-04 | 2022-07-04 | 抗量子签名方法、签名证书、验签方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115085939B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021102443A1 (en) * | 2019-11-22 | 2021-05-27 | Xx Labs Sezc | Multi-party and multi-use quantum resistant signatures and key establishment |
CN113407976A (zh) * | 2021-07-20 | 2021-09-17 | 北京百度网讯科技有限公司 | 数字签名方法、签名信息的验证方法、相关装置及电子设备 |
CN114338029A (zh) * | 2020-10-09 | 2022-04-12 | 苏州鸿链信息科技有限公司 | 一种抗量子计算攻击的默克尔树签名方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11223483B2 (en) * | 2019-06-28 | 2022-01-11 | Intel Corporation | Odd index precomputation for authentication path computation |
-
2022
- 2022-07-04 CN CN202210785763.6A patent/CN115085939B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021102443A1 (en) * | 2019-11-22 | 2021-05-27 | Xx Labs Sezc | Multi-party and multi-use quantum resistant signatures and key establishment |
CN114338029A (zh) * | 2020-10-09 | 2022-04-12 | 苏州鸿链信息科技有限公司 | 一种抗量子计算攻击的默克尔树签名方法 |
CN113407976A (zh) * | 2021-07-20 | 2021-09-17 | 北京百度网讯科技有限公司 | 数字签名方法、签名信息的验证方法、相关装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115085939A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107657438B (zh) | 一种区块链生成方法、数据验证方法、节点及*** | |
JP7189953B2 (ja) | 管理者による承認を必要としない方式又はディーラーフリー方式で動作するグループ全体にわたって計算タスクを実行するためのコンピュータ実装システム及び方法 | |
US20100217986A1 (en) | Authenticated secret sharing | |
CN110912707A (zh) | 基于区块链的数字证书处理方法、装置、设备及存储介质 | |
US9407631B1 (en) | Multi-server passcode verification for one-time authentication tokens with auxiliary channel compatibility | |
CN105007157B (zh) | 基于设备生成的密钥来生成和管理多个基密钥 | |
US20210377048A1 (en) | Digital Signature Method, Signature Information Verification Method, Related Apparatus and Electronic Device | |
CN108985100A (zh) | 基于区块链的元素安全性证明方法、装置、设备和介质 | |
CN112260836A (zh) | 一种基于分片技术提升区块链吞吐量的方法 | |
EP1998493A1 (en) | Group signature system and information processing method | |
CN109379343A (zh) | 一种区块链的异构共识方法及终端 | |
CN113378148A (zh) | 一种基于区块链的物联网设备身份认证***及方法 | |
CN110601815A (zh) | 一种区块链数据处理方法以及设备 | |
CN108337092A (zh) | 用于在通信网络中执行集体认证的方法和*** | |
CN107171788A (zh) | 一种基于身份且签名长度恒定的在线离线聚合签名方法 | |
CN111639080A (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
CN113841149A (zh) | 用于在工作量证明区块链网络上进行挖掘的***和方法 | |
CN111669267B (zh) | 区块链的共识机制配置及背书策略配置方法 | |
CN115085939B (zh) | 抗量子签名方法、签名证书、验签方法及电子设备 | |
CN115242402B (zh) | 签名方法、验签方法及电子设备 | |
CN110585727B (zh) | 一种资源获取方法及装置 | |
CN116664123A (zh) | 一种基于区块链技术的数字钱包设计方法 | |
Endignoux | Design and implementation of a post-quantum hash-based cryptographic signature scheme | |
CN111147254B (zh) | 两方协同的EdDSA数字签名生成方法和装置 | |
Wang et al. | Analysis and Design of Identity Authentication for IoT Devices in the Blockchain Using Hashing and Digital Signature Algorithms |
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 |