ADWORLD_CRYPTO Normal_RSA
阿新 • • 發佈:2020-07-27
題目資訊
提供的檔案
flag.enc
看字尾enc,分析是一個通過openssl加密後生成的檔案
pubkey.pem
應該是一個公鑰資訊檔案
開啟pubkey.pem檔案
這裡我使用kali系統,因為kali系統自帶了openssl
- 先進入openssl
- 輸入 rsa -pubin -text -modulus -in warmup -in pubkey.pem 檢視資訊
Exponent:指的是RSA中的e
Modulus:指的是N,即pq相乘
對Modulus的處理
先將16進位制轉為10進位制,接著線上質因數分解
現在已得到的資訊:
p=275127860351348928173285174381581152299
q=319576316814478949870590164193048041239
e=65537
生成private.pem私鑰檔案
這裡使用個工具 rsatool.py 可以通過p、q、e計算d,並生成pem檔案
不過裡面需要一些模組,對應的通過pip進行安裝即可
由於kali2020內建了python2和3,這裡我使用瞭如下命令:
python3 -m pip install gmpy
安裝好需要的模組後輸入命令:
python rsatool.py -f PEM -o private.pem -p 275127860351348928173285174381581152299 -q 319576316814478949870590164193048041239 -e 65537
即可生成private.pem檔案
解密flag.enc檔案
輸入命令:
openssl rsautl -decrypt -in flag.enc -inkey private.pem
即可解密出