CN112737767A - 抗差分功耗分析与时间攻击的消息认证码生成方法及系统 - Google Patents
抗差分功耗分析与时间攻击的消息认证码生成方法及系统 Download PDFInfo
- Publication number
- CN112737767A CN112737767A CN202011618891.9A CN202011618891A CN112737767A CN 112737767 A CN112737767 A CN 112737767A CN 202011618891 A CN202011618891 A CN 202011618891A CN 112737767 A CN112737767 A CN 112737767A
- Authority
- CN
- China
- Prior art keywords
- message
- authentication code
- processor
- round
- message authentication
- 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
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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
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
本发明属于信息通信领域,提供了一种抗差分功耗分析与时间攻击的消息认证码生成方法及系统。其中,抗差分功耗分析与时间攻击的消息认证码生成方法包括获取处理器的性能参数;从MAC算法数据库中查找与当前处理器性能参数相匹配的MAC算法;利用输入的消息和查找到的MAC算法,生成相应消息认证码;其中,所述生成消息认证码的过程为:将输入的消息M填充至Hash函数每轮所需消息块大小的整数倍,填充后的消息形式为M||10*,且|M||10*|为Hash函数所需消息块大小的整数倍,由Hash函数输出设定位数比特摘要片段;将输入的密钥用轮函数连续加密,再将每轮的输入异或摘要片段并由轮函数加密,最后再经轮函数连续加密,输出与输入密钥长度相等的抗差分功耗分析与时间攻击的消息认证码。
Description
技术领域
本发明属于信息通信领域,尤其涉及一种抗差分功耗分析与时间攻击的消息认证码生成方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
消息认证码(MAC)是一种非常基础的对称密码原语。在通信过程中,这类方案允许消息的发送方和接收方通过一个共享的密钥K,对双方收发消息的真实性进行验证。
目前,针对如何设计安全高效的消息认证码已有大量的研究。其中,绝大多数是基于分组密码、哈希函数等简单的、安全性得到大量密码分析工作保障的密码学原语设计的,例如CBC-MAC、HMAC、PMAC以及Wegman-Carter型MACs等。一般的,可以用数学方法证明,只要所用简单密码学原语是安全的,则依此种途径建构的消息认证码也是安全的,这称为“可证明安全性”。然而,当部署到实际应用中后,上述“可证明安全”的MACs面临着一种存在于现实世界中但又未反映在经典证明模型中的攻击,即利用已部署密码系统中某些物理信息的泄露进行的侧信道攻击。在侧信道攻击各种类型中,差分功耗分析攻击(DPA)是最强有力的攻击手段之一,攻击者通过测量芯片不同部分的功率水平从而试图确定加密密钥。时间攻击是侧信道攻击中又一重要的攻击手段,攻击者通过分析执行密码算法所需的时间来尝试破坏密码系统。
抵抗此类攻击的方式主要由两种:第一种通过隐藏、掩盖等技术来强化密码算法的实现,但此类方法的缺点在于保护密码原语免受侧信道攻击的开销非常高,并且还取决于密码原语本身;第二种方法通过更改加密协议,使得攻击者无法对密码原语执行某些类型的侧信道攻击。例如,通过密钥更新、抗泄露加密实现来抵抗DPA攻击,通过在算法设计中避免查表操作进而在一定程度上抵抗时间攻击。
发明人发现,现有的MAC算法存在无法抵抗侧信道攻击以及通过隐藏、掩盖等技术强化密码算法实现消耗过高等问题。
发明内容
为了解决上述背景技术中存在的至少一项技术问题,本发明提供一种抗差分功耗分析与时间攻击的消息认证码生成方法及系统,其能够在充分保证实际安全性的前提下,为不同应用场景中不同特性的处理器调取相匹配的MAC算法,从而生成相应消息认证码,使得消息认证码抗差分功耗分析与时间攻击,提高数据传输的安全性。
为了实现上述目的,本发明采用如下技术方案:
本发明的第一个方面提供一种抗差分功耗分析与时间攻击的消息认证码生成方法。
一种抗差分功耗分析与时间攻击的消息认证码生成方法,包括:
获取处理器的性能参数;
从MAC算法数据库中查找与当前处理器性能参数相匹配的MAC算法;
利用输入的消息和查找到的MAC算法,生成相应消息认证码;
其中,所述生成消息认证码的过程为:
将输入的消息M填充至Hash函数每轮所需消息块大小的整数倍,填充后的消息形式为M||10*,且|M||10*|为Hash函数所需消息块大小的整数倍,由Hash函数输出设定位数比特摘要片段;
将输入的密钥用轮函数连续加密,再将每轮的输入异或摘要片段并由轮函数加密,最后再经轮函数连续加密,输出与输入密钥长度相等的抗差分功耗分析与时间攻击的消息认证码。
作为一种实施方式,MAC算法基于Hash-then-PRF结构设计;其中,Hash为Hash函数,PRF为伪随机函数。
作为一种实施方式,使用MJH[E]结构构建Hash函数,其中E为分组密码的加密操作。
作为一种实施方式,根据处理器的性能参数,处理器分为I类处理器、II类处理器和III类处理器;其中,I类处理器为适用于桌面及服务器的处理器,II类处理器为不适用于桌面及服务器但拥有AES-NI指令集的处理器,III类处理器为不适用于桌面及服务器且不含AES-NI指令集的处理器。
作为一种实施方式,与所述I类处理器、II类处理器和III类处理器匹配的MAC算法分别对应的是High-end算法、Low-end-with-NI算法和Low-end-without-NI算法。
作为一种实施方式,在High-end算法中,使用MISTY-R结构构建轮函数;
Low-end-with-NI算法中的轮函数使用AES-NI指令进行操作;
在Low-end-without-NI算法中,使用Chaskey-PI置换构建轮函数。
作为一种实施方式,High-end算法使用AES128的加密操作;
Low-end-with-NI算法使用AES256的加密操作;
Low-end-without-NI算法使用由Chaskey-PI置换构建的Chaskey128加密操作。
本发明的第二个方面提供一种抗差分功耗分析与时间攻击的消息认证码生成系统。
一种抗差分功耗分析与时间攻击的消息认证码生成系统,包括:
性能参数获取模块,其用于获取处理器的性能参数;
MAC算法查找模块,其用于从MAC算法数据库中查找与当前处理器性能参数相匹配的MAC算法;
消息认证码生成模块,其用于利用输入的消息和查找到的MAC算法,生成相应消息认证码;
其中,所述生成消息认证码的过程为:
将输入的消息M填充至Hash函数每轮所需消息块大小的整数倍,填充后的消息形式为M||10*,且|M||10*|为Hash函数所需消息块大小的整数倍,由Hash函数输出设定位数比特摘要片段;
将输入的密钥用轮函数连续加密,再将每轮的输入异或摘要片段并由轮函数加密,最后再经轮函数连续加密,输出与输入密钥长度相等的抗差分功耗分析与时间攻击的消息认证码。
本发明的第三个方面提供一种计算机可读存储介质。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的抗差分功耗分析与时间攻击的消息认证码生成方法中的步骤。
本发明的第四个方面提供一种计算机设备。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的抗差分功耗分析与时间攻击的消息认证码生成方法中的步骤。
与现有技术相比,本发明的有益效果是:
本实施例基于从处理器性能参数获取匹配的MAC算法,利用输入的消息和查找到的MAC算法,生成相应消息认证码;而且在生成消息认证码的过程中,将输入的消息M填充至Hash函数每轮所需消息块大小的整数倍,由Hash函数输出设定位数比特摘要片段;将输入的密钥用轮函数连续加密,再将每轮的输入异或摘要片段并由轮函数加密,最后再经轮函数连续加密,输出与输入密钥长度相等的抗差分功耗分析与时间攻击的消息认证码,这样实现了在充分保证实际安全性的前提下,为不同应用场景中不同特性的处理器生成相应消息认证码,使得消息认证码抗差分功耗分析与时间攻击,提高了数据传输的安全性。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明实施例的MAC算法的整体结构设计;
图2是本发明实施例的MJH[E]结构;
图3(a)是本发明实施例的适用于High-end MAC算法的轮变换结构;
图3(b)是本发明实施例的适用于High-end MAC算法的Hash函数结构;
图4(a)是本发明实施例的适用于Low-end-with-NI MAC算法的轮变换结构;
图4(b)是本发明实施例的适用于Low-end-with-NI MAC算法的Hash函数结构;
图5是本发明实施例的适用于Chaskey-PI置换;
图6是本发明实施例的Chaskey128结构;
图7(a)是本发明实施例的适用于Low-end-without-NI MAC算法的轮变换结构;
图7(b)是本发明实施例的适用于Low-end-without-NI MAC算法的Hash函数结构。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
本发明实施例所涉及的符号说明如下:
0*:任意比特长度的0;
||:字符串连接符;
×:整数乘法;
<<<:将整数向左循环移位;
|M|:消息M所包含的字节个数;
PRF:伪随机函数,对定长输入进行有限的变换后输出相同长度的输出;
AESENC:使用AES-NI指令执行一轮加密操作;
AES128:密钥长度为16字节的AES版本;
AES256:密钥长度为32字节的AES版本;
chaskey():Chaskey-PI置换;
S():将128比特整数,拆分为4个32比特的整数;
I():将4个32比特整数,合并为128比特整数;
σ(x):对整数x中某个比特值进行翻转;
EK(x):使用加密算法对x进行加密,输入密钥为K。
实施例一
为了解决现有的MAC算法存在无法抵抗侧信道攻击以及通过隐藏、掩盖等技术强化密码算法实现消耗过高等问题,本实施例设计了一种抗差分功耗分析与时间攻击的消息认证码生成方法。在该抗差分功耗分析与时间攻击的消息认证码生成方法的具体实施过程中,MAC算法数据库预存有与不同的处理器性能参数相匹配的MAC算法,这样在充分保证实际安全性的前提下,为不同应用场景中不同特性的处理器进行了针对性的设计与优化,使得软件实现达到最优。
本实施例的抗差分功耗分析与时间攻击的消息认证码生成方法的总体思路为:
获取处理器的性能参数;
从MAC算法数据库中查找与当前处理器性能参数相匹配的MAC算法;
利用输入的消息和查找到的MAC算法,生成相应消息认证码。
在具体实施中,所述生成消息认证码的过程为:
将输入的消息M填充至Hash函数每轮所需消息块大小的整数倍,填充后的消息形式为M||10*,且|M||10*|为Hash函数所需消息块大小的整数倍,由Hash函数输出设定位数比特摘要片段;
将输入的密钥用轮函数连续加密,再将每轮的输入异或摘要片段并由轮函数加密,最后再经轮函数连续加密,输出与输入密钥长度相等的抗差分功耗分析与时间攻击的消息认证码。
参照图1,本实施例的MAC算法基于Hash-then-PRF结构设计;其中,Hash为Hash函数,PRF为伪随机函数。
根据处理器的性能参数,本实施例的处理器分为I类处理器、II类处理器和III类处理器;其中,I类处理器为适用于桌面及服务器的处理器,II类处理器为不适用于桌面及服务器但拥有AES-NI指令集的处理器,III类处理器为不适用于桌面及服务器且不含AES-NI指令集的处理器。
具体地,与所述I类处理器、II类处理器和III类处理器匹配的MAC算法分别对应的是High-end算法、Low-end-with-NI算法和Low-end-without-NI算法。
在生成消息认证码的过程中,首先,将输入的消息M填充至Hash函数每轮所需消息块大小的整数倍。填充方式为:在消息M后追加一个比特值“1”及多个比特值“0”。填充后的消息形式为M||10*,且|M||10*|为Hash函数所需消息块大小的整数倍。其中High-end算法以及Low-end-without-NI算法的消息块大小为16字节,Low-end-with-NI算法的消息块大小为32字节。
填充完成,将扩展消息M||10*按Hash函数每轮所需消息块的大小划分为长度相等的n块,即M||10*=m1||m2||…||mn。
对于Hash函数的构建,使用MJH[E]结构,如图2所示,其中E为某种分组密码的加密操作。
例如:High-end算法使用AES128的加密操作;
Low-end-with-NI算法使用AES256的加密操作;
Low-end-without-NI算法使用由Chaskey-PI置换构建的Chaskey128加密操作。
此处需要说明的是,High-end算法、Low-end-with-NI算法和Low-end-without-NI算法也可采用其他现有的加密操作来实现,此处不再累述。
Hash函数输出256比特摘要,High-end算法截取摘要后224比特,Low-end算法只保留摘要后192比特。
获得截取的摘要后,将其划分成长度为δ比特的片段(保留的摘要长度为δ的整数倍)。在计算MAC过程中,将每段比特片段异或至每轮输入的最高或最低δ位。δ值的大小与算法对DPA攻击的抗性相关,δ值越小抗DPA攻击的效果也越好,但随之而来的是算法消耗的增加。经过对比分析δ取不同值时算法的消耗,确定δ=2,从而平衡了算法的效率和安全性。
对于PRF部分的操作:
(1)High-end算法首先将读入的密钥用轮函数连续加密5轮;再将每轮的输入异或摘要片段并由轮函数加密1轮,此部分需112轮;最后再经轮函数连续加密5轮,合计加密122轮。此算法中,使用MISTY-R结构构建轮函数。
(2)Low-end-with-NI算法首先将输入的密钥用轮函数连续加密5轮;再将每轮的输入异或摘要片段并由轮函数加密1轮,此部分需96轮;最后再经轮函数连续加密5轮,合计加密106轮。此算法的轮函数使用AES-NI指令进行操作。
(3)Low-end-without-NI算法将输入的密钥用轮函数连续加密10轮;再将每轮的输入异或摘要片段并由轮函数加密1轮,此部分需96轮;最后再经轮函数连续加密10轮,合计加密116轮。此算法的轮函数利用Chaskey-PI置换构建,如图5所示。
经过Hash与PRF后,得到最终的消息认证码,可根据实际需求进行截断。
下面详细对MAC算法数据库中的三种算法具体生成消息认证码的过程进行描述:
(一)I类处理器对应的High-end算法
Hash步骤如下:
(1)读入消息M,在消息M的最后填充1比特“1”与若干比特“0”,得到扩展消息M||10*。填充0的数目保证扩展消息M||10*的长度为16字节的倍数,即|M||10*|=16n,n为正整数。
(2)按照每个消息块长度为16字节,将扩展消息M||10*划分为n块,即M||10*=m1||m2||…||mn。
(3)Hash函数的轮结构为MJH[AES128],如图3(b)所示。压缩函数MJH[AES128]有三个输入、两个输出。三个输入为:长度为128比特的VLi-1,长度为128比特的VRi-1,长度为128比特的mi;两个输出为:长度为128比特的VLi,长度为128比特的VRi。其中初始输入VL0,VR0均为0128。最后一轮压缩函数的输出VLn||VRn即为获得的256位摘要,保留摘要的后224位。
(4)压缩函数MJH[AES128]执行过程如下(为叙述方便,VL表示VLi-1,VR表示VRi-1,m表示mi):使用128比特整数临时变量var1、var2、var3、var4,常量θ,
①var1=VL⊕m
②var2=σ(var1)
③var3=EVR(var1),var4=EVR(var2)
④var3=var3⊕var1
⑤var4=var4⊕var2
⑥var4=var4×θ
⑦var4=var4⊕var1⊕m。
VLi=var3,VRi=var4为本轮压缩函数的输出。
(5)经过Hash函数,获得长度为224比特摘要h。将h每两比特一组划分为112组,即h=h1||h2||…||h112。
(6)对于PRF,输入长度为256比特的密钥K。首先将密钥K用轮函数处理5轮;其次在接下来的112轮中,每次取一个摘要片段hi与上轮输出(又为本轮输入)的最后两个比特异或,并由轮函数处理1轮;最后对上面117轮所得的结果用轮函数处理5轮。因此PRF共需122轮操作,其中开头5轮与结尾5轮无摘要片段输入,中间112轮每轮有一个摘要片段输入。轮函数的输入输出均为256比特。下面介绍轮函数的实现细节:
(7)轮函数使用MISTY-R结构,如图3(a)所示。
在图3(a)中,密钥K长度为256bit;在计算MAC过程中,将每段比特片段异或至每轮输入的最高或最低δ位,δ值为2;轮函数连续加密轮数r为5;保留比特位数ζ为128。γ为224,γ为异或摘要片段时轮函数加密的轮数与δ值的乘积。
记轮函数的输入为V,且|V|=256。令V=VL||VR,|VL|=|VR|=128。使用128比特整数临时变量var1、var2,Ri为128比特的轮常量(i∈[1,122])。
步骤如下:
①Ri=(0x06060606⊕i)||(0x07070707⊕i)||(0xE1E1E1E1⊕i)||(0xF5F5F5F5⊕i)
②var1=AESENC(AESENC(VR,Ri),0)
③var2=VL⊕var1
轮函数的输出为var1||var2。
(8)此MAC算法输出长度为256比特的消息认证码,可根据具体需求对输出进行截断。
(二)II类处理器对应的Low-end-with-NI算法
Hash步骤如下:
(1)读入消息M,在消息M的最后填充1比特“1”与若干比特“0”,得到扩展消息M||10*。填充0的数目保证扩展消息M||10*的长度为32字节的倍数,即|M||10*|=32n,n为正整数。
(2)按照每个消息块长度为32字节,将扩展消息M||10*划分为n块,即M||10*=m1||m2||…||mn。
(3)Hash函数的轮结构为MJH[AES256],如图4(b)所示。压缩函数MJH[AES256]有三个输入、两个输出。三个输入为:128比特整数VLi-1,128比特整数VRi-1,256比特整数mi;两个输出为:128比特整数VLi,128比特整数VRi。初始输入VL0、VR0均为0128。最后一轮压缩函数的输出VLn||VRn即为获得的256位摘要,只保留摘要的后192位。
(4)压缩函数MJH[AES256]执行如下(为叙述方便,用VL表示VLi-1,VR表示VRi-1;mi=mL||mR,|mL|=|mR|=128):使用128比特整数临时变量var1、var2、var3、var4,常量θ
①var1=VL⊕mL
②var2=σ(var1)
③var3=EVR||mR(var1),var4=EVR||mR(var2)
④var3=var3⊕var1
⑤var4=var4⊕var2
⑥var4=var4×θ
⑦var4=var4⊕var1⊕m
VLi=var3,VRi=var4为本轮压缩函数的输出。
(5)经过Hash函数,获得长度为192比特摘要h。将h每两比特一组划分为96组,即h=h1||h2||…||h96。
(6)对于PRF,输入长度为128比特的密钥K。首先将密钥K用轮函数处理5轮;其次在接下来的96轮中,每次取一个摘要片段hi与上轮输出(又为本轮输入)的最后两个比特异或,并由轮函数处理1轮;最后对上面101轮所得的结果用轮函数处理5轮。因此PRF共需106轮操作,其中开头5轮与结尾5轮无摘要片段输入,中间96轮每轮有一个摘要片段输入。如图4(a)所示,轮函数的输入输出均为128比特,下面介绍轮函数的实现细节:
在图4(a)中,密钥K长度为128bit;在计算MAC过程中,将每段比特片段异或至每轮输入的最高或最低δ位,δ值为2;轮函数连续加密轮数r为5;保留比特位数ζ为128。γ为192,γ为异或摘要片段时轮函数加密的轮数与δ值的乘积。
(7)记轮函数的输入V,|V|=128。Ri为128比特轮常量(i∈[1,96])。步骤如下:
①Ri=(0x06060606⊕i)||(0x07070707⊕i)||(0xE1E1E1E1⊕i)||(0xF5F5F5F5⊕i)
②V=AESENC(V,Ri)
最后轮函数输出V。
(8)此MAC算法输出长度为128比特的消息认证码,可根据具体需求对输出进行截断。
(三)III类处理器对应的Low-end-without-NI算法
Hash步骤如下:
(1)读入消息M,在消息M的最后填充1比特“1”与若干比特“0”,得到扩展消息M||10*。填充0的数目保证扩展消息M||10*的长度为16字节的倍数,即|M||10*|=16n,n为正整数。
(2)按照每个消息块长度为16字节,将扩展消息M||10*划分为n块,即M||10*=m1||m2||…||mn。
(3)Hash函数的轮结构为MJH[chaskey128],如图7(b)所示。
其中,Chaskey128的结构如图6所示。
压缩函数MJH[chaskey128]有三个输入,两个输入。三个输入为:128比特整数VLi-1,128比特整数VRi-1,128比特整数mi;两个输出为:128比特整数VLi,128比特整数VRi。初始输入VL0、VR0均为0128。最后一轮压缩函数输出VLn||VRn即为获得的256位摘要,保留摘要的后192位。接下来先介绍Chaskey-PI置换,再介绍MJH[chaskey128]压缩函数的执行过程。
(4)Chaskey-PI置换读入4个32比特的整数,输出4个32比特整数。记读入的4个32比特整数分别为v0、v1、v2、v3。使用32比特整数临时变量var0、var1、var2、var3。执行步骤如下:
①var1=v1<<<5,var0=v0+v1,var2=v2+v3,var3=v3<<<8
③var0=var0<<<16,var2=var2+var1,var0=var0+var3
④var1=var1<<<7,var3=var3<<<13
⑤var1=var1⊕var2,var3=var3⊕var0,var2=var2<<<16
最后输出四个32比特整数var0、var1、var2、var3
(5)压缩函数MJH[chaskey128]执行如下(为方便叙述,用VL表示VLi-1,VR表示VRi-1,m表示mi):使用128比特整数临时变量var1、var2、var3、var4,常量θ:
②var2=σ(var1)
④var3=I(chaskey(S(var3))),var4=I(chaskey(S(var4)))
⑦var4=var4×θ
VLi=var3,VRi=var4为本轮压缩函数的输出。
(6)经过Hash函数,获得长度为192比特摘要h。将h每两比特一组划分为96组,即h=h1||h2||…||h96。
(7)对于PRF,输入长度为128比特的密钥K。首先将密钥K用轮函数处理10轮;其次在接下来的96轮中,每次取一个摘要片段hi与上轮输出(又为本轮输入)的最后两个比特异或,并由轮函数处理1轮;最后对上述106轮所得结果用轮函数处理10轮。因此PRF共需116轮操作,开头10轮与结尾10轮无摘要片段输入,中间96轮每轮有一个摘要片段输入。轮函数的输入输出均为128比特整数。在此方案中,轮函数为Chaskey-PI置换。如图7(a)所示,其中,密钥K长度为128bit;在计算MAC过程中,将每段比特片段异或至每轮输入的最高或最低δ位,δ值为2;轮函数连续加密轮数r为10;γ为192,保留比特位数ζ为128;γ为异或摘要片段时轮函数加密的轮数与δ值的乘积。
(8)此MAC算法输出长度为128比特的消息认证码,可根据具体需求对输出进行截断。
实施例二
本实施例提供了一种抗差分功耗分析与时间攻击的消息认证码生成系统,包括:
性能参数获取模块,其用于获取处理器的性能参数;
MAC算法查找模块,其用于从MAC算法数据库中查找与当前处理器性能参数相匹配的MAC算法;
消息认证码生成模块,其用于利用输入的消息和查找到的MAC算法,生成相应消息认证码;
其中,所述生成消息认证码的过程为:
将输入的消息M填充至Hash函数每轮所需消息块大小的整数倍,填充后的消息形式为M||10*,且|M||10*|为Hash函数所需消息块大小的整数倍,由Hash函数输出设定位数比特摘要片段;
将输入的密钥用轮函数连续加密,再将每轮的输入异或摘要片段并由轮函数加密,最后再经轮函数连续加密,输出与输入密钥长度相等的抗差分功耗分析与时间攻击的消息认证码。
本实施例的抗差分功耗分析与时间攻击的消息认证生成系统中的各个模块,与实施例一中的抗差分功耗分析与时间攻击的消息认证生成方法中的各个步骤一一对应,其具体实施过程相同,此处不再详述。
实施例三
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一所述的抗差分功耗分析与时间攻击的消息认证码生成方法中的步骤。
实施例四
本实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例一所述的抗差分功耗分析与时间攻击的消息认证码生成方法中的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种抗差分功耗分析与时间攻击的消息认证码生成方法,其特征在于,包括:
获取处理器的性能参数;
从MAC算法数据库中查找与当前处理器性能参数相匹配的MAC算法;
利用输入的消息和查找到的MAC算法,生成相应消息认证码;
其中,所述生成消息认证码的过程为:
将输入的消息M填充至Hash函数每轮所需消息块大小的整数倍,填充后的消息形式为M||10*,且|M||10*|为Hash函数所需消息块大小的整数倍,由Hash函数输出设定位数比特摘要片段;
将输入的密钥用轮函数连续加密,再将每轮的输入异或摘要片段并由轮函数加密,最后再经轮函数连续加密,输出与输入密钥长度相等的抗差分功耗分析与时间攻击的消息认证码。
2.如权利要求1所述的抗差分功耗分析与时间攻击的消息认证码生成方法,其特征在于,MAC算法基于Hash-then-PRF结构设计;其中,Hash为Hash函数,PRF为伪随机函数。
3.如权利要求1或2所述的抗差分功耗分析与时间攻击的消息认证码生成方法,其特征在于,使用MJH[E]结构构建Hash函数,其中E为分组密码的加密操作。
4.如权利要求3所述的抗差分功耗分析与时间攻击的消息认证码生成方法,其特征在于,根据处理器的性能参数,处理器分为I类处理器、II类处理器和III类处理器;其中,I类处理器为适用于桌面及服务器的处理器,II类处理器为不适用于桌面及服务器但拥有AES-NI指令集的处理器,III类处理器为不适用于桌面及服务器且不含AES-NI指令集的处理器。
5.如权利要求4所述的抗差分功耗分析与时间攻击的消息认证码生成方法,其特征在于,与所述I类处理器、II类处理器和III类处理器匹配的MAC算法分别对应的是High-end算法、Low-end-with-NI算法和Low-end-without-NI算法。
6.如权利要求5所述的抗差分功耗分析与时间攻击的消息认证码生成方法,其特征在于,在High-end算法中,使用MISTY-R结构构建轮函数;
Low-end-with-NI算法中的轮函数使用AES-NI指令进行操作;
在Low-end-without-NI算法中,使用Chaskey-PI置换构建轮函数。
7.如权利要求5所述的抗差分功耗分析与时间攻击的消息认证码生成方法,其特征在于,High-end算法使用AES128的加密操作;
Low-end-with-NI算法使用AES256的加密操作;
Low-end-without-NI算法使用由Chaskey-PI置换构建的Chaskey128加密操作。
8.一种抗差分功耗分析与时间攻击的消息认证码生成系统,其特征在于,包括:
性能参数获取模块,其用于获取处理器的性能参数;
MAC算法查找模块,其用于从MAC算法数据库中查找与当前处理器性能参数相匹配的MAC算法;
消息认证码生成模块,其用于利用输入的消息和查找到的MAC算法,生成相应消息认证码;
其中,所述生成消息认证码的过程为:
将输入的消息M填充至Hash函数每轮所需消息块大小的整数倍,填充后的消息形式为M||10*,且|M||10*|为Hash函数所需消息块大小的整数倍,由Hash函数输出设定位数比特摘要片段;
将输入的密钥用轮函数连续加密,再将每轮的输入异或摘要片段并由轮函数加密,最后再经轮函数连续加密,输出与输入密钥长度相等的抗差分功耗分析与时间攻击的消息认证码。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的抗差分功耗分析与时间攻击的消息认证码生成方法中的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一项所述的抗差分功耗分析与时间攻击的消息认证码生成方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011618891.9A CN112737767B (zh) | 2020-12-30 | 2020-12-30 | 抗差分功耗分析与时间攻击的消息认证码生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011618891.9A CN112737767B (zh) | 2020-12-30 | 2020-12-30 | 抗差分功耗分析与时间攻击的消息认证码生成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112737767A true CN112737767A (zh) | 2021-04-30 |
CN112737767B CN112737767B (zh) | 2022-03-15 |
Family
ID=75607958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011618891.9A Active CN112737767B (zh) | 2020-12-30 | 2020-12-30 | 抗差分功耗分析与时间攻击的消息认证码生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112737767B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114513311A (zh) * | 2022-02-25 | 2022-05-17 | 上海芯钛信息科技有限公司 | 一种改进消息认证码算法的方法、装置、设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110051927A1 (en) * | 2009-08-27 | 2011-03-03 | Nxp B.V. | Device for generating a message authentication code for authenticating a message |
US20130195266A1 (en) * | 2012-01-26 | 2013-08-01 | Infineon Technologies Ag | Apparatus and Method for Producing a Message Authentication Code |
CN108028756A (zh) * | 2015-09-28 | 2018-05-11 | 三菱电机株式会社 | 消息认证码生成装置、消息认证码生成方法和消息认证码生成程序 |
-
2020
- 2020-12-30 CN CN202011618891.9A patent/CN112737767B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110051927A1 (en) * | 2009-08-27 | 2011-03-03 | Nxp B.V. | Device for generating a message authentication code for authenticating a message |
US20130195266A1 (en) * | 2012-01-26 | 2013-08-01 | Infineon Technologies Ag | Apparatus and Method for Producing a Message Authentication Code |
CN108028756A (zh) * | 2015-09-28 | 2018-05-11 | 三菱电机株式会社 | 消息认证码生成装置、消息认证码生成方法和消息认证码生成程序 |
Non-Patent Citations (1)
Title |
---|
刘上力: "高级数据加密标准的功耗分析及防范方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114513311A (zh) * | 2022-02-25 | 2022-05-17 | 上海芯钛信息科技有限公司 | 一种改进消息认证码算法的方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112737767B (zh) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Alenezi et al. | Symmetric encryption algorithms: Review and evaluation study | |
US8503670B2 (en) | Parallelizable integrity-aware encryption technique | |
US10009171B2 (en) | Construction and uses of variable-input-length tweakable ciphers | |
US7546461B2 (en) | Strengthening secure hash functions | |
CN110278072A (zh) | 一种16轮sm4-128/128白盒密码实现方法 | |
CN107147487B (zh) | 对称密钥随机分组密码 | |
CN108809626A (zh) | 一种白盒sm4密码算法方案与系统 | |
WO2021129470A1 (zh) | 基于多项式完全同态的二进制数据加密系统及方法 | |
Zhang et al. | LAC: A lightweight authenticated encryption cipher | |
Riman et al. | Comparative analysis of block cipher-based encryption algorithms: a survey | |
Wu et al. | JAMBU lightweight authenticated encryption mode and AES-JAMBU | |
Alemami et al. | Advanced approach for encryption using advanced encryption standard with chaotic map | |
CN102946315B (zh) | 一种采用分组方式构造mac码的方法及系统 | |
CN116846542A (zh) | 一种数据加密和解密方法、装置及电子设备 | |
Amorado et al. | Enhanced data encryption standard (DES) algorithm based on filtering and striding techniques | |
WO2021084507A1 (en) | System and method for encryption and decryption using logic synthesis | |
Achkoun et al. | SPF-CA: A new cellular automata based block cipher using key-dependent S-boxes | |
Andreeva et al. | AES-COPA v. | |
CN112737767B (zh) | 抗差分功耗分析与时间攻击的消息认证码生成方法及系统 | |
Singh et al. | Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish | |
Muhalhal et al. | A hybrid modified lightweight algorithm for achieving data integrity and confidentiality | |
Xingyuan et al. | Cracking and improvement of an image encryption algorithm based on bit-level permutation and chaotic system | |
CN114430549A (zh) | 一种适用于无线通信的白盒加解密方法与装置 | |
Pirzada et al. | The parallel CMAC synthetic initialization vector algorithm implementation on FPGA | |
CN111314051A (zh) | 一种加解密方法和装置 |
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 |