掌桥专利:专业的专利平台
掌桥专利
首页

一种高隐蔽性硬件木马电路及其控制方法

文献发布时间:2024-04-18 19:54:45


一种高隐蔽性硬件木马电路及其控制方法

技术领域

本发明涉及加解密技术领域,尤其涉及一种高隐蔽性硬件木马电路及其控制方法。

背景技术

AES加密算法全称高级加密标准(Advanced Encryption Standard,AES),由美国国家标准与技术研究院提出,是一种对称分组密码算法,明文长度固定为128位,密钥长度有三种,分别为128、192和256位,对应的迭代轮数分别为10轮、12轮和16轮。

AES密码电路主要由密钥加(AddRoundKey)模块、轮变换模块和密钥扩展模块组成,其中轮变换模块包括行移位(ShiftRow)模块、字节替换(SubBytes)模块、列混淆(MixColumns)模块、轮密钥加模块和(Round Registers)。计数器(Round Count)为密钥扩展模块的辅助模块。

AES加密流程为明文(Plaintext)和密钥(Key)在密钥加模块中进行按位异或运算后,作为轮边换的输入进行10轮轮变换运算,其中前9轮包括字节替换、行移位、列混淆和轮密钥加运算,第10轮只有字节替换、行移位和轮密钥加运算。第10轮轮变换的输出即为完成加密后的输出密文(Ciphertext)。密钥扩展模块根据输入的密钥,为10轮轮变换生成10个轮密钥。为了节约资源,减小电路面积,数据以32位进行运算,直至最后输出时才合并为128位。

硬件木马的概念最早由IBM沃森研究中心等研究机构于2007年首次提出。目前,不同学者所提出硬件木马概念并不一致。总结相关的研究成果可以认为,硬件木马主要是指:在集成电路或电子系统中有意或无意设计的缺陷模块。在某些特殊情况下,攻击者可以利用该模块达到恶意目的。硬件木马可以独自对电路施加攻击,包括降低电路性能、向外界泄露机密信息,甚至直接造成电路被破坏,也可以与软件相结合,进行协同攻击。

为了避免被检测到,硬件木马在大多数情况下一般处于静默状态。只有在极少数特定的条件下,硬件木马才会被激活。之前设计的多数硬件木马,为了达到这个目的,通常会利用电路中低翻转率节点,或者利用电路的罕见状态,生成低翻转概率节点,以此来激活硬件木马。学者们根据这个特点,提出了基于翻转概率分析的硬件木马检测方法。

而目前抗翻转概率分析的硬件木马常使用POS(product of sum)策略来躲避检测,POS策略是将电路的组合逻辑由式(1)改写为式(2):

f=f

f=(f

其中f是组合逻辑的输出,f

发明内容

发明目的:本发明的目的是提供一种能躲避基于翻转概率分析的检测技术以及密码芯片的机密信息泄露的高隐蔽性硬件木马电路及其控制方法。

技术方案:本发明的高隐蔽性硬件木马电路,包括触发电路和负载电路,所述触发电路包括木马寄存器、第一寄存器、第二寄存器、反相器、选择器、与非门;所述负载电路包括第一或门、第二或门、与门;还包括:第一初始触发信号pri_tri0、第二初始触发信号pri_tri1、第三初始触发信号pri_tri2、AES电路字节替换模块输出端口sb_out和木马电路的输出端口ht_out;

所述第一初始触发信号pri_tri0与木马寄存器的rst复位端口相连接;

所述第二初始触发信号pri_tri1一端与木马寄存器的en使能端口相连接,另一端与与非门的的输入端相连接;

所述第三初始触发信号pri_tri2与与非门NAND的输入端相连接;

所述反相器与第二木马寄存器输出端out1相连接;

所述选择器的一个输入端连接到第一木马寄存器输出端out0,另一个输入端连接到反相器的输出端,控制信号输入端连接到第一木马寄存器输出端out0;

所述第一寄存器的输入端D连接到选择器的输出端,使能端ENB的输入端连接到与非门的输出端;

所述第二寄存器的输入端D连接到第二木马寄存器输出端out1,使能端ENB的输入端连接到与非门的输出端;

所述第一或门的一个输入端连接到第一寄存器的输出端Q,另一个输入端连接到AES电路字节替换模块输出端口sb_out;

所述第二或门的一个输入端连接到第二寄存器的输出端Q,另一个输入端连接到AES电路字节替换模块输出端口sb_out;

所述与门的一个输入端口连接到第一或门的输出端口,另一个输入端口连接到第二或门的输出端口;

所述木马电路输出端口ht_out连接到与门的输出端口。

进一步,第一初始触发信号pri_tri0、第二初始触发信号pri_tri1为AES电路中轮寄存器中32位数据中的任意两位的输出;

所述木马寄存器用来接收初始触发信号,并输出触发信号,触发信号在经过反相器与第一寄存器、第二寄存器后连接到负载电路;

所述第三初始触发信号pri_tri2、与非门和两个寄存器的功能是使触发电路的输出能稳定保持4个时钟周期。

进一步,所述木马寄存器的电路结构包括:第三寄存器、第四寄存器、第五寄存器、第六寄存器、第七寄存器、第八寄存器、第九寄存器、异或门,还包括复位信号rst、使能信号en、第一输出信号out0、第二输出信号out1;

所述使能信号en分别连接到第三寄存器、第四寄存器、第五寄存器、第六寄存器、第七寄存器、第八寄存器、第九寄存器的ENB端口;

所述复位信号rst分别连接到第三寄存器、第四寄存器、第五寄存器、第六寄存器、第七寄存器、第八寄存器、第九寄存器的CLR端口;

所述第三寄存器的输出端口Q连接到第四寄存器的输入端口D;

所述第四寄存器的输出端口Q连接到第五寄存器的输入端口D;

所述第五寄存器的输出端口Q连接到第六寄存器的输入端口D;

所述第六寄存器的输出端口Q分别连接到第七寄存器的输入端口D、异或门的输入端口、第一输出信号out0;

所述第七寄存器的输出端口Q分别连接到第八寄存器的输入端口D、第二输出信号out1;

所述第八寄存器的输出端口Q连接到第九寄存器的输入端口D;

所述第九寄存器的输出端口Q连接到异或门的输入端口;

所述异或门的输出端口连接到第七寄存器的输入端口D;

所述木马寄存器初始状态下A

所述木马寄存器在接收初始触发信号时,当rst=0、en=0时,木马寄存器保持原状态;当rst=0、en=1时,木马寄存器跳转到下一状态;当rst=1、en=0或en=1时,木马寄存器重置为初始状态;

所述木马寄存器包括13个状态:“S0”、“S1”、“S2”、“S3”、“S4”、“S5”、“S6”、“S7”、“S8”、“S9”、“S10”、“S11”、“S12”、“S13”、“S14”、“S15”、“S16”、“S17”、“S18”、“S19”、“S20”、“S21”、“S22”、“S23”;

所述状态中“S15”、“S19”、“S23”的第一输出信号out0、第二输出信号out1均为1,为木马电路的“激活状态”;其他状态下,木马电路均处于“静默状态”。

进一步,所述负载电路由两个或门以及一个与门构成,采用POS策略改变电路的逻辑组合输出,避免电路中产生低翻转概率信号。

一种高隐蔽性硬件木马电路的控制方法,通过初始触发信号输入端口输入触发信号,在初始触发信号的控制下,电路在两种状态下转换,两种状态分别为:“静默状态”和“激活状态”;

所述“静默状态”,为木马寄存器未触发时电路的工作状态,此时木马寄存器中各个寄存器未达到指定的触发状态,第一输出信号out0和第二输出信号out1不全为1,因此负载电路的输出仍为AES电路字节替换模块的输出sb_out;

所述“激活状态”,为木马寄存器触发时电路的工作状态,此时木马寄存器在初始触发信号的影响下达到触发状态,第一输出信号out0和第二输出信号out1全为1,因此负载电路的输出变为全1。

进一步,在“静默状态”下,其触发方法具体包括以下步骤:

SA1,输入第一初始触发信号pri_tri0、第二初始触发信号pri_tri1,当初始触发信号未使木马寄存器状态跳转到“S15”、“S19”、“S23”时,第一寄存器输出的tir_out0以及第二寄存器输出的tri_out1不全为1;

SA2,输入AES电路字节替换模块输出sb_out;

SA3,当第一寄存器输出的tir_out0以及第二寄存器输出的tri_out1不全为1,负载电路的输出仍为sb_out,此时木马电路未篡改AES电路的密文。

进一步,在“激活状态”下,其触发方法具体包括以下步骤:

SB1,输入第一初始触发信号pri_tri0、第二初始触发信号pri_tri1,当初始触发信号使木马寄存器状态跳转到“S15”、“S19”、“S23”时,第一寄存器输出的tir_out0以及第二寄存器输出的tri_out1全为1;

SB2,输入AES电路字节替换模块输出sb_out;

SB3,当第一寄存器输出的tir_out0以及第二寄存器输出的tri_out1全为1,sb_out分别与tir_out0、tri_out1进行或操作,再进行与操作后,输出的密文全为1,需要控制第三初始触发信号pri_tri2,使第一寄存器输出的tir_out0以及第二寄存器输出的tri_out1能保持4个时钟周期,此时木马电路已篡改AES电路的密文。

本发明与现有技术相比,其显著效果如下:

1、本发明在POS策略的基础上,设计一个不包含低翻转概率信号的时序硬件木马,保证木马不被翻转概率分析的检测出来,并将其植入到AES密码电路中,用于窃取密钥;

2、通过设计木马寄存器以及使用POS策略来提高其隐蔽性,使用电路中的高翻转概率信号作为硬件木马的复位信号,阻止硬件木马到达触发状态;由于复位信号的高翻转率,硬件木马很难被激活,由此在不使用电路中低翻转率信号的情况下,达到令硬件木马长时间处于静默状态的目的,以躲避基于翻转概率分析的检测技术以及密码芯片的机密信息泄露,实现高隐蔽性。

附图说明

图1为本发明含木马寄存器详细电路结构的总电路图;

图2为使用POS策略前后的触发电路

图3为本发明植入硬件木马的AES密码电路示意图;

图4为硬件木马结构示意图;

图5为木马寄存器结构示意图;

图6为木马寄存器的有限状态机示意;

图7LFSR的电路结构。

具体实施方式

下面结合说明书附图和具体实施方式对本发明做进一步详细描述。

如图1所示,本发明的硬件木马电路包括触发电路和负载电路。本实施例中所攻击的AES密码电路,其输入密钥位数为128位。

如图2所示,为使用POS策略前后的触发电路对比,本实施例中,

将ht_out=sb_out+tri_out0·triout1的逻辑电路转换为:

tri_out=(sb_out+tri_out0)·(sb_out+tri_out1)。

如图3所示,为植入了硬件木马的AES密码电路。考虑到基于AES密码电路的硬件木马主要是为了破解密钥,所以硬件木马植入位置选在了AES加密算法的最后一轮运算过程中。

木马寄存器中的第一初始触发信号pri_tri0和第二初始触发信号pri_tri1来自于轮寄存器,从32位分组数据中选择任意两位,用以生成激活木马的触发信号。字节替换模块的输出sb_out被硬件木马替换为ht_out。硬件木马未被激活时,ht_out与sb_out相同。当硬件木马被激活时,ht_out为全1。如果硬件木马在前9轮轮变换过程中被激活,选择器将会选择列混淆模块的输出作为轮密钥加模块的输入,因此硬件木马对电路输出没有影响。当硬件木马在最后一轮轮变换时被激活,全1信号将会进入轮密钥加模块与最后一轮轮密钥进行按位异或运算,然后作为密文输出。此时输出密文被篡改,可以通过按位取反得到最后一轮轮密钥,然后即可通过反推得到输入密钥。

图4为具体的硬件木马电路结构。触发电路包括木马寄存器、第一寄存器D1、第二寄存器D2、反相器N、选择器MUX、与非门NAND,负载电路包括第一或门OR1、第二或门OR2、与门AND,还包括:第一初始触发信号pri_tri0、第二初始触发信号pri_tri1、第三初始触发信号pri_tri2、AES电路字节替换模块输出端口sb_out和木马电路的输出端口ht_out;

如图4所示,第一初始触发信号pri_tri0与木马寄存器的rst复位端口相连接;第二初始触发信号pri_tri1一端与木马寄存器的en使能端口相连接,另一端与与非门的NAND的输入端相连接;第三初始触发信号pri_tri2与与非门NAND的输入端相连接;反相器N与第二木马寄存器输出端out1相连接;选择器MUX的一个输入端连接到第一木马寄存器输出端out0,另一个输入端连接到反相器N的输出端,控制信号输入端连接到第一木马寄存器输出端out0;第一寄存器D1的输入端D连接到选择器MUX的输出端,使能端ENB的输入端连接到与非门NAND的输出端;第二寄存器D2的输入端D连接到第二木马寄存器输出端out1,使能端ENB的输入端连接到与非门NAND的输出端;第一或门OR1的一个输入端连接到第一寄存器D1的输出端Q,另一个输入端连接到AES电路字节替换模块输出端口sb_out;第二或门OR2的一个输入端连接到第二寄存器D2的输出端Q,另一个输入端连接到AES电路字节替换模块输出端口sb_out;与门AND的一个输入端口连接到第一或门OR1的输出端口,另一个输入端口连接到第二或门OR2的输出端口;木马电路输出端口ht_out连接到与门AND的输出端口。

图4中,第一初始触发信号pri_tri0和第二初始触发信号pri_tri1为轮寄存器中32位数据中的任意两位;第三初始触发信号pri_tri2是在木马寄存器激活后,保持触发电路的输出4个周期,因为AES密码电路中明文数据被拆分为32位进行运算。因此,当硬件木马电路被激活时,一个时钟周期内只能改变32位数据,而要感染全部的128位数据,需要控制第三初始触发信号pri_tri2使触发信号保持4个时钟周期。

图5为木马寄存器的具体结构。木马寄存器电路结构包括:第三寄存器D3、第四寄存器D4、第五寄存器D5、第六寄存器D6、第七寄存器D7、第八寄存器D8、第九寄存器D9、异或门XOR,还包括复位信号rst、使能信号en、第一输出信号out0、第二输出信号out1;使能信号en分别连接到第三寄存器D3、第四寄存器D4、第五寄存器D5、第六寄存器D6、第七寄存器D7、第八寄存器D8、第九寄存器D9的ENB端口;复位信号rst分别连接到第三寄存器D3、第四寄存器D4、第五寄存器D5、第六寄存器D6、第七寄存器D7、第八寄存器D8、第九寄存器D9的CLR端口;第三寄存器D3的输出端口Q连接到第四寄存器D4的输入端口D;第四寄存器D4的输出端口Q连接到第五寄存器D5的输入端口D;第五寄存器D5的输出端口Q连接到第六寄存器D6的输入端口D;第六寄存器D6的输出端口Q分别连接到第七寄存器D7的输入端口D、异或门XOR的输入端口、第一输出信号out0;第七寄存器D7的输出端口Q分别连接到第八寄存器D8的输入端口D、第二输出信号out1;第八寄存器D8的输出端口Q连接到第九寄存器D9的输入端口D;第九寄存器D9的输出端口Q连接到异或门XOR的输入端口;异或门XOR的输出端口连接到第七寄存器D7的输入端口D;

木马寄存器初始状态下A

图6为木马寄存器的有限状态机。马寄存器括13个状态:“S0”、“S1”、“S2”、“S3”、“S4”、“S5”、“S6”、“S7”、“S8”、“S9”、“S10”、“S11”、“S12”、“S13”、“S14”、“S15”、“S16”、“S17”、“S18”、“S19”、“S20”、“S21”、“S22”、“S23”。其中,rst为第一初始触发信号pri_tri0,en为第二初始触发信号pri_tri1。13个状态中“S15”、“S19”、“S23”状态的输出out0、out1均为1,为木马寄存器的“激活状态”;此外所有状态的木马寄存器均处于“静默状态”。

“静默状态”触发条件如下:

如图6所示,当32位轮寄存器中的选定两位数据第一初始触发信号pri_tri0和第二初始触发信号pri_tri1未能使木马寄存器的状态机连续跳转到状态“S15”、“S19”或“S23”时,输出out0和out1有如下几种情况:

A1,out0=0、out1=0。选择器MUX选择“0”端输入,out1经过反相器N后变为1,所以此时d0=1,输出给负载电路的tri_out0=1、tri_out1=0。tri_out0与32位字节替换模块的输出sb_out的每一位进行或操作,输出为全1信号;tri_out1与32位字节替换模块的输出sb_out的每一位进行或操作,输出还为sb_out;32位sb_out再与32位全1信号作为与门AND的输入进行与操作,输出仍为sb_out。

A2,out0=0、out1=1。选择器MUX选择“0”端输入,out1经过反相器N后变为0,所以此时d0=0,输出给负载电路的tri_out0=0、tri_out1=1。tri_out0与32位字节替换模块的输出sb_out的每一位进行或操作,输出为sb_out;tri_out1与32位字节替换模块的输出sb_out的每一位进行或操作,输出为sb_out全1信号;32位sb_out再与32位全1信号作为与门AND的输入进行与操作,输出仍为sb_out。

A3,out0=1、out1=0。选择器MUX选择“1”端输入,所以此时d0=1,输出给负载电路的tri_out0=1、tri_out1=0。tri_out0与32位字节替换模块的输出sb_out的每一位进行或操作,输出为全1信号;tri_out1与32位字节替换模块的输出sb_out的每一位进行或操作,输出还为sb_out;32位sb_out再与32位全1信号作为与门AND的输入进行与操作,输出仍为sb_out。

因此,在“静默状态”下,硬件木马电路未触发,输出给AES密码电路的ht_out认为AES密码电路中的sb_out。此时,无需控制第三初始触发信号pri_tri2,因为无论第一寄存器D1和第二寄存器D2是否使能,负载电路的输出都是sb_out。

“激活状态”触发条件如下:

如图6所示,当32位轮寄存器中的选定两位数据pri_tri0和pri_tri1使木马寄存器的状态机连续跳转到状态“S15”、“S19”或“S23”时,此时输出out0=1、out1=1,选择器选择“1”端输入,此时d0=1,输出给负载电路的tri_out0=1、tri_out1=1。tri_out0与32位字节替换模块的输出sb_out的每一位进行或操作,输出为全1;tri_out1与32位字节替换模块的输出sb_out的每一位进行或操作,输出还为全1;32位全1信号再与32位全1信号作为与门AND的输入进行与操作,输出仍为32位全1信号。此时,ht_out输出给AES密码电路的数据是遭到篡改的密文数据,但由于输入的pri_tri0和pri_tri1是高翻转概率信号,所以在激活木马电路后要想篡改128位的密文数据,就要控制第三初始触发信号pri_tri2使触发电路的输出保持4个时钟周期。如图6所示,当木马寄存器刚好达到触发状态“S15”、“S19”或“S23”时,pri_tri0=0且pri_tri1=1,而下一时钟周期,可能会有以下变化:

B1,第一初始触发信号pri_tri0=0且第二初始触发信号pri_tri1=0。此时输入给木马寄存器的rst=0,en=0,木马寄存器保持在原状态,因此无论控制第三初始触发信号pri_tri2输出0或1,都可以使tri_out0和tri_out1仍为1。

B2,第一初始触发信号pri_tri0=1且第二初始触发信号pri_tri1=1,此时输入给木马寄存器的rst=1,en=1,木马寄存器复位,状态跳转回“S0”,此时,为了保证下一组32位密文被篡改,需要控制第三初始触发信号pri_tri2=1,使与非门NAND输出给第一寄存器D1和第二寄存器D2的使能端ENB的信号为0,让第一寄存器D1和第二寄存器D2保持上一时钟周期的输出,也就是tri_out0=1、tri_out1=1。

B3,第一初始触发信号pri_tri0=0且第二初始触发信号pri_tri1=1。此时输入给木马寄存器的rst=0,en=1,木马寄存器跳转到下一状态,而“S13”、“S19”或“S23”的下一状态都属于“静默状态”,需要控制第三初始触发信号pri_tri2=1,使与非门NAND输出给第一寄存器D1和第二寄存器D2的使能端ENB的信号为0,让第一寄存器D1和第二寄存器D2保持上一时钟周期的输出,也就是tri_out0=1、tri_out1=1。

当木马寄存器跳转到“激活状态”时,通过上述方式控制第三初始触发信号pri_tri2信号,使触发电路保持输出tri_out0=1、tri_out1=1四个时钟周期,完成128位密文的篡改。密文被篡改后,输出到轮密钥加模块,与最后一轮的密钥进行异或操作,由于此时密文为128位全1数据,因此只需要将轮密钥加模块的输出按位取反得到最后一轮密钥,然后通过AES加密算法反推得到AES电路的初始输入密钥。

本发明在POS策略的基础上,设计一个不包含低翻转概率信号的时序硬件木马,为了验证本发明硬件木马电路中的木马寄存器在消除低翻转概率信号能力的优越性,将硬件木马电路与LFSR(Linear Feedback Shift Registers)和4位计数器的信号翻转率进行对比实验,对这三个电路给予相同输入,统计其输出的翻转概率。

LFSR电路结构如图7所示,设LFSR处于初始状态时,Q3 Q2 Q1 Q0=0001,低概率事件设为Q3 Q2 Q1 Q0=1000;4位计数器初始状态时,输出为0000,低概率事件设为输出为1111。4位计数器的低概率事件相当于木马寄存器达到状态S15,LFSR的低概率事件相当于木马寄存器达到状态S14。硬件木马电路中木马寄存器的低概率事件可以近似认为达到状态S15,因此可以认为这三个电路的低概率事件发生的概率相近。

使用Synopsys公司的VCS仿真工具,对原始AES密码电路输入1000个随机明文进行仿真,从仿真生成的saif文件中提取所有信号的翻转概率信息。本发明中的木马寄存器信号翻转概率最低为0.051,而4位计数器的翻转概率最低为0.001,将LFSR的翻转率最低为0.032;因此木马寄存器消除低翻转概率信号的能力要高于其他两种电路。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 一种软硬件控制高可靠开关机电路
  • 能检测不活跃硬件木马的电路安全可测性设计方法及对硬件木马的检测方法
  • 基于电源隔离的提高硬件木马检测分辨率的电路设计方法及对硬件木马的检测方法
技术分类

06120116381392