密码芯片中的密钥的获取方法及系统与流程

文档序号:17324807发布日期:2019-04-05 21:44阅读:624来源:国知局
密码芯片中的密钥的获取方法及系统与流程

本发明涉及密码芯片中的密钥获取技术,更具体的,涉及密码芯片中的密钥的获取方法及系统。



背景技术:

密码设备为密码芯片所依托的物理设备载体,密码芯片具有强大的认证与存储机密信息的功能,广泛用于电信、金融、社保等方面。密码设备运行加密运算时,将会与其所处作用环境发生物理交互作用,亦会受到作用环境之影响。这种交互作用可能会被攻击者利用,进而产生有助于密码分析的信息,这类信息称为“侧信息”,利用侧信息的攻击则称为侧信道分析。侧信道分析利用芯片运行过程中的物理信息(如电磁、功耗)获取密码算法运算过程中的中间信息,并能分段恢复较长的密钥。

侧信道的检测方法可以规避芯片的复杂设计,采集外部泄露的信息,利用密码芯片消耗的瞬时能量与其执行操作或所操作数据之间的相关性进行能量攻击。目前,国内外现有的能量分析方法为相关性能量分析(cpa)。但是该攻击方法具有局限性,例如由于通过实际能量迹推算获得的数值为实际密钥与掩码异或后进行了线性与非线性变换得到的中间值,通过中间值很难推导得到密钥的真实信息,因此当密码算法使用了掩码后可以有效抵抗能量分析攻击。并且在许多场景下,通过传统的cpa手段,几乎不能成功获得密钥,例如攻击异或操作过程的泄露场景,和分组密码轮输出选择明文攻击的场景下均无法成功获得密钥。

因此,亟需提供一种密码芯片中的密钥获取方法,以解决上述问题至少一个。



技术实现要素:

为了解决目前传统cpa手段无法分析使用掩码的密码算法,并且在许多场景下无法成功获得密钥的问题,本发明提供一种密码芯片中的密钥的获取方法以及系统,

在某些实施例中,一种密码芯片中的密钥的获取方法,包括:

提供多组待加密的明文,分别记录装配有所述密码芯片的密码设备对每组明文进行加密运算时产生的能量迹;其中,每组明文具有与所述密钥相同的比特位;

根据每个能量迹,建立与每组明文一一对应的能量迹多元线性回归模型,并计算每个能量迹多元线性回归模型的相关性系数;其中,每个能量迹多元线性模型包括有与每个比特位一一对应的多元线性回归公式;

根据相关性系数最大的一组明文对应的能量迹多元线性模型中的线性回归系数集确定所述密钥;其中,所述线性回归系数集由对应的能量迹多元线性模型中所有多元线性回归公式的线性回归系数组成。

在某些实施例中,所述根据相关性系数最大的一组明文对应的能量迹多元线性模型中的线性回归系数集,确定所述密钥,包括:

判断相关性系数最大的一组明文对应的能量迹多元线性模型中每个多元线性回归公式中的线性回归系数的值是否为正数;

根据判断结果定义假设密钥;

对所述假设密钥取反,利用汉明重量模型和相关性最大的一组明文对应的能量迹,对所述假设密钥和取反的假设密钥分别验证,确定正确的所述密钥,

其中,所述汉明重量模型为表示每组明文的能量迹与该组明文、密码芯片中的密钥、量化系数以及噪声的对应关系的模型。

在某些实施例中,所述方法还包括:

选取所述相关性系数最大的一组明文对应的能量迹多元线性模型中的线性回归系数集。

在某些实施例中,所述选取所述相关性系数最大的一组明文对应的能量迹多元线性模型中的线性回归系数集,包括:

建立由每组明文的每个比特位的明文数值构成的数值矩阵;

根据每组明文的能量迹,将所述数值矩阵作为多元线性回归模型的数值矩阵,获得与每组明文对应的能量迹多元线性模型中的线性回归系数集;

从与每组明文对应的能量迹多元线性模型中的线性回归系数集中选取对应相关系数最大的一组明文的线性回归系数集。

在某些实施例中,所述计算每个能量迹多元线性回归模型的相关性系数,包括:

根据每个比特位对应的能量迹上的点,采用最小二乘法逐个计算出每个能量迹多元线性回归模型的相关性系数。

在某些实施例中,一种密码芯片中的密钥的获取系统,包括:

提供模块,提供多组待加密的明文,分别记录装配有所述密码芯片的密码设备对每组明文进行加密运算时产生的能量迹;其中,每组明文具有与所述密钥相同的比特位;

模型建立模块,根据每个能量迹,建立与每组明文一一对应的能量迹多元线性回归模型,并计算每个能量迹多元线性回归模型的相关性系数;其中,每个能量迹多元线性模型包括有与每个比特位一一对应的多元线性回归公式;

确定模块,根据相关性系数最大的一组明文对应的能量迹多元线性模型中的线性回归系数集确定所述密钥;其中,所述线性回归系数集由对应的能量迹多元线性模型中所有多元线性回归公式的线性回归系数组成。

在某些实施例中,所述确定模块,包括:

判断单元,判断相关性系数最大的一组明文对应的能量迹多元线性模型中每个多元线性回归公式中的线性回归系数的值是否为正数;

假设密钥定义单元,根据判断结果定义假设密钥;

密钥验证单元,对所述假设密钥取反,利用汉明重量模型和相关性最大的一组明文对应的能量迹,对所述假设密钥和取反的假设密钥分别验证,确定正确的所述密钥;

其中,所述汉明重量模型为表示每组明文的能量迹与该组明文、密码芯片中的密钥、量化系数以及噪声的对应关系的模型。

在某些实施例中,所述系统还包括:

选取模块,选取所述相关性系数最大的一组明文对应的能量迹多元线性模型中的线性回归系数集;

在某些实施例中,所述选取模块包括:

数值矩阵建立单元,建立由每组明文的每个比特位的明文数值构成的数值矩阵;

系数集获取单元,根据所述数值矩阵和每组明文的能量迹,获得与每组明文对应的能量迹多元线性模型中的线性回归系数集;

系数集选取单元,从与每组明文对应的能量迹多元线性模型中的线性回归系数集中选取对应相关系数最大的一组明文的线性回归系数集。

在某些实施例中,所述模型建立模块根据每个比特位对应的能量迹上的点,采用最小二乘法逐个计算出每个能量迹多元线性回归模型的相关性系数。

在某些实施例中,一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的密码芯片中的密钥获取方法的步骤。

在某些实施例中,一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述的密码芯片中的密钥获取方法的步骤。

本发明的有益效果

本发明提供一种密码芯片中的密钥获取方法及系统,利用多元线性回归的方法,可以有效提高密钥恢复的效率,无论密钥长度为多少,都可以同时恢复得到密钥的多个比特,相较于传统的单比特的分析方法,加快了密钥分析的速度,节约检测时间,提高检测效率,具有显著的优势。同时,本发明利用多元线性回归的方法进行能量分析,轮输出的变化并不会影响中间值与能量迹之间的相关性,这种分析方法对使用了掩码的密码算法非常有效,可以大大提高攻击的成功率,此外,本发明还具有很强的可扩展性,对于具有类似算法结构的密码算法同样适用。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出本发明实施例中一种密码芯片中的密钥获取方法的流程示意图。

图2示出本发明实施例中一种密码芯片中的密钥获取方法的其中一个子步骤的流程示意图。

图3示出图1中步骤s3的具体流程示意图。

图4示出本发明实施例中一种密码芯片中的密钥获取系统的结构示意图。

图5示出出本发明实施例中一种密码芯片中的密钥获取方法的其中一个子系统的结构示意图。

图6示出图4中确定模块300的具体结构示意图。

图7示出适于用来实现本申请实施例的计算机设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前,国内外现有的能量分析方法为相关性能量分析(cpa),cpa攻击技术利用了统计学中的皮尔逊相关系数进行分析攻击,其攻击过程描述为:

1)在密码芯片系统中,将n组不同的明文(密文)数据和真实密钥进行加密(解密)运算,并获取密码设备的能耗即为能量迹,记为t。

2)通过猜测密钥,产生相应的中间值,根据中间值的汉明重量或者汉明距离泄露,计算得到假设能量消耗,记为d。

3)根据下式计算假设能量消耗与实测能量迹的线性相关系数。

式(1)中e()表示求平均值,var()表示求方差。ρ的范围在[-1,1]之间,当ρ取绝对值的最大值时,即假设能量消耗与真实测量的能量迹线性相关性(即相关性系数ρ)达到最大,则此时d所对应的猜测的密钥即为正确的密钥。

cpa的攻击方法有它的局限性,例如当密码算法使用了掩码后可以有效抵抗能量分析攻击,因为通过实际能量迹推算获得的数值为实际密钥与掩码异或后进行了线性与非线性变换得到的中间值,通过中间值很难推导得到密钥的真实信息。并且在许多场景下,通过传统的cpa手段,几乎不能成功获得密钥,例如攻击异或操作过程的泄露场景,和分组密码轮输出选择明文攻击的场景。此外,目前的cpa方法仅仅能够逐个破解密钥中每个比特位的数值,当密钥的比特位数量达到64位时,获取完整的密钥可能需要3天以上的时间,当密钥达到128位时,目前的cpa已经无法获得完整的密钥。

为了解决目前传统cpa攻击手段无法获取使用了掩码的密钥以及传统cpa攻击手段在复杂场景下或者密钥的比特位数量过多时无法成功获得密钥的问题。本申请提供一种密码芯片中的密钥获取方法及系统,进一步的还提供用于实现该密码芯片中的密钥获取方法的电子设备以及计算机存储介质。

本申请的第一方面提供一种密码芯片中的密钥获取方法,在该方法中,利用多元线性回归的方法,可以有效提高密钥恢复的效率,无论密钥长度为多少,都可以同时恢复得到密钥的多个比特,相较于传统的单比特的分析方法,加快了密钥分析的速度,节约检测时间,提高检测效率,具有显著的优势。同时,本发明利用多元线性回归的方法进行能量分析,轮输出的变化并不会影响中间值与能量迹之间的相关性,这种分析方法对使用了掩码的密码算法非常有效,可以大大提高攻击的成功率,此外,本发明还具有很强的可扩展性,对于具有类似算法结构的密码算法同样适用。

作为示例,一种密码芯片中的密钥获取方法,如图1所示,包括:

s1:提供多组待加密的明文,分别记录装配有所述密码芯片的密码设备对每组明文进行加密运算产生的能量迹。

在步骤s1中,每组明文具有与所述密钥相同的比特位。本申请中的能量迹,根据本领域公知的现有技术可以知晓,为密码设备运行加密或解密运算时,产生的能耗对应每个比特位形成的曲线。下述以t表示。

在一个密钥获取场景中,首先随机给出n组明文,该n组明文可以是分组明文,例如给出长度为nx(即表示n乘以x的结果的数值)的明文划分为n组,其中,本领域公知的,在分组明文中,每组明文具有与密钥对应相同数量的比特位。显然,在该实施例中,密钥和每组明文的比特位的数量为x。

在另外一个实施例中,随机给出的n组明文各自为一个完整的明文。本申请在此处不做限制。

采用密码芯片中的密钥对提供的明文进行加密,记录该加密运算过程中的能耗。由于加密的过程为逐个比特位运行,因此,能量迹可以显示出每个比特位的能耗值。

s2:根据每个能量迹,建立与每组明文一一对应的能量迹多元线性回归模型,并计算每个能量迹多元线性回归模型的相关性系数。

步骤s2中,每个能量迹多元线性模型包括有与每个比特位一一对应的多元线性回归公式。

在一个具体实例中,可以通过汉明重量模型进行计算,汉明重量是字符串相对于同样长度的零字符串的汉明距离。从计算方法来讲,一个字符串的汉明重量,就是字符串中非零元素的个数。对于常用的二进制字符串,就是字符串中数字1的个数。在本申请中,汉明重量模型为表示每组明文的能量迹与该组明文、密码芯片中的密钥、量化系数以及噪声的对应关系的模型。

以具体实例表示,汉明重量模型为:

该模型中,t表示能量迹,a表示量化系数,量化系数与每个比特位一一对应,两个比特位的量化系数之间没有必然关联,即任意两个比特位的量化系数可以相同,也可以不同。hw表示汉明重量,表示异或运算符,其运算法则为:

上述模型中,c表示常数的能量消耗,密码设备在进行加密运算时产生的能耗分为两个方面,其一为运算加密的能耗,其二为密码设备本身的能耗,例如密码设备内部电路的电阻的能耗等,常数的能量消耗为固定值,只要设备运行,则必然会产生常数的能量消耗。

k为密钥,密钥为二进制的密码构成,即由“0”和“1”组成,例如,以某个4个比特位的密钥为示例,密钥k为1010,即对应的k[j]为[1,0,1,0]。σ为噪声。

m为该组明文,对于n个比特位,m=(m[n],m[n-1],...,m[1]),t=(t1,t2,…,tn)

本实施例中的多元线性回归公式为tj=βj0+βj1m[1]+…+βjnm[n]。即对于能量迹上每一个比特位1~n,对应的t1~tn。其中,βj=(βj0,βj1,…,βjn)t,即每个多元线性回归公式可以简写为tj=βjm,βj为比特位为第j个的多元线性回归公式的线性回归系数。该实施例中,每一个能量迹多元线性模型即为:t=(t0,t1,…,tn)t,即第i组明文对应的能量迹多元线性模型为ti=(ti0,ti1,…,tin)t

相关系数是反映变量之间相关关系密切程度的统计指标,一般地,在实际应用中,相关系数通过计算协方差和标准差获得,例如,两个连续变量(x,y)的pearson相关性系数(px,y)等于它们之间的协方差cov(x,y)除以它们各自标准差的乘积(σx,σy)。多元线性回归公式中,相关系数采用最小二乘法获得,在本实施例中的相关系数可以表示为:

其中,j表示第j个比特位,tj为第j个比特位对应的能量迹上的能耗值,通过计算每一组明文对应的r2,即获得n组r2,即r12-rn2,选取数值最大的一个r2,记为rb2。即对应的明文组为b组。

s3:根据相关性系数最大的一组明文对应的能量迹多元线性模型中的线性回归系数集,确定所述密钥。

步骤s3中,所述能量迹多元线性模型中的线性回归系数集由该模型中的所有多元线性回归公式的线性回归系数组成。

可以理解,从上述描述中可以看出,第i组明文对应的多元线性模型中的线性回归系数集即为βi=(βi1,βi2,…,βin)t

在具体实施例中,需要首先计算出线性回归系数集,才能计算出对应第i组明文的每一个比特位对应的线性回归公式中的线性回归系数βij。

在一个具体实施例中,在步骤s3之前,需要进行s4:选取相关性系数最大的一组明文对应的能量迹多元线性模型中的线性回归系数集。如图2所示,该选取步骤s4包括:

s41:建立由每组明文的每个比特位的明文数值构成的数值矩阵;

s42:根据所述数值矩阵和每组明文的能量迹,获得与每组明文对应的能量迹多元线性模型中的线性回归系数集;

s43:从与每组明文对应的能量迹多元线性模型中的线性回归系数集中选取对应相关系数最大的一组明文的线性回归系数集。

在一个具体实施例中,在由所有能量迹线性回归模型形成的矩阵中可以计算获得样本数为n(即n组明文,每组明文为一个样本)的总体回归系数其中,m表示多元线性回归模型中的数值矩阵,表示上述的总体回归系数,由每组明文对应的能量迹多元回归模型中的系数集形成的矩阵,数值矩阵m如下所示:

其中n表示n组明文,n表示每组明文的比特位。即m表示的是所有明文每个比特位的明文值的矩阵。由于所有明文为提供的已知变量。因此,m也是已知的。从而可以计算出由于为由n组明文对应的线性回归系数集构成的矩阵,因此,当为已知时,每组明文对应的线性回归系数集构成的矩阵β1,β2,…,βn均为已知的,由此每一个比特位对应的线性回归公式中的线性回归系数βij均是已知的。

此外,如图3所示,步骤s3具体包括:

s31:判断相关性系数最大的一组明文对应的能量迹多元线性模型中每个多元线性回归公式中的线性回归系数的值是否为正数;

s32:根据判断结果定义假设密钥。

具体的,若是,则定义对应比特位的密钥的值为0,若否,则定义对应比特位的密钥的值为1,从而对应获得假设密钥。由于选出了相关系数最大的那组明文,结合前面计算的该组明文每一个比特位对应的线性回归公式中的线性回归系数βij,可以找出相关系数最大的那组明文中每个比特位对应的线性回归公式中的线性回归系数βbj。通过判断βbj是否为正值,确定出假设密钥,当βbj大于0时,假设密钥对应比特位的数值为0,当βbj假设密钥对应比特位的数值为1。例如,在一个4位密钥中,βb1大于0,βb2小于0,βb3大于0,βb4小于0,这样获得的假设密钥为0101。

通过上述方法获得的密钥(即假设密钥)可能是正确的密钥,也可能不是,而是假设密钥的取反为正确密钥。同样以假设密钥为0101为例,此时需要计算出假设密钥的反,即1010。则此时获得了一个假设密钥0101,以及一个假设密钥的反1010。

s33:对所述假设密钥取反,利用汉明重量模型和相关性最大的一组明文对应的能量迹,对所述假设密钥和取反的假设密钥分别验证,确定正确的所述密钥。

结合前述的汉明重量模型,可以知晓,k[j]=0、1、0、1,或者1、0、1、0。将这两种密钥(即0101和1010)分别带入汉明重量模型,由于t是已知的,k[j]、m[j]、σ以及c均为已知的,虽然a是未知的,但a是与每个比特位对应的,但可以将k[j]=0、1、0、1,或者1、0、1、0带入汉明重量模型进行验证,从而确定出正确的密钥,正确的密钥是假设密钥,或者假设密钥的反。这样即获取了密码芯片中的密钥。

显然,可以知晓,该方法可以同时计算出所有比特位的密钥字节的值,不需要逐个计算每一个比特位的密钥字节的值,可以有效提高密钥恢复的效率,无论密钥长度为多少,都可以同时恢复得到密钥的多个比特,比传统的单比特的分析效率要提高很多,具有显著的优势,节约检测时间,提高检测效率。同时,本发明利用多元线性回归的方法进行能量分析,轮输出的变化并不会影响中间值与能量迹之间的相关性,这种分析方法对使用了掩码的密码算法非常有效,可以大大提高攻击的成功率。此外还具有很强的可扩展性,对于具有类似算法结构的密码算法同样适用。

基于上述相同的发明构思,本申请第二方面提供一种密码芯片的密钥的获取系统。如图4所示,包括:

提供模块100,提供多组待加密的明文,分别记录装配有所述密码芯片的密码设备对每组明文进行加密运算时产生的能量迹,其中,每组明文具有与所述密钥相同数量的比特位;

模型建立模块200,根据每个能量迹,建立与每组明文一一对应的能量迹多元线性回归模型,并计算每个能量迹多元线性回归模型的相关性系数,其中每个能量迹多元线性模型包括有与每个比特位一一对应的多元线性回归公式;

确定模块300,根据相关性系数最大的一组明文对应的能量迹多元线性模型中的线性回归系数集,确定所述密钥,其中所述能量迹多元线性模型中的线性回归系数集由该模型中的所有多元线性回归公式的线性回归系数组成。

在一个具体实施例中,所述系统还包括:

选取模块,选取所述相关性系数最大的一组明文对应的能量迹多元线性模型中的线性回归系数集;

其中,如图5所示,所述选取模块包括:

数值矩阵建立单元401,建立由每组明文的每个比特位的明文数值构成的数值矩阵;

系数集获取单元402,根据所述数值矩阵和每组明文的能量迹,获得与每组明文对应的能量迹多元线性模型中的线性回归系数集;

系数集选取单元403,从与每组明文对应的能量迹多元线性模型中的线性回归系数集中选取对应相关系数最大的一组明文的线性回归系数集。

此外,如图6所示,所述确定模块300,包括:

判断单元,判断相关性系数最大的一组明文对应的能量迹多元线性模型中每个多元线性回归公式中的线性回归系数的值是否为正数;

假设密钥获取单元,根据判断结果定义假设密钥。

在一个实施例中,若是,则对应比特位的密钥的值为0,若否,则对应比特位的密钥的值为1,从而对应获得假设密钥;

密钥验证单元,对所述假设密钥取反,利用汉明重量模型和相关性最大的一组明文对应的能量迹,对所述假设密钥和取反的假设密钥分别验证,确定正确的所述密钥。

下面结合具体实例对上述系统进行逐一详细说明。

在一个密钥获取场景中,首先随机给出n组明文,该n组明文可以是分组明文,例如给出长度为nx(即表示n乘以x的结果的数值)的明文,其中,本领域公知的,在分组明文中,每组明文具有与密钥对应相同数量的比特位。显然,在该实施例中,密钥和每组明文的比特位的数量为x。

在另外一个实施例中,随机给出的n组明文各自为一个完整的明文。本申请在此处不做限制。

采用密码芯片中的密钥对提供的明文进行加密,记录该加密运算过程中的能耗。由于加密的过程为逐个比特位运行,因此,能量迹可以显示出每个比特位的能耗值,例如,可以通过曲线图表示,其中横坐标为每个比特位,纵坐标为相应的能耗值,这样获得本申请中的能量迹。

汉明重量是字符串相对于同样长度的零字符串的汉明距离。从计算方法来讲,一个字符串的汉明重量,就是字符串中非零元素的个数。对于常用的二进制字符串,就是字符串中数字1的个数。在本申请中,汉明重量模型为表示每组明文的能量迹与该组明文、密码芯片中的密钥、量化系数以及噪声的对应关系的模型。

以具体实例表示,汉明重量模型为:

该模型中,t表示能量迹,a表示量化系数,量化系数与每个比特位一一对应,两个比特位的量化系数之间没有必然关联,即任意两个比特位的量化系数可以相同,也可以不同。hw表示汉明重量,表示异或运算符,其运算法则为:

上述模型中,c表示常数的能量消耗,密码设备在进行加密运算时产生的能耗分为两个方面,其一为运算加密的能耗,其二为密码设备本身的能耗,例如密码设备内部电路的电阻的能耗等,常数的能量消耗为固定值,只要设备运行,则必然会产生常数的能量消耗。

k为密钥,密钥为二进制的密码构成,即由“0”和“1”组成,例如,以某个4个比特位的密钥为示例,密钥k为1010,即对应的k[j]为[1,0,1,0]。σ为噪声。

m为该组明文,对于n个比特位,m=(m[n],m[n-1],...,m[1]),t=(t1,t2,…,tn)

本实施例中的多元线性回归公式为tj=βj0+βj1m[1]+…+βjnm[n]。即对于能量迹上每一个比特位1~n,对应的t1~tn。其中,βj=(βj0,βj1,…,βjn)t,即每个多元线性回归公式可以简写为tj=βjm,βj为比特位为第j个的多元线性回归公式的线性回归系数。该实施例中,每一个能量迹多元线性模型即为:t=(t0,t1,…,tn)t,即第i组明文对应的能量迹多元线性模型为ti=(ti0,ti1,…,tin)t

可以理解,从上述描述中可以看出,第i组明文对应的多元线性模型中的线性回归系数集即为βi=(βi1,βi2,…,βin)t

在具体实施例中,需要首先计算出线性回归系数集,才能计算出对应第i组明文的每一个比特位对应的线性回归公式中的线性回归系数βij。

在由所有能量迹线性回归模型形成的矩阵中可以计算获得样本数为n(即n组明文,每组明文为一个样本)的总体回归系数其中,m表示多元线性回归模型中的数值矩阵,表示上述的总体回归系数,由每组明文对应的能量迹多元回归模型中的系数集形成的矩阵,数值矩阵m如下所示:

其中n表示n组明文,n表示每组明文的比特位。即m表示的是所有明文每个比特位的明文值的矩阵。由于所有明文为提供的已知变量。因此,m也是已知的。从而可以计算出由于为由n组明文对应的线性回归系数集构成的矩阵,因此,当为已知时,每组明文对应的线性回归系数集构成的矩阵β1,β2,…,βn均为已知的,由此每一个比特位对应的线性回归公式中的线性回归系数βij均是已知的。

相关系数是反映变量之间相关关系密切程度的统计指标,一般地,在实际应用中,相关系数通过计算协方差和标准差获得,例如,两个连续变量(x,y)的pearson相关性系数(px,y)等于它们之间的协方差cov(x,y)除以它们各自标准差的乘积(σx,σy)。多元线性回归公式中,相关系数采用最小二乘法获得,在本实施例中的相关系数可以表示为:

其中,j表示第j个比特位,tj为第j个比特位对应的能量迹上的能耗值,通过计算每一组明文对应的r2,即获得n组r2,即r12-rn2,选取数值最大的一个r2,记为rb2。即对应的明文组为b组。

接着,由于选出了相关系数最大的那组明文,结合前面计算的该组明文每一个比特位对应的线性回归公式中的线性回归系数βij,可以找出相关系数最大的那组明文中每个比特位对应的线性回归公式中的线性回归系数βbj。通过判断βbj是否为正值,确定出假设密钥,当βbj大于0时,假设密钥对应比特位的数值为0,当βbj假设密钥对应比特位的数值为1。例如,在一个4位密钥中,βb1大于0,βb2小于0,βb3大于0,βb4小于0,这样获得的假设密钥为0101。

通过上述方式获得的密钥(即假设密钥)可能是正确的密钥,也可能不是,而是假设密钥的取反为正确密钥。同样以假设密钥为0101为例,此时需要计算出假设密钥的反,即1010。则此时获得了一个假设密钥0101,以及一个假设密钥的反1010.

结合前述的汉明重量模型,可以知晓,k[j]=0、1、0、1,或者1、0、1、0。将这两种密钥(即0101和1010)分别带入汉明重量模型,由于t是已知的,k[j]、m[j]、σ以及c均为已知的,虽然a是未知的,但a是与每个比特位对应的,但可以将k[j]=0、1、0、1,或者1、0、1、0带入汉明重量模型进行验证,从而确定出正确的密钥,正确的密钥是假设密钥,或者假设密钥的反。这样即获取了密码芯片中的密钥。

显然,可以知晓,该系统可以同时计算出所有比特位的密钥字节的值,不需要逐个计算每一个比特位的密钥字节的值,可以有效提高密钥恢复的效率,无论密钥长度为多少,都可以同时恢复得到密钥的多个比特,比传统的单比特的分析效率要提高很多,具有显著的优势,节约检测时间,提高检测效率。同时,本发明利用多元线性回归的方法进行能量分析,轮输出的变化并不会影响中间值与能量迹之间的相关性,这种分析方法对使用了掩码的密码算法非常有效,可以大大提高攻击的成功率。此外还具有很强的可扩展性,对于具有类似算法结构的密码算法同样适用。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的由客户端执行的方法,或者,所述处理器执行所述程序时实现如上所述的由服务器执行的方法。

下面参考图7,其示出了适于用来实现本申请实施例的计算机设备700的结构示意图。

如图7所示,计算机设备700包括中央处理单元(cpu)701,其可以根据存储在只读存储器(rom)702中的程序或者从存储部分708加载到随机访问存储器(ram))703中的程序而执行各种适当的工作和处理。在ram703中,还存储有系统700操作所需的各种程序和数据。cpu701、rom702、以及ram703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。

以下部件连接至i/o接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan卡,调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口706。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装如存储部分708。

特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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