基于S盒共用的低熵掩码方案的制作方法

文档序号:14574510发布日期:2018-06-02 01:09阅读:来源:国知局
基于S盒共用的低熵掩码方案的制作方法

技术特征:

1.一种基于S盒共用的低熵掩码方案,其特征是:通过降低掩码方案中掩码S盒的数目,从而降低掩码方案占用的面积,依次分为S盒共用思想和AES算法实现两部分,所述的AES算法实现分为线性部分的掩码实现、AES字节替代模块的实现及AES的整体实现三个步骤完成。

2.根据权利要求1所述的基于S盒共用的低熵掩码方案,其特征是:所述的S盒共用是:对于S盒共用方案的掩码值可以有不同的选择,需要选择16个数作为掩码值,这16个数具有统一的特点,即满足正交向量特征,通过分析这组掩码值的特点,可以根据掩码值高低位的关系,将掩码值分为四组,即在每组中掩码值的高低位相同或者取反,分组如下,表示为Mt,其中t∈[1,4]。

M1,M2,M3,M4

在每组掩码分组中采用的掩码原理为:

Sm(xMtr)=S(x) Mt(r+1)mod4

其中x是没有掩码的8字节的数据,Mtr为第t个掩码分组中的第r个掩码值,S代表普通的S盒,Sm代表掩码后的S盒。

整个128位明文的掩码掩码原理为:

SBj=SB(Mp,q,h,nX) M(p+1),(q+1),(h+1),(n+1), ∀p,q,h,n∈{1,4}

其中,

Mpqhn={ MPp , MQq , MHh , MNn , MP(p+1)mod4 , MQ(q+1)mod4MH(h+1)mod4 , MN(n+1)mod4 , ...... , MP(p+3)mod4 , MQ(q+3)mod4 ,MH(h+3)mod4 , MN(n+3)mod4 }

在所述公式中,P,Q,H,Nt,表示的是在四组掩码分组中随机的选择一组,p,q,j,n∈[1,4],表示在每组掩码分组中随机挑选的第几个数。

在每组掩码分组中可以任意的选择一组输入输/输出掩码的S盒作为共用S盒,在第t组中共用(已经计算好的)的S盒输入掩码为mtr,输出掩码为mt(r+1),第t组的共用S盒表示为Sbox_mtr_mt(r+1)mod4。

在每组掩码分组中,我们已知一组输入掩码和输出掩码的S盒,即为共用S盒,其它的3组输入输出掩码组合和共用S盒存在着特定的规律,即掩码值高低位要么相同,要么取反,所以我们可以采用共用S盒的思想,来减少掩码S盒的数目,主要原理是:当一组明文(32位)与其中一组掩码值异或时,根据输入掩码值高低位与每组共用S盒输入掩码高低位的关系来进行地址的选择,当值相同时,则地址不变,值不同时,则地址取反;根据输出掩码高低位与每组共用S盒输出掩码高低位的关系来进行输出选择,当值相同时,则输出不变,值不同时,则输出取反,这样每组就可以共用一个S盒来完成字节替代操作。

3.根据权利要求1或2所述的基于S盒共用的低熵掩码方案,其特征是:所述的线性部分的掩码实现,对于AES线性部分包含密钥加操作(XOR)、行移位操作(SR)以及列混合操作(MC),主要包含线性操作的掩码实现和掩码补偿部分的实现;

对于线性操作的掩码实现:所述的XOR表示的是轮密钥与轮加密结果之间的异或操作,异或的结果恰好是下一轮字节替代的输入值,是与密钥强相关的中间项,因此需要对XOR操作添加掩码。XOR属于线性操作,可以直接通过异或操作进行掩码,但是在掩码的过程中一定要注意与掩码值异或的顺序,所述的SR操作发生在字节替代之后,根据公式Sm(xMtr)=S(x) Mt(r+1)mod4的设计,字节替代的输出是带有掩码的,因此SR操作与密钥的关系是弱相关的,作为线性操作可以直接进行操作,不需要再添加新的掩码值,所述的MC操作发生在SR操作之后,同SR操作一样,MC变换的值与密钥的关系也是弱相关的,作为线性操作可以直接进行操作,不需要再添加新的掩码值;

对于掩码补偿:主要发生在下一轮加密开始前,即每轮加密结束时,利用简单的异或操作去除本轮添加的掩码值,同时添加新的掩码值。对于最后一轮则只需要去掉当前的掩码值,不需要添加新的掩码值,就可以输出正确的密文,在进行字节替代之后,操作数是添加了掩码的,根据添加掩码值的特点,假如把掩码值排成4*4的矩阵,每轮掩码值的变换关系,即掩码值每行都向左移动一列,我们称之为行变换(记作LT)。除最后一轮外,对每轮的输入掩码值依次进行行变换、行移位、列混合和添加新的掩码,对于最后一轮则只需要对输入掩码进行行变换和行移位操作。在每轮结束进行掩码补偿时,一定要先加新掩码在去之前的掩码,这样才能够保证算法的安全性。

4.根据权利要求1或2或3所述的基于S盒共用的低熵掩码方案,其特征是:所述的AES字节替代模块的实现:所述的AES算法中字节替代是唯一的非线性操作,为了满足掩码的基本原则,设计的字节替代操作掩码要满足等式Sm(xMtr)=S(x) Mt(r+1)mod4,所以在字节替换操作过程中必须替换掉原来的S盒,根据表的重新计算技术对新的S盒进行计算,得到的即为本文的共用S盒。根据前文的4个不同的掩码值分组,分别计算每组内的共用S盒,每组内的共用S盒共有四种可能,可以随机选择其中一个作为共用S盒,因此S盒共用方案需要的共用S盒数目为4个;

S盒共用方案的字节替代模块适用于32位的输入,这32位的数据被分为四组,每组8位。当数据输入时,根据不同的掩码值,选择不同的共用S盒进行字节替代操作,在进行字节替代时,这四组8位数据是并行执行的。

5.根据权利要求1或2或3或4所述的基于S盒共用的低熵掩码方案,其特征是:所述的AES的整体实现是:采用共用S盒思想实现整个AES的掩码方案。在算法开始时,首先将明文与随机选择的4组掩码值进行异或,然后与密钥进行异或操作,把这个结果作为中间轮的输入。对于中间轮依次进行行移位、字节替代、列混合、密钥加和掩码补偿操作,而对于最后一轮依次进行行移位、字节替代、密钥加,最后进行掩码补偿操作获得正确的密文,进行输出。对分组的四组数据以随机的顺序进行字节替换、列混合、密钥加和掩码补偿操作。在所有的128位都进行完以上操作之后,需要进行重新排序,把重新排序的结果作为下一轮的输入,最后输出正确的密文;

在查表的时候采用串行的查找方式,每128位数据的查找次数为4。通过对比S盒共用方案与RSM方案的字节替代模块可以看出:RSM方案需要16个掩码S盒,而S盒共用方案只需要4个,是RSM方案1/4,但是在进行字节替代时组与组之间采用的是串行查找的方式,这样使得字节替代操作的吞吐量变为原来的1/4

在存储空间上采用与固定值掩码相同的策略,即预先计算好掩码值和与掩码值对应的共用S盒,存入ROM中,执行算法时,根据制定好的随机规则,选择相应的随机掩码和共用S盒进行运算;

S盒共用方案需要存储在ROM中的变量如下所示:

1)掩码值Mt

2)每组掩码值的偏移量p、q、h、n

3)根据每组掩码分组中输入输出掩码的值重计算得到的共用S盒,共4个;

4)根据每轮的输出掩码确定的掩码补偿的值。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1