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进制转字符输出
相关推荐
应长天1 天前
密码学(斯坦福)
密码学
Turbo正则2 天前
量子计算基础概念以及八大分支
密码学·量子计算
网安INF13 天前
公钥加密与签名算法计算详解(含计算题例子)
网络·算法·网络安全·密码学
电院工程师14 天前
基于机器学习的侧信道分析(MLSCA)Python实现(带测试)
人工智能·python·嵌入式硬件·安全·机器学习·密码学
电院工程师15 天前
SM3算法C语言实现(无第三方库,带测试)
c语言·算法·安全·密码学
小七mod17 天前
【BTC】密码学原理
web3·区块链·密码学·比特币·btc·肖臻·北大区块链
电院工程师22 天前
轻量级密码算法PRESENT的C语言实现(无第三方库)
c语言·算法·安全·密码学
电院工程师22 天前
轻量级密码算法CHAM的python实现
python·嵌入式硬件·算法·安全·密码学
电院工程师23 天前
SM3算法Python实现(无第三方库)
开发语言·python·算法·安全·密码学
网安INF23 天前
SHA-1算法详解:原理、特点与应用
java·算法·密码学