安徽大学生攻防赛 crypto-wp

本科组

cr1

古典密码

ON4W45D3G44TC4TSGU3DKLLOONYXELJUG43TELJYHFXDOLJWOBYXC4JWOEYDQNRTON6Q==

base32

synt{791rr565-nsqr-4772-89n7-6pqqq6q0863s}

rot13

flag{791ee565-afde-4772-89a7-6cddd6d0863f}

cr2

lcg与专科组一样

脚本在下面

专科组

cr1

dpdq

题解:

首先根据​

m=c^d mod n
gcd(p,q)=1
n=p∗q
利用中国剩余定理,得:
m1=c^d mod p
m2=c^d mod q

m1≡cdq mod q
m2≡cdp mod p
m≡(((m2−m1)∗p1 mod q)p+m1) mod n

解题脚本

import gmpy2
import libnum

def decrypt(dp,dq,p,q,c):
    InvQ = gmpy2.invert(q, p)
    mp = pow(c, dp, p)
    mq = pow(c, dq, q)
    m = (((mp-mq)*InvQ) % p)*q+mq
    print(libnum.n2s(int(m)).decode())
p = 21505610427819984064279577043353746817116710224908463198333168361814020516407211211968800263966803231138382884499574672542237337649833223998905513887762124776152001678183007082024585716923974762062032710828284769355472911783142678452912273176853479708132128922278641534594989057553516513666943610300470212678142983916669868309911548100541357093518850709607457700506736745923961132415143936897190572894100588748110807901123394405423554118714377943513165452588889406039206258399649323895269525023253132294219
q = 7773714436954193420341301459402666753579133359798356201269174251243571981547443474292351698207027639997745697217632554140068595435066222954621623202293659485241404770815309728346036014380455580496977330986790005393360004563176988983914341852906289811367204791842252713067680198441874815168861464383580469114437586924
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值