掌桥专利:专业的专利平台
掌桥专利
首页

提供用于数据签名的密码密钥的计算机实现的方法、签名模块、用于数据签名的方法以及用于经过认证的通信的方法

文献发布时间:2024-04-18 19:58:53


提供用于数据签名的密码密钥的计算机实现的方法、签名模块、用于数据签名的方法以及用于经过认证的通信的方法

技术领域

本发明涉及一种提供用于数据签名的密码密钥的计算机实现的方法、一种签名模块、一种用于数据签名的方法以及一种用于经过认证的通信的方法。

背景技术

当前非对称密码方法、特别是签名方法的安全性通常基于解决特定类型数学问题的难度。这些特别是陷阱门函数,即如果没有特定的附加信息则可以在一个方向上简单计算,但在另一方向上很难计算的函数。这样的数学问题例如是因式分解问题或离散对数问题或椭圆曲线的离散对数问题。这些方法在未来将可以通过强大的量子计算机来攻击。因此,目前正在开发新的密码方法,从今天的角度来看,这些新的密码方法可以抵御未来量子计算机的攻击。这种密码方法也称为后量子密码方法。

后量子密码学中的签名方法的当前追求的方案形成基于哈希的密码学,借助于该密码学可以创建数字签名。

基于哈希的密码签名方法自20世纪70年代以来就已开发出来,并且特别是基于Lamport签名和Merkle签名方法,目前已增加了更新的算法,如XMSS方法(XMSS=“ExtendedMerkle Signature Scheme,扩展Merkle签名方案”)或LMS方法(LMS=“Leighton-MicaliSignatures,Leighton-Micali签名”)。XMSS方法在此使用修改的Winternitz签名方法(即一次性签名方法)作为签名方法,并将该签名方法与哈希树(Hash Trees)链接。在XMSS方法中,哈希树由所谓的L树(“L Trees”)和Merkle树(“Merkle Tree”)组成,由此可以使用一个公钥验证多个一次性签名,因为所有公钥都包含在Merkle树中;Merkle树的根于是代表组合的公钥。在本申请的范围中,术语“root”在此应理解为哈希树的根,从而术语“根”和“root”同义地使用。

基于哈希的方法(如XMSS方法和LMS方法)基于设定数量的一次性签名密钥的有效链接。因此,使用上述方法也可以最多创建与先前设定的数量对应数量的签名。签名的该最大数量是在密钥生成之前设定的。如果签名的最大数量选择得相当大,则密钥生成的持续时间与签名的数量成线性比例。签名的长度随着签名数量的对数增加而增加。

为了加速具有大量签名的密钥的密钥生成,开发了XMSS和LMS的多树变体。这些多树方法不是使用唯一的Merkle树,而是使用Merkle树的树,即节点和叶片分别包含一个XMSS树的树;这样的树在下面也称为子树。由于在此情况下密钥生成可以作为签名生成的一部分进行,并且特别是在根生成之后进行,因此也可以用该方法生成大量密钥。

然而,与简单的XMSS或LMS方法类似,在多树方法的情况下也必须在生成密钥时设定签名的最大数量。

然而,在许多应用情况中,尚不清楚到底需要多少个签名。因此,在实践中常常会设置不必要的很多签名,从而签名被选择得不必要的长,由此选择了不必要的大量计算耗费。

发明内容

因此,本发明的任务是说明一种提供用于数据签名的密码密钥的改进的计算机实现的方法,其中可以容易地保持较低的计算耗费。此外,本发明的任务是说明一种改进的签名模块以及一种用于数据签名的改进的方法和一种用于经过认证的通信的改进的方法,它们可以使用提供用于数据签名的密码签名的改进的方法来执行。

本发明的该任务通过具有权利要求1中说明的特征的提供用于数据签名的密码密钥的方法、具有权利要求12中说明的特征的签名模块、具有权利要求13中说明的特征的用于数据签名的方法以及具有权利要求14中说明的特征的用于经过认证的通信的方法来解决。本发明的优选扩展在相关联的从属权利要求、以下描述和附图中说明。

根据本发明的提供用于数据签名的密码密钥的方法是计算机实现的。在根据本发明的方法中,准备好多个密钥作为具有至少一个第一哈希树的哈希树结构的叶片,其中所述哈希树结构的哈希树的数量不是预定的。在根据本发明的方法中,使用并评估针对是否需要附加密钥的需求标准,并且如果确定所述需求标准得到满足时生成一定数量的附加密钥。在根据本发明的方法中,准备好附加生成的密钥作为至少一个另外的哈希树的叶片,其中将所述至少一个另外的哈希树集成到所述哈希树结构中,使得所述至少一个另外的哈希树的根分别由所述哈希树结构的叶片的密钥签名。叶片的密钥在此意味着形成该叶片的密钥。

因此,借助于根据本发明的方法,不必使用预给定数量、高度和结构的哈希树,而是在可预见对新密钥的需求时,哈希树结构可以根据需要增长。因此在根据本发明的方法中,当看来需要提供新密钥时才形成如上所述的子树意义上的新哈希树。因此,所需的密钥的数量不是由具有预确数量的哈希树的预先设定的哈希树结构来预定的,即不是预先确定的。有利地,根据本发明,可提供的密码密钥的数量原则上是无限的,从而根据本发明的方法还可以有利地用在具有高可用性要求并且因此进一步对新密码密钥具有高且持续的需要的应用中。有利地,哈希树结构不必针对特定数量的密钥预先设计。

因此,在根据本发明的方法中,签名的数量不是预先设定的,而是哈希树结构根据当前评估的需求标准而增长。因此,由于不必预先将签名的数量和哈希树结构的深度选择得不必要的高,因此不必将签名选择得不必要的长,并且生成和使用签名的计算耗费只会增加到以下程度:这种增加的计算耗费是对新提供的密钥的需求所需要的。

优选地,在根据本发明的方法中重复权利要求1的方法步骤。

在根据本发明的方法的有利扩展中,所述哈希树结构是多树结构,并且优选地第一哈希树以及理想情况下另外的哈希树是XMSS哈希树。在根据本发明的方法的该扩展中,可以使用已知密码签名方法所建立的哈希树结构。通过这种方式,可以容易地对业已存在的密码系统进行更新、适配和扩展以使用根据本发明的解决方案。

适当地,在根据本发明的方法中,所述密钥是一次性密钥或所谓的“几次签名”,在德语中也称为“配对密钥”。正是一次性密钥或配对密钥可以构造为并用于根据目前的知识水平可靠地抵御量子计算机辅助攻击,优选地借助于已知的基于哈希的密码方法。

特别优选地,在根据本发明的方法中所述密钥是基于哈希的密钥。根据目前的知识水平,找到哈希函数的原始图像即使对于量子计算机来说也是足够困难的,从而即使将来可以使用强大的量子计算机,根据本发明的方法仍然可以可靠地执行。

优选地,在根据本发明的方法中所述密钥分别是非对称密钥对的公钥。替代地或附加地并且也优选地,所述密钥分别是非对称密钥对的私钥。

在根据本发明的方法中,所述密钥优选地分别是Winternitz签名密钥,即被构造用于根据Winternitz签名方法进行签名的密钥。替代地或附加地并且也优选地,在根据本发明的方法中,所述密钥分别是Lamport签名密钥,即被构造用于根据Lamport签名方法进行签名的密钥。替代地或附加地并且也优选地,在根据本发明的方法中,所述密钥分别是HORST签名密钥,即被构造用于根据HORST签名方法(配对签名方法)进行签名的密钥。特别地,已知上述三种签名方法是抗量子计算机的,从而在该扩展中,根据本发明的方法被构造为尤其面向未来。

优选地,在根据本发明的方法中,所述需求标准取决于所述哈希树结构的已经用于签名的密钥的数量。在根据本发明的方法的该扩展中,可以基于在使用所提供的密钥时的使用进展来预测对附加密钥的需求,并且可以提前向哈希结构添加未来预期的需求。

替代地或附加地并且也优选地,在根据本发明的方法中,所述需求标准取决于还要使用的密钥的数量和/或取决于所述哈希树结构或所述第一哈希树的年龄。

根据本发明的签名模块被构造为执行如上所述的提供密码密钥的计算机实现的方法,并且所述签名模块为此具有存储器,其存储哈希树结构,所述哈希树结构具有第一哈希树并且具有未事先设定数量的哈希树,所述第一哈希树具有多个密钥作为所述哈希树结构的叶片,并且所述签名模块包括用于评估是否满足需求标准的评估单元以及密钥生成模块,所述密钥生成模块被设置为根据所述需求标准得到满足而生成附加密钥作为至少一个另外的哈希树的叶片,并且被设置为通过使用所述哈希树结构的叶片的密钥对所述至少一个另外的哈希树的每个根进行签名将所述至少一个另外的哈希树集成到所述哈希树结构中。

在根据本发明的用于数据签名的方法中,借助于先前描述的根据本发明的提供密码密钥的方法在需要附加密码密钥的情况下提供至少一个附加密码密钥,并且借助于所述至少一个附加密码密钥对至少一个文件进行签名,优选地借助于如上所述的根据本发明的签名模块。

在根据本发明的用于经过认证的通信的方法中,借助于至少一个签名的文件来进行通信,其中借助于如上所述的用于数据签名的方法对所述至少一个签名的文件进行加密。

附图说明

下面基于附图中说明的实施例更详细地解释本发明。

图1示意性地以原理图示出了现有技术中已知的具有多个XMSS树的哈希树结构,

图2示意性地以原理图示出了在执行根据本发明的用于提供密码密钥的方法时的第一时间点在根据本发明的签名模块的存储器中的哈希树结构,

图3示意性地以原理图示出了在第一时间点之后的第二时间点的根据图2的哈希树结构,以及

图4示意性地以原理图示出了在第二时间点之后的第三时间点的根据图2和图3的哈希树结构。

具体实施方式

图1所示的哈希树结构10用于以现有技术已知的方式对数据进行数字签名。

为此,哈希树结构10提供数字签名密钥20(在附图中统一用附图标记20表示;应当理解,签名密钥20彼此不同并且不相同)。

为了提供签名密钥20,哈希树结构10具有第一XMSS树30,第一XMSS树30由Merkle树和L树形成。XMSS树30以本身已知的方式包括作为叶片的一次性密钥40,借助于一次性密钥40可以对用户数据进行数字签名。在根据图1的哈希树结构10中,这些一次性密钥40不用于对用户数据进行直接签名,而是借助于一次性密钥40对相似构造的另外的XMSS树50的根进行签名。又用这些XMSS树50的叶片对另外的XMSS树60进行签名,所述另外的XMSS树50的叶片现在形成签名密钥20。借助于这些签名密钥20提供了哈希树结构10的密钥,借助于所述密钥可以对用户数据(例如电子文档(图1中未明确示出))进行数字签名。

公钥由第一XMSS树30的根形成,这里示出为象征第一XMSS树30的三角形的尖端。借助于签名密钥20生成的数字签名包含XMSS树60、哈希树结构10的上一级别的XMSS树50以及第一XMSS树30的完整签名链。

根据图1所示的哈希树结构10,在生成密钥时已经设定了哈希树结构10的深度以及连接到第一XMSS树30的XMSS树50、60的选择。哈希树结构10的深度在此应理解为XMSS树50、60、30的借助于一次性签名40彼此链接的根的数量,借助于这些XMSS树将签名密钥20与第一XMSS树30的根链接。哈希树结构10的深度作为一个整体在此意味着在签名密钥20的情况下可以出现的链接根的最大数量。相反,在借助于签名密钥20的具体签名情况下哈希树结构10的局部深度意味着从具体签名密钥20开始直到第一XMSS树30的根的彼此链接的根。因此已经设定了哈希树结构10的深度以及在公钥的密钥生成的时间点可能的签名密钥20(这里是第一XMSS树30的根)的数量:在图1所示的实施例中可以用每个单独的XMSS树60、30或60执行四个签名。在出于显示目的而示出的实施例中选择该数量。在其他对应于所示出的实施例的另外的实施例中,为每个XMSS树60设置2

与现有技术不同,在根据本发明的提供密码密钥的方法中,签名密钥200的数量并且特别是哈希树结构100的XMSS树的数量不是预先设定的。

在根据本发明的方法中,从如图2所示的第一XMSS树30开始形成哈希树结构100。然而,在此哈希树结构100的深度是动态设定的:

为此设定需求值,当达到该需求值时,哈希树结构100的深度增加。在图2、图3和图4所示的实施例中,将该需求值设定为迄今为止可用的一次性密钥40的50%的消耗。因此在根据本发明的方法中,首先将第一XMSS树30的叶片40用作签名密钥200。如果第一XMSS树30的可用叶片的50%的比例已被使用,则不是将剩余的一次性密钥40本身用作签名密钥200,而是将第一XMSS树30的剩余的一次性密钥40用于对另外的XMSS树500的根进行签名。当达到需求值时创建这些另外的XMSS树500,并通过使用一次性密钥40签名来集成到迄今为止的哈希树结构100中。在图3的图示中,现在有8个另外的一次性密钥40可用,它们原则上可以用作签名密钥200。

如果现在又使用剩余8个签名密钥中的一半,即消耗到一定程度,则用该树的XMSS树500的剩余的一次性密钥对再次新生成的XMSS树600的根进行签名。

该方法可以任意多次重复,使得原则上可以借助于签名密钥200生成任意多的签名。因此,在根据本发明的方法中,始终借助于在哈希树结构100的局部最低级别上的XMSS树30、500、600的一次性密钥,即借助于尚未对另一XMSS树的根进行签名的一次性密钥40来用签名密钥200对消息或文档进行签名。

在执行根据本发明的方法时,哈希树结构100的深度增加。由此,生成的签名密钥200变得越来越长。然而,根据本发明生成的签名密钥200的长度仍然与根据现有技术方法生成的签名密钥20相当。原则上,在另外的实施例中可以选择合适的折衷,其导致合适的需求值:从而可以适当选择必须消耗到将新的XMSS树600集成到哈希树结构100中为止的签名密钥200的一部分。

在另外的实施例中,当达到所消耗的签名密钥200的特定的固定比例时,不必集成新的XMSS树500、600。而是还可以选择取决于哈希树结构100的当前深度的需求值,其中该需求值可选地还可以额外地包括另外的情况,例如哈希树结构100的年龄或迄今为止每单位时间使用的签名密钥200的数量。

在未具体示出的另外的实施例中,集成到哈希树结构100中的XMSS树500、600不必具有相同的大小,而是例如可以首先集成具有2

在未具体示出的另外的实施例中,需求值可以附加地设定在哪个位置应当添加多大的XMSS树500、600来满足对新签名密钥200的需求。因为如果将新的XMSS树500、600插入到哈希树结构100的业已存在的级别中,即,如果新集成的XMSS树500、600不增加哈希树结构100的深度,则签名长度保持相同。签名密钥仅随着哈希树结构100的局部深度(即随着在签名密钥200情况下哈希树结构100的深度)增加而变长。

由于在根据本发明的方法中哈希树结构100是动态且不是从一开始就具体设定地增长,因此在该方法中附加地存储在哪个位置将XMSS树集成到哈希树结构100中。该信息受完整性保护地存储在内部或外部。在未具体示出的实施例中,该信息是根据迄今为止使用的签名密钥200的数量来计算的。

在根据本发明的用于数据签名的方法的实施例中,不提供完整的签名链,而是仅提供其中包含签名密钥200的XMSS树500、600、30的签名的一部分,因为剩余的签名已经得到检查并受完整性保护地存储。因此在这种情况下,签名密钥200的长度不必随着在签名密钥200情况下哈希树结构100的深度增加而增长。总是当借助于签名密钥200进行签名的一方知道签名文件的所有可想到的接收者已经获得了哪些签名密钥200时——这些接收者想要用签名密钥200验证这些文件,可以有利地使用该变体。特别是当所有签名密钥200都是公开的并且可以在任何时间加以查询时(例如在区块链上下文中),可能就是这种情况。

借助于根据本发明的签名模块来执行根据本发明的方法。该签名模块被设置为准备好需求值并对应于该需求值将新的XMSS树500、600集成到哈希树结构100中。

为此,根据本发明的签名模块具有存储哈希树结构100的存储器,并且还具有用于评估需求值的评估单元和密钥生成模块,该密钥生成模块被设置为生成附加密钥作为至少一个另外的XMSS树500、600的叶片,并且该密钥生成模块被设置为通过使用一次性密钥对至少一个另外的XMSS树500、600的根进行签名,将至少一个另外的XMSS树500、600集成到哈希树结构100中。

在根据本发明的用于数据签名的方法中,签名密钥200就像先前按照根据本发明的用于数据签名的方法提供的签名那样用于对数据、特别是文档进行数字签名。

借助于用于数据签名的方法,对通信数据进行签名并交换签名的通信数据。通过这种方式,执行根据本发明的用于经过认证的通信的方法。

相关技术
  • 一种用于物联网中安全通信的数字签名方法
  • 用于区块链网络的私钥签名方法和装置
  • 提供用于对数据数字签名、认证或加密的签名密钥的方法和移动终端
  • 提供用于对数据数字签名、认证或加密的签名密钥的方法和移动终端
技术分类

06120116509110