2017-03-07 5 views
-1

私はブルートフォース攻撃をプログラミングしようとしている、という考えはということです:私はすでに暗号文を持ってブルートフォースアタック(復号化)AES

  • 暗号
  • 後、私は最初の4文字を持っていますプレーンテキスト(41文字です)
  • の私は私が必要なもの、秘密鍵
  • の最初の12文字

は4つの文字の欠落

を見つけることである必要があり3210

のは、私が鍵を持っていると仮定しましょう:

"ABCDEFGHIJ????" 

私は行方不明の文字?

+1

暗号化モードはわかりますか? http://stackoverflow.com/questions/1220751/how-to-choose-an-aes-encryption-mode-cbc-ecb-ctr-ocb-cfb –

答えて

0

を見つけるために、ブルートフォース攻撃を適用することができますどのように不足しているキー4バイトのための2^32の可能性があります。これは、符号なし32ビットintに適合します。だから、この無署名のintのすべての可能性をループして、整数値からあなたの欠けている4バイトを取ります。 Cでは、次のようなものがあります。

unsigned int i = 0; 

do { 
    first candidate missing byte for key = i&255; 
    second candidate missing byte for key = (i>>8)&255; 
    third candidate missing byte for key = (i>>16)&255; 
    fourth candidate missing byte for key = (i>>24)i&255; 
    /* here: try the candidate with your AES encryption, break if it works */ 
    ++i; 
} while (i != 0);