本发明专利技术涉及多场景应用的防攻击分组密码加密方法。先通过随机数模块产生的一组随机数预存到寄存器中,通过设计两组轮函数同时加密明文,在加密正确的明文同时用无关密钥加密无关数据干扰当前芯片的功耗曲线,使得攻击者获取的功耗曲线包含无关功耗,加大功耗曲线分析难度,同时在正常运行的10轮加密中插入随机的伪轮,防止故障注入攻击;当无攻击者攻击时,可将两组轮函数同时使用,同时加密两组明文,提升加密速度。升加密速度。升加密速度。
【技术实现步骤摘要】
多场景应用的防攻击分组密码加密方法
[0001]本专利技术属于嵌入式微控制器领域,提出了一种可以一定程度防攻击的分组密码加密方法。
技术介绍
[0002]随着智能设备的大范围应用,数据加密的过程中的数据安全将是人们考虑的问题,如何防御攻击者在加密过程中的攻击将是数据安全的一个重要方面。加密算法在提出时已经经过了严苛的数学推理验证,确认其在已知密文的情况下是不可逆的,但在实际实现加密过程时,总伴随者其它的漏洞,经过简单分析就可得到密钥。
[0003]伴随者加密过程的信息泄露,攻击者研究出了如能量攻击、故障攻击等诸多攻击方式,因此在加密过程中的防御是防御过程中的重要一环,针对不同的攻击手段存在不同的防御手段,对于某些防御手段可能会引入新的漏洞,本文采用干扰的和插入的方式使得攻击者难以获得有效信息。
技术实现思路
[0004]本专利技术涉及一种可多场景应用的防攻击的分组密码的加密方案设计。先通过随机数模块(RNG)产生的一组随机数预存到寄存器中,通过设计两组轮函数同时加密明文,在加密正确的明文同时用无关密钥加密无关数据干扰当前芯片的功耗曲线,使得攻击者获取的功耗曲线包含无关功耗,加大功耗曲线分析难度,同时在正常运行的10轮AES加密算法中插入随机的伪轮,防止故障注入攻击;当无攻击者攻击时,可将两组轮函数同时使用,同时加密两组明文,提升加密速度。
[0005]本专利技术为实现上述目的所采用的技术方案是:多场景应用的防攻击分组密码加密方法,在进行加密运算前,由随机数模块在没有加密和取随机数操作时向寄存器中写入几组随机数以备使用,同时产生随机数非空的信号,在明文写入后,同时进行轮密钥生成、加密操作,以干扰加密过程的功耗信息。
[0006]空闲时,随机数模块向随机数寄存器中写入随机数,完成加密前的准备工作,产生数据非空信号给控制器;
[0007]开启防攻击模式使能,开启加密模式,写入明文后,进行第一轮的加密操作和密钥扩展;
[0008]同时在10轮的AES加密过程中随机插入不等的伪轮,待加密完成后,将正确密文和干扰密文同时存在相应的寄存器中,正确密文被读取;
[0009]在未启用防攻击模式时,可同时写入两个明文进行加密,以用于不同的应用场景。
[0010]多场景应用的防攻击分组密码加密方法,包括以下步骤:
[0011]1)用户向明文寄存器中写入明文;随机数模块向加密控制模块中的随机数寄存器写入随机数,并在空闲时进行更新;
[0012]2)启动加密运算时,加密控制模块中的控制器读取其中一组随机数,根据第一组
随机数的值,并在第i轮插入k个伪轮,以确保真实的加密位置是随机的;
[0013]3)控制器分别对轮函数A、轮函数B、密钥扩展A和密钥扩展B中写入明文、轮秘钥和随机数,同时启动轮函数A、轮函数B、密钥扩展A和密钥扩展B,使轮函数A、轮函数B、密钥扩展A和密钥扩展B所产生的功耗相互干扰,待完成当前轮加密后,将当前密文和轮秘钥写入内部某一寄存器,同时随机数产生的密文和轮密钥写回到随机数寄存器以备下次使用;
[0014]4)返回步骤3)以循环多次轮函数加密过程,直至完成当前明文加密后,将密文写入到可被用户读取的密文寄存器中,完成一次加密运算。
[0015]4.根据权利要求1所述的多场景应用的防攻击分组密码加密方法,其特征在于,对于明文加密,在用户写入第i个明文,明文寄存器为满状态,开始运算后明文被读取到控制器内部,明文寄存器变为空状态,以继续写入第i+1个明文;
[0016]当第i个明文加密完成后,密文寄存器变为满状态,待用户读取,此时控制器正在进行第i+1个明文的加密,返回步骤2)步骤,直至完成用户的所有明文加密。
[0017]采用10轮串行运算,一周期运算一轮加密数据,将前一轮的结果重新写入轮函数进行下一轮运算。
[0018]本专利技术具有以下有益效果及优点:
[0019]1.本专利技术采用随机数模块和加密模块联动的方式,在空闲时随机数模块向特定寄存器写入数据,进行加密时调用,防止因随机数模块产生数据较慢而影响加密速度,在随机数已准备好后,使能防攻击后控制逻辑会自动调用随机数,在加密过程中被应用。
[0020]2.本专利技术采用两个轮函数并行运算设计,一真一假的设计干扰芯片的功耗,使攻击者在采集功耗时存在干扰,增加攻击难度;在每个轮函数之间插入伪轮,使得攻击者在进行故障注入时增加难度。
[0021]3.本专利技术可同样应用于其它分组密码算法,在实现过程中,将AES、DES等分组密码算法设计在同一控制逻辑中减少芯片面积消耗,同时也可对相同的逻辑部分进行复用设计,进一步减少面积消耗。
附图说明
[0022]图1本专利技术的带有防攻击功能的加密算法结构图。
具体实施方式
[0023]下面根据附图对本专利技术进行详细说明。
[0024]具有防攻击功能的加密算法的控制器的设计思想是如图1所示:
[0025]加密算法的运行过程是先通过随机数模块向算法控制寄存器中写入数据,其后控制器进行加密运算,直至运算结束。随机数模块(RNG)向加密控制模块中的寄存器写入随机数,并在空闲时进行更新,用户向寄存器中写入128bit明文后,在开启全部防攻击模式下,启动加密运算时,控制器会读取其中一组随机数,根据第一组128bit随机数的值,并根据用户设置确定在第i轮插入k个伪轮,确保真实的加密位置是随机的,控制器对轮函数A、轮函数B、密钥扩展A和密钥扩展B中写入明文和轮秘钥,同时启动轮函数A、轮函数B、密钥扩展A和密钥扩展B,使其所产生的功耗相互干扰,待完成当前轮加密后,将当前密文和轮秘钥写入内部寄存器,同时随机数产生的密文和轮密钥写入到原有寄存器以备下次使用,防止因
随机数模块产生随机数过慢而极大延长加密时间,再利用使得每次使用的随机数明文不同,防止多次重复使用的功耗干扰相同,循环多次轮函数加密过程,直至完成当前明文加密后,将密文写入到可被用户读取的寄存器中,完成一次加密运算。在用户写入第一个明文,明文寄存器为满状态,开始运算后明文被读取到控制器内部,明文寄存器变为空状态,可继续写入第二个明文,当第一个明文加密完成后,密文寄存器变为满状态,待用户读取,此时控制器正在进行第二个明文的加密,加密过程以此类推直至完成用户的所有明文加密。
[0026]轮函数中包含字节代换、行移位、列混合、轮密钥加。字节代换中包含一个S盒,存储着16
×
16的8位数据,由于S盒中的每个字节均映射它在有限域GF(28)中的逆,通过扩展的欧几里得算法和矩阵变换可计算得到S盒的输入与输出的对应关系,本算法应用这种方式实现S盒,优点是可减少因S盒的大量数据而带来的芯片面积消耗。行移位可直接进行变换,然后进行列混合,列混合是运算矩阵相乘实现,在行移位后的值乘以矩阵其中矩阵元素间的乘法和加法是定义于Z2[x]中的不可约多项式m(x)=x8+x4+x3+x+1构造GF(28)的二元运算。最后进行轮密钥加,完成一轮的加密操作本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.多场景应用的防攻击分组密码加密方法,其特征在于:在进行加密运算前,由随机数模块在没有加密和取随机数操作时向寄存器中写入几组随机数以备使用,同时产生随机数非空的信号,在明文写入后,同时进行轮密钥生成、加密操作,以干扰加密过程的功耗信息。2.根据权利要求1所述的多场景应用的防攻击分组密码加密方法,其特征在于,包括以下步骤:空闲时,随机数模块向随机数寄存器中写入随机数,完成加密前的准备工作,产生数据非空信号给控制器;开启防攻击模式使能,开启加密模式,写入明文后,进行第一轮的加密操作和密钥扩展;同时在10轮的AES加密过程中随机插入不等的伪轮,待加密完成后,将正确密文和干扰密文同时存在相应的寄存器中,正确密文被读取;在未启用防攻击模式时,可同时写入两个明文进行加密,以用于不同的应用场景。3.根据权利要求1或2所述的多场景应用的防攻击分组密码加密方法,其特征在于,包括以下步骤:1)用户向明文寄存器中写入明文;随机数模块向加密控制模块中的随机数寄存器写入随机数,并在空闲时进行更新;2)启动加密运算时,加密控制模块中的控制器读取其中一组随机数,根据第一组随机数的值,并在第i轮插入k个伪轮,以确...
【专利技术属性】
技术研发人员:赵力强,陈晓棠,王爽,韩旭东,唐虹,
申请(专利权)人:中国电子科技集团公司第四十七研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。