本科组
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