The invention relates to a hard and fast AES encryption method and system for resisting side channel attack. This method includes: in the initial software encryption phase, the order of instruction operation is randomized by two random numbers R1 and R2, and the end time is randomized by R1; in the hardware encryption phase, the encryption starts and ends on the FPGA of the fully programmable SoC, and the encryption starts and ends at two time points Random numbers R1 and R2 are randomized; at the last stage of software encryption, the order of instruction operation is randomized by two random numbers R1 and R2, and the starting time point is randomized by R2. The invention can resist cache time attack and energy/electromagnetic analysis attack at the same time while ensuring high data throughput, and is an efficient and safe AES encryption method.
【技术实现步骤摘要】
一种抗侧信道攻击的软硬结合AES快速加密实现方法和系统
本专利技术属于信息安全软硬件设计
,具体为基于全可编程SoC的软硬结合AES快速加密实现方法和系统。本专利技术在保证了高数据吞吐率的情况下,可同时抵御cache时间攻击、能量/电磁分析攻击,是一种高效、安全的AES加密方法。
技术介绍
近些年,随着物联网技术的巨大发展,大量的物联网设备涌入了市场,并极大的改变了人们的生活方式。与此同时,物联网在使用和传输数据的过程中所面临的安全问题,也引起了越来越多的注意。加密是解决数据安全问题的一种最普遍的方法之一,物联网也不例外。现代密码学从数学理论的角度考虑密码算法的安全问题,这种密码学上的困难性问题并不能保证充分的安全。当一种密码算法在现实世界的芯片上实现时,会暴露出更多的弱点。这种利用现实世界加密实现的缺陷获取密钥信息的方法,被称为“侧信道攻击”。攻击者可以利用加密时间、cache行为、能量消耗和电磁辐射等侧信道泄露完成对密钥的破解。自从Kocher在1996年提出了侧信道攻击的方法以来(见P.Kocher.TimingattacksonimplementationsofDiffie-Hellman,RSA,DSS,andothersystems.InAdvancesinCryptology,pages104-113,1996),侧信道攻击已经成为了加密设备的非常严重的安全隐患。在此之后,研究人员提出了很多防御侧信道攻击的加密方法,例如掩码、随机延时、随机指令等。但是,这些攻击和防御方法大多选择简单架构的芯片作为目标,例如8位微控制器,这种目标不能满足 ...
【技术保护点】
1.一种抗侧信道攻击的软硬结合AES快速加密实现方法,其特征在于,该方法利用两个随机数R1和R2把整个AES加密过程分成三个阶段,分别为起始软件加密阶段、硬件加密阶段和最后软件加密阶段,其中:(1)起始软件加密阶段运行在全可编程SoC的ARM内核的软件程序上,指令操作的顺序被两个随机数R1和R2随机化,结束的时间点被R1随机化;(2)硬件加密阶段运行在全可编程SoC的FPGA上,其加密起始和结束的时间点被两个随机数R1和R2随机化;(3)最后软件加密阶段运行在全可编程SoC的ARM内核的软件程序上,指令操作的顺序被两个随机数R1和R2随机化,起始的时间点被R2随机化。
【技术特征摘要】
1.一种抗侧信道攻击的软硬结合AES快速加密实现方法,其特征在于,该方法利用两个随机数R1和R2把整个AES加密过程分成三个阶段,分别为起始软件加密阶段、硬件加密阶段和最后软件加密阶段,其中:(1)起始软件加密阶段运行在全可编程SoC的ARM内核的软件程序上,指令操作的顺序被两个随机数R1和R2随机化,结束的时间点被R1随机化;(2)硬件加密阶段运行在全可编程SoC的FPGA上,其加密起始和结束的时间点被两个随机数R1和R2随机化;(3)最后软件加密阶段运行在全可编程SoC的ARM内核的软件程序上,指令操作的顺序被两个随机数R1和R2随机化,起始的时间点被R2随机化。2.根据权利要求1所述的抗侧信道攻击的软硬结合AES快速加密实现方法,其特征在于,所述起始软件加密阶段的步骤包括:步骤1:预先输入所有的11*16个字节的轮秘钥数组每次加密16字节明文分组前接收两组输入,第一组输入是两个随机数R1和R2,第二组输入是16字节明文P={p0,…p15},并计算明文与初始密钥的异或值步骤2:开始软件加密轮循环,轮数i由1循环到R1,起始加密阶段结束,输出3.根据权利要求2所述的抗侧信道攻击的软硬结合AES快速加密实现方法,其特征在于,所述步骤2中软件加密轮循环的每个加密轮内的指令执行顺序按照以下步骤决定:第一步,计算R1%4的值,如果R1%4==0,计算16字节输入中间值中下标最小的四个字节值,即和记为如果R1%4==1,计算下标倒数第二小的四个字节值,即如果R1%4==2,计算下标第二大的四个字节的值,即如果R1%4==3,计算下标最大的四个字节的值,即的值;第二步,计算R2%3的值,如果R2%3==0,计算剩余12字节中下标最小的四个字节的值;如果R2%3==1,计算剩余12个字节中下标处在中间的四个字节的值;如果R2%3==2,计算剩余12字节中下标最大的四个字节的值;第三步,计算(R2-R1)%2的值,如果(R2-R1)%2==0,首先计算剩余8个字节中下标小的四个字节值,再计算剩余8个字节中下标大的四个字节值;如果(R2-R1)%2==1,首先计算剩余8个字节中下标大的四个字节值,再计算8个字节中下标小的四个字节值。4.根据权利要求1所述的抗侧信道攻击的软硬结合AES快速加密实现方法,其特征在于,所述硬件加密阶段的步骤包括:步骤1:预先输入所有的11*16个字节的轮秘钥数组每次加密开始前接收两组输入,第一组输入是两个随机数R1和R2,第二组输入是16字节中间值步骤2:开始运行硬件加密轮循环,轮数i由R1循环到R2,硬件加密阶段得到输出结果但是并不输出,此时开始虚拟加密轮循环,轮数i由R2循环到R1+10,虚拟加密轮循环结束,输出硬件加密阶段结果5.根据权利要求4所述的抗侧信道攻击的软硬结合AES快速加密实现方法,其特征在于,所述步骤2中硬件加密轮循环按照以下步骤运行:第一步,判断轮数i是否小于第二个随机数R2,如果结果为真,执行下一步;第二步,在一个时钟周期内,对中间值进行字节变换、行移位、列混淆操作,并使轮数i=i+1;第三步,判断i<R2是否为真,如果为真,重复第二步,直到i<R2为假,结束硬件加密轮循环,把输出存储在寄存器中,但不输出。6.根据权利要求4所述的抗侧信道攻击的软硬结合AES快速加密实现方法,其特征在于,所述步骤2中虚拟...
【专利技术属性】
技术研发人员:葛景全,屠晨阳,高能,
申请(专利权)人:中国科学院信息工程研究所,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。