Crypto

RSA1


RSA1和RSA2是一樣的代碼。

整個然後告訴了我們大整數N,公鑰e。

然後告訴我們flag使用該私鑰e加密。加密方法就是典型的RSA,即求flag的e次方然後模N1。

 

根據大整數N1後面的提示,我們可以直接將N1分解,有一個在線分解大整數的網站:

http://factordb.com/



得到N1=p*q=41 · 40094690950920881030683735292761468389214899724061。

因此可以計算出φ(N1)=(p-1)*(q-1)

進而可以求得e模φ(n)的逆元,即私鑰d。然後就可以對密文進行解密了。

RSA2對應的就是分解第二個整數,在factordb.com上都可以直接分解。

這兩題的exp入下:


from gmpy2 import *
from binascii import *
N1 = 1643882328987756122258033147003220203957810888686501L  # Can be divided by 41
N2 = 513352092060876320461180050358021687540568869136658646287263380737663567842231221L
e = 65537

num1 = 395704890252923154682805499668341909297287252738248L
num2 = 271255491209574840907848875334662527446131329118820278112741718277821867871739560L


p = 41
q = 40094690950920881030683735292761468389214899724061
f = (p - 1) * (q - 1)
d = invert(e, f)
flaghex = hex(pow(num1, d, N1))
print a2b_hex(flaghex[2:])

p = 486216689863901339784066214603244170463
q = 1055809277556001931114509627589707557375467
f = (p - 1) * (q - 1)
d = invert(e, f)
flaghex = hex(pow(num2, d, N2))
print a2b_hex(flaghex[2:])

最終結果入下:


Encode:

看代碼其實是CRC編碼,將flag每四個字符計算一次crc,然後將結果轉化爲小端級聯起來。最終想到的是暴力破解。

首先把結果轉化一下,通過如下代碼:

"a09dd84b85595004c9dedbd07f4b1b531756ea0aaa7a28fcd6a68adc0cb256fb4d5f1320".decode('hex')[::-1].encode('hex_codec')

將所有整數轉化爲大端。

得到:

20135f4dfb56b20cdc8aa6d6fc287aaa0aea5617531b4b7fd0dbdec9045059854bd89da0

然後進行爆破,爆破代碼如下:


import binascii
def crack():
    crcs = set([0x20135f4d, 0xfb56b20c, 0xdc8aa6d6, 0xfc287aaa,
                0x0aea5617, 0x531b4b7f, 0xd0dbdec9, 0x04505985, 0x4bd89da0])
    r = xrange(33, 127)
    for a in r:
        for b in r:
            for c in r:
                for d in r:
                    txt = chr(a)+chr(b)+chr(c)+chr(d)
                    crc = binascii.crc32(txt)
                    if (crc & 0xFFFFFFFF) in crcs:
                        print txt


if __name__ == "__main__":
crack()

大約三分鐘左右,可以出結果,出來的結果因爲寫的exp不夠精緻,所以,需要自己按照語義排下序

*ctf{you_know_it_is_encode_anyway..}








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章