Cryptography

密码学 CTF 实战题

从古典密码到现代密码学概念,理解编码、哈希与加密之间的区别。

你将学到什么

  • 区分编码、哈希与加密
  • 识别常见密码算法的性质
  • 建立可复现的密码分析流程

密码学挑战

共 15 题。

Cryptography难度 1

02. 隐藏的秘密:Base64 解码

Base64 是将二进制数据作为文本传输的编码方式,并不是加密。请解码给出的 Base64 字符串以找出 flag: RkxBR3tiYXNlNjRfaXNfbm90X2VuY3J5cHRpb259

Cryptography难度 1

11. 解读凯撒密码

凯撒密码是最经典的古典密码之一:它将字母按固定数量平移。 密文:IODJ{fdhvdu_flskhu_edvlfv} 找出平移量并解码 flag。

Cryptography难度 1

14. ROT13 的魔法

ROT13(Rotate 13)是一种将英文字母平移 13 位的凯撒密码。对它执行两次会还原原文,因为字母表共有 26 个字母。 密文:SYNT{ebg13_vf_flzzrgevp} 请用 ROT13 解码并找出 flag。

Cryptography难度 2

AES-ECB 模式的弱点

ECB 会让相同明文块产生相同密文块并泄露模式。本入门题先辨别加密与编码的区别。 十六进制数据: 4b494e4f434f7b6563625f6d6f64655f69735f7765616b7d…

Cryptography难度 2

RC4 流密码的弱点

RC4 曾被广泛使用,但如今已不推荐。本入门题着重识别提供的数据格式。 Base64 字符串: S0lOT0NPe3JjNF9pc19kZXByZWNhdGVkfQ== 它实际上并不是 RC4 密文,请按 Base64 解码取得旗标。

Cryptography难度 2

维吉尼亚密码解密

维吉尼亚密码由多个凯撒密码组合而成。已知密钥长度时,请解密密文并取得 flag。 密文: KMNRCS{vlginhri_clpleu_axtdco} 密钥长度为 4 个字符。请解密并提交旗标。

Cryptography难度 2

寻找哈希碰撞

MD5 可实际构造不同输入却具有同一哈希值的碰撞。碰撞抗性已失效的哈希不应再用于安全敏感的完整性保护或签名。 据称具有相同 MD5 的两个文件: file_a != file_b md5(file_a) =…

Cryptography难度 2

哈希长度扩展攻击

对 MD5、SHA-1、SHA-256 等 Merkle–Damgård 哈希,直接以 `hash(secret || message)` 作为签名可能受到长度扩展攻击。 已知消息与 SHA-256: message =…

Cryptography难度 2

填充预言机入门

填充预言机攻击会利用不同错误响应作为恢复明文的信号。本入门题请从泄露的 Base64 字符串中读取 flag。 泄露的 Base64 字符串: Vmlld1NvdXJjZTpLSU5PQ097cGFkZGluZ19vcmFjbGVfYmF…

Cryptography难度 2

彩虹表攻击

未加盐的快速哈希可被预计算反查数据库轻易还原。请反查给出的 MD5 哈希。 MD5 哈希: 5f4dcc3b5aa765d61d8327deb882cf99 请反查该哈希,并把原始字符串以 KINOCO{...} 的形式提交。

Cryptography难度 2

一次一密密钥复用攻击

一次一密仅在密钥只使用一次时安全。复用同一密钥时,可由已知明文恢复另一段明文。 用同一密钥加密的两个密文: ciphertext1_hex = 1c0a070901 known_plaintext1 = HELLO…

Cryptography难度 2

可预测的随机数

固定种子的伪随机输出可被复现;通用随机数生成器不能用于加密机密。 旗标生成代码: import random random.seed(12345) flag_chars = [chr(random.randint(65, 90))…

Cryptography难度 2

破解小型 RSA 密钥

RSA 依赖足够大的素数。本题的 `n` 过小;请分解它、求出私钥指数,并解密密文数列。 公钥与密文: n = 323 e = 5 ciphertexts = [115, 181, 241, 109, 109, 57, 190,…

Cryptography难度 4

密码分析:DSA nonce 复用导致的私钥恢复

`signatures.json` 含有两份复用了相同 nonce 的 DSA 签名。请从签名差分恢复 nonce `k` 和私钥 `x`,再将重复的 `SHA256(str(x))` 作为 XOR 密钥解密 flag。

Cryptography难度 5

密码分析:RSA e=3 广播攻击

`broadcast.json` 含有同一明文使用未填充 RSA、`e=3` 加密到三个两两互素 modulus 的结果。请使用中国剩余定理和整数立方根恢复明文。