一、前言

RSA 加密算法是 CTF 密码学板块的必考基础题型,本题为经典新手入门题型,采用小模数、小指数的简易 RSA 加密场景。通过本题可以完整掌握 RSA 加解密的核心流程,理解质因数分解、欧拉函数、模逆元计算等基础密码学知识点,是入门密码学的必备练习题。

二、题目介绍

题目给出标准 RSA 加密参数,模数 n 为 221,加密指数 e 为 3,密文 c 为 124。加密公式为 c 等于 m 的 e 次方对 n 取模,要求选手通过已知参数解密,计算出原始明文 m,拼接得到对应 Flag。

三、考察知识点

  1. RSA 加密算法基础原理
  2. 小模数质因数分解
  3. 欧拉函数计算方法
  4. 模逆元与私钥求解
  5. 小指数 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 漏洞利用手法。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐