深度学习侧信道攻击的集成方法

深度学习侧信道攻击的集成方法

  • 深度学习侧信道攻击的集成方法
    • 项目背景与意义
    • 摘要
    • 项目链接
    • 作者
    • 数据集
      • 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_models=50,number_of_best_models=10
)

在上述示例中,该分析将生成50个模型,并从这50个模型和10个最佳模型中创建集合。在run_ensemble方法完成后,用户可以绘制所有模型的猜测熵和成功率、最佳模型的猜测熵和成功率以及最佳攻击模型的图表。以下是生成图表的示例代码:

import matplotlib.pyplot as pltplt.subplot(1, 2, 1)
plt.plot(ensemble_aes.get_ge_best_model_validation(), label="GE best validation")
plt.plot(ensemble_aes.get_ge_best_model_attack(), label="GE best attack")
plt.plot(ensemble_aes.get_ge_ensemble(), label="GE Ensemble All Models")
plt.plot(ensemble_aes.get_ge_ensemble_best_models(), label="GE 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(), label="SR best validation")
plt.plot(ensemble_aes.get_sr_best_model_attack(), label="SR best attack")
plt.plot(ensemble_aes.get_sr_ensemble(), label="SR Ensemble All Models")
plt.plot(ensemble_aes.get_sr_ensemble_best_models(), label="SR 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代码,并根据需要调整参数以适应不同的数据集。这一集成方法为深度学习侧信道攻击的发展提供了有力支持,希望能够在侧信道分析领域取得更进一步的突破。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/659266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓线性布局LinearLayout

<?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"android:layout_width"match_parent"android:…

如何用MapTalks IDE来发布网站?

简介 MapTalks IDE 全称 MapTalks集成设计环境&#xff08;Integrated Design Environment&#xff09;&#xff0c;是由MapTalks技术团队开发的新一代web地图设计软件。 通过MapTalks IDE&#xff0c;您可以自由的创建二维和三维地图&#xff0c;在其中载入或创建地理数据&a…

【数据结构与算法】之哈希表系列-20240130

这里写目录标题 一、383. 赎金信二、387. 字符串中的第一个唯一字符三、389. 找不同四、409. 最长回文串五、448. 找到所有数组中消失的数字六、594. 最长和谐子序列 一、383. 赎金信 简单 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不…

【Midjourney】新手指南:命令

1./ask 向Midjourney提问&#xff0c;不过问题和回答都是英文的&#xff0c;例如&#xff1a; 2./blend 将两张图片合并为一张 ​ 3./describe 上传一张图片&#xff0c;Midjourney会生成四组该图片相关的关键词&#xff0c;可以使用这些关键词再生成图片。 ​ 4./turbo …

力扣 55.跳跃游戏

思路&#xff1a; 从后往前遍历&#xff0c;遇到元素为0时&#xff0c;记录对应的下标位置&#xff0c;再向前遍历元素&#xff0c;看最大的跳跃步数能否跳过0的位置&#xff0c;不能则继续往前遍历 代码&#xff1a; class Solution { public:bool canJump(vector<int>…

毕业设计过程学习

传统的目标检测算法主要通过人工设计与纹理、颜色和形状相关的特征来进行目标区域特征的提取。随着深度学习和人工智能技术的飞速发展&#xff0c;目标检测技术也取得了很大的成就。早期基于深度学习的目标检测算法的研究方向仍然是将目标定位任务和图像分类任务分离开来的&…

uni-app在hbuilderx打开微信开发工具运行

一、运行设置配置微信开发者工具路径 运行-运行到小程序模拟器-运行设置 配置微信开发工具的安装路径&#xff08;可浏览文件位置选择&#xff09;&#xff1b;web服务器端口号在第二步骤获得&#xff1b; 二、打开微信开发者工具设置-安全设置 打开服务端口开关&#xff0…

使用ffmpeg madiamtx制作一个rtsp源

有很多人在跑rtsp解码的demo的时候, 苦于找不到一个可以拉流的源, 这里说一个简单的方法. 使用mediamtx, 加ffmpeg加mp4文件方式, 模拟一个rtsp的源. 基本架构就是这样. 在PC上, 这里说的PC可以是远程的服务器, 也可以是你的开发用的windows, 都行. 把mediamtx, 在pc上跑起来 …

书写触感细腻的电容触控笔,透明造型超好看,西圣Pencil2上手

iPad在配上手写笔之后&#xff0c;才能才能充分发挥优势&#xff0c;实现除看视频之外的更多功能。很多人入手iPad的初衷都是工作或者学习&#xff0c;如果只拿来观剧或玩游戏就太浪费了。当然了&#xff0c;现实情况下&#xff0c;Apple Pencil高昂的定价也是很多人望而却步的…

【2024-01-20】 瑞幸咖啡小程序-blackbox

需要联系主页V 瑞幸咖啡小程序 登入需要过同盾滑块下单需要balckbox参数 测试 下单 过滑块 登入发短信 加密参数

第九节HarmonyOS 常用基础组件20-Divider

1、描述 提供分割器组件&#xff0c;分割不同内容块或内容元素。 2、接口 Divider() 3、属性 名称 参数类型 描述 vertical boolean 使用水平分割线还是垂直分割线。 false&#xff1a;水平分割线 true&#xff1a;垂直分割线 color ResourceColor 分割线颜色 默认…

【揭秘】诱骗28V竟如此简单--HUSB238A-EVB-V2.0 使用指南

随着USB TYPE-C的流行&#xff0c;越来越多的桶形连接器正在转换成USB-C连接器&#xff0c;越来越多的电子产品从传统的USB接口升级为TYPE-C接口&#xff0c;并实现PD快充。大一统的充电接口, 充电器接口全兼容&#xff0c;给消费者带来极大的便利。当下&#xff0c;筋膜枪、无…

【全csdn最前沿LVGL9】Style样式

文章目录 前言一、Style的介绍二、State状态三、级联样式四、Style的继承五、组件六、设置样式属性七、添加和移除样式7.1 添加7.2 替换样式7.3 移除样式7.4 当对象实时改变了样式去通知对象刷新样式 八、获取一个对象的属性值九、本地样式十、过度动画十一、主题总结 前言 在…

区块链游戏解说:什么是 SecondLive

数据源&#xff1a;SecondLive Dashboard 作者&#xff1a;lesleyfootprint.network 什么是 SecondLive SecondLive 是元宇宙居民的中心枢纽&#xff0c;拥有超过100 万用户的蓬勃社区。它的主要使命是促进自我表达&#xff0c;释放创造力&#xff0c;构建梦想中的平行宇宙…

Linux 终端命令行配色修改 | 助你告别屏幕盯太久眼神涣散无法聚焦的痛苦!

今天的我想把新服务器账号的命令行更改一下配色&#xff0c;然后…然后…然后…就没有然后了&#xff0c;脑子就瓦特了&#xff01;硬是想不起来那行命令&#xff0c;然后苦哈哈去之前的账号里复制粘贴去了哈哈哈哈哈&#xff0c;顺便分享一下&#xff01;增加大家肉眼的快乐&a…

前端使用onlyOffice添加水印

//#region添加水印const numWatermarksWidth Math.ceil(window.innerWidth / 100); // 水平方向的水印数量const numWatermarksHeight Math.ceil(window.innerHeight / 100); // 垂直方向的水印数量for (let i 0; i < numWatermarksHeight; i) {for (let j 0; j < nu…

1.31学习总结

1.31 1.线段树 2.Bad Hair Day S&#xff08;单调栈&#xff09; 3.01迷宫(BFS连通块问题剪枝)&#xff08;连通性问题的并查集解法&#xff09; 4.健康的荷斯坦奶牛 Healthy Holsteins&#xff08;DFS&#xff09; 线段树与树状数组 线段树和树状数组的功能相似&#xff0c;但…

C#屏幕保护程序

1&#xff0c;目的&#xff1a; 制作一个自定义的屏幕保护程序&#xff0c;在PC待机时自动运行。 2&#xff0c;注意点&#xff1a; 屏保程序保存在C:\Windows\System32中&#xff0c;扩展名为scr。一般生成的可执行程序扩展名为exe&#xff0c;可直接修改扩展名scr。360对.…

(自用)learnOpenGL学习总结-高级OpenGL-抗锯齿

MSAA 光栅器会将一个图元的所有顶点作为输入&#xff0c;并将它转换为一系列的片段。顶点坐标理论上可以取任意值&#xff0c;但片段不行&#xff0c;因为它们受限于你窗口的分辨率。顶点坐标与片段之间几乎永远也不会有一对一的映射&#xff0c;所以光栅器必须以某种方式来决定…

【RuoYi-Vue-Plus学习】项目初始化时将sql导入数据库出现Finished with error解决方法之一

将sql导入数据库出现Finished with error&#xff0c;文末是最终解决方法。 问题描述&#xff1a;sql导入出现Finished with error 解决方法探索过程&#xff1a; 1&#xff09;参考链接2和3&#xff0c;在mysql的bin目录下输入以下指令连接数据库 mysql -h localhost -u ro…