本发明涉及加密解密信息技术领域,并且更具体地,涉及一种在相关性侧信道攻击中校正中间变量计算结果的方法。
背景技术:
密码设备在计算过程中,会在功耗、电磁等方面会释放出一些时序信号,我们称这些信号为侧信道信息。侧信道攻击是对这些侧信道信息进行分析,从而获取密码设备的内部状态,并对其进行分析得到未知密码的值的过程。侧信道攻击按照攻击方法可以分为简单侧信道攻击、差分侧信道攻击、模板侧信道攻击以及相关系数侧信道攻击等。
相关系数侧信道攻击主要是根据输入数据和猜测的密码数据,来计算出一个密码计算过程中的中间值,然后计算该中间值和侧信道信号之间的相关性。遵从上面的步骤,一系列猜测的密码数据,对应一系列的相关性值。如果该中间值是侧信道信号泄漏值的实际对应点,则猜测正确的密码数据对应的相关性值曲线会出现一个明显的峰值。根据该峰值即可反向推定对应的密码数据。
一般化的相关系数攻击,是指已知嵌入式设备要执行z=f(x,y)的操作,其中x的值已知且可由攻击者控制其值,
技术实现要素:
为了解决上述问题,根据本发明的一个方面,提供了一种在相关性侧信道攻击中校正中间变量计算结果的方法,所述方法包括:
由外界调用者输入已知且随机的至少两个密文数值组成函数已知输入数据数组x[x0,x1,…,xn];
根据采样函数
根据y所有可能的取值组成函数秘密输入数据空间数组y[y0,y1,…,ym],并通过
分别计算矩阵zn×m中每列和数组t的相关性系数r,得到相关性系数数组r[r0,r1,…,rm];
利用线性相关性计算函数来计算数组x和数组t的相关性系数r-;
构造数组x+[x+0,x+1,…,x+n],使其满足和侧信道信号的相关性系数为r-;
按照矩阵z的产生方法得到矩阵z+n×m
分别计算矩阵z+n×m中每列和数组t的相关性系数r+,得到相关性系数数组r+[r+0,r+1,…,r+m];以及
通过计算数组r和数组r+的差值来寻找峰值,从而确定与
优选地,其中一个xi对应一个ti。
优选地,其中所述
优选地,其中所述y的值未知,但是其值所占的位数已知。
优选地,其中数组x+的构造方法为退火算法。
根据本发明的另一个方面,提供了一种在相关性侧信道攻击中校正中间变量计算结果的系统,所述系统包括:
数据输入单元,由外界调用者输入已知且随机的至少两个密文数值组成函数已知输入数据数组x[x0,x1,…,xn];
采样单元,根据采样函数
函数值空间矩阵生成单元,根据y所有可能的取值组成函数秘密输入数据空间数组y[y0,y1,…,ym],并通过
计算单元,分别计算矩阵zn×m中每列和数组t的相关性系数r,得到相关性系数数组r[r0,r1,…,rm];然后利用线性相关性计算函数来计算数组x和数组t的相关性系数r-,并构造数组x+[x+0,x+1,…,x+n],使其满足和侧信道信号的相关性系数为r-;按照矩阵zn×m的产生方法得到矩阵z+n×m
分别计算矩阵z+n×m中每列和数组t的相关性系数r+,得到相关性系数数组r+[r+0,r+1,…,r+m];以及
峰值确定单元,通过计算数组r和数组r+的差值来寻找峰值,从而确定与
优选地,其中xi与ti一一对应。
优选地,其中所述
优选地,其中所述y的值未知,但是其值所占的位数已知。
优选地,其中数组x+的构造方法为退火算法。
本发明的有益效果在于:
本发明提供的方法将增加侧信道攻击的区域,扩展相关系数侧信道攻击的有效范围,使得侧信道攻击不仅仅在于攻击密码,也能越过密码直接攻击核心业务数据,比如通过存取的+/-数学计算的侧信道泄漏,来攻击并获取银行卡的金额以及其他的敏感数据。
附图说明
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
图1示出了根据本发明实施方式的相关性侧信道攻击中校正中间变量计算结果的方法100的流程图;以及
图2示出了根据本发明实施方式的相关性侧信道攻击中校正中间变量计算结果的系统200的结构示意图。
具体实施方式
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
图1示出了根据本发明实施方式的相关性侧信道攻击中校正中间变量计算结果的方法100的结构示意图。如图1所示,相关性侧信道攻击中校正中间变量计算结果的方法100从步骤101开始。在步骤101由外界调用者输入已知且随机的至少两个密文数值组成函数已知输入数据数组x[x0,x1,…,xn]。例如,外界调用者每次输入一个xi,执行n此就得到函数已知输入数据数组x[x0,x1,…,xn]。
优选地,在步骤102根据采样函数
优选地,在步骤103根据y所有可能的取值组成函数秘密输入数据空间数组y[y0,y1,…,ym],并通过
优选地,其中所述
优选地,其中所述y的值未知,但是其值所占的位数已知。例如,y的长度为8比特,则y可能的取值范围为[0,255]
优选地,在步骤104分别计算矩阵zn×m中每列和数组t的相关性系数r,得到相关性系数数组r[r0,r1,…,rm]。
优选地,在步骤105利用线性相关性计算函数来计算数组x和数组t的相关性系数r-。
优选地,在步骤106构造数组x+[x+0,x+1,…,x+n],使其满足和侧信道信号的相关性系数为r-。优选地,其中数组x+的构造方法为退火算法。
优选地,在步骤107按照矩阵zn×m的产生方法得到矩阵z+n×m
优选地,在步骤108分别计算矩阵z+n×m中每列和数组t的相关性系数r+,得到相关性系数数组r+[r+0,r+1,…,r+m]。
优选地,在步骤109通过计算数组r和数组r+的差值来寻找峰值,从而确定与
图2示出了根据本发明实施方式的相关性侧信道攻击中校正中间变量计算结果的系统200的结构示意图。如图2所示,相关性侧信道攻击中校正中间变量计算结果的系统200包括数据输入单元201、采样单元202、函数值空间矩阵生成单元203、计算单元204和峰值确定单元205。数据输入单元201由外界调用者输入已知且随机的至少两个密文数值组成函数已知输入数据数组x[x0,x1,…,xn]。例如,外界调用者每次输入一个xi,执行n此就得到函数已知输入数据数组x[x0,x1,…,xn]。
优选地,采样单元202根据采样函数
优选地,函数值空间矩阵生成单元203根据y所有可能的取值组成函数秘密输入数据空间数组y[y0,y1,…,ym],并通过
优选地,其中所述
优选地,其中所述y的值未知,但是其值所占的位数已知。例如,y的长度为8比特,则y可能的取值范围为[0,255]
优选地,在计算单元204分别计算矩阵zn×m中每列和数组t的相关性系数r,得到相关性系数数组r[r0,r1,…,rm]。
优选地,在计算单元204利用线性相关性计算函数来计算数组x和数组t的相关性系数r-。
优选地,在计算单元204构造数组x+[x+0,x+1,…,x+n],使其满足和侧信道信号的相关性系数为r-。优选地,其中数组x+的构造方法为退火算法。
优选地,在在计算单元204按照矩阵zn×m的产生方法得到矩阵z+n×m
优选地,在计算单元204分别计算矩阵z+n×m中每列和数组t的相关性系数r+,得到相关性系数数组r+[r+0,r+1,…,r+m]。
优选地,峰值确定单元205通过计算数组r和数组r+的差值来寻找峰值,从而确定与
已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。
通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。