CN103873229A - KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法 - Google Patents

KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法 Download PDF

Info

Publication number
CN103873229A
CN103873229A CN201410093165.8A CN201410093165A CN103873229A CN 103873229 A CN103873229 A CN 103873229A CN 201410093165 A CN201410093165 A CN 201410093165A CN 103873229 A CN103873229 A CN 103873229A
Authority
CN
China
Prior art keywords
klein
bit
avr
encryption
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410093165.8A
Other languages
English (en)
Other versions
CN103873229B (zh
Inventor
龚征
温雅敏
周志荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China Normal University
Original Assignee
South China Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China Normal University filed Critical South China Normal University
Priority to CN201410093165.8A priority Critical patent/CN103873229B/zh
Publication of CN103873229A publication Critical patent/CN103873229A/zh
Application granted granted Critical
Publication of CN103873229B publication Critical patent/CN103873229B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法,包括下述步骤:S1、通过代数标准型转换,将输入4比特转换为输出4比特的布尔运算方程组;S2、将S1步骤输出的比特值再按照字节分组,合计8个字节,循环左移两个字节,再输出到下一步;S3、将S2步骤的输出进行bitslicing化的线性扩散操作,输出为KLEIN轮函数最终输出,将作为下一轮S1的输入值;S4、针对KLEIN不同密钥长度,重复步骤S1、S2、S3,直至获取相应完整加密输出值。本发明使得KLEIN算法能通过Bitslicing方式对Timing和Cache等边界信道攻击方式进行防御。同时分别基于读取和存储操作进行相应的优化,从而降低了算法在MixNibbles步骤上的计算复杂度。

Description

KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法
技术领域
本发明涉及密码算法的技术领域,特别涉及一种KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法。
背景技术
随着物联网(Internet of Things)应用的不断发展,相关信息安全问题也得到了越来越多的重视。轻量级密码学算法,特别是轻量级分组密码算法,由于可以在低功耗环境下保证数据的机密性和完整性,在物联网安全中起着非常重要的作用。由于密码学算法分析与设计技术的成熟,采用传统密码学分析方法对于相关应用的实际威胁往往较小,但攻击者可以通过能量、时间或存储上所产生的边界信道信息进行攻击,在实际中往往更加具有威胁性。
爱特梅尔(ATMEL)公司设计并制造的AVR系列微处理器具有低功耗、成本低、开发环境友善等优点,在物联网领域得到了广泛的应用。在RFIDSec2011会议上,Gong等人提出了一种新的面向软件实现的轻量级分组密码算法KLEIN(在荷兰语中表示“mini”的意思)。如图1所示,KLEIN算法基于Substitution-Permutation Network结构加以设计,分组长度固定为64比特。算法密钥长度可选择64、80和96比特,但需要不同迭代轮数为12、16和20轮,对应名称为KLEIN-64/80/96。为了达到受限环境下软件实现的高效性,KLEIN算法尽可能的采用了面向字节的处理模式。在算法的非线性模块上,KLEIN采用了具有自反性质的4比特S盒,使得算法仅需要付出一个S盒的代价来实现加解密运算。在扩散模块上,KLEIN将AES的MixColumns函数变形为算法中的MixNibbles函数,同时与面向字节的循环左移函数RotateNibbles相结合。这种设计思路既保证了KLEIN算法的软硬件效率,又继承了MixColumns函数最大距离码(MDS)特性。在密钥调度模块上,KLEIN选择了比较复杂的处理方法,从而保证基于KLEIN的哈希函数也具有较高的安全性。通过典型传感器硬件平台TelosB和IRIS上大量的实验数据分析,KLEIN算法在软件实现上比现有轻量级分组密码算法具有一定的优势。在硬件开销上,
Synopsis软件综合输出结果表明三种密钥长度的KLEIN算法的硬件实现开销都低于1530个门电路。上述结果表明KLEIN算法在软硬件实现上均适用于WSN或RFID。在嵌入式密码算法实现上,攻击者往往采用边界信道的方式对密码算法所使用的密钥进行恢复攻击。算法在不同密钥下的时间、cache存储特征等边界信道都已在实际中证明能够被攻击者所利用。对于KLEIN分组密码算法而言,如果要在实际环境中加以使用,那么抵抗Timing和Cache边界信道攻击是必须考虑的安全因素。
Bitslicing实现技术最初用于DES分组加密算法的抗边界信道保护。在bitslicing实现中,每一个输入分组都将基于比特的方式来进行计算操作。由于每一个比特的处理均由相同的处理步骤得到最终输出,算法实现在抵抗Timing和Cache边界信道攻击上具有非常好的安全性。虽然在安全性上得到提高,但由于bitslicing技术将以往基于分组的计算操作转变为基于比特,在软件实现上将会大大增加计算复杂度。因此往往只用于高性能并行化设备上的分组密码算法抗边界信道攻击实现。由于物联网设备价格低廉,设备的计算与存储开销均受限制,如何在相应的低功耗设备上给出分组密码算法的抗Timing或Cache边界信道攻击实现,在当前学术界与工业界仍是热点研究问题。在已公开发表文献和专利中,尚未有针对KLEIN的抗Timing或Cache边界信道攻击实现。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种针对KLEIN加密算法的AVR环境下高速抗timing和cache的保护方法。
本发明的目的通过下述技术方案实现:
KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法,包括下述步骤:
S1、4比特S盒Bitslicing方法:KLEIN的4比特置换盒是算法唯一的非线性处理步骤,用于将待加密数据转换为比特格式,与轮密钥逐比特异或后按照每4比特作为一个分组输入KLEIN所选用的4比特S盒,该S盒的Bitslicing操作首先通过代数标准型转换,将输入4比特转换为输出4比特的布尔运算方程组,故转换为4个布尔函数的形式;
S2、RotateNibbles步骤法:将S1步骤输出的比特值再按照字节分组,合计8个字节,循环左移两个字节,再输出到下一步;由于该步骤基于字节进行运算,并且与数据比特值完全无关,因此不需要进行Bitslicing操作;
S3、MixNibbles步骤Bitslicing方法:MixNibbles步骤将S2步骤的输出进行线性扩散操作,输出为KLEIN轮函数最终输出,将作为下一轮S1的输入值,即首先将MixNibbles当中所用到的GF上的乘法运算均转换为若干次查表运算与异或运算相结合的结果,基于该矩阵运算的特点,给出了每一个字节运算的布尔函数表达式;
S4、针对KLEIN不同密钥长度,重复步骤S1、S2、S3,直至获取相应完整加密输出值。
优选的,步骤S1中采用了基于读取特性的操作优化,在原始操作中,每次产生一个比特的输出后,再对下一个比特进行操作,需要重新读取整个字节。
优选的,采用读取优化方法是在读取一个比特的数据后,进行相应的Bitslicing计算,然后在该比特数据写回存储器之前将所有与该字节变化相关的比特进行更新,减少数据字节重复读取的次数。
优选的,针对S3步骤当中数据存储操作频繁,采用了基于存储特性的操作优化,由于KLEIN加密分组为8字节,因此可以通过将加密输入输出数据在存储器中集中排列的方式,由于AVR汇编中低位地址已经足够访问全部8字节空间,使得存储的高位地址在存储过程中不需要改变,减少Bitslicing操作中对数据进行存储时对地址进行访问的次数。
优选的,步骤S1中,KLEIN的S盒的bitslicing实现如下:
y0=1+x0+x1+x0x2+x1x2+x0x1x2+x3+x1x3+x0x1x3
y1=1+x0+x2+x1x2+x3+x1x3+x0x1x3+x2x3
y2=1+x1+x2+x0x2+x1x2+x0x1x2+x0x3+x0x2x3+x1x2x3
y3=x1+x0x2+x3+x0x3+x0x1x3+x1x2x3
其中(x0,x1,x2,x3)和(y0,y1,y2,y3)分别为输入值X和Y的从低到高4个比特。
优选的,步骤S3中,MixNibbles步骤的Bitslicing方法,将GF上的乘2转换为字节布尔运算操作,再通过乘2运算构造其他元素的乘法运算。
优选的,MixNibbles步骤每个输入输出字节的对应计算可转换为如下布尔运算表达式:
bij|0=a(i)4j|7⊕a(i+1)4j|0⊕a(i+1)4j|7⊕a(i+2)4j|0⊕a(i+3)4j|0;
bij|1=a(i)4j|0⊕a(i)4j|7⊕a(i+1)4j|0⊕a(i+1)4j|1⊕a(i+1)4j|7⊕
a(i+2)4j|1⊕a(i+3)4j|1;
bij|2=a(i)4j|1⊕a(i+1)4j|1⊕a(i+1)4j|2⊕a(i+2)4j|2⊕a(i+3)4j|2;
bij|3=a(i)4j|2⊕a(i)4j|7⊕a(i+1)4j|2⊕a(i+1)4j|3⊕a(i+1)4j|7⊕
a(i+2)4j|3⊕a(i+3)4j|3;
bij|4=a(i)4j|3⊕a(i)4j|7⊕a(i+1)4j|3⊕a(i+1)4j|4⊕a(i+1)4j|7⊕
a(i+2)4j|4⊕a(i+3)4j|4;
bij|5=a(i)4j|4⊕a(i+1)4j|4⊕a(i+1)4j|5⊕a(i+2)4j|5⊕a(i+3)4j|5;
bij|6=a(i)4j|5⊕a(i+1)4j|5⊕a(i+1)4j|6⊕a(i+2)4j|6⊕a(i+3)4j|6;
bij|7=a(i)4j|6⊕a(i+1)4j|6⊕a(i+1)4j|7⊕a(i+2)4j|7⊕a(i+3)4j|7;
其中i、j代表所在字节的矩阵行、列值,0-7表示字节内比特位置,0为
最低位,7为最高位。
优选的,步骤S4中,针对KLEIN-64/80/96不同密钥长度,分别重复S1至S3的轮数为12/14/16轮,获得相应完整加密输出值。
本发明相对于现有技术具有如下的优点及效果:
本发明从AVR微处理器的特点出发,基于AVR ASM语言给出了面向物联网
应用的轻量级分组加密算法KLEIN的bitslicing实现级及相关优化方法。在实现过程中,本发明首先针对Sbox的ANF表达式,给出了bitslicing下的优化处理方法。其次本发明分别基于读取和存储操作进行相应的优化,降低了算法在MixNibbles步骤上的计算复杂度,从而使得KLEIN算法能通过Bitslicing方式对Timing和Cache等边界信道攻击方式进行防御。从AVR平台实际试验结果来看,优化后的KLEIN算法bitslicing实现在AVR微处理器平台下具备可实用性。
附图说明
图1是KLEIN算法描述示意图;
图2是本发明的流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
本实施例从AVR微处理器的特点出发,基于AVR ASM语言给出了面向物联网应用的轻量级分组加密算法KLEIN的bitslicing实现级及相关优化方法。在实现过程中,首先针对Sbox的ANF表达式,给出了bitslicing下的优化处理方法。其次分别基于读取和存储操作进行相应的优化,降低了算法在MixNibbles步骤上的计算复杂度,从而使得KLEIN算法能通过Bitslicing方式对Timing和Cache等边界信道攻击方式进行防御。从AVR平台实际试验结果来看,优化后的KLEIN算法bitslicing实现在AVR微处理器平台下具备可实用性。如图2所示,本实施例针对KLEIN加密算法的avr环境下高速抗timing和cache的保护方法具体为:
1、4比特S盒Bitslicing方法
在分组密码算法中,S盒往往作为唯一的非线性构件,实现算法在迭代若干轮数之后的抗密码学分析能力。在软件或硬件实现上,S盒运算往往采用查表法(Look-UP Table,LUT)的形式,从而加快加解密运算的速度。但在边界信道攻击中,由于不同的S盒输入会对查表时间造成影响(例如排在LUT表前面的查询速度快一点,排在后面的速度相对会慢一点)。攻击者可以通过timing或cache所泄漏的边界信道信息进行密钥的恢复。因而在S盒的实现上,我们可以通过Bitslicing的方式来避免查表所造成的时间或存储差异。常用的S盒bitslicing方法就是将其转换为布尔运算表达式的方式(Algebraic NormalForm,ANF)。由于KLEIN所用的S盒为4比特输入输出(如表1所示),因此可以转换为4个布尔函数的形式。根据ANF转换,可以得到KLEIN的S盒的bitslicing实现如下:
y0=1+x0+x1+x0x2+x1x2+x0x1x2+x3+x1x3+x0x1x3
y1=1+x0+x2+x1x2+x3+x1x3+x0x1x3+x2x3
y2=1+x1+x2+x0x2+x1x2+x0x1x2+x0x3+x0x2x3+x1x2x3
y3=x1+x0x2+x3+x0x3+x0x1x3+x1x2x3
其中(x0,x1,x2,x3)和(y0,y1,y2,y3)分别为输入值X和Y的从低到高4个比特。ANF表达式中的加法与乘法运算均为二进制上的AND和XOR运算。
表1KLEIN4比特S盒
输入 0 1 2 3 4 5 6 7 8 9 A B C D E F
输出 7 4 A 9 1 F B 0 C 3 2 6 8 E D 5
如果采用上述方法来实现S盒,其处理速度将会比采用查表方法慢。我们可以通过并行化处理的方法来提高逐比特运算S盒的处理速度。其核心思想在于将S盒输入值当成与S盒输出长度相当的二维向量进行处理。举例而言,对于KLEIN的S盒而言,如果采用传统的ANF方式进行处理,每次输入4个bit(x0,x1,x2,x3),输出则为(y0,y1,y2,y3)。如果我们把(x0,x1,x2,x3)看作是4个16比特向量值而不是单独1个比特,那么由于S盒处理都是在GF(2)上的运算,没有进位处理,所以输出值(y0,y1,y2,y3)也将变为向量值,这将降低S盒在bitslicing后的速度损失。
2、RotateNibbles步骤Bitslicing方法
在KLEIN算法中,RotateNibbles步骤是将S盒输出值循环左移两个字节。由于该步骤在运算上与输入值无关,因而在bitslicing上不需要进行特殊处理。所以在软件实现上,我们可以将RotateNibbles步骤和S盒操作步骤合并,从而省去该步骤开销。
3、MixNibbles步骤Bitslicing方法
在KLEIN算法中,MixNIbbles步骤与AES的MixColumns步骤在运算上是一致的。不同之处在于AES面向128/192/256比特进行处理,而KLEIN算法只需处理64/80/96比特。AES的快速实现采用了256比特查表的方式,将MixColumns当中所用到的GF(28)上的乘法运算均转换为若干次查表运算与异或运算相结合的结果。在MixNibbles的Bitslicing实现上,基于该矩阵运算的特点,给出了每一个字节运算的布尔函数表达式如下:
bij|0=a(i)4j|7⊕a(i+1)4j|0⊕a(i+1)4j|7⊕a(i+2)4j|0⊕a(i+3)4j|0
bij|1=a(i)4j|0⊕a(i)4j|7⊕a(i+1)4j|0⊕a(i+1)4j|1⊕a(i+1)4j|7⊕
a(i+2)4j|1⊕a(i+3)4j|1
bij|2=a(i)4j|1⊕a(i+1)4j|1⊕a(i+1)4j|2⊕a(i+2)4j|2⊕a(i+3)4j|2
bij|3=a(i)4j|2⊕a(i)4j|7⊕a(i+1)4j|2⊕a(i+1)4j|3⊕a(i+1)4j|7⊕
a(i+2)4j|3⊕a(i+3)4j|3
bij|4=a(i)4j|3⊕a(i)4j|7⊕a(i+1)4j|3⊕a(i+1)4j|4⊕a(i+1)4j|7⊕
a(i+2)4j|4⊕a(i+3)4j|4
bij|5=a(i)4j|4⊕a(i+1)4j|4⊕a(i+1)4j|5⊕a(i+2)4j|5⊕a(i+3)4j|5
bij|6=a(i)4j|5⊕a(i+1)4j|5⊕a(i+1)4j|6⊕a(i+2)4j|6⊕a(i+3)4j|6
bij|7=a(i)4j|6⊕a(i+1)4j|6⊕a(i+1)4j|7⊕a(i+2)4j|7⊕a(i+3)4j|7
其中aij|0代表MixNibbles步骤中第i行、第j列所在字节的第0个比特。
4、基于读取特性的操作优化
在AVR微处理器环境下,要读取一个数组中的元素,计算其下标通常是复杂的。尤其在bt_Mixnibbles,下标形如((i+1)%4)*8+j*32,在i+1和j已知的情况下,仍然需要2次lsr、10次lsr和1次add操作。原来采用的方法是每读取一个数据只更新一个值。
CALCULATE i%4+j
READ a(i)4j|7
CALCULATE(i+1)%4+j
READ a(i+1)4j|0
READ a(i+1)4j|7
bij|0←a(i)4j|7XOR a(i+1)4j|0XOR a(i+1)4j|7
CALCULATE i%4+j
READ a(i)4j|0
READ a(i)4j|7
CALCULATE(i+1)%4+j
READ a(i+1)4j|0
bij|1←a(i)4j|0XOR a(i)4j|7XOR a(i+1)4j|0
这样会增加下标计算和取数的操作。优化后采取的方法是读取一个数据更新所有与此数据相关的值。
CALCULATE i%4+j
READ a(i)4j|7
bij|0←a(i)4j|7
bij|1←bij|1XOR a(i)4j|7
bij|3←bij|3XOR a(i)4j|7
bij|4←bij|4XOR a(i)4j|7
此方法以增加空间的开销为代价,需要保存bij|0到bij|7的值。但值是保存在寄存器中的,所以不会增加实际开销。且根据bt_Mixnibbles算法的特点,可线性读取数据a的值。在AVR微处理器环境下,线性取值是很简单的,只需指针加1:LD Rd,X+。
5、基于存储特性的操作优化
在AVR微处理器环境下,变量存放在RAM中,地址是16位的,寄存器是8位的。因此需使用两个寄存器分别保存高位地址和低位地址。而对数组变量进行读写操作,就必须修改高位地址寄存器和低位地址寄存器。采用原来的方法更新bt_state[20]的值:
LowAddress←lowAddress+offset(0x14)
HighAddress←HighAddress+carry(0or1)
bt_state[HighAddress|LowAddress]←0x01
利用存储特性来调整数据位置,使得对所有数组变量都不跨越低8位的地址空间(carry为0),从而省去了所有对高位地址寄存器操作。采取优化后的方法更新bt_state[20]的值:
LowAddress←lowAddress+offset(0x14);
bt_state[HighAddress|LowAddress]←0x01。
实验结果
为了测试Bitslicing优化实现后的KLEIN算法的实用性,本申请采用ATMELATting45系列微处理器作为实验平台,在平台上使用AVR ASM汇编语言(编译环境AVR Studio4.12)来实现KLEIN-80加解密算法。ATtiny45系列微处理器具有4K字节可编程Flash ROM,256字节EEPROM,256字节SRAM,工作模式下主频可自适应调整,最大可为20MHz,KLEIN算法在AVR微处理器上的实现开销如表2所示。
表2KLEIN算法在AVR微处理器上的实现开销比较
实现算法 代码大小 RAM ROM
基本KLEIN-64 1346 32 512
基本KLEIN-80 1378 34 512
基本KLEIN-96 1426 36 512
优化前
Bitslicing KLEIN-64 2928 168 20
Bitslicing KLEIN-80 2954 170 20
Bitslicing KLEIN-96 2984 172 20
优化后
Bitslicing KLEIN-64 2012 168 20
Bitslicing KLEIN-80 2038 170 20
Bitslicing KLEIN-96 2054 172 20
Sbox处理优化后
Bitslicing KLEIN-64 2780 160 20
Bitslicing KLEIN-80 2812 162 20
Bitslicing KLEIN-96 2896 164 20
为了体现针对AVR汇编的优化方法的效果,本申请将优化前后的Bitslicing KLEIN算法也做了比较。各项性能数据均由AVR Studio4.12测试给出,其中代码大小是加解密算法所占Flash ROM字节数,内存开销为所占SRAM字节数,处理速度则是算法加、解密一个分组所需要的微处理器时钟数;KLEIN算法在AVR微处理器上的加解密速度比较如表3所示。
表3KLEIN算法在AVR微处理器上的加解密速度比较
Figure BDA0000476524010000091
Figure BDA0000476524010000101
从表2与表3给出的性能数据可以看出,采用bitslicing方法来实现KLEIN算法大大增加的加解密所需的时间开销,但在实现的内存和代码大小开销上符合AVR硬件环境限制要求。造成该测试结果的关键在于基于比特而不是字节来进行加解密运算操作,对速度的影响十分明显。尽管在速度上与面向字节的实现相比没有优势,但由于bitslicing实现能将每一次运算都规约到结果的一个比特,对于边界信道攻击者而言无法从计算或存储的差异性上获得优势。同时根据表3中具体工作频率下的加解密速度来看,bitslicing后的KLEIN算法仍然在毫秒级别,可以满足AVR设备上的加解密要求。由于分组密码算法仅仅具有理论上的安全性往往会造成实际中的安全性问题,因而上述bitslicing实现在需要抵抗timing和cache攻击的边界信道应用场景下具有很好的实用性。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (8)

1.KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法,其特征在于,包括下述步骤:
S1、4比特S盒Bitslicing方法:KLEIN的4比特置换盒是算法唯一的非线性处理步骤,用于将待加密数据转换为比特格式,与轮密钥逐比特异或后按照每4比特作为一个分组输入KLEIN所选用的4比特S盒,该S盒的Bitslicing操作首先通过代数标准型转换,将输入4比特转换为输出4比特的布尔运算方程组,故转换为4个布尔函数的形式;
S2、RotateNibbles步骤法:将S1步骤输出的比特值再按照字节分组,合计8个字节,循环左移两个字节,再输出到下一步;由于该步骤基于字节进行运算,并且与数据比特值完全无关,因此不需要进行Bitslicing操作;
S3、MixNibbles步骤Bitslicing方法:MixNibbles步骤将S2步骤的输出进行线性扩散操作,输出为KLEIN轮函数最终输出,将作为下一轮S1的输入值,即首先将MixNibbles当中所用到的GF上的乘法运算均转换为若干次查表运算与异或运算相结合的结果,基于该矩阵运算的特点,给出了每一个字节中逐比特运算的布尔函数表达式;
S4、针对KLEIN不同密钥长度,重复步骤S1、S2、S3,直至获取相应完整加密输出值。
2.根据权利要求1所述的KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法,其特征在于,步骤S1中采用了基于读取特性的操作优化,在原始操作中,每次产生一个比特的输出后,再对下一个比特进行操作,需要重新读取整个字节。
3.根据权利要求2所述的KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法,其特征在于,采用读取优化方法是在读取一个比特的数据后,进行相应的Bitslicing计算,然后在该比特数据写回存储器之前将所有与该字节变化相关的比特进行更新,减少数据字节重复读取的次数。
4.根据权利要求1所述的KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法,其特征在于,针对S3步骤当中数据存储操作频繁,采用了基于存储特性的操作优化,由于KLEIN加密分组为8字节,因此可以通过将加密输入输出数据在存储器中集中排列的方式,由于AVR汇编中低位地址已经足够访问全部8字节空间,使得存储的高位地址在存储过程中不需要改变,减少Bitslicing操作中对数据进行存储时对地址进行访问的次数。
5.根据权利要求1所述的KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法,其特征在于步骤S1中,KLEIN的S盒的bitslicing实现如下:
y0=1+x0+x1+x0x2+x1x2+x0x1x2+x3+x1x3+x0x1x3
y1=1+x0+x2+x1x2+x3+x1x3+x0x1x3+x2x3
y2=1+x1+x2+x0x2+x1x2+x0x1x2+x0x3+x0x2x3+x1x2x3
y3=x1+x0x2+x3+x0x3+x0x1x3+x1x2x3
其中(x0,x1,x2,x3)和(y0,y1,y2,y3)分别为输入值X和Y的从低到高4个比特。
6.根据权利要求1所述的KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法,其特征在于,步骤S3中,MixNibbles步骤的Bitslicing方法,将GF上的乘2转换为字节布尔运算操作,再通过乘2运算构造其他元素的乘法运算。
7.根据权利要求6所述的KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法,其特征在于,MixNibbles步骤每个输入输出字节的对应计算可转换为如下布尔运算表达式:
bij|0=a(i)4j|7⊕a(i+1)4j|0⊕a(i+1)4j|7⊕a(i+2)4j|0⊕a(i+3)4j|0;
bij|1=a(i)4j|0⊕a(i)4j|7⊕a(i+1)4j|0⊕a(i+1)4j|1⊕a(i+1)4j|7⊕
a(i+2)4j|1⊕a(i+3)4j|1;
bij|2=a(i)4j|1⊕a(i+1)4j|1⊕a(i+1)4j|2⊕a(i+2)4j|2⊕a(i+3)4j|2;
bij|3=a(i)4j|2⊕a(i)4j|7⊕a(i+1)4j|2⊕a(i+1)4j|3⊕a(i+1)4j|7⊕
a(i+2)4j|3⊕a(i+3)4j|3;
bij|4=a(i)4j|3⊕a(i)4j|7⊕a(i+1)4j|3⊕a(i+1)4j|4⊕a(i+1)4j|7⊕
a(i+2)4j|4⊕a(i+3)4j|4;
bij|5=a(i)4j|4⊕a(i+1)4j|4⊕a(i+1)4j|5⊕a(i+2)4j|5⊕a(i+3)4j|5;
bij|6=a(i)4j|5⊕a(i+1)4j|5⊕a(i+1)4j|6⊕a(i+2)4j|6⊕a(i+3)4j|6;
bij|7=a(i)4j|6⊕a(i+1)4j|6⊕a(i+1)4j|7⊕a(i+2)4j|7⊕a(i+3)4j|7;
其中i、j代表所在字节的矩阵行、列值,0-7表示字节内比特位置,0为最低位,7为最高位。
8.根据权利要求1所述的KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法,其特征在于,步骤S4中,针对KLEIN-64/80/96不同密钥长度,分别重复S1至S3的轮数为12/14/16轮,获得相应完整加密输出值。
CN201410093165.8A 2014-03-13 2014-03-13 KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法 Expired - Fee Related CN103873229B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410093165.8A CN103873229B (zh) 2014-03-13 2014-03-13 KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410093165.8A CN103873229B (zh) 2014-03-13 2014-03-13 KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法

Publications (2)

Publication Number Publication Date
CN103873229A true CN103873229A (zh) 2014-06-18
CN103873229B CN103873229B (zh) 2017-01-11

Family

ID=50911380

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410093165.8A Expired - Fee Related CN103873229B (zh) 2014-03-13 2014-03-13 KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法

Country Status (1)

Country Link
CN (1) CN103873229B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105933111A (zh) * 2016-05-27 2016-09-07 华南师范大学 一种基于OpenCL的Bitslicing-KLEIN的快速实现方法
CN110781453A (zh) * 2019-09-23 2020-02-11 太原理工大学 一种基于复杂理论作战网络脆弱边识别方法
CN113076090A (zh) * 2021-04-23 2021-07-06 中国人民解放军国防科技大学 一种面向边信道安全防护的循环语句执行方法及装置
CN115801412A (zh) * 2022-11-18 2023-03-14 国网河北省电力有限公司电力科学研究院 一种电力物联信息网络攻击行为特征的提取方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185690A (zh) * 2011-01-27 2011-09-14 中国科学院软件研究所 一种最优s盒构造方法及其电路
CN103138917A (zh) * 2013-01-25 2013-06-05 国家密码管理局商用密码检测中心 以s盒输入为基础的汉明距离模型在sm4密码算法侧信道能量分析的应用
US20140003603A1 (en) * 2011-03-28 2014-01-02 Sony Corporation Data processing device, data processing method, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185690A (zh) * 2011-01-27 2011-09-14 中国科学院软件研究所 一种最优s盒构造方法及其电路
US20140003603A1 (en) * 2011-03-28 2014-01-02 Sony Corporation Data processing device, data processing method, and program
CN103138917A (zh) * 2013-01-25 2013-06-05 国家密码管理局商用密码检测中心 以s盒输入为基础的汉明距离模型在sm4密码算法侧信道能量分析的应用

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
温雅敏,龚征,胡沐创,唐韶华: ""面向ATtiny微处理器的KLEIN分组密码算法实现"", 《小型微型计算机系统》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105933111A (zh) * 2016-05-27 2016-09-07 华南师范大学 一种基于OpenCL的Bitslicing-KLEIN的快速实现方法
CN105933111B (zh) * 2016-05-27 2019-03-22 华南师范大学 一种基于OpenCL的Bitslicing-KLEIN的快速实现方法
CN110781453A (zh) * 2019-09-23 2020-02-11 太原理工大学 一种基于复杂理论作战网络脆弱边识别方法
CN110781453B (zh) * 2019-09-23 2023-11-24 太原理工大学 一种基于复杂理论作战网络脆弱边识别方法
CN113076090A (zh) * 2021-04-23 2021-07-06 中国人民解放军国防科技大学 一种面向边信道安全防护的循环语句执行方法及装置
CN113076090B (zh) * 2021-04-23 2022-07-05 中国人民解放军国防科技大学 一种面向边信道安全防护的循环语句执行方法及装置
CN115801412A (zh) * 2022-11-18 2023-03-14 国网河北省电力有限公司电力科学研究院 一种电力物联信息网络攻击行为特征的提取方法

Also Published As

Publication number Publication date
CN103873229B (zh) 2017-01-11

Similar Documents

Publication Publication Date Title
Coron Higher order masking of look-up tables
Bilgin et al. Efficient and first-order DPA resistant implementations of Keccak
US8553877B2 (en) Substitution table masking for cryptographic processes
US8966279B2 (en) Securing the implementation of a cryptographic process using key expansion
US11841981B2 (en) Low cost cryptographic accelerator
US8577023B2 (en) Encryption processing method, apparatus, and computer program utilizing different types of S-boxes
US8094816B2 (en) System and method for stream/block cipher with internal random states
EP3371928B1 (en) Key sequence generation for cryptographic operations
US20120254625A1 (en) Protecting states of a cryptographic process using group automorphisms
US20120170739A1 (en) Method of diversification of a round function of an encryption algorithm
US8966285B2 (en) Securing implementation of a cryptographic process having fixed or dynamic keys
CN104639314A (zh) 基于aes加密/解密算法的装置和流水控制方法
US8675866B2 (en) Multiplicative splits to protect cipher keys
Gueron Advanced encryption standard (AES) instructions set
KR20130041353A (ko) 안전하지 않은 환경에서의 블록 암호 프로세스를 위한 장치 및 방법
Saravanan et al. Novel reversible design of advanced encryption standard cryptographic algorithm for wireless sensor networks
CN103873229A (zh) KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法
Kim et al. Masked implementation of PIPO block cipher on 8-bit AVR microcontrollers
CN112883395A (zh) 一种增强抗攻击能力的高性能gfn掩码方法
Buell Modern symmetric ciphers—Des and Aes
Gueron et al. Hardware implementation of AES using area-optimal polynomials for composite-field representation GF (2^ 4)^ 2 of GF (2^ 8)
KR20050092698A (ko) 라인달 블록 암호의 서브바이트 함수를 실행하는 장치 및방법과 데이터 암호화 및 해독 장치
Gupta et al. Correlation power analysis of KASUMI and power resilience analysis of some equivalence classes of KASUMI S-boxes
Wadi et al. A low cost implementation of modified advanced encryption standard algorithm using 8085A microprocessor
Chaves et al. SCA-Resistance for AES: How Cheap Can We Go?

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170111

CF01 Termination of patent right due to non-payment of annual fee