[NPUCTF2020]EzRSA

本文介绍了NPUCTF2020中EzRSA挑战的解决过程,涉及RSA加密系统的解密步骤。通过使用factordb分解给定的n、p-1和q-1的最小公倍数,获取p和q的值。由于发现e与phi的最大公约数为2,需要将e除以2后再进行常规解密操作。最后,利用p、q、e和密文c成功解密并获得flag。
摘要由CSDN通过智能技术生成

[NPUCTF2020]EzRSA

附件:

from gmpy2 import lcm , powmod , invert , gcd , mpz
from Crypto.Util.number import getPrime
from sympy import nextprime
from random import randint
p = getPrime(1024)
q = getPrime(1024)
n = p * q
gift = lcm(p - 1 , q - 1)
e = 54722
flag = b'NPUCTF{******************}'
m = int.from_bytes(flag , 'big')
c = powmod(m , e , n)
print('n: ' , n)
print('gift: ' 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值