BUUCTF - RSA

テストファイル:https://buuoj.cn/files/ed10ec009d5aab0050022aee131a7293/41c4e672-98c5-43e5-adf4-49d75db307e4.zip?token=eyJ0ZWFtX2lkIjpudWxsLCJ1c2VyX2lkIjoxOTAzLCJmaWxlX2lkIjoyMDV9.XYl7ag.BZcdhjGojXT726Y0wj4m2X_OOyw

 

1.ファイル解析

初めてこのトピックは、トピックを参照してくださいが、これは問題のRSA復号であることを知っています。

 

公開鍵のn = pとqは二つの大きな素数のp * qを、

eは、公開鍵として、ランダムに選択された数であります

Dは、条件式を満足するEに関連付けられた番号である:ED = 1(MOD PHI(N))

PHI(n)は、オイラー関数であり、PHI(N)=(P-1)(Q-1)

転送:https://blog.csdn.net/kevin66654/article/details/54087647

 

pub.keyは公開鍵であるので、長い間、我々は暗号化されたRSAの暗号化を解除するために、スクリプトファイルを使用して、その後N、E、P、Q、D、公開鍵ファイル、およびを解析されたとして、RSA暗号化されたファイルをflag.enc。

 

2.公共の過程

2.1公開鍵を取り出します

16進数の文字列を変換IDAオープンpub.keyは、公開鍵を抽出しました。

-----公開鍵をBEGIN ----- 
MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAMAzLFxkrkcYL2wch21CM2kQVFpY9 + 7 + 
/ AvKr1rzQczdAgMBAAE = 
----- END PUBLIC KEY -----

 

2.2分析公開鍵(エキスE、N)

http://tool.chacuo.net/cryptrsakeyparse公開鍵は解決されます

公開指数とモジュール情報:

キーの長さ: 256
模数: C0332C5C64AE47182F6C1C876D42336910545A58F7EEFEFC0BCAAF5AF341CCDD
インデックス: 65537(0x10001)

にゲット

E = 65537

N = 86934482296048119190666062003494800588905656017203025617216654058378322103517(ADCの10進数)

 

2.3分析公開鍵(抽出P、Q)

ヤフーや使用http://www.factordb.com/index.php?query=86934482296048119190666062003494800588905656017203025617216654058378322103517を  、Q nはpを解析することにより、

 

 

P = 285960468890451637935629440372639283459

Q = 304008741604601924494328155975272418463

 

3.復号化スクリプト

インポートgmpy2
 インポートRSA 

E = 65537 
N = 86934482296048119190666062003494800588905656017203025617216654058378322103517 
P = 285960468890451637935629440372639283459 
Q = 304008741604601924494328155975272418463 

PHIN =(Q-1)*(P-1 
D = gmpy2.invert(E、PHIN)

キー = rsa.PrivateKey(N、E、INT (D)、P、Q) 
オープンと" C:\\ユーザー\\ 10245 \\デスクトップ\\出力\\ flag.enc "" RB + " :Fなど)
    、F = f.read()
     印刷(rsa.decrypt(F、キー))

 

4.getフラグ!

フラグ{decrypt_256}

CTFのRSAについての詳細をお知りになりたい、あなたは見てとることができhttps://err0rzz.github.io/2017/11/14/CTF%E4%B8%ADRSA%E5%A5%97%E8%B7%AF/を

おすすめ

転載: www.cnblogs.com/Mayfly-nymph/p/11576913.html