如何使用公鑰解密已使用 RSA 加密的“.enc”文件?
在線上解決 CTF 挑戰時,我遇到了需要解密
'.enc'
使用某人的公鑰加密的文件的情況。相應的公鑰'.pem'
文件已提供給我。除了這個,我幾乎解決了所有其他 CTF 挑戰,從那以後它一直困擾著我。我解決了第一部分:我已經能夠解碼一個提示:"The file file.enc could be decrypted with a private key. Using raw algorithm, every 64 bits chunk of data was encrypted at a time. You can do the same thing to decrypt using RSA."
這是我嘗試過的:
線上閱讀許多類似這樣的文章並嘗試解密“.enc”文件:http ://www.czeskis.com/random/openssl-encrypt-file.html
我嘗試了以下解密命令:openssl rsautl -decrypt -in public_key.pem -out key.bin。我得到了這個錯誤:
no keyfile specified unable to load Private Key
是的,但那是因為沒有向我提供私鑰。如果我嘗試使用 public_key.pem 作為 infile,我會收到以下錯誤:
unable to load Private Key 139914348455592:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY
在 Linux 中以多種方式嘗試了“openssl”工具來嘗試解密文件。
這是壓縮在 tarball 中的 3 個文件,如果有人想分析它們:http ://www.filedropper.com/chaltar
在我放棄這個挑戰之前,有人可以告訴我如何解密“.enc”文件嗎?我已經工作了很長時間並且打破了挑戰的第一部分,現在我覺得我已經很接近了。
事實:
- 我知道“openssl”工具將用於解決這一挑戰。
- 加密:RSA
- 文件:只有三個文件,public_key.pem、file.enc 和一個我解密的隨機文件,它提供了我上面寫的提示。
openssl rsa -pubin -inform PEM -text -noout < public_key.pem Public-Key: (64 bit) Modulus: 16513720463601767803 (0xe52c8544a915157b) Exponent: 65537 (0x10001)
模數足夠小,您可以輕鬆將其分解
找到主要因素後,您可以計算私人指數
獲得私有指數後,將每個 64 位密文塊提高到私有指數 mod 模數。