用于处理输入数据的设备和方法、车辆和存储介质与流程

文档序号:24648545发布日期:2021-04-13 16:28阅读:130来源:国知局
用于处理输入数据的设备和方法、车辆和存储介质与流程

1.本发明涉及密码学领域,并且具体地涉及生成哈希值。


背景技术:

2.存在需要哈希值的各种加密应用。一个示例是数字签名方案,其利用签名来检测数据的未授权修改以及认证签名者的身份。
3.数据可以特别是随机数目的字符,例如字节,其需要被调整为特定大小或特定大小的多个部分,以适合能够处理该预定数目的字节的签名算法。
4.安全哈希算法(sha)被称为加密哈希函数族,该加密哈希函数族由美国国家标准与技术研究院(nist)发布为美国联邦信息处理标准(fips)。可以在例如https://en.wikipedia.org/wiki/secure_hash_algorithms上找到sha的详细信息。这些算法中的每一个算法提供预定大小(即,比特数)的输出。
5.例如,爱德华曲线数字签名算法(eddsa,例如参见https://en.wikipedia.org/wiki/eddsa)是利用公钥加密的数字签名方案。eddsa可能需要sha-2 512哈希函数。


技术实现要素:

6.因此,目的是提供特别地可以有效地提供长哈希值的解决方案。
7.本文提出的示例可以特别地基于以下解决方案中的至少之一。可以利用以下特征的组合来达到期望的结果。方法的特征可以与设备、装置或系统的任何特征组合,或者设备、装置或系统的任何特征也可以与方法的特征组合。
8.提供了一种用于处理输入数据的设备,该设备包括:
9.–
硬件加速器,其
10.–
基于输入数据的第一部分生成第一哈希值,以及
11.–
基于输入数据的第二部分生成第二哈希值,
12.–
其中,第一哈希值基于硬件加速器的第一配置生成,并且
13.–
其中,第二哈希值基于硬件加速器的第二配置生成。
14.单个硬件(hw)加速器基于硬件加速器的不同配置生成两个哈希值。
15.硬件加速器的第一配置和第二配置优选地彼此不同。
16.输入数据的第一部分和输入数据的第二部分可以至少部分地基于不同比特的输入数据。
17.硬件加速器可以提供哈希函数,该哈希函数基于配置和输入数据的一部分来编译哈希值。
18.在这方面,术语硬件加速器仅指示能够基于哈希函数来编译值的硬件单元。
19.硬件加速器可以提供具有比用于生成相应哈希值的输入比特更少的比特的哈希值。
20.根据实施方式,基于第一哈希值和第二哈希值生成输出数据。
21.因此,提出的解决方案引入了有效的硬件解决方案,以提供与具有大量比特的(组合的)哈希值相对应的输出数据,然后可以将其用于例如需要大哈希值(具有许多比特)的任何后续加密操作。
22.根据实施方式,硬件加速器实现以下哈希函数之一:
23.–
sha族算法,特别是sha-2-256,
24.–
sm3。
25.根据实施方式,输入数据以均匀的部分被分配至硬件加速器。
26.根据实施方式,其中,输入数据被多路复用至硬件加速器。
27.根据实施方式,输入数据是数据流。
28.根据实施方式,第二输入数据包括第一输入数据的一部分,或者第一输入数据包括第二输入数据的一部分。
29.根据实施方式,第一哈希值和第二哈希值被结合并且作为输出数据被提供。
30.根据实施方式,
31.–
第一配置包括第一初始哈希值,第一初始哈希值被硬件加速器用于生成第一哈希值,
32.–
第二配置包括第二初始哈希值,第二初始哈希值被硬件加速器用于生成第二哈希值。
33.第一初始哈希值与第二初始哈希值优选地彼此不同。
34.根据实施方式,第一初始哈希值和第二初始哈希值基于至少一个随机数或至少一个伪随机数而被确定。
35.可以由设备特别地由第一和/或第二硬件加速器生成随机数或伪随机数,以及/或者这种数可以由另一设备或功能提供。
36.可选地,第一初始哈希值和第二初始哈希值基于共同的种子来被确定。
37.种子可以是数(或向量),该数(或向量)可以用于初始化(伪)随机数生成器。特别地,可选地,种子被用于生成可以至少部分地用作初始哈希值的若干(例如,伪随机)数(或向量)。
38.根据实施方式,第一初始哈希值基于第二初始哈希值来被确定,或者第二初始哈希值基于第一初始哈希值来被确定。
39.根据实施方式,第一初始哈希值和/或第二初始哈希值具有有限的寿命。
40.根据实施方式,第一初始哈希值和/或第二初始哈希值在n次哈希值的计算之后改变,其中,n等于或大于1。
41.因此,针对每个哈希函数的初始哈希值可以在其被使用至少一次之后被重新计算。
42.根据实施方式,输出数据被用于加密操作。
43.输出数据可以用在例如椭圆曲线数字签名算法(ecdsa)中。
44.根据实施方式,设备可以是加密设备或硬件安全模块的一部分。
45.另外,提出了一种车辆,该车辆包括至少一个根据本发明的的设备。
46.此外,提供了一种用于处理输入数据的方法,该方法包括:
47.–
基于输入数据的第一部分生成第一哈希值,以及
48.–
基于输入数据的第二部分生成第二哈希值,
49.–
其中,第一哈希值基于硬件加速器的第一配置生成,并且
50.–
其中,第二哈希值基于硬件加速器的第二配置生成。
51.此外,提出了一种计算机程序产品,其可以直接加载到数字处理设备的存储器中,该计算机程序产品包括用于执行本文所述的方法的步骤的软件代码部分。
附图说明
52.参照附图示出并说明了实施方式。附图用于说明基本原理,因此说明了用于理解基本原理仅必需的方面。附图未按比例绘制。在附图中,相同的附图标记表示相同的特征。
53.图1示出了能够基于输入x和初始哈希值ihv提供哈希值hash(x,ihv)的硬件加速器的示例性框图。
54.图2示出了利用单个硬件加速器、基于不同配置生成不同哈希值的示例性框图。
55.图3示出了指示可以如何将输入数据例如数据流或消息划分成输入数据的若干部分x1至x6并且进行处理以生成哈希值h1至h6的示例图。
具体实施方式
56.如所指示的,eddsa可以需要供应512比特的输出的sha-2 512哈希函数。为了快速地编译签名,可以以硬件实现eddsa。因此,示例性目的是还提供足够的消息摘要长度(即,哈希函数的输出比特)以满足eddsa的要求,并且因此能够快速地编译签名。
57.一个示例性解决方案是提供能够快速提供不同大小的哈希值(哈希函数的输出比特)的硬件(hw)加速器。
58.在示例性用例场景中,以硬件实现eddsa以及哈希函数。在需要处理大量数据的情况下,该方法特别有利。
59.可选地,硬件加速器能够生成(预定大小的)哈希值。哈希值取决于输入数据和配置。该配置可以是初始哈希值(ihv),或者该配置可以包括初始哈希值(ihv)。
60.图1示出了能够基于输入x和初始哈希值ihv提供哈希值hash(x,ihv)的硬件加速器101的示例性框图。输入x可以是任何输入数据,例如消息或数据流,输入数据可以被分成能够由硬件加速器计算的大小的多个部分。
61.在示例性实施方式中,硬件加速器101处理512比特的输入以生成256比特的哈希值。当然,其他的输入和/或输出大小也是可能的。对https://en.wikipedia.org/wiki/secure_hash_algorithms进行示例性参考,其示出了可视化不同sha的不同输入和输出大小的表格。
62.图2示出了利用单个硬件加速器201、基于不同配置生成不同哈希值的示例性框图。
63.在该示例中,输入数据可以包括输入数据的第一部分x1和输入数据的第二部分x2。
64.输入数据可以是消息或数据流,或者是要被变换至哈希值的任何输入数据。
65.例如,硬件加速器201可以根据sha-256提供哈希函数;在这样的示例性场景中,输入数据的第一部分x1和输入数据的第二部分各自包括512比特。
66.基于512个输入比特,sha-256供应256个输出比特。
67.因此,基于输入数据的第一部分x1和硬件加速器201的配置而生成256比特的哈希值h1=hash(x 1,ihv
x1
),在该示例中,硬件加速器201的配置是初始哈希值ihv
x1

68.因此,基于输入数据的第二部分x2和硬件加速器201的配置生成256比特的哈希值h2=hash(x2,ihv
x2
),在该示例中,硬件加速器201的配置是初始哈希值ihv
x2

69.优选地,用于输入数据的不同部分的初始哈希值彼此之间有至少一个比特不同。
70.根据图2所示出的示例,输入数据x被分成输入数据的两个部分x1和x2,并且随后通过硬件加速器201利用不同的配置ihv
x1
和ihv
x2
处理这些部分中的每一个部分以生成哈希值h1和h2,哈希值h1和h2可以被结合(如符号h1|h2所指示的)以用于例如在加密函数或应用中进行进一步的处理。
71.由于所使用的不同配置,即使输入数据x1和x2的比特相同,也存在大概率哈希值h1和h2将不同。因此,利用硬件加速器的不同配置增大了所提供的哈希值的熵。
72.基于输入数据的部分in,可以针对哈希值的每次计算提供不同的ihv
in
。作为一种选择,可以根据基于确定性或随机或伪随机的选择的轮询方案来提供和选择一组不同的ihv值。
73.这样的ihv值的组可以与硬件加速器一起被存储。
74.另外,可以使用确定性、伪随机或随机的算法来生成ihv值或者其的至少部分。另一种选择是,ihv值基于由硬件加速器或外部设备提供的至少一个种子值。
75.图3示出了指示可以如何将输入数据301例如数据流或消息划分成输入数据的若干部分x1至x6的示例图。输入数据的每个部分具有k比特的长度。
76.当然,还有一种选择是,输入数据301具有预定义的长度和/或多个部分的数目和/或多个部分的长度可以变化。
77.输入数据的多个部分x1至x6随后被供给至硬件加速器201(还参见图2),该硬件加速器201基于专用配置ihv
x1
至ihv
x6
针对输入数据x1至x6中的每一个生成哈希值h1至h6。
78.所得到的哈希值h1至h6被示例性地描述为结合的(组合的)哈希值302。
79.在上述示例中,硬件加速器可以实现sha-256,其中,输入数据的多个部分x1至x6中的每个部分包括512比特,并且所得到的哈希值h1至h6中的每个哈希值包括256比特。因此,在该示例中,k=512比特的大小被分成一半。
80.然而,应指出,硬件加速器可以采用不同的实现。例如,可以实现sm3或者任何其他哈希函数。另外,x
i
/h
i
的比率可以变化,并且可以特别地不同于2。
81.存在实现本文提出的解决方案的各种方式。在一个示例中,输入数据的相应部分和与其相关联的配置可以一起应用于由多路复用器加速的硬件。这确保了硬件加速器随后可以用于生成哈希值(然后该哈希值可以被连结)。
82.作为优点,可以仅使用单个硬件加速器生成长哈希值。这是有利的,因为硬件加速器比软件实现方式快,并且减少硬件加速器的个数具有只需要芯片上的缩减的或最小化的空间的优点。
83.在一个或更多个示例中,本文中所描述的功能可以至少部分地在硬件例如特定硬件部件或处理器中实现。更一般地,技术可以以硬件、处理器、软件、固件或其任何组合来实现。如果以软件实现,则功能可以作为计算机可读介质上的一个或更多个指令或代码存储
或传输,并且所述功能由基于硬件的处理单元执行。计算机可读介质可以包括:计算机可读存储介质,其对应于有形介质例如数据存储介质;或者通信介质,其包括有助于例如根据通信协议将计算机程序从一个地方传输至另一地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂态的有形计算机可读存储介质,或(2)通信介质例如信号或载波。数据存储介质可以是可以由一个或更多个计算机或者一个或更多个处理器访问以检索用于实现本公开内容中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
84.作为示例而非限制,这样的计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其他光盘存储装置、磁盘存储装置或其他磁存储设备、闪存或者可以用于以指令或数据结构的形式存储所需的程序代码并且可以由计算机访问的任何其他介质。另外,任何连接被适当地称为计算机可读介质,即计算机可读传输介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线(dsl)或诸如红外、无线电和微波的无线技术从网站、服务器或其他远程源发送指令,则同轴线缆、光纤线缆、双绞线、dsl或诸如红外、无线电和微波的无线技术包括在介质的定义内。然而,应当理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂态介质,而是替代地针对非暂态有形存储介质。本文所使用的盘(disk)和碟(disc)包括致密碟(cd)、激光碟、光碟、数字多功能碟(dvd)、软盘和蓝光碟,其中,盘(disk)通常以磁的方式再现数据,而碟(disc)使用激光以光学的方式再现数据。上述介质的组合也应当包括在计算机可读介质的范围内。
85.指令可以由一个或更多个处理器执行,所述一个或更多个处理器例如一个或更多个中央处理单元(cpu)、数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其他等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可以指任何前述结构或适合于实现本文所描述的技术的任何其他结构。另外,在某些方面,本文描述的功能可以在被配置为用于编码和解码的专用硬件和/或软件模块内提供,或者并入在组合编解码器中。另外,技术可以在一个或更多个电路或逻辑元件中完全实现。
86.本公开内容的技术可以在包括无线手持机、集成电路(ic)或一组ic(例如芯片组)的各种设备或装置中实现。在本公开内容中描述各种组件、模块或单元以强调被配置成执行所公开的技术的设备的功能方面,但是各种组件、模块或单元不一定需要由不同的硬件单元来实现。确切地说,如上所述,各种单元可以组合在单个硬件单元中,或者通过(包括如上所述的一个或更多个处理器的)互操作硬件单元的集合结合适当的软件和/或固件来提供。
87.虽然已经公开了本发明的各种示例性实施方式,但是对于本领域技术人员而言明显的是,在不脱离本发明的精神和范围的情况下,可以进行将实现本发明的一些优点的各种改变和修改。对于本领域技术人员而言明显的是,可以适当地替换执行相同功能的其他组件。应当提及的是,即使在没有明确提及的情况下,参考特定附图说明的特征也可以与其他附图的特征组合。此外,本发明的方法可以在所有软件实现方式中使用适当的处理器指令来实现,或者在利用硬件逻辑和软件逻辑的组合来实现相同结果的混合实现方式中实现。对本发明的构思的这些修改旨在由所附权利要求覆盖。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1