CN112511292B - 安全芯片的工作性能检测及适应性引导方法及装置 - Google Patents
安全芯片的工作性能检测及适应性引导方法及装置 Download PDFInfo
- Publication number
- CN112511292B CN112511292B CN202110161640.0A CN202110161640A CN112511292B CN 112511292 B CN112511292 B CN 112511292B CN 202110161640 A CN202110161640 A CN 202110161640A CN 112511292 B CN112511292 B CN 112511292B
- Authority
- CN
- China
- Prior art keywords
- data
- power consumption
- encryption
- encrypted
- byte
- 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
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/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了安全芯片的工作性能检测及适应性引导方法及装置,该方法预先测量芯片在运行过程中的工作性能参数,算出安全芯片的功耗程度,提前建立被加密数据在加密过程中与功耗程度的对应关系,然后根据对应关系预测该待加密数据在进行加密运算时的预期功耗,最后判断预期功耗与预设的功耗基准值的大小关系,若预期功耗低于第一功耗基准值,则对中间数据叠加伪运算,若预期功耗不低于第二功耗基准值,则将待加密数据拆分为多个子数据,并将该多个子数据排布到比待加密数据的加密所需时钟周期数量更多的时钟周期中进行加密。该方法打破加密运算中功耗与加密运算的相关性,使得第三人利用功耗破解方式攻击安全芯片加密运算的行为无效化。
Description
技术领域
本申请涉及数据加密技术领域,特别涉及安全芯片的工作性能检测及适应性引导方法及装置。
背景技术
数据保密是数据通信领域里经常需要用到的一个功能,通过对通信过程中收发的数据利用加密算法进行预先加密,保证数据在传输时不会受到第三方的恶意破解、截取和篡改,保证数据的真实有效性和保密性。
但目前也已经有了针对不同加密方式的多种破解方式,其中包括了一种较为常见的破解方式:在常见加密设备——例如安全芯片——进行数据加密的过程中,获取到安全芯片的在该过程中的功耗,并可以通过一次测量的功耗轨迹或通过对大量密文和功耗轨迹的分析破解出密钥信息,使得数据加密无效化。因此,目前亟需对此种利用计算功耗来破解加密信息的破解方式进行针对性反制,避免数据暴露于安全保护能力之外,提高数据在传输过程中的真实有效性和保密性。
发明内容
基于此,为了打破加密运算中功耗与加密运算的相关性,避免第三人能够利用功耗破解方式攻击安全芯片加密运算从而获取密钥,保证了数据的真实有效性和保密性,本申请公开了以下技术方案。
一方面,本申请提供了一种安全芯片的工作性能检测及适应性引导方法,包括:
预先测量芯片在运行过程中的工作性能参数,依据所述工作性能参数算出安全芯片的功耗程度,提前建立被加密数据在加密过程中与功耗程度的对应关系;
根据所述对应关系预测该待加密数据在进行加密运算时的预期功耗;
判断所述预期功耗与预设的功耗基准值的大小关系,若所述预期功耗低于第一功耗基准值,则在所述待加密数据进行实际加密运算过程中,对至少部分的中间数据叠加伪运算,而若所述预期功耗不低于第二功耗基准值,则将所述待加密数据拆分为多个子数据,并将该多个子数据排布到比所述待加密数据的加密所需时钟周期数量更多的时钟周期中进行加密。
在一种可能的实施方式中,所述对中间数据叠加伪运算包括:
步骤B1,将所述中间数据转化为正整数;
步骤B2,提取该正整数的各个数位并倒序排序,将各数位加5,然后除以10,将得到的余数中的第一位和最后一位交换位置,得到替代数;
步骤B3,将该替代数代入步骤B2中进行运算,得到新的替代数,将新的替代数转化为所述中间数据的原数据类型的形式。
在一种可能的实施方式中,对所述待加密数据进行加密,包括:
在进行数据整体加密过程包含的多轮次加密中的至少两轮加密之前,先对当前待加密的输入数据进行与随机数R的异或运算得到掩码数据,以及依据该随机数R和待加密的输入数据进行字节替换时所使用的字节替换表生成新的字节替换表,然后基于所述掩码数据和所述新的字节替换表进行当前轮次的加密;其中,所述新的字节替换表使得所述掩码数据进行字节替换的运算结果与所述输入数据通过原字节替换表进行字节替换的运算结果相同。
在一种可能的实施方式中,对所述待加密数据进行加密,包括:
生成非零随机值r,对运算字节a进行屏蔽得到a+x,对该随机值与屏蔽后的运算字节进行张量积运算得到r·(a+x);
对与运算字节a对应的屏蔽值x和随机值r进行张量积运算得到x·r,并对r·(a+x)与x·r进行异或运算得到a·r;
对异或结果a·r进行求逆运算得到a-1·r-1,对屏蔽值x和求逆后的随机值r-1进行张量积运算得到x·r-1,对a-1·r-1和x·r-1进行异或运算,对运算结果和随机值r进行张量积运算得到a-1+x。
在一种可能的实施方式中,在将加密过程中输出的中间结果存储于寄存器之前,先生成数量与中间结果的个数相同的多个不同的随机数,将生成的随机数与各寄存器进行配对,将输出的中间结果按照组别序号存储到与组别序号对应的随机数所配对的寄存器内,并在取出数据时,从与组别序号对应的随机数所配对的寄存器内取出中间结果进行后续运算。
另一方面,还提供了一种安全芯片的工作性能检测及适应性引导装置,包括:
性能参数测量模块,用于预先测量芯片在运行过程中的工作性能参数;
功耗关系建立模块,用于依据所述工作性能参数算出安全芯片的功耗程度,提前建立被加密数据在加密过程中与功耗程度的对应关系;
预期功耗计算模块,用于根据所述对应关系预测该待加密数据在进行加密运算时的预期功耗;
数据运算调整模块,用于判断所述预期功耗与预设的功耗基准值的大小关系,若所述预期功耗低于第一功耗基准值,则在所述待加密数据进行实际加密运算过程中,对至少部分的中间数据叠加伪运算,而若所述预期功耗不低于第二功耗基准值,则将所述待加密数据拆分为多个子数据,并将该多个子数据排布到比所述待加密数据的加密所需时钟周期数量更多的时钟周期中进行加密。
在一种可能的实施方式中,所述数据运算调整模块包括:
数据伪运算单元,用于执行以下步骤:
步骤B1,将所述中间数据转化为正整数;
步骤B2,提取该正整数的各个数位并倒序排序,将各数位加5,然后除以10,将得到的余数中的第一位和最后一位交换位置,得到替代数;
步骤B3,将该替代数代入步骤B2中进行运算,得到新的替代数,将新的替代数转化为所述中间数据的原数据类型的形式。
在一种可能的实施方式中,该装置包括用于对所述待加密数据进行加密的数据加密模块,所述数据加密模块在进行数据整体加密过程包含的多轮次加密中的至少两轮加密之前,先对当前待加密的输入数据进行与随机数R的异或运算得到掩码数据,以及依据该随机数R和待加密的输入数据进行字节替换时所使用的字节替换表生成新的字节替换表,然后基于所述掩码数据和所述新的字节替换表进行当前轮次的加密;其中,所述新的字节替换表使得所述掩码数据进行字节替换的运算结果与所述输入数据通过原字节替换表进行字节替换的运算结果相同。
在一种可能的实施方式中,该装置包括用于对所述待加密数据进行加密的数据加密模块,所述数据加密模块对所述待加密数据进行加密包括以下步骤:
生成非零随机值r,对运算字节a进行屏蔽得到a+x,对该随机值与屏蔽后的运算字节进行张量积运算得到r·(a+x);
对与运算字节a对应的屏蔽值x和随机值r进行张量积运算得到x·r,并对r·(a+x)与x·r进行异或运算得到a·r;
对异或结果a·r进行求逆运算得到a-1·r-1,对屏蔽值x和求逆后的随机值r-1进行张量积运算得到x·r-1,对a-1·r-1和x·r-1进行异或运算,对运算结果和随机值r进行张量积运算得到a-1+x。
在一种可能的实施方式中,在数据加密模块将加密过程中输出的中间结果存储于寄存器之前,先生成数量与中间结果的个数相同的多个不同的随机数,将生成的随机数与各寄存器进行配对,将输出的中间结果按照组别序号存储到与组别序号对应的随机数所配对的寄存器内,并在取出数据时,从与组别序号对应的随机数所配对的寄存器内取出中间结果进行后续运算。
本申请公开的安全芯片的工作性能检测及适应性引导方法及装置,通过在安全芯片执行加密算法时对自身工作性能进行检测,建立起性能-功耗对应关系表,并在安全芯片实际执行加密算法之前,先依据该关系表先自行预测出当次加密所需的功耗,然后开始实际进行加密运算时,通过对预期功耗的大小判断,通过相应的功耗扰乱步骤对加密算法进行适应性的引导,包括叠加不影响实际运算结果的伪运算,以及拆分数据并分布在更多时钟周期内进行运算,以此打破加密运算中功耗与加密运算的相关性,使得第三人利用功耗破解方式攻击安全芯片加密运算以获取密钥的行为无效化,避免信息泄露,保证了数据的真实有效性和保密性。
附图说明
以下参考附图描述的实施例是示例性的,旨在用于解释和说明本申请,而不能理解为对本申请的保护范围的限制。
图1是本申请公开的安全芯片的工作性能检测及适应性引导方法实施例的流程示意图。
图2是本申请公开的安全芯片的工作性能检测及适应性引导装置实施例的结构框图。
具体实施方式
为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。
下面参考图1详细描述本申请公开的安全芯片的工作性能检测及适应性引导方法实施例。
如图1所示,本实施例公开的方法包括如下步骤100至步骤300。
步骤100,预先测量芯片在运行过程中的工作性能参数,依据工作性能参数算出安全芯片的功耗程度,提前建立被加密数据在加密过程中与功耗程度的对应关系。
对于通过测量芯片加密时产生的功耗来对芯片加密数据进行破解的这种破解方式来说,为了防止芯片的加密数据被破解,可以使芯片预先对自身进行数据加密时产生的功耗进行计算,以预先知晓自身在之后每次进行数据加密的过程中的功耗程度(功耗曲线),然后通过该功耗程度来对上述功耗攻击破解方式做出防破解应对,避免加密数据、密钥等信息的泄露。
因此,为了避免芯片被功耗攻击方式所破解,首先通过步骤100对芯片在工作过程中的工作性能参数进行测量,获取到芯片内各个电路、逻辑门等组成部件的工作状态和工作参数,例如加密过程中会频繁涉及到逻辑运算,因此获取的工作状态和工作参数会包括进行逻辑运算时相应电路的动作状态和动作时间等等参数,测量并记录这些参数,实现安全芯片的工作性能检测,并通过这些参数算出执行该逻辑运算所消耗的能量。当把芯片的各个部件执行运算的能量消耗均测量并记录之后,就可以将这些能量消耗与产生响应能量消耗的对应运算之间建立起一个对应关系表。
步骤200,根据对应关系预测该待加密数据在进行加密运算时的预期功耗。
在步骤100中得到了预先建立好的运算-功耗对应关系表后,每当芯片执行任意运算任务之前,均可以提前将该运算任务拆解成各电路等部件对应的运算子任务,然后依据该对应关系表得到执行这些运算子任务所需的能量消耗,最后进行汇总得出芯片执行该运算任务所需的整体功耗。
具体的。当芯片执行加密任务并因此进行各种运算时,可以先将当前待加密数据临时存储到设定的寄存器内,并以当前待加密数据为运算任务进行上述子任务拆分等处理,直到能够从对应关系表中算出运算功耗,然后就依据对应关系表的内容,对运算子任务的所需功耗进行累计,并得到整个加密任务的时间-预期功耗曲线。
步骤300,判断预期功耗与预设的功耗基准值的大小关系,若预期功耗低于第一功耗基准值,则在待加密数据进行实际加密运算过程中,对至少部分的中间数据叠加伪运算,而若预期功耗不低于第二功耗基准值,则将待加密数据拆分为多个子数据,并将该多个子数据排布到比待加密数据的加密所需时钟周期数量更多的时钟周期中进行加密。
功耗基准值为预设值,其可以是依据所采用的加密算法单次最大加密数据的数据量来设置,例如某加密算法单次可加密256字节的数据,则利用该加密算法执行加密任务时所采用的功耗基准值可以大于利用单次最大加密128字节的加密算法所采用的功耗基准值;可以理解的是,功耗基准值也可以直接依据本次实际加密数据量来设置,实际加密数据量越大,功耗基准值可以设置的越高。
功耗基准值可以分为用于衡量功耗下限的第一功耗基准值和用于衡量功耗上限的第二功耗基准值,其中第一功耗基准值和第二功耗基准值可以是两个不同的数值,此时第一功耗基准值低于第二功耗基准值;两者也可以采用同一数值。
若预期功耗低于第一功耗基准值,则说明预期功耗值较低且低至使得该预期功耗值较为显著的地步,进而使得与该预期功耗值相对应的加密运算容易被功耗破解方式所破解,因此需要对该相对应的加密运算执行防破解措施,从而避免功耗破解方式所破解,而防破解措施包括:对该相对应的加密运算的至少部分的中间数据叠加伪运算,从而增大芯片当次执行加密运算的实际功耗,实际功耗会因为叠加了伪运算而大于预期功耗,实现安全芯片的适应性引导,以此来使利用功耗来进行密码破解的方式失效。其中,伪运算为不影响原运算结果但增加运算过程整体运算次数的运算,其本身无对于运算来说无实际意义,但能够增加运算次数。
具体的伪运算方式为:由于加密过程中会涉及很多的逻辑运算、二进制移位、字符映射等运算方式,因此可以在执行这些运算得到的中间运算结果后,先进行伪运算,例如将得到的8位二进制数与00000000进行异或逻辑运算,或者与11111111进行同或逻辑运算,由于与0进行异或以及与1进行同或,原值不变,因此得到的8位二进制数依旧是原8位二进制数,但增加了运算量和实际功耗。
若预期功耗不低于第二功耗基准值,则说明预期功耗值较高且高至使得该预期功耗值较为显著的地步,进而使得与该预期功耗值相对应的加密运算容易被功耗破解方式所破解,因此需要对该相对应的加密运算执行防破解措施,从而避免功耗破解方式所破解,而防破解措施包括:对该相对应的加密运算所加密的数据进行拆分,拆分后得到多个子数据块,并且对这些子数据块进行范围扩大化地排布,扩大化体现在排布的时钟周期范围大于原所加密数据的加密所需时钟周期,通过数据拆分和时钟周期的延长扩大来改变实际功耗曲线的曲率和长度,从而打乱加密运算的数据和功耗程度之间的对应关系,实现安全芯片的适应性引导,以此来使利用功耗来进行密码破解的方式失效。其中,数据拆分和时钟周期的延长为不影响原运算结果但减少运算过程单位时间内运算次数的运算,其本身无对于运算来说无实际意义,但能够减小运算频率。
具体的数据拆分及时钟周期延长方式为:对于一个需要n个时钟周期完成加密的8*8的待加密矩阵数据,可以将其拆分为4个4*4的矩阵数据块,然后将这4个矩阵分别安排在T1至T2n的共2n个时钟周期内进行加密,其中第一个矩阵数据块从T1时钟周期开始加密,最后一个矩阵数据块从T2n时钟周期开始加密,此时实际功耗曲线会在X轴时间轴上被拉长甚至产生更能够扰乱功耗破解的变形。
本实施例提供的方法,通过在安全芯片执行加密算法时对自身工作性能进行检测,建立起性能-功耗对应关系表,并在安全芯片实际执行加密算法之前,先依据该关系表先自行预测出当次加密所需的功耗,然后开始实际进行加密运算时,通过对预期功耗的大小判断,通过相应的功耗扰乱步骤对加密算法进行适应性的引导,包括叠加不影响实际运算结果的伪运算,以及拆分数据并分布在更多时钟周期内进行运算,以此打破加密运算中功耗与加密运算的相关性,使得第三人利用功耗破解方式攻击安全芯片加密运算以获取密钥的行为无效化,避免信息泄露,保证了数据的真实有效性和保密性。
在一种实施方式中,对中间数据叠加伪运算具体采用以下方式。
步骤B1,将中间数据转化为正整数。假设原中间数据为十六进制的21F5,则转化为正整数为8693。
步骤B2,提取该正整数的各个数位并倒序排序,将各数位加5,然后除以10,将得到的余数中的第一位和最后一位交换位置,得到替代数。接上例,8693的各个数位依次为8、6、9、3,加5后得到13、11、14、8,除以10之后的余数分别为3、1、4、8,交换首尾位数得到替代数8143。
步骤B3,将该替代数代入步骤B2中进行运算,得到新的替代数,将新的替代数转化为中间数据的原数据类型的形式。接上例,替代数8143的各个数位依次为8、1、4、3,加5后得到13、6、9、8,除以10之后的余数分别为3、6、9、8,交换首尾位数得到新的替代数8693,该新的替代数即为原先的正整数。将该新的替代数转化为十六进制得到21F5,与进行伪运算叠加之前的中间数据一样,因此可知此种方式不会影响到数据的真实运算结果,并且还叠加了一些算力消耗较小且速度较快的伪运算,因此既能够实现运算量和实际功耗的增加,又不会消耗过多的运算时间。
在一种实施方式中,对待加密数据进行加密具体包括以下步骤:在进行数据整体加密过程包含的多轮次加密中的至少两轮加密之前,先对当前待加密的输入数据进行与随机数R的异或运算得到掩码数据,以及依据该随机数R和待加密的输入数据进行字节替换时所使用的字节替换表生成新的字节替换表,然后基于掩码数据和新的字节替换表进行当前轮次的加密。其中,新的字节替换表使得掩码数据进行字节替换的运算结果与输入数据通过原字节替换表进行字节替换的运算结果相同。
常见的加密算法中,例如AES(Advanced Encryption Standard)加密算法和DES(Data Encryption Standard)加密算法,均涉及到了多轮加密过程,例如AES加密算法有10轮加密,以及DES加密算法有16轮加密。在这些多轮加密的过程中,可以对至少两轮甚至全部轮次的加密过程均添加屏蔽。
添加屏蔽的方式为:假设当前为第n轮加密,则在将第n-1轮的输出输入到第n轮加密之前,先生成一随机数R并将第n-1轮的输出与该随机数R进行异或运算,得到屏蔽后的掩码数据,并且在加密过程中执行到需要对输入数据进行字节替换的步骤时,将实施字节替换步骤所依据的字节替换表(例如S盒)同样基于随机数R进行更新处理,得到更新后的字节替换表。
将基于随机数R得到的掩码数据和字节替换表作为输入和实施条件进行当前轮次加密步骤的执行,以此改变被屏蔽的加密轮次中子密钥与功耗曲线之间的对应关系,进一步降低当前实际的对应关系与步骤100中建立的对应关系的相似性,进一步使得利用功耗来进行密码破解的方式无效化。并且,在将掩码数据输入到更新后的字节替换表得出的字节替换运算结果,与输入数据未进行屏蔽而直接输入到为进行更新的原字节替换表中进行字节替换所得到的运算结果,两者的运算结果是相同的,区别就在于运算过程中对输入数据进行了屏蔽,并通过对字节替换表进行修改使得字节替换后能够自动解除屏蔽得出原运算结果。
具体的,利用随机数R对输入数据进行屏蔽的方式可以采用异或运算,也即计算输入数据I与随机数R的异或结果作为掩码数据;而利用随机数R对字节替换表进行更新时,假设需要对64位的信息进行DES算法加密,则选择64位的屏蔽值X,则更新的方式可以是:
SI-Box(A)=S-Box(A⊕X2)⊕P-1(X10-31⊕X132-63),其中,S为字节替换表,SI-Box(A)为更新后的字节替换表,P-1为字节替换表之后的逆替换。
可以理解的是,在上述至少两轮进行屏蔽的加密轮次中使用的随机数R可以是相同数。
由于进行屏蔽时使用的随机数R是随机生成的,对于攻击者来说是一个未知数,因此攻击者难以攻破屏蔽获得屏蔽层内的原始的数据信息,避免数据泄露,而通过在输入数据进行字节替换表之前进行随机数屏蔽,使得明文数据被屏蔽层所保护而不会泄露,并在保持屏蔽的状态下完成当轮的加密过程,既能够抵御一阶功耗攻击,也能够抵御多阶功耗攻击,提高了芯片加密的可靠性的泛用性。
在一种实施方式中,对于AES等加密算法来说,其包括了字节替换步骤,而字节替换步骤则包括了求逆变化步骤,以下为对待加密数据进行加密中对有限域GF(256)的求逆变化步骤具体包括的步骤A1至A3。
步骤A1,生成非零随机值rij,对运算字节aij进行屏蔽得到aij+xij,对该随机值与屏蔽后的运算字节进行张量积运算得到rij·(aij+xij)。其中,(i,j)为矩阵中第i行第j列的数据。
步骤A2,对与运算字节aij对应的屏蔽值xij和随机值rij进行张量积运算得到xij·rij,并对rij·(aij+xij)与xij·rij进行异或运算得到aij·rij。
步骤A3,对异或结果aij·rij在有限域GF(256)进行求逆运算得到aij -1· rij -1,对屏蔽值xij和求逆后的随机值rij -1进行张量积运算得到xij· rij -1,对aij -1· rij -1和xij·rij -1进行异或运算,对运算结果和随机值rij进行张量积运算得到aij -1+xij。
上述步骤可以应用于每一轮的加密过程中,并且利用上述求逆步骤,从原始的aij+xij数据得到aij -1+xij,代替了从原始的aij数据得到aij -1,实现了数据的屏蔽,避免攻击者的零值攻击成功。
由于攻击者可以通过相邻两次产生并存储到寄存器的输出,推算出针对下一轮加密结果的汉明模型,导致功耗供给成功,使得密钥失效。因此为了避免上述情况导致密钥失效,在一种实施方式中,在将加密过程中输出的中间结果存储于寄存器之前,先生成数量与中间结果的个数相同的多个不同的随机数,将生成的随机数与各寄存器进行配对,将输出的中间结果按照组别序号存储到与组别序号对应的随机数所配对的寄存器内,并在取出数据时,从与组别序号对应的随机数所配对的寄存器内取出中间结果进行后续运算。
假设每轮加密过程中会产生4个输出,芯片会将4个输出分别存储到4个128比特的寄存器内,而当下一步骤开始后,会取出这4个数据,然后执行完下一步骤后产生的4个输出通过进行随机化操作而使得输出数据不会按照原先的组别顺序存储到这4个寄存器内,避免这4个寄存器成为专门存储相应组别的输出数据的寄存器。
具体的随机化方式为:每次需要存储输出数据之前,先随机生成1至4这四个数字,生成的数字各不相同,例如依次生成了2、1、3、4这四个数字,则而4个寄存器A、B、C、D分别与2、1、4、3这四个数字进行配对,相当于将寄存器A、B、C、D的顺序变为了B、A、D、C的顺序,而4个输出按照随机化后的存储关系,第1组输出会存到寄存器B中,第2组输出会存到寄存器A中,第3组输出会存到寄存器D中,第4组输出会存到寄存器C中,打乱了数据的存储顺序。而若是不进行随机化操作,则寄存器A、B、C、D则会永远分别存储第1、2、3、4组别的数据。在取用数据时,也会按照B、A、D、C的顺序,分别从寄存器B、A、D、C中取出数据输入下一步骤或下一轮加密运算。
通过上述随机化的存储方式,可以避免攻击者通过对寄存器进行监测和推算来破解密钥。
另外,可以理解的是,芯片中实施上述掩码数据运算和新的字节替换表生成的模块,以及实施上述求逆变化步骤的模块,以及实施上述寄存器乱序存储的模块,均可以是同一个数据加密模块。
下面参考图2详细描述本申请公开的安全芯片的工作性能检测及适应性引导装置实施例。本实施例是用于实施前述安全芯片的工作性能检测及适应性引导方法实施例的装置。如图2所示,本实施例公开的装置主要包括有:
性能参数测量模块,用于预先测量芯片在运行过程中的工作性能参数;
功耗关系建立模块,用于依据所述工作性能参数算出安全芯片的功耗程度,提前建立被加密数据在加密过程中与功耗程度的对应关系;
预期功耗计算模块,用于根据所述对应关系预测该待加密数据在进行加密运算时的预期功耗;
数据运算调整模块,用于判断所述预期功耗与预设的功耗基准值的大小关系,若所述预期功耗低于第一功耗基准值,则在所述待加密数据进行实际加密运算过程中,对至少部分的中间数据叠加伪运算,而若所述预期功耗不低于第二功耗基准值,则将所述待加密数据拆分为多个子数据,并将该多个子数据排布到比所述待加密数据的加密所需时钟周期数量更多的时钟周期中进行加密。
在一种实施方式中,所述数据运算调整模块包括:
数据伪运算单元,用于执行以下步骤:
步骤B1,将所述中间数据转化为正整数;
步骤B2,提取该正整数的各个数位并倒序排序,将各数位加5,然后除以10,将得到的余数中的第一位和最后一位交换位置,得到替代数;
步骤B3,将该替代数代入步骤B2中进行运算,得到新的替代数,将新的替代数转化为所述中间数据的原数据类型的形式。
在一种实施方式中,该装置包括用于对所述待加密数据进行加密的数据加密模块,所述数据加密模块在进行数据整体加密过程包含的多轮次加密中的至少两轮加密之前,先对当前待加密的输入数据进行与随机数R的异或运算得到掩码数据,以及依据该随机数R和待加密的输入数据进行字节替换时所使用的字节替换表生成新的字节替换表,然后基于所述掩码数据和所述新的字节替换表进行当前轮次的加密;其中,所述新的字节替换表使得所述掩码数据进行字节替换的运算结果与所述输入数据通过原字节替换表进行字节替换的运算结果相同。
在一种实施方式中,该装置包括用于对所述待加密数据进行加密的数据加密模块,所述数据加密模块对所述待加密数据进行加密包括以下步骤:
生成非零随机值r,对运算字节a进行屏蔽得到a+x,对该随机值与屏蔽后的运算字节进行张量积运算得到r·(a+x);
对与运算字节a对应的屏蔽值x和随机值r进行张量积运算得到x·r,并对r·(a+x)与x·r进行异或运算得到a·r;
对异或结果a·r进行求逆运算得到a-1·r-1,对屏蔽值x和求逆后的随机值r-1进行张量积运算得到x·r-1,对a-1·r-1和x·r-1进行异或运算,对运算结果和随机值r进行张量积运算得到a-1+x。
在一种实施方式中,在数据加密模块将加密过程中输出的中间结果存储于寄存器之前,先生成数量与中间结果的个数相同的多个不同的随机数,将生成的随机数与各寄存器进行配对,将输出的中间结果按照组别序号存储到与组别序号对应的随机数所配对的寄存器内,并在取出数据时,从与组别序号对应的随机数所配对的寄存器内取出中间结果进行后续运算。
在本文中,“第一”、“第二”等仅用于彼此的区分,而非表示它们的重要程度及顺序等。
本文中的模块、单元或组件的划分仅仅是一种逻辑功能的划分,在实际实现时可以有其他的划分方式,例如多个模块和/或单元可以结合或集成于另一个装置中。作为分离部件说明的模块、单元、组件在物理上可以是分开的,也可以是不分开的。作为单元显示的部件可以是物理单元,也可以不是物理单元,即可以位于一个具体地方,也可以分布到网格单元中。因此可以根据实际需要选择其中的部分或全部的单元来实现实施例的方案。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种安全芯片的工作性能检测及适应性引导方法,其特征在于,包括:
预先测量芯片在运行过程中的工作性能参数,依据所述工作性能参数算出安全芯片的功耗程度,提前建立被加密数据在加密过程中涉及的逻辑运算与功耗程度的对应关系;
根据所述对应关系预测待加密数据在进行加密运算时的预期功耗;
判断所述预期功耗与预设的功耗基准值的大小关系,若所述预期功耗低于第一功耗基准值,则在所述待加密数据进行实际加密运算过程中,对至少部分的中间数据叠加伪运算,而若所述预期功耗不低于第二功耗基准值,则将所述待加密数据拆分为多个子数据,并将该多个子数据排布到比所述待加密数据的加密所需时钟周期数量更多的时钟周期中进行加密。
2.如权利要求1所述的方法,其特征在于,所述对中间数据叠加伪运算包括:
步骤B1,将所述中间数据转化为正整数;
步骤B2,提取该正整数的各个数位并倒序排序,将各数位加5,然后除以10,将得到的余数中的第一位和最后一位交换位置,得到替代数;
步骤B3,将该替代数代入步骤B2中进行运算,得到新的替代数,将新的替代数转化为所述中间数据的原数据类型的形式。
3.如权利要求1所述的方法,其特征在于,对所述待加密数据进行加密,包括:
在进行数据整体加密过程包含的多轮次加密中的至少两轮加密之前,先对当前待加密的输入数据进行与随机数R的异或运算得到掩码数据,以及依据该随机数R和待加密的输入数据进行字节替换时所使用的字节替换表生成新的字节替换表,然后基于所述掩码数据和所述新的字节替换表进行当前轮次的加密;其中,所述新的字节替换表使得所述掩码数据进行字节替换的运算结果与所述输入数据通过原字节替换表进行字节替换的运算结果相同。
4.如权利要求1所述的方法,其特征在于,对所述待加密数据进行加密,包括:
生成非零随机值r,对运算字节a进行屏蔽得到a+x,对该随机值与屏蔽后的运算字节进行张量积运算得到r·(a+x);
对与运算字节a对应的屏蔽值x和随机值r进行张量积运算得到x·r,并对r·(a+x)与x·r进行异或运算得到a·r;
对异或结果a·r进行求逆运算得到a-1·r-1,对屏蔽值x和求逆后的随机值r-1进行张量积运算得到x·r-1,对a-1·r-1和x·r-1进行异或运算,对运算结果和随机值r进行张量积运算得到a-1+x。
5.如权利要求1所述的方法,其特征在于,在将加密过程中输出的中间结果存储于寄存器之前,先生成数量与中间结果的个数相同的多个不同的随机数,将生成的随机数与各寄存器进行配对,将输出的中间结果按照组别序号存储到与组别序号对应的随机数所配对的寄存器内,并在取出数据时,从与组别序号对应的随机数所配对的寄存器内取出中间结果进行后续运算。
6.一种安全芯片的工作性能检测及适应性引导装置,其特征在于,包括:
性能参数测量模块,用于预先测量芯片在运行过程中的工作性能参数;
功耗关系建立模块,用于依据所述工作性能参数算出安全芯片的功耗程度,提前建立被加密数据在加密过程中涉及的逻辑运算与功耗程度的对应关系;
预期功耗计算模块,用于根据所述对应关系预测待加密数据在进行加密运算时的预期功耗;
数据运算调整模块,用于判断所述预期功耗与预设的功耗基准值的大小关系,若所述预期功耗低于第一功耗基准值,则在所述待加密数据进行实际加密运算过程中,对至少部分的中间数据叠加伪运算,而若所述预期功耗不低于第二功耗基准值,则将所述待加密数据拆分为多个子数据,并将该多个子数据排布到比所述待加密数据的加密所需时钟周期数量更多的时钟周期中进行加密。
7.如权利要求6所述的装置,其特征在于,所述数据运算调整模块包括:
数据伪运算单元,用于执行以下步骤:
步骤B1,将所述中间数据转化为正整数;
步骤B2,提取该正整数的各个数位并倒序排序,将各数位加5,然后除以10,将得到的余数中的第一位和最后一位交换位置,得到替代数;
步骤B3,将该替代数代入步骤B2中进行运算,得到新的替代数,将新的替代数转化为所述中间数据的原数据类型的形式。
8.如权利要求6所述的装置,其特征在于,该装置包括用于对所述待加密数据进行加密的数据加密模块,所述数据加密模块在进行数据整体加密过程包含的多轮次加密中的至少两轮加密之前,先对当前待加密的输入数据进行与随机数R的异或运算得到掩码数据,以及依据该随机数R和待加密的输入数据进行字节替换时所使用的字节替换表生成新的字节替换表,然后基于所述掩码数据和所述新的字节替换表进行当前轮次的加密;其中,所述新的字节替换表使得所述掩码数据进行字节替换的运算结果与所述输入数据通过原字节替换表进行字节替换的运算结果相同。
9.如权利要求6所述的装置,其特征在于,该装置包括用于对所述待加密数据进行加密的数据加密模块,所述数据加密模块对所述待加密数据进行加密包括以下步骤:
生成非零随机值r,对运算字节a进行屏蔽得到a+x,对该随机值与屏蔽后的运算字节进行张量积运算得到r·(a+x);
对与运算字节a对应的屏蔽值x和随机值r进行张量积运算得到x·r,并对r·(a+x)与x·r进行异或运算得到a·r;
对异或结果a·r进行求逆运算得到a-1·r-1,对屏蔽值x和求逆后的随机值r-1进行张量积运算得到x·r-1,对a-1·r-1和x·r-1进行异或运算,对运算结果和随机值r进行张量积运算得到a-1+x。
10.如权利要求6所述的装置,其特征在于,在数据加密模块将加密过程中输出的中间结果存储于寄存器之前,先生成数量与中间结果的个数相同的多个不同的随机数,将生成的随机数与各寄存器进行配对,将输出的中间结果按照组别序号存储到与组别序号对应的随机数所配对的寄存器内,并在取出数据时,从与组别序号对应的随机数所配对的寄存器内取出中间结果进行后续运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110161640.0A CN112511292B (zh) | 2021-02-05 | 2021-02-05 | 安全芯片的工作性能检测及适应性引导方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110161640.0A CN112511292B (zh) | 2021-02-05 | 2021-02-05 | 安全芯片的工作性能检测及适应性引导方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112511292A CN112511292A (zh) | 2021-03-16 |
CN112511292B true CN112511292B (zh) | 2021-05-04 |
Family
ID=74953190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110161640.0A Active CN112511292B (zh) | 2021-02-05 | 2021-02-05 | 安全芯片的工作性能检测及适应性引导方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112511292B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530566A (zh) * | 2013-10-21 | 2014-01-22 | 中国科学院深圳先进技术研究院 | 一种检测诱导错误攻击下安全芯片安全性能的系统 |
CN107154843A (zh) * | 2017-05-18 | 2017-09-12 | 北京万协通信息技术有限公司 | 一种抗功耗攻击的sm4算法的硬件实现系统 |
CN110611559A (zh) * | 2019-08-21 | 2019-12-24 | 广东工业大学 | 基于算法层的抗侧信道攻击sm2点乘架构及其运算方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2345229B (en) * | 1998-12-23 | 2003-12-03 | Motorola Ltd | Method for encrypting data |
GB2453367A (en) * | 2007-10-04 | 2009-04-08 | Univ Newcastle | Cryptographic processing using isomorphic mappings of Galois fields |
CN103905182B (zh) * | 2014-04-25 | 2017-02-15 | 东南大学 | 基于动态改变中间数据存储位置的抗攻击方法及电路实现 |
CN108737073B (zh) * | 2018-06-22 | 2021-09-28 | 北京智芯微电子科技有限公司 | 分组加密运算中抵抗能量分析攻击的方法和装置 |
CN109936437B (zh) * | 2019-04-10 | 2020-01-31 | 衡阳师范学院 | 一种基于d+1阶掩码的抗功耗攻击方法 |
CN110190951B (zh) * | 2019-06-17 | 2022-09-27 | 中金金融认证中心有限公司 | 一种针对des算法l寄存器翻转的功耗攻击方法及系统 |
-
2021
- 2021-02-05 CN CN202110161640.0A patent/CN112511292B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530566A (zh) * | 2013-10-21 | 2014-01-22 | 中国科学院深圳先进技术研究院 | 一种检测诱导错误攻击下安全芯片安全性能的系统 |
CN107154843A (zh) * | 2017-05-18 | 2017-09-12 | 北京万协通信息技术有限公司 | 一种抗功耗攻击的sm4算法的硬件实现系统 |
CN110611559A (zh) * | 2019-08-21 | 2019-12-24 | 广东工业大学 | 基于算法层的抗侧信道攻击sm2点乘架构及其运算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112511292A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Barenghi et al. | Fault injection attacks on cryptographic devices: Theory, practice, and countermeasures | |
Kong et al. | Deconstructing new cache designs for thwarting software cache-based side channel attacks | |
CN1989726B (zh) | 用于执行加密计算的方法和装置 | |
KR101680918B1 (ko) | 특히 고차의 관측 공격에 대해 보호되는 암호화 회로 | |
Banik et al. | Analysis of software countermeasures for whitebox encryption | |
US9515820B2 (en) | Protection against side channels | |
US10678707B2 (en) | Data processing device and method for cryptographic processing of data | |
Yao et al. | Fault-assisted side-channel analysis of masked implementations | |
CA2424484A1 (en) | Method for strengthening the implementation of ecdsa against power analysis | |
US20130279692A1 (en) | Protecting modular exponentiation in cryptographic operations | |
Gupta et al. | Impact of side channel attack in information security | |
GB2399904A (en) | Side channel attack prevention in data processing by adding a random multiple of the modulus to the plaintext before encryption. | |
Genkin et al. | Cache vs. key-dependency: Side channeling an implementation of Pilsung | |
Atici et al. | An approach for isolating the sources of information leakage exploited in cache-based side-channel attacks | |
US20120257747A1 (en) | Method of secure cryptographic calculation, in particular, against attacks of the dfa and unidirectional type, and corresponding component | |
EP3935543B1 (en) | Side-channel-attack-resistant memory access on embedded central processing units | |
Xinjie et al. | Robust first two rounds access driven cache timing attack on AES | |
JP4386766B2 (ja) | データ処理装置における誤り検出 | |
CN112511292B (zh) | 安全芯片的工作性能检测及适应性引导方法及装置 | |
CN116610288A (zh) | 随机数生成方法及装置 | |
US20220237304A1 (en) | Data Processing Device and Method for Processing Secret Data | |
CN114428979A (zh) | 一种数据处理方法及装置、设备和系统 | |
Lasheras et al. | Lightweight protection of cryptographic hardware accelerators against differential fault analysis | |
Karri et al. | Parity-based concurrent error detection in symmetric block ciphers | |
Henricksen et al. | Side-channel analysis of the K2 stream cipher |
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 | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20210316 Assignee: Hangzhou Weiming Information Technology Co.,Ltd. Assignor: Zhejiang core Gravity Technology Co.,Ltd. Contract record no.: X2021330000325 Denomination of invention: Working performance detection and adaptive guidance method and device of security chip Granted publication date: 20210504 License type: Common License Record date: 20210927 |