技术特征:
1.一种基于数字真随机数生成器的抗功耗攻击sm4加密电路,其特征在于,包括:数字真随机数生成器、轮变换模块、密钥扩展模块、轮计数模块、输入输出选择模块和状态控制中心模块;所述数字真随机数生成器与所述状态控制中心模块和所述输入输出选择模块连接,用于产生随机变量;所述随机变量作为控制信号输入到所述状态控制中心模块,一旦所述状态控制中心模块检测到随机变量为特定值时,便会执行随机化操作;所述随机变量作为控制信号输入到所述输入输出选择模块,控制输入输出选择模块随机选择输出的明文和密钥;所述轮变换模块与所述状态控制中心模块、所述输入输出选择模块、所述密钥扩展模块和所述轮计数模块连接,用于进行轮变换;所述轮变换共32轮,每轮产生128位中间值,作为下一轮轮变换的输入数据;最后一轮输出的4位32比特数据经过反序变换操作后得到密文;所述密钥扩展模块与所述状态控制中心模块、所述输入输出选择模块、所述轮变换模块和所述轮计数模块连接,用于进行密钥扩展,所述密钥扩展模块通过32轮扩展运算,生成用于所述轮变换的32个轮密钥;所述轮计数模块对所述密钥扩展和所述轮变换的轮数进行计数,确保所述密钥扩展和所述轮变换的32轮迭代进行;所述状态控制中心模块控制数字真随机数生成器、轮变换模块、密钥扩展模块、轮计数模块和输入输出选择模块的运行状态;所述输入输出选择模块根据从所述状态控制中心模块和所述数字真随机数生成器接收到的控制信号以及所述轮计数模块发出的计数信号k_counter和r_counter,完成所述密钥扩展模块和所述轮变换模块每轮的输入选择;输入的明文和密钥均为128位。2.根据权利要求1所述的基于数字真随机数生成器的抗功耗攻击sm4加密电路,其特征在于,所述数字真随机数生成器包括基于电路亚稳态和时钟抖动的熵源模块、基于d触发器的采样模块和基于异或操作的后处理模块;所述数字真随机数生成器的输入为4个时钟信号,输出为4比特随机序列;基于电路亚稳态的熵源由两个异或门构成,输入为2位数据,输出的1位数据通过3个d触发器完成采样;基于时钟抖动的熵源模块由一个3级环形振荡器构成,输入也为2比特,输出的1位数据通过1个d触发器完成采样;将上述输出的两个1位数据分别与两个4位移位寄存器的输入端相连,再经过异或操作,可得到4位随机序列。3.根据权利要求1所述的基于数字真随机数生成器的抗功耗攻击sm4加密电路,其特征在于,所述轮变换模块的输入为128位数据,输出为32位数据,且操作单位为32位字,包括轮密钥加单元、字节替换单元、线性左移单元和异或操作单元;每轮轮变换的输入均为128位数据,平均划分为4个32位字,低位的3个32位字和轮密钥与轮密钥加单元的输入端相连;轮密钥加单元的输出端与字节替换单元的输入端相连;字节替换单元由4个8位输入、8位输出的s盒构成,字节替换单元的输出端与线性左移单元的输入端相连;线性左移的输出端与每轮轮变换的高32位字与异或操作单元的输入端相连;异或操作单元的输出端输出32位中间值,与上一轮的低96位数据级联,构成下一轮轮变换
的128位中间值。4.根据权利要求1所述的基于数字真随机数生成器的抗功耗攻击sm4加密电路,其特征在于,所述密钥扩展模块的输入为128位,输出为32位,包括七个异或器xor1、xor2、xor3、xor4、xor5、xor6、xor7及一个字节替换单元和一个线性左移单元;密钥扩展每轮的中间值均为128位,平均划分为4个32位字,和4个32位的系统参数分别连接到xor1、xor2、xor3和xor4四个异或器的输入端;其中,xor2、xor3和xor4的输出端与异或器xor5的输入端相连;xor5的输出端与32位固定参数连接到异或器xor6的输入端;xor6的输出端与字节替换单元的输入端相连;字节替换单元的输出端与线性左移单元的输入端相连;线性左移单元的输出端与异或器xor7的输入端相连;异或器xor7的输出为32位轮密钥。5.根据权利要求1所述的基于数字真随机数生成器的抗功耗攻击sm4加密电路,其特征在于,所述轮计数模块的输入为1位轮计数使能信号,输出为两个6位的计数值,分别表示轮变换和密钥扩展对应的轮数,由两个寄存器、两个选择器和两个加法器构成。6.根据权利要求1所述的基于数字真随机数生成器的抗功耗攻击sm4加密电路,其特征在于,所述输入输出选择模块的输入为4个1位状态信号、2个6位数据及4个128位数据,分别表示加密使能、轮变换结束、密钥扩展结束、加密完成、密钥扩展轮数、轮变换计数、初始输入密钥、每轮的密钥中间值、初始输入明文及每轮的轮变换中间值,输出为2个128位的轮变换中间值数据及1个1位加密结束标志信号。7.根据权利要求1所述的基于数字真随机数生成器的抗功耗攻击sm4加密电路,其特征在于,所述状态控制中心模块的输入为1位加密使能信号和1位表示随机状态的自定义信号,输出为5个1位信号,分别表示密钥扩展使能、密钥扩展进行、轮变换使能、轮变换进行及轮变换结束的5个状态;状态控制中心模块内部设置了7个状态,分别为初始状态s0、密钥扩展使能状态k_en、密钥扩展进行状态k_ing、轮变换使能状态r_en、轮变换进行状态r_ing、轮变换结束状态r_end以及随机状态rand;电路默认为初始状态s0,状态控制中心模块接收到1位加密使能信号后,将轮密钥扩展使能信号拉高,随后转移到密钥扩展进行状态;密钥扩展完成后,转移到下一个状态,将轮变换使能信号拉高;此时,插入随机状态rand,由随机信号r_r控制,若检测到此时的随机信号为特定值,则电路进行随机轮变换操作,否则电路正常运行;在轮变换状态时完成一小轮加密,之后进入轮变换结束状态r_end,进行轮密钥及中间值的存储;如此循环32轮,完成一组明文数据的加密。
技术总结
本发明公开了一种基于数字真随机数生成器的抗功耗攻击SM4加密电路,在SM4加密电路中增加了真随机数生成器模块,并通过编写状态机完成随机变量的植入,从而扰乱电路功耗轨迹,达到抵御差分功耗攻击的目的。其中,真随机数生成器由基于时钟抖动和电路亚稳态的熵源模块、基于D触发器的采样模块和基于异或操作的后处理模块构成,通过纯数字电路实现,便于移植。本发明能实现正常的SM4加密功能,并具备抵抗差分功耗攻击的能力。抗差分功耗攻击的能力。抗差分功耗攻击的能力。
技术研发人员:周芳 赵凯誉 路通 赵锦 葛芬 周昊鹏
受保护的技术使用者:南京航空航天大学
技术研发日:2022.04.07
技术公布日:2022/8/5