Crypto | CTF】BUUCTF RSA2

天命:密码学越来越难了,看别人笔记都不知道写啥

天命:莫慌,虽然我不会推演法,但我可以用归纳法

虽然我不知道解题的推演,但我可以背公式啊哈哈哈

虽然我不会这题,但是我也能做出来

公式我不知道如何推演,但是每一步具体要干什么,我还是能很清楚分析

通过哪些能得到哪一个,每一个东西的作用还是能理解的

步骤一:首先通过遍历公钥e,放入公式,寻找p 和 q

步骤二:也就是说有公钥e 和 质数相乘 和 一半的明文

步骤三:就能利用这个公式得到 两个质数:p 和 q

步骤四:常规计算 -> 通过两个质数计算欧拉函数

步骤五:计算 e 关于 欧拉函数的模逆:d

步骤六:把模逆和质数相乘放入函数就能解密密文,得到明文

python 复制代码
from gmpy2 import *
from Crypto.Util.number import *

e = 65537
n = 248254007851526241177721526698901802985832766176221609612258877371620580060433101538328030305219918697643619814200930679612109885533801335348445023751670478437073055544724280684733298051599167660303645183146161497485358633681492129668802402065797789905550489547645118787266601929429724133167768465309665906113
dp = 905074498052346904643025132879518330691925174573054004621877253318682675055421970943552016695528560364834446303196939207056642927148093290374440210503657

c = 140423670976252696807533673586209400575664282100684119784203527124521188996403826597436883766041879067494280957410201958935737360380801845453829293997433414188838725751796261702622028587211560353362847191060306578510511380965162133472698713063592621028959167072781482562673683090590521214218071160287665180751

# 遍历从 1 到 e-1 的所有整数,尝试寻找n的质因子 p
for i in range(1,e):
    # 这里公式我也不太懂的
    # 如果能被i整除,则检查n是否有一个因子等于 (dp*e-1) // i + 1
    if (dp * e -1)%i == 0:
        if n % (((dp * e -1) // i ) + 1) == 0:
            # 如果找到这样的因子p,则计算另一个因子q
            p = ((dp * e - 1)//i) +1
            q = n // (((dp * e - 1) // i) +1)

            # 计算欧拉函数phi,phi = (p-1) * (q-1)
            phi = (q-1) * (p-1)

            # 使用扩展欧几里得计算e关于phi的模逆d
            d = invert(e,phi)

            # 使用得到的d和n对密文c进行解密,得到明文m
            m = pow(c,d,n)
            break

print(long_to_bytes(m))  # 照旧,把ma转16进制转字符输出
相关推荐
傻小胖2 天前
第2讲:BTC-密码学原理 北大肖臻老师客堂笔记
笔记·web3·密码学
courniche5 天前
金融数据密码机、服务器密码机、签名验签服务器、时间戳服务器4款相比较
密码学
漏洞文库-Web安全5 天前
CTF密码学之SM4
安全·web安全·网络安全·密码学·ctf
HaiLang_IT5 天前
2026年密码学专业选题全攻略:从数字签名到漏洞挖掘的精选选题指南
密码学
搬砖魁首5 天前
密码学系列 - ECDSA vs. EdDSA:主要区别
密码学·签名·ecdsa·eddsa
C++ 老炮儿的技术栈6 天前
用密码学安全随机数生成256位密钥
c语言·开发语言·c++·windows·安全·密码学·visual studio
聊询QQ:688238866 天前
顶刊复现基于球形向量改进的粒子群算法PSO的无人机3D路径规划,spherical vecto...
密码学
ZFJ_张福杰6 天前
【技术深度】【安全】Remote Password Protection:一套密码永不上传的登录协议方案(含盲签 + Pairing + Crypto 模块)
安全·密码学·零信任·hsm·双线性映射·远程密码保护
wsx_iot8 天前
密码学基础
密码学
洒家肉山大魔王9 天前
PKCS#7填充
密码学·crypto·p7填充·填充处理