一种抗功耗分析的密码算法代换电路的制作方法

文档序号:7770391阅读:280来源:国知局
一种抗功耗分析的密码算法代换电路的制作方法
【专利摘要】一种抗功耗分析的密码算法代换电路,包括具有M位输入信号、N位输出信号的S盒,S盒包括将M位输入信号对应为N位输出信号的查找表,查找表具有K个N位常量输入,K个N位常量的取值范围为0~2N-1,S盒具有1个N位随机数输入,K个N位常量分别与随机数异或后输入查找表。本发明具有既难以通过功耗分析出真实密钥值,代换电路的面积又小的优点。
【专利说明】一种抗功耗分析的密码算法代换电路
【技术领域】
[0001 ] 本发明涉及一种密码算法代换电路。
技术背景
[0002]随着信息技术的发展与普及,智能卡等实现密码算法的电路也日益广泛,这些密码设备越来越多地承载着个人和商业机密信息。分组密码是智能卡等密码设备所必须支持的功能,也是保护信息安全的关键模块。分组密码算法一般采用轮结构,每次加密或解密需要进行多次轮运算(例如12或16次),每一次轮运算中,都包含有密钥参与的多次非线性或线性运算。在密码芯片中,这些运算一般通过逻辑电路实现,而逻辑电路所消耗的功率与密钥中各比特位的取值有关,因此密码芯片的功率消耗与密钥值存在一定的关联,这就为密码的安全造成了潜在的威胁。
[0003]另一方面,芯片破解技术的发展,对应用于信息安全领域的芯片造成了极大的威胁。物理攻击属于传统的芯片破解技术,即破坏掉芯片的封装,并利用探针或显微镜获取芯片内部的关键信息。近年来出现的功耗分析技术,不需要破坏芯片,只是通过测量芯片电源引脚上泄露的功耗信息,将其采样成为若干条功耗轨迹曲线,再通过某些算法来分析芯片采用的信息安全算法以及密钥。目前国内外很多科研机构与芯片设计公司展开了对功耗分析技术的研究,利用最先进的功耗分析技术,可以在几秒内破解算法密钥。所以在设计信息安全领域的芯片时,必须考虑增加一些抵抗破解技术的措施,以提高芯片的安全性。
[0004]为提高分组密码抵抗功耗攻击的能力,学术界提出了很多措施,例如双轨逻辑、掩码算法等。其中双轨逻辑是在逻辑电路底层进行修改,采用专门设计的逻辑结构,当输入数据某一位取值为I或0时,其输出功耗基本相等。掩码算法是广泛采用的一种抗功耗攻击措施,它将输入明文先与一个随机数做异或操作,直到加密或解密结束后再将正确数据恢复,这样在轮运算当中,电路中的数据都是真实值与随机掩码进行异或操作的结果,从而密钥值不会对功耗产生直接的影响。
[0005]在分组密码中,经常使用代换(substitution)操作来进行非线性运算,基本的代换单元是指输入一组固定长度的数据,通过一个查找表来输出对应的另一组数据,这两组数据的长度可以不相等,典型的代换操作如DES或AES算法中的S盒。令S(X)表示某个代换单元对输入X的输出,其非线性运算满足:S(A+B)幸S(A) + S (B)。在密码芯片中,分组密码一般由专用的硬件加速器来执行,其中用来实现代换操作的电路结构即是代换电路。
[0006]现有的代换电路包括无掩码代换电路和常规掩码代换电路。无掩码代换电路如图1所示,无掩码代换电路有I个M位的输入Sbox_in,I个N位的输出Sbox_out,一般满足M>=N。该电路模块实现的功能是根据输入(Sbox_in)的值,通过查找表(2M-to-l LookupTable)查找相对应的一个N位数值并输出。以DES加解密电路中的S盒为例,M=6,N=4,即输入端有2m=64个可能值,输出端有2n=16个可能值,这16个值包括(T15等用4位二进制数可以表示的整数。当输入值固定时,对应I个固定的4位输出值。
[0007]无掩码代换电路的缺点在于:在无掩码代换电路中,输入信号Sbox_in是密钥与明文数据进行异或等操作的结果,所以其输出值SboX_out与密钥值之间具有一定的统计关联。在差分功耗攻击(DPA)中,将密钥值固定,用其对多组随机明文加密,同时监测分组加密电路的功耗,经过一定强度的计算,即可猜测出真实的密钥值。以上DPA攻击的原理在于,代换电路的功耗变化主要由输出值Sbox_out的汉明重量(Hamming Weight)变化决定,而其汉明重量与密钥值存在统计关联。
[0008]常规掩码代换电路如图2所示,常规掩码代换电路在无掩码代换电路的基础上,增加了 I个M位的随机数Rand,该随机信号与正常的输入信号Sbox_in合并成I个2M位的信号,再作为查找表(22M-to-l Lookup Table)的输入信号。以DES加解密电路中的S盒为例,如采用此方案,则查找表有2M=12位的输入,即要根据22M=4096个可能的输入值选择出响应的I个输出作为SboX_out。Rand是一个M位的随机数,在每次加密操作中,Rand取值都不同。在此方案中,由于随机数Rand才存在,输出信号Sbox_out与输入信号Sbox_in的对应关系被破坏,在分组密码电路的其它部分,可采取某些措施将无掩码代换电路的Sbox_out值恢复。
[0009]对此常规掩码代换电路进行DPA攻击时,虽然每次加密使用同一个密钥,但由于有随机数Rand的存在,密钥值与输出值SboX_out之间的统计关联在一定程度上被破坏掉,使得通过分组加密电路的功耗难以分析出真实的密钥值。
[0010]常规掩码代换电路的缺点在于:使芯片面积急剧增大,从而增加了芯片的成本。

【发明内容】

[0011]为了克服现有的无掩码代换电路存在通过功耗监测能够猜测出真实的密钥值,常规掩码代换电路虽然可以抵抗一定强度的功耗分析,但是常规掩码代换电路复杂、面积大的缺点,本发明提供了一种既难以通过功耗分析出真实密钥值,代换电路的面积又小的抗功耗分析的密码算法代换电路。
[0012]—种抗功耗分析的密码算法代换电路,包括具有M位输入信号、N位输出信号的S盒,S盒包括将M位输入信号对应为N位输出信号的查找表,查找表具有K个N位常量输入(一般取K=2N),K个N位常量的取值范围为(T2N-1,其特征在于:S盒具有I个N位随机数输入,K个N位常量分别与随机数异或后输入查找表。
[0013]进一步,查找表的输出信号与随机数异或后作为S盒最终的N位输出信号。
[0014]本发明在无掩码代换电路的基础上,增加了 I个N位的随机数Rand,此随机数首先与K个N位常量(取值范围为(T2N-1)分别做异或操作,异或后的值作为2"选I查找表的待选数值。其中乂选I查找表的内部结构与无掩码代换电路完全相同,输入信号是M位,输出信号是N位,但是对于相同的输入信号Sbox_in,该查找表的输出信号值与无掩码代换电路不同(除非当随机数Rand等于0时),查找表的输出信号值等于无掩码代换电路的输出值与Rand的异或值。虽然查找表原来的对应关系被随机数Rand破坏,但将查找表的实际输出信号再与Rand做一次异或操作后,即可恢复出正确的输出值,将查找表的输出信号与随机数异或后的值作为S盒的输出信号。用于恢复输出值的异或操作既可以放在本发明的代换电路内部,也可放在数据通路后端的合适位置。
[0015]本发明将随机数与K个N位常量分别进行异或,既可以通过引入随机数改变S盒的输入信号与输出信号之间的功耗对应关系,又可以采用无掩码代换电路的结构,不会增加选择条件的数量,从而能够缩小芯片的面积增幅。
[0016]本发明具有既难以通过功耗分析出真实密钥值,代换电路的面积又小的优点。
【专利附图】

【附图说明】
[0017]图1是无掩码代换电路的示意图。
[0018]图2是常规掩码代换电路的示意图。
[0019]图3是本发明的示意图。
[0020]图4是本发明应用于AES算法的S盒,M=N=8的示意图。
【具体实施方式】
[0021]如图3所示,一种抗功耗分析的密码算法代换电路,包括具有M位输入信号Sbox_in [M-l: 0]、N位输出信号Sbox_out [N_l:0]的S盒,S盒包括将M位输入信号对应为N位输出信号的查找表2M-to-l Lookup Table,查找表具有K个N位常量输入(一般取K=2N),该常量的取值范围为(T2n-1,S盒具有I个N位随机数Rand输入,K个N位常量分别与随机数Rand异或后输入查找表。
[0022]查找表的输出信号与随机数Rand异或后作为S盒最终的N位输出信号Sbox_out[N-l:0]。
[0023]本发明在无掩码代换电路的基础上,增加了 I个N位的随机数Rand,此随机数首先与K个N位常量(取值范围(T2N-1)分别做异或操作,异或后的值作为2"选I查找表的待选数值。其中0选I查找表的内部结构与无掩码代换电路完全相同,输入、输出信号都是M位,但是对于相同的输入信号Sbox_in,该查找表的输出信号与无掩码代换电路不同(除非当随机数Rand等于0时),查找表的输出信号等于无掩码代换电路的输出值与Rand的异或值。虽然查找表原来的对应关系被随机数Rand破坏,但将查找表的实际输出信号再与Rand做一次异或操作后,即可恢复出正确的输出值,将查找表的输出信号与随机数异或后的值作为S盒最终的输出信号。用于恢复输出值的异或操作既可以放在本发明的代换电路内部,也可放在数据通路后端的合适位置。
[0024]以AES算法的S盒为例,使AES算法的S盒的输入域输出信号都是8位,即M=8,N=8, K=256,如图4所示。首先,8位的随机数Rand与0?255共256个常量做异或操作,然后将这256个异或结果作为256选I查找表的输入,并根据另一组输入Sboxjn [7:0]的取值以及预设好的对应关系,从256个异或结果中选取一个作为查找表的输出。查找表的输出是S盒的真实结果与随机数Rand异或后的结果,因此,要将查找表的输出结果与随机数Rand做一次异或操作,以得到S盒的最终输出信号。本发明由于采用了传统的2"选I查找表,其芯片面积的增加仅来源于查找表各输入常量与随机数Rand的异或操作。从分组算法电路整体上来看,与采用无掩码代换电路的分组算法电路相比,采用以上低成本掩码代换电路之后,芯片面积仅增加不超过20%。
[0025]本发明将随机数与K个N位常量分别进行异或,既可以通过引入随机数改变S盒的输入信号与输出信号之间的功耗对应关系,又可以采用无掩码代换电路的结构,不会增加选择条件的数量,从而能够缩小芯片的面积增幅。
[0026]本发明具有既难以通过功耗分析出真实密钥值,代换电路的面积又小的优点。[0027]本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。
【权利要求】
1.一种抗功耗分析的密码算法代换电路,包括具有M位输入信号、N位输出信号的S盒,S盒包括将M位输入信号对应为N位输出信号的查找表,查找表具有K个N位常量输入,K个N位常量的取值范围为(T2N-1,其特征在于:S盒具有I个N位随机数输入,K个N位常量分别与随机数异或后输入查找表。
2.如权利要求1所述的种抗功耗分析的密码算法代换电路,其特征在于:K=2n。
3.如权利要求2所述的种抗功耗分析的密码算法代换电路,其特征在于:查找表的输出信号与随机数异或后作为S盒最终的N位输出信号。
【文档编号】H04L9/06GK103618595SQ201310417989
【公开日】2014年3月5日 申请日期:2013年9月13日 优先权日:2013年9月13日
【发明者】吴斌 申请人:杭州晟元芯片技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1