CN112966290A - 侧信道能量分析方法、装置、存储介质及电子设备 - Google Patents

侧信道能量分析方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN112966290A
CN112966290A CN202110356614.3A CN202110356614A CN112966290A CN 112966290 A CN112966290 A CN 112966290A CN 202110356614 A CN202110356614 A CN 202110356614A CN 112966290 A CN112966290 A CN 112966290A
Authority
CN
China
Prior art keywords
key
value
energy
kini
index
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.)
Pending
Application number
CN202110356614.3A
Other languages
English (en)
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN202110356614.3A priority Critical patent/CN112966290A/zh
Publication of CN112966290A publication Critical patent/CN112966290A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种侧信道能量方法、装置、存储介质及电子设备,涉及信息安全技术领域,所述方法包括:对随机选取的多条明文分别进行预设加密操作;采集加密操作过程中产生的加密能量迹;循环执行以下步骤,以获取加密操作的整体密钥:生成整体密钥中某个字节的多个密钥假设值;选取每条加密能量迹的某个采样点对应的部分能量迹,获得该采样点的能量迹集合;基于多个密钥假设值和该采样点的能量迹集合,计算出与每个密钥假设值对应的基尼不纯度指数;基于基尼不纯度指数,确定整体密钥中某个字节的密钥值。本发明提供的技术方案,能够减少对攻击设备、能量模型的依赖,具有较高的普适性和较小的计算开销。

Description

侧信道能量分析方法、装置、存储介质及电子设备
技术领域
本发明涉及信息安全技术领域,特别地涉及一种侧信道能量分析方法、装置、存储介质及电子设备。
背景技术
现代密码学算法为信息化时代的信息安全提供了重要保障。密码学算法通过精心的设计和广泛严谨的论证,理论上的安全性有充分的保障。然而信息化社会,密码算法需要在各样的设备中通过物理实现方可发挥其作用。专用密码芯片以及单片设备为密码算法的实现提供了主要的载体。密码算法的实现方案决定着实现的安全性。
自从1996年能量分析技术被首次提出和应用,侧信道能量攻击技术便开始受到了越来越多的研究。该技术通过对密码设备工作时产生的能量信息分析处理,从而获取密码算法的秘密信息。目前已有的简单能量攻击、差分能量攻击、相关能量攻击、模板攻击等能量分析技术均已展现出了较强的攻击能力,但均有着一定的局限性,比如对攻击者要求较高,需要掌握与攻击设备类似的设备并需要较好的能量模型、对能量模型与真实能量泄漏之间的关系有相应的要求、信息利用不充分等,这些问题限制了能量分析技术的运用。
发明内容
针对上述现有技术中的问题,本申请提出了一种侧信道能量分析方法、装置、存储介质及电子设备,能够减少对攻击设备、能量模型的依赖,具有较高的普适性和较小的计算开销。
为达到上述目的,本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种侧信道能量分析方法,所述方法包括:
对随机选取的多条明文分别进行预设加密操作;
采集所述加密操作过程中产生的与每条所述明文对应的加密能量迹;其中,每条所述加密能量迹具有T个采样点;
循环执行以下步骤,直至获取所述加密操作的整体密钥,其中,所述整体密钥具有a个字节:
生成所述整体密钥中第f个字节的多个密钥假设值;其中,1≤f≤a;
选取每条所述加密能量迹的第o个采样点对应的部分能量迹,获得第o个采样点的能量迹集合;其中,1≤o≤T;
基于所述多个密钥假设值和所述第o个采样点的能量迹集合,计算出与每个所述密钥假设值对应的基尼不纯度指数;
基于所述基尼不纯度指数,从所述多个密钥假设值中选取一个密钥假设值作为所述整体密钥中第f个字节的密钥值。
优选地,所述基于所述多个密钥假设值和所述第o个采样点的能量迹集合,计算出与每个所述密钥假设值对应的基尼不纯度指数,包括:
采用无监督聚类算法将所述第o个采样点的能量迹集合聚类成X个类型;其中,X预先设定;
对于每个所述密钥假设值,执行以下步骤:
基于该密钥假设值和获取的明文值集合,将所述X个类型中的所述第o个采样点的能量迹集合划分成V个子集;其中,X=V;
基于所述V个子集和所述X个类型,计算与该密钥假设值对应的基尼不纯度指数。
优选地,所述基于该密钥假设值和获取的明文值集合,将所述X个类型中的所述第o个采样点的能量迹集合划分成V个子集,包括:
基于该密钥假设值在所述整体密钥中所处的字节位置,选取每条所述明文中与所述字节位置对应位置处的部分明文,获得所述明文值集合;
基于该密钥假设值和所述明文值集合,获得目标函数的输出值;其中,所述目标函数为预先设置的非单射函数;
基于所述目标函数的输出值,将所述X个类型中的所述第o个采样点的能量迹集合划分成V个子集。
优选地,当所述加密操作采用分组密码算法加密时,所述目标函数为S盒的输出。
优选地,所述基于所述V个子集和所述X个类型,计算与该密钥假设值对应的基尼不纯度指数,包括:
基于每个所述子集中能量迹来自每个所述类型的概率,计算每个所述子集的基尼值;
基于每个所述子集的基尼值,计算与该密钥假设值对应的基尼不纯度指数。
优选地,采用以下表达式计算每个所述子集的基尼值:
Figure BDA0003003533020000031
Figure BDA0003003533020000032
其中,Di为所述V个子集中的第i个子集;Gini(Di)为所述第i个子集的基尼值;m为所述X个类型的类型序号;Type m为所述X个类型中第m个类型的能量迹集合;pm为所述第i个子集中的能量迹来自于Type m的概率;D(o)为所述第o个采样点的能量迹集合;N为所述明文的数量;
采用以下表达式计算与该密钥假设值对应的基尼不纯度指数:
Figure BDA0003003533020000033
其中,Gini_index(D(o),kj)为与密钥假设值kj对应的基尼不纯度指数;j为所述多个密钥假设值的序号;|Di|为所述第i个子集中能量迹的数量;|D(o)|为D(o)中能量迹采样点的数量。
优选地,所述基于所述基尼不纯度指数,从所述多个密钥假设值中选取一个密钥假设值作为所述整体密钥中第f个字节的密钥值,包括:
采用以下表达式从所述多个密钥假设值中选取一个密钥假设值作为所述整体密钥中第f个字节的密钥值:
Figure BDA0003003533020000034
其中,kf *为所述第f个字节的密钥值;kj,o表示在密钥假设值kj和第o个采样点下获取所述基尼不纯度指数。
第二方面,本发明实施例提供了一种侧信道能量分析装置,所述装置包括:
加密单元,用于对随机选取的多条明文分别进行预设加密操作;
采集单元,用于采集所述加密操作过程中产生的与每条所述明文对应的加密能量迹;其中,每条所述加密能量迹具有T个采样点;
密钥获取单元,用于循环执行以下步骤,直至获取所述加密操作的整体密钥,
其中,所述整体密钥具有a个字节:
生成所述整体密钥中第f个字节的多个密钥假设值;其中,1≤f≤a;
选取每条所述加密能量迹的第o个采样点对应的部分能量迹,获得第o个采样点的能量迹集合;其中,1≤o≤T;
基于所述多个密钥假设值和所述第o个采样点的能量迹集合,计算出与每个所述密钥假设值对应的基尼不纯度指数;
基于所述基尼不纯度指数,从所述多个密钥假设值中选取一个密钥假设值作为所述整体密钥中第f个字节的密钥值。
第三方面,本发明实施例提供了一种存储介质,所述存储介质上存储有程序代码,所述程序代码被处理器执行时,实现如上述实施例中任一项所述的侧信道能量分析方法。
第四方面,本发明实施例提供了一种电子设备,所述电子设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的程序代码,所述程序代码被所述处理器执行时,实现如上述实施例中任一项所述的侧信道能量分析方法。
本发明实施例提供的一种侧信道能量分析方法、装置、存储介质及电子设备,对随机选取的多条明文分别进行预设加密操作,并采集所述加密操作过程中产生的与每条明文对应的加密能量迹;基于多个密钥假设值和每条加密能量迹中第o个采样点的能量迹集合,计算出与每个密钥假设值对应的基尼不纯度指数,基于该基尼不纯度指数,从多个密钥假设值中选取一个密钥假设值作为所述加密操作的整体密钥中某个字节的密钥值。可见,本发明将决策分类中的基尼不纯度指数引入到了侧信道能量分析中,基于基尼不纯度指数来选取合适的密钥假设值,与现有技术相比,本发明只需获取加密能量迹,对攻击者没有严格的限制和要求,即能够减少对攻击设备、能量模型的依赖,从而具有较高的普适性和较小的计算开销。实践表明,本发明在任何简单或复杂能量泄露情形下,在不同的假设泄露模型下,均有着较好的攻击效果。
附图说明
通过结合附图阅读下文示例性实施例的详细描述可更好地理解本发明公开的范围。其中所包括的附图是:
图1为本发明实施例的方法流程图;
图2为本发明实施例中某一密钥假设值及某一采样点下的基尼不纯度指数的计算流程示意图;
图3为本发明实施例的装置结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,以下将结合附图及实施例来详细说明本发明的实施方法,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
实施例一
根据本发明的实施例,提供了一种侧信道能量分析方法,本方法是一种基于基尼不纯度指数区分器的新型侧信道能量分析技术——基尼不纯度指数分析。表1中所示的算法1展示了该基尼不纯度指数分析算法的整个流程,一般来说侧信道分析技术均会采取分而治之的策略来降低计算复杂度,即每次攻击仅获取部分密钥值,反复多次获取全部密钥值,因此算法1每次的输出结果也是部分密钥值,比如1个字节的密钥值。
表1
Figure BDA0003003533020000051
Figure BDA0003003533020000061
上述表1中,算法的第1步是随机选择N条明文({Pn|n=1,2,3,…,N}用来表示N条随机明文的集合),N的取值可以根据实际情况选择。
算法的第2步是对N条随机明文执行N次加密操作,通过示波器等设备可以获取N条加密能量迹,且根据设定的采样频率,每条加密能量迹将包含T个采样点(
Figure BDA0003003533020000062
用来表示N条加密能量迹的集合,其中o(1≤o≤T)表示第o个采样点,n(1≤n≤N)表示第n条加密能量迹)。
算法的第3步是产生多个密钥假设值,用k={k1,k2,k3,…,kM}表示,其中M表示该向量空间的大小,若选取的部分密钥值为1个字节,则M=28=256,共有256个假设密钥值。
算法的第4步是根据选择的部分攻击密钥值的所处字节位置,选取对应字节位置处的部分明文值,例如,如果选择的部分攻击密钥值为整体密钥的第f个字节,那么对应的部分明文值也应该为全部随机明文的第f个字节的值。即p={p1,p2,p3,…,pN},其中,pn是Pn(1≤n≤N)的部分值,当选取的密钥为1个字节时,则pn表示1个字节的值。
算法的第5步是根据上述不同的部分明文值和密钥假设值计算目标函数
Figure BDA0003003533020000065
的中间值
Figure BDA0003003533020000063
对于分组密码算法来说,一般选取S盒的输出作为其目标函数。其中,目标函数为攻击的密码算法中的任意函数,由攻击者决定。目标函数的中间值表示为根据不同的明文和密钥,该目标函数的输出值。
算法的第6步是基尼不纯度指数区分器,用来计算不同密钥假设值下不同能量迹采样点所对应的的基尼不纯度指数值。这也是该算法的核心步骤。最终的输出将根据不同的密钥假设值和能量迹采样点计算出的基尼不纯度指数,选择出最具可能性的正确的密钥假设值,即
Figure BDA0003003533020000064
基于上述算法,如图1和表1所示,本实施例所述的方法包括:
步骤S101,对随机选取的多条明文分别进行预设加密操作;
本实施例中,所述多条明文随机选取,例如,随机选取N条明文,{Pn|n=1,2,3,…,N}用于表示N条随机明文的集合,如表1中的算法第1步所示,其中,N的取值可以根据实际情况选择。
如表1中的算法第2步所示,对上述N条随机明文分别执行N次预设加密操作,所述预设加密操作是指,采用预设密钥和预设加密算法来执行加密操作。在加密操作执行的过程中,会产生相应的加密能量,因此,可通过采集该加密能量来分析加密操作的信息,例如,加密操作所使用的密钥等信息。
步骤S102,采集所述加密操作过程中产生的与每条所述明文对应的加密能量迹;其中,每条所述加密能量迹具有T个采样点;
本实施例中,可通过示波器等设备来采集步骤S101中所述的加密能量,该加密能量反映到示波器中,即为N条加密能量迹,每条所述加密能量迹对应一条明文。根据示波器实际设定的采样频率,每条加密能量迹具有T个采样点。
如表1中的算法第2步所示,
Figure BDA0003003533020000071
用来表示上述N条加密能量迹的集合,其中o(1≤o≤T)表示第o个采样点,n(1≤n≤N)表示第n条能量迹。
步骤S103,循环执行步骤S1031~步骤S1034,直至获取所述加密操作的整体密钥,其中,所述整体密钥具有a个字节:
步骤S1031,生成所述整体密钥中第f个字节的多个密钥假设值;其中,1≤f≤a;
本实施例中,每次攻击仅获取1字节的密钥值,因此,每次只针对1字节的密钥值生成该字节所有可能的密钥假设值,即本实施例采用穷举的方式生成某个字节的所有可能的密钥假设值。
例如,针对所述整体密钥中第f个字节,由于1个字节是8bit,因此穷举生成的密钥假设值包括:0、1、2、……、255,一共有256个密钥假设值。
如表1中的算法第3步所示,生成的某个字节的多个密钥假设值可以用向量k={k1,k2,k3,…,kM}来表示,其中,M表示该向量空间的大小。在本实施中,M=28=256,k={0,1,2,…,255}。
步骤S1032,选取每条所述加密能量迹的第o个采样点对应的部分能量迹,获得第o个采样点的能量迹集合;其中,1≤o≤T;
本实施例中,基于实际设定的采样频率,在每条加密能量迹的相同的采样点处选取对应的部分能量迹,能够获得该采样点处的能量迹集合,如图2所示。第o个采样点的能量迹集合用D(o)或
Figure BDA0003003533020000081
表示。
即,选取N条能量迹
Figure BDA0003003533020000082
中的任意第o个采样点,得到第o个采样点的能量迹集合D(o)。
步骤S1033,基于所述多个密钥假设值和所述第o个采样点的能量迹集合,计算出与每个所述密钥假设值对应的基尼不纯度指数;
本实施例中,所述基于所述多个密钥假设值和所述第o个采样点的能量迹集合,计算出与每个所述密钥假设值对应的基尼不纯度指数,包括:
步骤一,采用无监督聚类算法将所述第o个采样点的能量迹集合聚类成X个类型;其中,X预先设定;
具体地,如图2所示,使用无监督聚类k-means方法将第o个采样点的能量迹集合D(o)聚类成X个类型(Type 1-Type X),其中,X由攻击者预先自行设定。本实施例中,X的值与上述算法第5步中所述的目标函数中间值(即目标函数的输出值)的取值数V相等。该目标函数中间值的取值数V由加密算法决定,若选择的目标函数的输出为1个字节,即256个可能的值,则V=256。通过这一步,集合D(o)中的N个值,被聚类成了X个类型,不同的类型可以由不同颜色的实心圆表示。
步骤二,对于每个所述密钥假设值,执行以下步骤:
基于该密钥假设值和获取的明文值集合,将所述X个类型中的所述第o个采样点的能量迹集合划分成V个子集;其中,X=V;基于所述V个子集和所述X个类型,计算与该密钥假设值对应的基尼不纯度指数。
本实施例中,上述基于该密钥假设值和获取的明文值集合,将所述X个类型中的所述第o个采样点的能量迹集合划分成V个子集,包括:
基于该密钥假设值在所述整体密钥中所处的字节位置,选取每条所述明文中与所述字节位置对应位置处的部分明文,获得所述明文值集合;基于该密钥假设值和所述明文值集合,获得目标函数的输出值;其中,所述目标函数为预先设置的非单射函数;基于所述目标函数的输出值,将所述X个类型中的所述第o个采样点的能量迹集合划分成V个子集。其中,当所述加密操作采用分组密码算法加密时,所述目标函数为S盒的输出。
具体地,如表1中的算法第4步所示,基于当前密钥假设值在加密操作所采用的整体密钥中所处的字节位置,选取每条明文中与上述字节位置对应位置处的部分明文。即,如果当前密钥假设值为整体密钥的第f个字节,那么对应的部分明文也应该为每条随机明文的第f个字节的值,通过选取获得的明文值集合可以用p={p1,p2,p3,…,pN}来表示,其中,N为随机明文的数量。
基于当前密钥假设值kj与上述明文值p={p1,p2,p3,…,pN},采用选定的加密算法,可以获得目标函数输出值vi,j(1≤i≤N),如表1中的算法第5步所示。基于该目标函数输出值vi,j,可以将第o个采样点的能量迹集合D(o)划分成V个子集。例如,将目标函数输出值vi,j等于0的划分为一类,vi,j等于1的划分为一类,vi,j等于2的划分为一类,以此类推。
这里的V表示目标函数中间值的取值数,即上述划分的子集的个数,且X=V。如图2所示,图中第三步每一个圆圈表示一个子集Dg(1≤g≤V),每个子集中包含的能量迹采样点,来自于第二步不同的聚类类型。一般来说,若当前密钥假设值为正确的密钥值,则每个子集Dg中的能量迹样本更多地来自同一个聚类类型中;反之,每一个子集中的样本类型则更为混乱。
最后根据子集划分和聚类类型,计算出在当前密钥假设、当前采样点下对应的基尼不纯度指数值Gini_Index(D(o),kj)。遍历所有的密钥假设值kj与采样点o后,根据准则
Figure BDA0003003533020000091
得到正确的密钥假设值。
具体地,上述基于所述V个子集和所述X个类型,计算与该密钥假设值对应的基尼不纯度指数,包括:
基于每个所述子集中能量迹来自每个所述类型的概率,计算每个所述子集的基尼值;基于每个所述子集的基尼值,计算与该密钥假设值对应的基尼不纯度指数。
本实施例中,采用以下表达式计算每个所述子集的基尼值:
Figure BDA0003003533020000092
Figure BDA0003003533020000093
其中,Di为所述V个子集中的第i个子集;Gini(Di)为所述第i个子集的基尼值;m为所述X个类型的类型序号;Type m为所述X个类型中第m个类型的能量迹集合;pm为所述第i个子集中的能量迹来自于Type m的概率;D(o)为所述第o个采样点的能量迹集合;N为所述明文的数量。
本实施例中,采用以下表达式计算与该密钥假设值对应的基尼不纯度指数:
Figure BDA0003003533020000101
其中,Gini_index(D(o),kj)为与密钥假设值kj对应的基尼不纯度指数;j为所述多个密钥假设值的序号;|Di|为所述第i个子集中能量迹的数量;|D(o)|为D(o)中能量迹采样点的数量。
步骤S1034,基于所述基尼不纯度指数,从所述多个密钥假设值中选取一个密钥假设值作为所述整体密钥中第f个字节的密钥值。
本实施例中,采用以下表达式从所述多个密钥假设值中选取一个密钥假设值作为所述整体密钥中第f个字节的密钥值:
Figure BDA0003003533020000102
其中,kf *为所述第f个字节的密钥值;kj,o表示在密钥假设值kj和第o个采样点下获取所述基尼不纯度指数。
需要说明的是,上述计算过程中的kj和D(o)是一定的,即当前选取的某一个密钥假设值和当前选取的某一个采样点下的能量迹集合。计算过程中需遍历所有的密钥假设值和所有的采样点,获得所有的基尼不纯度指数,再从所有的基尼不纯度指数中找到最小的基尼不纯度指数,该最小的基尼不纯度指数对应的密钥假设值即为该字节上正确的密钥假设值。
需要说明的是,经过上述步骤S1031~步骤S1034,获得的只是加密操作所采用的密钥的一部分,即一个字节的密钥值。循环执行上述步骤,才能获得加密操作的整体密钥。
以下详细说明采用基尼不纯度指数来获得密钥值的计算原理:
首先给出基尼值及基尼不纯度指数的定义与公式。某一数据集D的基尼值反映了从数据集D中随机选择两个样本,这两个样本来自不同类别的概率,即:
Figure BDA0003003533020000103
其中,n表示数据集D中样本的类别数,pi表示类别为i的样本在数据集D中出现的概率。可以看出,数据集D的基尼值越小,数据集D中样本的纯度就高。
基尼不纯度指数用于判别分类的质量。对于一个数据集D,若使用某一属性k对其进行划分,并可以得到数据集D在属性k下的基尼不纯度指数:
Figure BDA0003003533020000111
其中,Dv表示根据属性k将数据集D划分后的某一个子集,V表示被划分的子集总个数,|Dv|和|D|分别表示数据子集及数据集中的样本总数。考虑到不同的子集中的样本数不同,每一个子集的基尼值都被赋予了一个权重
Figure BDA0003003533020000112
这就意味着拥有样本数更多的数据子集对划分效果的影响更大。能够产生最小基尼不纯度指数的属性,是数据集D的最优划分属性,即:
Figure BDA0003003533020000113
如图2所示,每一个子集中均有来自不同类型的样本,若想求得最终的基尼不纯度指数值,需要先计算每一个子集Di(1≤i≤V)的基尼值,即:
Figure BDA0003003533020000114
其中,pm表示子集Di中的样本来自于类型Typem的概率。pm的值可以估计为:
Figure BDA0003003533020000115
其中,
Figure BDA0003003533020000116
也可以用D(o)来表示。计算所有子集的基尼值后,便可以得到某一特定密钥假设及能量迹采样点下的基尼不纯度指数:
Figure BDA0003003533020000117
最小的基尼不纯度指数,对应了最优的划分属性,也可以转变为最大的1-Gini_index,其对应了最优的划分属性,即:
Figure BDA0003003533020000118
Figure BDA0003003533020000119
由此便可以的得到最优的密钥假设值及最优的采样点位置。
需要明确的是,本实施例中目标函数的选择必须为一个非单射函数,否则所有的密钥假设值都会产生相同的划分结果,即产生相同的基尼不纯度指数值。
本发明实施例提供的一种侧信道能量分析方法,对随机选取的多条明文分别进行预设加密操作,并采集所述加密操作过程中产生的与每条明文对应的加密能量迹;基于多个密钥假设值和每条加密能量迹中第o个采样点的能量迹集合,计算出与每个密钥假设值对应的基尼不纯度指数,基于该基尼不纯度指数,从多个密钥假设值中选取一个密钥假设值作为所述加密操作的整体密钥中某个字节的密钥值。可见,本发明将决策分类中的基尼不纯度指数引入到了侧信道能量分析中,基于基尼不纯度指数来选取合适的密钥假设值,与现有技术相比,本发明只需获取加密能量迹,对攻击者没有严格的限制和要求,即能够减少对攻击设备、能量模型的依赖,使攻击者无需掌握与被攻击设备类似的设备且无需对功耗泄露模型有完美的估计和要求。本方法在增加侧信道能量分析普适性的同时,产生了更小的额外计算开销。
此外,本实施例将无监督学习方法引入侧信道能量分析技术中,可以更加充分地利用能量信息。实践表明,本发明在任何简单或复杂能量泄露情形下,在不同的假设泄露模型下,均有着较好的攻击效果。
实施例二
与上述方法实施例相对应地,本发明还提供一种侧信道能量分析装置,如图3所示,所述装置包括:
加密单元201,用于对随机选取的多条明文分别进行预设加密操作;
采集单元202,用于采集所述加密操作过程中产生的与每条所述明文对应的加密能量迹;其中,每条所述加密能量迹具有T个采样点;
密钥获取单元203,用于循环执行以下步骤,直至获取所述加密操作的整体密钥,其中,所述整体密钥具有a个字节:
生成所述整体密钥中第f个字节的多个密钥假设值;其中,1≤f≤a;
选取每条所述加密能量迹的第o个采样点对应的部分能量迹,获得第o个采样点的能量迹集合;其中,1≤o≤T;
基于所述多个密钥假设值和所述第o个采样点的能量迹集合,计算出与每个所述密钥假设值对应的基尼不纯度指数;
基于所述基尼不纯度指数,从所述多个密钥假设值中选取一个密钥假设值作为所述整体密钥中第f个字节的密钥值。
本实施例中,所述基于所述多个密钥假设值和所述第o个采样点的能量迹集合,计算出与每个所述密钥假设值对应的基尼不纯度指数,包括:
采用无监督聚类算法将所述第o个采样点的能量迹集合聚类成X个类型;其中,X预先设定;
对于每个所述密钥假设值,执行以下步骤:
基于该密钥假设值和获取的明文值集合,将所述X个类型中的所述第o个采样点的能量迹集合划分成V个子集;其中,X=V;
基于所述V个子集和所述X个类型,计算与该密钥假设值对应的基尼不纯度指数。
本实施例中,所述基于该密钥假设值和获取的明文值集合,将所述X个类型中的所述第o个采样点的能量迹集合划分成V个子集,包括:
基于该密钥假设值在所述整体密钥中所处的字节位置,选取每条所述明文中与所述字节位置对应位置处的部分明文,获得所述明文值集合;
基于该密钥假设值和所述明文值集合,获得目标函数的输出值;其中,所述目标函数为预先设置的非单射函数;
基于所述目标函数的输出值,将所述X个类型中的所述第o个采样点的能量迹集合划分成V个子集。
本实施例中,当所述加密操作采用分组密码算法加密时,所述目标函数为S盒的输出。
本实施例中,所述基于所述V个子集和所述X个类型,计算与该密钥假设值对应的基尼不纯度指数,包括:
基于每个所述子集中能量迹来自每个所述类型的概率,计算每个所述子集的基尼值;
基于每个所述子集的基尼值,计算与该密钥假设值对应的基尼不纯度指数。
本实施例中,采用以下表达式计算每个所述子集的基尼值:
Figure BDA0003003533020000131
Figure BDA0003003533020000132
其中,Di为所述V个子集中的第i个子集;Gini(Di)为所述第i个子集的基尼值;m为所述X个类型的类型序号;Type m为所述X个类型中第m个类型的能量迹集合;pm为所述第i个子集中的能量迹来自于Type m的概率;D(o)为所述第o个采样点的能量迹集合;N为所述明文的数量;
本实施例中,采用以下表达式计算与该密钥假设值对应的基尼不纯度指数:
Figure BDA0003003533020000141
其中,Gini_index(D(o),kj)为与密钥假设值kj对应的基尼不纯度指数;j为所述多个密钥假设值的序号;|Di|为所述第i个子集中能量迹的数量;|D(o)|为D(o)中能量迹采样点的数量。
本实施例中,所述基于所述基尼不纯度指数,从所述多个密钥假设值中选取一个密钥假设值作为所述整体密钥中第f个字节的密钥值,包括:
采用以下表达式从所述多个密钥假设值中选取一个密钥假设值作为所述整体密钥中第f个字节的密钥值:
Figure BDA0003003533020000142
其中,kf *为所述第f个字节的密钥值;kj,o表示在密钥假设值kj和第o个采样点下获取所述基尼不纯度指数。
上述装置的工作原理、工作流程等涉及具体实施方式的内容可参见本发明所提供的侧信道能量分析方法的具体实施方式,此处不再对相同的技术内容进行详细描述。
实施例三
根据本发明的实施例,还提供了一种存储介质,所述存储介质上存储有程序代码,所述程序代码被处理器执行时,实现如上述实施例任一项所述的侧信道能量分析方法。
该方法的具体内容可参见本发明所提供的侧信道能量分析方法的具体实施方式,此处不再对相同的技术内容进行详细描述。
实施例四
根据本发明的实施例,还提供了一种电子设备,所述电子设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的程序代码,所述程序代码被所述处理器执行时,实现如上述实施例任一项所述的侧信道能量分析方法。
该方法的具体内容可参见本发明所提供的侧信道能量分析方法的具体实施方式,此处不再对相同的技术内容进行详细描述。
本发明实施例提供的一种侧信道能量分析方法、装置、存储介质及电子设备,对随机选取的多条明文分别进行预设加密操作,并采集所述加密操作过程中产生的与每条明文对应的加密能量迹;基于多个密钥假设值和每条加密能量迹中第o个采样点的能量迹集合,计算出与每个密钥假设值对应的基尼不纯度指数,基于该基尼不纯度指数,从多个密钥假设值中选取一个密钥假设值作为所述加密操作的整体密钥中某个字节的密钥值。可见,本发明将决策分类中的基尼不纯度指数引入到了侧信道能量分析中,基于基尼不纯度指数来选取合适的密钥假设值,与现有技术相比,本发明只需获取加密能量迹,对攻击者没有严格的限制和要求,即能够减少对攻击设备、能量模型的依赖,从而具有较高的普适性和较小的计算开销。实践表明,本发明在任何简单或复杂能量泄露情形下,在不同的假设泄露模型下,均有着较好的攻击效果。
本发明实施例可用于分析和评估密码算法实现的安全性。基尼不纯度指数在现有技术中被用于决策树分类中,用于判别分类的质量。本发明首次将决策分类中的基尼不纯度指数用于侧信道能量分析中,将基尼不纯度指数作为能量分析的区分器。且本发明所提供的技术方案,能够充分利用可得到的能量信息(即能量迹),提升侧信道能量分析中的信息利用程度,同时对攻击者没有严格的限制和要求。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (10)

1.一种侧信道能量分析方法,其特征在于,所述方法包括:
对随机选取的多条明文分别进行预设加密操作;
采集所述加密操作过程中产生的与每条所述明文对应的加密能量迹;其中,每条所述加密能量迹具有T个采样点;
循环执行以下步骤,直至获取所述加密操作的整体密钥,其中,所述整体密钥具有a个字节:
生成所述整体密钥中第f个字节的多个密钥假设值;其中,1≤f≤a;
选取每条所述加密能量迹的第o个采样点对应的部分能量迹,获得第o个采样点的能量迹集合;其中,1≤o≤T;
基于所述多个密钥假设值和所述第o个采样点的能量迹集合,计算出与每个所述密钥假设值对应的基尼不纯度指数;
基于所述基尼不纯度指数,从所述多个密钥假设值中选取一个密钥假设值作为所述整体密钥中第f个字节的密钥值。
2.根据权利要求1所述的侧信道能量分析方法,其特征在于,所述基于所述多个密钥假设值和所述第o个采样点的能量迹集合,计算出与每个所述密钥假设值对应的基尼不纯度指数,包括:
采用无监督聚类算法将所述第o个采样点的能量迹集合聚类成X个类型;其中,X预先设定;
对于每个所述密钥假设值,执行以下步骤:
基于该密钥假设值和获取的明文值集合,将所述X个类型中的所述第o个采样点的能量迹集合划分成V个子集;其中,X=V;
基于所述V个子集和所述X个类型,计算与该密钥假设值对应的基尼不纯度指数。
3.根据权利要求2所述的侧信道能量分析方法,其特征在于,所述基于该密钥假设值和获取的明文值集合,将所述X个类型中的所述第o个采样点的能量迹集合划分成V个子集,包括:
基于该密钥假设值在所述整体密钥中所处的字节位置,选取每条所述明文中与所述字节位置对应位置处的部分明文,获得所述明文值集合;
基于该密钥假设值和所述明文值集合,获得目标函数的输出值;其中,所述目标函数为预先设置的非单射函数;
基于所述目标函数的输出值,将所述X个类型中的所述第o个采样点的能量迹集合划分成V个子集。
4.根据权利要求3所述的侧信道能量分析方法,其特征在于,当所述加密操作采用分组密码算法加密时,所述目标函数为S盒的输出。
5.根据权利要求2所述的侧信道能量分析方法,其特征在于,所述基于所述V个子集和所述X个类型,计算与该密钥假设值对应的基尼不纯度指数,包括:
基于每个所述子集中能量迹来自每个所述类型的概率,计算每个所述子集的基尼值;
基于每个所述子集的基尼值,计算与该密钥假设值对应的基尼不纯度指数。
6.根据权利要求5所述的侧信道能量分析方法,其特征在于,采用以下表达式计算每个所述子集的基尼值:
Figure FDA0003003533010000021
Figure FDA0003003533010000022
其中,Di为所述V个子集中的第i个子集;Gini(Di)为所述第i个子集的基尼值;m为所述X个类型的类型序号;Type m为所述X个类型中第m个类型的能量迹集合;pm为所述第i个子集中的能量迹来自于Type m的概率;D(o)为所述第o个采样点的能量迹集合;N为所述明文的数量;
采用以下表达式计算与该密钥假设值对应的基尼不纯度指数:
Figure FDA0003003533010000023
其中,Gini_index(D(o),kj)为与密钥假设值kj对应的基尼不纯度指数;j为所述多个密钥假设值的序号;|Di|为所述第i个子集中能量迹的数量;|D(o)|为D(o)中能量迹采样点的数量。
7.根据权利要求6所述的侧信道能量分析方法,其特征在于,所述基于所述基尼不纯度指数,从所述多个密钥假设值中选取一个密钥假设值作为所述整体密钥中第f个字节的密钥值,包括:
采用以下表达式从所述多个密钥假设值中选取一个密钥假设值作为所述整体密钥中第f个字节的密钥值:
Figure FDA0003003533010000031
其中,kf *为所述第f个字节的密钥值;kj,o表示在密钥假设值kj和第o个采样点下获取所述基尼不纯度指数。
8.一种侧信道能量分析装置,其特征在于,所述装置包括:
加密单元,用于对随机选取的多条明文分别进行预设加密操作;
采集单元,用于采集所述加密操作过程中产生的与每条所述明文对应的加密能量迹;其中,每条所述加密能量迹具有T个采样点;
密钥获取单元,用于循环执行以下步骤,直至获取所述加密操作的整体密钥,其中,所述整体密钥具有a个字节:
生成所述整体密钥中第f个字节的多个密钥假设值;其中,1≤f≤a;
选取每条所述加密能量迹的第o个采样点对应的部分能量迹,获得第o个采样点的能量迹集合;其中,1≤o≤T;
基于所述多个密钥假设值和所述第o个采样点的能量迹集合,计算出与每个所述密钥假设值对应的基尼不纯度指数;
基于所述基尼不纯度指数,从所述多个密钥假设值中选取一个密钥假设值作为所述整体密钥中第f个字节的密钥值。
9.一种存储介质,所述存储介质上存储有程序代码,其特征在于,所述程序代码被处理器执行时,实现如权利要求1至7中任一项所述的侧信道能量分析方法。
10.一种电子设备,其特征在于,所述电子设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的程序代码,所述程序代码被所述处理器执行时,实现如权利要求1至7中任一项所述的侧信道能量分析方法。
CN202110356614.3A 2021-04-01 2021-04-01 侧信道能量分析方法、装置、存储介质及电子设备 Pending CN112966290A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110356614.3A CN112966290A (zh) 2021-04-01 2021-04-01 侧信道能量分析方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110356614.3A CN112966290A (zh) 2021-04-01 2021-04-01 侧信道能量分析方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN112966290A true CN112966290A (zh) 2021-06-15

Family

ID=76280828

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110356614.3A Pending CN112966290A (zh) 2021-04-01 2021-04-01 侧信道能量分析方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN112966290A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114297642A (zh) * 2022-01-05 2022-04-08 桂林电子科技大学 一种基于数据聚合的侧信道攻击方法
CN115412360A (zh) * 2022-09-02 2022-11-29 南京航空航天大学 应用于环多项式乘法器的侧信道相关能量分析方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114297642A (zh) * 2022-01-05 2022-04-08 桂林电子科技大学 一种基于数据聚合的侧信道攻击方法
CN114297642B (zh) * 2022-01-05 2024-03-22 桂林电子科技大学 一种基于数据聚合的侧信道攻击方法
CN115412360A (zh) * 2022-09-02 2022-11-29 南京航空航天大学 应用于环多项式乘法器的侧信道相关能量分析方法及系统

Similar Documents

Publication Publication Date Title
JP2020532771A (ja) 高精度プライバシ保護実数値関数評価
Yang et al. A comprehensive survey on secure outsourced computation and its applications
CN110110163A (zh) 安全子字符串搜索以过滤加密数据
CN112966290A (zh) 侧信道能量分析方法、装置、存储介质及电子设备
Dias et al. Exploring hashing and cryptonet based approaches for privacy-preserving speech emotion recognition
CN111143865B (zh) 一种密文数据上标签自动生成的用户行为分析系统及方法
US8370621B2 (en) Counting delegation using hidden vector encryption
CN111026788A (zh) 一种混合云中基于同态加密的多关键词密文排序检索方法
CN112039730B (zh) 一种加密算法的性能评估方法及存储介质
CN111797409A (zh) 一种大数据中文文本无载体信息隐藏方法
Barut et al. R1dit: Privacy-preserving malware traffic classification with attention-based neural networks
Bu et al. Taking care of the discretization problem: A comprehensive study of the discretization problem and a black-box adversarial attack in discrete integer domain
Zhang et al. Cryptosystem identification scheme based on ASCII code statistics
CN111144546B (zh) 评分方法、装置、电子设备及存储介质
Alwan et al. FCNN Model for Diagnosis and Analysis of Symmetric Key Cryptosystem
Zhang et al. Temporal sequence distillation: Towards few-frame action recognition in videos
CN109804596A (zh) 具有加掩码的输入的可编程块密码器
Chen et al. A comprehensive study on dataset distillation: Performance, privacy, robustness and fairness
Singh et al. Machine learning and cryptanalysis: An In-depth exploration of current practices and future potential
CN115481415A (zh) 基于纵向联邦学习的通信成本优化方法、系统、设备及介质
CN112417509A (zh) 基于自编码器的数据安全去重方法
CN113516199A (zh) 一种基于差分隐私的图像数据生成方法
Liu et al. Block Ciphers Classification Based on Randomness Test Statistic Value via LightGBM
Sridhar et al. A Two Tier Iterative Ensemble Method To Tackle Imbalance In Multiclass Classification
Aftowicz et al. Non-Profiled Unsupervised Horizontal Iterative Attack against Hardware Elliptic Curve Scalar Multiplication Using Machine Learning

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