一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种共享核心函数的高效安全密码硬件

2022-09-08 08:35:30 来源:中国专利 TAG:
1.本发明属于信息安全
技术领域
:,提出了一种共享核心函数的高效安全密码硬件,能够抗一阶侧信道攻击。硬件设计人员可利用本发明高效安全地实现高级加密标准(advancedencryptionstandard,简称aes)算法,该aes实现可以抵抗一阶侧信道攻击,保证敏感数据的安全;本发明主要用于保证加密硬件的侧信道安全。
背景技术
::2.加密模块是保密通信、认证、电子签名等系统中必不可少的部分。随着物联网应用的飞速发展,加密模块必须可被植入微型设备或嵌入式系统中,因此,保证加密模块的高效性具有十分重要的意义。与此同时,硬件加密设备受到侧信道攻击严重威胁,绝大多数密码算法的直接实现都可被侧信道攻击轻易破解,因此,保证加密模块的侧信道安全至关重要。综上,设计安全且高效的密码模块成为亟待解决的问题。3.部署最广泛的对称密码算法是aes密码算法,针对aes的t表实现是aes的一种高效实现方式,drutarovsky等人将其应用到了硬件实现中。具体地,t表实现将aes算法的字节替换、行移位和列混淆中的一部分使用查找表的形式完成,减少了计算所需要的时间。t表的具体设计如下:[0004][0005]t表的32位输出包括4个8比特数据,分别为1倍的s盒、3倍的s盒、1倍的s盒和2倍的s盒;t-1表的32位输出包括4个8比特数据,分别为9倍的s-1盒、11倍的s-1盒、13倍的s-1盒和15倍的s-1盒。s盒为字节替换,s-1盒为字节替换求逆。使用原始的t表方案,aes的加密和解密是分开计算的。具体的t表求解过程如图1和图2所示。实际上,aes算法属于spn结构的密码算法,spn结构的密码算法相较于feistel结构具有更好的扩散性,但加解密不对称造成了一定程度的实现资源浪费,由于加解密函数不同和加解密轮密钥生成不同,会增加50%左右的资源消耗,并且增加抗侧信道攻击硬件设计的难度。[0006]fpga芯片包含软逻辑和硬逻辑。软逻辑指利用查找表(lookuptables,简称lut)、触发器(flip-flops,简称ff)、数据选择器等通用逻辑资源实现的任意逻辑函数,硬逻辑是指利用存储器块(blockram,简称bram)、数字信号处理器、模拟数字转换器、高速串行通信接口等专用硬件电路硬宏(hardmacro)实现的逻辑函数。随着半导体集成度的提升和fpga规模的增大,在fpga上实现完整复杂系统的方式开始受到关注,将硬宏嵌入fpga芯片,比用户自行设计的软逻辑更为高效(参考:天野英晴-主编,赵谦-译,fpga原理和结构)。[0007]bram是以硬宏的形式实现的高效存储器,如果在密码硬件电路设计过程中,能够巧妙的使用块存储器硬宏,可以在一定程度上抵抗侧信道攻击,具体原因有二。一是,bram硬宏中的寄存器可以替代密码算法的轮函数输出所需要的触发器,以此减少甚至消除存储敏感信息的触发器。而bram硬宏中寄存器由于没有受到布线放大的影响,导致其信噪比极低,具有一定程度抵抗侧信道攻击能力,同时bhasin等人给出了bram中寄存器抗侧信道攻击的实验验证(参考:shivambhasin,sylvainguilley,annelieheuser,jean-lucdanger.fromcryptographytohardware:analyzingandprotectingembeddedxilinxbramforcryptographicapplications.j.cryptogr.eng.3(4):213-225(2013))。二是,使用bram可以降低双轨电路中布局布线不平衡的影响。使用bram节省了计算过程,其输出具有扇出小的技术特点,降低双轨电路中布局布线不平衡的影响,从而增强抗侧信道攻击能力(参考:shivambhasin,jean-lucdanger,sylvainguilley,weihe.exploitingfpgablockmemoriesforprotectedcryptographicimplementations.acmtrans.reconfigurabletechnol.syst.8(3):16:1-16:16(2015))。[0008]在提高密码算法的硬件实现性能方面,使用bram具有如下两个作用。一为减少通用逻辑资源查找表lut使用数量,在计算为主的fpga芯片中,通用逻辑资源更为紧缺,使用bram能够减少计算过程进而减少lut的使用数量。二是,提高ip核运算速度,使用bram可以减少关键路径上的计算,从而提高最小时钟延迟,进而加快密码算法的运算速度。技术实现要素:[0009]为了降低密码算法安全实现的面积,同时提升密码算法安全实现的吞吐率,本发明提出了一种共享核心函数的高效安全密码硬件一种共享核心函数的高效安全密码硬件,其设计方法包括形式一致化、融合t表构建、硬宏存储器块(blockram,简称bram)实现三个步骤,其中形式一致化能够为共享核心函数提供形式上的基础;融合t表构建是共享核心函数设计的重要步骤,解决了spn结构密码算法加解密不对称带来的额外资源消耗问题;硬宏存储器块实现是共享核心函数硬件实现的侧信道安全性提升的关键步骤。本发明具有如下技术优势:一,通过该方法使得aes算法的加密和解密轮函数一致,大幅度降低了资源消耗,减少了密码实现所需要的面积;二,通过该方法减少了aes解密密钥生成所需要的周期数,三,通过该方法使得密码算法的硬件实现抵抗侧信道攻击,提升密码硬件实现的侧信道安全性。[0010]本发明采取的技术方案为:[0011]一种共享核心函数的高效安全密码硬件,其特征在于,包括共享轮函数模块,其包括2输入异或单元、2选1选择器、存储器模块、5输入异或网络;[0012]所述2输入异或单元的输出端与所述2选1选择器的一输入端连接;[0013]所述2选1选择器的另一输入端与所述5输入异或网络的输出端连接,输出端与所述存储器模块的输入端连接,所述2选1选择器的控制端与状态机的输出端连接,用于接收控制信号f1;控制信号f1表示当前是否进行初始轮操作;[0014]所述存储器模块的输出端与所述5输入异或网络的输入端连接;所述存储器模块中存储融合t表;所述融合t表为将加密使用的t表代换和解密的t表代换求逆用合并后的表;所述5输入异或网络的控制端与状态机的输出端连接,用于接收轮数控制信号f2;[0015]当对消息进行加密或解密时,初始轮时,所述2输入异或单元根据输入的消息和初始轮密钥nk0进行轮密钥加操作,并将计算结果r0发送给所述2选1选择器;[0016]所述2选1选择器的输出记为r2,输出r2根据状态机的状态控制信号f1在两输入信息之间进行选择,当使用初始轮密钥进行加/解密的状态时,选择r0值作为输出,当使用第1-10轮轮密钥进行加/解密的状态时,选择所述5输入异或网络的输出值r1作为输出;在第1个周期的初始轮时,所述2选1选择器的输出r2选r0的值进行输出;[0017]所述共享轮函数模块,运行10个周期,为第2-11个周期;其中,每一周期内:[0018]所述存储器模块将输入的r2和控制信号f作为融合t表的查询地址,将查询结果作为r3输出;其中,控制信号f代表加密或解密状态;[0019]所述5输入异或网络首先对r3和输入的第r轮的轮密钥nkr进行32个5输入异或操作,随后根据状态机的控制信号f2对32个5输入异或操作的结果分别进行2选1操作得到16个5输入异或结果bj;其中,j取整数0~15;所述轮密钥nkr按照从高位到低位可以分成16个字节,分别用表示,下标j取整数0~15,上标r取整数1~10;所述5输入异或网络的输出为16个8比特数据bj,即r1;[0020]所述2选1选择器在第2-11个周期时,输出r2选r1的值进行输出;[0021]所述共享轮函数模块运行完10个周期后,在第12个周期内将第10轮所得结果r1输出。[0022]进一步的,所述融合t表为其中,f为1比特,a为8比特数据,a为从r2中从高到低依次截取的8比特数据;当加密时,f取1,mt表的结果为t表代换结果,分别为1倍的s盒输出、3倍的s盒输出、1倍的s盒输出和2倍的s盒输出;当解密时,f取0,mt表的结果为t表代换求逆,分别为9倍的s-1盒、11倍的s-1盒、13倍的s-1盒和15倍的s-1盒;s盒为aes算法中的字节替换,s-1盒为aes算法中的字节替换求逆。[0023]进一步的,所述mt表的输出32比特数据拆分为4个8比特输出,使用下标t1~t4表示从最高到最低位的四个字节,具体为mt[f,a]={mt[f,a]t1,mt[f,a]t2,mt[f,a]t3,mt[f,a]t4}。[0024]进一步的,所述存储器模块的输入r2为128比特的数据,将r2从高位到低位依次分成16个8比特,称为a0,a1,…,aj,…,a15,j∈[0,1,……,15];所述存储器模块包括16个块存储器,第j个块存储器的输入为包括f和aj的9比特数据;第j个块存储器的输出根据输入的f和aj查询融合t表得出。[0025]进一步的,16个所述块存储器的输出为16个32比特数据,依次为mt[f,a0 4i]、mt[f,a13-8f 4i]、mt[f,a10 4i)]、mt[f,a7 8f 4i],其中,i依次取0、1、2、3,并且a的下标需要模16。[0026]进一步的,所述5输入异或网络包括四个异或子网络;每个所述异或子网络包括8个5输入异或门和1个8输入的2选1选择器;所述5输入异或子网络的输入为mt[f,a0 4i]、mt[f,a13-8f 4i]、mt[f,a10 4i)]、mt[f,a7 8f 4i],输出为4个8比特数据b0 4i、b1 4i、b2 4i、b3 4i,作为5输入异或子网络的输出;当i分别取0、1、2、3时,得到b0~b15共128比特数据,为5输入异或网络的输出,记为r1;其中,5输入异或子网络中,2选1选择器的状态f2由加密轮数决定,当执行加解密第10轮时f2取1;当执行加解密初始轮、第1-9轮时,f2取0。[0027]进一步的,所述异或子网络表示为:其中,为第r轮轮密钥的第1 4i个字节,r取整数1-10,i取整数为0-3,mt[f,a0 4i]tk为所述融合t表的输出值中从高到低的第k个字节,k取整数1~4。[0028]根据本发明设计出一种共享核心函数的高效安全密码硬件设计方法,特征在于,包括如下步骤:[0029]a、形式一致化指加密和解密轮函数的操作中,除了t表代换和t表代换求逆不同外,其他操作均相同,此时认为加解密轮函数的形式一致。原始的基于t表的aes加密电路优化过程如图1所示,原始的基于t表代换求逆的aes解密电路优化过程如图2所示,aes的加密和解密的轮函数并不一致,如将aes解密轮函数的2输入异或改为5输入异或,那么加解密操作形式上就一致了,能够为共享轮函数提供形式上的基础。[0030]b、融合t表构建指将加密使用的t表代换和解密的t表代换求逆用合并为一个新的表,该表称为融合t表,简称mt,融合t表的存储深度为512,输出为32比特数据,其定义如公式(2)所示:[0031][0032]其中f为1比特,a为8比特。当f为1时,mt表的结果为原来的t表代换结果;当f为0时,mt表的结果为原来的逆t表代换。mt表的输入为9比特地址,输出32比特数据,将32比特输出拆分为4个8比特输出,使用下标t1,t2,t3,t4来表示,具体如公式所示。[0033]mt[f,a]={mt[f,a]t1,mt[f,a]t2,mt[f,a]t3,mt[f,a]t4}[0034]c、硬宏bram实现指使用存储块实现融合t表,同时将存储轮函数输出的寄存器使用块存储内部的寄存器实现。实现既可减少通用逻辑资源的使用,又可以提高密码实现的抗侧信道攻击能力,块存储实现是共享轮函数紧凑性与安全性提升的关键。[0035]本发明设计出一种共享核心函数的高效安全密码硬件,具有三个技术优势:一是bram使用数量减少50%,二是lut使用数量减少,三是抗侧信道攻击能力提高。[0036]第一个技术优势,bram使用数量减少50%。在xilinxkintex-7系列的bram中,最小的bram为18kb,两个18kbbram构成一个36kbbram。若存储aes的1个字节代换,存储深度为256,输出为8bit数据,存储空间为2kb,使用的bram数量为1,bram内存储资源使用率为1/9;若存储1个t表代换,存储深度为256,输出为32bit数据,存储空间为8kb,bram内存储资源使用率为4/9;若存储1个融合t表,存储深度为512,输出为32bit数据,存储空间为16kb,仍然只需要1个18kb的bram,bram内存储资源使用率为8/9。字节代换和字节代换求逆共需要使用2个bram,t表代换和t表代换求逆共需要使用2个bram,而融合t表只需要1个bram就可以存储t表代换和t表代换求逆的全部内容。因此,融合t表,相较字节代换,bram使用数量减少50%,bram中内存储资源的使用率变为8倍。[0037]第二个技术优势,lut使用数量减少。在以计算为主的fpga芯片中,lut属于紧缺资源。本文提出的高效安全密码硬件方法,从两方面减少lut使用数量。一方面,加解密轮函数可以共享,所需要的5输入异或网络由加密和解密各一个,减少为只需要一个5输入异或网络,进而减少lut使用数量;另一方面,使用硬宏bram实现融合t表,减少了融合t表生成所需要的lut。[0038]第三个技术优势,抗侧信道攻击能力提高。使用硬宏bram中的寄存器替代密码算法的轮函数输出寄存器。原轮函数寄存器存储了与密钥相关的信息,对其实施侧信道攻击能够较为容易的恢复密钥;而硬宏bram中的寄存器如图3所示,由于没有受到布线放大的影响,导致其信噪比极低,具有一定程度抵抗侧信道攻击能力,bhasin等人在给出了bram中寄存器具有较强抗侧信道攻击的实验验证(参考:shivambhasin,sylvainguilley,annelieheuser,jean-lucdanger.fromcryptographytohardware:analyzingandprotectingembeddedxilinxbramforcryptographicapplications.j.cryptogr.eng.3(4):213-225(2013))。[0039]与现有技术相比,本发明提出共享核心函数的aes实现具有的积极效果为:[0040]本发明提出一种共享核心函数的aes硬件设计方法,给出了基于融合t表的aes轮函数设计,共享了加解密轮函数,降低了安全实现设计难度以及资源代价。以可编程阵列逻辑(fieldprogrammablegatearray,fpga)中通用逻辑资源查找表(look-uptables,简称lut)数量作为面积指标,以吞吐率作为速度指标,本发明提供的aes电路具有低面积、高吞吐率的技术特点。具体地,本发明给出的aes实现,可以抵抗一百万条能量迹/电磁迹的侧信道攻击,其最少攻击成功条数至少是bcdl(t-box)实现的7.36倍;使用virtex-5fpga器件进行综合,其lut使用数量为bcdl(t-box)实现的21%;其bram使用数量为bcdl(t-box)实现的25%;其吞吐率为bcdl(t-box)实现的5.63倍。附图说明[0041]图1为基于t表代换的加密优化过程。[0042]图2为基于t表代换求逆的解密优化过程。[0043]图3为用作只读存储器的存储器模块示例。[0044]图4为本发明的融合t表的存储器模块实现。[0045]图5为本发明的共享轮函数整体电路图。[0046]图6为本发明的存储器模块与5输入异或网络电路图。[0047]图7为本发明的aes硬件实现的100万条能量迹cpa攻击结果。[0048]图8为本发明的aes硬件实现的100万条电磁迹cpa攻击结果。具体实施方式[0049]下面结合附图对本发明进行进一步详细描述。[0050]使用本发明提供的共享核心函数的高效安全硬件设计方法给出了共享轮函数的硬件实现,其特征在于共享轮函数模块。[0051]共享轮函数模块如图5所示,包括2输入异或、2选1选择器、存储器模块、5输入异或网络;所述2输入异或的输入是消息和初始轮密钥;所述2选1选择器的输出由当前状态机的状态决定,当使用初始轮密钥进行加/解密的状态时,选择2输入异或输出的r0值作为输出,当使用第1-10轮轮密钥进行加/解密的状态时,选择5输入异或网络输出的r1值作为输出;所述存储器模块包括16个块存储器,单个块存储器的输入包括9比特,单个块存储器的输出为32比特。[0052]本发明的各个模块描述:[0053]当密钥有效且外部输入消息有效时,共享轮函数模块开始运行,运行周期为12个周期。[0054]第1个周期,运行a)2输入异或和b)2选1选择器模块;第2个周期至第11个周期,依次循环运行c)存储器模块、d)5输入异或网络和b)2选1选择器模块;第12个周期,输出5输入异或网络的计算值r1。[0055]a)2输入异或[0056]2输入异或的输入是消息和初始轮密钥nk0,输出为二者异或的结果,这实际上是进行了轮密钥加操作。当加密时,消息实际上为明文,当解密时,消息实际上为密文。[0057]b)2选1选择器[0058]2选1选择器即输入2个,输出1个的选择器,具体从2个输入信息中选哪个信息作为输出由状态机的状态决定,根据状态机的状态信号f1在2输入异或输出r0和5输入异或网络输出的r1之间选择,当使用初始轮密钥进行加/解密的状态时,选择r0值作为输出,当使用第1-10轮轮密钥进行加/解密的状态时,选择r1值作为输出。2选1选择器的输出用r2表示,为128比特数据。控制信号f1表示当前是否进行初始轮操作。[0059]c)存储器模块[0060]所述存储器模块的第一个输入r2是2选1选择器的输出,为128比特的数据,将r2从高位到低位依次分成16个8比特,称为a0,a1,…,aj,…,a15,j∈[0,1,……,15];所述存储器模块的第二个输入f与加密和解密状态有关,是1比特数据,当加密时f取1,当解密时f取0。[0061]所述存储器模块包括16个块存储器(bram),每个块存储器的输入均为9比特;每个块存储器的输出根据融合t表查表得出,是32比特数据。[0062]进一步地,所述16个块存储器的输出根据查询融合t表得到,输出为16个32比特数据,依次为mt[f,a0 4i]、mt[f,a13-8f 4i]、mt[f,a10 4i)]、mt[f,a7 8f 4i],其中,i依次取0,1,2,3,并且a的下标需要模16(即a的下标小于16时,取下标本身,大于等于16时,需要取模)。[0063]进一步的,所述融合t表为其中,f为1比特,a为8比特;当加密时,f取1,mt表的结果为t表代换结果,分别为1倍的s盒输出、3倍的s盒输出、1倍的s盒输出和2倍的s盒输出;当解密时,取f为0,mt表的结果为t表代换求逆,分别为9倍的s-1盒、11倍的s-1盒、13倍的s-1盒和15倍的s-1盒。s盒为aes算法描述中的字节替换,s-1盒为aes算法描述中的字节替换求逆。mt表的输出32比特数据,若拆分为4个8比特输出,使用下标t1,t2,t3,t4来表示从最高到最低位的四个字节,具体为mt[f,a]={mt[f,a]t1,mt[f,a]t2,mt[f,a]t3,mt[f,a]t4}。[0064]d)5输入异或网络[0065]所述5输入异或网络的第一个输入为存储器模块输出的16个32比特数据r3,第二个输入为128比特轮密钥nkr,第三个输入为轮数控制信号f2。所述5输入异或网络的输出为16个8比特数据,即r1。[0066]所述5输入异或网络包括四个异或子网络。每个异或子网络包括8个5输入异或门和1个8输入的2选1选择器。如图6所示,为存储器模块与5输入异或子网络的连接图。每个异或子网络可以表示为:[0067][0068]其中i分别取0,1,2,3时,分别对应4个5输入异或子网络,并且a的下标需要模16。[0069]5输入异或子网络的输入为mt[f,a0 4i]、mt[f,a13-8f 4i]、mt[f,a10 4i)]、mt[f,a7 8f 4i],输出为4个8比特数据b0 4i,b1 4i,b2 4i,b3 4i。5输入异或子网络中,2选1选择器的状态f2由加密轮数决定,当执行加解密第10轮时f2取1;当执行加解密初始轮、第1-9轮时,f2取0。[0070]所述5输入异或网络的输出为4个5输入异或子网络的输出,为4个32比特数据,共计128比特输出。[0071]下面对本发明的共享轮函数公式推导介绍如下:[0072]为了便于对电路实现进行理解,下面结合附图4和附图5,对本发明共享轮函数进行公示推导。[0073]1.加密和解密轮函数1-9轮优化[0074]aes轮函数的输入128比特数据,可以分成16个8比特数据,用ai,i∈[0,15]表示为:[0075][0076]a的初始值为128比特消息m和128比特初始轮密钥为nk0相异或的结果。a=m nk0,其中“ ”表示异或。[0077]采用基于融合t表的方式,对加密轮函数进行优化,经过字节代换、行移位以及列混淆后表示为:[0078][0079]其中s[ai]表示原始aes输入为ai的字节代换结果。将上式拆分成四列后,令i=0,1,2,3,每列可表达为:[0080][0081]采用基于融合t表的方式,对解密轮函数进行优化,经过逆字节代换、逆行移位以及逆列混淆后表示为:[0082][0083]将上式拆分成四列后,令i=0,1,2,3,每列可表达如下:[0084][0085]增加轮密钥加操作后,采用融合t表的方式,对加解密第1-9轮轮函数进行优化,输出可以表示为:[0086][0087]其中,f=1时,表示加密操作,f=0时,表示进行解密操作。[0088]2.加解密第10轮轮函数优化[0089]对加解密的第10轮进行共享轮函数设计,加密轮函数的最后一轮可表示为:[0090][0091]解密轮函数的最后一轮可表示为:[0092][0093]因此,基于融合t表的方式优化加解密轮函数第10轮可以表示为:[0094][0095]3.共享轮函数[0096]因此,采用基于融合t表的合并1方案,共享轮函数为:[0097][0098]其中,输出数据b0 4i,b1 4i,b2 4i,b3 4i为4个8比特,当i取整数0~3时,能够得出b0,b1,b2,……,b15,共128比特数据,作为5输入异或网络输出,在图5中,计为r1。mt[f,a0 4i]tk为融合t表的输出值中从高到低的第k个字节,k取整数1~4。[0099]为了减少异或门的数量,先经过多路选择器选择后,再进行异或操作,此时共享轮函数表示为:[0100][0101]可以看出,通过增加多路选择器,减少所需要异或门的数量。[0102]4、适配共享轮函数的密钥生成[0103]给出了适配融合t表的加解密轮密钥,对aes算法,所需要的轮密钥公式如下:[0104][0105]评估结果[0106]本发明的优势有二,一是通过共享轮函数设计,减少了fpga硬件设计中lut的使用数量;二是在轮函数中使用存储器模块减少了储存敏感信息的寄存器,从而提高了aes硬件实现的抗侧信道攻击能力。下面对本发明aes实现安全性进行评估。[0107]nassar等人(参考文献:weihe,andrésotero,eduardodelatorre,teresariesgo.automaticgenerationofidenticalroutingpairsforfpgaimplementeddpllogic.reconfig2012:1-6)提出的bcdl(t-box)只需要135,872条就可以攻击成功,以最少成功条数为评估指标,本发明给出的mbaes(基于融合t表的aes)实现,可以抵抗一百万条能量迹/电磁迹的侧信道攻击,其安全性至少是bcdl(t-box)实现的7.36倍。[0108]nassar等人[bgs 2011]给出的bcdl(t-box)在virtex-5器件下lut使用数量为2217,bram数量为34,这些资源消耗包含了加密操作和加密密钥生成。为了进行统一对比,我们在此基础上减去了加密密钥生成所需要的lut使用数量216和bram使用数量2;在nassar等人[bgs 2011]给出的bcdl(t-box)实现只包含加密操作,按照解密所需资源与加密所需资源相同来估算,增加解密操作后,mbaes的lut使用数量为bcdl(t-box)实现的21%;mbaes的bram使用数量为bcdl(t-box)实现的25%;mbaes的吞吐率是bcdl(t-box)实现的5.63倍。[0109]表1为2种不同aes实现在virtex-5器件上的综合结果[0110][0111]使用本发明提供的共享核心函数的高效安全密码硬件设计方法,可以对其他spn结构密码进行高效安全的硬件设计,同时采用本方面方法,可以对加密和解密轮密钥生成的关键操作进行共享核心函数设计,以减少资源消耗。[0112]尽管为说明目的公开了本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献