CN111082921B - 密码芯片通过一阶泄露模型改进二阶功耗分析的方法 - Google Patents

密码芯片通过一阶泄露模型改进二阶功耗分析的方法 Download PDF

Info

Publication number
CN111082921B
CN111082921B CN201911401241.6A CN201911401241A CN111082921B CN 111082921 B CN111082921 B CN 111082921B CN 201911401241 A CN201911401241 A CN 201911401241A CN 111082921 B CN111082921 B CN 111082921B
Authority
CN
China
Prior art keywords
power consumption
order
model
curve
correlation coefficient
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911401241.6A
Other languages
English (en)
Other versions
CN111082921A (zh
Inventor
李增局
王彭彭
董晓婕
刘志刚
史汝辉
李文宝
尚现峰
李士通
赵鹏辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Zhihui Yunce Information Technology Co ltd
Beijing Zhihuiyunce Technology Co ltd
Original Assignee
Shandong Zhihui Yunce Information Technology Co ltd
Beijing Zhihuiyunce Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Zhihui Yunce Information Technology Co ltd, Beijing Zhihuiyunce Technology Co ltd filed Critical Shandong Zhihui Yunce Information Technology Co ltd
Priority to CN201911401241.6A priority Critical patent/CN111082921B/zh
Publication of CN111082921A publication Critical patent/CN111082921A/zh
Application granted granted Critical
Publication of CN111082921B publication Critical patent/CN111082921B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种密码芯片通过一阶泄露模型改进二阶功耗分析的方法,包括:采集密码芯片的功耗曲线,并进行对齐处理,利用明文做相关性分析,拟合功耗曲线的系数;获取功耗曲线的相关系数,得到噪声方差,获取噪声生成函数;生成二阶功耗模型的预处理向量,得到二阶功耗模型的三个预处理变量;计算二阶功耗模型的三个预处理变量的相关性系数,比较相关性系数的绝对值大小,选择相关性系数绝对值最大的模型作为二阶预处理的模型,并计算采集所需要的曲线条数。本发明利用一阶的泄露可以提高二阶分析的成功率与效率,在设计芯片的防御方案时,考虑明文加载过程进行掩码方案的保护,保障芯片的敏感信息的安全性。

Description

密码芯片通过一阶泄露模型改进二阶功耗分析的方法
技术领域
本发明涉及密码技术领域,尤其涉及一种密码芯片通过一阶泄露模型改进二阶功耗分析的方法。
背景技术
在现实生活中,嵌入式密码设备,以智能卡和USB key为例,都是基于硬件平台和软件编程实现的。随着上世纪90年代提出的一些攻击方法的提出,人们逐渐意识到,密码算法的安全性不仅仅取决于数学安全性,同时这些支持密码算法的设备的实现方式也会对密码算法的安全性造成威胁。
所有的嵌入式密码设备,尤其是以智能卡为例,都是电子设备,因此它们都遵循物理规律。因此,当嵌入式密码设备计算密码结果时,需要一定的时间和能量消耗、并且设备会辐射出电磁波甚至声音等,这些物理量都会受到周围环境的影响。同时,很多嵌入式密码设备自身不携带电源,他们必须通过读卡装置连接才能工作。这样,攻击者很容易检测嵌入式设备的功耗和执行时间信息。如果这些信息和嵌入式密码设备的密钥信息建立起联系,则攻击者可以获得密钥的更多信息。所有这些额外的信息源都被称为侧信道信息。
目前该领域有很多研究者已经提出了各种各样的侧信道攻击方法,这些方法可以使攻击者很容易攻击获取密码学算法的密钥。这些常用的方法包括:时间攻击、功耗分析、电磁辐射分析、声音分析、探针分析、测试电路的重利用分析、缓存攻击以及错误注入攻击。侧信道攻击方法目前最有效的攻击方法包括了功耗分析、错误注入攻击等。
功耗分析自从1999年kocher等人提出针对DES算法的差分功耗分析以后,在21世纪前十年掀起来一波研究热潮。2001年,Thomas Messerges首先介绍了使用二阶能量分析攻击抗软件DPA防护的方法,而后,Waddle等人在2004年针对二阶DPA攻击给出了两种实用的模型,Zero-Offset 2-DPA和FFT 2-DPA,并分析了各自应用场景和攻击效率。2003年,S.Chari等人首次提出了模板攻击的概念,2007年Oswald等人提出了针对掩码措施实施模板攻击的思路。E.Brier等人在2004年的CHES会议上提出了相关性功耗分析的方法,极大提升了差分功耗分析的效果。
针对功耗分析最有效的防御方案是掩码技术,其原理是通过引入了随机数,消除了中间值与功耗之间的联系。通常,掩码是通过产生一个随机数M,然后把这个数作用到中间值上,最常见的掩码方式是,假设中间值为u,则通过M掩码以后,在实际运算中出现的中间值是
Figure BDA0002344164990000021
为了防御功耗分析技术,目前大部分密码芯片的密码算法都使用了防御方案设计。目前工业界比较认可的防御方案包括:功耗加扰、时钟抖动、加入伪运算、掩码等。考虑到密码芯片的实现代价和成本,以及密码芯片的运算效率,一阶掩码技术是目前密码芯片最通常使用的方法。
在密码算法实现过程中,一阶掩码技术使用的随机数都是内部真随机数产生的。为了有效降低密码芯片的功耗,很多一阶掩码的设计方案都是从密钥运算加入时开始,使用随机数参与运算进行保护,使所有密钥参与的过程都有一阶的掩码进行保护,有效包括了密码芯片的敏感信息。针对有一阶掩码的设计方案,学术界提出了使用二阶分析的方式仍然可能获得密钥等敏感信息。
但是,芯片的密码算法运算过程中,在明文数据加载到寄存器的准备运算的过程,虽然没有密钥的参与,仍然导致了一阶的数据功耗泄露。
因此,现有技术需要改进。
发明内容
本发明实施例所要解决的技术问题是:提供一种密码芯片通过一阶泄露模型改进二阶功耗分析的方法,以解决现有技术中存在的问题。
根据本发明实施例的一个方面,公开一种密码芯片通过一阶泄露模型改进二阶功耗分析的方法,包括:
采集密码芯片的功耗曲线,并进行对齐处理,利用明文做相关性分析,拟合功耗曲线的系数;
获取功耗曲线的相关系数,得到噪声方差,获取噪声生成函数;
生成二阶功耗模型的预处理向量,得到二阶功耗模型的三个预处理变量;
计算二阶功耗模型的三个预处理变量的相关性系数,比较相关性系数的绝对值大小,选择相关性系数绝对值最大的模型作为二阶预处理的模型,并计算采集所需要的曲线条数。
基于本发明上述密码芯片通过一阶泄露模型改进二阶功耗分析的方法的另一个实施例中,所述采集密码芯片的功耗曲线,并进行对齐处理,利用明文做相关性分析,拟合功耗曲线的系数包括:
通过示波器采集密码芯片的功耗曲线,其功耗曲线点的值为:
Tij={Tij|1≤i≤n,1≤j≤m},式中n是功耗曲线上的总点数,m是曲线条数,i是标示每条曲线的对应坐标位置,j是标示曲线的序数;
对第j条曲线上的第i个点功耗泄露模型为:Tij=a*H(xj)+b+εij
式中,Tij为特定点的功耗,xj为第j条曲线泄露点中间值,对同一条功耗曲线不同点,xj是固定不变的,对不同功耗曲线,xj不同,H(xj)为xj的汉明重量,即xj中比特为1的个数,a为汉明重和功耗的线性系数,b为常数,εij为高斯白噪声,平均值为0,对同一条曲线的不同点和不同曲线的同一时刻点,εij为独立不相关的不同随机变量,根据功耗点向量Tij(1≤j≤m)和明文向量H(Pj)(1≤j≤m)计算拟合功耗曲线的系数为a和b。
基于本发明上述密码芯片通过一阶泄露模型改进二阶功耗分析的方法的另一个实施例中,所述获取功耗曲线的相关系数,得到噪声方差,获取噪声生成函数包括:
所述功耗曲线的相关系数计算公式为:
Figure BDA0002344164990000041
式中,X和Y是两个变量,E(X)和E(Y)是两个变量的期望,Var[X]是变量X的方差;
在密码芯片存在一阶功耗泄露时,r(Ti,H(x))大于设定的泄露阈值,其中,Ti代表Tij(1≤j≤m),x代表Pj(1≤j≤m),两个变量Ti和H(x)存在相关性:
Figure BDA0002344164990000042
结合功耗泄露模型;
变量的期望为:E(Ti)=a*E(H(x))+b;
变量的方差为:Var(Ti)=Var(a*H(x)+b+ε)=a2Var(H(x))+Var(ε)
功耗曲线的相关系数为:
Figure BDA0002344164990000043
利用功耗曲线点向量Tij(1≤j≤m)、明文向量汉明重H(Pj)和拟合的系数a和b,计算:εij=Tij-a*H(Pj)-b(1≤j≤m),式中,Tij(1≤j≤m)为功耗点向量,H(Pj)(1≤j≤m)为明文向量,a和b为拟合功耗曲线的系数;
计算噪声方差为:Var′(εij)(1≤j≤m)。
根据功耗曲线的相关系数计算公式得到理论方差为:
Figure BDA0002344164990000051
式中corr0为一阶泄露相关性系数,var为攻击模型H(x)的方差,a为拟合功耗曲线的系数;
比较拟合方差和理论方差,确认满足|Var(ε)-Var′(ε)|/Var(ε)≤5%;
则选择期望值为0,方差为Var(ε),作为产生高斯白噪声的噪声生成函数。
基于本发明上述密码芯片通过一阶泄露模型改进二阶功耗分析的方法的另一个实施例中,所述生成二阶功耗模型的预处理向量,得到二阶功耗模型的三个预处理变量包括:
选取密码芯片的功耗曲线的任意两个时刻点t0和t1,其功耗分别为T(t0)和T(t1),则t0时刻对应的功耗泄露的数据是
Figure BDA0002344164990000052
其中u是中间值,与密码芯片的密钥有关系,M是随机数,t1时刻对应的功耗泄露的数据是M;
Figure BDA0002344164990000053
T(t1)=a*H(M)+b+ε1
式中,a和b为在一阶泄露模型中得到的系数和常数,ε0和ε1为两个时刻点t0和t1对应的随机噪声,ε0和ε1独立不相关的,均值为0,方差为Var(ε)的高斯白噪声;
使用|T(t0)-T(t1)|、[T(t0)-E(T(t0))]*[T(t1)-E(T(t1))]和T(t0)*T(t1)作为预处理的方式,生成二阶功耗模型的预处理向量;
任意选值x、M,x是泄露点中一任意值,M是与x符合相同分布的独立的随机变量,得到二阶功耗模型的三个预处理变量为:
Figure BDA0002344164990000054
Figure BDA0002344164990000061
Figure BDA0002344164990000062
式中,r00,r01,r10,r11,r20和r21为噪声生成函数生成的六个随机数。
基于本发明上述密码芯片通过一阶泄露模型改进二阶功耗分析的方法的另一个实施例中,所述计算二阶功耗模型的三个预处理变量的相关性系数,比较相关性系数的绝对值大小,选择相关性系数绝对值最大的模型作为二阶预处理的模型,并计算采集所需要的曲线条数包括:
计算采集所需要的曲线条数为:
Figure BDA0002344164990000063
式中,r是相关系数,为最大相关性系数值,α为置信度,z1-α/2为正态分布置信度为α时的区间长度,n为在相关系数为r时为了达到α的置信度所需要的曲线数量。
与现有技术相比,本发明具有如下优点:
1、本发明的密码芯片通过一阶泄露模型改进二阶功耗分析的方法利用一阶的泄露可以提高二阶分析的成功率与效率,因此,在设计芯片的防御方案时,考虑明文加载过程进行掩码方案的保护,保障芯片的敏感信息的安全性;
2、本发明提出了利用一阶信息的泄露进行指导二阶分析的思想,使一阶功耗泄露模型和二阶功耗分析泄露模型之间建立了关联,帮助分析者完成二阶分析;
3、本发明解决了使用仿真分析方法解决二阶模型复杂、不容易计算的难点,通过仿真可以推导得到需要采集的功耗曲线数量,有效指导了实际的实验过程;
4、本发明在仿真设计时充分利用攻击模型,泄漏点的取值范围精确采用了攻击中间值的取值范围,使仿真结果更准确可靠;
5、本发明利用不同点之间的随机变量的独立性,仿真时独立产生不同点的噪声和掩码值,使仿真结果更准确。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的密码芯片通过一阶泄露模型改进二阶功耗分析的方法的一个实施例的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图和实施例对本发明提供的一种密码芯片通过一阶泄露模型改进二阶功耗分析的方法进行更详细地说明。
图1是本发明的密码芯片通过一阶泄露模型改进二阶功耗分析的方法的一个实施例的流程图,如图1所示,该实施例的密码芯片通过一阶泄露模型改进二阶功耗分析的方法包括:
10,采集密码芯片的功耗曲线,并进行对齐处理,利用明文做相关性分析,拟合功耗曲线的系数;
20,获取功耗曲线的相关系数,得到噪声方差,获取噪声生成函数;
30,生成二阶功耗模型的预处理向量,得到二阶功耗模型的三个预处理变量;
40,计算二阶功耗模型的三个预处理变量的相关性系数,比较相关性系数的绝对值大小,选择相关性系数绝对值最大的模型作为二阶预处理的模型,并计算采集所需要的曲线条数。
所述采集密码芯片的功耗曲线,并进行对齐处理,利用明文做相关性分析,拟合功耗曲线的系数包括:
通过示波器采集密码芯片的功耗曲线,其功耗曲线点的值为:
Tij={Tij|1≤i≤n,1≤j≤m},式中n是功耗曲线上的总点数,m是曲线条数,i是标示每条曲线的对应坐标位置,j是标示曲线的序数;
对第j条曲线上的第i个点功耗泄露模型为:Tij=a*H(xj)+b+εij
式中,Tij是特定点的功耗,xj是第j条曲线泄露点中间值,对同一条功耗曲线不同点来说,xj是固定不变的,对不同功耗曲线,xj是变化的,H(xj)是xj的汉明重量,即xj中比特为1的个数,a是汉明重和功耗的线性系数,b是常数,εij为高斯白噪声,平均值为0,对同一条曲线的不同点和不同曲线的同一时刻点,εij都是独立不相关的不同随机变量;
根据功耗点向量Tij(1≤j≤m)和明文向量H(Pj)(1≤j≤m)计算拟合功耗曲线的系数a和b。
所述获取功耗曲线的相关系数,得到噪声方差,获取噪声生成函数包括:
所述功耗曲线的相关系数计算公式为:
Figure BDA0002344164990000081
式中,X和Y是两个变量,E(X)和E(Y)是两个变量的期望,Var[X]是变量X的方差;
在密码芯片存在一阶功耗泄露时,r(Ti,H(x))大于设定的泄露阈值,其中,Ti代表Tij(1≤j≤m),x代表Pj(1≤j≤m),两个变量Ti和H(x)存在相关性:
Figure BDA0002344164990000091
结合功耗泄露模型;
变量的期望为:E(Ti)=a*E(H(x))+b;
变量的方差为:Var(Ti)=Var(a*H(x)+b+ε)=a2Var(H(x))+Var(ε)
功耗曲线的相关系数为:
Figure BDA0002344164990000092
利用功耗曲线点向量Tij(1≤j≤m)、明文向量汉明重H(Pj)和拟合的系数a和b,计算:εij=Tij-a*H(Pj)-b(1≤j≤m),式中,Tij(1≤j≤m)为功耗点向量,H(Pj)(1≤j≤m)为明文向量,a和b为拟合功耗曲线的系数;
计算噪声方差为:Var′(εij)(1≤j≤m)。
根据功耗曲线的相关系数计算公式得到理论方差为:
Figure BDA0002344164990000093
式中corr0为一阶泄露相关性系数,var为攻击模型H(x)的方差,a为拟合功耗曲线的系数;
比较拟合方差和理论方差,确认满足|Var(ε)-Var′(ε)|/Var(ε)≤5%;
则选择期望值为0,方差为Var(ε),作为产生高斯白噪声的噪声生成函数。
所述生成二阶功耗模型的预处理向量,得到二阶功耗模型的三个预处理变量包括:
选取密码芯片的功耗曲线的任意两个时刻点t0和t1,其功耗分别为T(t0)和T(t1),则t0时刻对应的功耗泄露的数据是
Figure BDA0002344164990000101
其中u是中间值,与密码芯片的密钥有关系,M是随机数,t1时刻对应的功耗泄露的数据是M;
Figure BDA0002344164990000102
T(t1)=a*H(M)+b+ε1
式中,a和b为在一阶泄露模型中得到的系数和常数,ε0和ε1是两个时刻点t0和t1对应的随机噪声,ε0和ε1独立不相关的,均值为0,方差为Var(ε)的高斯白噪声;
使用|T(t0)-T(t1)|、[T(t0)-E(T(t0))]*[T(t1)-E(T(t1))]和T(t0)*T(t1)作为预处理的方式,生成二阶功耗模型的预处理向量;
任意选值x、M,x是泄露点中一任意值,M是与x符合相同分布的独立的随机变量,得到二阶功耗模型的三个预处理变量为:
Figure BDA0002344164990000103
Figure BDA0002344164990000104
Figure BDA0002344164990000105
式中,r00,r01,r10,r11,r20和r21为噪声生成函数生成的六个随机数。
所述计算二阶功耗模型的三个预处理变量的相关性系数,比较相关性系数的绝对值大小,选择相关性系数绝对值最大的模型作为二阶预处理的模型,并计算采集所需要的曲线条数包括:
计算采集所需要的曲线条数为:
Figure BDA0002344164990000106
式中,r是相关系数,即上一步仿真中计算得到的最大相关性系数值,α是置信度,z1-α/2是正态分布置信度为α时的区间长度,n是在相关系数为r时为了达到α的置信度所需要的曲线数量。
在一个具体的实施例中,通过一阶泄露模型改进二阶功耗分析的方法如下:在具体的实现过程中,通过matlab进行二阶预处理的仿真计算获得相关性系数,通过比较不同预处理模型的相关性系数大小,进行二阶预处理模型的选择,下述实施例所涉及的输入、输出、调用函数均为在matlab仿真环境下进行:
步骤一:获取拟合参数,我首先对采集的密码芯片功耗曲线进行对齐处理,然后利用明文做相关性分析,选择明文相关性明显高于噪声阈值点,提取出功耗点向量Tkj(1≤j≤m)和明文汉明重点向量H(Pi)(1≤i≤m),利用算法一拟合出功耗曲线的参数a和b。
算法一:一阶拟合算法
输入:曲线上点向量Tkj(1≤j≤m),H(Pi)(1≤i≤m);
输出:系数a和b;
具体实现步骤:
调用matlab的polyfit函数。
步骤二:获取噪声生成函数,利用步骤一中得到的相关系数r0,得到噪声的方差Var(ε);处理功耗曲线点获得εj=Tkj-a*H(Pj)-b(1≤j≤m),使用算法二函数计算Var′(ε)。
算法二:拟合正态分布参数
输入:εj=Tkj-a*H(Pj)-b(1≤j≤m)
输出:Var′(ε)
具体实现步骤:
(一)调用matlab的normfit函数获得Var′(ε)
利用算法二获得Var′(ε),与得到的理论值Var(ε)比较,确认满足仿真条件,如果满足,将期望0,方差Var(ε)作为ε的产生参数,利用算法三产生符合条件的随机数;
算法三:随机数生成方法
输入:Var(ε)
输出:ε
具体实现步骤:调用matlab函数normrnd(0,Var(ε))产生符合条件的随机数
(二)生成二阶的预处理向量。对于仿真来说,x取值范围为0-N,这里,x与采用的攻击分析模型有关,如对DES算法进行攻击,中间值采用的是S盒输出,由于S盒输出是4个比特,x取值范围为0-15。M的取值范围与x的取值范围相同,但M是一个符合均匀分布的随机数;在仿真时,可以分别独立生成x和M;获得x以后,可以得到H(x)的期望,设为c;如x如果取值范围0-15,c等于2。使用算法四生成三个预处理变量T0,T1和T2
算法四:生成二阶预处理变量
输入:x,M,a,b,c,Var(ε)
输出:T0,T1和T2
具体实现步骤:
计算
Figure BDA0002344164990000121
其中H是汉明重函数
调用算法三生成六个随机数r00,r01,r10,r11,r20和r21
Figure BDA0002344164990000122
Figure BDA0002344164990000123
Figure BDA0002344164990000124
步骤三:计算三个参数的相关系数。使用matlab的函数corrcoef计算两个向量的相关性系数,计算相关性系数的算法五定义如下:
算法五:计算相关性系数
输入:向量x,y,两个向量元素个数一样
输出:相关系数corr
具体实现步骤:
使用matlab函数corrcoef计算相关性系数corr=corrcoef(x,y)。
得到三个模型的相关性系数后,比较三个相关性系数的绝对值大小,选择相关性系数绝对值最大的模型作为二阶预处理的模型。同时,根据仿真使用的系数计算采集所需要的曲线条数。
通过算法六,进行整体的仿真。
算法六:根据一阶泄露仿真选择二阶攻击模型和曲线条数;
输入:一阶泄露相关性系数corr0,曲线向量T0,明文数据向量P0,x的位宽w,攻击模型H(x)期望c,方差var;
输出:最优模型,推荐曲线条数n。
具体实现步骤:
①根据输入向量T0和明文数据向量P0调用算法一得到系数a和b;
②利用T0和P0处理得到向量εj=Tkj-a*H(Pj)-b;
③利用算法二得到拟合方差Var′(ε);
④计算得到理论方差
Figure BDA0002344164990000131
⑤比较Var′(ε)和Var(ε),确认满足|Var(ε)-Var′(ε)|/Var(ε)≤5%;
⑥n0=100,k=1∶20;
⑦对1:n0
(1)产生x(i),x(i)符合[0,2w-1]均匀分布。x(i)=unifrnd[0,2w-1];
(2)产生M(i),M(i)=unifrnd[0,2w-1];
(3)利用算法四产生T0(i),T1(i)和T2(i);
⑧利用算法5得到T0,T1,T2和H(x)的相关性系数corr00(k),corr01(k),corr02(k);
⑨n0=n0*2,返回步骤⑦;
⑩k从1到19;
如果abs(corr00(k+1)-corr00(k))/abs(corr00(k))<0.05,且
abs(corr01(k+1)-corr01(k))/abs(corr01(k))<0.05且
abs(corr02(k+1)-corr02(k))/abs(corr02(k))<0.05,n=2k*100;
比较corr00(k),corr01(k)和corr02(k)绝对值,如果corr00(k)最大,输出:绝对值模型,如果corr01(k)最大,输出:协方差模型;如果corr02(k)最大,输出:内积模型。
通过算法六步骤⑩的第一步确定样本量是否足够,如果足够,则三个相关性系数取值比较稳定,因此设置了判据为偏差不超过5%,根据最后的结果,知道用多少条曲线即可以完成二阶的功耗分析。
以上对本发明所提供的一种密码芯片通过一阶泄露模型改进二阶功耗分析的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (1)

1.一种密码芯片通过一阶泄露模型改进二阶功耗分析的方法,其特征在于,包括:
采集密码芯片的功耗曲线,并进行对齐处理,利用明文做相关性分析,拟合功耗曲线的系数;
获取功耗曲线的相关系数,得到噪声方差,获取噪声生成函数;
生成二阶功耗模型的预处理向量,得到二阶功耗模型的三个预处理变量;
计算二阶功耗模型的三个预处理变量的相关性系数,比较相关性系数的绝对值大小,选择相关性系数绝对值最大的模型作为二阶预处理的模型,并计算采集所需要的曲线条数;
所述采集密码芯片的功耗曲线,并进行对齐处理,利用明文做相关性分析,拟合功耗曲线的系数包括:
通过示波器采集密码芯片的功耗曲线,其功耗曲线点的值为:
Tij={Tij|1≤i≤n,1≤j≤m},式中n是功耗曲线上的总点数,m是曲线条数,i是标示每条曲线的对应坐标位置,j是标示曲线的序数;
对第j条曲线上的第i个点功耗泄露模型为:Tij=a*H(xj)+b+εij
式中,Tij为特定点的功耗,xj为第j条曲线泄露点中间值,对同一条功耗曲线不同点,xj是固定不变的,对不同功耗曲线,xj不同,H(xj)为xj的汉明重量,即xj中比特为1的个数,a为一阶泄露模型中得到的拟合功耗曲线的线性系数,b为常数,εij为高斯白噪声,平均值为0,对同一条曲线的不同点和不同曲线的同一时刻点,εij为独立不相关的不同随机变量,根据功耗点向量Tij(1≤j≤m)和明文向量汉明重H(Pj)(1≤j≤m)计算拟合功耗曲线的线性系数a和常数b,Pj为使得相关性系数为最大值的明文向量;
所述获取功耗曲线的相关系数,得到噪声方差,获取噪声生成函数包括:
所述功耗曲线的相关系数计算公式为:
Figure FDA0004184415330000011
式中,X和Y是两个变量,E(X)和E(Y)是两个变量的期望,Var[X]是变量X的方差,Var[Y]是变量Y的方差;
在密码芯片存在一阶功耗泄露时,r(Ti,H(x))大于设定的泄露阈值,其中,Ti代表Tij(1≤j≤m),x代表Pj(1≤j≤m),Pj为使得相关性系数为最大值的明文向量,两个变量Ti和H(x)存在相关性:
Figure FDA0004184415330000021
结合功耗泄露模型;
变量的期望为:E(Ti)=a*E(H(x))+b;
变量的方差为:Var(Ti)=Var(a*H(x)+b+ε)=a2Var(H(x))+Var(ε)
功耗曲线的相关系数为:
Figure FDA0004184415330000022
利用功耗曲线点向量Tij(1≤j≤m)、明文向量汉明重H(Pj)和拟合功耗曲线的线性系数a和常数b,计算:εij=Tij-a*H(Pj)-b(1≤j≤m),式中,Tij(1≤j≤m)为功耗点向量,H(Pj)(1≤j≤m)为明文向量汉明重,Pj为使得相关性系数为最大值的明文向量,H(x)中的x为密码算法中间数据变量;
计算噪声方差为:Var′(εij)(1≤j≤m);
根据功耗曲线的相关系数计算公式得到理论方差为:
Figure FDA0004184415330000031
式中corr0为一阶泄露相关性系数,var为攻击模型H(x)的方差;
比较拟合方差和理论方差,确认满足|Var(ε)-Var′(ε)|/Var(ε)≤5%;
则选择期望值为0,方差为Var(ε),作为产生高斯白噪声的噪声生成函数;
所述生成二阶功耗模型的预处理向量,得到二阶功耗模型的三个预处理变量包括:
选取密码芯片的功耗曲线的任意两个时刻点t0和t1,其功耗分别为T(t0)和T(t1),则t0时刻对应的功耗泄露的数据是
Figure FDA0004184415330000032
其中u是中间值,与密码芯片的密钥有关系,M是随机数,t1时刻对应的功耗泄露的数据是M,
Figure FDA0004184415330000033
为异或运算;
Figure FDA0004184415330000034
T(t1)=a*H(M)+b+ε1
式中,ε0和ε1为两个时刻点t0和t1对应的随机噪声,ε0和ε1独立不相关的,均值为0,方差为Var(ε)的高斯白噪声;
使用|T(t0)-T(t1)|、[T(t0)-E(T(t0))]*[T(t1)-E(T(t1))]和T(t0)*T(t1)作为预处理的方式,生成二阶功耗模型的预处理向量;
任意选值x、M,其中,x是泄露点中一任意值,M是与x符合相同分布的独立的随机变量,c为x的汉明重的数学期望,得到二阶功耗模型的三个预处理变量为:
Figure FDA0004184415330000035
Figure FDA0004184415330000036
Figure FDA0004184415330000037
式中,r00,r01,r10,r11,r20和r21为噪声生成函数生成的六个随机数;
所述计算二阶功耗模型的三个预处理变量的相关性系数,比较相关性系数的绝对值大小,选择相关性系数绝对值最大的模型作为二阶预处理的模型,并计算采集所需要的曲线条数包括:
计算采集所需要的曲线条数为:
Figure FDA0004184415330000041
式中,r为最大相关性系数值,α为置信度,z1-α/2为正态分布置信度为α时的区间长度,N为在相关系数为r时为了达到α的置信度所需要的曲线数量。
CN201911401241.6A 2019-12-30 2019-12-30 密码芯片通过一阶泄露模型改进二阶功耗分析的方法 Active CN111082921B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911401241.6A CN111082921B (zh) 2019-12-30 2019-12-30 密码芯片通过一阶泄露模型改进二阶功耗分析的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911401241.6A CN111082921B (zh) 2019-12-30 2019-12-30 密码芯片通过一阶泄露模型改进二阶功耗分析的方法

Publications (2)

Publication Number Publication Date
CN111082921A CN111082921A (zh) 2020-04-28
CN111082921B true CN111082921B (zh) 2023-06-02

Family

ID=70320154

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911401241.6A Active CN111082921B (zh) 2019-12-30 2019-12-30 密码芯片通过一阶泄露模型改进二阶功耗分析的方法

Country Status (1)

Country Link
CN (1) CN111082921B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113960455A (zh) * 2021-12-03 2022-01-21 南方电网科学研究院有限责任公司 密码芯片中关键模块的定位方法、装置、设备和存储介质
CN115270204B (zh) * 2022-09-28 2023-03-07 南方电网数字电网研究院有限公司 芯片电路信息泄露的检测方法、系统、存储介质及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034525A (zh) * 2012-12-07 2013-04-10 湖南工程学院 云计算环境中一种基于性能计数器的虚拟机功耗测量方法
CN105553638A (zh) * 2015-12-07 2016-05-04 成都芯安尤里卡信息科技有限公司 针对sm4一阶掩码算法的二阶频域能量分析攻击
CN107508678A (zh) * 2017-10-13 2017-12-22 成都信息工程大学 基于机器学习的rsa掩码防御算法的侧信道攻击方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10628592B2 (en) * 2014-11-25 2020-04-21 Institut Mines-Telecom Methods for recovering secret data of a cryptographic device and for evaluating the security of such a device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034525A (zh) * 2012-12-07 2013-04-10 湖南工程学院 云计算环境中一种基于性能计数器的虚拟机功耗测量方法
CN105553638A (zh) * 2015-12-07 2016-05-04 成都芯安尤里卡信息科技有限公司 针对sm4一阶掩码算法的二阶频域能量分析攻击
CN107508678A (zh) * 2017-10-13 2017-12-22 成都信息工程大学 基于机器学习的rsa掩码防御算法的侧信道攻击方法

Also Published As

Publication number Publication date
CN111082921A (zh) 2020-04-28

Similar Documents

Publication Publication Date Title
Nikova et al. Threshold implementations against side-channel attacks and glitches
Prouff et al. Statistical analysis of second order differential power analysis
Ors et al. Power-analysis attack on an ASIC AES implementation
CN103457719B (zh) 一种对sm3密码算法hmac模式的侧信道能量分析方法
CN108604981B (zh) 用于估计秘密值的方法和设备
Martinasek et al. Profiling power analysis attack based on MLP in DPA contest V4. 2
US7292060B2 (en) Logic circuit and method thereof
CN112787971B (zh) 侧信道攻击模型的构建方法、密码攻击设备及计算机存储介质
CN111082921B (zh) 密码芯片通过一阶泄露模型改进二阶功耗分析的方法
CN106453276B (zh) 一种基于单服务器的安全复合模指数外包计算方法
Duan et al. Differential power analysis attack and efficient countermeasures on PRESENT
CN111934852A (zh) 一种基于神经网络的aes密码芯片电磁攻击方法及系统
CN104811295A (zh) 一种对具备掩码防护的祖冲之密码算法进行侧信道能量分析方法
Cai et al. An energy trace compression method for differential power analysis attack
Ouladj et al. Side-channel analysis of embedded systems
Hanley et al. Unknown plaintext template attacks
Aydin et al. Exposing side-channel leakage of seal homomorphic encryption library
CN105897401B (zh) 基于比特的通用差分功耗分析方法及系统
Zhang On the exact relationship between the success rate of template attack and different parameters
Saeedi et al. Side-channel information characterisation based on cascade-forward back-propagation neural network
Ming et al. Revealing the weakness of addition chain based masked SBox implementations
Tran et al. Transition factors of power consumption models for CPA attacks on cryptographic RISC-V SoC
Mahanta et al. Using genetic algorithm in inner product to resist modular exponentiation from higher order DPA attacks
Chen et al. Normalized Differential Power Analysis-for Ghost Peaks Mitigation
Jia et al. A unified method based on SPA and timing attacks on the improved RSA

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant