HawKx007/ETAN-SCA
GitHub: HawKx007/ETAN-SCA
ETAN-SCA是一个用于CRYSTALS-Kyber侧信道攻击的深度学习模型。
Stars: 1 | Forks: 0
# ETAN-SCA -> ETAN-SCA
ETAN-SCA 是一个用于评估神经模型是否能够在 Reference-PPM 跟踪中分类泄漏模式的侧信道分析训练项目。
# 目前正在将 ETAN-SCA 扩展为一个完整的攻击模型,该模型能够实现部分/完整密钥恢复
## 当前范围
当前加载器将每个跟踪标记为所选nonce字节的汉明重量。这使得项目成为一个泄漏分类基准,而不是完整的密钥恢复管道。
训练脚本明确记录了这一点:
- `target_semantics`:目前为 `nonce_byte_hamming_weight`
- `target_is_secret_dependent`:目前为 `false`
- `leakage_proof_report.json`:表示模型是否通过了泄漏分类器门,以及是否准备好部分密钥提取
部分密钥提取应在将目标替换为依赖于密钥的中间值并添加密钥候选排名指标之后才声称。
## 运行
```
source .venv/bin/activate
python -m src.train_all_models
tensorboard --logdir runs/ETAN_SCA --host 127.0.0.1 --port 6006
```
输出将写入 `results/run_/`,TensorBoard 日志将写入 `runs/ETAN_SCA//`。
## A100 配置
`src/train_all_models.py` 目前配置为完整的 A100 运行:
- 所有匹配的 Reference-PPM 集A文件(`MAX_FILES = None`)
- 完整的 CNN/RNN/LSTM/集成套件(`LEARNABILITY_MODE = False`)
- 批量大小 256,最大 50 个周期,耐心 12
- 启用 CUDA TF32 和自动转换 bfloat16
- 50,000 个样本窗口通过 5 下采样(`T = 10000`)
- 更宽的 A100 模型配置:CNN 基础 64,CNN `d_model` 128,8 个注意力头,RNN/LSTM `d_model` 64
有用的输出包括:
- `model_comparison.csv`
- `leakage_proof_report.json`
- `_metrics.csv`
- `_best.pt`
- `_confusion_matrix.png`
- `_confusion_matrix.npy`
## 注意事项
仅在您想要在中间汉明重量类别上进行短 CNN 证明运行时,才在 `src/train_all_models.py` 中设置 `LEARNABILITY_MODE = True`。此模式对于资源有限的 MPS 运行也是安全的。
标签:A100 GPU, Apex, BSD, CNN, CRYSTALS-Kyber, LSTM, RNN, TensorBoard, 侧信道攻击, 凭据扫描, 加密算法, 哈明重量, 密钥恢复, 性能指标, 数据挖掘, 数据预处理, 机器学习, 机器学习模型, 模型优化, 模型训练, 模型评估, 泄漏模式分类, 泄漏证明, 深度学习, 混淆矩阵, 神经模型, 逆向工具, 集成学习