Skip to content

Crypto Lab 1:消息加密

本节 Lab 由以下五个部分组成:

Task 1: 跳舞的小人 (10%)

Task 需要完成比赛平台上 跳舞的小人 一题,要求在实验报告中详细描述这道题的做法,从解析图片到解密得到明文整个流程。

Task 2: 维吉尼亚密码 (40%)

课上介绍了维吉尼亚(Vigenere)密码,其作为多表加密的替换密码,加密强度相对于单表替换已经增强了许多,但是仍然会因语言学特性被轻松破解。

维吉尼亚密码的破解方法在课上有一定介绍,也做了一些展示,密钥的破解基本分为以下两步:

  1. 爆破猜测密钥长度
    • 第一种方法是寻找多次重复的密文,然后计算密文间隔的最大公因数,即为最有可能的密钥长度,这个在课上已作展示
    • 此外,也可以爆破密钥长度,计算密文中相隔该长度的字符重合了几次,整体重合次数最多的长度可能就是密钥长度
  2. 逐位爆破密钥
    • 确定了密钥长度后,可以通过字母频率或者单词频率猜测密钥的其中几位
    • 随后根据已解密的部分猜测单词,继续进行密钥的破解

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, 欢迎告诉我你的想法和建议!😁