Normal_RSA Writeup

本文详细介绍了使用RSA加密算法进行大整数分解的过程。首先通过openssl获取RSA公钥参数,然后利用yafu工具对大素数乘积进行分解,接着尝试使用rsatool生成私钥文件,最后通过私钥解密加密文件以获取flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验环境:
Ubuntu1904

实验工具:
openssl
rsatool.py(可在https://github.com/adeptex/rsatool或者https://github.com/ius/rsatool(免安装)上下载)
yafu(可在https://github.com/DarkenCode/yafu上下载)
分析过程
1、我们将下载的压缩包crypto7.rar解压
发现有两个文件:
密码文件
首先我们使用openssl提取出public.pem中的相关参数(关于openssl的相关知识,可以自行google),命令如下:

openssl rsa -pubin -text -modulus -in warmup -in pubkey.pem

会得到如下结果:
openssl运行结果从中我们可以得到两个大素数的乘积(n)为:
c2636ae5c3d8e43ffb97ab09028f1aac6c0bf6cd3d70ebca281bffe97fbe30dd,转化为十进制则为:87924348264132406875276140514499937145050893665602592992418171647042491658461
2、对n进行大整数分解</

### 关于标准 RSA 加密算法的信息 #### RSA 算法概述 RSA 是一种基于数论的公钥加密技术,由 Ron Rivest、Adi Shamir 和 Leonard Adleman 于 1978 年发明。该算法的安全性依赖于大整数分解难题。 #### 密钥生成过程 为了创建一对用于加密和解密消息的公私钥对: - 随机选择两个不同的质数 p 和 q。 - 计算 n = pq;n 的长度通常是 2048 或更多比特。 - 计算欧拉函数 φ(n) = (p−1)(q−1)。 - 选取一个小于 φ(n) 且与其互素的整数 e,通常取 e=65537。 - 找到满足 ed ≡ 1 mod φ(n) 的唯一正整数 d(即求模反元素),d 即为私钥的一部分[^2]。 #### 加密与解密操作 对于明文 m 及其对应的密文 c: - **加密**: 使用接收方公开发布的公钥(e,n),计算 \(c=m^{e}\mod{n}\)。 - **解密**: 利用只有持有者才知道的秘密指数 d 来恢复原始信息\(m=c^{d} \mod {n}\)。 需要注意的是,在实际应用中不建议直接对数据进行纯文本形式下的上述运算,因为这可能导致安全风险。因此一般会先采用某种填充方案处理输入再执行加/解密流程。 下面给出一段 Python 实现示例来展示如何利用 `pycryptodome` 库完成基本功能: ```python from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP import binascii keyPair = RSA.generate(2048) pubKey = keyPair.publickey() print(f"Public Key: (N={hex(pubKey.n)}, E={hex(pubKey.e)})") print(f"Private Key: (N={hex(keyPair.n)}, D={hex(keyPair.d)})") encryptor = PKCS1_OAEP.new(pubKey) encrypted = encryptor.encrypt(b'Attack at dawn') print("Encrypted:", binascii.hexlify(encrypted)) decryptor = PKCS1_OAEP.new(keyPair) decrypted = decryptor.decrypt(encrypted) print('Decrypted:', decrypted.decode()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值