Crypton
Crypton 是一个教育库,用于学习和实践进攻与防御密码学。它本质上是一个集合,包含了各种加密系统(对称和非对称)、数字签名、消息认证码和认证加密系统中现有漏洞和攻击的解释与实现。每种攻击还附带了来自“夺旗”(CTF)竞赛的示例挑战及其相应解析。已经熟悉该领域(或参与 CTF)的个人可以将 Crypton 作为工具,基于特定现有漏洞解决挑战。
该库将持续更新攻击解释和 CTF 挑战!如有任何建议,请随时给我发邮件。
我撰写了一篇关于该库开发时间线的博客文章:https://masterpessimistaa.wordpress.com/2018/08/12/announcing-crypton-an-educational-library-to-learn-offensive-and-defensive-cryptography/
警告:作者不保证代码的安全性。该库仅用于教育目的,代码不应在实际环境中使用。库中所有示例脚本均为简单实现。
本 README 包含不同部分:
- 动机 - 创建此库的动机
- 库结构 - Crypton 的目录结构
- 领域覆盖 - 本库涵盖的所有密码系统和攻击
- 未来计划/待办事项 - 即将包含的攻击/概念
动机
帮助 CTF 参与者和对密码学领域感兴趣的个体提供一个学习密码学攻击的平台,并为有经验的 CTF 参与者提供系统化的挑战练习,这些挑战按与密码学不同子领域相关的攻击进行划分。同时,通过各种攻击解释说明协议的适当实现至关重要。
库结构

领域覆盖
1. 分组密码
2. RSA 加密
3. 消息认证码 (MAC)
4. 离散对数问题| 序号 | 主题 | 说明 | 实现/利用 | 挑战# |
|-------|:---------------------------:|:-----------------------------------------------------------------------------------------------:|:------------:|:----------:|
| 1 | DLP- 循环群与离散对数问题|
|
|
|
| 2 |
用于解决DLP的Pollard Rho算法 |
|
|
|
| 3 |
用于解决DLP的小步大步算法 |
|
|
|
| 4 |
用于解决DLP的Pohlig Hellman算法 |
|
|
|
| 5 |
椭圆曲线DLP- 定义单位元、点的逆、EC上点的循环群、Hasse定理、ECDLP |
|
|
|
| 6 |
用于解决椭圆曲线DLP的小步大步算法 |
|
|
|
| 7 |
用于解决椭圆曲线DLP的Pollard Rho算法 |
|
|
|
5. ElGamal加密
6. 认证加密 (AE)
7. 椭圆曲线
8. 数字签名
9. 身份认证
10. Diffie Hellman密钥交换
TODO
- RSA加密
- PKCS1-v1.5填充的RSA加密
针对RSA密码系统的选择密文攻击 - LSB解密预言机 [Done]
- 针对PKCS1填充RSA加密系统的填充预言机攻击
- 费马分解
- Coppersmith攻击
- Hastad广播攻击
- 伪随机数发生器
- 线性同余发生器
- Mersenne Twister PRNG
- 线性反馈移位寄存器
- 数字签名
Diffie Hellman密钥交换[Done]
- [待添加]
作者
Ashutosh Ahelleya