一种增强抗攻击能力的密码Mask方法

文档序号:8301392阅读:584来源:国知局
一种增强抗攻击能力的密码Mask方法
【技术领域】
[0001]本发明涉及一种增强抗攻击能力的密码Mask方法,适用于Feistel结构的密码算法。
【背景技术】
[0002]随着信息科技的快速发展,信息的价值变得越来越高。相应的,针对这部分信息资产的保护也显得越来越重要。目前普遍采取的措施是软件的方法,但由于网络病毒的泛滥、黑客事件的不断发生以及操作系统的安全漏洞频繁暴露,人们渐渐地已经对基于软件的安全措施失去了 ?目心。
[0003]硬件在安全系统中已经逐步起到了至关重要的作用。其基本的考虑是硬件尤其是集成电路具有天生的高安全级别。由于集成电路内部集成了大量的电路,其具有封闭性好、破解难度和破解代价高的特点,自然也更加适合于更高安全要求的系统。
[0004]随着集成电路分析技术的发展,安全芯片本身的安全性受到越来越多的威胁。这些威胁大致可以分为两种,其中一种需要破坏芯片的正常工作甚至需要解剖芯片,利用高精度的仪器设备对芯片内部的电路进行分析;另一种威胁是在不破坏芯片正常工作的情况下,通过探测一些旁路信息,如芯片的功耗、电磁辐射、运行时间以及错误处理等信息,找到这些信息与内部的密钥等机密数据的关系,最终找到密钥,破解整个安全系统。显然,后者比前者的威胁要更大。原因在于:一方面后者所需要的设备比前者要简单,攻击成本要低;另一方面,后者可以在不破坏芯片的正常工作的情况下达到攻击目的,所以从攻击效能上来看,后者也比前者高。
[0005]标准Feistel结构的密码算法中,分组密码多次循环迭代,实现算法的过程中硬件功耗呈现某种特征。攻击者监测功耗曲线,利用统计方法进行分析处理,算法安全性受影响。针对这种情况,抗攻击方案主要是利用Masking掩盖技术,其通过引入芯片内部产生的随机数,对芯片内部的数据进行掩盖,使得电路的功耗、运行时间以及电磁辐射等外界可探测的因素与内部运算数据无关。
[0006]基本的基于掩码技术的算法,通过在算法进行初始置换时就与I个随机数进行异或操作来引入掩码值,之后在每一轮内添加相同的随机化掩码操作,从而使整体功耗随机化,因此能防御经典DPA攻击(根据数据和功耗之间的关联性来还原出密钥,进而达到攻击的效果);但是在进行更强大的基于相关系数的CPA (相关性功耗分析)攻击时,取IP置换后的值与首轮的输出值并利用汉明距离模型构造模拟功耗矩阵,可以推导出,二者的汉明距离与标准算法的汉明距离完全相同,因而采用汉明距离模型能有效屏蔽掩码的作用,使得该抗攻击方法无法抵御基于相关系数的CPA攻击。
[0007]为克服两轮之间使用同一个掩码带来的安全隐患,目前有一种基于非对称掩码的抗攻击方案,其核心思想是对算法的首轮和末轮添加的掩码值及位置均异与其它轮,使得对其采用汉明距离模型时无法消去掩码的作用。该方案的实现共需要3种F函数,需要大量的硬件资源支持。因为每一种F函数对应一种SM-Box实现,而且每一种非线性的SM-Box的实现硬件资源消耗都很大。并且由于该算法实现是基于非对称掩码的,加密和解密过程不对称,流程不同,增加了逻辑控制的复杂度。
[0008]目前采用Mask技术对Feistel结构的密码算法中的明/密文进行掩码,是利用一个随机数来对关键信息进行处理,增强抗功耗以及电磁攻击的能力。当前已有的带掩码的于Feistel结构的密码Mask算法,有的只有首末两轮加掩码,中间轮的数据仍与原算法的值相同;有的虽然全程带掩码,但各轮左右部分横向异或处理,或者前后轮纵向异或处理,皆可消除掩码。

【发明内容】

[0009]本发明为了克服以上技术的不足,提供了一种增强抗攻击能力的密码Mask方法,本方法适用于所有Feistel结构的密码算法。本方法使用几个不同掩码,按照修正过的算法混合入加密和解密过程全程,相邻轮运算中所带掩码不同,在使用少量的硬件资源的基础上可以大幅度增强抗差分功耗攻击、相关功耗攻击的能力。
[0010]术语解释:
1、Feistel密码结构是用于分组密码中的一种对称结构,标准Feistel结构如图1所示。Feistel结构的优点在于:由于它是对称的密码结构,所以对信息的加密和解密的过程就极为相似,甚至完全一样,这就使得在实施的过程中,对编码量和线路传输的要求就减少了几乎一半。许多分组密码采用了 Feistel结构,例如DES、Camellia、FEAL, GOST, LOKI,E2、Blofish、RC5 和 RC6 等。
[0011]2、DES:Data Encrypt1n Standard,即数据加密标准,是一种使用密钥加密的块算法。DES使用一个56位的密钥以及附加的8位奇偶校验位,产生最大64位的分组大小,这是一个迭代的分组密码,使用称为Feistel的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES使用16个循环,使用异或、置换、代换、移位操作四种基本运算。
[0012]本发明克服其技术问题所采用的技术方案是:
一种增强抗攻击能力的密码Mask方法,所述密码Mask包括加密过程和解密过程,加密过程是对明文及其运算中产生的数据进行掩码,解密过程是对密文及其运算中产生的数据进行掩码,所述加密过程包括如下步骤:
(1)引入原始随机数X,对明文M进行异或;
(2)进行IP初始置换,之后分成L和R两部分,并引入中间产生的随机数Xy、Xz;
(3)引入掩码修正过的F函数,所述F函数包括Fy函数和Fz函数,Fy函数和Fz函数交替进行以完成所需的η轮F函数运算,其中,η为密码算法中总的轮运算圈数;每一轮F函数运算中,均由原始密钥经密钥调度形成轮密钥RoundKeyi,其中,i和η均为正整数且I ^ i ^ η ;所述η轮F函数运算中,奇数轮为Fy函数运算,偶数轮为Fz运算;
(4)L和R两部分合并,之后进行FP逆初始置换;
(5)引入原始随机数X,进行异或,得到密文C。
[0013]优选的,所述步骤(3)中,F函数运算包括EP扩展置换、与轮密钥RoundKeyi异或、SM-Box代换和P置换函数变换;其中,奇数轮中Fy函数运算包括EP扩展置换、与轮密钥RoundKeyi异或、SM-Box-y代换和P置换函数变换,偶数轮中Fz函数运算包括EP扩展置换、与轮密钥RoundKeyi异或、SM-Βοχ-ζ代换和P置换函数变换。
[0014]优选的,所述相邻轮中所用的随机数不同,循环交替使用随机数Xy和Xz。
[0015]优选的,所述n=16,S卩加密过程中进行16轮F函数运算。
[0016]优选的,所述解密过程与加密过程对称;所述加密过程和解密过程中,使用的不同掩码,来自同I个随机源X,各经过不同算法处理。
[0017]本发明的有益效果是:
1、本发明在加密和解密过程全程中,只使用掩码修正过的两种F函数,就可以达到相邻轮运算结果中所带掩码不同的效果,由于两种F函数对应两种SM-Box,即本发明只需要实现两种SM-Box,与其它具有抗CPA攻击的方案相比,在大幅度增强抗差分功耗攻击、相关功耗攻击能力的基础上,还能节约大量的硬件资源,降低了成本。
[0018]2、本发明加密和解密流程完全相同,与其它具有抗CPA攻击的方案相比,逻辑控制简单。
【附图说明】
[0019]图1为标准Feistel结构图。
[0020]图2为本发明的Feistel结构密码Mask方法流程图。
[0021]图3为本发明的DES密码Mask方法的加密原理图。
[0022
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1