Harpuneet-Singh/CS641_Course_Project

GitHub: Harpuneet-Singh/CS641_Course_Project

一个应用密码学课程项目,实现了 AES-128 加解密流水线、单表密码频率分析以及相关性功耗分析侧信道攻击。

Stars: 0 | Forks: 0

# 应用密码学 (CS641) 课程项目 本仓库包含了我针对印度理工学院坎普尔分校(IIT Kanpur)CS641 应用密码学课程的实现代码和报告,该课程由 Udaya Parampalli 教授(墨尔本大学)授课。 ## 概述 ### 1. 单表密码分析 (`Monoalphabetic_Cryptanalysis.ipynb`) 针对单表替换密码的频率分析攻击。我使用了二元/三元组统计以及迭代密钥恢复技术,对未知的英文密文进行了解密。 ### 2. AES-128 实现 (`AES_128_Implementation.ipynb`) 在 Python 中从零开始构建的完整 AES-128 加密与解密流水线,未使用任何外部加密库。 我的实现内容包括: - 用于 MixColumns 的 `GF(2^8)` 伽罗瓦域算术运算 - 完整的 Rijndael 密钥扩展方案 - AES 全部四种轮操作(SubBytes、ShiftRows、MixColumns、AddRoundKey) - 带有字节级填充的 CBC(Cipher Block Chaining,密码块链接)模式加密与解密 ### 3. 相关性功耗分析 (`Correlation_Power_Analysis.ipynb`) 针对 AES 硬件实现的侧信道攻击。我使用了统计方法,从物理功耗轨迹中提取了秘密的加密密钥。 该攻击的工作原理如下: - 利用中间 SubBytes 输出的汉明重量(Hamming Weight)来建立理论功耗模型 - 计算假设功耗值与实际测量轨迹之间的皮尔逊相关系数(Pearson correlation coefficient) - 分别从 8 位 AES-128 和 32 位 AES-256 解密实现中,逐字节恢复完整的轮密钥 ## 仓库结构 ``` ├── Monoalphabetic_Cryptanalysis.ipynb # Frequency analysis attack ├── AES_128_Implementation.ipynb # Complete AES-128 pipeline + CBC mode ├── Correlation_Power_Analysis.ipynb # CPA side-channel attacks ├── docs/ │ ├── AES_128_Implementation_Report.pdf │ └── Correlation_Power_Analysis_Report.pdf └── README.md ``` ## 报告 `docs/` 文件夹包含了这两次作业的详细理论分析和书面解答,包括安全性证明和数学推导。
标签:AES, NoSQL, Python, 侧信道攻击, 密码学, 手动系统调用, 教学项目, 无后门, 相关性功耗分析, 逆向工具