目录

信息安全密码学作业集

信息安全课程(大一下)的 8 次密码学作业:古典密码、DES、RSA、数论与 MD5/MAC/HMAC 的 Python 实现及手工推导验证。

任务背景

课程为《信息安全技术基础》,第 2~7 次为编程作业(背景提炼自本人实验报告):仿射与移位密码解密、 HILL 密码已知明文攻击、DES 完整实现及子密钥/S 盒推导与轮数改动实验、RSA 与扩展欧几里得算法、 同余方程求解与低指数广播攻击、手写 MD5 及轮函数修改实验、MAC/HMAC 计算、基于中国剩余定理的秘密共享。 第 1 次(WSL Ubuntu 安装、Bash 入门、Windows 组策略)与第 8 次(Windows Server 2016 安全加固) 为纯操作实验,成果是截图与报告,不含代码,故未入库,第 1 次仅保留 Bash 练习产物 hello.txt。

内容结构

路径 说明
Bash/hello.txt 第 1 次作业 Bash 练习产物(UTF-16 编码)
第二次作业/decode.py 仿射密码解密,密文按 (c-10)×3 mod 26 还原
第二次作业/HILL.py HILL 密码已知明密文对,暴力搜索 2×2 密钥矩阵
第三次作业/1.移位解密.py 栅栏密码解密(间隔 3 取字符)
第三次作业/2 k1.py、3 Sout.py DES 子密钥 K1 与 S 盒输出的手工推导验证
第三次作业/DES.py DES 完整实现(16 轮,文件读入明文)
第三次作业/4.DES_V2.py DES 实验版:改为 10 轮、交互输入,验证轮数改动影响
第三次作业/DES_BOX.py、DES_BOX_changed.py 标准 S 盒表与 S1/S6 对换后的盒表
第三次作业/DES使用说明.md 早期 DES 工程说明(原 DES-main 目录,重复文件已与上层合并去重)
第三次作业/1.txt 等 *.txt DES 测试数据:8 字节明文、密文样例、密钥 tomorrow
第四次作业/12逆元.py、3std.py、4test.py 欧拉函数、同余求星期、扩展欧几里得求逆元及验算
第四次作业/4RSA.py RSA 求私钥 d、模重复平方加解密
第五次作业/1..py 线性同余方程求全部根(gcd=3 时三个解)
第五次作业/2.dddd.py、2.拓展欧几里得求逆元.py RSA 私钥 d 的比特重量统计与由 p、q 求 d
第五次作业/3.牛刀鲨鸡.py N 开平方求相邻素数 p、q 的分解
第五次作业/4.附件1-低指数攻击-中国剩余定理/ e=5 广播攻击:读取 5 组 Frame 密文,CRT 合同余方程组还原明文
第六次作业/HMAC.py、MAC.py HMAC-MD5(标准库)与 DES-CBC 模式 MAC(pycryptodome)
第六次作业/MD5 CSDN complete*.py 手写 MD5 三版:原版、轮函数 F/G/H/I 修改实验版、文件哈希版
第六次作业/不宜使用的程序与文件/ 本人标注的弃用迭代:MD5 变体与 plane/ship 图片字节转储(各约 940KB)
第七次作业/中国剩余定理.py CRT 秘密共享(Asmuth-Bloom),任取 3 份恢复秘密 S
第七次作业/(非此法)Shemir.py 拉格朗日插值的 Shamir 方案,题目要求之外的对照实现

运行方法

  • Python 3.7+(开发环境 3.12),多数脚本仅用标准库,进入对应目录后 python 文件名.py 直接运行。
  • 个别依赖按需安装:pip install tqdm sympy pycryptodome; tqdm 用于 第四次作业/4RSA.py 与 第六次作业/不宜使用的程序与文件/MD5 ori.py, sympy 用于 第五次作业广播攻击脚本,pycryptodome 用于 第六次作业/MAC.py。
  • DES:进入 第三次作业 后运行 python DES.py,按提示选 0/1/2 加解密,密文自动写入 text.txt; 4.DES_V2.py 为 10 轮交互版,需与 DES_BOX_changed.py 同目录。
  • 第六次作业的 plane.jpg、ship.jpg 为课程附件(图片不入库),其字节转储为 不宜使用的程序与文件/binp.txt、bins.txt,MD5 文件哈希脚本可对任意文件求值。

来源声明

  • 作业题目、素数与密文参数、Frame 数据、plane/ship 图片均为课程下发,本人所作为代码实现与推导。
  • DES 与 MD5 的初版实现部分参考 CSDN 公开资料并在其上修改,文件名保留 CSDN 字样以如实标注; HILL 攻击、RSA 与数论系列、CRT 秘密共享等其余代码为独立编写。
  • 原作业中以本人学号作运算参数的数值已替换为等长中性占位,相关注释中的历史结果可能不再对应; 含个人信息的实验报告与截图均未入库。
关于

信息安全课程 8 次密码学作业:移位解密、HILL、DES、RSA、中国剩余定理、HMAC、MD5 的纯 Python 手写实现

1.0 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号