发明名称 AES轮运算方法和电路
摘要 本发明AES轮运算方法和电路,利用数据掩蔽和不同S盒电路随机排列来防御功耗分析,在AES流程中,对只涉及位置交换或简单布尔运算的线性运算包括行移位、列混合和轮密钥加法,采用异或操作来进行掩蔽和恢复数据;对非线性运算的S盒,设计出不同电路结构的S盒,这些S盒运算时的功耗曲线各不相同,数据经过S盒时,通过随机选择数据通路上S盒的排列,从而使得AES中S盒运算的功耗随机化。有益效果如下:1)攻击者在数据通路上无法观测到加解密过程的真实数据,同时由于功耗随机化,统计分析密钥也变得非常困难;2)不改变AES的电路结构,算法简洁、容易实现;3)能够以较小的代价大幅度提高AES电路抵御功耗分析攻击的能力。
申请公布号 CN104301096A 申请公布日期 2015.01.21
申请号 CN201410537860.9 申请日期 2014.10.13
申请人 深圳中科讯联科技有限公司 发明人 陈毅成;张明宇;吴水源
分类号 H04L9/06(2006.01)I 主分类号 H04L9/06(2006.01)I
代理机构 深圳市科进知识产权代理事务所(普通合伙) 44316 代理人 宋鹰武;沈祖锋
主权项 一种AES轮运算方法,其特征在于,该方法包括如下步骤:S1:采用随机数X,对任一128位的明文进行掩蔽;S2:判断掩蔽后的数据是中间轮操作或末轮操作,并暂存所述数据,若判断是中间轮操作时,进行步骤S3a;若判断是末轮操作时,则进行步骤S3b;S3a:对所述随机数X进行扩展运算E,得到E(X);S4:将所述E(X)、轮密钥及S2暂存的数据同时进行异或,得到进入第一S盒阵列的值;S5:对所述进入第一S盒阵列的值,进行S盒运算,并将经过所述第一S盒阵列运算后输出的数据,与所述随机数X进行异或;S6:对所述S盒运算后输出的数据与所述随机数X进行异或后得到的数据,进行行移位和列混合,并将得到的数据返回至步骤S2;S3b:对步骤S2的数据进入第二S盒阵列,进行S盒运算;S7:将经过所述第二S盒阵列运算后输出的数据,与所述随机数X进行异或;S8:对所述第二S盒运算后输出的数据与所述随机数X进行异或后得到的数据进行行移位,并对所述随机数X进行行移位,得到S(X);S9:对末轮密钥、所述S盒运算后输出的数据与所述随机数X进行异或后得到的数据进行行移位得到的数据和所述S(X)进行异或,得到最终的密文,其中,所述第一及第二S盒阵列,均由4个分别从N种不同电路结构的S盒中随机选择的S盒构成,N为不小于3的自然数。
地址 518067 广东省深圳市南山区工业六路创业壹号大楼B栋301室