• 2020金融密码杯


    k = (p-r)*d

    1. from crypto.Util import number
    2. from gmpy2 import *
    3. from secret import flag
    4. e = 65537
    5. p = number.getPrime(2020)
    6. q = number.getPrime(2020)
    7. n = p*q
    8. print "n"
    9. print n
    10. r=number.getPrime(150)
    11. phi = (p-1)*(q-1)
    12. d = invert(e,phi)
    13. k = (p-r)*d
    14. print "k"
    15. print k
    16. constant = 21984859824026882810575522264245671634373273283085819951236985457203975991204630506817354315760888340497144753325078495829441321520328008
    17. enc = pow(flag,e,n)
    18. print enc
    19. #n = 6208295095230965527051536112000533217839751707756137908689973343594740737273300354882129471790714061579212141521581437573460066428133649162617863798753061370588336642335739339329613056883099651589308826111251776898753907314632389883177359017441888763223292622107128583258543531273336647405476200600917013260267314276022159445864197757712897885890854119653893171237545237981945487975245520840182827388451488702292468728600894312080618460031716132281505447335749736831056784298081375564578927881638220995825783699017195380034033633092930114002940220082046160549839416526065794581431429452394640960314664745748345227111821047784999527563842871234894970512905495663697240904372920397005450669334608992877133419875553875614453855618749883285471661896614833691033148699474686541316002300677547538245923306083943090911305974072563616074243672776429442348786508433149702766447560408164285366303627833919809181061145119509318456203914995302340361618091130936945986909934911722676548619873395539367474494509438516170722972298004960507801571285491242421724552425359334100565459242186463476014933104548497198625413988182897958933335697662011218563183239333745855774679553947704835779907385101526868306238220311371681276863842231
    20. #k = 174702896315117390718298550391733401770697163847889747416364150400419812071457698494398043304401359739938563272125249211135824393385102061842977026829760629419742000557000963040827888604358013660061225334148832195220259528792531111936988654351045546936541543605127776624260793527487095106531932444142586693591607594750134838434470057526225241675399283876710489046107485931333061116247820913203944886266682068729851681413999395889518117948259592988022573702549030153060793486912550292914671330697470182981310074516969558680442408176452549741581379882955106745012064109454462769581833363439333786396266084989594634232957948965219390777777545170747435360180248098889932493057730872369009094398065442899060004383505999512203518664609795157759350078816781770322631263792090749872633814326298094388072222285964930775160710511638462379786468669231646956446691746833228078591390375659486369797990486495500362103141415966391199947702708931019998496563589441223400733409451140485297753692328570193425464759227119448672966411646082176073007418127284333323954117803525715930782589109348511179812599213788322336195029451637432118511059679197840096617262213370886378526356977166213683890645808447823390128172512097177488442334924515499710337871516123611521172247200806205903791817987645980356817928986880798238418424044295831972837153091486095043907068268400119329629419287317761829035888796256156007987635671529878148201972919111890003223978148999780646676130645548906687967084594944669850284116689804534712597140711075997429780131562428140460803670948161951825832257105326362674824886648316277076851327663792233026404886325100529452795193337935126431362534893622991774284118103617317175436518227455386161940363242875774807020460783218591963060392648215987824605731332195705888844735458676177619633219926129455567809866871676456316007682
    21. #enc = 4795383752584993844108516429900258655661133850684807983071809951024460134759443108711074145909903916787198089413007221022708957360387687246839870355853873320697294017198060440536565273293028173149449287858317538701346918185537758158979284778830859951570957039440297443034120895547087835155290991383854801865693151448144864280946260237799144242603047953661573879773697195696931305160351524780656251285150716877471124822978853888136398127235399185024540381484422531594988834393950441752346442081320006303897535117725780985810927050047417232272737534953530835287354839216047459279586160388879667632181304071755107446032180443940895072258776134576187686901154748162848341532366356932681486492014760528711156453506050743800569562706083682519279189677643805371751092585778158805420204598082895239498745045959757904340141459680787846778202752411527631773720922322510572433358025752903092041363930741249051500266046069790070705316167071788993233531210102049461238375258234005083647266408322008954149845330842701381602137178841481123296635974736568689673738594360438783452112994409770607969904487028956775307780187978779426080243193778210339547019908431953870315056108247202334941716764539141863537230973025019209112307218375
    22. #hint:8*r^3+240*r^2+2400*r=constant

    phi=(p-1)*(q-1)

    e*k≡p-r (mod phi)

    e*k+r-p | phi

    2**phi%n≡1

    2**(e*k+r-p)%n≡1

    2**(e*k+r)%n≡2**p

    2**(e*k+r-1)%n≡2**(p-1),     2**(p-1)%p≡1

    2**(e*k+r-1)%n-1|p

    GCD({2**(e*k+r-1)%n-1},n)=p

    solve

    1. n = 6208295095230965527051536112000533217839751707756137908689973343594740737273300354882129471790714061579212141521581437573460066428133649162617863798753061370588336642335739339329613056883099651589308826111251776898753907314632389883177359017441888763223292622107128583258543531273336647405476200600917013260267314276022159445864197757712897885890854119653893171237545237981945487975245520840182827388451488702292468728600894312080618460031716132281505447335749736831056784298081375564578927881638220995825783699017195380034033633092930114002940220082046160549839416526065794581431429452394640960314664745748345227111821047784999527563842871234894970512905495663697240904372920397005450669334608992877133419875553875614453855618749883285471661896614833691033148699474686541316002300677547538245923306083943090911305974072563616074243672776429442348786508433149702766447560408164285366303627833919809181061145119509318456203914995302340361618091130936945986909934911722676548619873395539367474494509438516170722972298004960507801571285491242421724552425359334100565459242186463476014933104548497198625413988182897958933335697662011218563183239333745855774679553947704835779907385101526868306238220311371681276863842231
    2. k = 174702896315117390718298550391733401770697163847889747416364150400419812071457698494398043304401359739938563272125249211135824393385102061842977026829760629419742000557000963040827888604358013660061225334148832195220259528792531111936988654351045546936541543605127776624260793527487095106531932444142586693591607594750134838434470057526225241675399283876710489046107485931333061116247820913203944886266682068729851681413999395889518117948259592988022573702549030153060793486912550292914671330697470182981310074516969558680442408176452549741581379882955106745012064109454462769581833363439333786396266084989594634232957948965219390777777545170747435360180248098889932493057730872369009094398065442899060004383505999512203518664609795157759350078816781770322631263792090749872633814326298094388072222285964930775160710511638462379786468669231646956446691746833228078591390375659486369797990486495500362103141415966391199947702708931019998496563589441223400733409451140485297753692328570193425464759227119448672966411646082176073007418127284333323954117803525715930782589109348511179812599213788322336195029451637432118511059679197840096617262213370886378526356977166213683890645808447823390128172512097177488442334924515499710337871516123611521172247200806205903791817987645980356817928986880798238418424044295831972837153091486095043907068268400119329629419287317761829035888796256156007987635671529878148201972919111890003223978148999780646676130645548906687967084594944669850284116689804534712597140711075997429780131562428140460803670948161951825832257105326362674824886648316277076851327663792233026404886325100529452795193337935126431362534893622991774284118103617317175436518227455386161940363242875774807020460783218591963060392648215987824605731332195705888844735458676177619633219926129455567809866871676456316007682
    3. enc = 4795383752584993844108516429900258655661133850684807983071809951024460134759443108711074145909903916787198089413007221022708957360387687246839870355853873320697294017198060440536565273293028173149449287858317538701346918185537758158979284778830859951570957039440297443034120895547087835155290991383854801865693151448144864280946260237799144242603047953661573879773697195696931305160351524780656251285150716877471124822978853888136398127235399185024540381484422531594988834393950441752346442081320006303897535117725780985810927050047417232272737534953530835287354839216047459279586160388879667632181304071755107446032180443940895072258776134576187686901154748162848341532366356932681486492014760528711156453506050743800569562706083682519279189677643805371751092585778158805420204598082895239498745045959757904340141459680787846778202752411527631773720922322510572433358025752903092041363930741249051500266046069790070705316167071788993233531210102049461238375258234005083647266408322008954149845330842701381602137178841481123296635974736568689673738594360438783452112994409770607969904487028956775307780187978779426080243193778210339547019908431953870315056108247202334941716764539141863537230973025019209112307218375
    4. constant = 21984859824026882810575522264245671634373273283085819951236985457203975991204630506817354315760888340497144753325078495829441321520328008
    5. e= 65537
    6. # hint:8*r^3+240*r^2+2400*r=constant
    7. from sympy import *
    8. r = symbols('r')
    9. result = solve([8*r**3+240*r**2+2400*r-constant],r)
    10. print(result)
    11. r=result[0][0]
    12. kp=pow(2,int(e*k+r-1),n)-1
    13. p=gcd(kp,n)
    14. q=n//p
    15. assert p*q==n
    16. phi=(p-1)*(q-1)
    17. d=pow(e,-1,int(phi))
    18. m=pow(enc,d,n)
    19. import libnum
    20. print(libnum.n2s(m))
    21. b'flag{math_is_interesting}'

  • 相关阅读:
    设计院图纸加密防泄密方案——天锐绿盾加密软件@德人合科技
    观测云产品更新 | 优化日志数据转发、索引绑定、基础设施自定义等
    14 【接口规范和业务分层】
    FPGA 之 时序分析
    Vue3.3 新特性 - 初体验
    Tomcat HTTP Status 404 tomcat 404问题解决
    玩转MySQL:你知道什么是表分区吗
    perfma:JVM工具
    uniapp 富文本以及移动端富文本的展示问题
    HarmonyOS/OpenHarmony应用开发-DevEco Studio新建项目的整体说明
  • 原文地址:https://blog.csdn.net/amber_o0k/article/details/134191936