专利名称:一种抗des功耗攻击的增强型mask掩码方法
技术领域:
本发明涉及一种增强型MASK掩码方法,尤其是指一种抗DES (数据加密标准)功耗攻击的增强型MASK掩码方法,属于信息安全芯片设计技术领域,能够广泛应用于高度安全性的加密运算设备。
背景技术:
随着网络的不断普及,社会信息化程度的日益提高,信息安全的重要性已经逐步凸现。加密作为信息安全中一个最为有力的武器,正在发挥着重要的作用。DES加密算法在70年代成为加密标准到今天,经历了长期的考验。任何安全产品或者密码系统都必须面对一个如何防御攻击和窥测的问题,近些年来,出现了一种新的强有力的攻击方法,人们称之为旁路攻击(SCA)。旁路攻击是指利用密码芯片在运行过程中泄露的旁路信息,诸如功耗、时间、电磁波、以及差错信息等,对密码系统进行攻击和窥测。旁路攻击已成为信息安全芯片产品的巨大威胁,其危害远远大于传统的数学分析手段。功耗攻击是旁路攻击的其中一种,是指利用密码芯片执行加密运算时消耗的功耗来对密钥进行攻击。芯片在处理不同运算的时候所消耗的功耗是不同的,即使处理同一条指令操作数不同功耗也是不一样的,因此对功耗进行分析,即可推算出密钥来。功耗攻击分为简单功耗分析攻击(SPA)和差分功耗分析攻击(DPA),其中DPA攻击更有效,应用领域更广泛。DPA攻击的原理是利用被攻击设备在加密过程中所实际消耗的功耗与加密算法中间值的相关性,从而计算得出密钥的一种攻击方法。根据输入的明文和猜测的密钥,加密算法的中间值总是可以计算的。MASK掩码技术将输入的明文进行掩码,这样加密算法的中间值是不可知的,从而达到抗功耗攻击的目的。MASK掩码方法是目前信息安全芯片常用的一种抗功耗攻击的措施,图I所示即为DES循环迭代MASK掩码技术算法流程图。其中,M为输入的明文,X为随机产生的随机数。第一步,明文M与随机数X异或,异或的结果作为DES运算的输入;此步骤称为掩码操作。第二步,将第一步的结果执行DES 16轮加密或解密操作,SBOX使用经过变换的SM-Box,其它运算和标准DES运算相同;SM-Box的替换见公式(1),其中P—1表示置换P的逆;此步骤称为循环迭代操作。第三步,将第二步计算的结果再次与随机数X异或,异或的结果作为最终的结果输出;此步骤称为去掩码操作;
SM — Box(A) = S-Box(A X2)十 P~l(@iTl32_63)(I)。MASK掩码技术从算法层面上使加密芯片的功耗与中间值无关,然而MASK掩码算法设计人员没有考虑分组密码多次循环迭代的特性,被掩码的中间值仍然泄漏了密码信息,无法有效的达到抗功耗攻击的作用。图I所示的掩码算法一般采用图2所示的硬件结构实现,图2的硬件结构示意图仅描述了 DES实现的主要部分,即每组数据右边32位的处理示意图。其中,RoundReg是一个32位的寄存器;Function为一组合电路,实现扩展转换、SBOX替换和置换功能,SBOX替、换用到了轮密码RoundKey ;RLi为DES运算过程中每组数据的左边32位,RLi与Function的输出进行异或操作得到结果。在下一个时钟上升沿,该计算结果又存储到了 RoundReg中。然而这种硬件实现方式,每两轮运算之间泄漏了大量的密钥信息。具体地,记未加MASK的第一轮的中间结果为RoundRegI,第二轮的中间结果为RoundReg2 ,加入MASK掩码的第一轮的中间结果为MRoundRegl,第二轮的中间结果为MRoundReg2。由于每轮使用了相同的随机数,记64位随机数为X,XR为随机数的低32位,“壬”表示异或操作;所以有下面的关系成立
MRotmd Regl = Round Regl XR(2);
MRound Re g 2 = Round Reg 2 MS(3);
MRound Re g\ MRound Re g2 = {Round Re g\ XR) (Round Re g 2 XK) (4). MRou^d'B.e g\ AfRoimd Re g2 = Round Re gl Round Re g2 (5)。图2所示的DES循环迭代MASK掩码技术的硬件实现结构,第一轮的运算结果MRoundRegl保存在寄存器中,下一时钟上升沿进行的第二轮运算结果MRoundReg2也保存在同一寄存器中,因此泄漏了每两轮之间的汉明距离。根据公式(5),也就是泄漏了汉明距离。攻击者可以很容易地利用两轮之间的汉明距离得出正确的密钥信息。所以DES的MASK掩码技术采用多次循环迭代的实现方式并不能有效的起到抗功耗攻击的目的。
发明内容
本发明的目的在于提供一种抗DES功耗攻击的增强型MASK掩码方法,能够有效解决现有技术中DES循环迭代MASK掩码方法在两轮运算之间汉明距离泄漏的问题,保证两轮运算之间不再泄漏汉明距离这样的敏感信息,从而能够有效防止功耗分析攻击。为了达到上述目的,本发明提供一种抗DES功耗攻击的增强型MASK掩码方法,该方法包含以下步骤
步骤I、开始两轮DES运算采用流水线运算方式实现,计算电路采用两块独立互不相关的第一计算电路和第二计算电路实现;每轮的DES运算采用MASK掩码方法进行计算;
步骤2、第三轮至第十四轮的DES运算过程采用随机定位逻辑运算方式实现;每轮的DES运算采用MASK掩码方法进行计算;
步骤3、最后两轮DES运算采用流水线运算方式实现,计算电路采用另外两块独立互不相关的第三计算电路和第四计算电路实现;每轮的DES运算采用MASK掩码方法进行计算。
所述的步骤I中,具体包含
步骤I. I、第一轮的输入在mplain和roundi之间由第一计算电路的随机定位逻辑alloc_enl选择,其中,mplain表示输入的明文与随机数掩码后的结果,roundi表示DES计 算过程中每轮的中间结果;
由于第一轮的DES运算采用流水线运算方式实现,因此alloc_enl非使能,值为0,即第一轮的输入数据为mplain,经过第一计算电路的运算,将第一轮的计算结果保存在第一寄存器中并输出;步骤I. 2、第二轮的输入在第一轮的输出和ixnmdi之间由第二计算电路的随机定位逻辑alloc_en2选择,由于第二轮的DES运算采用流水线运算方式实现,因此alloc_en2非使能,值为O,即第二轮的输入数据为第一轮的输出数据,经过第二计算电路的运算,将第二轮的计算结果保存在第二寄存器中。所述的步骤2中,每一轮的DES运算分别在第一计算电路、第二计算电路、第三计算电路和第四计算电路中随机选择一块进行,具体包含
步骤2. I、轮数译码电路根据DES运算的当前运算轮数round决定整个随机定位电路是否开始运行;当DES运算到第三轮至第十四轮运算时,轮数译码电路使能整个随机定位电路,同时产生请求rdn_req,请求产生随机数random ;
其中,所述random是随机数,取值为从0到3 ;random为0表示选择第一计算电路,random为I表示选择第二计算电路,random为2表示选择第三计算电路,random为3表示选择第四计算电路;
步骤2. 2、根据所产生的随机数random和当前运算轮数round,确定当前这轮DES运算将采用哪一块计算电路,并将该块计算电路的alloc_en使能,即置为I ;
步骤2. 3、被确定选中进行当前这轮DES运算的计算电路,将选择roundi作为其输入数据,并经过计算将结果保存在相应的寄存器中;若当前正在进行第三轮的DES运算,则应直接选择第二轮的输出作为其输入数据;
步骤2. 4、请求产生下一轮DES运算的随机数random,并由比较电路判断相邻两轮DES运算所产生的随机数是否相同,如果相同,则必须再次请求产生随机数,直至所产生的随机数与前一轮所产生的随机数不同为止;
步骤2. 5、重复进行步骤2. 2 2. 4,直至完成第三轮至第十四轮的DES运算。所述的步骤2. 4中,roundi是由随机定位策略逻辑电路给出的DES计算结果的中间值,由随机定位策略逻辑电路根据随机数寄存器中所保存的前一轮产生的随机数random的值而由相对应的计算电路的寄存器中得到;所述前一轮产生的随机数random的值表示前一轮DES运算是由哪块相应的计算电路进行的,因此前一轮的DES运算结果也就相应存储在该计算电路的寄存器中。所述的步骤3中,具体包含
步骤3. I、第十五轮的输入在第十四轮输出和roundi之间由第三计算电路的随机定位逻辑alloc_en3选择,由于第十五轮的DES运算采用流水线运算方式实现,因此alloc_en3非使能,值为0,即第十五轮的输入数据为第十四轮的输出数据,经过第三计算电路的运算,最终将第十五轮的计算结果保存在第三寄存器中;
步骤3. 2、第十六轮的输入在第十五轮输出和roundi之间由第四计算电路的随机定位逻辑alloc_en4选择,由于第十六轮的DES运算采用流水线运算方式实现,因此alloc_en4非使能,值为0,即第十六轮的输入数据为第十五轮的输出数据,经过第四计算电路的运算,最终将第十六轮的计算结果保存在第四寄存器中。本发明所提供的抗DES功耗攻击的增强型MASK掩码方法,与现有技术相比,具有以下有益效果。首先,每轮DES运算均采用了 MASK掩码技术,保证了每轮中的敏感信息不会泄漏。其次,在MASK掩码技术基础上采用流水线实现方式和随机定位实现方式的结合,保证了每两轮之间的汉明距离等敏感信息不会泄漏。再者,由于在MASK掩码技术的基础上、采用了随机定位实现方式,能够大大减小芯片设计面积,降低成本。因此,本发明在减小芯片设计面积的基础上,可以彻底地解决现有技术中MASK掩码方案相邻两轮之间汉明距离泄漏的问题;不仅可以保证每轮之间的敏感信息不泄漏,同时保证了相邻两轮之间的汉明距离等敏感信息不会泄漏,有效起到抗功耗攻击的目的。
图I是现有技术中DES循环迭代MASK掩码技术的算法流程 图2是现有技术中DES循环迭代MASK掩码技术的硬件结构框 图3是本发明的抗DES功耗攻击的增强型MASK掩码方法的硬件结构框 图4是本发明的抗DES功耗攻击的增强型MASK掩码方法中的开始两轮流水线运算的硬件结构框 图5是本发明的抗DES功耗攻击的增强型MASK掩码方法中的最后两轮流水线运算的硬件结构框 图6是本发明的抗DES功耗攻击的增强型MASK掩码方法中的中间十二轮随机定位逻辑运算的硬件结构框图。
具体实施例方式以下根据图3 图6,具体说明本发明的较佳实施例。如图3所示,本发明所提供的抗DES功耗攻击的增强型MASK掩码方法,是在现有的DES循环迭代MASK掩码方案的基础上的改进,同样共包含16轮运算过程,具体步骤如下所示
步骤I、开始两轮DES运算采用流水线运算方式实现,计算电路采用两块独立互不相关的第一计算电路和第二计算电路实现;
步骤2、中间十二轮,即第三轮至第十四轮的DES运算过程采用随机定位逻辑运算方式实现;
步骤3、最后两轮DES运算采用流水线运算方式实现,计算电路采用另外两块独立互不相关的第三计算电路和第四计算电路实现。如图3和图4所示,步骤I中所述的开始两轮的DES运算,每轮的实现电路仍然采用MASK掩码方法,只是本发明中将该前两轮的循环迭代实现方式使用流水线方式替代。具体地,步骤I包含
步骤I. I、第一轮的输入在mplain和roundi之间由alloc_enl选择,其中,mplain表示输入的明文与随机数掩码后的结果,roundi表示DES计算过程中每轮的中间结果,alloc_enl表示第一计算电路的随机定位逻辑是否选择了该轮的电路;
由于第一轮的DES运算采用流水线运算方式实现,因此alloc_enl非使能,值为0,即第一轮的输入数据肯定是mplain,经过第一计算电路combi的运算,最终将第一轮的计算结果保存在第一寄存器rd_regl中并输出。步骤I. 2、第二轮的输入在第一轮的输出和roundi之间由第二计算电路的随机定位逻辑alloc_en2选择,由于第二轮的DES运算采用流水线运算方式实现,因此alloc_en2非使能,值为0,即第二轮的输入数据肯定是第一轮的输出数据,经过第二计算电路comb2、的运算,最终将第二轮的计算结果保存在第二寄存器rd_reg2中。因为计算第一轮DES运算的第一计算电路combi、第一寄存器rd_regl和计算第二轮DES运算的第二计算电路comb2、第二寄存器rd_reg2完全不同,在后端芯片布局时,甚至可以将这两块电路分布设置在极其邻近的地方,并且这两轮计算之间不可能泄漏汉明距离。由于每轮的电路都采用MASK掩码技术实现,所以完全可以保证每轮内、每轮间的运算都不泄漏密钥的敏感信息。如图3和图6所示,用于进行DES运算的电路一共有四块,分别为用于开始两轮DES运算的第一计算电路和第二计算电路,以及用于最后两轮DES运算的第三计算电路和第四计算电路。而中间总共十二轮的运算则分别在这四块计算电路中随机选择一块进行每轮运算,这样不仅可以减小芯片的面积,而且引入随机定位的策略,可以让功耗攻击的难度更大。具体地,步骤2包含 步骤2. I、轮数译码电路round_decode根据DES运算的当前运算轮数round决定整个随机定位电路是否开始运行;当DES运算到中间十二轮时,即在第三轮至第十四轮运算时,轮数译码电路round_decode使能整个随机定位电路,同时产生请求rdn_req,请求产生随机数 random ;
其中,所述random是随机数,在本发明中取值为从0到3 ;random为0表示选择第一计算电路,random为I表示选择第二计算电路,random为2表示选择第三计算电路,random为3表示选择第四计算电路。所述ixnmd是DES运算的当前运算轮数,表示现在正在进行DES第几轮的运算。步骤2. 2、根据所产生的随机数random和当前运算轮数round,确定当前这轮运算将采用哪一块计算电路,并将该块计算电路的alloc_en使能,即置为I。例如,假设在第五轮的DES运算过程中,输入的随机数random为0,即该第五轮DES运算确定采用第一计算电路,此时第一计算电路的随机定位逻辑alloc_enl置为I。步骤2. 3、被确定选中进行当前这轮DES运算的计算电路,将选择roundi作为其输入数据,并经过计算将结果保存在相应的寄存器中;若当前正在进行第三轮的DES运算,则应直接选择第二轮的输出作为其输入数据。所述roundi是由随机定位策略逻辑电路给出的DES计算结果的中间值,由随机定位策略逻辑电路roundi_logic根据随机数寄存器random_reg中所保存的前一轮产生的随机数random的值而由相对应的计算电路的寄存器中得到。因为前一轮产生的随机数random的值直接代表了前一轮DES运算是由哪块计算电路进行的,因此前一轮的DES运算结果也就相应存储在该计算电路的寄存器中。继续以前述例子为例,本步骤中,第一计算电路将不再选择mplain作为第五轮的输入数据,而是选择roundi作为第五轮的输入数据。又假设此时随机数寄存器random_reg中所保存的随机数random的值为1,则说明第四轮的DES运算是由第二计算电路所进行的,因此,第四轮的运算结果保存在第二寄存器rd_reg2中。也就是说,第五轮的DES运算输入数据roundi可由第二寄存器rd_reg2中得到,其也就是第四轮DES运算的结果。步骤2. 4、请求产生下一轮DES运算的随机数random,并由比较电路compare判断相邻两轮DES运算所产生的随机数是否相同,如果相同,则必须再次请求产生随机数,直至所产生的随机数random与前一轮所产生的随机数random_reg不同为止。如此是为了保证这中间十二轮的DES运算过程中不会出现相邻两轮选择同一块计算电路的情况发生,又因为每轮的运算都采用MASK掩码技术实现,继而做到完全保证每轮内、每轮间都不泄漏密钥的敏感信息。步骤2. 5、重复进行步骤2. 2 2. 4,直至完成第三轮至第十四轮的DES运算。如图3和图5所示,步骤3中所述的最后两轮的DES运算,每轮的实现电路仍然采用MASK掩码方法,只是本发明中将该最后两轮的循环迭代实现方式使用流水线方式替代。具体地,步骤3包含
步骤3. I、第十五轮的输入在第十四轮输出和roundi之间由第三计算电路的随机定位逻辑alloc_en3选择,由于第十五轮的DES运算采用流水线运算方式实现,因此alloc_en3非使能,值为0,即第十五轮的输入数据肯定是第十四轮的输出数据,经过第三计算电路comb3的运算,最终将第十五轮的计算结果保存在第三寄存器rd_reg3中。
步骤3. 2、第十六轮的输入在第十五轮输出和ixnmdi之间由第四计算电路的随机定位逻辑alloc_en4选择,由于第十六轮的DES运算采用流水线运算方式实现,因此alloc_en4非使能,值为0,即第十六轮的输入数据肯定是第十五轮的输出数据,经过第四计算电路comb4的运算,最终将第十六轮的计算结果保存在第四寄存器rd_reg4中。因为计算第十五轮DES运算的第三计算电路comb3、第三寄存器rd_reg3和计算第十六轮DES运算的第四计算电路comb4、第四寄存器rd_reg4完全不同,在后端芯片布局时,甚至可以将这两块电路分布设置在极其邻近的地方,并且这两轮计算之间不可能泄漏汉明距离。由于每轮的电路都采用MASK掩码技术实现,所以完全可以保证每轮内、每轮间的运算都不泄漏密钥的敏感信息。综上所述,本发明所提供的抗DES功耗攻击的增强型MASK掩码方法,其是在现有的DES循环迭代MASK掩码方案的基础上,将DES运算的开始两轮和最后两轮采用流水线的方式实现,这四轮的计算电路分别采用独立互不相关的4块计算电路实现,从而保证相邻两轮之间的汉明距离等敏感信息不再泄漏。而在DES运算的中间十二轮运算中,如果也采用流水线方式实现,则将大大增加芯片面积。一旦全部16轮运算都采用流水线的方式实现,芯片面积将增加16倍至多,从而大大增加设计成本。因此本发明将中间十二轮运算采用随机定位逻辑运算的方式实现,不仅可以有效防止MASK掩码后每两轮之间汉明距离的泄漏,还能够减小芯片面积,降低芯片设计成本。尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
权利要求
1.一种抗DES功耗攻击的增强型MASK掩码方法,其特征在于,该方法包含以下步骤 步骤I、开始两轮DES运算采用流水线运算方式实现,计算电路采用两块独立互不相关的第一计算电路和第二计算电路实现;每轮的DES运算采用MASK掩码方法进行计算; 步骤2、第三轮至第十四轮的DES运算过程采用随机定位逻辑运算方式实现;每轮的DES运算采用MASK掩码方法进行计算; 步骤3、最后两轮DES运算采用流水线运算方式实现,计算电路采用另外两块独立互不相关的第三计算电路和第四计算电路实现;每轮的DES运算采用MASK掩码方法进行计算。
2.如权利要求I所述的抗DES功耗攻击的增强型MASK掩码方法,其特征在于,所述的步骤I中,具体包含 步骤I. I、第一轮的输入在mplain和roundi之间由第一计算电路的随机定位逻辑alloc_enl选择,其中,mplain表示输入的明文与随机数掩码后的结果,roundi表示DES计算过程中每轮的中间结果; 由于第一轮的DES运算采用流水线运算方式实现,因此alloc_enl非使能,值为0,即第一轮的输入数据为mplain,经过第一计算电路的运算,将第一轮的计算结果保存在第一寄存器中并输出; 步骤I. 2、第二轮的输入在第一轮的输出和ixnmdi之间由第二计算电路的随机定位逻辑alloc_en2选择,由于第二轮的DES运算采用流水线运算方式实现,因此alloc_en2非使能,值为0,即第二轮的输入数据为第一轮的输出数据,经过第二计算电路的运算,将第二轮的计算结果保存在第二寄存器中。
3.如权利要求2所述的抗DES功耗攻击的增强型MASK掩码方法,其特征在于,所述的步骤2中,每一轮的DES运算分别在第一计算电路、第二计算电路、第三计算电路和第四计算电路中随机选择一块进行,具体包含 步骤2. I、轮数译码电路根据DES运算的当前运算轮数round决定整个随机定位电路是否开始运行;iDES运算到第三轮至第十四轮运算时,轮数译码电路使能整个随机定位电路,同时产生请求rdn_req,请求产生随机数random ; 其中,所述random是随机数,取值为从0到3 ;random为0表示选择第一计算电路,random为I表示选择第二计算电路,random为2表示选择第三计算电路,random为3表示选择第四计算电路; 步骤2. 2、根据所产生的随机数random和当前运算轮数round,确定当前这轮DES运算将采用哪一块计算电路,并将该块计算电路的alloc_en使能,即置为I ; 步骤2. 3、被确定选中进行当前这轮DES运算的计算电路,将选择roundi作为其输入数据,并经过计算将结果保存在相应的寄存器中;若当前正在进行第三轮的DES运算,则应直接选择第二轮的输出作为其输入数据; 步骤2. 4、请求产生下一轮DES运算的随机数random,并由比较电路判断相邻两轮DES运算所产生的随机数是否相同,如果相同,则必须再次请求产生随机数,直至所产生的随机数与前一轮所产生的随机数不同为止; 步骤2. 5、重复进行步骤2. 2 2. 4,直至完成第三轮至第十四轮的DES运算。
4.如权利要求3所述的抗DES功耗攻击的增强型MASK掩码方法,其特征在于,所述的步骤2. 4中,roundi是由随机定位策略逻辑电路给出的DES计算结果的中间值,由随机定位策略逻辑电路根据随机数寄存器中所保存的前一轮产生的随机数random的值而由相对应的计算电路的寄存器中得到; 所述前一轮产生的随机数random的值表示前一轮DES运算是由哪块相应的计算电路进行的,因此前一轮的DES运算结果也就相应存储在该计算电路的寄存器中。
5.如权利要求4所述的抗DES功耗攻击的增强型MASK掩码方法,其特征在于,所述的步骤3中,具体包含 步骤3. I、第十五轮的输入在第十四轮输出和roundi之间由第三计算电路的随机定位逻辑alloc_en3选择,由于第十五轮的DES运算采用流水线运算方式实现,因此alloc_en3非使能,值为0,即第十五轮的输入数据为第十四轮的输出数据,经过第三计算电路的运算,最终将第十五轮的计算结果保存在第三寄存器中; 步骤3. 2、第十六轮的输入在第十五轮输出和roundi之间由第四计算电路的随机定位逻辑alloc_en4选择,由于第十六轮的DES运算采用流水线运算方式实现,因此alloc_en4非使能,值为0,即第十六轮的输入数据为第十五轮的输出数据,经过第四计算电路的运算,最终将第十六轮的计算结果保存在第四寄存器中。
全文摘要
本发明涉及一种抗DES功耗攻击的增强型MASK掩码方法,包含步骤1、开始两轮DES运算采用流水线运算方式实现,计算电路采用独立互不相关的第一计算电路和第二计算电路实现;步骤2、第三轮至第十四轮的DES运算过程采用随机定位逻辑运算方式实现;步骤3、最后两轮DES运算采用流水线运算方式实现,计算电路采用独立互不相关的第三计算电路和第四计算电路实现;步骤1~3中每轮的DES运算采用MASK掩码方法进行计算。本发明在减小芯片设计面积的基础上,可以彻底地解决现有技术中MASK掩码方案相邻两轮之间汉明距离泄漏的问题;不仅可以保证每轮之间的敏感信息不泄漏,同时保证了相邻两轮之间的汉明距离等敏感信息不会泄漏,有效起到抗功耗攻击的目的。
文档编号H04L9/06GK102752103SQ20121026119
公开日2012年10月24日 申请日期2012年7月26日 优先权日2012年7月26日
发明者刘红明, 周玉洁, 朱念好 申请人:上海爱信诺航芯电子科技有限公司