CN116781272A - 签名验证 - Google Patents

签名验证 Download PDF

Info

Publication number
CN116781272A
CN116781272A CN202310119694.XA CN202310119694A CN116781272A CN 116781272 A CN116781272 A CN 116781272A CN 202310119694 A CN202310119694 A CN 202310119694A CN 116781272 A CN116781272 A CN 116781272A
Authority
CN
China
Prior art keywords
hash value
signature
previously
instructions
message
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.)
Pending
Application number
CN202310119694.XA
Other languages
English (en)
Inventor
M·维拉泰尔
T·M·莱
I·赛罗斯
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN116781272A publication Critical patent/CN116781272A/zh
Pending legal-status Critical Current

Links

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/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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/3236Cryptographic 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
    • H04L9/3239Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

签名验证。示例涉及存储指令的机器可读存储装置,当被处理时,指令被布置成实现将接收的签名验证为有效的方法,与相应接收的消息相关联,使用包括Merkle树的Merkle签名方案生成,Merkle树包括根节点,多个叶节点和多个中间节点设置在根节点与叶节点之间;指令包括以下指令:响应于接收相应消息计算散列值;确定计算的散列值对应于响应于之前接收的消息而计算的存储的之前验证的散列值,并且基于存储的之前验证的散列值验证接收的签名为有效。

Description

签名验证
背景技术
有状态的(stateful)基于散列的签名方案(HBSS)是量子安全签名方案,即使攻击者拥有量子计算机,它也对消息提供完整性和数据来源认证。它是使用公私密钥对的数字签名方案,其中密钥对可以用于只对固定数量的消息签名,其中上限在密钥生成之前定义并要求签名者保持状态。在HBSS下与验证消息相关联的计算开销可能是显著的。
附图说明
将参考附图描述示例,其中
图1示出了根据示例的包括签名者和验证者的示例密码系统;
图2示出了根据示例的验证候选公钥的多树Merkle树和关联的验证状态数据结构;
图3描绘了根据示例的验证候选公钥的单树Merkel树和关联的验证状态数据结构;
图4示出了根据示例的用于验证候选公钥的流程图的对;和
图5示出了根据示例的存储机器可读指令以验证候选公钥的机器可读存储装置。
具体实施方式
HBBS使用Merkle树来验证接收的消息和签名是否有效。该验证使用大量计算资源来通过根据该候选公钥计算总根节点散列值并验证总根节点是否与对应于根节点的之前收到的公钥相同而确定从接收的消息和签名导出的候选公钥是否有效。计算候选公钥是计算资源密集型的。此外,在验证候选公钥时执行的计算数量随着Merkle树高度而增加。如果HBSS使用多树Merkle树,则计算的数量也随着子树高度和子树数量而增加。下面的示例表明可以实现用于验证候选公钥的计算数量的显著减少。
图1示出了示例密码系统100的示意图。密码系统100包括签名者102和验证者104。
签名者102被布置成使用基于散列的数字签名方案110生成与相应消息108相关联的签名106。签名106是使用从一次性签名(one-time-signature)(OTS)密钥的集合112选择的密钥生成的。可以实现从种子生成OTS的示例。种子可以是单个种子。密钥的集合112包括多个公私密钥对114至116。密钥的集合112与树结构118相关联。树结构118可以包括多树Merkle树或单树Merkle树。下面参考图2描述这样的多树Merkle树。下面参考图3描述这样的单树Merkle树。
签名者102被布置成将签名106连同消息120和认证路径数据122作为元组123发送到验证者104。签名者102或其他实体也可以将公钥121发送到验证者104。替代地,验证者104可以被布置成已经接收或已经存储了对应于密钥的集合112的公钥的集合。公钥121对应于私钥124,诸如例如,OTS密钥之一,用于对消息108签名。认证路径数据122与对验证签名106有用的数据结构118内的散列值相关联。认证路径数据120可以表示树结构内的相应节点或与树结构116内的相应节点相关联的索引和散列值的对。基于散列的数字签名方案110可以包括以下至少之一:XMSS:扩展Merkle签名方案,由RFC8391.txt建立,ISSN:2070-1721,2018年5月,Leighton-Micali基于散列的签名,由RFC8554建立,ISSN:2070-1721,2019年4月,基于散列的签名方案,NIST特别出版物800-208中详述,2020年10月,或任何其他Merkle散列树或基于散列的签名方案,在任何和所有排列中联合或分别采用。
将描述签名者102将公钥发送给验证者104的示例。然而,可以实现如下示例:验证者104之前已从签名者102或其他实体接收了公钥,或者验证者104被部署有已经嵌入其内的公钥,或者以其他方式可被验证者104访问的公钥。
验证者104被布置成使用验证过程126来验证接收的签名106。验证过程126是如以上RFC中详述的Merkle树验证方案。验证过程126使用接收的包含签名106、消息121和认证路径数据122的元组123以生成候选公钥120′,特别地,签名106和消息121用于生成候选公钥,如果有效,则通过将生成的散列值与已验证为有效的之前散列值进行比较来随后验证。之前验证的散列值132可包括至少一个或多于一个的之前计算的或之前接收的已被验证者104验证为有效的散列值。已经被验证者104验证为有效的之前计算或接收的散列值可以包括包含以下内容的集合中的至少一个或多于一个:与单树Merkle树的节点或多树Merkle树的节点相关联的散列值、与多树Merkle树的总根节点相关联的总根节点散列值、与多树Merkle树的子树的根节点相关联的根节点散列值、与单树Merkle树的根节点相关联的根节点散列值、或多树单树Merkle树的散列值,在任何和所有排列中联合和分别采用。当候选公钥102′已经被验证为有效时,相应的签名106也可以被认为被验证为有效。此外,响应于确定散列值有效,即,已被验证为有效,至少该有效性的至少指示134被存储在验证状态数据结构136中。
将参考图2描述验证过程126的实现的示例。
图2描绘了多树Merkle树202的视图200。Merkle树202是上述树结构118的示例。Merkle树202包括多个子树204至210。每个子树包括相应的根节点、多个叶节点以及设置在根节点和叶节点之间的多个中间节点。中间节点是RFC8554中指定的内部节点的示例。每个子树都有相应的高度,该高度被定义为根节点和叶节点之间的距离。在图2所示的示例中,最高子树204的高度是h1并且最低级子树206至210的高度是h2。可以实现h1和h2具有不同值或相同值的示例。
子树204至210可以是二叉子树(binary sub-tree)。一般来说,被定义为树的根节点和叶节点之间的距离的高度的基于Merkle树的签名方案包括2h个叶节点和总共2h +1-1个节点,结合单向散列函数H(x,y),将一次性签名方案延伸到每个公钥,即每个根节点,2h个可签名消息。
因此,给定最高子树204的高度h1,最高子树204包括L=2h1个叶节点和总共N=2h1 +1-1个节点。类似地,给定相应高度h2,最低级子树206至210包括2h2个叶节点和总共2h2+1-1个节点。
最高级子树204包括根节点212,其被称为多树Merkle树中的总根节点。根节点212具有关联的总公钥PK。总公钥PK被计算为两个直接(immediate)子节点(未示出)的散列。最高级子树204还包括多个公钥220到224。每个公钥220到224都有对应的私钥/>214至218。私钥和公钥214至224用于签名和验证消息。被私钥/>214至218签名的消息是与子树206至210的相应根节点相关联相应的公钥226至230。公钥/>226到230中的每个公钥是从与和根节点(未示出)的子节点(示出节点)关联的两个关联的子散列值(未示出)导出的。
低级子树206至210包括具有相应根节点散列值的根节点、具有相应公钥或此类相应公钥的散列值中的至少一个或两者的相应叶节点,以及具有相应散列值的相应中间节点。除了叶节点之外的每个节点都从叶节点和中间节点的子节点的对导出其相应的散列值。
因此,图2中描绘的最左边的子树206包括上述公钥pk0226、多个中间节点和2h2个叶节点。叶节点有对应的公钥232到236。公钥232到236中的每个公钥具有对应的私钥238到242。公钥/>232到236和私钥/>238到242用于验证并签署相应的消息242至248。
将理解,验证不仅可以使用消息、相应的签名和相应的候选密钥。提供的示例是用于解释目的的简化示例。然而,可以实现使用其他信息作为验证的部分的示例。可以实现也使用在任何和所有排列中联合和分别采用以下内容中的一个或多个一个的示例:对于每个调用(invocation)不同的安全串,包括字段集合{l,r,q,D,l,j,C},
如RFC8554、7.1节中所指定的。类似地,虽然已经参考从消息和下一个OTS生成的签名描述了示例,但是示例也可以使用其他信息。例如,基于Leighton-Micali散列的签名(LMS)可以包括:与LM-OTS相关联的叶的编号(number)q,指示相应LMS算法的类型代码(typecode),与通过从与OTS相关联的叶到树202的总根的树的相应验证路径相关联的h m-字节值的阵列。此外,应当理解,签名可以包括多个参数。参数的数量可以包括,例如,对于LMS签名,参数h:表示树的高度,m:表示与每个节点关联的字节的数量,以及H:表示接受任何长度的字节串并返回m-字节串的第二原像抗性(second-preimage-resistant)密码散列函数,如RFC8554的5.1节中所指定的。可以实现遍布整个树一致使用此类参数或其他信息的示例。然而,可以实现替代示例,其中每个子树具有参数或其他信息的相应集合。相应集合可以彼此不同,对于子树的一个或多个一个的子集是共同的,其中子树的每个子集具有参数或其他信息的相应公共集合。
图2中描绘的第二最左子树208包括上述公钥pk1228、多个中间节点和2h2个叶节点。叶节点有对应的公钥250到254。公钥250到254中的每个公钥具有对应的私钥256到260。公钥/>250到254和私钥/>256到260用于验证并签署相应的消息262至266。
以上适用于每个剩余的子树(未示出),在最右边的子树210中最终结束(culminate)。图2中描绘的最右边的子树210包括上述公钥230,多个中间节点,以及2h2个叶节点。叶节点具有对应的公钥/>268到272。公钥/>268到272中的每个公钥具有对应的私钥/>274到278。公钥268到272和私钥274到278用于验证和签署相应的消息280到284。
消息224到248、262到266和280到284可以形成更大的总消息或数据集合的部分。例如,消息224至248、262至266和280至284可以形成软件286的相应部分,或者与软件286的相应部分相关联或以其他方式从其导出。软件286是机器可读代码的示例。软件286的每个部分是与代码相关联的数据部分的示例。
尽管本文描述的示例指的是所述消息或一个消息(the message or a message),但是可以实现使用或指代一个消息表示或所述消息表示(a message representation orthe message representation)的示例,使得消息被输入到签名算法中,签名算法根据消息计算消息表示并基于消息表示而不是直接从消息计算任何签名。此类布置中的验证者将计算相反的结果(converse)。因此,本文描述的任何示例可以使用这样的消息表示而不是消息。
假设树202是两级树。尽管将参考树是两级树来描述示例,但是可以实现树202具有至少两级或更多级的示例。私钥238到242、256到260、274到278用于对相应的消息224到248、262到266和280到284签名。公钥用于用相应的散列值填充树。父节点的每个散列值是由散列值的对生成的;在二叉树的情况下,一个来自两个子节点中的每个子节点。叶节点的初始散列值是从与公钥232到236、250到254、268到272的对相关联的散列值生成的。散列值是针对每个子树中的每个级别以及针对每个子树计算的,直到子树是完全填充的散列值和相应的根节点散列值212、226到230。总的根节点散列值212被发送到验证者104,用于在验证在适当过程(due course)期间发送到验证者的消息244到248、262到266、280到284中使用。
假设消息m1,1264要被发送到验证者104。生成对应于该消息的签名。在多级Merkle树的情况下,签名包括与树中的级别一样多的一次性签名(OTS)。在本示例中,签名包括两个OTS。两个OTS包括:关于消息m1,1264上的一个OTS和关于根节点散列值的一个OTS,即对应子树208的公钥pk1228。虽然已经参考简单的公钥描述了示例,但是可以实现如下示例:其中公钥包括根节点散列值连同其他参数,诸如例如取自在任何和所有排列中联合和分别采用的{l,h,w,q}集合的一个或多于一个参数,其中I是16字节串,指示哪个Merkle树一起使用OTS,h是Merkle树的高度,w是Winternitz参数,并且q是32位整数,其指示OTS公钥出现的Merkle树的叶子。可以实现其中任何公钥包括散列值连同其他参数的示例。例如,对于树或子树,可以实现如下示例:其中公钥包括根节点散列值连同其他参数,诸如在任何和所有排列中联合和分别采用的集合{l,h,w,q,n,p,ls,m}的任何参数;参数{l,h,w,q,n,p,ls,m}在RFC8554中定义,例如4.1节,其中n是散列函数的输出的字节的数量,w是Winternitz系数的以位为单位的宽度,即来自与单个Winternitz链一起使用的i的散列值或校验和的位数,并且它是集合{1,2,4,8}的成员,p是构成LM-OTS签名的n字节串元素的数量,ls是校验sim函数Cksm中使用的左移位的数量,以及H是接受任何长度字节串并返回n字节或m字节串的第二原像抗性密码散列函数,I是16字节串,指示该LM-OTS与哪个Merkle树一起使用,p是32-bti整数,其指示OTS公钥出现的Merkle树的叶子,h是树的高度,m是与每个节点关联的字节的数量。可以实现其中公钥是LMS公钥的任何示例,该LMS公钥包括以下元素中的一个或多于一个:LMS参数集合、LM-OTS参数集合、随机值I和根节点的散列值,在RFC8554的4.1节和4.3节中定义为K,在任何和所有排列中全部联合和单独使用。
私钥sk1,1258用于对消息m1,1264进行签名,以关于消息m1,1264生成OTS,其给出的签名。私钥SK1用于对根节点散列值pk1228进行签名以生成关于根节点散列值pk1228的OTS,其给出/>包括OTS288、对应公钥290和关联的认证路径数据292的总签名/>286被生成并作为元组288发送到验证者104。元组288是上述元组123的示例。认证路径数据292包括与在验证总签名286为有效中使用的多树的选择节点相关联的散列值。总签名286和相应的消息m1,1264被发送到验证者104。
相同的数据结构202在验证者104处被构建并且用于验证任何接收的签名,并且进而认证消息244至248、262至266、280至284的任何接收的相应消息。为简洁起见,图2也将用于描述验证者104处的操作,而不是使用专门用于验证者104的附加单独图。因此,图2中还示出了数据结构294,验证者104使用该数据结构294来存储是否已经验证了任何散列值的指示。已经被验证的散列值的示例例如可以包括以下中的任何一个或多个:子树根节点散列值226至230中的任何验证散列值、任何中间节点散列值和总根节点散列值中的任何验证散列值,在任何和所有排列中联合和分别采用。同样,如上所述,虽然已经参考使用总根节点散列值描述了示例,但是可以实现使用全公钥的示例,其包括总根节点散列值连同一个或多于一个参数。尽管数据结构294已经与多树Merkle树202分开描述,但是可以实现如下示例:其中存储在数据结构294内的信息被存储为多树Merkle树202的部分。数据结构294是上述数据结构136的示例。
将参考图2描述示例,其中子树根节点验证的散列值存储在数据结构294中。
验证者104接收总签名286和相应的消息m1,1264。验证过程126开始遍历树202,从支配的(governed)或者以其他方式与认证路径数据292相关联的节点对计算散列值。遍历是自下而上(bottom-up)执行的,从与和第一OTS关联的候选公钥pk1,1252对应的叶节点开始。每次计算散列值,或针对选择的散列值(诸如对应于根节点或一些其他节点的那些),从数据结构294做出关于对应于给定节点的所计算的散列值是否之前已被验证为有效的确定。继续遍历计算散列值的树202,直到从数据结构294确定计算的散列值之前已被验证为有效。如果计算的散列值被确定为具有存储在数据结构294中的对应的经验证的散列值,则就关于当前消息m1,1264并且与该消息相关联的签名被视为被验证为有效,这又导致消息m1,1264被认为是真实的或已认证的而言,遍历树终止。
应当理解,取决于接收的消息,遍历过程可以继续并在计算最上树204的总根节点的总散列值212中最终结束。然而,对于与和相同子树相关联的私钥相关联的签名,遍历将继续,直到在数据结构294内遇到该子树的之前验证的根节点。使用该子树的初始私钥生成的子树的初始签名将导致根节点散列值被计算并最终被验证为有效。
因此,继续遍历树202直到遇到之前已验证为有效的根节点散列值。之前已被验证为有效的该根节点可以与和诸如例如消息m1,1264之类的当前消息相关联的相同子树相关联,或者可以与多树Merkle树202中更高级的子树相关联。确定计算的散列值之前已被验证为有效避免了必须执行与更高节点相关联的OTS签名或散列值计算的验证,更高节点即是更接近总根节点的节点,这可以导致与计算与叶节点相关联的节点的所有散列值和最终结束总根节点散列值的相应认证路径相比的相当大的计算节省。因此,关于遇到之前验证的散列值终止遍历和计算这样的散列值减少了与验证接收的签名相关联的并且进而与认证接收的消息相关联的计算开销。由于减少的计算开销,前述还减少了功耗。
示例将参考验证取自第二最左子树208的两个签名来描述。为了解释的目的高度简化了该示例。简化的示例使用包括具有总根节点和两个叶节点而没有中间节点的上层子树204和两个下层子树节点206、208的总树;每个子树具有相应的根节点和没有中间节点的两个相应的叶节点。这种简化的示例的结果是验证路径被类似地简化。随着子树的高度增加,认证路径将变得更长,因为需要涉及更多的节点,包括适当的中间节点。
因此,用私钥sk1,0256对消息m1,0262进行签名给出和m1,0262的签名和消息组合,其中:
-是使用对应于公钥pk1,0的私钥sk1,0关于消息m1,0的OTS签名;和
-是使用对应于公钥PK1的私钥SK1关于公钥pk1228的OTS签名。
元组A1,0={pk1,1,PK0}被发送给验证者,其中
A1,0={pk1,1,PK0}是关联的认证路径。消息和m1,0262也被发送给验证者。
假设所有散列值都是使用相同的单向散列函数H(key1,key2)计算,并给定元组A1,0={pk1,1,PK0}和消息m1,0262,验证公钥pk1,0包括执行以下内容:
1.接收A1,0={pk1,1,PK0}和消息m1,0262,
2.使用签名256和消息m1,0262计算候选公钥pk′1,0250;
3.验证候选公钥pk′1,0250在使用相应的认证路径A1,0={pk1,1,PK0}具有根节点pk1的树中,通过:
3.1计算H(pk′1,0,pk1,1)=pk′1,其中pk′1是子树208的根节点的候选根节点散列值;
3.2如果pk′1=pk1,继续:
3.2.1计算另外的候选公钥PK′1,使用接收的公钥pk1和关于使用SK1生成的pk1的相应的签名
3.2.2通过以下内容验证另外的候选公钥PK′1
3.2.2.1计算PK′=H(PK0,PK′1),
3.2.2.2如果PK′=PK,得出结论:
-另外的候选公钥PK′1已被验证为有效,
-候选公钥pk′1,0250已被验证为有效,并且
-候选根节点pk′1已被验证为有效。
一旦候选根节点pk′1=pk1已被验证为有效,该验证的散列值就被存储为数据结构294中的条目296。该条目可以包括与候选根节点pk′1相关联的验证状态的指示,诸如指示的“是(Y)”,其表示“是的-被验证为值”。然而,可以实现如下示例:其中该条目不包括与候选根节点pk′1相关联的验证状态的指示,诸如指示的“是”。存储的验证的散列值是与之前接收的消息相关联的之前已验证的散列值的示例。尽管本文描述的示例存储了验证状态的指示,但是示例不限于这样的布置。可以实现其中还存储附加的或替代的数据的示例。例如,可以实现其中附加的或替代的数据包括相关联的签名的示例。在目前的情况下,附加的或替代的数据可以包括签名
存储的验证的散列值pk′1可用于如下验证与相同树或子树关联的未来的候选公钥。
如上所示,利用私钥sk1,1258对消息m1,1264进行签名给出了的签名和消息的组合,其中:
-是使用对应于公钥pk1,1的私钥sk1,1的关于消息m1,1的签名;和
-是使用对应于公钥PK1的私钥SK1的关于公钥pk1228的签名。
元组A1,1={pk1,0,PK0}被发送给验证者104,其中A1,1={pk1,0,PK0}是关联的认证路径。
再次假设,所有散列值是使用相同的单向散列函数H(key1,key2)计算的,并给定元组A1,1={pk1,0,PK0},验证公钥pk1,1包括执行以下内容:
1.接收A1,1={pk1,0,PK0},
2.使用签名和消息m1,1264计算候选公钥pk′1,1252;
3.验证候选公钥pk′1,1252在使用相应的认证路径A1,1={pk1,0,PK0}的具有根节点pk1228的树中,通过:
3.1计算H(pk1,0,pk′1,1)=pk′1,其中pk′1是子树208的根节点的候选根节点散列值;
3.2访问对应于计算的候选根节点散列值pk′1的数据结构条目296并且确定候选根节点散列值pk′1之前已被验证为有效;
3.2.3如果pk′1之前已被验证为有效,则得出如下结论:候选公钥pk′1,1252已被验证为有效。
应当理解,前述内容避免了或以其他方式节省了必须重复与以下内容相关联的所有计算或处理:
3.2.1计算另外的候选公钥PK′1,使用接收的公钥pk1和关于使用SK1生成的pk1的相应的签名
3.2.2通过以下内容验证另外的候选公钥PK′1
3.2.2.1计算PK′=H(PK0,PK′1),
3.2.2.2如果PK′=PK,得出结论:
-另外的候选公钥PK′1已被验证为有效,
-候选公钥pk′1,0250已被验证为有效,并且
-候选根节点pk′1已被验证为有效。
因此,当已经遇到诸如候选根节点pk′1之类的之前被验证为有效的散列值时,就关于当前消息m1,1而言,可以终止用于验证公钥或诸如例如任何散列值之类的任何其他值的树结构202的从下到上的遍历。
当候选公钥被验证时,使用与被验证的候选公钥对应的秘密密钥签名的消息被认为是真实的。
随着更多的消息被发送到验证者104,数据结构294变得越来越多地填充有已被验证的值。例如,使用与是相同的或共同的子树的部分的相应的公钥相关联的对应的秘密密钥对消息进行签名减少验证候选公钥或诸如散列值之类的其他值直到该相同的或共同的子树的根节点的总验证过程计算开销。替代地或附加地,可以实现如下示例:其中验证过程在一些其他级别处或在一些其他条件下终止,诸如例如计算的散列值对应于存储的之前验证的散列值。计算的散列值或存储的之前验证的散列值可以是子树或树的任何级处的散列值。
尽管本文描述的示例涉及变得越来越多被填充的数据结构,但是示例不限于这样的布置。可以实现如下任何和所有示例:其中管理或修剪数据结构内的数据,这在资源受限环境中可以是有用的。例如,假设pk0与关于pk0的签名一起存储,该信息将用于有效地验证关于直到248的消息的签名。然后消息m1,0262将使用pk1而不是pk0。然后验证者104可以用pk1,/>替换pk0,/>因为将不再次使用pk0
尽管已经参考在数据结构中存储验证的散列值,诸如验证的根散列值描述了本文的示例,但是示例不限于这样的布置。可以实现如下示例:其中另外的数据(未示出)的相应集合也与数据结构一起存储。例如,可以实现如下示例:其中数据结构可以存储如下内容中的
至少一个或多于一个,在任何和所有排列中联合和分别采用:{验证的公钥和验证状态的确认,诸如(pk0,yes),验证的公钥和关于该验证的公钥的相关联的签名,诸如}。可以实现如下示例:其中数据结构具有与总根节点的一对一的对应关系,以适应存在具有多个不同的公钥的多个不同签名者的情况,即每个总根节点将有一个数据结构。因此,在这种情况下,得出如下结论:对应于存储的之前计算的散列值的计算的散列值将以满足多个标准为条件;该标准与另外的数据的一个或多于一个集合内包含的附加数据相关。
参考图3,示出了单个Merkle树302的视图300。Merkle树302可以用于验证或认证已经使用相应私钥320至334签名的多个消息304至318。私钥320至334形成许多私公密钥对的部分。每个私公密钥对还包括相应的公钥336到350。此外,或替代地,Merkle树可以用于响应于接收消息和关于使用相应的私钥创建的消息的相应签名来验证候选公钥。
假设所有散列值都是使用相同的单向散列函数H(key1,key2)计算的并且给定之前接收的根散列值PK 351和接收的元组A0={PK1,P1,P5},其中:
m0是消息,
是使用私钥SK0320签名的关于消息m0304的OTS签名,
A0={PK1,P1,P5}是包括散列值PK1,P1,P5的认证路径,
验证候选公钥PK′0包括执行以下内容:
1.接收A0={PK1,P1,P5},
2.使用签名和消息m0304计算候选公钥PK′0336;
3、计算散列值P′0=H(PK′0,PK1)352,352’,
4.计算散列值P′4=H(P′0,P1)354,354’,
5.计算散列值PK′=H(P′4,P5)356,356’
6.如果PK′=PK,则验证候选公钥key PK′0336为有效。
一旦候选公钥PK′0336已经被验证,数据结构358就可以被填充有已知被验证或真实的散列值的集合。散列值的集合可以包括从集合{PK′0,PK1,P′0,P1,P′4,P5}中选择的一个或多于一个的散列值。可以实现如下示例:其中散列值的集合的每个验证的散列值被存储在数据结构358中。然而,示例不限于这样的布置。可以实现如下示例:其中验证的散列值的子集被存储在数据结构358中。例如,受限资源设备可能没有存储器来存储包括所有验证的散列值的大数据结构。在这样的受限资源设备中,可以存储验证的散列值的散列值的选择的子集。这样的子集可能包含单个验证的散列值。
在验证候选公钥PK′0336之后用所有验证的散列值填充数据结构358给出排出叶节点的验证的散列值360的集合{P′0,P1,P′4,P5}。可以理解,只有两个散列值P2368和P3370从验证的数据的数据结构358中错失。当验证者104接收消息m4312和相关联的签名时,数据结构358将填充有验证的散列值P2368,从消息m4312和相关联的签名可以计算候选公钥PK4344用于验证并且候选公钥PK4344也将被填充有验证的散列值P3370,因为该散列值将作为消息m4312的认证路径的部分被提供。
数据结构358中的数据可用于减少用于验证后续候选公钥的计算资源。
再次假设,所有散列值都是使用相同的单向散列函数H(key1,key2)计算的,并且给定之前接收的根散列值PK 351和接收的元组A1={PK0,P1,P5},其中:
m1是消息306,
是使用私钥SK1322签名的消息m1306的签名,
A1={PK0,P1,P5}是包括散列值PK0,P1,P5的认证路径,
验证候选公钥PK′1338包括执行以下内容:
1.接收A1={PK0,P1,P5},
2.使用签名和消息m1306计算候选公钥PK′1338;
3.计算散列值P′0=H(PK0,PK′1)352,352’,
4访问数据结构358以确定是否存在对应于计算的散列值P′0252的条目360并且确定计算的散列值P′0352之前已经被验证为有效;
5.若P′0352之前已被验证为有效,则得出结论:候选公钥PK′1338已被验证为有效。
应当理解,前述内容避免了或以其他方式节省了必须重复与以下内容相关联的所有计算和处理:
计算散列值P′4=H(P′0,P1)354,354’,
计算散列值PK′=H(P′4,P5)356,356′,以及
如果PK′=PK,则验证候选公钥PK′0336为有效。
因此,当已经遇到之前验证为有效的散列值时,就关于当前消息m1而言,可以终止树结构302的自下而上的遍历。
参照图4,示出了根据示例的用于验证候选公钥为有效的流程图402和404的对。
参考左边的流程图402,在406处,消息和对应的签名被接收。在408处从接收的消息和相应的签名导出候选公钥。在410处,计算与候选公钥相关的散列值。在412处,进行计算的散列值是否是或对应于之前验证的散列值的确定。在414处,基于之前验证的散列值,候选公钥被验证为有效。
参考右边的流程图404,在416处,接收消息和相应的签名并且从接收的消息和相应的签名导出候选公钥。在418处,树的遍历以自下而上的方式开始。在420处,计算与候选公钥相关的下一个散列值。在422处,进行计算的散列值是否是或对应于之前验证的散列值的确定。如果计算的散列值不是或不对应于之前验证的散列值,则处理返回到420,在此计算下一个散列值。然而,如果计算的散列值是或对应于之前计算出的散列值,则候选公钥在424处被验证为值并且树的自下而上的遍历就当前接收的消息而言被终止。
系统100、签名者102和验证者104的功能性可以以机器指令的形式实现,机器指令可以由包括指令或具有对指令访问的机器处理。机器可以包括计算机、处理器、处理器核心、DSP、实现指令的专用处理器,诸如例如FPGA或ASIC、电路或其他逻辑、编译器、翻译器、解释器或任何其他指令处理器。处理指令可以包括解释、执行、转换、翻译或以其他方式使指令生效。指令可以存储在机器可读介质上,这是机器可读存储装置的示例。机器可读介质可以以非易失性、非瞬态或非暂时性方式或以易失性、瞬态方式存储指令,其中术语“非暂时性”不包括暂时性传播信号。指令可以被布置成使在任何和所有排列中联合地和分别地采取的本文描述的任何和所有操作生效。指令可以被布置成使任何和所有排列中联合地和分别地采取的本文描述的任何和所有操作、设备、HSM、经销商、系统、认证器、流程图、协议或方法生效。特别地,机器指令可以使在任何和所有排列中联合地和分别地采取的在图4和5中描绘或参考图4和5描述的流程图的操作生效或以其他方式实现。
因此,图5示出了用于实现本文描述的示例的、使用机器可读存储装置504存储的机器指令502的视图500。机器指令502可以由例如处理器506或其他处理实体处理,诸如例如解释器,如上所述。
机器指令502包括以下至少一个或多于一个:
接收消息的指令508,
接收与消息相关联的签名的指令510,
从接收的消息和接收的签名生成候选公钥的指令512,
给定相应输入参数的情况下计算散列值的指令514,
根据存储在存储器520中的数据结构518确定计算的散列值是否之前已被验证为有效的指令516,以及
响应于确定计算的散列值之前已被验证为有效来将计算的散列值验证为有效的指令522;
存储已被验证为有效的散列值的指令524;
前述指令508至524在任何和所有排列中被联合地和分别地采用。
上述示例与现有的数字的基于散列的签名方案形成对比,其中,计算从叶节点到总根节点的所有散列值以建立接收的签名是有效的并且因此相应的消息是真实的。当遇到之前验证的有效散列值时终止树结构的自下而上的遍历节省了大量计算,这些计算用于验证接收的签名为有效并因此将相应的消息认证为真实的。计算节省随着树的级别的数量增加和子树的数量增加而增加。
可以理解,Merkle树包括:2h个一次性密钥对(skj,pkj),其中0≤j<2h,以及与之前接收的消息相关联的之前存储的之前验证的散列值包括:多个散列值中的一个或多于一个,其中对于1≤i<2h,qi=H(q2i||q2i+1),对于0≤j<2h并且总公钥是Y=q1
尽管已经使用单向散列函数H(key1,key2)描述了本文的示例,但是示例不限于这样的单向散列函数。可以实现其中可以使用其他单向散列函数的示例。例如,任何和所有示例都可以使用采用两个以上参数的单向散列函数。可以实现其中单向散列函数采用多个参数的示例。例如,可以实现其中单向散列函数也具有第三参数的示例。第三个参数可以是种子,诸如例如将给出H(key1,key2,randomness)的单向散列函数的随机性种子。
因此,本文描述的示例促进认证。认证是对给定实体是接收数据的原始来源的保证。接收的数据可以包括消息和从消息导出的签名中的至少一个或两者。认证使用数字签名方案。数字签名方案可以提供认证并且包括三个算法,其是密钥生成、签名生成和验证,即(KeyGen,签名(Sign)、验证(Verify))。验证算法由诸如本文描述的任何验证者之类的验证者运行,并将任何公共参数和元组(public_key、消息(message)、签名(signature))作为输入并输出“有效”或“无效”。如果验证算法输出“有效”,则验证者保证给定实体是接收的数据(消息和签名)的原始来源,也就是说,为了认证消息,验证者必须验证签名并接收“有效”输出;有效签名向验证者提供认证。
本文提供的一个或多个示例支持将消息验证为真实的方法;该消息具有相关联的复合(composite)签名,该签名包括与总Merkel树的Merkle子树相关联的多个签名;方法包括依次验证多个签名的子集签名,直到遇到与之前已验证为有效的签名关联的散列值,以及响应于遇到与之前已验证为有效的签名关联的散列值而确定复合签名是有效的。可以实现如下示例:其中签名的子集包括比复合签名的签名数量少的签名。可以实现如下示例:其中之前验证为有效的散列值与Merkle子树中的至少一个Merkle子树的根节点相关联。
可以根据以下条款(clause)实现示例:
条款1:一种将接收的签名验证为有效的方法,该签名与接收的消息相关联,使用包括Merkle树的Merkle签名方案生成,Merkle树包括根节点、多个叶节点和设置在根节点和叶节点之间的多个中间节点;该方法包括:响应于接收消息计算散列值;确定计算的散列值对应于响应于之前接收的消息而计算的存储的之前验证的散列值,并且基于存储的之前验证的散列值来将接收的签名验证为有效。
条款2:条款1的方法,其中响应于接收消息计算散列值包括:计算与根节点相关的散列值。
条款3:任何前述条款的方法,其中响应于接收消息计算散列值包括:计算和与接收的消息相关的认证路径相关联的散列值。
条款4:任何前述条款的方法,其中Merkle树,包括多个子树的多树Merkle树,每个子树包括相应的子树根节点、相应数量的叶节点和设置在相应子树根节点和相应叶节点之间的多个中间节点,并且其中根节点与子树之一相关联。
条款5:条款4的方法,其中响应于接收消息计算散列值包括:计算与多个子树中的子树的相应根节点相关联的散列值。
条款6:任何前述条款的方法,其中:Merkle树包括:2h个一次性密钥对(skj,pkj),其中0≤j<2h,以及与之前接收的消息相关联的之前存储的之前验证的散列值包括:多个散列值中的一个或多于一个,其中对于1≤i<2h,qi=H(q2i||q2i+1),对于0≤j<2h,/>并且总公钥是Y=q1
条款7:任何前述条款的方法,包括计算、验证和存储响应于之前存储的消息而计算的验证的散列值。
条款8:任何前述条款的方法,包括:响应于基于与之前接收的消息相关联的存储的之前验证的散列值所述将接收的签名验证为有效在与对应于之前存储的验证的散列值的计算的散列值相对应的子树的节点处终止Merkle树的遍历,所述节点诸如例如是根节点。
条款9:任何前述条款的方法,包括:从与具有包括至少相应中间节点的相应认证路径的接收的消息相关联的叶节点遍历Merkle树;所述遍历包括所述:响应于接收消息计算散列值;确定计算的散列值对应于响应于之前接收的消息而计算的存储的之前验证的散列值,并且基于响应于之前接收的消息而计算的存储的之前验证的散列值来验证接收的签名为有效,并且响应于基于响应于之前接收的消息而计算的存储的之前验证的散列值来所述验证接收的签名为有效而终止所述遍历Merkle树;所述终止在对应于与存储的之前验证的散列值对应的计算的散列值的子树的根节点处。
条款10:任何前述条款的方法,包括:从与具有包括至少相应中间节点的相应认证路径的接收的消息相关联的叶节点遍历Merkle树;所述遍历包括所述:响应于接收相应消息计算散列值;确定计算的散列值对应于响应于之前接收的消息而计算的存储的之前验证的散列值,并且基于存储的之前验证的散列值验证接收的签名为有效,以及响应于基于与之前接收的消息相关联的存储的之前验证的散列值来所述验证接收的签名为有效而终止Merkle树的所述遍历;所述终止在对应于与存储的之前验证的散列值对应的计算的散列值的中间节点处。
条款11:一种认证多个数据块中的数据块的方法;该方法包括:接收数据块和相应的签名;任何前述条款的基于响应于之前接收的消息而计算的之前验证的散列值来验证接收的签名为有效;响应于所述验证接收的签名为有效来将接收的数据块指定为真实的。
条款12:条款11的方法,其中多个数据块表示软件。
条款13:一种用于将代码验证为真实的设备,该代码具有使用包括树结构的基于散列的签名方案生成的相关联的接收的签名,该树结构包括根节点、多个叶节点和设置在根节点和叶节点之间的多个中间节点;该设备包括逻辑以包括:接收与代码和签名相关联的数据的一部分;与代码相关联的数据的部分是与整个代码相关联的数据的多个部分之一;响应于接收与代码相关联的数据的部分计算散列值;确定计算的散列值对应于响应于接收与代码相关联的数据之前接收的部分而计算的存储的之前验证的散列值,并且基于响应于接收与代码相关联的数据的之前接收的部分计算的之前验证的散列值来将数据的接收的部分验证为有效。
条款14:条款13的设备,包括逻辑以响应于将数据的多个部分中的数据的每个部分验证为真实的而将整个代码验证为真实的。
条款15:一种将与当前接收的消息相关联的当前复合签名验证为有效的方法;当前复合签名包括多个签名;该方法包括:验证之前接收的复合签名为有效,之前接收的复合签名包括多个之前接收的签名,与之前接收的消息相关联,包括验证多个之前接收的签名为有效;通过验证当前复合签名中的多个签名中签名为有效来验证当前复合签名为有效;并且建立当前复合签名中的多个签名中的另外的签名与多个之前接收的签名的被验证为有效的之前接收的签名是共同的。
条款16:一种验证签名为有效的方法,该签名与消息相关联,使用基于散列的签名方案生成,该基于散列的签名方案具有包括总根节点的相关联的多树结构,具有相应的公钥,以及两个或更多级的子树;该方法包括:验证与相应消息相关联的OTS为有效;建立OTS是从具有之前验证的根节点散列值的子树的私钥导出的;响应于所述建立,确定与相应消息相关联的签名是有效的。
条款17:机器指令,在处理时被布置用于实现条款1至12和条款15至16中的任何条款的任何方法。
条款18:机器可读存储装置,存储条款17的机器指令。

Claims (15)

1.一种存储机器指令的机器可读存储装置,所述机器指令在被处理时被布置成将接收的签名验证为有效,接收的签名与接收的消息相关联,使用包括Merkle树的Merkle签名方案生成,Merkle树包括根节点,多个叶节点以及设置在根节点与叶节点之间的多个中间节点;机器指令包括指令以:
a.响应于接收接收的消息计算散列值;
b.确定计算的散列值对应于存储的之前验证的散列值,其中响应于之前接收的消息而计算存储的之前验证的散列值,并且
c.基于存储的之前验证的散列值将接收的签名验证为有效。
2.根据权利要求1所述的机器可读存储装置,其中响应于接收消息而计算散列值的指令包括指令以:
a.计算与根节点相关的散列值。
3.根据权利要求1所述的机器可读存储装置,其中响应于接收消息而计算散列值的指令包括指令以:
a.计算与和接收的消息相关的认证路径相关联的散列值。
4.根据权利要求1所述的机器可读存储装置,其中Merkle树多树Merkle树包括多个子树,每个子树包括独立的子树根节点、多个叶节点和设置在子树根节点和叶节点之间的多个中间节点,并且其中根节点与子树之一相关联。
5.根据权利要求4所述的机器可读存储装置,其中响应于接收消息而计算散列值的指令包括指令以:
a.计算与多个子树中的子树的相应根节点相关联的散列值。
6.权利要求1所述的机器可读存储装置,其中:
a.Merkle树包括:
i.2h一次性密钥对(skj,pkj),其中0≤j<2h,和
b.与之前接收的消息相关联的之前存储的之前验证的散列值包括:
i.多个散列值中的一个或多于一个,其中对于1≤i<2h,qi=H(q2i||q2i+1),对于0≤j<2h,/>并且总公钥是Y=q1
7.根据权利要求1所述的机器可读存储装置,包括指令以:
a.计算、验证并存储响应于之前存储的消息而计算的验证的散列值。
8.根据权利要求1所述的机器可读存储装置,包括指令以:
a.响应于基于与之前接收的消息相关联的存储的之前验证的散列值来所述验证接收的签名为有效而在与对应于存储的之前验证的散列值的计算的散列值对应的子树的节点处终止Merkle树的遍历。
9.根据权利要求1所述的机器可读存储装置,包括指令以:
a.从与具有包括至少相应中间节点的相应认证路径的接收的消息相关联的叶节点遍历Merkle树;遍历的所述指令包括指令以:
i.响应于接收相应消息计算散列值;
ii.确定计算的散列值对应于响应于之前接收的消息而计算的存储的之前验证的散列值,并且
iii.基于响应于之前接收的消息计算的存储的之前验证的散列值验证接收的签名为有效,以及
b.指令响应于基于响应于之前接收的消息而计算的存储的之前验证的散列值所述验证接收的签名为有效而终止Merkle树的所述遍历;所述终止在对应于与存储的之前验证的散列值对应的计算的散列值的子树的根节点处。
10.根据权利要求1所述的机器可读存储装置,包括指令以:
a.从与具有包括至少相应中间节点的相应认证路径的接收的消息相关联的叶节点遍历Merkle树;遍历的所述指令包括所述指令以:
i.响应于接收相应消息计算散列值;
ii.确定计算的散列值对应于响应于之前接收的消息而计算的存储的之前验证的散列值,并且
iii.基于存储的之前验证的散列值验证接收的签名为有效,以及
b.指令以响应于基于与之前接收的消息相关联的存储的之前验证的散列值来所述验证接收的签名为有效而终止Merkle树的所述遍历;所述终止在对应于与存储的之前验证的散列值对应的计算的散列值的中间节点处。
11.一种用于将代码验证为真实的设备,代码具有使用包括树结构的基于散列的签名方案生成的相关联的接收的签名,树结构包括根节点、多个叶节点和设置在根节点和叶节点之间的多个中间节点;设备包括逻辑以:
a.接收与代码和签名相关联的数据的一部分;与代码相关联的数据的部分是与整个代码相关联的数据的多个部分之一;
b.响应于接收与代码相关联的数据的部分计算散列值;
c.确定计算的散列值对应于响应于接收与代码相关联的数据之前接收的部分而计算的存储的之前验证的散列值,并且
d.基于响应于接收与代码相关联的数据的之前接收的部分计算的之前验证的散列值来将数据的接收的部分验证为有效。
12.根据权利要求11所述的设备,包括逻辑以响应于将数据的多个部分中的数据的每个部分验证为真实的而将整个代码验证为真实的。
13.一种包括指令的机器可读存储装置,所述指令在被处理时被布置成将与当前接收的消息相关联的当前复合签名验证为有效;当前复合签名包括多个签名;机器可读存储装置包括指令以:
a.验证之前接收的复合签名为有效,之前接收的复合签名包括多个之前接收的签名,与之前接收的消息相关联,包括验证多个之前接收的签名为有效;
b.验证当前复合签名为有效包括指令以:
i.验证当前复合签名中的多个签名中的签名为有效;并且
ii.建立当前复合签名中的多个签名中的另外的签名与之前被验证为有效的之前接收的签名是共同的;之前接收的签名是多个之前接收的签名之一。
14.根据权利要求13所述的机器可读存储装置,其中验证之前接收的复合签名为有效,之前接收的复合签名包括多个之前接收的签名,与之前接收的消息相关联的指令包括指令以验证多个之前接收的签名为有效,包括指令以:
a.验证与用于验证当前复合签名为有效的Merkle树的子树的根节点相关联的之前接收的签名为有效。
15.根据权利要求13所述的机器可读存储装置,包括指令以在数据结构中存储被验证为有效的之前接收的签名。
CN202310119694.XA 2022-03-15 2023-02-15 签名验证 Pending CN116781272A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP22315063.2A EP4246881A1 (en) 2022-03-15 2022-03-15 Signature verifications
EP22315063.2 2022-03-15

Publications (1)

Publication Number Publication Date
CN116781272A true CN116781272A (zh) 2023-09-19

Family

ID=81328192

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310119694.XA Pending CN116781272A (zh) 2022-03-15 2023-02-15 签名验证

Country Status (3)

Country Link
US (1) US20230299972A1 (zh)
EP (1) EP4246881A1 (zh)
CN (1) CN116781272A (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016131559A1 (en) * 2015-02-20 2016-08-25 Telefonaktiebolaget Lm Ericsson (Publ) Method of providing a hash value for a piece of data, electronic device and computer program
US11223483B2 (en) * 2019-06-28 2022-01-11 Intel Corporation Odd index precomputation for authentication path computation

Also Published As

Publication number Publication date
US20230299972A1 (en) 2023-09-21
EP4246881A1 (en) 2023-09-20

Similar Documents

Publication Publication Date Title
US20230327880A1 (en) Quantumproof blockchain
Malkin et al. Efficient generic forward-secure signatures with an unbounded number of time periods
US6301659B1 (en) Tree-based certificate revocation system
US8639628B2 (en) Token authentication system and method
Schröder et al. Verifiable data streaming
CN111709058B (zh) 一种基于身份和环签名的数据完整性校验方法
JP5489587B2 (ja) パスワードの階層を管理する方法及びシステム
US9407631B1 (en) Multi-server passcode verification for one-time authentication tokens with auxiliary channel compatibility
WO2016131473A1 (en) Method and system for verifying information of a data item in a plurality of different data items
US20240007303A1 (en) Method and system for digital signatures utilizing multiplicative semigroups
CN112152813B (zh) 一种支持隐私保护的无证书内容提取签密方法
WO2020058806A1 (en) Computer implemented system and method for sharing a common secret
CN113014398B (zh) 基于sm9数字签名算法的聚合签名生成方法
van der Linde et al. Post-quantum blockchain using one-time signature chains
CN108667619B (zh) 一种sm9数字签名的白盒实现方法与装置
US20230299972A1 (en) Signature verifications
Endignoux Design and implementation of a post-quantum hash-based cryptographic signature scheme
CN112671712B (zh) 一种支持高效动态更新的云数据完整性验证方法及系统
Guo et al. Further discussions on the security of a nominative signature scheme
Tian et al. Publicly-verifiable proofs of storage based on the discrete logarithm problem
CN111147254B (zh) 两方协同的EdDSA数字签名生成方法和装置
Barenghi et al. A security audit of the OpenPGP format
Zheng et al. Proxy Signature for Sensor Networks against Cyber Attack.
Roh et al. Winternitz signature scheme using nonadjacent forms
KR100525124B1 (ko) 전자 서명된 문서의 검증 방법

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