1. 程式人生 > 實用技巧 >ADWORLD_CRYPTO Normal_RSA

ADWORLD_CRYPTO Normal_RSA

題目資訊

提供的檔案

flag.enc 看字尾enc,分析是一個通過openssl加密後生成的檔案

pubkey.pem 應該是一個公鑰資訊檔案

開啟pubkey.pem檔案

這裡我使用kali系統,因為kali系統自帶了openssl

  1. 先進入openssl
  2. 輸入 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

即可解密出