网站建设 牛商网,网站制作一条龙,市场营销,官方网站如何建设深度学习侧信道攻击的集成方法 深度学习侧信道攻击的集成方法项目背景与意义摘要项目链接作者数据集CHES CTF 数据集ASCAD FIXED KEY 数据集ASCAD RANDOM KEY 数据集 代码代码执行神经网络 深度学习侧信道攻击的集成方法
项目背景与意义
在TCHES2020#xff08;第4期#x… 深度学习侧信道攻击的集成方法 深度学习侧信道攻击的集成方法项目背景与意义摘要项目链接作者数据集CHES CTF 数据集ASCAD FIXED KEY 数据集ASCAD RANDOM KEY 数据集 代码代码执行神经网络 深度学习侧信道攻击的集成方法
项目背景与意义
在TCHES2020第4期上发表的论文《Strength in Numbers: Improving Generalization with Ensembles in Machine Learning-based Profiled Side-channel Analysis》中Guilherme Perin、Łukasz Chmielewski和Stjepan Picek提出了一种基于深度学习的侧信道攻击的集成方法。这一方法通过构建模型集合显著提高了在侧信道分析中的泛化能力从而更有效地攻克不同数据集的挑战。
摘要
采用深度神经网络进行侧面通道攻击为安全产品的泄漏检测和密钥检索提供了强大的选择。当训练用于侧通道分析的神经网络时期望训练的模型能够实现近似函数该近似函数能够检测泄漏的侧通道样本同时对噪声或非泄漏样本不敏感。这概述了一种泛化情况其中模型可以在单独的测试集中识别从训练集中学习的主要表示。
本文讨论了在进行侧信道分析时输出类概率如何表示强度量。此外我们观察到这些输出概率对微小的变化很敏感比如选择特定的测试轨迹或神经网络的权重初始化。接下来我们讨论超参数调整其中通常只使用几十个训练模型中的一个其中每个模型将导致不同的输出概率。我们展示了基于平均类概率的机器学习模型集合如何提高泛化能力。我们的结果强调无论选择的数据集或泄漏模型如何集合都会提高侧信道攻击的性能并减少不同超参数产生的结果的方差。
项目链接
论文的详细内容可以在以下链接找到Strength in Numbers: Improving Generalization with Ensembles in Machine Learning-based Profiled Side-channel Analysis
作者
本项目的作者来自荷兰代尔夫特理工大学Delft University of Technology和尼耶梅亨拉德大学Radboud University Nijmegen以及Riscure BV分别是Guilherme Perin、Łukasz Chmielewski和Stjepan Picek。
数据集
该项目使用了三个数据集CHES CTF、ASCAD FIXED KEYS和ASCAD RANDOM KEYS。
CHES CTF 数据集
CHES CTF数据集包含45,000个基准迹线profiling traces和5,000个攻击迹线attacking traces。这些基准迹线采用相同且固定的密钥而攻击迹线则采用不同但固定的密钥。每个迹线包含2,200个样本代表了第一个AES加密轮中s-box操作的处理过程。这些迹线已经过z-score标准化处理。你可以从以下链接下载CHES CTF数据集CHES CTF dataset
ASCAD FIXED KEY 数据集
关于ASCAD FIXED KEY数据集的详细信息可在原始GitHub页面找到ASCAD FIXED KEY dataset
ASCAD RANDOM KEY 数据集
关于ASCAD RANDOM KEY数据集的详细信息可在原始GitHub页面找到ASCAD RANDOM KEY dataset
代码
以下是如何在上述数据集上运行集成SCA代码的详细说明。
代码执行
集成代码应该从run_ensemble.py文件中执行。该文件包含以下结构
ensemble_aes EnsembleAES()
ensemble_aes.set_dataset(ches_ctf) # ascad_fixed_key, ascad_random_key or ches_ctf
ensemble_aes.set_leakage_model(HW)
ensemble_aes.set_target_byte(0)
ensemble_aes.set_mini_batch(400)
ensemble_aes.set_epochs(10)
ensemble_aes.run_ensemble(number_of_models50,number_of_best_models10
)在上述示例中该分析将生成50个模型并从这50个模型和10个最佳模型中创建集合。在run_ensemble方法完成后用户可以绘制所有模型的猜测熵和成功率、最佳模型的猜测熵和成功率以及最佳攻击模型的图表。以下是生成图表的示例代码
import matplotlib.pyplot as pltplt.subplot(1, 2, 1)
plt.plot(ensemble_aes.get_ge_best_model_validation(), labelGE best validation)
plt.plot(ensemble_aes.get_ge_best_model_attack(), labelGE best attack)
plt.plot(ensemble_aes.get_ge_ensemble(), labelGE Ensemble All Models)
plt.plot(ensemble_aes.get_ge_ensemble_best_models(), labelGE Ensemble Best Models)
plt.xlabel(Traces)
plt.ylabel(Guessing Entropy)
plt.legend()plt.subplot(1, 2, 2)
plt.plot(ensemble_aes.get_sr_best_model_validation(), labelSR best validation)
plt.plot(ensemble_aes.get_sr_best_model_attack(), labelSR best attack)
plt.plot(ensemble_aes.get_sr_ensemble(), labelSR Ensemble All Models)
plt.plot(ensemble_aes.get_sr_ensemble_best_models(), labelSR Ensemble Best Models)
plt.xlabel(Traces)
plt.ylabel(Success Rate)
plt.legend()plt.show()神经网络
提供的代码可以根据用户定义的范围生成具有随机超参数的MLP或CNN。在commons/ensemble_aes.py中用户可以找到run_mlp()和run_cnn()方法用于生成随机MLPs和随机CNNs。在commons/neural_networks.py中我们提供了神经网络的结构。
通过这些说明您将能够轻松运行集成SCA代码并根据需要调整参数以适应不同的数据集。这一集成方法为深度学习侧信道攻击的发展提供了有力支持希望能够在侧信道分析领域取得更进一步的突破。