1. 程式人生 > 其它 >XCTF Normal_RSA WP

XCTF Normal_RSA WP

技術標籤:rsa密碼學

Normal RSA

得到的附件為如圖:
在這裡插入圖片描述
.pem為存放金鑰的檔案,.enc為加密檔案
使用

openssl rsa -text -modulus -pubin -in pubkey.pem

截圖

得到n後使用factordb
分解得到p和q.
在進行正常的RSA操作。
並利用crypto庫中的構造輸出金鑰的方法,輸出對應的privatekey.pem
實現過程的指令碼 如下:

import gmpy2
from Crypto.PublicKey import RSA

p=gmpy2.mpz(275127860351348928173285174381581152299
) q=gmpy2.mpz(319576316814478949870590164193048041239) n=gmpy2.mpz(87924348264132406875276140514499937145050893665602592992418171647042491658461) e=65537 fai=(p-1)*(q-1) print(p*q) d=gmpy2.invert(e,fai) print(d) p=275127860351348928173285174381581152299 q=319576316814478949870590164193048041239 fai=(p-1)*(q-1) n=
87924348264132406875276140514499937145050893665602592992418171647042491658461 d=10866948760844599168252082612378495977388271279679231539839049698621994994673 privatekey=RSA.construct((n,e,d,p,q)) Key=privatekey.export_key() with open('prikey.pem','wb') as fp: fp.write(Key)

得到解密金鑰後,再一次使用openssl庫,進行解密。
使用命令

openssl reautl -decrypt -in flag.enc -inkey -private.key

在這裡插入圖片描述

得到明文flag.

使用RSATools可以更快解決,以後會繼續研究RSATools的基本方法。