[go: up one dir, main page]

CN108111298A - 基于s盒共用的低熵掩码方案 - Google Patents

基于s盒共用的低熵掩码方案 Download PDF

Info

Publication number
CN108111298A
CN108111298A CN201711263008.7A CN201711263008A CN108111298A CN 108111298 A CN108111298 A CN 108111298A CN 201711263008 A CN201711263008 A CN 201711263008A CN 108111298 A CN108111298 A CN 108111298A
Authority
CN
China
Prior art keywords
mask
box
shared
value
group
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.)
Pending
Application number
CN201711263008.7A
Other languages
English (en)
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.)
Harbin University of Science and Technology
Original Assignee
Harbin University of Science and Technology
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 Harbin University of Science and Technology filed Critical Harbin University of Science and Technology
Priority to CN201711263008.7A priority Critical patent/CN108111298A/zh
Publication of CN108111298A publication Critical patent/CN108111298A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

基于S盒共用的低熵掩码方案。传统设计使用高面积复杂的查找表掩码方案,使用起来加密算法占用的面积大,需要占用更大的存储空间,这对于资源受限的设备是很难实现的。本发明组成包括:通过降低掩码方案中掩码S盒的数目,从而降低掩码方案占用的面积的,依次分为S盒共用思想和AES算法实现两部分,所述的AES算法实现分为线性部分的掩码实现、AES字节替代模块的实现及AES的整体实现三个步骤完成。本发明用于基于S盒共用的低熵掩码方案。

Description

基于S盒共用的低熵掩码方案
技术领域:
本发明涉及一种基于S盒共用的低熵掩码方案。
背景技术:
高级加密标准(AES)因为具有较好的安全性、效率、灵活性等特点,所以被广泛的应用在实践中。侧信道攻击技术( SCA )的出现对加密芯片的安全性构成了很大的威胁,典型的有时间分析攻击、电磁辐射攻击、功耗分析攻击等。在现有的侧信道攻击手段中,差分功耗攻击( DPA ),特别是高阶差分功耗攻击(HODPA)对芯片的安全性构成的威胁最大。
为了抵抗侧信道攻击技术,掩码是一种通用而有效的的方式。现今主要存在三种掩码方案,分别是:基于查找表的掩码方案、基于加法链的掩码方案和基于复合域的掩码方案,其中基于查找表掩码相比于其它两种掩码方案具有查询速度快的优点,但是往往需要占用更大的存储空间,这对于资源受限的设备是很难实现的。掩码的阶数越高,安全性就越好,但是随着掩码阶数的增加,硬件开销将成指数增长。针对这一问题,2012年一个低熵掩码方案被提出,命名为RSM方案。对比于现有的查找表掩码方案,RSM方案有较低的掩码复杂度,它的性能和复杂度都非常接近于没有掩码的AES算法,而且,RSM方案能够安全的抵抗一阶和二阶SCA攻击,是一个安全性和性能的折中方案,可以较好的应用在实践中。但是对于一些面积受限的设备,例如智能卡、物联网(IOT)等,RSM方案因面积过大难以应用到实际中去。传统设计使用高面积复杂的查找表掩码方案,使用起来加密算法占用的面积大。
发明内容:
本发明的目的是提供一种基于S盒共用的低熵掩码方案。
上述的目的通过以下的技术方案实现:
基于S盒共用的低熵掩码方案,通过降低掩码方案中掩码S盒的数目,从而降低掩码方案占用的面积,依次分为S盒共用思想和AES算法实现两部分,所述的AES算法实现分为线性部分的掩码实现、AES字节替代模块的实现及AES的整体实现三个步骤完成。
所述的基于S盒共用的低熵掩码方案,所述的S盒共用是:对于S盒共用方案的掩码值可以有不同的选择,需要选择16个数作为掩码值,这16个数具有统一的特点,即满足正交向量特征,通过分析这组掩码值的特点,可以根据掩码值高低位的关系,将掩码值分为四组,即在每组中掩码值的高低位相同或者取反,分组如下,表示为M t ,其中t∈[1,4]。
M 1 ,M 2 ,M 3 ,M 4
在每组掩码分组中采用的掩码原理为:
S m (x M tr )=S(x) M t(r+1)mod4
其中x是没有掩码的8字节的数据,M tr 为第t个掩码分组中的第r个掩码值,S代表普通的S盒,S m 代表掩码后的S盒。
整个128位明文的掩码,掩码原理为:
SB j =SB(M p,q,h,n X) M (p+1),(q+1),(h+1),(n+1), ∀p,q,h,n∈{1,4}
其中,
M pqhn ={ M Pp , M Qq , M Hh , M Nn , M P(p+1)mod4 , M Q(q+1)mod4M H(h+1)mod4 , M N(n+1)mod4 ,...... , M P(p+3)mod4 , M Q(q+3)mod4 ,M H(h+3)mod4 , M N(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盒来完成字节替代操作。
所述的基于S盒共用的低熵掩码方案,所述的线性部分的掩码实现,对于AES线性部分包含密钥加操作(XOR)、行移位操作(SR)以及列混合操作(MC),主要包含线性操作的掩码实现和掩码补偿部分的实现;
对于线性操作的掩码实现:所述的XOR表示的是轮密钥与轮加密结果之间的异或操作,异或的结果恰好是下一轮字节替代的输入值,是与密钥强相关的中间项,因此需要对XOR操作添加掩码。XOR属于线性操作,可以直接通过异或操作进行掩码,但是在掩码的过程中一定要注意与掩码值异或的顺序,所述的SR操作发生在字节替代之后,根据公式S m (x M tr )=S(x) M t(r+1)mod4的设计,字节替代的输出是带有掩码的,因此SR操作与密钥的关系是弱相关的,作为线性操作可以直接进行操作,不需要再添加新的掩码值,所述的MC操作发生在SR操作之后,同SR操作一样,MC变换的值与密钥的关系也是弱相关的,作为线性操作可以直接进行操作,不需要再添加新的掩码值;
对于掩码补偿:主要发生在下一轮加密开始前,即每轮加密结束时,利用简单的异或操作去除本轮添加的掩码值,同时添加新的掩码值。对于最后一轮则只需要去掉当前的掩码值,不需要添加新的掩码值,就可以输出正确的密文,在进行字节替代之后,操作数是添加了掩码的,根据添加掩码值的特点,假如把掩码值排成4*4的矩阵,每轮掩码值的变换关系,即掩码值每行都向左移动一列,我们称之为行变换(记作LT)。除最后一轮外,对每轮的输入掩码值依次进行行变换、行移位、列混合和添加新的掩码,对于最后一轮则只需要对输入掩码进行行变换和行移位操作。在每轮结束进行掩码补偿时,一定要先加新掩码在去之前的掩码,这样才能够保证算法的安全性。
所述的基于S盒共用的低熵掩码方案,所述的AES字节替代模块的实现:所述的AES算法中字节替代是唯一的非线性操作,为了满足掩码的基本原则,设计的字节替代操作掩码要满足等式S m (x M tr )=S(x) M t(r+1)mod4,所以在字节替换操作过程中必须替换掉原来的S盒,根据表的重新计算技术对新的S盒进行计算,得到的即为本文的共用S盒。根据前文的4个不同的掩码值分组,分别计算每组内的共用S盒,每组内的共用S盒共有四种可能,可以随机选择其中一个作为共用S盒,因此S盒共用方案需要的共用S盒数目为4个;
S盒共用方案的字节替代模块适用于32位的输入,这32位的数据被分为四组,每组8位。当数据输入时,根据不同的掩码值,选择不同的共用S盒进行字节替代操作,在进行字节替代时,这四组8位数据是并行执行的。
所述的基于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)根据每轮的输出掩码确定的掩码补偿的值。
有益效果:
1.本发明是一种基于S盒共用的低熵掩码方案,主要是减小算法占用的面积,通过采用S盒共用方案,使掩码S盒的数目从16个减少到4个(不考虑密钥扩展操作),可以更好的应用到资源受限的设备中去。
本发明的相邻掩码值通过异或操作可以看出不存在相邻掩码值异或之后汉明重量存在规律的特点,而且本发明的方案S盒不需要循环移位,所以也不存在S盒循环偏移量为1的问题。因此本文设计的方案解决了RSM不能抵抗基于偏移量的一阶CPA攻击的缺陷,可有效抵抗基于偏移量的CPA攻击,提高了算法的安全性。
本发明采取了掩码值选取随机化和字节替代顺序随机化的思想,增加了算法的安全性。
附图说明:
附图1是本发明S盒共用方案的原理图。
附图2是本发明掩码补偿操作图。
附图3是S盒共用方案的字节替代模块。
附图4是应用S盒共用方案的AES掩码实现。
具体实施方式:
实施例1:
一种基于S盒共用的低熵掩码方案,通过降低掩码方案中掩码S盒的数目,从而降低掩码方案占用的面积,依次分为S盒共用思想和AES算法实现两部分,所述的AES算法实现分为线性部分的掩码实现、AES字节替代模块的实现及AES的整体实现三个步骤完成。
实施例2:
一种实施例1所述的基于S盒共用的低熵掩码方案,掩码值的选取,所选用的RSM方案的掩码值必须是正交的,这样才能够保证算法的安全性。对于掩码值的选择采用如下的方法:
设正交矩阵的数量级别为Q,列数为N,行数为Q^JJ的选取满足N=(Q^J)-1/Q-1。
首先采用简单的置换方法生成正交矩阵,其中Q=2、N=15、J=4,生成的16*16的正交矩阵A如公式(1)所示。
(1)
然后从正交矩阵A中随机选择8列,就能够构造满足约束的16个掩码。
实施例3
一种实施例1或2所述的基于S盒共用的低熵掩码方案,所述的S盒共用,S盒共用方案是一个通用的掩码方案,只要掩码值满足正交向量的特征就适用于S盒共用方案。对于S盒共用方案的掩码值可以有不同的选择,选取方法详见1.1。需要选择16个数作为掩码值,这16个数具有统一的特点,即满足正交向量特征。以RSM方案的一组掩码值为例,对S盒共用思想的实现进行阐述。该组掩码值为{0x00,0x0f,0x36,0x39,0x53,0x5c,0x65,0x6a,0x95,0x9a,0xa3,0xac,0xc6,0xc9,0xf0,0xff},通过分析这组掩码值的特点,可以根据掩码值高低位的关系,将掩码值分为四组,即在每组中掩码值的高低位相同或者取反。分组如下,表示为M t ,其中t∈[1,4]。
M 1 =[00,0f,f0,ff] (2)
M 2 =[36,39,c6,c9] (3)
M 3 =[53,5c,a3,ac] (4)
M 4 =[65,6a,95,9a] (5)
在每组掩码分组中采用的掩码原理为:
S m (x M tr )=S(x) M t(r+1)mod4 (6)
其中x是没有掩码的8字节的数据,M tr 为第t个掩码分组中的第r个掩码值,S代表普通的S盒,S m 代表掩码后的S盒。
整个128位明文的掩码,掩码原理为:
SB j =SB(M p,q,h,n X) M (p+1),(q+1),(h+1),(n+1), ∀p,q,h,n∈{1,4} (7)
其中,
M pqhn ={ M Pp , M Qq , M Hh , M Nn , M P(p+1)mod4 , M Q(q+1)mod4M H(h+1)mod4 , M N(n+1)mod4 ,...... , M P(p+3)mod4 , M Q(q+3)mod4 ,M H(h+3)mod4 , M N(n+3)mod4 } (8)
在所述的公式(8)中,P,Q,H,Nt,表示的是在四组掩码分组中随机的选择一组,p,q, j,n∈[1,4],表示在每组掩码分组中随机挑选的第几个数。
在每组掩码分组中可以任意的选择一组输入输/输出掩码的S盒作为共用S盒,在第t组中共用(已经计算好的)的S盒输入掩码为mtr,输出掩码为mt(r+1), 如在第一组M1中,可选择共用S盒的一种情况为输入掩码为00,输出掩码为0f,可以表示为S-box_m11_m12,第t组的共用S盒表示为Sbox_mtr_mt(r+1)mod4。
在每组掩码分组中,我们已知一组输入掩码和输出掩码的S盒,即为共用S盒,其它的3组输入输出掩码组合和共用S盒存在着特定的规律,即掩码值高低位要么相同,要么取反,所以我们可以采用共用S盒的思想,来减少掩码S盒的数目,主要原理是:当一组明文(32位)与其中一组掩码值异或时,根据输入掩码值高低位与每组共用S盒输入掩码高低位的关系来进行地址的选择,当值相同时,则地址不变,值不同时,则地址取反;根据输出掩码高低位与每组共用S盒输出掩码高低位的关系来进行输出选择,当值相同时,则输出不变,值不同时,则输出取反,这样每组就可以共用一个S盒来完成字节替代操作。我们也计算了相应输入输出掩码值下的S盒,并对以上提出的S盒共用方案的功能进行了验证,结果表明S盒共用方案功能是正确的。
实施例4
一种实施例1或2或3所述的基于S盒共用的低熵掩码方案,所述的线性部分的掩码实现,对于AES线性部分包含密钥加操作(XOR)、行移位操作(SR)以及列混合操作(MC),主要包含线性操作的掩码实现和掩码补偿部分的实现。
对于线性操作的掩码实现:所述的XOR表示的是轮密钥与轮加密结果之间的异或操作,异或的结果恰好是下一轮字节替代的输入值,是与密钥强相关的中间项,因此需要对XOR操作添加掩码。XOR属于线性操作,可以直接通过异或操作进行掩码,但是在掩码的过程中一定要注意与掩码值异或的顺序,例如在第一轮加密时,一定要将掩码值与明文/密钥异或之后再与密钥/明文进行异或,只有这样的操作顺序才不会泄露明文和密钥的异或值。所述的SR操作发生在字节替代之后,根据公式S m (x M tr )=S(x) M t(r+1)mod4的设计,字节替代的输出是带有掩码的,因此SR操作与密钥的关系是弱相关的,作为线性操作可以直接进行操作,不需要再添加新的掩码值,以节约防护成本。所述的MC操作发生在SR操作之后,同SR操作一样,MC变换的值与密钥的关系也是弱相关的,作为线性操作可以直接进行操作,不需要再添加新的掩码值,以节约防护成本。
对于掩码补偿:本文的设计方案掩码补偿主要发生在下一轮加密开始前,即每轮加密结束时,利用简单的异或操作去除本轮添加的掩码值,同时添加新的掩码值。对于最后一轮则只需要去掉当前的掩码值,不需要添加新的掩码值,就可以输出正确的密文,在进行字节替代之后,操作数是添加了掩码的,根据本设计方案添加掩码值的特点,假如把掩码值排成4*4的矩阵,每轮掩码值的变换关系,即掩码值每行都向左移动一列,我们称之为行变换(记作LT)。
除最后一轮外,对每轮的输入掩码值依次进行行变换、行移位、列混合和添加新的掩码,对于最后一轮则只需要对输入掩码进行行变换和行移位操作。在每轮结束进行掩码补偿时,一定要先加新掩码在去之前的掩码,这样才能够保证算法的安全性。
实施例5
一种实施例1或2或3或4所述的基于S盒共用的低熵掩码方案,所述的AES字节替代模块的实现,所述的AES算法中字节替代是唯一的非线性操作,为了满足掩码的基本原则,设计的字节替代操作掩码要满足等式S m (x M tr )=S(x) M t(r+1)mod4,所以在字节替换操作过程中必须替换掉原来的S盒,根据表的重新计算技术对新的S盒进行计算,得到的即为本文的共用S盒。根据前文的4个不同的掩码值分组,分别计算每组内的共用S盒,每组内的共用S盒共有四种可能,可以随机选择其中一个作为共用S盒,因此S盒共用方案需要的共用S盒数目为4个。
盒共用方案的字节替代模块适用于32位的输入,这32位的数据被分为四组,每组8位。当数据输入时,根据不同的掩码值,选择不同的共用S盒进行字节替代操作,S盒共用的原理已经在上文中进行了详细的介绍。在进行字节替代时,这四组8位数据是并行执行的。
实施例6
实施例1或2或3或4或5所述的基于S盒共用的低熵掩码方案,所述的AES的整体实现,采用共用S盒思想实现整个AES的掩码方案。在算法开始时,首先将明文与随机选择的4组掩码值进行异或,然后与密钥进行异或操作,把这个结果作为中间轮的输入。对于中间轮依次进行行移位、字节替代、列混合、密钥加和掩码补偿操作,而对于最后一轮依次进行行移位、字节替代、密钥加,最后进行掩码补偿操作获得正确的密文,进行输出。对分组的四组数据以随机的顺序进行字节替换、列混合、密钥加和掩码补偿操作。在所有的128位都进行完以上操作之后,需要进行重新排序,把重新排序的结果作为下一轮的输入,最后输出正确的密文。
在查表的时候采用串行的查找方式,每128位数据的查找次数为4。通过对比S盒共用方案与RSM方案的字节替代模块可以看出:RSM方案需要16个掩码S盒,而S盒共用方案只需要4个,是RSM方案1/4,但是在进行字节替代时组与组之间采用的是串行查找的方式,这样使得字节替代操作的吞吐量变为原来的1/4.
在存储空间上采用与固定值掩码相同的策略,即预先计算好掩码值和与掩码值对应的共用S盒,存入ROM中,执行算法时,根据制定好的随机规则,选择相应的随机掩码和共用S盒进行运算,这样能够减少芯片的RAM占用量。
盒共用方案需要存储在ROM中的变量如下所示:
1)掩码值Mt
2)每组掩码值的偏移量p、q、h、n
3)根据每组掩码分组中输入输出掩码的值重计算得到的共用S盒,共4个;
4)根据每轮的输出掩码确定的掩码补偿的值。

Claims (5)

1.一种基于S盒共用的低熵掩码方案,其特征是:通过降低掩码方案中掩码S盒的数目,从而降低掩码方案占用的面积,依次分为S盒共用思想和AES算法实现两部分,所述的AES算法实现分为线性部分的掩码实现、AES字节替代模块的实现及AES的整体实现三个步骤完成。
2.根据权利要求1所述的基于S盒共用的低熵掩码方案,其特征是:所述的S盒共用是:对于S盒共用方案的掩码值可以有不同的选择,需要选择16个数作为掩码值,这16个数具有统一的特点,即满足正交向量特征,通过分析这组掩码值的特点,可以根据掩码值高低位的关系,将掩码值分为四组,即在每组中掩码值的高低位相同或者取反,分组如下,表示为M t ,其中t∈[1,4]。
M 1 ,M 2 ,M 3 ,M 4
在每组掩码分组中采用的掩码原理为:
S m (x M tr )=S(x) M t(r+1)mod4
其中x是没有掩码的8字节的数据,M tr 为第t个掩码分组中的第r个掩码值,S代表普通的S盒,S m 代表掩码后的S盒。
整个128位明文的掩码掩码原理为:
SB j =SB(M p,q,h,n X) M (p+1),(q+1),(h+1),(n+1), ∀p,q,h,n∈{1,4}
其中,
M pqhn ={ M Pp , M Qq , M Hh , M Nn , M P(p+1)mod4 , M Q(q+1)mod4M H(h+1)mod4 , M N(n+1)mod4 ,...... , M P(p+3)mod4 , M Q(q+3)mod4 ,M H(h+3)mod4 , M N(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操作发生在字节替代之后,根据公式S m (x M tr )=S(x) M t(r+1)mod4的设计,字节替代的输出是带有掩码的,因此SR操作与密钥的关系是弱相关的,作为线性操作可以直接进行操作,不需要再添加新的掩码值,所述的MC操作发生在SR操作之后,同SR操作一样,MC变换的值与密钥的关系也是弱相关的,作为线性操作可以直接进行操作,不需要再添加新的掩码值;
对于掩码补偿:主要发生在下一轮加密开始前,即每轮加密结束时,利用简单的异或操作去除本轮添加的掩码值,同时添加新的掩码值。对于最后一轮则只需要去掉当前的掩码值,不需要添加新的掩码值,就可以输出正确的密文,在进行字节替代之后,操作数是添加了掩码的,根据添加掩码值的特点,假如把掩码值排成4*4的矩阵,每轮掩码值的变换关系,即掩码值每行都向左移动一列,我们称之为行变换(记作LT)。除最后一轮外,对每轮的输入掩码值依次进行行变换、行移位、列混合和添加新的掩码,对于最后一轮则只需要对输入掩码进行行变换和行移位操作。在每轮结束进行掩码补偿时,一定要先加新掩码在去之前的掩码,这样才能够保证算法的安全性。
4.根据权利要求1或2或3所述的基于S盒共用的低熵掩码方案,其特征是:所述的AES字节替代模块的实现:所述的AES算法中字节替代是唯一的非线性操作,为了满足掩码的基本原则,设计的字节替代操作掩码要满足等式S m (x M tr )=S(x) M t(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)根据每轮的输出掩码确定的掩码补偿的值。
CN201711263008.7A 2017-12-04 2017-12-04 基于s盒共用的低熵掩码方案 Pending CN108111298A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711263008.7A CN108111298A (zh) 2017-12-04 2017-12-04 基于s盒共用的低熵掩码方案

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711263008.7A CN108111298A (zh) 2017-12-04 2017-12-04 基于s盒共用的低熵掩码方案

Publications (1)

Publication Number Publication Date
CN108111298A true CN108111298A (zh) 2018-06-01

Family

ID=62209040

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711263008.7A Pending CN108111298A (zh) 2017-12-04 2017-12-04 基于s盒共用的低熵掩码方案

Country Status (1)

Country Link
CN (1) CN108111298A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109495242A (zh) * 2018-11-20 2019-03-19 上海安路信息科技有限公司 一种数据加密方法及数据加密设备
CN111859436A (zh) * 2020-07-29 2020-10-30 贵州力创科技发展有限公司 一种车辆保险反欺诈平台的数据安全加密方法
CN114640439A (zh) * 2022-04-11 2022-06-17 中国科学院微电子研究所 一种针对高级加密标准aes算法的掩码防护方法及装置
US11418276B2 (en) * 2020-07-31 2022-08-16 Ufi Space Co., Ltd. Byte stuffing circuit and byte stuffing method
CN115941159A (zh) * 2022-12-05 2023-04-07 西安电子科技大学 基于复合域循环s盒掩码抗侧信道攻击的aes电路

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107070630A (zh) * 2017-01-17 2017-08-18 中国科学院信息工程研究所 一种aes算法的快速安全硬件结构

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107070630A (zh) * 2017-01-17 2017-08-18 中国科学院信息工程研究所 一种aes算法的快速安全硬件结构

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
ALI AKBAR PAMMU,ECT.: ""High Secured Low Power Multiplexer-LUT Based AES S-Box Implementation"", 《IEEE》 *
MAXIME NASSAR,ECT.: ""RSM: a Small and Fast Countermeasure for AES,Secure against 1st and 2nd-order Zero-Offset SCAs"", 《IEEE》 *
MING TANG,ECT.: ""A Generic Table Recomputation-Based Higher-Order Masking"", 《IEEE》 *
NORITAKA YAMASHITA,ECT.: ""A Smaller and Faster Variant of RSM"", 《IEEE》 *
徐佩: ""智能卡AES加密模块抗侧信道攻击掩码技术研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109495242A (zh) * 2018-11-20 2019-03-19 上海安路信息科技有限公司 一种数据加密方法及数据加密设备
CN111859436A (zh) * 2020-07-29 2020-10-30 贵州力创科技发展有限公司 一种车辆保险反欺诈平台的数据安全加密方法
CN111859436B (zh) * 2020-07-29 2023-10-17 贵州力创科技发展有限公司 一种车辆保险反欺诈平台的数据安全加密方法
US11418276B2 (en) * 2020-07-31 2022-08-16 Ufi Space Co., Ltd. Byte stuffing circuit and byte stuffing method
CN114640439A (zh) * 2022-04-11 2022-06-17 中国科学院微电子研究所 一种针对高级加密标准aes算法的掩码防护方法及装置
CN114640439B (zh) * 2022-04-11 2025-02-11 中国科学院微电子研究所 一种针对高级加密标准aes算法的掩码防护方法及装置
CN115941159A (zh) * 2022-12-05 2023-04-07 西安电子科技大学 基于复合域循环s盒掩码抗侧信道攻击的aes电路

Similar Documents

Publication Publication Date Title
CN108111298A (zh) 基于s盒共用的低熵掩码方案
Paar et al. The advanced encryption standard (AES)
Grassi et al. Subspace trail cryptanalysis and its applications to AES
US20140169553A1 (en) Masking with shared random bits
US20060256963A1 (en) Key masking for cryptographic processes
Jean et al. Joltik v1. 3
CN110071794B (zh) 一种基于aes算法的信息加密方法、系统及相关组件
CN111431697A (zh) 一种新型轻量级分组密码corl的实现方法
Zhao et al. Truncated differential cryptanalysis of PRINCE
Paar et al. The advanced encryption standard (AES)
WO2023192772A2 (en) A reconfigurable architecture for improvement and optimization of advanced encryption standard
CN109150495B (zh) 一种轮变换复用电路及其aes解密电路
CN111262685A (zh) 一种新型密钥生成的Shield分组密码实现方法、装置及可读存储介质
CN109936437A (zh) 一种基于d+1阶掩码的抗功耗攻击方法
Yalla et al. Compact FPGA implementation of Camellia
Rais et al. A novel FPGA implementation of AES-128 using reduced residue of prime numbers based S-Box
CN108566271B (zh) 复用轮变换电路、aes加密电路及其加密方法
Bucholc et al. PP-2 block cipher
Ye et al. Hern & heron: Lightweight aead and hash constructions based on thin sponge (v1)
TW202242692A (zh) 單回合高階加密標準電路模組
Li et al. Design of Lightweight AES Algorithm Based on Masked Lookup Table
CN108055126A (zh) 基于随机加法链的抗功耗攻击的方法
CN101848079A (zh) 一种面向字、带记忆的序列扰动方法及加密方法
Rais et al. FPGA implementation of Rijndael algorithm using reduced residue of prime numbers
JP7527541B2 (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180601