基于深度学习的密码芯片侧信道泄露可视化定位方法技术

技术编号:36252510 阅读:17 留言:0更新日期:2023-01-07 09:46
本发明专利技术提出了一种基于深度学习的密码芯片侧信道泄露可视化定位方法,针对密码芯片中应用的加密算法,利用集成的解析工具提取信号跳变和信号值,并构造电路图,通过深度模型对其训练学习,然后借助信号的泄露梯度值可视化,从而定位密码硬件设计中可能存在的侧信道泄露。本方法首先通过解析工具从加密算法FPGA实现生成的VCD文件中提取相关模块的信号跳变次数和信号值,并构造信号向量,然后利用CNN模型训练得到分类器,最后基于分类器获得的信号泄露梯度值的可视化和电路图,进而实现泄露的定位。本发明专利技术的方法能够适用于不同加密方案下的侧信道泄露可视化定位。的侧信道泄露可视化定位。的侧信道泄露可视化定位。

【技术实现步骤摘要】
基于深度学习的密码芯片侧信道泄露可视化定位方法


[0001]本专利技术属于侧信道泄露检测领域,尤其是面向各种密码芯片上加密算法的泄露可视化定位方法。

技术介绍

[0002]密码芯片已经得到了广泛的应用,以确保基于它们的设备和系统处在一个安全的环境中。然而即使出现了包括掩码方案在内的各种对策,仍然避免不了密码芯片存在侧信道泄露风险。目前,对于密码芯片上加密算法存在的泄露检测,主要存在两种方法。一种是形式化验证,通过自动或者半自动的分析对加密方案提供安全性的理论评估。这种方法自动化程度高,但实现代价大,评估效率较低。另一种方法是经验泄露评估,这种基于信息泄露的检测方法由于其简单高效、通用性等特点,在实际应用中得到了更广泛的研究。一方面,硅前/硅后检测也是一个挑战,硅前检测存在不能完全评估的问题,而硅后又无法检测详细的密码芯片设计信息。另一方面,深度学习在侧信道领域得到了迅速发展。
[0003]针对于上述这种情况,利用深度学习在侧信道泄露可视化定位中得到越来越多的重视。对密码芯片而言,FPGA实现能更好的描述加密算法的设计特性,深度学习可以自动学习泄露特征,从而在泄露可视化定位中得到更好的准确性。

技术实现思路

[0004]本专利技术所解决的技术问题在于提供一种密码芯片上加密算法FPGA实现的泄露可视化定位方法,以FPGA实现得到的VCD和网表进行解析获取的侧信道信息为基础,结合深度学习和可视化技术,提升泄露定位的性能。
[0005]实现本专利技术目的的技术解决方案为:
[0006]一种基于深度学习的密码芯片侧信道泄露可视化定位方法,包含以下步骤:
[0007]步骤1:对加密算法FPGA实现生成的VCD文件使用解析工具提取信号跳变次数和信号值,构造信号向量;对网表文件,使用解析工具,构建硬件电路图;
[0008]步骤2:利用CNN训练学习信号向量,建立分类器;
[0009]步骤3:利用高置信度分类器计算信号泄露梯度值并可视化,实现泄露定位;
[0010]步骤4:利用硬件电路图,进一步筛选候选泄露信号,实现较好假正类水平的泄露定位。
[0011]进一步的,一种基于深度学习的密码芯片侧信道泄露可视化定位方法,步骤1中解析和构造方法具体为:
[0012]对加密算法FPGA实现生成的VCD文件,选择集成一个解析工具提取信号跳变次数和信号值,然后利用VCD定义顺序构造信号向量;对于网表文件,先采用解析工具对网表的层次结构进行解析,然后根据模块中元件连接关系等构造硬件电路图。
[0013]进一步的,一种基于深度学习的密码芯片侧信道泄露可视化定位方法,步骤2中CNN建立分类器简化为函数F表示为:
[0014]F:S

P(Z)
[0015]其中S表示输入的信号向量,Z为敏感中间值向量。旨在给定一个输入,可以得到准确的预测输出分类。
[0016]进一步的,一种基于深度学习的密码芯片侧信道泄露可视化定位方法,步骤3中采用高置信度分类器和可视化的具体步骤为:
[0017]步骤3

1:利用统计学方法对CNN训练学习得到的分类器评估,得到一个高置信度分类器,满足:
[0018][0019]其中,p=10
‑5表示置信度阈值,v为分类器验证集准确度,β表示验证集大小。
[0020]步骤3

2:对高置信度分类器训练的信号泄露梯度值可视化:
[0021]利用高置信度分类器,求出模型关于信号的泄露梯度值,并利用雅可比矩阵的思想可视
[0022]化,为:
[0023][0024][0025][0026][0027]其中为计算梯度的函数,L代表损失函数,S表示信号向量,J
F
是相当等效的雅可比矩阵,o表示信号得分向量,z为敏感变量,为贡献度。
[0028]步骤3

3:对泄露信号定位:
[0029]利用3σ准则,定位泄露信号,定位式子为:
[0030]τ=μ+3σ
[0031]其中
[0032]g=(g
11
,g
12
,

,g
n
×
r
)
[0033]g为一组泄露梯度值,μ为其平均值,σ为其标准差。
[0034]进一步的,一种基于深度学习的密码芯片侧信道泄露可视化定位方法,步骤4中采用硬件电路图筛选候选泄露信号的方法具体为:
[0035]对定位到的泄露信号,通过网表文件解析的硬件电路图,进一步筛选,得到较好假正类水平的泄露定位结果。
[0036]本专利技术采用以上技术方案与现有技术相比,具有以下技术效果:
[0037]1、本专利技术在VCD解析出来的信号向量上通过CNN进行特征学习并可视化,且相较于其他方法能够显著提高准确定位泄露信号的能力;实验结果表明,在不同加密方案上,本方
法均能取得较好的试验效果;
[0038]2、本专利技术的基于深度学习的密码芯片侧信道泄露可视化定位方法,能充分利用信号跳变次数和信号值学习更具判别能力的泄露梯度值,实验结果表明,本方法的泄露梯度值可视化进一步在维持较好假正类水平的基础上定位泄露信号。
附图说明
[0039]图1是本专利技术的基于深度学习的密码芯片侧信道泄露可视化定位方法流程图;
[0040]图2是本专利技术的方法示意图;
具体实施方式
[0041]下面详细描述本专利技术的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。
[0042]一种基于深度学习的密码芯片侧信道泄露可视化定位方法,分为四个阶段,即信号侧信道信息解析构造信号向量并提出硬件电路图,利用CNN网络模型对信号向量训练学习得到分类器,通过高置信度分类器计算信号泄露梯度值并可视化以实现泄露定位,硬件电路图进一步筛选候选泄露信号,进而实现密码芯片的侧信道泄露可视化定位。
[0043]如图1和图2所示,具体包括以下步骤:
[0044]步骤1:对加密算法FPGA实现生成的VCD文件,选择集成一个解析工具提取信号跳变次数和信号值,然后利用VCD定义顺序构造信号向量;对于网表文件,先采用解析工具对网表的层次结构进行解析,然后根据模块中元件连接关系等构造硬件电路图。
[0045]步骤2:利用CNN训练学习信号向量,建立分类器。建立分类器简化为函数F表示为:
[0046]F:S

P(Z)
[0047]其中S表示输入的信号向量,Z为敏感中间值向量。旨在给定一个输入,可以得到准确的预测输出分类。
[0048]步骤3:利用高置信度分类器计算信号泄露梯度值并可视化,实现泄露定位,具体步骤为:
[0049]步骤3
‑本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于深度学习的密码芯片侧信道泄露可视化定位方法,其特征在于,包含以下步骤:步骤1:对加密算法FPGA实现生成的VCD文件使用解析工具提取信号跳变次数和信号值,构造信号向量;对网表文件,使用解析工具,构建硬件电路图;步骤2:利用CNN训练学习信号向量,建立分类器;步骤3:利用高置信度分类器计算信号泄露梯度值并可视化,实现泄露定位;步骤4:利用硬件电路图,进一步筛选候选泄露信号,实现假正类水平的泄露定位。2.根据权利要求1所述的基于深度学习的密码芯片侧信道泄露可视化定位方法,其特征在于,步骤1中解析和构造方法具体为:对加密算法FPGA实现生成的VCD文件,选择集成一个解析工具提取信号跳变次数和信号值,然后利用VCD定义顺序构造信号向量;对于网表文件,先采用解析工具对网表的层次结构进行解析,然后根据模块中元件连接关系构造硬件电路图。3.根据权利要求1所述的基于深度学习的密码芯片侧信道泄露可视化定位方法,其特征在于,步骤2中CNN建立分类器简化为函数F表示为:F:S

P(Z)其中S表示输入的信号向量,Z为敏感中间值向量;旨在给定一个输入,得到准确的预测输出分类。4.根据权利要求1所述的基于深度学习的密码芯片侧信道泄露可视化定位方法,其特征在于,步骤3中采用高置信度分类器和可视化的具体步骤为:步骤3<...

【专利技术属性】
技术研发人员:李延斌朱嘉杰任守纲
申请(专利权)人:南京农业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1