#!/usr/bin/python # encoding=utf-8 import random from libnum import n2s, s2n from Crypto.Util.number import getPrime
# 此flag并非最终flag x代表被隐藏的数据 flag = 'CnHongKe{xxxxxxxx}'
m = s2n(flag) p = getPrime(1024) q = getPrime(1024) n = p * q e = 65537 c = pow(m, e, n) print ('n = ' + str(n)) print ('e = ' + str(e)) print ('c = ' + str(c)) for i in range(5): print ('Round ' + str(i) + ':') x = random.randint(1, 0xdeadbeef) y = random.randint(1, 0xc0ffee**2) print (x * p + m % p) print (y * p + m % q)
output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
n = 18230475022241107111502009638144846326462697444793977522162755140392028775630333139671570413968300055609624732905017576492318481049765719395178101917259078950491478404619212930712962176370474793458264542428174411648984385496415515888450236492639103655837968758912001127881298014373833492044054447538368777351959472828103490523519402499794625509544746224849131358391427803274660727365008334321515127913963267671553671133511956626749027063348684700062145214335868463058803066936646958127471845539276593962708044406490592998414273667232017530502712947165832917826753479338315450193449553506830399223036433213690635128087 e = 65537 c = 15001175319610946795222343924035487534008584709461878226143899906448843850120779928420944432465029785752971033689199065870408351794155945446686524700533470562991172384667710059451805009008305424805670596038911747645784329532786626324397778412957726495683422766522190746132188570946996332382787096032520348015914534837388916434188111744452280796833969638220556402855250673116813135921244590931278405785233581054716410417094016443403162280210104793301955569199264527668487539968506401974401995182691110545367915121198605642021603473376124400893881587208659717458033485422058304753162014771566156332810928502706804188737 Round 0: 47412728457745107106229027875259915648117103420044851871432992390178293593742914249866218522299698221781523771204375698745834487768864026409236512650009369501262196610608810334550791704365598969347066570672288841970107828704284424948297545299783041893922010965750083395574150504265229076349930292160436806574389307547 7151707571018794760876945899933828229145285573863576752865419158057935066014037290005780895245867810865116180154261908773240188847332693040946388709971429510641144658284756647717343337707189427886779134548103093596247917788448752584977147282207642265848763954965527098894273648060044295529160371099547280549240966801721056 Round 1: 86373908688190255108650922007330281242126635289292162039632402486539085755381492920050696186734107745876867540145298584182833089866456957702579079961268274186732194322193257970543632758510745323419171622735686426403527865980864189590088362168524820089760626009455736356904303430576008409321011228550702593460370154288 2739935163495322226296432842224432219815216025857635076958538964367641637837049807921996841802564467860170020056367256733719298729708060408741418149594763338760354925458404370138268461462191203576226734193278121792897686765638999384542960842700219908698775641786917353762507804532914821917178625996615671681334548749254429 Round 2: 15687554054832614360988742146490243595902020103032206429227782729844721078982137095466551882269747779142430460253454282190038058781992815802422733978085083098933991490277861599932099266191780563533577946414010597217513036108133130299260634025149883253291282013012600129526038544341494928677039830828249693520289847945 6435898081098312069193282341795915540261240598097490572271117490404376893304608004242439429312067951872804606757594603664301726541469229980157872229889782597976018733187194019143564854886058611915569783145503336546231380867908138879395210171706016651896401473392042420379329349589828280175940543607255416772431728188653211 Round 3: 124406465365494593150435052733515823072823170460491296026120656362244377437798061499623437952508101280479833325781339254475807502914410747844180618686595086868560892928752822875608133056170303090816121179406750530664088842659591750077533970086596825128053222046148639796312807976724883488231077768029334573827303301330 2613152126801235357605926409607555343634108914027445071424442563126602477314913418861534894059503269620876330215953120889484754924193784240242501571144710581424329983597503905140732556630904193447578828203223856219775397959234902308004140088085501789332051140882380419734289335488635960244365807950078568282028343410707589 Round 4: 284949676165523240398401316748486080499904237489742012461482352950411406038750742409921658105207491249100429933355996423446487597220482804381100033750232429224198596468209169113267880573088869328903032280568067097643797391791880140954369321732726087613395297706606074309398400985128432414291795513937986079041427040899 122752138534817317154139913828763607868537178753889435773820061347875458481657673655777638644954724226442684466601221000123146328227519319228427585553483003026793833527
from Crypto.Util.number import * from gmpy2 import * from libnum import n2s, s2n
n = 18230475022241107111502009638144846326462697444793977522162755140392028775630333139671570413968300055609624732905017576492318481049765719395178101917259078950491478404619212930712962176370474793458264542428174411648984385496415515888450236492639103655837968758912001127881298014373833492044054447538368777351959472828103490523519402499794625509544746224849131358391427803274660727365008334321515127913963267671553671133511956626749027063348684700062145214335868463058803066936646958127471845539276593962708044406490592998414273667232017530502712947165832917826753479338315450193449553506830399223036433213690635128087 e = 65537 c = 15001175319610946795222343924035487534008584709461878226143899906448843850120779928420944432465029785752971033689199065870408351794155945446686524700533470562991172384667710059451805009008305424805670596038911747645784329532786626324397778412957726495683422766522190746132188570946996332382787096032520348015914534837388916434188111744452280796833969638220556402855250673116813135921244590931278405785233581054716410417094016443403162280210104793301955569199264527668487539968506401974401995182691110545367915121198605642021603473376124400893881587208659717458033485422058304753162014771566156332810928502706804188737