项目简介
本项目基于AVR ATmega644微控制器,实现了智能卡上的128位AES解密算法。该项目在慕尼黑工业大学“智能卡实验室”范围内开发,目标是通过智能卡读卡器或终端解密视频流片段。智能卡与终端间通过ISO7816 I/O接口通信,遵循ISO7816中定义的T=0协议。
项目的主要特性和功能
- 通信管理:
Communication
类负责管理与终端的T=0协议通信。 - AES解密:
AES
类具备在处理器上运行128位AES解密的所有功能。 - 数学辅助函数:
AESMath
类提供解密过程所需的数学辅助函数。 - 防侧信道攻击措施:
Hiding
类和Masking
类分别实现Shuffling、Dummy - Ops和Masking等防侧信道攻击措施。 - 随机数生成器:
RNG
类实现轻量级随机数生成器。 - 日志记录:
Logger
类用于在调试模式下,通过USART和USB将消息记录到串行控制台。
安装使用步骤
前提条件
- 项目使用CMake构建,需CMake 3.5或更高版本。
- 若要将可执行文件烧录到ATmega644上,需安装
avrdude
(如在Debian上:sudo apt-get install avrdude
)。
构建项目
- 创建构建目录:
$ mkdir build/
- 进入目录:
$ cd build/
- 运行CMake:
$ cmake ..
- 仅编译项目:
$ make
- 烧录到ATmega644:
$ make flash
调试模式
- 启用调试模式:
$ cmake -DDebug=ON ..
- 禁用调试模式:
$ cmake -DDebug=OFF ..
- 默认值为
OFF
。
防侧信道攻击措施
- Masking:
- 启用:
$ cmake -DMasking=ON ..
- 禁用:
$ cmake -DMasking=OFF ..
- 默认值为
OFF
。 - Shuffling:
- 启用:
$ cmake -DShuffling=ON ..
- 禁用:
$ cmake -DShuffling=OFF ..
- 默认值为
OFF
。 - Dummy - Ops:
- 启用:
$ cmake -DDummyOps=ON ..
- 禁用:
$ cmake -DDummyOps=OFF ..
- 默认值为
OFF
。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】