littlebot
Published on 2025-04-02 / 3 Visits
0

【源码】基于AVR ATmega644的智能卡AES解密系统

项目简介

本项目基于AVR ATmega644微控制器,实现了智能卡上的128位AES解密算法。该项目在慕尼黑工业大学“智能卡实验室”范围内开发,目标是通过智能卡读卡器或终端解密视频流片段。智能卡与终端间通过ISO7816 I/O接口通信,遵循ISO7816中定义的T=0协议。

项目的主要特性和功能

  1. 通信管理Communication类负责管理与终端的T=0协议通信。
  2. AES解密AES类具备在处理器上运行128位AES解密的所有功能。
  3. 数学辅助函数AESMath类提供解密过程所需的数学辅助函数。
  4. 防侧信道攻击措施Hiding类和Masking类分别实现Shuffling、Dummy - Ops和Masking等防侧信道攻击措施。
  5. 随机数生成器RNG类实现轻量级随机数生成器。
  6. 日志记录Logger类用于在调试模式下,通过USART和USB将消息记录到串行控制台。

安装使用步骤

前提条件

  • 项目使用CMake构建,需CMake 3.5或更高版本。
  • 若要将可执行文件烧录到ATmega644上,需安装avrdude(如在Debian上:sudo apt-get install avrdude)。

构建项目

  1. 创建构建目录:$ mkdir build/
  2. 进入目录:$ cd build/
  3. 运行CMake:$ cmake ..
  4. 仅编译项目:$ make
  5. 烧录到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】