ASCAD 项目使用教程
ASCAD Side Channels Analysis and Deep Learning 项目地址: https://gitcode.com/gh_mirrors/as/ASCAD
1. 项目目录结构及介绍
ASCAD 项目的目录结构如下:
ASCAD/
├── ASCAD_generate.py
├── ASCAD_train_models.py
├── ASCAD_test_models.py
├── LICENSE
├── README.md
├── github/
│ └── workflows/
├── ATMEGA_AES_v1/
├── STM32_AES_v2/
└── ASCAD_generate/
目录结构介绍
- ASCAD_generate.py: 用于生成 ASCAD 数据库的脚本。
- ASCAD_train_models.py: 用于训练模型的脚本。
- ASCAD_test_models.py: 用于测试已训练模型的脚本。
- LICENSE: 项目的许可证文件。
- README.md: 项目的介绍文档。
- github/workflows/: 包含 GitHub Actions 的工作流配置文件。
- ATMEGA_AES_v1/: 包含 ATMEGA8515 平台上 AES 实现的文件。
- STM32_AES_v2/: 包含 STM32 平台上 AES 实现的文件。
- ASCAD_generate/: 包含生成 ASCAD 数据库所需的文件。
2. 项目启动文件介绍
ASCAD_generate.py
该脚本用于从原始跟踪数据库生成 ASCAD 数据库。它接受一个包含以下键的 Python 字典文件作为参数:
traces_file
: 包含原始跟踪数据的 HDF5 文件名。files_splitted
: 如果原始跟踪数据被分割成多个文件,设置为 1。traces_files_list
: 如果files_splitted
设置为 1,则此项为原始跟踪文件的列表。labeled_traces_file
: 输出的 HDF5 文件名。profiling_index
: 用于训练的跟踪索引列表。attack_index
: 用于攻击的跟踪索引列表。target_points
: 从跟踪中提取的感兴趣点的列表。profiling_desync
: 应用于训练跟踪的最大去同步值。attack_desync
: 应用于攻击跟踪的最大去同步值。
ASCAD_train_models.py
该脚本用于训练深度学习模型。它接受一个参数文件,该文件包含训练所需的配置参数。
ASCAD_test_models.py
该脚本用于测试已训练的模型。它计算真实密钥字节在 256 个候选字节中的排名,并使用 matplotlib 绘制排名随跟踪数量变化的图表。
3. 项目配置文件介绍
ASCAD 项目的配置文件通常是一个包含 Python 字典的文件,用于指定各种参数。以下是一些常见的配置参数:
- traces_file: 原始跟踪数据的 HDF5 文件名。
- labeled_traces_file: 输出的 HDF5 文件名。
- profiling_index: 用于训练的跟踪索引列表。
- attack_index: 用于攻击的跟踪索引列表。
- target_points: 从跟踪中提取的感兴趣点的列表。
- profiling_desync: 应用于训练跟踪的最大去同步值。
- attack_desync: 应用于攻击跟踪的最大去同步值。
配置文件的示例如下:
{
"traces_file": "raw_traces.h5",
"labeled_traces_file": "ascad_database.h5",
"profiling_index": [0, 1, 2, ..., 4999],
"attack_index": [5000, 5001, 5002, ..., 5999],
"target_points": [10, 20, 30],
"profiling_desync": 50,
"attack_desync": 50
}
通过修改这些参数,用户可以自定义生成的 ASCAD 数据库和训练/测试过程。
ASCAD Side Channels Analysis and Deep Learning 项目地址: https://gitcode.com/gh_mirrors/as/ASCAD