2023年磐石行动第二十五周

第二十五周 20231012

1、rrrsssaaa

题目源码

from Crypto.Util.number import *
from gmpy2 import *
from secret import flag

p = getPrime(512)
q = getPrime(128)
r = getPrime(512)
a = p**3 + q**4
n = p * q * r
e = 65537
m = bytes_to_long(flag)
c = powmod(m,e,n)

print('a =', a)
print('n =', n)
print('c =', c)

'''
a = 1001757897913772351510420195662626456337522550684606727483773096673299029784598925879489541145425035208954548434364407129536623872359866140502945055841821765538135618785958230881698432164666106480484384998915283051445946164568339012311071022667483689786104241205203770248137327154122271358173278768580995401804353335810303663245624828137303106291342454008598042561788843169528260839797410662782024780465758566251328065946252974178694612662193108827812380093012592
n = 19743856964263732842999962921764407899550835757434895392940479421960735302959163991849377985049404173836251900687827441599500422841626517558622567745437335569126719161072741233680254267603047267283814233895186061759120509099394028737117210315668037567644106922178370110286156290354552013641623466808054072066874721501635305497521532247446583415341
c = 11573369450591319755076158585550356804136715495771905025393681593171072453674223539740220735995000501270745453812328856003963738281166754397539243769043057759237596024541470868109828449256053991918612982581009998827964614610819962346527488888094333196535012014776795315145414671509148454534127080694322513052946539505422338224596999797852421340273
'''

exp如下:

import gmpy2
from Crypto.Util.number import *

a = 1001757897913772351510420195662626456337522550684606727483773096673299029784598925879489541145425035208954548434364407129536623872359866140502945055841821765538135618785958230881698432164666106480484384998915283051445946164568339012311071022667483689786104241205203770248137327154122271358173278768580995401804353335810303663245624828137303106291342454008598042561788843169528260839797410662782024780465758566251328065946252974178694612662193108827812380093012592
n = 19743856964263732842999962921764407899550835757434895392940479421960735302959163991849377985049404173836251900687827441599500422841626517558622567745437335569126719161072741233680254267603047267283814233895186061759120509099394028737117210315668037567644106922178370110286156290354552013641623466808054072066874721501635305497521532247446583415341
c = 11573369450591319755076158585550356804136715495771905025393681593171072453674223539740220735995000501270745453812328856003963738281166754397539243769043057759237596024541470868109828449256053991918612982581009998827964614610819962346527488888094333196535012014776795315145414671509148454534127080694322513052946539505422338224596999797852421340273
e = 65537

p = gmpy2.iroot(a,3)[0]
q = gmpy2.iroot(a-p**3,4)[0]
r = n//p//q
phi = (p-1)*(q-1)*(r-1)
d = gmpy2.invert(e, phi)
m = gmpy2.powmod(c, d, n)
print(long_to_bytes(m))

2、dasfactor

题目源码如下:

from Crypto.Util.number import getPrime
from gmpy2 import invert
from secret import flag
import libnum

p = getPrime(256)
q = getPrime(256)
n = p * q
e = 0x10001
m = libnum.s2n(flag)
c = pow(m, e, n)

N = pow(p, 5) * pow(q, 3)
PHI = pow(p, 4) * pow(q, 2) * (p - 1) * (q - 1)
D = getPrime(1400)
E = invert(D, PHI)

print('c = %d' % c)
print('N = %d' % N)
print('e = %d' % E)

c = 5029723337007818808832754776759893887444879662801349712576810470262312396754408718170770707925015017385645584442512000797339170647864326108311590562844171
N = 3759675650502563695153151584917824507854926661732907939028389279774124406013042838546953581576073208871094857148508406802633489701504134249499597914542124463779252098837657394974239335884726202413862183404321654463922171057401752386333809584179109491691851156579178452248534783401568199131101637952819524702798663560557483668765136026315271419314073036116879338555727777506342904334411379055692051548735524394491162124016936020960278594934832905479002480160251814228947417553571414430429706482587579876807513469399180281619097937606917846073419200176183340717568702116796677513739961828976919478654457637451826294933
e = 229008556409573164371978380452021106688588097729158338468248213917888175178492067982525826582582124769664067336853325793830736524069028120877995293076501685071845478613891814063550943140421907014666043731432899819999451833948917119826997988890110827467830371163637151737633259525347140559518939332719377544459045827417076412346696030494989054139185610912700663962872185889165738547511312375915148946228556442812249150675925829256431970480221003802721711007352304700373376185262322264329636611961422545471143841872105226762691690138343686371843086125054384530349905361116692007292869579146352767879179902925722367519
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值