CN113839769B - 防止侧信道攻击的方法、算术逻辑单元以及处理器 - Google Patents

防止侧信道攻击的方法、算术逻辑单元以及处理器 Download PDF

Info

Publication number
CN113839769B
CN113839769B CN202111134042.0A CN202111134042A CN113839769B CN 113839769 B CN113839769 B CN 113839769B CN 202111134042 A CN202111134042 A CN 202111134042A CN 113839769 B CN113839769 B CN 113839769B
Authority
CN
China
Prior art keywords
operator
module
operand
operated
logic unit
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
CN202111134042.0A
Other languages
English (en)
Other versions
CN113839769A (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN202111134042.0A priority Critical patent/CN113839769B/zh
Publication of CN113839769A publication Critical patent/CN113839769A/zh
Application granted granted Critical
Publication of CN113839769B publication Critical patent/CN113839769B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明提供一种防止侧信道攻击的方法、算术逻辑单元以及处理器,能够随机对具有周期性规律的算法中的加法运算以及减法运算进行改变,消除周期性规律,具体地,根据随机数选择原被操作数或被操作数的补数作为实际执行运算的被操作数,并根据随机数选择原运算符或相反的运算符作为实际执行运算的运算符,再执行运算,且最终运算结果与原目标运算的运算结果一致。由于使用被操作数进行运算与使用被操作数的补数进行运算在电信号、磁信号上具有很大差异,因此,本发明的方法能够在不改变运算结果的前提下消除算法的周期性规律导致的电信号、磁信号等的周期性规律,从而能够防止基于电信号、磁信号等的周期性规律的侧信道攻击。

Description

防止侧信道攻击的方法、算术逻辑单元以及处理器
技术领域
本发明涉及计算机领域以及信息安全领域,具体涉及一种防止侧信道攻击的方法、算术逻辑单元以及处理器。
背景技术
侧信道攻击是当前在信息密码学里面碰到的难题,侧信道攻击是指利用分析电路运行的时间消耗、功率消耗或电磁辐射之类侧信道泄露,探查电路运行规律的攻击手段。例如,在密钥算法中,能够通过时间片的分析,对应得到加解密程序中的循环指令的周期,进一步通过该周期和算法分析,能够推算出密钥的可能结果或规律。侧信道攻击的有效性远高于密码分析的数学方法,因此给密码设备带来了严重的威胁,当前非常需要防止侧信道攻击的方法及装置。
现有技术中,防止侧信道攻击的方法及装置多为对电路进行外部隔离或外部加干扰,这类方法及装置往往容易被硬件设备拆解方式破除保护层,因此,当前更需要能够从电路内部实现侧信道攻击防御的方法及装置。
发明内容
为解决上述问题,提供一种防止侧信道攻击的方法,本发明采用了如下技术方案:
本发明提供了一种防止侧信道攻击的方法,应用于具有周期性规律的算法中,用于消除周期性规律,算法中包含有目标运算,该目标运算为加法运算或减法运算,具有运算符、操作数以及被操作数,其特征在于,对每个目标运算,方法包括:步骤S1,获取随机数;步骤S2,获取运算符、操作数以及被操作数;步骤S3,计算被操作数的补数;步骤S4,根据随机数,选择被操作数或补数作为执行运算的被操作数;步骤S5,根据随机数选择运算符或者相反的运算符作为执行运算的运算符;步骤S6,基于执行运算的运算符、操作数以及执行运算的被操作数进行运算,得到最终运算结果,其中,最终运算结果等于目标运算的运算结果。
本发明提供的防止侧信道攻击的方法,还可以具有这样的技术特征,其中,步骤S3包括如下子步骤:步骤S3-1,对被操作数的每个二进制位进行取反;步骤S3-2,将取反后的被操作数加上1,得到补数。
本发明提供的防止侧信道攻击的方法,还可以具有这样的技术特征,其中,步骤S4包括如下子步骤:步骤S4-1,判断随机数是否为预定值;步骤S4-2,当步骤S4-1判断为是时,选择补数作为执行运算的被操作数;步骤S4-3,当步骤S4-1判断为否时,选择被操作数作为执行运算的被操作数。
本发明提供的防止侧信道攻击的方法,还可以具有这样的技术特征,其中,步骤S5包括如下子步骤:步骤S5-1,判断随机数是否为预定值;步骤S5-2,当步骤S5-1判断为是时,选择运算符作为执行运算的运算符;步骤S5-3,当步骤S5-1判断为否时,选择相反的运算符作为执行运算的运算符。
本发明提供一种算术逻辑单元,其特征在于,包括标识位获取模块,与随机数发生器连接,获取随机数作为翻转标识位;数据获取模块,用于获取运算符、操作数以及被操作数;预处理模块,基于翻转标识位对被操作数进行预处理;加法运算模块,基于操作数以及被操作数进行加法运算;减法运算模块,基于操作数以及被操作数进行减法运算;选择模块,基于翻转标识位和所述运算符的异或结果选择加法运算模块或减法运算模块执行运算,得到最终运算结果。
本发明提供的算术逻辑单元,还可以具有这样的技术特征,其中,当翻转标识位为预定值时,预处理模块计算被操作数的补数,并将补数作为执行运算的被操作数。
本发明提供的算术逻辑单元,还可以具有这样的技术特征,其中,加法运算模块具有加法器,减法运算模块具有减法器,翻转标识位分别连接到加法器的进位端以及减法器的借位端,从而实现补数的计算中加1的步骤。
本发明提供的算术逻辑单元,还可以具有这样的技术特征,其中,当翻转标识为预定值并且运算符为加法运算符时,选择模块选择减法运算模块执行运算,得到最终运算结果,当翻转标识为预定值并且运算符为减法运算符时,选择模块选择加法运算模块执行运算,得到最终运算结果。
本发明提供一种处理器,其特征在于,至少包括算术逻辑单元,其中,算术逻辑单元为上述的算术逻辑单元。
本发明提供的处理器,还可以具有这样的技术特征,其中,处理器为流水线处理器,具有多级流水线以及流水线存储模块,数据获取模块在第m级流水线获取运算符、操作数以及被操作数,选择模块在第n级流水线选择并得到最终运算结果,流水线存储模块将翻转标识位从第m级流水线存储至第n级流水线。
发明作用与效果
根据本发明的防止侧信道攻击的方法,能够随机地对具有周期性规律的算法中的加法运算以及减法运算进行改变,从而消除周期性规律,具体地,本发明的方法能够根据获取的随机数选择原本的被操作数或者被操作数的补数作为实际执行运算的被操作数,并根据随机数选择原本的运算符或相反的运算符作为实际执行运算的运算符,再进行加法或减法运算,并且最终运算结果与原目标运算的运算结果一致。由于使用被操作数进行运算与使用被操作数的补数进行运算在电信号、磁信号上具有很大差异,因此,本发明的方法能够在不改变运算结果的前提下消除算法的周期性规律导致的电信号、磁信号等的周期性规律,从而能够防止基于电信号、磁信号等的周期性规律的侧信道攻击。此外,本发明的方法还具有原理简单易懂、在电路上易于实现的优点。
附图说明
图1是本发明实施例中防止侧信道攻击的方法的流程图;
图2是本发明实施例中防止侧信道攻击的方法的步骤S3的流程图;
图3是本发明实施例中防止侧信道攻击的方法的步骤S4的流程图;
图4是本发明实施例中防止侧信道攻击的方法的步骤S5的流程图;
图5是本发明实施例中算术逻辑单元的结构框图;
图6是本发明实施例中算术逻辑单元的电路结构示意图;
图7是现有技术中算术逻辑单元的电路结构示意图;
图8是现有技术的算术逻辑单元的电流能量分析图;
图9是本发明实施例中算术逻辑单元的电流能量分析图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,以下结合实施例及附图对本发明的防止侧信道攻击的方法作具体阐述。
<实施例一>
本实施例提供一种防止侧信道攻击的方法、算术逻辑单元以及处理器。
本实施例中,具有周期性规律的算法为具有for循环语句的AES 加解密程序的子程序算法“addRoundKey”,该子程序算法包括如下代码:
从上述的代码可以看到,该子程序算法由两层嵌套的for循环组成,每个for循环都假设常数从0开始,递增到3结束,其中,外层的for循环具有控制循环次数的标志位i以及加法运算++i,内层的for 循环具有控制循环次数的标志位j以及加法运算++j。
由于每次执行++i、++j的程序步骤时,整个电路的行为是非常类似的,相应地消耗的电流能量也非常接近,因此能够基于电流能量的分析进行侧信道攻击。
本实施例的防止侧信道攻击的方法能够随机地改变上述子程序算法中的部分++i,++j的运算,将部分的++i(即i=i+1)转变为i= i–(-1),从而在保持运算结果不变的前提下消除上述的周期性规律。
图1是本发明实施例中防止侧信道攻击的方法的流程图。
如图1所示,本实施例的防止侧信道攻击的方法包括以下步骤:
步骤S1,获取随机数。
本实施例中,由随机数发生器所生成一个随机序列,该随机序列由0、1组成,其中的每一位作为应用于一个目标运算的随机数,也即随机数为0或1。
步骤S2,获取运算符、操作数以及被操作数。
本实施例中,目标运算为++i,也即i=i+1,运算符为加法运算符,操作数为i,被操作数为1。以下以i=2为例进行说明,同时,以下的运算均为8位固定位数的运算,当运算结果产生进位、超过8 位时,将移除运算结果的二进制最高位,以保持数据位数不变。
步骤S3,计算被操作数的补数。
图2是本发明实施例中防止侧信道攻击的方法的步骤S3的流程图。
如图2所示,本实施例的步骤S3具体包括以下子步骤:
步骤S3-1,对被操作数的每个二进制位进行取反;
步骤S3-2,将取反后的被操作数加上1,得到补数。
本实施例中,被操作数为1,其二进制表示为:00000001,对被操作数按位取反,得到:11111110,将取反后的被操作数加上“1”,得到补数为:11111111。本实例中加“1”的操作,在电路实现中,在加法中是将翻转标识位接到加法器进位端实现,在减法中是将翻转标识位接到减法器借位端实现,是一种具有创新性的高效实现。在后文将详细说明。
步骤S4,根据随机数,选择被操作数或补数作为执行运算的被操作数。
图3是本发明实施例中防止侧信道攻击的方法的步骤S4的流程图。
如图3所示,本实施例的步骤S4具体包括如下子步骤:
步骤S4-1,判断随机数是否为预定值;
步骤S4-2,当步骤S4-1判断为是时,选择补数作为执行运算的被操作数;
步骤S4-3,当步骤S4-1判断为否时,选择被操作数作为执行运算的被操作数。
本实施例中,预定值为1,当随机数为1时选择上述的补数作为执行运算的被操作数;当随机数为0时选择原本的被操作数作为执行运算的被操作数。
步骤S5,基于操作数所述执行运算的被操作数进行加法运算。
图4是本发明实施例中防止侧信道攻击的方法的步骤S5的流程图。
如图4所示,本实施例的步骤S5具体包括如下子步骤:
步骤S5-1,判断随机数是否为预定值;
步骤S5-2,当步骤S5-1判断为是时,选择运算符作为执行运算的运算符;
步骤S5-3,当步骤S5-1判断为否时,选择相反的运算符作为执行运算的运算符。
本实施例中,预定值为1,当随机数为1时,即为需要进行翻转运算,使用上述的补数以及相反的运算符进行运算,也即执行运算2 –(-1),其二进制表示为00000010–11111111,运算结果为 00000011;当随机数为0时,即执行原本的运算,也即执行运算2+1,其二制表示为00000010+00000001,运算结果为00000011。可以直观地看到,进行翻转运算后不改变原目标运算的运算结果,因此也不改变包含有该目标运算的子程序算法“addRoundKey”的功能。
本实施例还提供一种基于上述方法设计的算术逻辑单元。
图5是本发明实施例中算术逻辑单元的结构框图。
如图5所示,本实施例的算术逻辑单元20包括标识位获取模块 21、数据获取模块22、预处理模块23、加法运算模块24、减法运算模块25以及选择模块26。
其中,标识位获取模块21连接到随机数发生器,并采用上述的步骤S1的方法获取随机数作为翻转标识位;数据获取模块22采用上述的步骤S2的方法获取运算符、操作数以及被操作数;预处理模块 23采用上述的步骤S3和步骤S4的方法基于翻转标识位对被操作数进行预处理;选择模块26采用上述的步骤S5的方法基于翻转标识位和运算符的异或来选择加法运算模块或减法运算模块执行运算,并输出最终运算结果;加法运算模块24以及减法运算模块25分别根据上述的步骤S6的方法执行加法以及减法运算。
图6是本发明实施例中算术逻辑单元的电路结构示意图。
如图6所示,本实施例的算术逻辑单元20中,标识位获取模块 21包括标识位寄存器(即图6中的翻转标识位),数据获取模块22 包括寄存器堆A以及寄存器堆B,寄存器堆A用于获取操作数,寄存器堆B用于获取被操作数,预处理模块23包括取反器A以及取反选择器,加法运算模块24包括加法器、寄存器A、寄存器B以及取反器B,减法运算模块25包括减法器、移位器、寄存器C以及寄存器D,选择模块26包括运算选择器以及异或门。
标识位寄存器、寄存器堆A、寄存器堆B、取反器A、取反器B 以及移位器均具有输入端和输出端,加法器具有操作数输入端、被操作数输入端、进位输入端、进位输出端以及结果输出端,减法器具有操作数输入端、被操作数输入端、借位输入端、借位输出端以及结果输出端,取反选择器以及运算选择器均具有第一输入端、第二输入端、控制输入端以及结果输出端,寄存器A-D均具有输入端、输出端以及使能端,异或门具有第一输入端、第二输入端以及输出端。
如图6中所示,标识位寄存器的输入端连接到随机数发生器,标识位寄存器的输出端分别连接到取反选择器的控制输入端、加法器的进位输入端、减法器的借位输入端以及异或门的第一输入端,异或门的第二输入端连接到加减法译码器(即图6中的操作符译码),异或门的输出端分别连接到运算选择器的控制输入端、取反器B的输入端、寄存器C的使能端以及寄存器D的使能端,取反器B的输出端分别连接到寄存器A的使能端以及寄存器B的使能端,寄存器堆A 的输出端分别连接到寄存器A的输入端以及寄存器C的输入端,寄存器堆B的输出端分别连接到取反器A的输入端以及取反选择器的第一输入端,取反器A的输出端连接到取反选择器的第二输入端,取反选择器的输出端连接到移位器的输入端,移位器的输出端分别连接到寄存器B的输入端以及寄存器D的输入端,寄存器A的输出端连接到加法器的操作数输入端,寄存器B的输出端连接到加法器的被操作数输入端,寄存器C的输出端连接到减法器的操作数输入端,寄存器D的输出端连接到减法器的被操作数输入端,加法器的结果输出端连接到运算选择器的第一输入端,减法器的结果输出端连接到运算选择器的第二输入端,运算选择器的结果输出端连接到寄存器堆 A和B的输入端,输出最终运算结果。
本实施例中,随机数发生器所生成的随机数为随机序列,该随机序列由0和1组成,其中每一位作为一个翻转标识位。同时,标识位寄存器的输入端还分别连接到加法器的进位端和减法器的借位端,也即将翻转标识位的输入加法器的进位端和减法器的借位端,在翻转标识位为1时,也即用补数来进行计算时,以这样的结构来实现补数计算中加1的操作,从而简化电路结构,是一种高效的设计。
本实施例中,翻转标识位和操作符译码异或后对运算选择器进行控制,具体地,翻转标识位为0或1,其中0为执行原运算,1为执行翻转运算,操作符译码为0或1,其中0代表加法运算符,1代表减法运算符,两者进行异或后,即可使得在翻转运算时,运算选择器对于原加法选择减法器执行运算,对于原减法选择加法器执行运算。
同时,翻转标识位和操作符译码异或后还对寄存器A、B、C、D 进行控制,具体地,异或后的值输入寄存器C和D的使能端,异或后的值取反后输入寄存器A和B的使能端,由于寄存器A-D具有锁存功能,只在被使能的情况下工作(即使能端输入1),因此只有加法器和减法器的其中之一最终执行运算。
图7是现有技术中算术逻辑单元的电路结构示意图。
如图7所示,现有技术的算术逻辑单元包括寄存器堆A、寄存器堆B、取反器、取反选择器、移位器以及加法器。
寄存器堆A、寄存器堆B、取反器以及移位器均具有输入端和输出端,取反选择器具有第一输入端、第二输入端以及输出端,加法器具有操作数输入端、被操作数输入端、进位输入端、进位输出端以及结果输出端。
如图7所示,寄存器堆A的输出端连接到加法器的操作数输入端,寄存器堆B的输出端分别连接到取反器的输入端以及取反选择器的第一输入端,取反器的输出端连接到取反选择器的第二输入端,取反选择器的输出端连接到移位器的输入端,移位器的输出端连接到加法器的被操作数输入端,加法器的结果输出端连接到寄存器堆A 和B的结果输入端,输出最终运算结果。
如图7所示,现有技术的算术逻辑单元每次执行加1或减1的运算时,都经过相同的电路运算,再写加寄存器堆,电路行为极为相似,导致外部观察到的电流能量具有周期性的规律,从而能够基于该周期性规律进行侧信道攻击。
本实施例中,分别利用现有技术的算术逻辑单元以及本实施例的算术逻辑单元来模拟运行上述子程序算法“addRoundKey”,并分别观察两者的电流能量消耗情况。
图8是现有技术的算术逻辑单元的电流能量分析图。
如图8所示,采用统计方法对电流能量进行分析,能够看到,子程序算法每次经过for循环的常数递增运算(即++i、++j)时,会回到相同的电流能量消耗水平上,也即图8中虚线所示的电流能量消耗水平。
如图8所示,进一步加上时间节点的标识后,能够发现时间点t1-t6所对应的电流能量都基本一致,这是由于现有技术的算术逻辑单元在执行++i以及++j时整个电路的行为非常类似,因此电路消耗的电流能量也相当接近。基于图8中能量基本一致的时间点,就能够估计出整个for循环执行的时间周期。进一步,在这些时间周期的节点上打上断点,就能够让程序停止下来,此时就能够读取系统存储器中的数据,并基于读取到的数据推测出可能的密钥。因此,能够基于上述的电流能量检测及分析进行侧信道攻击。
图9是本发明实施例中算术逻辑单元的电流能量分析图。
如图8所示以及如上文的分析,时间点t1-t6分别对应于各个for 循环,而在图9中,时间点t1-t6所对应的电流能量不再处于同一水平,这是由于本实施例的算术逻辑单元随机地将加法变为减法、减法变为加法,同时由于使用补数进行运算导致的0和1的相互变化,电路的电流能量水平出现随机性,而不再具有上述的周期性规律。因此,采用本实施例的算术逻辑单元后,无法再基于上述的电流能量检测及分析进行侧信道攻击。
本实施例还提供一种处理器,该处理器包括上述的算术逻辑单元,因此同样能够随机对目标运算进行改变,从而防止侧信道攻击,该处理器的其他部分及连接方式可采用现有技术中的常规结构。
<实施例二>
本实施例提供一种防止侧信道攻击的方法、算术逻辑单元以及处理器。与实施例一相比,本实施例中,处理器为流水线处理器,在执行上述的目标运算时,运算符、操作数以及被操作数在第m级流水线被读取,加法器、减法器在第i级分别执行加法运算、减法运算,m≤i≤n,运算选择器在第n级根据翻转标识位来执行选择,因此,为了得到正确的运算结果,需要将翻转标识位的值从第m级流水线存储至第n级流水线。
本实施例中,处理器还具有流水线存储模块,用于将翻转标识位的值从第m级流水线存储至第n级流水线。
本实施例中,防止侧信道攻击的方法、算术逻辑单元以及处理器的其他部分与实施例一相同,因此不再重复说明。
实施例作用与效果
根据本发明实施例一提供的防止侧信道攻击的方法、算术逻辑单元以及处理器,能够随机地对具有周期性规律的算法中的加法运算以及减法运算进行改变,从而消除周期性规律,具体地,本发明的方法能够根据获取的随机数选择原本的被操作数或者被操作数的补数作为实际运算用的被操作数,并根据随机数选择原本的运算符或相反的运算符作为实际执行运算的运算符,再执行加法或减法运算,并且最终运算结果与原目标运算的运算结果一致。由于使用被操作数进行运算与使用被操作数的补数进行运算在电信号、磁信号上具有很大差异,因此,本发明的方法能够在不改变运算结果的前提下消除算法的周期性规律导致的电信号、磁信号等的周期性规律,从而能够防止基于电信号、磁信号等的周期性规律的侧信道攻击。此外,本发明的方法还具有原理简单易懂、在电路上易于实现的优点。
实施例一提供的算术逻辑单元20包括标识位获取模块21、数据获取模块22、预处理模块23、加法运算模块24、减法运算模块25 以及选择模块26,标识位获取模块21连接到随机数发生器,因此,能够获取随机数作为翻转标识位,进一步,预处理模块23以及选择模块26能够基于翻转标识位来随机地将被操作数转换为补数、并选择对应的运算模块来执行运算,并且操作数的转换和运算模块的选择具有对应关系,因此,在不改变运算结果的前提下随机地改变了电路的行为,使得电路的电流能量水平不再具有周期性规律,从而能够防止侧信道攻击。
实施例一还提供了一种处理器,包括上述的算术逻辑单元20,因此同样能够随机地对目标运算进行上述的改变,从而防止侧信道攻击。
实施例二还提供了一种处理器,该处理器为流水线处理器,与实施例一相比,处理器还具有流水线存储模块,用于将翻转标识位的值从第m级流水线存储至第n级流水线,因此,算术逻辑单元20能够在第m级进行运算符、操作数以及被操作数的读取,在第m级至第 n级进行加法、减法运算的执行以及运算选择的执行并得到目标运算的正确运算结果,因此,防止侧信道攻击的方法以及算术逻辑单元 20也能够应用于流水线处理器。
上述实施例仅用于举例说明本发明的具体实施方式,而本发明不限于上述实施例的描述范围。
在上述实施例中,防止侧信道攻击的方法被应用于具有周期性规则的算法中,该算法为具有for循环的AES加解密程序,在实际应用中,防止侧信道攻击的方法及算术逻辑单元不止可以应用于具有周期性规律的算法中,任何软件中的加法以及减法运算都可以采用本发明的方法及算术逻辑电路,以掩盖真实的操作。
在上述实施例中,防止侧信道攻击的方法被应用于8位二进制固定位数的加法运算,在实际应用中,也可以应用于其他位数的二进制固定位数的加法运算、减法运算,如23位、64等的运算。
在上述实施例的算术逻辑单元中,标识位寄存器的输入端连接到随机数发生器,从而得到一个随机值序列作为多个翻转标识位,在实际应用中,也可以采用其他方式得到与运算周期逻辑不相关的值作为翻转标识位。

Claims (7)

1.一种防止侧信道攻击的方法,应用于具有周期性规律的算法中,用于消除所述周期性规律,所述算法中包含有目标运算,该目标运算为加法运算或减法运算,具有运算符、操作数以及被操作数,其特征在于,对每个所述目标运算,所述方法包括:
步骤S1,获取随机数;
步骤S2,获取所述运算符、所述操作数以及所述被操作数;
步骤S3,计算所述被操作数的补数;
步骤S4,根据所述随机数,选择所述被操作数或所述补数作为执行运算的被操作数;
步骤S5,根据所述随机数选择所述运算符或者相反的运算符作为执行运算的运算符;
步骤S6,基于所述执行运算的运算符、所述操作数以及所述执行运算的被操作数进行运算,得到最终运算结果,
其中,所述最终运算结果等于所述目标运算的运算结果,
步骤S4包括如下子步骤:
步骤S4-1,判断所述随机数是否为预定值;
步骤S4-2,当步骤S4-1判断为是时,选择所述补数作为所述执行运算的被操作数;
步骤S4-3,当步骤S4-1判断为否时,选择所述被操作数作为所述执行运算的被操作数,
步骤S5包括如下子步骤:
步骤S5-1,判断所述随机数是否为预定值;
步骤S5-2,当步骤S5-1判断为是时,选择所述运算符作为所述执行运算的运算符;
步骤S5-3,当步骤S5-1判断为否时,选择所述相反的运算符作为所述执行运算的运算符。
2.根据权利要求1所述的防止侧信道攻击的方法,其特征在于:
其中,步骤S3包括如下子步骤:
步骤S3-1,对所述被操作数的每个二进制位进行取反;
步骤S3-2,将取反后的所述被操作数加上1,得到所述补数。
3.一种算术逻辑单元,其特征在于,包括:
标识位获取模块,与随机数发生器连接,获取随机数作为翻转标识位;
数据获取模块,用于获取运算符、操作数以及被操作数;
预处理模块,基于所述翻转标识位对所述被操作数进行预处理,得到预处理后的被操作数;
加法运算模块,基于所述操作数以及所述预处理后的被操作数进行加法运算;
减法运算模块,基于所述操作数以及所述预处理后的被操作数进行减法运算;
选择模块,基于所述翻转标识位和所述运算符的异或结果选择所述加法运算模块或所述减法运算模块执行运算,得到最终运算结果,
其中,当所述翻转标识为预定值并且所述运算符为加法运算符时,所述选择模块选择所述减法运算模块执行运算,得到所述最终运算结果,
当所述翻转标识为所述预定值并且所述运算符为减法运算符时,所述选择模块选择所述加法运算模块执行运算,得到所述最终运算结果。
4.根据权利要求3所述的算术逻辑单元,其特征在于:
其中,当所述翻转标识位为预定值时,所述预处理模块计算所述被操作数的补数,并将所述补数作为执行运算的被操作数。
5.根据权利要求4所述的算术逻辑单元,其特征在于:
其中,所述加法运算模块具有加法器,
所述减法运算模块具有减法器,
所述翻转标识位分别连接到所述加法器的进位端以及所述减法器的借位端,从而实现所述补数的计算中加1的步骤。
6.一种处理器,其特征在于,至少包括:
算术逻辑单元,
其中,所述算术逻辑单元为权利要求3-5中任意一项所述的算术逻辑单元。
7.根据权利要求6所述的处理器,其特征在于:
其中,所述处理器为流水线处理器,具有多级流水线以及流水线存储模块,
所述数据获取模块在第m级流水线获取所述运算符、所述操作数以及所述被操作数,
所述选择模块在第n级流水线选择并得到所述最终运算结果,
所述流水线存储模块将所述翻转标识位从所述第m级流水线存储至所述第n级流水线。
CN202111134042.0A 2021-09-27 2021-09-27 防止侧信道攻击的方法、算术逻辑单元以及处理器 Active CN113839769B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111134042.0A CN113839769B (zh) 2021-09-27 2021-09-27 防止侧信道攻击的方法、算术逻辑单元以及处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111134042.0A CN113839769B (zh) 2021-09-27 2021-09-27 防止侧信道攻击的方法、算术逻辑单元以及处理器

Publications (2)

Publication Number Publication Date
CN113839769A CN113839769A (zh) 2021-12-24
CN113839769B true CN113839769B (zh) 2023-08-22

Family

ID=78970627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111134042.0A Active CN113839769B (zh) 2021-09-27 2021-09-27 防止侧信道攻击的方法、算术逻辑单元以及处理器

Country Status (1)

Country Link
CN (1) CN113839769B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114679251B (zh) * 2022-05-26 2022-10-18 广州万协通信息技术有限公司 一种可重构阵列抗功耗攻击方法、装置、设备及存储介质
CN115426004B (zh) * 2022-11-04 2023-10-24 摩尔线程智能科技(北京)有限责任公司 用于抑制信号线中电磁辐射的装置、方法和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107689863A (zh) * 2017-09-05 2018-02-13 成都三零嘉微电子有限公司 一种算术加法掩码转布尔异或掩码的防护电路
CN108055126A (zh) * 2017-12-11 2018-05-18 哈尔滨理工大学 基于随机加法链的抗功耗攻击的方法
CN108521325A (zh) * 2018-03-27 2018-09-11 林喆昊 一种适用于系统数据全生命周期的防侧信道攻击算法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441560B (zh) * 2007-11-23 2012-09-26 国际商业机器公司 执行基于上下文模型的面向服务架构的策略的方法和装置
US20130301826A1 (en) * 2012-05-08 2013-11-14 Intel Corporation System, method, and program for protecting cryptographic algorithms from side-channel attacks
KR102653018B1 (ko) * 2019-01-16 2024-03-29 삼성전자주식회사 랜덤 넘버를 이용하여 나머지 연산을 수행하는 보안 프로세서 및 이의 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107689863A (zh) * 2017-09-05 2018-02-13 成都三零嘉微电子有限公司 一种算术加法掩码转布尔异或掩码的防护电路
CN108055126A (zh) * 2017-12-11 2018-05-18 哈尔滨理工大学 基于随机加法链的抗功耗攻击的方法
CN108521325A (zh) * 2018-03-27 2018-09-11 林喆昊 一种适用于系统数据全生命周期的防侧信道攻击算法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于布尔异或掩码转算术加法掩码的安全设计";饶金涛;《通信技术》;全文 *

Also Published As

Publication number Publication date
CN113839769A (zh) 2021-12-24

Similar Documents

Publication Publication Date Title
CN113839769B (zh) 防止侧信道攻击的方法、算术逻辑单元以及处理器
Bayrak et al. Sleuth: Automated verification of software power analysis countermeasures
Biryukov et al. Optimal first-order Boolean masking for embedded IoT devices
US11392672B2 (en) Computer program code obfuscation methods and systems
US11822704B2 (en) Constant time secure arithmetic-to-Boolean mask conversion
JP2006522375A (ja) データ処理システムにおける処理動作マスキング
Chowdhuryy et al. Branchspec: Information leakage attacks exploiting speculative branch instruction executions
US10897344B2 (en) Performing cryptographic data processing operations in a manner resistant to external monitoring attacks
US20220085999A1 (en) System and method to optimize decryption operations in cryptographic applications
Rass et al. On the security of a universal cryptocomputer: the chosen instruction attack
US20190140821A1 (en) A system and method for efficient and secure implementation of ls-designs
CN109804596B (zh) 具有加掩码的输入的可编程块密码器
US20090125728A1 (en) Security method of system by encoding instructions
Thirumoorthi et al. Design and evaluation of a hybrid chaotic-bistable ring PUF
Gu et al. White-box cryptography: practical protection on hostile hosts
US20200210626A1 (en) Secure branch predictor with context-specific learned instruction target address encryption
Chakraborty et al. Template attack on SPA and FA resistant implementation of montgomery ladder
Yavarzadeh et al. Pathfinder: High-Resolution Control-Flow Attacks Exploiting the Conditional Branch Predictor
Breier On analyzing program behavior under fault injection attacks
Chavda Side-Channel Attacks in RISC-V BOOM Front-End
TWI842789B (zh) 用於目標位址加密的設備、系統及方法
Yan et al. An anti-power attack circuit design for block cipher
US12021969B2 (en) Functions with a pre-charge operation and an evaluation operation
US20230093306A1 (en) Protection of cryptographic substitution-permutation networks from fault injection attacks
Lopes Breaking security of crypto systems using cache side-channel attack

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