CN111953497B - 一种基于hmac算法的消息认证码生成装置及方法 - Google Patents

一种基于hmac算法的消息认证码生成装置及方法 Download PDF

Info

Publication number
CN111953497B
CN111953497B CN202010783318.7A CN202010783318A CN111953497B CN 111953497 B CN111953497 B CN 111953497B CN 202010783318 A CN202010783318 A CN 202010783318A CN 111953497 B CN111953497 B CN 111953497B
Authority
CN
China
Prior art keywords
unit
hmac
key
hash function
target
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
Application number
CN202010783318.7A
Other languages
English (en)
Other versions
CN111953497A (zh
Inventor
熊子涵
王熙庆
丁微微
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.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
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 Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202010783318.7A priority Critical patent/CN111953497B/zh
Publication of CN111953497A publication Critical patent/CN111953497A/zh
Application granted granted Critical
Publication of CN111953497B publication Critical patent/CN111953497B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/3242Cryptographic 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 keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Abstract

本申请公开了一种基于HMAC算法的消息认证码生成装置,包括:输入输出接口、第一存储单元、配置寄存器单元、模式仲裁单元、HMAC运算单元和第二存储单元。在消息认证过程中,该装置通过配置寄存器单元和模式仲裁单元进行内部的整体控制,与HMAC运算单元相互独立,这样便于HMAC运算单元集成不同的散列函数,在工作时只需要更改配置参数就能够选择相应的散列函数算法。这种设计架构效率高,场景适应能力强,成本低。此外,本申请还提供了一种基于HMAC算法的消息认证码生成方法,其技术效果与上述装置的技术效果相对应。

Description

一种基于HMAC算法的消息认证码生成装置及方法
技术领域
本申请涉及密码学技术领域,特别涉及一种基于HMAC算法的消息认证码生成装置及方法。
背景技术
HMAC(Hash-based Message Authentication Code,密钥相关的哈希运算消息认证码)是一种基于Hash函数和密钥进行消息认证的方法。HMAC是当前许多安全协议所选用的提供认证服务的方式,应用十分广泛,例如目前HMAC在IPSec和其他网络协议(如SSL)中都有广泛应用,并且经受住了多种形式攻击的考验,现在已经成为事实上的Internet安全标准。
HMAC可以与任何迭代散列函数捆绑使用,然而,在实际应用中,一种消息认证装置一般只支持一种散列函数,因此,在不同的场景需求下需要预先准备好支持不同散列函数的多种消息认证装置,场景适应能力差,且成本较高。
发明内容
本申请的目的是提供一种基于HMAC算法的消息认证码生成装置及方法,用以解决当前的基于消息认证装置的认证方案场景适应能力差,且成本较高的问题。
第一方面,本申请提供了一种基于HMAC算法的消息认证码生成装置,包括:
输入输出接口:用于与外部进行数据交互;
第一存储单元:用于通过所述输入输出接口获取外部输入的密钥和待认证消息,并进行存储;
配置寄存器单元:用于通过所述输入输出接口获取外部输入的配置参数,将所述配置参数转换为硬件逻辑可识别的有效信息,并将所述有效信息发送至模式仲裁单元;
模式仲裁单元:用于根据所述有效信息,确定目标散列函数的标识信息,将所述目标散列函数的标识信息发送至HMAC运算单元;还用于控制所述第一存储单元将所述密钥和所述待认证消息发送至所述HMAC运算单元;
HMAC运算单元:用于存储HMAC算法的控制逻辑以及多种散列函数的控制逻辑;还用于根据所述标识信息确定目标散列函数,利用基于所述目标散列函数的HAMC算法对所述密钥和待认证消息进行运算,得到消息认证码;
第二存储单元:用于存储所述HMAC运算单元生成的认证码。
优选的,所述输入输出接口为AHB接口。
优选的,所述第一存储单元为FIFO存储器,所述第二存储单元为RAM存储器。
优选的,所述配置寄存器单元还用于:
从所述模式仲裁单元获取当前的运算状态,通过所述输入输出接口向外部输出所述运算状态。
优选的,所述HMAC运算单元包括:
密钥填充子单元:用于对所述密钥进行填充,得到目标密钥,将所述目标密钥分别发送至IPAD运算子单元和OPAD运算子单元;
IPAD运算子单元:用于对所述目标密钥和和预先设置的IPAD进行异或运算,将异或运算的结果与所述待认证消息进行拼接,并利用所述目标散列函数对拼接结果进行运算,得到第一运算结果;
OPAD运算子单元:用于对所述目标密钥和预先设置的OPAD进行异或运算,利用所述目标散列函数对异或运算的结果进行运算,得到第二运算结果;
输出子单元:用于利用所述目标散列函数,根据所述第一运算结果和所述第二运算结果,生成消息认证码。
优选的,所述密钥填充子单元具体用于:
若所述密钥的长度小于所述目标散列函数的明文分组长度,则在所述密钥末尾填充0;
若所述密钥的长度大于所述目标散列函数的明文分组长度,则调用散列算法计算所述密钥的摘要,并在所述摘要末尾填充0。
第二方面,本申请提供了一种基于HMAC算法的消息认证码生成方法,包括:
通过输入输出接口获取外部输入的密钥和待认证消息,并存储至第一存储单元;
利用配置寄存器单元通过所述输入输出接口获取外部输入的配置参数,将所述配置参数转换为硬件逻辑可识别的有效信息,并将所述有效信息发送至模式仲裁单元;
利用所述模式仲裁单元,根据所述有效信息确定目标散列函数的标识信息,将所述目标散列函数的标识信息发送至HMAC运算单元;控制所述第一存储单元将所述密钥和所述待认证消息发送至所述HMAC运算单元;
利用所述HMAC运算单元,根据所述标识信息确定目标散列函数,利用基于所述目标散列函数的HAMC算法对所述密钥和待认证消息进行运算,得到消息认证码,其中所述HMAC运算单元用于存储HMAC算法的控制逻辑以及多种散列函数的控制逻辑;
将所述HMAC运算单元生成的认证码存储至第二存储单元。
优选的,还包括:
利用配置寄存器单元从所述模式仲裁单元获取当前的运算状态,通过所述输入输出接口向外部输出所述运算状态。
优选的,所述利用基于所述目标散列函数的HAMC算法对所述密钥和待认证消息进行运算,得到消息认证码,包括:
对所述密钥进行填充,得到目标密钥;
对所述目标密钥和和预先设置的IPAD进行异或运算,将异或运算的结果与所述待认证消息进行拼接,并利用所述目标散列函数对拼接结果进行运算,得到第一运算结果;同时,对所述目标密钥和预先设置的OPAD进行异或运算,利用所述目标散列函数对异或运算的结果进行运算,得到第二运算结果;
利用所述目标散列函数,根据所述第一运算结果和所述第二运算结果,生成消息认证码。
优选的,所述对所述密钥进行填充,得到目标密钥,包括:
若所述密钥的长度小于所述目标散列函数的明文分组长度,则在所述密钥末尾填充0;
若所述密钥的长度大于所述目标散列函数的明文分组长度,则调用散列算法计算所述密钥的摘要,并在所述摘要末尾填充0。
本申请所提供的一种基于HMAC算法的消息认证码生成装置,包括:输入输出接口、第一存储单元、配置寄存器单元、模式仲裁单元、HMAC运算单元和第二存储单元。其中,配置寄存器单元能够通过输入输出接口获取外部输入的配置参数,将配置参数转换为硬件逻辑可识别的有效信息,并将有效信息发送至模式仲裁单元;模式仲裁单元能够根据有效信息,确定目标散列函数的标识信息,将目标散列函数的标识信息发送至HMAC运算单元;还能够控制第一存储单元将密钥和待认证消息发送至HMAC运算单元;HMAC运算单元存储有HMAC算法的控制逻辑以及多种散列函数的控制逻辑,能够根据标识信息确定目标散列函数,利用基于目标散列函数的HAMC算法对密钥和待认证消息进行运算,得到消息认证码,最终存储至第二存储单元。
可见,该装置通过配置寄存器单元和模式仲裁单元进行内部的整体控制,与HMAC运算单元相互独立,这样便于HMAC运算单元集成不同的散列函数,在工作时只需要更改配置参数就能够选择相应的散列函数算法。这种设计架构效率高,场景适应能力强,成本低。
此外,本申请还提供了一种基于HMAC算法的消息认证码生成方法,其技术效果与上述装置的技术效果相对应,这里不再赘述。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请所提供的一种基于HMAC算法的消息认证码生成装置实施例的结构示意图;
图2为本申请所提供的一种基于HMAC算法的消息认证码生成装置实施例的工作流程图;
图3为本申请所提供的一种基于HMAC算法的消息认证码生成装置实施例的工作过程示意图;
图4为本申请所提供的一种基于HMAC算法的消息认证码生成方法实施例的流程图。
具体实施方式
本申请的核心是提供一种基于HMAC算法的消息认证码生成装置及方法,通过配置寄存器单元和模式仲裁单元进行内部的整体控制,与HMAC运算单元相互独立,这样便于HMAC运算单元集成不同的散列函数,在工作时只需要更改配置参数就能够选择相应的散列函数算法。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本实施例采用硬件逻辑语言对HAMC算法进行了设计实现,提出了一种硬件架构,即消息认证装置。该消息认证装置设计结构简单,控制逻辑清晰,可以有效的支持多种散列函数集成,便于后期算法升级。
下面对本申请提供的一种基于HMAC算法的消息认证码生成装置实施例进行介绍,参见图1,该实施例包括:
输入输出接口:用于与外部进行数据交互;
第一存储单元:用于通过所述输入输出接口获取外部输入的密钥和待认证消息,并进行存储;
配置寄存器单元:用于通过所述输入输出接口获取外部输入的配置参数,将所述配置参数转换为硬件逻辑可识别的有效信息,并将所述有效信息发送至模式仲裁单元;
模式仲裁单元:用于根据所述有效信息,确定目标散列函数的标识信息,将所述目标散列函数的标识信息发送至HMAC运算单元;还用于控制所述第一存储单元将所述密钥和所述待认证消息发送至所述HMAC运算单元;
HMAC运算单元:用于存储HMAC算法的控制逻辑以及多种散列函数的控制逻辑;还用于根据所述标识信息确定目标散列函数,利用基于所述目标散列函数的HAMC算法对所述密钥和待认证消息进行运算,得到消息认证码;
第二存储单元:用于存储所述HMAC运算单元生成的认证码。
具体的,本实施例中配置寄存器单元将外部输入的配置参数存储到寄存器区域中,并将其转换成硬件逻辑可识别的有效信息,传输到其他单元,从而有效控制整个消息认证的运作。
作为一种优选的实施方式,上述配置寄存器单元还可以用于获取HMAC运算单元的运算状态,并通过输入输出接口向外部提供运算状态的查询功能。
模式仲裁单元能够根据配置寄存器单元传输过来的有效信息,判断HMAC具体采用的散列函数,对第一存储单元进行资源调配,并控制HMAC运算单元选择具体的散列函数。
作为一种具体的实施方式,上述第一存储单元作为内部存储空间,具体可以选用FIFO存储器。因此,模式仲裁单元主要用于进行FIFO资源调配和HMAC运算单元的选择。
上述第二存储单元主要用于存储HAMC运算单元生成的认证码,在实际应用中,可以选用RAM存储器作为上述第二存储单元。
如上所述,HMAC运算单元存储有HMAC算法的整体控制逻辑,并且该单元支持调用多种散列函数,例如MD5、SHA-1等。
上述输入输出接口具体可以选用AHB接口,在实际应用中,通过AHB控制单元利用AHB接口协议进行数据传输。
本实施例所提供一种基于HMAC算法的消息认证码生成装置,配置寄存器单元、模式仲裁单元、HMAC运算单元完全独立,可以很好的兼容各种散列函数。外部接口可以选用AHB通用接口,便于集成到不同的系统设计中,支持大部系统的集成,使用面广。在后期升级时候,由于模式仲裁单元和HMAC运算单元完全独立,通过修改配置参数模式仲裁单元就可以更改配置,后期升级算法只需要微调算法单元即可,升级容易,高效,并且不会对模块的稳定性造成太大影响,稳定性高。
下面对本申请提供的一种基于HMAC算法的消息认证码生成装置实施例的工作过程进行介绍,其中数据传递过程请参见前文描述,此部分重点描述HMAC运算单元接收到密钥和待认证消息之后的运算过程。
如图2所示,前述HMAC运算单元具体包括:
密钥填充子单元:用于对所述密钥进行填充,得到目标密钥,将所述目标密钥分别发送至IPAD运算子单元和OPAD运算子单元;
IPAD运算子单元:用于对所述目标密钥和和预先设置的IPAD进行异或运算,将异或运算的结果与所述待认证消息进行拼接,并利用所述目标散列函数对拼接结果进行运算,得到第一运算结果;
OPAD运算子单元:用于对所述目标密钥和预先设置的OPAD进行异或运算,利用所述目标散列函数对异或运算的结果进行运算,得到第二运算结果;
输出子单元:用于利用所述目标散列函数,根据所述第一运算结果和所述第二运算结果,生成消息认证码。
作为一种具体的实施方式,所述密钥填充子单元具体用于:若所述密钥的长度小于所述目标散列函数的明文分组长度,则在所述密钥末尾填充0;若所述密钥的长度大于所述目标散列函数的明文分组长度,则调用散列算法计算所述密钥的摘要,并在所述摘要末尾填充0。
在实际应用中,在HMAC的定义中用到一个密码散列函数H和一个密钥K。假设H是一个能够对明文进行分组循环压缩的散列函数,B为散列函数的明文分组长度(64byte),L为散列函数的输出长度(byte),若选择MD5为散列函数则L=16,若选择SHA-1为散列函数则L=20。认证密钥K可以为任意长度,一般密钥长度应大于明文分组的长度。
本实施例定义两个常数:
IPAD=一个字节(byte)的0x36重复B次;
OPAD=一个字节(byte)的0x5C重复B次。
若以“text”作为要计算HMAC的明文,则作如下操作:
H(K XOR opad,H(K XOR ipad,text))
整体的运算过程如图2所示:
第一,先初始化进入idle状态,然后通过模式仲裁单元将密钥K的数据送入HMAC运算单元中。HMAC运算单元判断密钥K的长度,如果小于64byte,则在密钥K后面填充0,使其成为长度为64byte;如果长度大于64byte,则调用一次散列函数运算,例如调用MD5,输出16byte的摘要结果,再对该结果填充0至64byte。最后,同时进入IPAD状态和OPAD状态。
第二,在IPAD状态,将第一步得到的64byte数据与常数IPAD进行异或,得出字符串X;将数据流text拼接到X后面;调用散列函数H计算消息摘要得到结果E。
同时,在OPAD状态,将第一步得到的64byte数据与常数OPAD进行异或,得出字符串Y,调用散列函数H对Y进行运算,得到结果F。
第三,当IPAD和OPAD都计算出结果后,进入Z状态。该状态将OPAD的结果F作为输入参数数据,对IPAD的结果E进行散列函数H计算信息摘要,最终输出HMAC的认证码结果。
传统方案是将Y和E做拼接,然后经过散列运算,得出认证码结果。这个在散列运算过程是个迭代过程,实际上,在计算工程中也是先通过Y算出F,然后F作为参数继续参与E的部分数据计算出一个值比如X,X再参与E的剩余部分计算一个值,这样一直计算下去。而本实施例删除了拼接这一步,直接在OPAD的状态计算出了F,这样相比于之前,节约了拼接和拼接后的第一次运算出F的计算时间。
可见,本实施例提供的一种基于HMAC算法的消息认证码生成装置,使得IPAD运算子单元和OPAD运算子单元可以并行同时参与运算,将OPAD运算的结果F作为参数,参与IPAD运算结果E的最后一次散列函数运算。这样设计不同于传统的设计,传统设计需要等待IPAD状态计算出结果E后,再与字符串Y拼接后才能进行下一步运算。因为传统设计拼接后的数据长度明显大于IPAD的输出结果E,必然导致运算时间更长,本设计巧妙更改了最后一次散列函数的计算过程,运用并行运算,节约了运算时间,提高了消息认证效率。
此外,本申请还提供了一种基于HMAC算法的消息认证码生成方法实施例,该方法实施例基于前文所述的基于HMAC算法的消息认证码生成装置实现。
如图4所示,该方法包括以下步骤:
S401、通过输入输出接口获取外部输入的密钥和待认证消息,并存储至第一存储单元;
S402、利用配置寄存器单元通过所述输入输出接口获取外部输入的配置参数,将所述配置参数转换为硬件逻辑可识别的有效信息,并将所述有效信息发送至模式仲裁单元;
S403、利用所述模式仲裁单元,根据所述有效信息确定目标散列函数的标识信息,将所述目标散列函数的标识信息发送至HMAC运算单元;控制所述第一存储单元将所述密钥和所述待认证消息发送至所述HMAC运算单元;
S404、利用所述HMAC运算单元,根据所述标识信息确定目标散列函数,利用基于所述目标散列函数的HAMC算法对所述密钥和待认证消息进行运算,得到消息认证码,其中所述HMAC运算单元用于存储HMAC算法的控制逻辑以及多种散列函数的控制逻辑;
S405、将所述HMAC运算单元生成的认证码存储至第二存储单元。
在一些具体的实施例中,还包括:利用配置寄存器单元从所述模式仲裁单元获取当前的运算状态,通过所述输入输出接口向外部输出所述运算状态。
在一些具体的实施例中,所述利用基于所述目标散列函数的HAMC算法对所述密钥和待认证消息进行运算,得到消息认证码,包括:对所述密钥进行填充,得到目标密钥;对所述目标密钥和和预先设置的IPAD进行异或运算,将异或运算的结果与所述待认证消息进行拼接,并利用所述目标散列函数对拼接结果进行运算,得到第一运算结果;同时,对所述目标密钥和预先设置的OPAD进行异或运算,利用所述目标散列函数对异或运算的结果进行运算,得到第二运算结果;利用所述目标散列函数,根据所述第一运算结果和所述第二运算结果,生成消息认证码。
在一些具体的实施例中,所述对所述密钥进行填充,得到目标密钥,包括:若所述密钥的长度小于所述目标散列函数的明文分组长度,则在所述密钥末尾填充0;若所述密钥的长度大于所述目标散列函数的明文分组长度,则调用散列算法计算所述密钥的摘要,并在所述摘要末尾填充0。
本实施例提供的基于HMAC算法的消息认证码生成方法基于前文所述的基于HMAC算法的消息认证码生成装置实现,因此,该方法的技术效果与前述装置的技术效果相对应,这里不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (8)

1.一种基于HMAC算法的消息认证码生成装置,其特征在于,包括:
输入输出接口:用于与外部进行数据交互;
第一存储单元:用于通过所述输入输出接口获取外部输入的密钥和待认证消息,并进行存储;
配置寄存器单元:用于通过所述输入输出接口获取外部输入的配置参数,将所述配置参数转换为硬件逻辑可识别的有效信息,并将所述有效信息发送至模式仲裁单元;
模式仲裁单元:用于根据所述有效信息,确定目标散列函数的标识信息,将所述目标散列函数的标识信息发送至HMAC运算单元;还用于控制所述第一存储单元将所述密钥和所述待认证消息发送至所述HMAC运算单元;
HMAC运算单元:用于存储HMAC算法的控制逻辑以及多种散列函数的控制逻辑;还用于根据所述标识信息确定目标散列函数;所述HMAC运算单元包括:密钥填充子单元:用于对所述密钥进行填充,得到目标密钥,将所述目标密钥分别发送至IPAD运算子单元和OPAD运算子单元;IPAD运算子单元:用于对所述目标密钥和和预先设置的常数IPAD进行异或运算,将异或运算的结果与所述待认证消息进行拼接,并利用所述目标散列函数对拼接结果进行运算,得到第一运算结果;OPAD运算子单元:用于对所述目标密钥和预先设置的常数OPAD进行异或运算,利用所述目标散列函数对异或运算的结果进行运算,得到第二运算结果;输出子单元:用于利用所述目标散列函数,根据所述第一运算结果和所述第二运算结果,生成消息认证码;
第二存储单元:用于存储所述HMAC运算单元生成的消息认证码。
2.如权利要求1所述的装置,其特征在于,所述输入输出接口为AHB接口。
3.如权利要求1所述的装置,其特征在于,所述第一存储单元为FIFO存储器,所述第二存储单元为RAM存储器。
4.如权利要求1所述的装置,其特征在于,所述配置寄存器单元还用于:
从所述模式仲裁单元获取当前的运算状态,通过所述输入输出接口向外部输出所述运算状态。
5.如权利要求1至4任一项所述的装置,其特征在于,所述密钥填充子单元具体用于:
若所述密钥的长度小于所述目标散列函数的明文分组长度,则在所述密钥末尾填充0;
若所述密钥的长度大于所述目标散列函数的明文分组长度,则调用散列算法计算所述密钥的摘要,并在所述摘要末尾填充0。
6.一种基于HMAC算法的消息认证码生成方法,其特征在于,包括:
通过输入输出接口获取外部输入的密钥和待认证消息,并存储至第一存储单元;
利用配置寄存器单元通过所述输入输出接口获取外部输入的配置参数,将所述配置参数转换为硬件逻辑可识别的有效信息,并将所述有效信息发送至模式仲裁单元;
利用所述模式仲裁单元,根据所述有效信息确定目标散列函数的标识信息,将所述目标散列函数的标识信息发送至HMAC运算单元;控制所述第一存储单元将所述密钥和所述待认证消息发送至所述HMAC运算单元;
利用所述HMAC运算单元,根据所述标识信息确定目标散列函数,对所述密钥进行填充,得到目标密钥;
对所述目标密钥和预先设置的常数IPAD进行异或运算,将异或运算的结果与所述待认证消息进行拼接,并利用所述目标散列函数对拼接结果进行运算,得到第一运算结果;同时,对所述目标密钥和预先设置的常数OPAD进行异或运算,利用所述目标散列函数对异或运算的结果进行运算,得到第二运算结果;
利用所述目标散列函数,根据所述第一运算结果和所述第二运算结果,生成消息认证码,其中所述HMAC运算单元用于存储HMAC算法的控制逻辑以及多种散列函数的控制逻辑;
将所述HMAC运算单元生成的消息认证码存储至第二存储单元。
7.如权利要求6所述的方法,其特征在于,还包括:
利用配置寄存器单元从所述模式仲裁单元获取当前的运算状态,通过所述输入输出接口向外部输出所述运算状态。
8.如权利要求7所述的方法,其特征在于,所述对所述密钥进行填充,得到目标密钥,包括:
若所述密钥的长度小于所述目标散列函数的明文分组长度,则在所述密钥末尾填充0;
若所述密钥的长度大于所述目标散列函数的明文分组长度,则调用散列算法计算所述密钥的摘要,并在所述摘要末尾填充0。
CN202010783318.7A 2020-08-06 2020-08-06 一种基于hmac算法的消息认证码生成装置及方法 Active CN111953497B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010783318.7A CN111953497B (zh) 2020-08-06 2020-08-06 一种基于hmac算法的消息认证码生成装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010783318.7A CN111953497B (zh) 2020-08-06 2020-08-06 一种基于hmac算法的消息认证码生成装置及方法

Publications (2)

Publication Number Publication Date
CN111953497A CN111953497A (zh) 2020-11-17
CN111953497B true CN111953497B (zh) 2023-07-14

Family

ID=73333359

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010783318.7A Active CN111953497B (zh) 2020-08-06 2020-08-06 一种基于hmac算法的消息认证码生成装置及方法

Country Status (1)

Country Link
CN (1) CN111953497B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704791B (zh) * 2021-09-01 2024-03-15 北京兆芯电子科技有限公司 处理器、以及哈希信息认证码编码方法
CN115442026B (zh) * 2022-11-07 2023-03-24 苏州浪潮智能科技有限公司 一种hmac算法处理系统、方法、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227286A (zh) * 2008-01-31 2008-07-23 北京飞天诚信科技有限公司 一种生成消息认证码的方法
CN107852331A (zh) * 2015-07-15 2018-03-27 三菱电机株式会社 消息认证码生成装置
CN111052115A (zh) * 2017-09-15 2020-04-21 Arm有限公司 取决于调用路径的认证

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7400722B2 (en) * 2002-03-28 2008-07-15 Broadcom Corporation Methods and apparatus for performing hash operations in a cryptography accelerator

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227286A (zh) * 2008-01-31 2008-07-23 北京飞天诚信科技有限公司 一种生成消息认证码的方法
CN107852331A (zh) * 2015-07-15 2018-03-27 三菱电机株式会社 消息认证码生成装置
CN111052115A (zh) * 2017-09-15 2020-04-21 Arm有限公司 取决于调用路径的认证

Also Published As

Publication number Publication date
CN111953497A (zh) 2020-11-17

Similar Documents

Publication Publication Date Title
CN109951546B (zh) 基于智能合约的事务请求处理方法、装置、设备和介质
US8315381B2 (en) Methods and apparatus performing hash operations in a cryptography accelerator
JP5373026B2 (ja) デジタル署名と公開鍵の促進された検証
US7978851B2 (en) Keystream encryption device, method, and program
CN111953497B (zh) 一种基于hmac算法的消息认证码生成装置及方法
CN110224976B (zh) 一种加密通信方法、装置及计算机可读存储介质
JP2009099151A (ja) 暗号化されたカラムを含むデータベースにおけるクエリーの暗号化変調による使用者クエリー処理装置及び方法
CN113507483B (zh) 即时通讯方法、装置、服务器及存储介质
WO2013180413A1 (ko) 아이디 기반 암호 시스템을 위한 비밀키 생성 장치 및 그 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
CN114662085A (zh) 用于自治系统的后量子安全远程证明
CN114465712A (zh) 一种数据加密方法及装置
JP5261525B2 (ja) スマートカードと通信する装置においてメッセージのハッシュを計算する方法
CN113504894B (zh) 一种随机数产生器、生成伪随机数的方法和一种芯片
CN111225077B (zh) 物联网设备配网方法、装置和系统
US8646066B2 (en) Security protocol control apparatus and security protocol control method
CN116506158A (zh) 基于智慧城市的物联网设备加密传输方法及系统
CN114826591A (zh) 一种跨设备的数据传输方法、系统及终端
CN115909560A (zh) 数据加密方法、解密方法及门锁系统
CN112995210B (zh) 一种数据传输方法、装置及电子设备
JP2000293507A (ja) 有限体演算における表現データ生成装置および方法
CN113922976A (zh) 设备日志传输方法、装置、电子设备及存储介质
CN111931204A (zh) 用于分布式系统的加密去重存储方法、终端设备
CN111510299B (zh) 联合数字签名生成方法、电子设备和计算机可读介质
CN108933950A (zh) 终端标识确定方法及装置、计算机设备及存储介质
CN115664651B (zh) 基于sm9的在线离线加解密方法、系统、设备及介质

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