Crypto Lab 1:消息加密 ¶
本节 Lab 由以下五个部分组成:
Task 1: 跳舞的小人 (10%) ¶
本 Task 需要完成比赛平台上 跳舞的小人 一题,要求在实验报告中详细描述这道题的做法,从解析图片到解密得到明文整个流程。
Task 2: 维吉尼亚密码 (40%) ¶
课上介绍了维吉尼亚(Vigenere)密码,其作为多表加密的替换密码,加密强度相对于单表替换已经增强了许多,但是仍然会因语言学特性被轻松破解。
维吉尼亚密码的破解方法在课上有一定介绍,也做了一些展示,密钥的破解基本分为以下两步:
- 爆破猜测密钥长度
- 第一种方法是寻找多次重复的密文,然后计算密文间隔的最大公因数,即为最有可能的密钥长度,这个在课上已作展示
- 此外,也可以爆破密钥长度,计算密文中相隔该长度的字符重合了几次,整体重合次数最多的长度可能就是密钥长度
- 逐位爆破密钥
- 确定了密钥长度后,可以通过字母频率或者单词频率猜测密钥的其中几位
- 随后根据已解密的部分猜测单词,继续进行密钥的破解
本 Task 需要完成 ZJU School-Bus 上的 vigenere-encrypt 一题,在实验报告中详细描述这道题的做法。如果没法完整做出,也可以叙述自己的思路和解题过程,会根据完成情况给分。本题分值 40 分。
Task 3: RSA (40%)¶
本 Task 需要完成比赛平台上 OneLineRSA 一题,要求在实验报告中详细描述这道题的做法,过程简略或者没有完整脚本将会酌情扣分。
Task 4: 零知识证明 (10%) ¶
讲述一下自己对零知识证明的理解,并举出一种除了课堂上介绍的零知识证明之外的零知识证明方法,并说明它背后的算法原理以及正确性。
Bonus (15%)¶
三选一 :
- 驾驭 AI 大师: 按照课堂要求,用 DeepSeek 单 prompt 完成跳舞的小人从解析图片到单表替换密文,完整记录交互流程。
- 自行设计 ( 加解密 / 签名 / 零知识证明 ) 算法: 要有一定的安全性(分析潜在的攻击可能
) 。 - 取证大王: 有能力找到去年的文档并完成去年的拓展部分任意一部分。
课程评价额外 0-3pt, 但是总 lab 不会溢出 115pt, 欢迎告诉我你的想法和建议!😁