用于可变位宽的哈希值的有效生成的系统和方法

文档序号:7917154阅读:135来源:国知局
专利名称:用于可变位宽的哈希值的有效生成的系统和方法
技术领域
该公开的主题总体上涉及数字加密,并且特别涉及用于有效地生 成在消息摘要及类似物中使用的哈希值的系统和技术。更加特别地涉 及,与
系统相关的各种实施例
背景技术
哈希函数是在计算输入消息的压缩(condensed)数字表示中使 用的任何算法或者其它技术。也就是,哈希函数是能够创建数字"指紋" 的任何可重用技术,数字"指紋"是输入消息的表示,但理想地小很多。 哈希函数通常使用在数字加密和其它应用中以保证被传输的消息完整 到达,甚至没有细小变化。例如,加密安全哈希函数,被设计成计算 相对于原始消息唯一的原始消息的压缩表示(经常被称为"摘要"), 然而对于从摘要中确定(ascertain)原始消息或者对于查找导致相同 摘要的两个不同消息,加密安全哈希函数在计算上仍然不可行。
多个已知的安全哈希算法包括SHA-1、 SHA-224、 SHA-256和由 国家标准与技术学会公布的其它算法,这些算法通常基于512位数据 块和32位数据字。近来,基于1024位块和64位字的较新算法如 SHA-384和SHA-512已经被公开。尽管这些较新标准非常适合于视频 和其它大块数据,但它们典型地需要64位通道来用于实现而不是现有 算法中使用的32位通道。尽管该更宽的位通道在一定的情况下可能有 用,但它会需要(entail)对现有设计中使用的32位体系结构进行明 显再设计。而且,许多互联网安全标准及其类似物仍然依赖于较老的、 32位技术,从而针对由许多设备执行的大部分哈希计算,64位的实现 可能表现为多余的以及未使用的容量。结果,期望创建有效地处理可
变位宽哈希函数的哈希系统和技术。


通过参考详细描述和权利要求的同时结合下面的附图可以获得 对所公开的主题的更加完整的理解,附图中相似的附图标记表示相似 的元件。
图1是用于计算基于输入消息的哈希输出的示例性技术的流程
图2是具有两组窄位宽寄存器的示例性消息摘要系统的框图;以

图3是具有两组窄位宽寄存器的示例性消息摘要系统的另一方面 的框图。
具体实施例方式
下面的详细描述本质上仅仅是示例并且不用来限制所公开的实 施例或者这些实施例的应用和使用。而且,不被前面的技术领域、背 景技术、发明内容或者下面的详细描述中出现的任何被描述的或者暗 示的理论所限制。
根据各种示例性实施例,消息摘要硬件加速器(MDHA)能够通
过多个窄位宽寄存器单元的使用而计算多个位宽的哈希函数。例如, 64位宽的消息,能够通过使用两组32位寄存器来计算,分离的寄存 器保持被存储的数据的高和低位。在按位算术函数(例如,按位加、 算术或者逻辑位移、位转(bit rotate)或者类似操作)中,从保持数 据字的最低有效位的寄存器到保持相同字的更多有效位的寄存器的一 个进位(carry bit)可以被处理。通过提供两组相对窄位宽寄存器并 且接着适当地处理进位,更宽的位宽特征能够被并入MDHA而没有对 旧有系统的明显再设计。
在转到各种实施例的细节之前,应当注意所公开的主题在本文中
可能以功能的和/或逻辑模块组件以及各种处理步骤来描述。这样的模
块组件可以由被构造成执行特定功能的任何数目的硬件、软件和/或固 件组件来实现。例如, 一个实施例可能使用各种集成电路组件,例如, 存储器元件、数字信号处理元件、逻辑元件、查找表或者类似物,其 可以在一或更多微处理器、硬件加速器和/或其它控制设备的控制下执 行各种功能。此外,本领域技术人员将会理解实施例可以结合任何数
目的数椐处理技术和协议来实现,并且本申请中描述的电子设备仅仅 是所公开的主题的示例性应用。
出于简洁的原因,涉及集成电路设备的制造和设计、数字逻辑门 和它们的硬件实现、扫描测试、数字数据处理和设备的其它功能方面 (以及设备的单个操作组件)的传统技术在本申请中可能不被详细描 述。而且,在本申请所包含的各种附图中显示的连接线旨在表示各种 元件之间的示例性功能关系和/或物理耦接。应当注意许多替代的或者 附加的功能关系或者物理连接可以出现在实际的实施例中。而且,尽 管在各种附图中显示的示意图描述了元件的特定排列,额外的中间
(intervening)元件、设备、特征或者组件可以出现在实际的实施例 中(假设所述功能不产生负面影响)。
下面的描述涉及"连接"或者"耦接"在一块的节点或者特征或者 元件。如在本申请中所使用的一样,除非另有明确声明,否则"连接" 意味着一个节点/特征/元件直接连接至另一个节点/特征/元件,而且不 必要是机械的。如在本申请中所使用的一样,除非另有明确声明,否 则"耦接"意味着一个节点/特征/元件直接或者间接地耦接至另一个节 点/特征/元件,而且不必要是机械的。
"示例性,,在本申请使用在"示例,,实施例的上下文中,而不必要使 用在"模型"实施例的上下文中。其它等同实施例可以具有与本申请所 述的"示例性"实施例不同的特征、属性或者排列。
现在转至附图,图l是通过使用两组寄存器来处理各种位宽的哈 希函数的示例性技术100的流程图,每一组寄存器具有相对窄位宽(例 如,32位)。技术IOO可以以任何种类的硬件、软件和/或固件逻辑, 包括任何种类的MDHA或者类似物来实现。在各种实施例中,技术
100实施在具有使用传统的超大规模集成(VLSI)技术或者类似技术 构造的MDHA模块的半导体芯片中。典型地,MDHA组合多个哈希 算法(例如,各种SHA算法、MD4、 MD5等等)的相似函数至半导 体晶片的相对小的流线型区域。例如,MDHA可以包括自动执行生成 依据FIPS 198和/或RFC 2104标准的哈希消息认证代码(HMAC )的 处理的电路。32位MDHA的一个示例被描述在7142669号美国专利 中,尽管其它实施例可以使用以任何方式实现的不同类型逻辑。
通过以任何方式初始化MDHA,哈希处理100 ^皮适当地启动(步 骤102)。在各种实施例中,步骤102包括使MDHA准备接收输入消 息,并且可以通过MDHA逻辑或者类似物的硬件和/或软件重置来完 成。在各种实施例中,MDHA寄存器的内容可以被初始化为任何值(例 如,逻辑0或者1),并且在摘要创建之前可以对输入消息格式化、 进行填充(pad)处理或者进行其它适当处理。初始化步骤102不需要 在处理100的每次反复中发生,而是可以在系统启动或者任何其它适 当的时间发生。
在创建哈希摘要之前,MDHA典型地接收关于被选择的哈希算法 (例如,SHA-1、 SHA-256、 SHA-512、 MD5等等)的配置信息,和 其它适当的参数(步骤504 )。该信息可以包含哈希算法被与MDHA 通信的处理、应用程序或者其它逻辑所选择的指示。在计算期间,所 处理的数据字的大小通常取决于哈希算法,SHA-384和SHA-512典型 地需要64位数据宽度而其它算法需要32位数据宽度。特定位值可以 在其它实施例中变化(例如,64位对128位,16位对32位等等), 但一般而言MDHA系统内支持的至少一个哈希算法将会具有大于至 少一个其它算法的相关联位宽。
输入消息数据以任何方式被提供给MDHA (步骤106)。在各种 实施例中,MDHA包含接收来自客户应用程序或者适当处理的数据的 先进先出(FIFO)緩冲栈。可替代的,输入消息可以存储在能够被 MDHA访问,或者数据能够以任何方式被输入的共享存储器中。 一般 而言,数据字以串行的方式从緩冲栈获取至MDHA的各种寄存器中,
尽管其它实施例可以使用并行、批量或者其它适当的获取技术。下面
结合图2和图3,提供有关MDHA寄存器的附加数据。
数据在MDHA被接收后,消息摘要或者其它哈希输出能够被创 建(步骤108)。 一般而言,MDHA具有用于低位宽(例如,32位) 操作的一组主寄存器和能够用来在高位宽(例如,64位)操作期间保 持附加数据的第二组附加寄存器。这些寄存器组的每一个可以被配置 成低位宽(例如,32位),并且附加寄存器能够在低位宽操作期间被 旁路(步骤114)。也就是说,如果被选择的哈希算法是具有比MDHA 的寄存器的位宽更高位宽的相对高位宽算法(步骤110),那么哈希 特征能够通过使用主和第二寄存器来计算(步骤112)。在此情况下, 处理由主和第二组寄存器之间的按位计算而导致的进位可能是有用的 (步骤116),如下面所做的更加完整的描述。在哈希计算处理的结 束(步骤108 ),计算的摘要/哈希针对原始处理(originating process ) 的后续获取和使用而被存储在存储器、寄存器或者类似物中(步骤 118)。计算的摘要/哈希因而针对后续处理而以任何方式被输出。
一般而言,MDHA包括一组消息寄存器、 一组摘要寄存器,和相 关联的控制逻辑以指导接收数椐的处理和计算并且因而创建输出消息 摘要。图2和3以框图形式显示了这种关系,图2总体上表示使用消 息寄存器202、 204的哈希处理的部分200,而图3总体上表示使用摘 要寄存器302、 304的处理的部分300。图2和图3的剩余模块和元件 表示处理中使用的控制逻辑。如上所述,两组消息寄存器202、 204和 两组摘要寄存器302、 304被提供以适应可变位宽。例如,在32位的 应用中,寄存器202、 204、 302和304的每一个可以被指定为匹配 SHA-1、 SHA-256、 MD5和其它算法的32位宽而同时仍然允许足够的 数据存储以适应与较大位宽(例如,64位)算法(如SHA-384和 SHA-512)相关联的较大数据字。
例如,图2显示了用于接收输入消息并且用于初始压缩数据为能 够被后续阶段处理(例如,如图3所示)的格式的第一系列主消息寄 存器202和第二系列附加消息寄存器204。在图2的示例中,寄存器
202在32位数据的处理中使用,并且还能够用于包含每个64位字的"低 侧"(最低有效)位。在后一个的情况中,"高侧"(更高有效)位被存 储在寄存器204中。
输入消息被初始提供在任何合适的开始位置(例如,与数据字 "15"的低侧相关联的寄存器,如图2所示,尽管任何其它位置能够使 用在等同实施例中)。在较低位宽模式中,数据可以通过寄存器202 被移位,如箭头218所示。在高位宽模式中,输入数据可以通过各种 低和高侧寄存器202、 204被串行移位,如箭头220所示。可替代的, 输入数据可以被并行或者根据任何其它技术导入。尽管图2在这个示 例中被描述为寄存器202存储"低侧"数据而寄存器204存储"高侧"数 据,其在等同实施例中可以被颠倒。以另一种方式来说,本申请所述 的技术能够以"大尾,,(big-endian)和"小尾,,(little-endian)的方式 来等同实现。
MDHA 200内的控制逻辑处理存储在寄存器202和204的数据以 实现所选择的哈希例程。在图2所示的这个示例中,逻辑206和208 分别在存储在X,寄存器和在X" X9和X"寄存器的数据上执行00和 (Tj函数。这些函数的特殊性由特定哈希算法明确定义,尽管不同算法 之间的相似性确实存在。例如,(T。函数在SHA-256中被定义为包括7 和18个位的两个"右转"操作,以及3个位的算术右移操作。这些操作 的结果接着逐位被异或在一块以达到32位结果。在SHA-512中,o0 函数同样被定义有两个右转操作和一个右移操作,但转的大小是1和 8个位,并且算术位移的大小是7个位,以获得64位结果。在32位 操作的情况中,控制逻辑206和208简单地应用适当的按位操作至寄 存器阵列202的内容。逻辑206和208分别简单地处理寄存器Xi和 Xm的内容220、 224。然而,当更宽数据字被使用时,逻辑206和208 同样在阵列204的X,和X14寄存器的内容222、 226上执行类似操作。 在后一个情况中,逻辑206还针对在存储在各个寄存器中的最高和/或 最低有效位上执行的按位操作而执行进位操作。例如,在值"l"被转至 阵列204中的寄存器的最低有效位的右侧的情况中,阵列202中相应
寄存器的最高有效位可以被设置为处理寄存器之间的位移。同样,进
位可以被提供在小尾操作的相反方向(例如,从阵列202至204 )中, 或者在左向位移的情况中,或者出于任何其它原因。加法模块210、 212和214以32位或者64位模式相似地执行按位加法。在各种实施 例中,与逻辑206、 208、 210、 212、 214相关联的寄存器或者其它数 字存储器可以稍微大于数据的位宽以适应数学进位。例如,在32位的 应用中,加法模块210可以被设计位至少33位以适应产生进位的两个 32位值的加法。同样,加法模块214可以为34位以适应来自模块210 的33位,以及来自寄存器202、 204的输入228、 230。加法模块212 因而可以展示35位以适应接收自模块214的34位值。在MDHA逻辑 200的操作期间,原始存储在消息寄存器202和/或204的数据被压缩 以形成消息时间表,表示在图2的输出216中,能够被提供给图3所 示的MDHA逻辑300。
现在转至图3, MDHA 300进一步包括两组摘要寄存器302、 304。 在图3的示例中,寄存器302显示为由寄存器302和304的组合所表 示的扩展数据字的低侧部分。然而,尽管MDHA 300位于低位宽模式, 寄存器304针对低位宽操作可以以任何方式被旁路,如箭头352和354 所示。如上述的处理逻辑,控制逻辑306、 308、 310、 312、 314、 316、 317、 318能够以较低或者较高位宽操作。在较低模式,数据仅仅从低 侧寄存器302获取,按位操作正常发生。在高位宽模式,控制逻辑 306-318分别在寄存器304和302内包含的高侧和低侧数据上执行按位 操作,同时处理两个寄存器之间的任何适当进位。例如,这可以以与 上面结合图2所述的方式相类似的方式来完成,依上所述数据353在 较低位宽模式中从低侧寄存器302提供并且在较高位宽模式中从两组 寄存器302、 304提供。尽管为了提高附图的可阅读性,寄存器304和 其它编程逻辑之间的直接连接没有在图3中被明确显示,但将会理解 针对图3所示的每个低侧连接353存在来自高侧寄存器304的并行逻 辑连接,以与图2中针对逻辑连接222、 226和228所示的方式相类似 的方式。逻辑306-318因而能够以较低或者较高位宽来操作,以及适
当处理按位操作期间的进位。例如,按位加法模块312、 314、 316、
317和318,将具有足够的长度以处理加法处理期间的进位,并且逻辑
306、 308、 310和312将能够针对各种支持的算法处理由相关标准和
指南所定义的按位函数。
请注意,在逻辑200中计算的数据字Wj 216被应用在图3中的
加法模块317。输入在低位宽模式中传播在各种寄存器302中,并且
在较高位宽模式中传播在寄存器302和304中。由图3中的处理模块
306、 308、 310和312定义的特定函数通常对应于被定义有包括
SHA-256和SHA-512的SHA标准中的特殊性的传统数据处理操作。
然而,许多变更或者改编在大量等同实施例中是可能的。例如,由逻 辑算符和执行的特定逻辑函数来处理的特定寄存器值可以与本申请所
述的那些有明显的变化。与结合图2-3所呈现的那些概念相等同的概
念在大量替代实施例中可以被轻松地采用以及应用于任何处理方案或
者例程。
总之,系统、设备和方法依照各种示例性实施例而被构造。这些 实施例中的某一个包括用于根据多个哈希算法中的任何一个而产生输 入消息的哈希输出的方法,多个哈希算法中的每一个具有相关联的位 宽,从而至少一个哈希算法与第一位宽相关联,并且至少一个哈希算 法与大于第一位宽的第二位宽相关联。方法包含如下步骤接收输入 消息和多个哈希算法中被选择的一个哈希算法;在分别具有等于第一 位宽的位宽的第一多个寄存器中存储输入消息的至少一部分;如果多 个哈希算法中被选择的一个哈希算法与第二位宽相关联,在分别具有 等于第一位宽的位宽的第二多个寄存器中存储输入消息的剩余部分, 否则旁路第二多个寄存器;以及根据多个哈希算法中被选择的 一个哈
希算法计算哈希输出。其它方法可以包括附加特征,如存储哈希输出 以由外部源后续获取的步骤。
在各种实施例中,计算步骤包含执行从第一多个寄存器中的至少 一个到第二多个寄存器中的至少一个的进位操作,和/或执行从第二多 个寄存器中的至少一个到第一多个寄存器中的至少一个的进位操作。
在某些实施例中,第一位宽是32位,和/或第二位宽是64位。多个哈 希算法可以包含SHA-256算法和SHA-512算法,SHA-318算法,和/ 或任何其它适当的算法。又在其它实施例中,计算步骤包含如果被 选择的哈希算法与第一位宽相关联,则在第一多个寄存器中的两个寄 存器之间执行按位加法,和/或如果被选择的哈希算法和第二位宽相关 联,则在第 一多个寄存器中的两个寄存器之间执行笫 一按位加法并且 在第二多个寄存器中的两个寄存器之间执行第二按位加法。计算步骤
可以进一步包含如果第一按位加法指示进位输出(carry out),则 增加第二按位加法的结果,和/或如果第二按位加法指示进位,则增加 第一按位加法的结果。在进一步的实施例中,多个哈希算法包含 SHA-256算法和SHA-512算法,并且其中第一位宽是32位。
另 一个实施例提供了 一种用于根据多个哈希算法中的任何一个 而产生输入消息的哈希摘要的系统,多个哈希算法中的每一个具有相 关联的位宽,从而至少一个哈希算法与第一位宽相关联,并且至少一 个哈希算法与大于第一位宽的第二位宽相关联。系统包含第一多个 消息寄存器,分别具有与第一位宽相对应的位宽;具有与第一位宽相 对应的位宽的第二多个消息寄存器;以及控制逻辑,被构造成接收输 入消息和多个哈希算法中被选择的 一个哈希算法,以在第 一多个消息 寄存器中存储输入消息的至少一部分,以及如果多个哈希算法中被选 择的一个哈希算法与第二位宽相关联,在第二多个消息寄存器中存储 输入消息的剩余部分,并且根据多个哈希算法中被选择的 一 个哈希算 法,如果被选择的哈希算法与第 一位宽相关联则仅仅使用第 一 多个消 息寄存器,而如果被选择的哈希算法与第二位宽相关联则使用第一和 第二多个消息寄存器来计算哈希输出。这样的实施例可以进一步用来 包含第一和第二多个摘要寄存器,其中第一和第二多个摘要寄存器中 的每一个具有与第一位宽相对应的位宽。控制逻辑可以进一步被构造 成如果被选择的哈希算法与第一位宽相关联则仅仅使用第一多个摘要 寄存器来产生哈希输出,并且如果被选择的哈希算法与第二位宽相关 联则使用第一和第二多个摘要寄存器来产生哈希输出。又进一步,第
一和第二多个消息寄存器中的每一个可以是32位寄存器。在其它的实 施例中,控制逻辑进一 步被构造在第二位宽的按位操作期间执行从第 二多个寄存器中的至少一个到第一多个寄存器中的至少一个的进位操 作。
其它实施例又提供具有消息摘要硬件加速器的计算芯片,其中消 息摘要硬件加速器包含前述系统中的任何一个。
另一个实施例提供消息摘要硬件加速器系统,被构造成根据多个 哈希算法中的任何一个来产生输入消息的哈希摘要,多个哈希算法中 的每一个具有相关联的位宽,从而多个哈希算法中的第一个与32位宽 相关联,而多个哈希算法中的第二个与64位宽相关联。消息摘要硬件 加速器系统包舍第一和第二多个32位消息寄存器;第一和第二多个 32位摘要寄存器;以及控制逻辑,被构造成接收输入消息和多个哈希 算法中被选择的一个哈希算法,以在第一多个消息寄存器中存储输入 消息的至少一部分,并且如果多个哈希算法中被选择的一个哈希算法 是64位算法则在第二多个消息寄存器中存储输入消息的剩余部分,根 据多个哈希算法中被选择的 一个哈希算法,如果被选择的哈希算法是 32位算法则仅仅使用第一多个消息寄存器和第一多个摘要寄存器,如 果被选择的哈希算法是64位算法则使用第一和第二多个消息寄存器 以及第一和第二多个摘要寄存器,来计算哈希输出,并且在64位算法 的按位操作期间处理第一多个寄存器中的至少一个和第二多个寄存器 中的至少一个之间的进位。
尽管至少一个示例性实施例已经显示在前面的详细描述中,当应 当理解存在大量的变化。还应当理解本申请中描述的示例性实施例并 非以任何方式来限制本发明的范围、适用性或者结构。前面的详细描 述将会为本领域技术人员提供实现所述实施例的便利途径。应当理解 在不脱离由所附权利要求及其法律等同物所阐明的本发明的范围的前 提下,能够在元件的功能和排列上做出各种改变。
权利要求
1.一种用于根据多个哈希算法中的任何一个来产生输入消息的哈希输出的方法,所述多个哈希算法中的每一个具有相关联的位宽,从而至少一个哈希算法与第一位宽相关联并且至少一个哈希算法与大于所述第一位宽的第二位宽相关联,所述方法包含如下步骤接收所述输入消息和所述多个哈希算法中被选择的一个哈希算法;在分别具有等于所述第一位宽的位宽的第一多个寄存器中存储所述输入消息的至少一部分;如果所述多个哈希算法中被选择的一个哈希算法与所述第二位宽相关联,在分别具有等于所述第一位宽的位宽的第二多个寄存器中存储所述输入消息的剩余部分,否则旁路所述第二多个寄存器;以及根据所述多个哈希算法中被选择的一个哈希算法计算所述哈希输出。
2. 如权利要求1所述的方法,进一步包含如下步骤存储所述 哈希输出以由外部源后续获取。
3. 如权利要求1所述的方法,其中所述计算步骤包含执行从所述第一多个寄存器中的至少一个到所述第二多个寄存器中的至少一个 的进位操作。
4. 如权利要求1所述的方法,其中所述计算步骤包含执行从所 述第二多个寄存器中的至少一个到所述第一多个寄存器中的至少一个的进位操作。
5. 如权利要求l所述的方法,其中所述第一位宽是32位。
6. 如权利要求5所述的方法,其中所述第二位宽是64位。
7. 如权利要求6所述的方法,其中所述多个哈希算法包含 SHA-256算法和SHA-512算法。
8. 如权利要求7所述的方法,其中所述多个哈希算法进一步包 含SHA-318算法。
9. 如权利要求1所述的方法,其中所述计算步骤包含如果选 择的哈希算法与所述第一位宽相关联,则执行所述第一多个寄存器中 的两个寄存器之间的按位加法。
10. 如权利要求9所述的方法,其中所述计算步骤进一步包含 如果选择的哈希算法与所述第二位宽相关联,则执行所述第一多个寄 存器中的两个寄存器之间的第一按位加法和所述第二多个寄存器中的 两个寄存器之间的第二按位加法。
11. 如权利要求10所述的方法,其中所述计算步骤进一步包含 如果所述第一按位加法指示进位,则增加所述第二按位加法的结果。
12. 如权利要求10所述的方法,其中所述计算步骤进一步包含 如果所述第二按位加法指示进位输出,则增加所述第一按位加法的结 果。
13. 如权利要求1所述的方法,其中所述多个哈希算法包含 SHA-256算法和SHA-512算法,并且其中所述第一位宽是32位。
14. 一种用于根据多个哈希算法中的任何一个来产生输入消息的哈希摘要的系统,所述多个哈希算法中的每一个具有相关联的位宽,从而至少一个哈希算法与第一位宽相关联,并且至少一个哈希算法与大于所述第一位宽的第二位宽相关联,所述系统包含分别具有与所述第一位宽相对应的位宽的第一多个消息寄存器;具有与所述第一位宽相对应的位宽的第二多个消息寄存器; 控制逻辑,被构造成接收所述输入消息和所述多个哈希算法中被 选择的一个哈希算法,在所述第一多个消息寄存器中存储所述输入消 息的至少一部分,并且如果多个哈希算法中被选择的一个哈希算法与 所述第二位宽相关联,在所述第二多个消息寄存器中存储所述输入消 息的剩余部分,并且根据多个哈希算法中哈希算法,如果被选择的一 个在被选择的哈希算法与所述第一位宽相关联则仅仅使用所述第一多 个消息寄存器,而如果被选择的哈希算法与所述第二位宽相关联则使 用所述第一和第二多个消息寄存器,来计算哈希输出。
15. 如权利要求14所述的系统,进一步包含第一和第二多个摘 要寄存器,其中所述第一和第二多个摘要寄存器中的每一个具有与所 述第一位宽相对应的位宽。
16. 如权利要求15所述的系统,控制逻辑被进一步构造成如果 被选择的哈希算法与所述第一位宽相关联则仅仅使用所述第一多个摘 要寄存器来产生所述哈希输出,并且如果被选择的哈希算法与所迷第 二位宽相关联则使用所述第一和第二多个摘要寄存器来产生所述哈希 输出。
17. 如权利要求16所述的系统,其中所述第一和第二多个消息 寄存器中的每一个是32位寄存器。
18. 如权利要求14所述的系统,控制逻辑被进一步构造成在所 述第二位宽的按位操作期间执行从所述第二多个寄存器中的至少一个 到所述第一多个寄存器中的至少一个的进位操作。
19. 一种包含消息摘要硬件加速器的半导体芯片,其中所述消息 摘要硬件加速器包含如权利要求14所述的系统。
20. —种被构造成根据多个哈希算法中的任何一个来产生输入消 息的哈希摘要的消息摘要硬件加速器系统,所述多个哈希算法中的每 一个具有相关联的位宽,从而第一算法与32位宽相关联,并且第二算 法与64位宽相关联,所述消息摘要硬件加速器系统包含第一和第二多个32位消息寄存器; 第一和第二多个32位摘要寄存器;以及控制逻辑,被构造成接收所述输入消息和所述多个哈希算法中被 选择的一个哈希算法,在所述第一多个消息寄存器中存储所述输入消 息的至少一部分,并且如果多个哈希算法中被选择的一个哈希算法是 64位算法则在所述第二多个消息寄存器中存储所述输入消息的剩余部 分,并且根据多个哈希算法中被选择的一个哈希算法,如果被选择的 哈希算法是32位算法则仅仅使用所述第一多个消息寄存器和所述第 一多个摘要寄存器,而如果被选择的哈希算法是64位算法则使用所述 第一和第二多个消息寄存器以及所述第一和第二多个摘要寄存器,来 计算哈希输出,并且在64位算法的按位操作期间处理所述第一多个寄 存器中的至少一个和所述第二多个寄存器中的至少一个之间的进位。
全文摘要
公开了用于可变位宽的哈希值的有效生成的系统和方法。描述了一种用于根据任何数量的具有可变位宽的哈希算法(例如,SHA-256、SHA-348、SHA-512)来产生输入消息的哈希输出的技术。在每一个具有等于第一位宽(例如,32位)的第一组寄存器(202)中存储输入消息的至少一部分。如果被选择的哈希算法具有较大位宽(例如,64位),在每一个具有等于第一位宽的位宽的第二多个寄存器(204)中存储输入消息的剩余部分。接着根据被选择的哈希算法计算哈希输出。
文档编号H04L9/18GK101350716SQ20081013365
公开日2009年1月21日 申请日期2008年7月18日 优先权日2007年7月20日
发明者M·J·特拉 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1