CN115643003B - 用于侧信道分析的方法及装置 - Google Patents
用于侧信道分析的方法及装置 Download PDFInfo
- Publication number
- CN115643003B CN115643003B CN202211659991.5A CN202211659991A CN115643003B CN 115643003 B CN115643003 B CN 115643003B CN 202211659991 A CN202211659991 A CN 202211659991A CN 115643003 B CN115643003 B CN 115643003B
- Authority
- CN
- China
- Prior art keywords
- round
- key
- encryption algorithm
- aes
- tested
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本申请提供了一种用于侧信道分析的方法及装置。该方法包括:在待测密码设备对第一操作数执行AES加密算法的第N轮加密过程中,获取待测密码设备泄露的中间值,其中,AES加密算法包括基于查找表的AES加密算法,第N轮加密过程不包含列混淆操作;以目标数据长度为单位,根据中间值进行侧信道分析,以推测第N轮加密过程使用的轮密钥,目标数据长度小于第一操作数的数据长度;基于轮密钥,推算AES加密算法的原始密钥。本申请以目标数据长度为单位,推测第N轮加密过程中使用的密钥,相比于传统的对基于查找表的AES加密算法进行侧信道分析时,以第一操作数(例如,32比特)为单位推测轮密钥,有助于降低轮密钥推测的复杂度。
Description
技术领域
本申请涉及信息技术领域,具体涉及一种用于侧信道分析的方法及装置。
背景技术
随着芯片与计算机技术的不断发展,即使是一些低功耗的嵌入式的设备的随机存取存储器(random access memory,RAM)也逐渐增加,其在实现密码算法时为了实现更快的加解密速度通常会使用基于查找表的高级加密标准(advanced encryption standard,AES)算法。而基于查找表的AES加密算法中每个操作数的长度为32bit,相对于对基于8bit的操作数的AES加密算法进行侧信道分析而言,大大增加了侧信道分析的复杂度。
发明内容
本申请实施例致力于提供一种用于侧信道分析的方法及装置,下文从以下几个方面进行介绍。
第一方面,提供了一种用于侧信道分析的方法,包括:在待测密码设备对第一操作数执行AES加密算法的第N轮加密过程中,获取所述待测密码设备泄露的中间值,其中,所述AES加密算法包括基于查找表的AES加密算法,所述第N轮加密过程不包含列混淆操作;以目标数据长度为单位,根据所述中间值进行侧信道分析,以推测所述第N轮加密过程使用的轮密钥,所述目标数据长度小于所述第一操作数的数据长度;基于所述轮密钥,推算所述AES加密算法的原始密钥。
在一种可能的实现方式中,所述以目标数据长度为单位,根据所述中间值进行侧信道分析,以推测所述第N轮加密算法使用的轮密钥,包括:以目标数据长度为单位,基于泄露模型对所述中间值进行能量分析,得到多个子密钥,其中,多个子密钥中的每个子密钥是基于所述待测密码设备对第一操作数中多组目标数据长度的操作数进行加密的过程中泄露的中间值确定的;根据多个子密钥,推测所述第N轮加密过程使用的轮密钥。
在一种可能的实现方式中,所述基于所述轮密钥,推算所述AES加密算法的原始密钥,包括:基于所述轮密钥以及第一逆运算,推算所述AES加密算法的原始密钥,所述第一逆运算为生成所述轮密钥的密钥扩展运算的逆运算。
在一种可能的实现方式中,所述在待测密码设备执行AES加密算法的第N轮加密过程中,获取所述待测密码设备泄露的中间值,包括:在所述待测密码设备执行AES加密算法的第N轮加密过程中,采集所述待测密码设备的能量波形,所述能量波形用于指示所述待测密码设备执行所述第N轮加密过程中的能量变化;对所述能量波形进行分析,以确定所述待测密码设备泄露的中间值。
在一种可能的实现方式中,所述第N轮加密过程为所述AES加密算法的最终轮。
第二方面,提供了一种用于侧信道分析的装置,包括:处理单元,用于在待测密码设备对第一操作数执行AES加密算法的第N轮加密过程中,获取所述待测密码设备泄露的中间值,其中,所述AES加密算法包括基于查找表的AES加密算法,所述第N轮加密过程不包含列混淆操作;所述处理单元,还用于以目标数据长度为单位,根据所述中间值进行侧信道分析,以推测所述第N轮加密过程使用的轮密钥,所述目标数据长度小于所述第一操作数的数据长度;所述处理单元,还用于基于所述轮密钥,推算所述AES加密算法的原始密钥。
在一种可能的实现方式中,所述处理单元还用于:以目标数据长度为单位,基于泄露模型对所述中间值进行能量分析,得到多个子密钥,其中,多个子密钥中的每个子密钥是基于所述待测密码设备对第一操作数中多组目标数据长度的操作数进行加密的过程中泄露的中间值确定的;根据多个子密钥,推测所述第N轮加密过程使用的轮密钥。
在一种可能的实现方式中,所述处理单元还用于:基于所述轮密钥以及第一逆运算,推算所述AES加密算法的原始密钥,所述第一逆运算为生成所述轮密钥的密钥扩展运算的逆运算。
在一种可能的实现方式中,所述处理单元还用于:在所述待测密码设备执行AES加密算法的第N轮加密过程中,采集所述待测密码设备的能量波形,所述能量波形用于指示所述待测密码设备执行所述第N轮加密过程中的能量变化;对所述能量波形进行分析,以确定所述待测密码设备泄露的中间值。
在一种可能的实现方式中,所述第N轮加密过程为所述AES加密算法的最终轮。
第三方面,提供了一种用于侧信道分析的装置,包括:存储器,用于存储指令;处理器,用于执行所述存储器中存储的指令,以执行上述各个方面所述的方法。
第四方面,提供了一种机器可读存储介质,其上存储有用于执行上述各个方面所述的方法的指令。
第五方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
第六方面,提供了一种芯片系统,该芯片系统包括处理器,用于实现上述方面中所涉及的功能,例如,获取,分析,或推算上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存处理器必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
本申请以小于第一操作数的数据长度(即目标数据长度)为单位,推测第N轮加密过程中使用的密钥,相比于传统的对基于查找表的AES加密算法进行侧信道分析时,以第一操作数(例如,32比特)为单位推测轮密钥,有助于降低轮密钥推测的复杂度。
另一方面,第N轮加密过程中不包含列混淆操作,有助于按照目标数据长度对第一操作数进行分组,以避免列混淆操作后将第一操作数进行混淆后,导致无法按照目标数据长度对第一操作数进行分组。
附图说明
图1为本申请实施例适用的AES加密过程的示意图。
图2是本申请实施例的用于侧信道分析的方法的示意性流程图。
图3是本申请另一实施例的用于侧信道分析的方法的示意性流程图。
图4是本申请实施例中采集的能量波形的示意图。
图5是本申请实施例中对能量波形进行预处理后的能量波形的示意图。
图6是本申请实施例中对能量波形进行相关能量分析后得到的结果图。
图7是本申请实施例的用于侧信道分析的装置的示意图。
图8是本申请另一实施例的用于侧信道分析的装置的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。为了便于理解本申请,下文先结合图1介绍本申请实施例涉及的术语。
AES
密码学中的AES又称Rijndael加密法,是美国联邦政府采用的一种分组加密标准,也是DES算法的替代者,当今最流行的对称加密算法之一,其中,对称加密可以理解为加密和解密数据时需要使用相同的密钥。
AES是一种分组密码。分组密码顾名思义是把明文以组为单位进行拆分,拆分后的每组明文的长度相等。如此,密码设备可以每次加密一组明文,直到将整个明文加密完成得到多组密文(又称“密文块”)。之后,密码设备(Cryptographic Equipment )可以再将多个密文块拼接起来,形成密文。
目前,在AES标准规范中,分组长度可以是128位,也就是说,每个分组可以包含16个字节(每个字节8位)的明文。相应地,密钥的长度可以128位、192位或256位等。在一些实现方式中,针对不同的密钥的长度,推荐的加密轮数可以不同。例如,针对长度为128位的密钥,推荐的加密轮数可以为10轮。例如,针对长度为192位的密钥,推荐的加密轮数可以为11轮。例如,针对长度为256位的密钥,推荐的加密轮数可以为14轮。
如上文介绍,AES加密过程中可以包括多轮加密过程,不同的阶段的加密轮包括的处理步骤可以不同。通常,按照处理步骤不同,可以将加密轮分为初始轮(又称为“第0轮”)、普通轮以及最终轮。为了便于理解,下文结合图1介绍AES加密过程。
参见图1所示,在初始轮中,通常可以包括轮密钥加( AddRoundKey )操作。在普通轮中,通常可以包括字节代换(SubBytes)操作、行移位(ShiftRows)操作、列混淆(MixColumns)操作、以及轮密钥加操作。在最终轮中,通常可以包括字节代换操作、行移位操作、以及轮密钥加操作。为了便于理解,下文对上述加密过程中涉及的操作进行介绍。
轮密钥加操作
对于初始轮的轮密钥加操作而言,可以理解为是将明文与密钥之间进行异或操作。在一些实现方式中,轮密钥加操作使用的密钥可以包括原始密钥。对于除初始轮之外的其他轮(例如,普通轮或最终轮)中的轮密钥加操作而言,使用的轮密钥可以是基于原始密钥得到的。在一些实现方式中,轮密钥可以是通过对原始密钥进行密钥扩展得到的。其中,密钥扩展例如可以包括密钥编排算法。
字节代换操作
在一些实现方式中,字节代换操作可以理解为一个查表操作。在AES中,定义了一个S盒和逆S盒。其中,S盒用于加密;逆S盒用于解密。在一些实现方式中,可以状态矩阵的元素中的高4位作为行值,低4位作为列值,取出S盒或者逆S盒中对应的行的元素作为输出。需要说明的是,上述状态矩阵可以理解为是对明文进行某些操作后得到的。
行移位操作
在一些实现方式中,行移位操作可以理解为是一个简单的左循环移位操作。以对状态矩阵进行行移位操作为例,状态矩阵中不同的行可以左移的字节数量不同。例如,针对状态矩阵的第0行,可以左移0字节。针对状态矩阵的第1行,可以左移1字节。针对状态矩阵的第2行,可以左移2字节依次类推。
相应地,如果是解密过程中,可以通过右移作为左移的逆变换。其中,右移操作的字节数可以参见左移操作的字节数。例如,针对状态矩阵的第0行执行左移操作时移动0字节,相应地,针对状态矩阵的第0行执行右移操作时可以移动0字节。又例如,针对状态矩阵的第1行执行左移操作时移动1字节,相应地,针对状态矩阵的第1行执行右移操作时可以移动1字节,以此类推。
列混淆操作
在一些实现方式中,列混合操作可以通过矩阵相乘来实现。经行移位操作后的状态矩阵可以与固定的矩阵相乘,得到混淆后的状态矩阵。其中,矩阵元素的乘法和假发都是定义在基于有限域GF(28)上的二元运算,这种二元运算的加法等价于两个字节的异或,乘法则相对比较复杂。对于一个8位的二进制数来说,有限域上的乘法乘以(00000010)等价于左移1位(低位补0)后,再根据情况(二进制的最高位是否为0)同(00011011)进行异或运算。
相应地,在解密过程中,可以通过上述固定矩阵的逆变换的矩阵,与对状态矩阵相乘,以实现上述列混淆操作的逆变换。
随着AES 的发展,AES在软件层面和硬件层面都已经有了很多种实现方式。目前,比较流行的是实现方式是一种基于查找表的快速软件实现方案。
查表法的核心思想是将字节代换操作、行移位操作和列混淆操作中的一种或多种融合为查找表。每个查找表的大小是32 bits(4字节)乘以256项,一般称为T盒(T-Box)或T表。在一些实现方式中,加密过程可以包括4个表(用“Te”表示),解密过程可以包括4个表(用“Td”表示),共8个查找表。这样,每一轮的操作都可以通过16次查表产生。虽然一轮就要经历16次查表,但这都简化了伽罗瓦域上的计算操作和矩阵乘法操作,对于计算机程序而言,这是更快的。当然,在AES加密解密过程中还有S盒和逆向S盒两个表,这两个表相对于T表而言比较小,其大小为8 bits(1字节)乘以256项。
侧信道分析
目前,加密算法(例如,AES加密算法)都是基于密码设备中的芯片实现的。然而,芯片在运行的时候,由于数据或者逻辑的不同,内部的晶体管通断是有区别的。侧信道分析正是利用了这种区别来确定程序内部的数据或者指令。
目前,已知技术中表明使用相关系数能够较好的描绘出数据之间的线性关系,并且给出了对应的实验证明。并且目前的相关系数理论十分完善,因此在实施差分能量分析时使用相关系数进行数学模型的建立数学模型变成了一种非常好的选择。以 AES 算法为例,可以针对AES 算法的S盒输出位置使用相关能量分析的方法。目前,如果想要实施相关能量攻击,需要一个固定未知的数(通常来讲是密钥)和一个随机已知的数(通常来讲是明文)进行直接或间接的运算,通过运算过程中的中间值的泄露,找到泄露值与未知数之间的关系,从而恢复密钥。
在执行相关能量分析时通常会与泄露模型相结合,通常来讲密码设备的能量消耗
会与不同的操作和操作数相关。比较常见的泄露模型例如可以包括汉明重量模型,其中a,b表示系数,x表示操作数,表示操作数中1bit的数量,T表示能
量消耗。因此,我们需要研究与之间的关系。通常传统的AES密码实现时x通常为
8bit的数字,这是由于AES被设计之初,8位的处理器是当时的主流处理器,其中基于S盒的
字节代换操作可以作为侧信道分析的重点。
目前,按照侧信道分析中使用的数学分析手段,可将其分为简单能量分析(simplepower analysis)、差分能量分析(differential power analysis)、相关能量分析(correlation power analysis)、碰撞攻击(collision attack)、模板攻击(templateattack)、互信息分析(mutual information analysis)等。
随着芯片与计算机技术的不断发展,即使是一些低功耗的嵌入式的设备的随机存取存储器(random access memory,RAM)也逐渐增加,其在实现密码算法时为了实现更快的加解密速度通常会使用上文介绍的基于查找表的AES加密算法。而基于查找表的AES加密算法中每个操作数的长度为32bit,相对于对基于8bit的操作数的AES加密算法进行侧信道分析而言,大大增加了侧信道分析的复杂度。
因此,本申请实施例提供了一种用于侧信道分析的方法,有助于降低对基于查找表的AES加密算法进行侧信道分析时的复杂度。为了便于理解,下文结合图2介绍本申请实施例的用于侧信道分析的方法。应理解,图2所示的方法可以由计算设备执行,该计算设备可以用于执行侧信道分析,例如,能量分析攻击等。因此,该计算设备又可以称为“攻击设备”。
图2是本申请实施例的用于侧信道分析的方法的示意性流程图,图2所示的方法包括步骤S210至步骤S230。
在步骤S210中,在待测密码设备对第一操作数执行AES加密算法的第N轮加密过程中,获取待测密码设备泄露的中间值。
在一些实现方式中,上述AES加密算法包括基于查找表的AES加密算法,或者说基于T表的AES加密算法。相应地,第一操作数的长度可以为上文介绍的32比特。
在一些实现方式中,上述第N轮加密过程不包含列混淆操作。例如,可以是AES加密算法的最终轮。当然,在本申请实施例中上述第N轮加密过程还可以是AES加密算法中其他不包含列混淆操作的加密过程,例如,初始轮轮密钥加。本申请实施例对此不作限定。
在步骤S220中,以目标数据长度为单位,根据中间值进行侧信道分析,以推测第N轮加密过程使用的轮密钥。
在一些实现方式中,目标数据长度小于第一操作数的数据长度。也即是说,可以将第一操作数按照目标数据长度进行分块得到分块数据,并根据每个分块数据对应的中间值进行侧信道分析,以推测每个分块数据对应的密钥,最后,将每个分块数据对应的密钥进行组合,得到上述轮密钥。其中,每个分块数据对应的密钥可以理解为在对每个分块数据进行加密的过程中,基于中间值推算的密钥。
需要说明的是,在本申请实施例中,基于目标数据长度对第一操作数进行分块,得到的多个分块数据之间数据长度可以是相同的。以第一操作数的数据长度为32比特为例,目标数据长度为8比特时,第一操作数可以被分为4个分块数据。当然,在本申请实施例中,多个分块数据中部分或全部分块数据的数据长度可以是不同的。例如,以第一操作数的数据长度为32比特为例,目标数据长度为9比特时,第一操作数可以被分为4个分块数据,其中,前3个分块数据的数据长度可以为9比特,第4个分块数据的数据长度可以为5比特。
另外,在本申请实施例中,每个分块数据在第一操作数中的位置是一定的,因此,基于每个分块数据推算的密钥在轮密钥中的位置也是一定的,因此,可以基于多个分块数据对应的密钥进行组合,得到轮密钥。
在步骤S230中,基于轮密钥推算AES加密算法的原始密钥。
目前,AES加密算法中使用的轮密钥通常是基于原始密钥得到的。在一些实现方式中,可以基于密钥扩展算法对原始密钥进行密钥扩展,以得到AES加密算法中的轮密钥。其中,密钥扩展算法例如可以包括字循环、字节代换、轮常量异或中的一种或多种。相应地,在另一些实现方式中,可以基于密钥扩展算法的逆运算由轮密钥推出原始密钥,具体的推算方式将在下文结合“第一逆运算”进行介绍。
本申请以小于第一操作数的数据长度(即目标数据长度)为单位,推测第N轮加密过程中使用的密钥,相比于传统的对基于查找表的AES加密算法进行侧信道分析时,以第一操作数(例如,32比特)为单位推测轮密钥,有助于降低轮密钥推测的复杂度。
另一方面,第N轮加密过程中不包含列混淆操作,有助于按照目标数据长度对第一操作数进行分组,以避免列混淆操作后将第一操作数进行混淆后,导致无法按照目标数据长度对第一操作数进行分组。
在一些实现方式中,可以基于能量分析结合泄露模型,对中间值进行侧行信道分析,以推测第N轮加密过程使用的轮密钥。即,上述步骤S220包括:以目标数据长度为单位,基于泄露模型对中间值进行能量分析,得到多个子密钥,其中,多个子密钥中的每个子密钥是基于待测密码设备对第一操作数中多组目标数据长度的操作数进行加密的过程中泄露的中间值确定的;根据多个子密钥,推测第N轮加密过程使用的轮密钥。
上述多个子密钥中的每个子密钥是基于待测密码设备对第一操作数中多组目标数据长度的操作数进行加密的过程中泄露的中间值确定的,可以理解为,将第一操作数按照目标数据长度分为多组数据,密码设备在对多组数据中的每组数据进行加密过程中泄露的中间值,可以用于推测对每组数据加密使用的子密钥。之后,可以对多个子密钥进行组合,得到第N轮加密过程使用的轮密钥。
在一些实现方式中,可以基于指示第N轮加密过程中的能量变化的能量变化波形,确定待测密码设备的泄露的中间值。即上述在待测密码设备执行AES加密算法的第N轮加密过程中,获取待测密码设备泄露的中间值,包括:在待测密码设备执行AES加密算法的第N轮加密过程中,采集待测密码设备的能量波形,能量波形用于指示待测密码设备执行第N轮加密过程中的能量变化;对能量波形进行分析,以确定待测密码设备泄露的中间值。下文将结合图4~图6介绍,基于能量波形确定泄露的中间值的方法,为了简洁在此不再赘述。
在一些实现方式中,上述泄露模型可以包括汉明重量模型和/或汉明距离模型。以泄露模型包括汉明重量模型和汉明距离模型为例,泄露位置可以为基于S盒的字节变换,相应地,泄露的中间值例如可以包括S盒输出的汉明重量以及S盒的输入数据和输出数据之间的汉明距离等。
在另一些实现方式中,上述能量波形可以是基于完全随机的一个或多个明文得到的一条或多条能量波形。例如,可以将M条完全随机的明文输入上述密码设备,相应地,密码设备可以用固定的轮密钥对明文进行加密,在加密的过程中,可以针对每条明文采集其对应的能量波形,其中,M为正整数。
当然,在本申请实施例中除了使用基于能量变化的侧信道分析之外,还可以适用其他侧信道分析,例如,基于电磁辐射的侧信道分析,基于中距离电磁与声音的侧信道分析等,本申请实施例对此不作限定。
如上文介绍,可以基于密钥扩展算法的逆运算(又称第一逆运算)推算AES加密算法的原始密钥。即,上述步骤S230包括:基于轮密钥以及第一逆运算,推算AES加密算法的原始密钥。
例如,已知AES密码算法的第一轮的轮密钥为 45 64 71 B0 12 94 68 A6 82 BA7B 26 2E 7B 7C 9B,那么可以通过以下方式计算AES的原始密钥。其中,原始密钥表示为W[0]、W[1] 、W[2]以及W[3],令W[4]= 45 64 71 B0, W[5]= 12 94 68 A6, W[6]= 82 BA 7B26, W[7]= 2E 7B 7C 9B。
由于密钥扩展算法中W[0]=W[4] ⨁T(W[3]),此时,如果需要计算W[0]则需要先计算W[3],而密钥扩展算法中W[3]=W[7] ⨁ W[6] ,则可以逆推出W[3]= 2E 7B 7C 9B ⨁ 82BA 7B 26=AC C1 07 BD。相应地,逆推出W[0]= 3C A1 0B 21。由于密钥扩展算法中W[2]=W[5] ⨁ W[6] ,则逆推出W[2] = 12 94 68 A6 ⨁ 82 BA 7B 26 = 90 2E 13 80。由于密钥扩展算法中W[1] = W[5] ⨁ W[4] ,则逆推出W[1] = 12 94 68 A6 ⨁ 45 64 71 B0 = 57F0 19 16。如此,便可以通过第一轮的轮密钥推算出原始密钥。
需要说明的是,上文介绍了基于AES加密算法中的第一轮的轮密钥逆推AES加密算法的原始密钥的方法。基于AES加密算法中的其他轮的轮密钥逆推的原始密钥的方法与上文类似,为了简洁,在此不再赘述。
在本申请实施例中,可以基于能量波形进行侧信道分析。为了提高测信道分析的准确率,可以对能量波形进行预处理。在一些实现方式中,预处理可以包括以下中的一种或多种:波形反转、低通滤波、重采样以及静态对齐。
与常见的侧信道分析的波形预处理不同,在一些场景中,可能使用密文以及能量波形进行侧信道分析,为了方便后续的静态对齐操作,可以先将能量波形进行反转,即能量波形加密结束的时刻为能量波形的起始0点。
在一些场景中,为了保证能量波形的信号的完整性,在采集的能量波形的过程中会尽可能大的选择采样率,可能会导致能量波形中包括较多的高频噪声,此时,可以通过低通的滤波的方式对能量波形进行处理,以过滤能量波形中的高频信号。
另外,尽可能大的选择采样率也可能大大增加分析能量波形的工作量,因此,在本申请实施例中,可以使用重采样对于泄露频率的信号进行重采样,有助于提高分析效率。
在一些场景中,能量波形的信号采集时,针对同一被测密码设备在相同时刻可能处于不同的运行状态,如此便会导致采集的多条能量波形在时间上存在前后偏移。此时,可以使用静态对齐技术对多个能量波形进行对齐操作,有助于提升后续侧信道分析的准确率。
在一些实现方式中,静态对齐可以使用的能量波形的某一片段来进行,该片段可以包含能量波形中具有明显向下或明显向上的尖峰特征的样点区间。之后静态对齐过程中,可以将该片段作为模板,用该模板所在的波之外的每一条波与选中的模板在偏移范围内进行相似度计算,如果目标条波与模板求得的最大相似度大于或等于设定的阈值,则可以认为目标波形与模板是对齐的,相应地可以保留该能量波形。相反地,如果目标条波与模板求得的最大相似度小于设定的阈值,则可以认为目标波形与模板是未对齐的,则可以丢弃该目标波形。以此类推,直到每条波形都和模板进行比较。
为了便于理解,下文结合图3至图6,以AES密码算法的最终轮为例介绍本申请实施例的侧信道分析方法。假设密码设备为ATMEGA2560单片机,其使用基于T-table的AES密码算法对明文进行加密。其中,AES加密算法包括10轮加密过程,且轮密钥的密钥长度为128比特。需要说明的是,本申请实施例的方法还可以适用于基于192比特密钥长度的AES加密算法,或者基于256比特的密钥长度的AES加密算法,本申请实施例对此不作限定。
图3是本申请另一实施例的用于侧信道分析的方法的流程图。图3所示的方法包括步骤S310至步骤S340。
在步骤S310中,在待测密码设备对明文进行加密的过程中,采集能量波形,得到第一能量波形集合。
在一些实现方式中,可以选取完全随机的5000明文,用待测密码设备中固定的密钥对明文进行加密,采集得到5000条能量波形,作为第一能量波形集合。其中每条波形2500000个点。
需要说明的是,采集能量波形的过程中使用的采样率越高,信号的还原度越高,但是存储能量波形所需的存储空间相应较大。因此,在采集能量波形的过程中可以权衡存储空间以及信号的还原度尽可能高的提高示波器的采样率,以得到更利于侧信道分析的原始能量波形。例如,可以使用的采样率为25 MS/s,采集到的能量波形参见图4所示。
在步骤S320中,对第一能量波形集合中的能量波形进行预处理,得到第二能量波形集合。
在一些实现方式中,可以先将第一能量波形集合中的每条能量波形进行反转,得到反转后的能量波形。也即是说,经过反转后,能量波形的加密结束时刻变为能量波形的起始0点。如上文介绍,在步骤S310中为了保证信号的完整性,尽可能大的选择了采样率,同时也会增加部分高频噪声。因此,可以通过低通的滤波的方式对反转后的能量波形进行滤波处理,滤除高频信号,以得到滤波后的能量波形。然后,可以对滤波后的能量波形进行重采样,得到重采样后的能量波形,以减少能量波形中待分析的波形点数,有效提升分析效率。
在一些场景中,各种原因在采集能量波形的过程中,可能会出现针对同一密码设备而言,在对多条明文加密的过程中,即使是在相对时间相同的时刻密码设备可能处于不同的运行状态,导致采集到的多个能量波形会存在时间上的前后偏移。此时,可以使用静态对齐技术对多个能量波形进行对齐操作,能够有效提升后续分析的准确率。
例如,可以选取某一段能量波形作为静态对齐所使用的模板,其中,模板通常是包括能量波形中具有明显向下或明显向上的尖峰特征的样点区间。之后,使用该模板与第一能量波形集合中的其他能量波形在偏移范围内进行相似度计算,以确定其他能量波形的相关波形片段是否与模板相似。其中,其他能量波形可以理解为第一能量波形集合中,除模板所在能量波形之外的其他能量波形。
如果其他波形的波形片段与模板之间的最大相似度大于或等于设定的阈值,则可以认为其他能量波形与模板是对齐的,此时,可以在第一能量波形集合中保留该能量波形。相反地,如果其他波形的波形片段与模板之间的最大相似度小于设定的阈值,则可以认为其他能量波形与模板是未对齐的,此时,可以从第一能量波形集合中删除该能量波形。至此,上述预处理过程完成,得到第二能量波形集合,第二能量波形集合中的能量波形可以参见图5所示。
需要说明的是,在本申请实施例中,静态对齐的方向通常为自起始点向右对齐,因此,在静态对齐之前可以先对能量波形进行反转。
在步骤S330中,对第二能量波形集合中的能量波形进行泄露分析,确定最终轮的轮密钥。
在一些实现方式中,假设未知密钥的情况下,可以使用简单能量分析的方法确认AES密码算法运行时的轮特征,然后使用常见的泄露模型进行分析。参见图4所示,我们能比较清晰的区分AES密码算法运行的10轮的特征,结合泄露模型与泄露位置对相应的曲线进行相关能量分析,得到相应的结果图。根据结果图中的对应推测密钥的最大值进行排序,得到排名为第一的一组轮密钥。
图6示出了基于相关能量分析后得到的结果图,参见图6所示,图6中一共绘制了16*256=4096 条能量波形。其中可以看到明显的16个尖峰,从这4096条能量波形中找到16条具有对应尖峰的能量波形,这16条能量波形对应的密钥推测值即为最终轮的轮密钥。
需要说明的是,基于能量波形推测最终轮的轮密钥的方式,可以采用已知侧信道分析中,基于能量波形推测轮密钥的方式,为了简洁,在此不再赘述。
在步骤S340中,基于最终轮的轮密钥推算AES加密算法的原始密钥。
在一些实现方式中,可以根据最终轮的轮密钥(即AES加密算法中的第11个轮密钥)通过第一逆变换算法,推算AES密码算法的原始密钥,攻击完成。
上文结合图1至图6,详细描述了本申请的方法实施例,下面结合图7至图8,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图7是本申请实施例的用于侧信道分析的装置的示意图,图7所示的装置700包括:处理单元710。
处理单元710,用于在待测密码设备对第一操作数执行AES加密算法的第N轮加密过程中,获取所述待测密码设备泄露的中间值,其中,所述AES加密算法包括基于查找表的AES加密算法,所述第N轮加密过程不包含列混淆操作;
所述处理单元710,还用于以目标数据长度为单位,根据所述中间值进行侧信道分析,以推测所述第N轮加密过程使用的轮密钥,所述目标数据长度小于所述第一操作数的数据长度;
所述处理单元710,还用于基于所述轮密钥,推算所述AES加密算法的原始密钥。
在一种可能的实现方式中,所述处理单元还用于:以目标数据长度为单位,基于泄露模型对所述中间值进行能量分析,得到多个子密钥,其中,多个子密钥中的每个子密钥是基于所述待测密码设备对第一操作数中多组目标数据长度的操作数进行加密的过程中泄露的中间值确定的;根据多个子密钥,推测所述第N轮加密过程使用的轮密钥。
在一种可能的实现方式中,所述处理单元还用于:基于所述轮密钥以及第一逆运算,推算所述AES加密算法的原始密钥,所述第一逆运算为生成所述轮密钥的密钥扩展运算的逆运算。
在一种可能的实现方式中,所述处理单元还用于:在所述待测密码设备执行AES加密算法的第N轮加密过程中,采集所述待测密码设备的能量波形,所述能量波形用于指示所述待测密码设备执行所述第N轮加密过程中的能量变化;对所述能量波形进行分析,以确定所述待测密码设备泄露的中间值。
在一种可能的实现方式中,所述第N轮加密过程为所述AES加密算法的最终轮。
在可选的实施例中,所述处理单元710可以为处理器820,所述装置还可以包括输入/输出接口830和存储器810,具体如图8所示。
图8是本申请另一实施例的用于侧信道分析的装置的示意性框图。图8所示的装置800可以包括:存储器810、处理器820、输入/输出接口830。其中,存储器810、处理器820、输入/输出接口830通过内部连接通路相连,该存储器810用于存储指令,该处理器820用于执行该存储器820存储的指令,以控制输入/输出接口830接收输入的数据和信息,输出操作结果等数据。
应理解,在本申请实施例中,该处理器820可以采用通用的中央处理器(centralprocessing unit,CPU),微处理器,应用专用集成电路(application specificintegrated circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器810可以包括只读存储器和随机存取存储器,并向处理器820提供指令和数据。处理器820的一部分还可以包括非易失性随机存取存储器。例如,处理器820还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器820 中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的用于请求上行传输资源的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器810,处理器820 读取存储器810 中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应理解,本申请实施例中,该处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
应理解,在本申请实施例中,密码设备可以包括具有一种或多种密码功能的设备,或者,密码设备还可以包括可以完成某种密码工作任务的设备。在一些实现方式中,密码设备可以是芯片,例如,SIM卡。在另一些实现方式中,密码设备还可以是计算设备。本申请实施例对此不作限定。
还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种用于侧信道分析的方法,其特征在于,包括:
在待测密码设备对第一操作数执行AES加密算法的第N轮加密过程中,获取所述待测密码设备泄露的中间值,其中,所述AES加密算法包括基于查找表的AES加密算法,所述第N轮加密过程不包含列混淆操作;
以所述目标数据长度为单位,基于泄露模型对所述中间值进行能量分析,得到多个子密钥,其中,所述目标数据长度小于所述第一操作数的数据长度,所述多个子密钥中的每个子密钥是基于所述待测密码设备对第一操作数中多组目标数据长度的操作数进行加密的过程中泄露的中间值确定的;
根据所述多个子密钥,推测所述第N轮加密过程使用的轮密钥;
基于所述轮密钥,推算所述AES加密算法的原始密钥。
2.如权利要求1所述的方法,其特征在于,所述基于所述轮密钥,推算所述AES加密算法的原始密钥,包括:
基于所述轮密钥以及第一逆运算,推算所述AES加密算法的原始密钥,所述第一逆运算为生成所述轮密钥的密钥扩展运算的逆运算。
3.如权利要求1所述的方法,其特征在于,所述在待测密码设备执行AES加密算法的第N轮加密过程中,获取所述待测密码设备泄露的中间值,包括:
在所述待测密码设备执行AES加密算法的第N轮加密过程中,采集所述待测密码设备的能量波形,所述能量波形用于指示所述待测密码设备执行所述第N轮加密过程中的能量变化;
对所述能量波形进行分析,以确定所述待测密码设备泄露的中间值。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述第N轮加密过程为所述AES加密算法的最终轮。
5.一种用于侧信道分析的装置,其特征在于,包括:
处理单元,用于在待测密码设备对第一操作数执行AES加密算法的第N轮加密过程中,获取所述待测密码设备泄露的中间值,其中,所述AES加密算法包括基于查找表的AES加密算法,所述第N轮加密过程不包含列混淆操作;
所述处理单元,还用于以目标数据长度为单位,基于泄露模型对所述中间值进行能量分析,得到多个子密钥,其中,所述目标数据长度小于所述第一操作数的数据长度,所述多个子密钥中的每个子密钥是基于所述待测密码设备对第一操作数中多组目标数据长度的操作数进行加密的过程中泄露的中间值确定的;
所述处理单元,还用于根据所述多个子密钥,推测所述第N轮加密过程使用的轮密钥;
所述处理单元,还用于基于所述轮密钥,推算所述AES加密算法的原始密钥。
6.如权利要求5所述的装置,其特征在于,所述处理单元还用于:
基于所述轮密钥以及第一逆运算,推算所述AES加密算法的原始密钥,所述第一逆运算为生成所述轮密钥的密钥扩展运算的逆运算。
7.如权利要求5所述的装置,其特征在于,所述处理单元还用于:
在所述待测密码设备执行AES加密算法的第N轮加密过程中,采集所述待测密码设备的能量波形,所述能量波形用于指示所述待测密码设备执行所述第N轮加密过程中的能量变化;
对所述能量波形进行分析,以确定所述待测密码设备泄露的中间值。
8.如权利要求5-7中任一项所述的装置,其特征在于,所述第N轮加密过程为所述AES加密算法的最终轮。
9.一种用于侧信道分析的装置,其特征在于,包括:
存储器,用于存储指令;
处理器,用于执行所述存储器中存储的指令,以执行如权利要求1-4中任一项所述的方法。
10.一种机器可读存储介质,其特征在于,其上存储有用于执行如权利要求1-4中任一项所述的方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211659991.5A CN115643003B (zh) | 2022-12-23 | 2022-12-23 | 用于侧信道分析的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211659991.5A CN115643003B (zh) | 2022-12-23 | 2022-12-23 | 用于侧信道分析的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115643003A CN115643003A (zh) | 2023-01-24 |
CN115643003B true CN115643003B (zh) | 2023-03-14 |
Family
ID=84949779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211659991.5A Active CN115643003B (zh) | 2022-12-23 | 2022-12-23 | 用于侧信道分析的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115643003B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116388956B (zh) * | 2023-03-16 | 2024-06-18 | 中物院成都科学技术发展中心 | 一种基于深度学习的侧信道分析方法 |
CN116707877A (zh) * | 2023-05-26 | 2023-09-05 | 广西电网有限责任公司电力科学研究院 | 一种基于改进型aes算法的数据加密方法及系统 |
CN117592090B (zh) * | 2024-01-19 | 2024-05-17 | 中国人民解放军海军青岛特勤疗养中心 | 一种护理体检数据智能分析及管理方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647639A (zh) * | 2013-12-03 | 2014-03-19 | 北京中电华大电子设计有限责任公司 | 一种对称密码算法抵抗侧信道分析的方法 |
CN107070630B (zh) * | 2017-01-17 | 2019-10-11 | 中国科学院信息工程研究所 | 一种aes算法的快速安全硬件结构 |
CN108650075B (zh) * | 2018-05-11 | 2020-09-08 | 中国科学院信息工程研究所 | 一种抗侧信道攻击的软硬结合aes快速加密实现方法和系统 |
CN108964872B (zh) * | 2018-07-23 | 2020-05-26 | 武汉大学 | 一种基于aes的加密方法及装置 |
CN113407936B (zh) * | 2021-06-30 | 2022-10-28 | 中国科学技术大学 | 基于生成对抗网络的侧信道防护方法 |
-
2022
- 2022-12-23 CN CN202211659991.5A patent/CN115643003B/zh active Active
Non-Patent Citations (2)
Title |
---|
向春玲 ; 吴震 ; 饶金涛 ; 王敏 ; 杜之波 ; .针对一种AES掩码算法的频域相关性能量分析攻击.(第10期),全文. * |
胡江溢 ; 杜新纲 ; 孙乐昊 ; 胡晓波 ; .SOPC型芯片的侧信道安全性分析.(第12期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN115643003A (zh) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115643003B (zh) | 用于侧信道分析的方法及装置 | |
US11362802B2 (en) | Cryptographic device arranged to compute a target block cipher | |
US8369522B2 (en) | Encryption processing apparatus, encryption method, and computer program | |
JP5911654B2 (ja) | 乱数生成器及びストリーム暗号 | |
Samwel et al. | Breaking ed25519 in wolfssl | |
EP2316189B1 (en) | Method for generating a cipher-based message authentication code | |
US20120163584A1 (en) | Method and system for protecting a cryptography device | |
US20130279692A1 (en) | Protecting modular exponentiation in cryptographic operations | |
CN110190951B (zh) | 一种针对des算法l寄存器翻转的功耗攻击方法及系统 | |
Cabrera Aldaya et al. | Side‐channel analysis of the modular inversion step in the RSA key generation algorithm | |
KR100574965B1 (ko) | 유한체 곱셈기 | |
Coron et al. | Improved gadgets for the high-order masking of dilithium | |
Steffen et al. | In-depth analysis of side-channel countermeasures for crystals-kyber message encoding on arm cortex-m4 | |
Satheesh et al. | Secure realization of lightweight block cipher: A case study using GIFT | |
Li et al. | Cube cryptanalysis of LBlock with noisy leakage | |
Li et al. | Security analysis of the lightweight cryptosystem TWINE in the Internet of Things | |
CN115664641B (zh) | 对加密算法中轮密钥的校验方法及装置 | |
Zhang et al. | Zero Correlation Linear Cryptanalysis on LEA Family Ciphers. | |
Wang et al. | Right or wrong collision rate analysis without profiling: full-automatic collision fault attack | |
Schmidt et al. | A probing attack on AES | |
KR20170108595A (ko) | 논리적 보수 관계값을 이용한 부채널 분석 방지 암호화 장치 및 방법 | |
Jain et al. | A New Guess‐and‐Determine Method for Cryptanalysis of the GSM Encryption | |
Rathnala et al. | A practical approach to differential power analysis using PIC micrcontroller based embedded system | |
Duman et al. | Fault analysis on Kalyna | |
Lee et al. | False Secret Keys to Disturb Power Analysis |
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 |