from Crypto.Util.number import * from flag import flag
assert flag.startswith(b'SHCTF{')
m = next_prime(bytes_to_long(flag)) p = getPrime(512) a,b = getPrime(128),getPrime(128) E = EllipticCurve(Zmod(p),[a,b]) k = getPrime(256) A1 = E.random_point() A2 = A1*k M = E.lift_x(m) C = M+A2
p = 9799485259524549113003780400336995829253375211044694607315372450399356814285244762186468904824132005209991983177601498069896166228214442123763065076327679 k = 73771953838487511457389800773038323262861649769228176071578897500004883270121
import gmpy2 from Crypto.Util.number import long_to_bytes
n = 109107602100083925434534585854846831236367603422316141347264137431302883470878923089749415207692012162155876778433717629342677316345731989945596067366116672567736273807718413809647914537764235761542424897238828392953295052578070312924153469401927457894377311164918422725712644346523111884028669119193975313887 c = 12365023456688645580386013142401018678669277172751038338862050435558830037797597611468398293100628165715843800273910908523113026689604063358765532741066964819435916168186673401044725950148852461706560086575130200892491873160148840462376185674368155136548141795152470696307075032455110914362528191482417145054 e = 1110502004037199148392049197465263263258201603154804199229233 dp = 3275908895382252717938319219921393159589684865527587914026986407331495145759978971843598067552610402795251010991143945338216738101191449912695396060306987
p=gmpy2.gcd(pow(3,e*dp,n)-3,n) q=n // p phi=(p-1)*(q-1) d=gmpy2.invert(e,phi)
import gmpy2 from Crypto.Util.number import long_to_bytes
n = 4186638789266977215701176406902225153580897798738374778190546920953456120773405529907877295436545488469674635531209549868315266718331642076467662180105755639770292506252529987461772914357288415820521682440518534463618953638844660234376343358577530665662965586577666423222977193832113032528182580888600345392172267 e = 65537 c = 1101497471412301437262774092373565647672283526174670758698538912172368368818345084954023566146183938314237997217377433629432867021863253208574722128961878717486680977557664225793339730281222164389006116794870197114163633751309928211749128540642890687695741098247036592774972659188774127813915341533193950474979408
a = 2 k = 2 whileTrue: a = pow(a, k, n) p = gmpy2.gcd(a-1, n) if p != 1and p != n: q = n // p print("p=",p) print("q=",q) break k += 1
from Crypto.Util.number import long_to_bytes import gmpy2
c1= 671390498592586008552998377599101093977542184109077889081448730480869018650843045119891777468161631085086340705902115332025675787789530562679603254577287153918966364523848382506106179394235772395029788721306186952016420794804145631124905952103136061076643266886961178241381892015555099638200222249447194504082451341122502519637821695210573997670753981061458264118355417889153180841281073262935937836447460470926729282834006229571453935760593644658459098721652426154970766417292435960463905367868753821950303919781798234432998272038029063155193184039985018137026245365188171178677898869374676546799536208952198558258306460302868688355653022725288744014143221560882404431652751343944983442109327 c = 8641190030376811670503537177719719233418166235794962118828671236836174132083208517733734760455990850156371205118391537919769888760384574011411232571257192285256730733174399297826587479261381970232162702657952399683882650083181048279650913795429823628186888540572704055008102853692060360140858142686334722286525699998854566609078547487420929457446776757558492454916447188774943818970599916514467335772992690805247630814156710861067503956707301402347944233660194395192354000788262111000900574820275786269075882923600474781645848712157460135387134196156906258218217831988828360827613420801773911833194097791649069743116686685667300622630909231822986237104627385544169938138006242341269672868611269202418482629393372933567053272565557137741441902377611003983050084491513897727856173625922194300103448148829004025229567101761111396110940066254801762424343522707712480796358754008120503317686600144600226149617189681233392693738216138797012278242152852923361635415564580582002132107424154426980566696622448291815571736676562214017436 n = 1076246859437269645898003764327104347852443049519429833372038915264009774423737482018987571807662568251485615769880354898666799006772572239466617428164721157850526408878346223839884319846641438292436373441749602341461361190584638190903978829024853974880636148520803145113551453821058269641304504880310836801494499720662704717315748614372503735165114899680682056477494953525794354656896362929510309669119173103242509398650608116835276076364248473952717811633756784397347121601006659623317417388283638159905288128181587304367489096254611610975352096229116491567502061775862811850081040850421151385474249060884479729988512713640536139010928836126719149031115182144744359297169350288886555784650111 p1 = 145356063641618996012874664536921616978986640263438210169671010403677822239343590475177543891188656103067696467174379510912427160232486984044862545338401652910975162942038201716552753723984593267892098222213049269335313670049037479410635628460505327693176152061750827570561482918795206276991967169087371403553 e = 65537
from secret import flag from Crypto.Util.number import* from gmpy2 import*
flag = b'D0g3xGC{****************}'
defgen_key(p, q): public_key = p*p*q e = public_key n = p*q phi_n = (p-1)*(q-1) private_key = inverse(e,phi_n) return public_key,private_key,e
p = getPrime(512) q = getPrime(512)
N,d,e = gen_key(p,q)
c = gmpy2.powmod(bytes_to_long(flag),e,N)
print(N) print(d) print(c) ''' n = 539403894871945779827202174061302970341082455928364137444962844359039924160163196863639732747261316352083923762760392277536591121706270680734175544093484423564223679628430671167864783270170316881238613070741410367403388936640139281272357761773388084534717028640788227350254140821128908338938211038299089224967666902522698905762169859839320277939509727532793553875254243396522340305880944219886874086251872580220405893975158782585205038779055706441633392356197489 d = 58169755386408729394668831947856757060407423126014928705447058468355548861569452522734305188388017764321018770435192767746145932739423507387500606563617116764196418533748380893094448060562081543927295828007016873588530479985728135015510171217414380395169021607415979109815455365309760152218352878885075237009 c = 82363935080688828403687816407414245190197520763274791336321809938555352729292372511750720874636733170318783864904860402219217916275532026726988967173244517058861515301795651235356589935260088896862597321759820481288634232602161279508285376396160040216717452399727353343286840178630019331762024227868572613111538565515895048015318352044475799556833174329418774012639769680007774968870455333386419199820213165698948819857171366903857477182306178673924861370469175 '''
from Crypto.Util.number import long_to_bytes n = 539403894871945779827202174061302970341082455928364137444962844359039924160163196863639732747261316352083923762760392277536591121706270680734175544093484423564223679628430671167864783270170316881238613070741410367403388936640139281272357761773388084534717028640788227350254140821128908338938211038299089224967666902522698905762169859839320277939509727532793553875254243396522340305880944219886874086251872580220405893975158782585205038779055706441633392356197489 d = 58169755386408729394668831947856757060407423126014928705447058468355548861569452522734305188388017764321018770435192767746145932739423507387500606563617116764196418533748380893094448060562081543927295828007016873588530479985728135015510171217414380395169021607415979109815455365309760152218352878885075237009 c = 82363935080688828403687816407414245190197520763274791336321809938555352729292372511750720874636733170318783864904860402219217916275532026726988967173244517058861515301795651235356589935260088896862597321759820481288634232602161279508285376396160040216717452399727353343286840178630019331762024227868572613111538565515895048015318352044475799556833174329418774012639769680007774968870455333386419199820213165698948819857171366903857477182306178673924861370469175