基于类可分性判距的旁路区分器方法及系统与流程

文档序号:11831233阅读:646来源:国知局
基于类可分性判距的旁路区分器方法及系统与流程

本发明涉及的是一种计算机安全领域的技术,具体是一种基于类可分性判距的旁路区分器方法及系统。



背景技术:

在现实中,密码系统通常是以硬件或以硬件为表现形式的软件来实现的,譬如:智能卡、RFID、密码协处理器、SoC密码芯片、密码机等。在这些密码系统的实现环境中,攻击者可以观察和测量密码变换的能量消耗、电磁辐射等信息,利用这些额外的信息有可能实现比传统的数学分析更有效地密码破译。人们通常把这种环境下的攻击称为“旁路攻击(Side Channel Attack)”。旁路攻击通常包括简单功耗分析(SPA)和差分功耗分析(DPA)。其中DPA攻击是通过记录密码设备对大量不同数据加密或解密操作时的功耗曲线,利用统计方法从功耗曲线中恢复出密码设备中的密钥,其分析效果也相对更加有效。

典型的DPA攻击基于“分类‐判别”的思想,依据密码算法运行时中间值的某个比特或某些比特将其对应的功耗曲线分为若干类,再根据判别准则对这些类中功耗曲线计算判别值,依据最终得到的判别值来确定密钥值。

传统硬件工艺下,功耗泄露模型来源于每比特或每比特的翻转消耗的功率是相同的,这通常适用于总线或寄存器的功耗泄露模型。而随机电路工艺的改进,原有的功耗模型将可以不再适合,即,功耗模型将不再是汉明重量或汉明距离模型,因此,寻找合适的功耗模型是DPA攻击过程中最大的难点之一;同时,有一些设备并没有现成的功耗模型可以用,这类设备就无法传统的DPA攻击方法进行分析。有一些设备的功耗泄漏类型并不是固定的,若采用固定的功耗模型,在攻击的过程中就会发生攻击结果出现错误的情况。也就是可以不同的芯片,即使是同一批次的,其功耗模型也可能不一样,这时候甚至都不能使用模板攻击(在同一批次中一个芯片上做模板,在其他芯片上攻击)。

典型DPA“分类‐判别”的思想,其优势在于:独立于具体的泄露模型。能够实现通用分析,不依赖于泄露模型的先验知识,利用判别标准检验各类之间的差异性。利用这种攻击思想,能够解决工艺变化带来的泄露模型的不适用性。

虽然典型DPA利用“分类‐判别”的思想且独立于具体的泄露模型,但仍然存在一些问题:1)其分析效率往往不如已经泄露模型下的相关性分析(CPA),这是由于DPA的判别准则是差分,它仅仅利用了分类的均值。2)对于噪声抵抗性较差别并且分析效率较低,所需要的曲线条数较CPA要更多。这加剧了原来本就耗时的功耗采集过程,对于存储及计算资源都是极大消耗。3)典型DPA分析方法,只能利用功耗曲线上单点信息。而功耗泄露往往分布在相邻的若干点上,在DPA方法中合理利用这些泄露点,将极大提高分析效率。



技术实现要素:

本发明针对现有技术的缺陷和不足,提出一种基于类可分性判距的旁路区分器方法及系统,适用于所有DPA方法的应用场景,并比DPA方法更具有通用性,解决了典型DPA判别方法信息利用单一的问题。同时,也能实现在DPA上的多点信息利用,提高分析效率。

本发明是通过以下技术方案实现的:

本发明涉及一种基于比特的通用差分功耗分析方法,对待测硬件输入明文后循环执行目标函数并采集期间产生的功耗曲线,对于每一个猜测子密钥计算其中间值,对中间值按不同分类结构进行分类后分析每种分类下的散度矩阵判据,得到对应的统计量曲线,并对所得到的分类结果进行组合处理,得到每个猜测子密钥的综合统计量曲线,最后根据综合统计量曲线最高的峰值,该综合统计量曲线所对应的猜测子密钥即为候选密钥。

所述的候选密钥其中:k为每个猜测的子密钥,为散度矩阵判据,Ci为分类结构。

所述的分类包括:单比特分类、多比特分类以及汉明重量分类。

所述的中间值可表述为I=f(k,m),其中:k表示子密钥,m表示明文,I表示待攻击的中间值,f为选择的算法操作,即DPA攻击的目标函数,该函数结构已知。

技术效果

与现有技术相比,本发明利用类可分性判据来构造DPA分析方法,该方法利用可分性判据这一统计量能够扩大类与类之间的距离,使得类间的可分性变大,同时又能充分利用功耗曲线上多点信息提升DPA分析效率。

附图说明

图1为本发明流程图;

图2为本发明应用AES加密算法功耗曲线示意图;

图3为J1为判据时,单点、单比特分类的分析成功率示意图;

图4为J2为判据时,单点、单比特分类的分析成功率示意图;

图5为J3为判据时,单点、单比特分类的分析成功率示意图;

图6为J4为判据时,单点、单比特分类的分析成功率示意图;

图7为J1为判据时,多点、单比特分类的分析成功率示意图;

图8为J2为判据时,多点、单比特分类的分析成功率示意图;

图9为J3为判据时,多点、单比特分类的分析成功率示意图;

图10为J4为判据时,多点、单比特分类的分析成功率示意图。

具体实施方式

实施例1

本实施例涉及一种基于比特的通用差分功耗分析方法,以AES硬件实现为例进行说明:对于硬件实现的AES来说,其分析可表述成函数:I=f(k,m)。由于密钥混淆的存在,每一轮的寄存器中的中间值和当前8比特轮密钥都关系,而其16个字节S盒是并行执行,在功耗曲线上重叠在一起。这无形之中降低了信噪比,使得攻击所需要的曲线条数增加,若要进行普通的DPA攻击,必须同时大量采集功耗曲线占用较大存储空间与计算能力。

本实施例包括以下步骤:

①随机输入明文m,循环执行目标函数f,并采集功耗曲线,如图2所示;

②根据密钥k的每一个猜测,计算得到对应的中间值I;

③依据中间值I选择单比特分类、多比特分类或汉明重量分类中的任意一种,形成对应的分类结构Ci

④对于不同的分类结构Ci,进行散度矩阵判据的单点分析或多点分析;

⑤根据步骤④使用判据后得到的结果以及步骤③中不同的分类方式,采用相应的判别结果经过组合处理后得到的综合统计量曲线中的最大值所代表的k值为候选密钥,即其中:k为每个猜测的子密钥,Ci为分类结构,为下面定义散度矩阵判据的任意一种:

其中tr表示求迹,SW表示类内散度矩阵,SB表示类间散度矩阵,如图3、图7所示;

ii)J2=|SW|-1|SB|,其中||表示求行列式值,SW表示类内散度矩阵,SB表示类间散度矩阵,如图4、图8所示;

iii)J3=tr(SW)-1tr(SB),其中tr表示求迹,SW表示类内散度矩阵,SB表示类间散度矩阵,如图5、图9所示;

iv)J4=|SW|-1|ST|,其中||表示求行列式值,Sw表示类内散度矩阵,ST表示总散度矩阵,如图6、图10所示。

所述的类内散度矩阵类间散度矩阵总体散度矩阵C为分类个数,其中:Δi表示每个分类,mi表示第Δi分类的均值,m表示功耗曲线的总均值,Ni表示Δi分类中功耗曲线条数,P(Δi)表示Δi分类的概率及表示Δi分类中第k条功耗曲线。

步骤④中所述的单点分析,是指根据判据i)~iv)中,SW、SB与ST中所有X与m取值,均为单个功耗曲线点的向量;对应多点分析,则均为多个功耗曲线点的向量,通过上述判据可将多点映射成单一值的统计量。

所述的分类包括:

a.如图3~图6所示的单比特分类:按待攻击的中间值I的第一个比特分类分成两类,即分成Δ1,0和Δ1,1,分别表示为第一比特为0的一类和第一比特为1的一类。

b.如图7~图10所示的多比特分类:按攻击的中间值I的第若干比特分类,可分成2l类,l表示比特数。

c.汉明重量分类:按攻击的中间值I的汉明重量进行分类。

所述的中间值可表述为I=f(k,m),其中:k表示子密钥,m表示明文,I表示待攻击的中间值,f为选择的算法操作,即DPA攻击的目标函数,该函数结构已知。

所述的组合处理是指:当进行多点分析时,进行与处理或进行或处理。

如在散度矩阵判据中选择单比特分类,那么每个中间值I可分为两类Δ1,0和Δ1,1对于AES中间值共有8个比特,每个比特两类都可利用判据进行判别可得8个结果即:其中1≤r≤8,可以将这8个结果进行组合得到最终密钥,即:

本实施例可以进一步通过以下系统实现上述方法,该系统包括:密钥检测模块、信息分类模块、统计量处理模块以及峰值检测模块,其中:密钥检测模块生成猜测密钥并计算得到其对应的中间值后输出至信息分类模块,信息分类模块根据密钥检测模块的中间值对分析曲线进行单比特、多比特或汉明重量分类,输出曲线分类信息至统计量处理模块,统计量处理模块与峰值检测模块相连并传输统计量信息,峰值检测模块根据每次的统计量曲线,按照预设的散度矩阵判据计算综合统计量曲线及总统计量曲线的峰值并输出至密钥检测模块,密钥检测模块根据猜测猜测密钥的中间值以及峰值检测模块返回的峰值进行对比并获得正确的猜测密钥;

所述的统计量信息包括:功耗曲线、分类信息以及每种分类下功耗曲线的统计量。

上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。

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