CN114513311A - 一种改进消息认证码算法的方法、装置、设备和介质 - Google Patents
一种改进消息认证码算法的方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN114513311A CN114513311A CN202210182961.3A CN202210182961A CN114513311A CN 114513311 A CN114513311 A CN 114513311A CN 202210182961 A CN202210182961 A CN 202210182961A CN 114513311 A CN114513311 A CN 114513311A
- Authority
- CN
- China
- Prior art keywords
- message
- secret key
- value
- authentication code
- hash
- 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.)
- Granted
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 102
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004364 calculation method Methods 0.000 claims abstract description 26
- 238000012795 verification Methods 0.000 claims abstract description 19
- 238000009795 derivation Methods 0.000 claims abstract description 13
- 238000007781 pre-processing Methods 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 57
- 230000008569 process Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004458 analytical method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- VIEYMVWPECAOCY-UHFFFAOYSA-N 7-amino-4-(chloromethyl)chromen-2-one Chemical compound ClCC1=CC(=O)OC2=CC(N)=CC=C21 VIEYMVWPECAOCY-UHFFFAOYSA-N 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3242—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3226—Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及一种改进消息认证码算法的方法、装置、计算机设备和存储介质。所述方法包括:通过密钥派生函数根据初始秘密密钥得到派生秘密密钥,将原始消息预处理后按预设长度进行等分,将等分后的消息与派生秘密密钥通过组合函数进行处理,得到多个消息子段;将多个消息子段中的各消息子段分别作为消息验证算法各次迭代的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于原始消息的计算结果。本发明更好地保护了秘密密钥,算法实现安全性得以大大提升。
Description
技术领域
本申请涉及安全算法技术领域,特别是涉及一种改进消息认证码算法的方法、装置、设备和介质。
背景技术
消息认证码MAC(Message Authentication Code)是用来验证消息完整性的一组校验值,而消息认证码算法则是结合了密码算法(通常选用哈希算法或分组密码算法)和秘密加密密钥来构造的一种特定计算方式,它能有效验证消息数据段的真实性。常用的消息认证码算法有HMAC\CMAC等,它被广泛应用于芯片安全启动、远程登录认证等场景。消息认证码算法通常需要考虑对使用的密钥实行安全保护,比如保障密钥存储过程及使用过程中的安全性。
经典的消息认证码算法结构可能借助侧信道分析的方法来获取到密钥信息,从而造成消息认证过程的真实性无法有效得到保障。例如,在芯片安全启动中应用消息认证码算法对主程序进行验证时,如果消息认证码算法密钥在存储或使用过程中被泄露,将进一步使得代码恶意植入或代码篡改成为可能,将造成芯片使用过程中的潜在安全隐患。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高芯片使用安全性的改进消息认证码算法的方法、装置、计算机设备和存储介质。
一种改进消息认证码算法的方法,所述方法包括:
获取初始秘密密钥和原始消息;
通过密钥派生函数根据所述初始秘密密钥得到派生秘密密钥,将所述原始消息预处理后按预设长度进行等分,将等分后的消息与所述派生秘密密钥通过组合函数进行处理,得到多个消息子段;
将所述多个消息子段中的各消息子段分别作为消息验证算法各次迭代的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于所述原始消息的计算结果。
在其中一个实施例中,还包括:当消息验证算法为HMAC算法时,将所述多个消息子段中的各消息子段分别作为消息验证算法各次杂凑函数的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于所述原始消息的HMAC值。
在其中一个实施例中,还包括:对所述原始消息进行填充,以使填充后的消息长度为预设长度的整数倍;
将填充后的消息按所述预设长度进行等分。
在其中一个实施例中,还包括:将等分后的每个消息与所述派生秘密密钥按位进行合并;
将合并后的每个消息按特定规则打乱各个位的次序后,得到新的消息子段;
遍历全部等分后的消息,得到多个消息子段。
在其中一个实施例中,还包括:将所述初始秘密密钥与ipad字符串和opad字符串分别进行按位异或操作后,与杂凑函数的初始状态值进行杂凑运算,分别得到第一次杂凑运算的输入值Ki和最后一次杂凑运算的输入值Ko;
根据杂凑函数的初始状态值IV、所述第一次杂凑运算的输入值Ki、所述最后一次杂凑运算的输入值Ko和所述多个消息子段,进行多次杂凑运算迭代;其中,第一次杂凑运算以所述杂凑函数的初始状态值IV和所述第一次杂凑运算的输入值Ki为输入,最后一次杂凑运算以所述杂凑函数的初始状态值IV和所述最后一次杂凑运算的输入值Ko为输入,第一次和最后一次杂凑运算之间的中间次杂凑运算以前一次杂凑运算的输出和各个消息子段为输入;
得到改进消息认证码算法关于所述原始消息的HMAC值。
在其中一个实施例中,还包括:通过存放在只读存储器中的启动代码读取OTP中的初始秘密密钥;
计算所述初始秘密密钥的哈希值,并与OTP中存放的校验值进行比对。
在其中一个实施例中,还包括:计算所述初始秘密密钥的哈希值,并与OTP中存放的校验值进行比对;
若所述初始秘密密钥的哈希值与OTP中存放的校验值比对通过,则通过FLASH中的主程序得到改进消息认证码算法关于所述原始消息的HMAC值。
在其中一个实施例中,还包括:将所述改进消息认证码算法关于所述原始消息的HMAC值与FLASH中存放的认证码进行比对;
若比对通过,则加载主程序运行,实现芯片安全启动。
一种改进消息认证码算法的装置,所述装置包括:
初始化模块,用于获取初始秘密密钥和原始消息;
消息子段获取模块,用于通过密钥派生函数根据所述初始秘密密钥得到派生秘密密钥,将所述原始消息预处理后按预设长度进行等分,将等分后的消息与所述派生秘密密钥通过组合函数进行处理,得到多个消息子段;
计算结果输出模块,用于将所述多个消息子段中的各消息子段分别作为消息验证算法各次迭代的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于所述原始消息的计算结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取初始秘密密钥和原始消息;
通过密钥派生函数根据所述初始秘密密钥得到派生秘密密钥,将所述原始消息预处理后按预设长度进行等分,将等分后的消息与所述派生秘密密钥通过组合函数进行处理,得到多个消息子段;
将所述多个消息子段中的各消息子段分别作为消息验证算法各次迭代的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于所述原始消息的计算结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取初始秘密密钥和原始消息;
通过密钥派生函数根据所述初始秘密密钥得到派生秘密密钥,将所述原始消息预处理后按预设长度进行等分,将等分后的消息与所述派生秘密密钥通过组合函数进行处理,得到多个消息子段;
将所述多个消息子段中的各消息子段分别作为消息验证算法各次迭代的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于所述原始消息的计算结果。
上述改进消息认证码算法的方法、装置、计算机设备和存储介质,通过密钥派生函数根据初始秘密密钥得到派生秘密密钥,将原始消息预处理后按预设长度进行等分,将等分后的消息与派生秘密密钥通过组合函数进行处理,得到多个消息子段;将多个消息子段中的各消息子段分别作为消息验证算法各次迭代的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于原始消息的计算结果。由于对原始消息段进行变换,使得直接参与杂凑函数计算的消息输入与外部可控的消息输入不一致,从而无法通过直接构造一阶DPA/CPA等简单的侧信道分析模型进行信息分析;另外,虽然组合函数操作中不存在复杂计算逻辑或非线性变换机制,但组合函数运算带来的侧信道信息泄露在整个芯片运行过程中的泄露中占比极少,实际场景中难以有效捕获和提取;因此,对本发明所改进的消息认证码算法难以开展侧信道分析,本发明更好地保护了秘密密钥,算法实现安全性得以大大提升。
附图说明
图1为一个实施例中改进消息认证码算法的方法的流程示意图;
图2为一个实施例中原始消息段变换示意图;
图3为一个实施例中改进消息认证码算法的结构示意图;
图4为一个实施例中基于该改进算法在芯片安全启动中的应用方案示意图;
图5为一个实施例中改进消息认证码算法的装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种改进消息认证码算法的方法,包括以下步骤:
步骤102,获取初始秘密密钥和原始消息。
假定消息认证码算法的初始秘密密钥为K,原始消息为m=(m1,m2,···mn-1,mn)。
步骤104,通过密钥派生函数根据初始秘密密钥得到派生秘密密钥,将原始消息预处理后按预设长度进行等分,将等分后的消息与派生秘密密钥通过组合函数进行处理,得到多个消息子段。
在密码学中,密钥派生函数是一种加密散列函数,它使用伪随机函数从一个秘密值(如主密钥、密码或密码短语)中派生出一个或多个秘密密钥。
具体地,如图2所示,通过密钥派生函数d{}根据初始秘密密钥K得到派生秘密密钥K′,考虑到原始消息m可能没法恰好分成整数组,可能需要对原始消息进行填充,比如在其后面添加若干位的0或1构成特定长度L的整数倍,然后将填充后的原始消息按长度L进行等分,将等分后的消息mi与派生秘密密钥K′通过组合函数c{}进行处理,得到多个消息子段mi′。
步骤106,将多个消息子段中的各消息子段分别作为消息验证算法各次迭代的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于原始消息的计算结果。
本发明中计算消息子段的算法可应用于HMAC算法中,也同样适用于其它经典的消息认证码算法,如CMAC等。
上述改进消息认证码算法的方法中,通过密钥派生函数根据初始秘密密钥得到派生秘密密钥,将原始消息预处理后按预设长度进行等分,将等分后的消息与派生秘密密钥通过组合函数进行处理,得到多个消息子段;将多个消息子段中的各消息子段分别作为消息验证算法各次迭代的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于原始消息的计算结果。由于对原始消息段进行变换,使得直接参与杂凑函数计算的消息输入与外部可控的消息输入不一致,从而无法通过直接构造一阶DPA/CPA等简单的侧信道分析模型进行信息分析;另外,虽然组合函数操作中不存在复杂计算逻辑或非线性变换机制,但组合函数运算带来的侧信道信息泄露在整个芯片运行过程中的泄露中占比极少,实际场景中难以有效捕获和提取;因此,对本发明所改进的消息认证码算法难以开展侧信道分析,本发明更好地保护了秘密密钥,算法实现安全性得以大大提升。
在其中一个实施例中,还包括:当消息验证算法为HMAC算法时,将多个消息子段中的各消息子段分别作为消息验证算法各次杂凑函数的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于原始消息的HMAC值。
在HMAC算法中,杂凑函数目的是将任意长度的报文m压缩成指定长度的数据f(m)。具体地,如图3所示,将变换后的新消息段作为杂凑函数f{}的输入,将初始秘密密钥与ipad字符串和opad字符串分别进行按位异或操作后,与杂凑函数的初始状态值进行杂凑运算,分别得到第一次杂凑运算的输入值Ki和最后一次杂凑运算的输入值Ko,即其中,ipad和opad为两个固定的字符串,分别为B字节重复的0x36,B字节重复的0x5C。根据杂凑函数的初始状态值IV、第一次杂凑运算的输入值Ki、最后一次杂凑运算的输入值Ko和多个消息子段,进行多次杂凑运算迭代;其中,第一次杂凑运算以杂凑函数的初始状态值IV和第一次杂凑运算的输入值Ki为输入,最后一次杂凑运算以杂凑函数的初始状态值IV和最后一次杂凑运算的输入值Ko为输入,第一次和最后一次杂凑运算之间的中间次杂凑运算以前一次杂凑运算的输出和各个消息子段为输入;得到改进消息认证码算法关于原始消息的HMAC值。
由于对原始消息段进行变换,使得直接参与杂凑函数f{}计算的消息输入与外部可控的消息输入不一致,从而无法通过直接构造一阶DPA/CPA等简单的侧信道分析模型来分析出Ki和Ko。同时,若考虑先对K′进行侧信道分析,由于组合函数c{}操作中不存在复杂计算逻辑或非线性变换机制,组合函数运算带来的侧信道信息泄露在整个芯片运行过程中的泄露中占比极少,实际场景中难以有效捕获和提取。并且对整个改进后的消息认证码算法来说,若进一步分析Ki和Ko,则需要用二阶DPA/CPA等复杂侧信道模型才存在理论上的实施可能性,分析代价将指数级增加,在实际场景中难以开展有效的分析。综上,若对改进后的消息认证码算法结构开展侧信道分析将会变得很困难。分析者没法得到秘密密钥,从而也就没法进一步伪造HMAC值,算法实现安全性得以大大提升。
在其中一个实施例中,还包括:对原始消息进行填充,以使填充后的消息长度为预设长度的整数倍;将填充后的消息按预设长度进行等分。
在其中一个实施例中,还包括:将等分后的每个消息与派生秘密密钥按位进行合并;将合并后的每个消息按特定规则打乱各个位的次序后,得到新的消息子段;遍历全部等分后的消息,得到多个消息子段。
在其中一个实施例中,该专利提出了基于该改进算法在芯片安全启动中的应用方案示例,如图4所示,通过存放在只读存储器中的启动代码读取OTP中的初始秘密密钥;计算初始秘密密钥的哈希值,并与OTP中存放的校验值进行比对,若初始秘密密钥的哈希值与OTP中存放的校验值比对通过,则通过FLASH中的主程序得到改进消息认证码算法关于原始消息的HMAC值。将改进消息认证码算法关于原始消息的HMAC值与FLASH中存放的认证码进行比对;若比对通过,则加载主程序运行,实现芯片安全启动。
OTP(One Time Password)为一次性密码,又称“一次性口令”,是指只能使用一次的密码。
由于基于该改进的消息认证码算法,使得密钥在使用过程能更好抵抗侧信道分析,并且初始秘密密钥存放在芯片的安全存储区中,OTP为一次可编程单元,能有效抵抗物理篡改,同时借助芯片系统存储访问控制机制限制对初始秘密密钥的读取权限,保障了消息认证码算法密钥在存储或使用过程中都具有高安全性,从而提升了芯片启动过程的安全性。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种改进消息认证码算法的装置,包括:初始化模块502、消息子段获取模块504和计算结果输出模块506,其中:
初始化模块502,用于获取初始秘密密钥和原始消息;
消息子段获取模块504,用于通过密钥派生函数根据初始秘密密钥得到派生秘密密钥,将原始消息预处理后按预设长度进行等分,将等分后的消息与派生秘密密钥通过组合函数进行处理,得到多个消息子段;
计算结果输出模块506,用于将多个消息子段中的各消息子段分别作为消息验证算法各次迭代的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于原始消息的计算结果。
计算结果输出模块506还用于当消息验证算法为HMAC算法时,将多个消息子段中的各消息子段分别作为消息验证算法各次杂凑函数的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于原始消息的HMAC值。
消息子段获取模块504还用于对原始消息进行填充,以使填充后的消息长度为预设长度的整数倍;将填充后的消息按预设长度进行等分。
消息子段获取模块504还用于将等分后的每个消息与派生秘密密钥按位进行合并;将合并后的每个消息按特定规则打乱各个位的次序后,得到新的消息子段;遍历全部等分后的消息,得到多个消息子段。
计算结果输出模块506还用于将初始秘密密钥与ipad字符串和opad字符串分别进行按位异或操作后,与杂凑函数的初始状态值进行杂凑运算,分别得到第一次杂凑运算的输入值Ki和最后一次杂凑运算的输入值Ko;根据杂凑函数的初始状态值IV、第一次杂凑运算的输入值Ki、最后一次杂凑运算的输入值Ko和多个消息子段,进行多次杂凑运算迭代;其中,第一次杂凑运算以杂凑函数的初始状态值IV和第一次杂凑运算的输入值Ki为输入,最后一次杂凑运算以杂凑函数的初始状态值IV和最后一次杂凑运算的输入值Ko为输入,第一次和最后一次杂凑运算之间的中间次杂凑运算以前一次杂凑运算的输出和各个消息子段为输入;得到改进消息认证码算法关于原始消息的HMAC值。
初始化模块502还用于通过存放在只读存储器中的启动代码读取OTP中的初始秘密密钥;计算初始秘密密钥的哈希值,并与OTP中存放的校验值进行比对。
初始化模块502还用于计算初始秘密密钥的哈希值,并与OTP中存放的校验值进行比对;若初始秘密密钥的哈希值与OTP中存放的校验值比对通过,则通过FLASH中的主程序得到改进消息认证码算法关于原始消息的HMAC值。
初始化模块502还用于将改进消息认证码算法关于原始消息的HMAC值与FLASH中存放的认证码进行比对;若比对通过,则加载主程序运行,实现芯片安全启动。
关于改进消息认证码算法的装置的具体限定可以参见上文中对于改进消息认证码算法的方法的限定,在此不再赘述。上述改进消息认证码算法的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种改进消息认证码算法的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种改进消息认证码算法的方法,其特征在于,所述方法包括:
获取初始秘密密钥和原始消息;
通过密钥派生函数根据所述初始秘密密钥得到派生秘密密钥,将所述原始消息预处理后按预设长度进行等分,将等分后的消息与所述派生秘密密钥通过组合函数进行处理,得到多个消息子段;
将所述多个消息子段中的各消息子段分别作为消息验证算法各次迭代的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于所述原始消息的计算结果。
2.根据权利要求1所述的方法,其特征在于,将所述多个消息子段中的各消息子段分别作为消息验证算法各次迭代的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于所述原始消息的计算结果,包括:
当消息验证算法为HMAC算法时,将所述多个消息子段中的各消息子段分别作为消息验证算法各次杂凑函数的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于所述原始消息的HMAC值。
3.根据权利要求2所述的方法,其特征在于,将所述原始消息预处理后按预设长度进行等分,包括:
对所述原始消息进行填充,以使填充后的消息长度为预设长度的整数倍;
将填充后的消息按所述预设长度进行等分。
4.根据权利要求3所述的方法,其特征在于,将等分后的消息与所述派生秘密密钥通过组合函数进行处理,得到多个消息子段,包括:
将等分后的每个消息与所述派生秘密密钥按位进行合并;
将合并后的每个消息按特定规则打乱各个位的次序后,得到新的消息子段;
遍历全部等分后的消息,得到多个消息子段。
5.根据权利要求4所述的方法,其特征在于,将所述多个消息子段中的各消息子段分别作为消息验证算法各次杂凑函数的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于所述原始消息的HMAC值,包括:
将所述初始秘密密钥与ipad字符串和opad字符串分别进行按位异或操作后,与杂凑函数的初始状态值进行杂凑运算,分别得到第一次杂凑运算的输入值Ki和最后一次杂凑运算的输入值Ko;
根据杂凑函数的初始状态值IV、所述第一次杂凑运算的输入值Ki、所述最后一次杂凑运算的输入值Ko和所述多个消息子段,进行多次杂凑运算迭代;其中,第一次杂凑运算以所述杂凑函数的初始状态值IV和所述第一次杂凑运算的输入值Ki为输入,最后一次杂凑运算以所述杂凑函数的初始状态值IV和所述最后一次杂凑运算的输入值Ko为输入,第一次和最后一次杂凑运算之间的中间次杂凑运算以前一次杂凑运算的输出和各个消息子段为输入;
得到改进消息认证码算法关于所述原始消息的HMAC值。
6.根据权利要求2所述的,其特征在于,所述获取初始秘密密钥,包括:
通过存放在只读存储器中的启动代码读取OTP中的初始秘密密钥;
计算所述初始秘密密钥的哈希值,并与OTP中存放的校验值进行比对。
7.根据权利要求6所述的方法,其特征在于,计算所述初始秘密密钥的哈希值,并与OTP中存放的校验值进行比对,还包括:
计算所述初始秘密密钥的哈希值,并与OTP中存放的校验值进行比对;
若所述初始秘密密钥的哈希值与OTP中存放的校验值比对通过,则通过FLASH中的主程序得到改进消息认证码算法关于所述原始消息的HMAC值。
8.根据权利要求所述的方法,其特征在于,所述通过FLASH中的主程序得到改进消息认证码算法关于所述原始消息的HMAC值,还包括:
将所述改进消息认证码算法关于所述原始消息的HMAC值与FLASH中存放的认证码进行比对;
若比对通过,则加载主程序运行,实现芯片安全启动。
9.一种改进消息认证码算法的装置,其特征在于,所述装置包括:
初始化模块,用于获取初始秘密密钥和原始消息;
消息子段获取模块,用于通过密钥派生函数根据所述初始秘密密钥得到派生秘密密钥,将所述原始消息预处理后按预设长度进行等分,将等分后的消息与所述派生秘密密钥通过组合函数进行处理,得到多个消息子段;
计算结果输出模块,用于将所述多个消息子段中的各消息子段分别作为消息验证算法各次迭代的输入,反复迭代计算,直到遍历完所有消息子段,得到改进消息认证码算法关于所述原始消息的计算结果。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210182961.3A CN114513311B (zh) | 2022-02-25 | 2022-02-25 | 一种改进消息认证码算法的方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210182961.3A CN114513311B (zh) | 2022-02-25 | 2022-02-25 | 一种改进消息认证码算法的方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114513311A true CN114513311A (zh) | 2022-05-17 |
CN114513311B CN114513311B (zh) | 2024-09-03 |
Family
ID=81553280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210182961.3A Active CN114513311B (zh) | 2022-02-25 | 2022-02-25 | 一种改进消息认证码算法的方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114513311B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116633529A (zh) * | 2023-07-25 | 2023-08-22 | 中电信量子科技有限公司 | 采用派生密钥增强白盒sm4密码算法的方法及设备 |
CN117353926A (zh) * | 2023-12-01 | 2024-01-05 | 苏州元脑智能科技有限公司 | 一种基于芯片的sm2算法密码处理方法、装置及设备 |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010046292A1 (en) * | 2000-03-31 | 2001-11-29 | Gligor Virgil Dorin | Authentication method and schemes for data integrity protection |
US20020071552A1 (en) * | 2000-10-12 | 2002-06-13 | Rogaway Phillip W. | Method and apparatus for facilitating efficient authenticated encryption |
JP2003333036A (ja) * | 2002-05-09 | 2003-11-21 | Nippon Telegr & Teleph Corp <Ntt> | メッセージ認証装置、メッセージ認証方法とメッセージ認証プログラムおよび該プログラムを記録したコンピュータ読取り可能な記録媒体 |
US20110051927A1 (en) * | 2009-08-27 | 2011-03-03 | Nxp B.V. | Device for generating a message authentication code for authenticating a message |
WO2011155039A1 (ja) * | 2010-06-10 | 2011-12-15 | 三菱電機株式会社 | メッセージ認証コード演算装置、メッセージ認証コード演算方法およびメッセージ認証コード演算プログラム |
CN102946315A (zh) * | 2012-11-19 | 2013-02-27 | 成都卫士通信息产业股份有限公司 | 一种采用分组方式构造mac码的方法及系统 |
CN103457719A (zh) * | 2013-07-23 | 2013-12-18 | 国家密码管理局商用密码检测中心 | 一种对sm3密码算法hmac模式的侧信道能量分析方法 |
CN106330424A (zh) * | 2015-06-17 | 2017-01-11 | 上海复旦微电子集团股份有限公司 | 基于sm3算法的密码模块的防攻击方法及装置 |
CN106656459A (zh) * | 2016-11-17 | 2017-05-10 | 大唐微电子技术有限公司 | 一种针对sm3‑hmac的侧信道能量分析方法和装置 |
CN107579811A (zh) * | 2017-07-28 | 2018-01-12 | 广州星海集成电路基地有限公司 | 一种基于sm3密码杂凑算法的硬件优化方法 |
CN107852331A (zh) * | 2015-07-15 | 2018-03-27 | 三菱电机株式会社 | 消息认证码生成装置 |
CN108377186A (zh) * | 2018-03-19 | 2018-08-07 | 北京工业大学 | 一种基于tcm的ssl协议 |
CN108599922A (zh) * | 2018-04-26 | 2018-09-28 | 成都盛拓源科技有限公司 | 新型含密钥消息完整性认证码的生成方法 |
KR20200051220A (ko) * | 2018-11-05 | 2020-05-13 | 서강대학교산학협력단 | 분산 환경에서의 메시지 순서 기반의 키 생성 방법 |
CN111386674A (zh) * | 2017-08-28 | 2020-07-07 | 迈锐奥塔企业有限公司 | 通信系统中的终端身份保护方法 |
CN111953488A (zh) * | 2020-08-28 | 2020-11-17 | 南方电网科学研究院有限责任公司 | 一种hmac-sm3算法的密钥获取方法、装置、设备和存储介质 |
CN112054889A (zh) * | 2019-06-06 | 2020-12-08 | 中国科学院苏州纳米技术与纳米仿生研究所 | 消息认证码的生成方法及生成装置、计算机可读存储介质 |
CN112152805A (zh) * | 2020-09-25 | 2020-12-29 | 兴唐通信科技有限公司 | 一种认证加密方法、验证解密方法和通信方法 |
CN112737767A (zh) * | 2020-12-30 | 2021-04-30 | 山东大学 | 抗差分功耗分析与时间攻击的消息认证码生成方法及系统 |
CN113204769A (zh) * | 2020-01-30 | 2021-08-03 | 三星电子株式会社 | 安全设备、电子设备、以及安全启动管理系统 |
-
2022
- 2022-02-25 CN CN202210182961.3A patent/CN114513311B/zh active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010046292A1 (en) * | 2000-03-31 | 2001-11-29 | Gligor Virgil Dorin | Authentication method and schemes for data integrity protection |
US20020071552A1 (en) * | 2000-10-12 | 2002-06-13 | Rogaway Phillip W. | Method and apparatus for facilitating efficient authenticated encryption |
JP2003333036A (ja) * | 2002-05-09 | 2003-11-21 | Nippon Telegr & Teleph Corp <Ntt> | メッセージ認証装置、メッセージ認証方法とメッセージ認証プログラムおよび該プログラムを記録したコンピュータ読取り可能な記録媒体 |
US20110051927A1 (en) * | 2009-08-27 | 2011-03-03 | Nxp B.V. | Device for generating a message authentication code for authenticating a message |
WO2011155039A1 (ja) * | 2010-06-10 | 2011-12-15 | 三菱電機株式会社 | メッセージ認証コード演算装置、メッセージ認証コード演算方法およびメッセージ認証コード演算プログラム |
CN102946315A (zh) * | 2012-11-19 | 2013-02-27 | 成都卫士通信息产业股份有限公司 | 一种采用分组方式构造mac码的方法及系统 |
CN103457719A (zh) * | 2013-07-23 | 2013-12-18 | 国家密码管理局商用密码检测中心 | 一种对sm3密码算法hmac模式的侧信道能量分析方法 |
CN106330424A (zh) * | 2015-06-17 | 2017-01-11 | 上海复旦微电子集团股份有限公司 | 基于sm3算法的密码模块的防攻击方法及装置 |
CN107852331A (zh) * | 2015-07-15 | 2018-03-27 | 三菱电机株式会社 | 消息认证码生成装置 |
CN106656459A (zh) * | 2016-11-17 | 2017-05-10 | 大唐微电子技术有限公司 | 一种针对sm3‑hmac的侧信道能量分析方法和装置 |
CN107579811A (zh) * | 2017-07-28 | 2018-01-12 | 广州星海集成电路基地有限公司 | 一种基于sm3密码杂凑算法的硬件优化方法 |
CN111386674A (zh) * | 2017-08-28 | 2020-07-07 | 迈锐奥塔企业有限公司 | 通信系统中的终端身份保护方法 |
CN108377186A (zh) * | 2018-03-19 | 2018-08-07 | 北京工业大学 | 一种基于tcm的ssl协议 |
CN108599922A (zh) * | 2018-04-26 | 2018-09-28 | 成都盛拓源科技有限公司 | 新型含密钥消息完整性认证码的生成方法 |
KR20200051220A (ko) * | 2018-11-05 | 2020-05-13 | 서강대학교산학협력단 | 분산 환경에서의 메시지 순서 기반의 키 생성 방법 |
CN112054889A (zh) * | 2019-06-06 | 2020-12-08 | 中国科学院苏州纳米技术与纳米仿生研究所 | 消息认证码的生成方法及生成装置、计算机可读存储介质 |
CN113204769A (zh) * | 2020-01-30 | 2021-08-03 | 三星电子株式会社 | 安全设备、电子设备、以及安全启动管理系统 |
CN111953488A (zh) * | 2020-08-28 | 2020-11-17 | 南方电网科学研究院有限责任公司 | 一种hmac-sm3算法的密钥获取方法、装置、设备和存储介质 |
CN112152805A (zh) * | 2020-09-25 | 2020-12-29 | 兴唐通信科技有限公司 | 一种认证加密方法、验证解密方法和通信方法 |
CN112737767A (zh) * | 2020-12-30 | 2021-04-30 | 山东大学 | 抗差分功耗分析与时间攻击的消息认证码生成方法及系统 |
Non-Patent Citations (2)
Title |
---|
周瑞瑞;张博;鱼冰;: "改进的经典信道消息完整性认证方法", 河南科技, no. 18, 25 September 2015 (2015-09-25) * |
殷辉;胡晓宇;: "适用于家庭安全网关的HMAC SHA3算法的硬件设计", 集成电路应用, no. 05, 8 May 2020 (2020-05-08) * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116633529A (zh) * | 2023-07-25 | 2023-08-22 | 中电信量子科技有限公司 | 采用派生密钥增强白盒sm4密码算法的方法及设备 |
CN116633529B (zh) * | 2023-07-25 | 2023-10-31 | 中电信量子科技有限公司 | 采用派生密钥增强白盒sm4密码算法的方法及设备 |
CN117353926A (zh) * | 2023-12-01 | 2024-01-05 | 苏州元脑智能科技有限公司 | 一种基于芯片的sm2算法密码处理方法、装置及设备 |
CN117353926B (zh) * | 2023-12-01 | 2024-02-27 | 苏州元脑智能科技有限公司 | 一种基于芯片的sm2算法密码处理方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114513311B (zh) | 2024-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114513311B (zh) | 一种改进消息认证码算法的方法、装置、设备和介质 | |
US8560845B2 (en) | System and method for tamper-resistant booting | |
KR102182894B1 (ko) | 패스워드 기반의 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 방법 및 인증 방법 | |
US20220019425A1 (en) | Hot updating method of script file package and hot updating device of script file package | |
US11824967B2 (en) | Electronic device using homomorphic encryption and encrypted data processing method thereof | |
US11227037B2 (en) | Computer system, verification method of confidential information, and computer | |
US11741263B1 (en) | Systems and processes for lossy biometric representations | |
CN111475824A (zh) | 数据访问方法、装置、设备和存储介质 | |
CN110768784B (zh) | 密码传输方法、装置、计算机设备和存储介质 | |
JP6884284B2 (ja) | キー付きメッセージ認証コードのホワイトボックス計算 | |
US20240048354A1 (en) | Electronic device using homomorphic encryption and encrypted data processing method thereof | |
CN111614467A (zh) | 系统后门防御方法、装置、计算机设备和存储介质 | |
US9594918B1 (en) | Computer data protection using tunable key derivation function | |
EP3214567B1 (en) | Secure external update of memory content for a certain system on chip | |
CN111628985A (zh) | 安全访问控制方法、装置、计算机设备和存储介质 | |
CN113273132A (zh) | 由反向链接元素保护的区块链 | |
CN110401535B (zh) | 数字证书生成、安全通信、身份认证方法及装置 | |
KR20210072711A (ko) | 사물인터넷 디바이스와 신뢰 서버 간 상호 인증 방법 및 장치 | |
KR102020111B1 (ko) | 해시체인 기반의 일회용 패스워드를 이용한 사용자 인증 방법 및 장치 | |
CN113536287B (zh) | 信息校验方法、系统、计算机设备及存储介质 | |
JP7476982B2 (ja) | 情報秘匿制御装置、情報秘匿装置、情報再構成制御装置、情報再構成装置、情報秘匿システム、情報秘匿制御方法、情報再構成制御方法、情報秘匿制御プログラム、及び情報再構成制御プログラム | |
CN118233095B (zh) | 一种敏感信息保护方法及系统 | |
CN117521104B (zh) | 基于局部线性嵌入的人脸识别安全外包计算方法及系统 | |
CN114817967B (zh) | 一种基于城市大脑的数据安全共享方法及系统 | |
KR102344915B1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |