CTF 密码学入门|RSA 小指数 e=3 完整解密解题报告
一、前言
RSA 加密算法是 CTF 密码学板块的必考基础题型,本题为经典新手入门题型,采用小模数、小指数的简易 RSA 加密场景。通过本题可以完整掌握 RSA 加解密的核心流程,理解质因数分解、欧拉函数、模逆元计算等基础密码学知识点,是入门密码学的必备练习题。
二、题目介绍
题目给出标准 RSA 加密参数,模数 n 为 221,加密指数 e 为 3,密文 c 为 124。加密公式为 c 等于 m 的 e 次方对 n 取模,要求选手通过已知参数解密,计算出原始明文 m,拼接得到对应 Flag。
三、考察知识点
- RSA 加密算法基础原理
- 小模数质因数分解
- 欧拉函数计算方法
- 模逆元与私钥求解
- 小指数 RSA 通用解密思路
四、解题思路
首先对小模数 n 进行质因数分解,获取两个质数因子。其次根据质因数计算欧拉函数值,结合加密指数 e 求解私钥 d。最后利用 RSA 解密公式,代入密文、私钥、模数计算得到明文,完成解密。
五、详细解题过程
第一步,分解模数。已知模数 n 等于 221,通过基础计算可得 221 可以分解为 13 和 17 两个质数的乘积,确定 p 等于 13,q 等于 17。
第二步,计算欧拉函数。根据欧拉函数计算公式,质数乘积的欧拉函数为 (p-1) 乘以 (q-1)。代入数值计算,得到欧拉函数值为 12 乘以 16,结果为 192。
第三步,求解私钥 d。私钥需要满足 e 和 d 的乘积模欧拉函数等于 1,已知 e 等于 3,通过计算得出私钥 d 为 127。
第四步,解密明文。根据 RSA 解密公式,明文 m 等于密文 c 的 d 次方对 n 取模。代入所有参数计算,最终得到明文结果为 6。
第五步,拼接得到最终 Flag:ctf {6}。
六、原理总结
RSA 加密的安全性依赖于大整数质因数分解的困难性。本题模数极小,可以直接人工分解,因此能够快速破解。小指数 e 等于 3 是 CTF 高频考点,在模数较小的场景下可以直接解密。本题完整复刻了 RSA 加解密的标准流程,帮助新手掌握密码学基础解题套路。
七、拓展学习
在真实 CTF 场景中,当加密指数极小、模数极大时,会衍生出 RSA 广播攻击、小指数爆破攻击等高频考点,是密码学进阶学习的重点,掌握本题基础后可以进一步学习高阶 RSA 漏洞利用手法。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)