n是p的r次方


出题脚本

import libnum

#生成随机素数
p=libnum.generate_prime(256)
e=65537
m="flag{de8c3ea714f7f780185924d473997bcb}"
#字符串转数字
m=libnum.s2n(m)
n=p**4
phi_n=p**4-p**3
#求逆元
d=libnum.invmod(e,phi_n)
c=pow(m,e,n)

print ("n=",n)
print ("e=",e)
print ("c=",c) 

解密脚本

import libnum 
import gmpy2 
n= 23219089633250510580388184338893261190159425274266091829251069678345101374315005119889075848991325948461687799542168350589180122396501651434531030343667226410506241902501479054317717625217008857112114881864252928341340770771920275461651508679148124345837511394681152499950625703121385320234450147885925563601 e= 65537 
c= 4777659110099869449331032200405354033599223023041765916601886190091487314989244505694085724093454432510462782520998688417537643026221506529296297782026160739262075190691284018675189858368054339063575534858807322887095235742287437139426799368719305846674897884286541494038433345483824310623372192122891409065 #分解n #yafu-x64.exe factor() p=69416273731307471601239913553838998413594935515871627319658832112504691596643 phi_n=p**4-p**3 
#求逆元 
d=libnum.invmod(e,phi_n) 
m=pow(c,d,n) print(m) 
#数字转字节,转字符串 
print(libnum.n2s(int(m)).decode()) 

文章作者: f14g
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 f14g !
评论
  目录