baigeiRSA--攻防世界

下载看到附件:

import libnum
from Crypto.Util import number
from secret import flag
 
size = 128
e = 65537
p = number.getPrime(size)
q = number.getPrime(size)
n = p*q
 
m = libnum.s2n(flag)
c = pow(m, e, n)
 
print('n = %d' % n)
print('c = %d' % c)
n = 88503001447845031603457048661635807319447136634748350130947825183012205093541
c = 40876621398366534035989065383910105526025410999058860023908252093679681817257

 认识RSA:

baigeiRSA--攻防世界_第1张图片

baigeiRSA--攻防世界_第2张图片

带你彻底理解RSA算法原理_rsa工作原理-CSDN博客

简单分析:

下载yafu:https://blog.csdn.net/CliffordR/article/details/82747087

yafu分解n:

baigeiRSA--攻防世界_第3张图片

exp:

from libnum import *
from Crypto.Util.number import *
from gmpy2 import *

e = 65537
n = 88503001447845031603457048661635807319447136634748350130947825183012205093541
c = 40876621398366534035989065383910105526025410999058860023908252093679681817257

q=274539690398523616505159415195049044439
p=322368694010594584041053487661458382819

phi=(q-1)*(p-1)
d=invert(e,phi)
m = pow(c, d, n)

print(long_to_bytes(m))

baigeiRSA--攻防世界_第4张图片

flag:

HSCTF{@Zh3n_Ba1_G3i!@}

你可能感兴趣的:(密码学-RSA系列,密码学,python,网络安全)