本发明属于芯片安全的攻击领域,具体涉及侧信道spa自动化攻击方法。
背景技术:
1、简单能量分析(simple power analysis),通常称做spa,是芯片攻击方式侧信道攻击中一种常见的攻击方式,因其原理简单且效果良好因此被广泛用于芯片攻击当中。
2、spa的主要原理为在芯片内部进行密码学运算时,不同的数据对应的底层逻辑操作不同,而不同的逻辑操作对应产生的能量消耗不同,如果芯片内部没有进行相关安全设计,则可以通过对功耗采集简单分析,得到攻击目标数据,从而推导计算出相关的密钥数据。
3、传统的spa攻击主要依赖于人工操作,在原始功耗曲线上选取对应的基础运算单元特征或者较明显的基础运算单元分界线特征,然后人工遍历曲线,肉眼数曲线上的特征分布并记录,将之转换为对应的过程数据,这种传统的方式在面对长比特密钥计算的密码学算法(如ecc256、ecc512)时,效率很低且很容易由于人工遍历出错导致整个过程数据无效,最终导致攻击目标数据失败。
技术实现思路
1、本发明的目的,提供一种自动化的侧信道spa攻击方法,降低了人工遍历导致的错误率,也极大的提高了攻击的效率。
2、本发明的核心思想是在识别到基础运算单元的功耗特征之后,完全利用机器对数据进行分析处理代替人工肉眼分析,减少了人工引入错误,实现了高效准确的spa攻击。详细的技术方案描述如下:
3、本发明的方法主要包括如下步骤:
4、步骤1在人工识别到基础运算单元特征模板之后,遍历完整曲线,分别计算该模板与功耗曲线各个位置的相关性,生成模板匹配相关性结果曲线;
5、步骤2对模板匹配相关性曲线选定合适临界参数值进行二值化操作,生成二值化曲线;
6、步骤3读取二值化曲线,计算分析基础运算单元在原始功耗曲线上的位置以及相邻单元之间的间距,分别对应到运算过程数据的比特值,从而生成对应的攻击目标数据,在遍历二值化结果曲线时,若遇到不符合该密码学运算规律的模糊值,则通过遍历猜测来生成不同的攻击目标数据,比如曲线上有两个“1”的相邻间隔较大,则认为是因为二值化参数设置不合适导致部分运算特征缺失,则可以通过间隔时间计算大致缺失的运算特征个数,然后分别用“0”和“1”进行猜测填充到完整的攻击结果数据当中。;
7、步骤4利用生成的攻击目标数据,代入的数据计算模块中进行正确性验证,如验证正确则输出攻击数据;
8、步骤5若上述验证攻击结果不正确,则调整临界参数再次进行步骤2、3、4操作,直至验证正确输出攻击数据。
9、结合本发明的具体实施方式和附图可以更好更全面的了解本发明的方法。
1.一种自动化的侧信道spa攻击方法,其特征在于,包括如下步骤:
2.如权利要求1所述的侧信道spa攻击方法,其特征在于:所述步骤1生成的相关性结果曲线与原功耗曲线在横坐标上完全对应。
3.如权利要求1所述的侧信道spa攻击方法,其特征在于:所述步骤2在二值化操作时设置的参数不同,二值化结果不能达到完全正确,在遍历二值化结果曲线时,若遇到不符合该密码学运算规律的模糊值,则通过遍历猜测来生成不同的攻击目标数据。
4.如权利要求1所述的侧信道spa攻击方法,其特征在于:所述步骤3中的生成对应的攻击目标数据,需要再次参与一次新的密码运算,验证该数据的有效性,有效则输出攻击目标数据。
5.如权利要求1所述的侧信道spa攻击方法,其特征在于:如果步骤5验证攻击结果不正确,则需要调整步骤2中的临界参数重新生成二值化曲线,直至攻击目标数据在步骤4验证正确或达到最大攻击次数停止攻击。