質問

これがあると想像してください:

$cdata = AES_256($data, $pass);

AES_256は、 AESアルゴリズムを実装しています。

$ cdata のコンテンツと $ data のコンテンツを知っていて、 AES_256()コード、リバースエンジニアリングして $ pass を見つけられますか?

役に立ちましたか?

解決

簡単な答え:いいえ。

これはテストされており、Wikiリンクで言及されています。

  

関連キー攻撃は最大9個まで分割できます   256ビットAESのラウンド。 A   選択平文攻撃は8を破ることができます   192および256ビットAESのラウンド、および7   128ビットAESのラウンド、ただし   ワークロードは2 128 では実用的ではありません-   2 119

または別の言い方をすれば、照明にぶつかる可能性が高くなります...宝くじに当たった当日、それを壊すよりも勝ちです!

他のヒント

これは、既知の平文攻撃と呼ばれます。他の人が説明したように、AESのような良い暗号は、それに対して免疫があるはずです。

$ pass が実際にはパスワードであり、256ビットキーではない場合、運が良いかもしれません。

実行するのは簡単ではありませんが、通常のパスワードに対するブルートフォース攻撃は、256ビットキーをブルートフォースするよりもはるかに高速です。

したがって、多くのパスワードを強制するツールの1つを変更すると、(パスワードの強度に応じて)数週間から数年かかる攻撃がありますが、3x10 ^ 51年に比べて高速です。 。

それをブルートフォースすることもできますが、時間がかかります。数十年またはそれ以上。これがAESのような暗号化アルゴリズムのポイントです。

ウィキペディアからの別の引用:

  

AESは256ビットキーの使用を許可します。   対称の256ビットキーを破る   ブルートフォースには2 ^ 128倍の時間が必要です   128ビットよりも高い計算能力   キー。確認できるデバイス   10億(10 ^ 18)AESキーあたり   2番目には約3 xが必要です   256ビットを使い切るのに10 ^ 51年   キースペース。

元のテキストの方が速い場合、ブルートフォーシングは高速ですが、それでも3 x 10 ^ 51年は長い時間です。さらに、おそらく1秒あたり10億個(10 ^ 18)のキーをチェックできるデバイスがないという問題があります。

要するに:すべては可能ですが、これは現在の世界では実現不可能です。

AESは、すべての優れた暗号アルゴリズムと同様に、セキュリティによるセキュリティに依存していません。

つまり、「秘密」はありません。コード内にあるので、コードを持っていることは特に役に立ちません。

既知の平文は別の問題です。これについてはあまり知りませんので、他の回答者にお任せします。

もちろんそうではありません-唯一のアプローチはブルートフォースです。 NISTは、新しい標準のために簡単に解読される暗号を選択するほど愚かだと本当に思いますか?

スーパーコンピューターの力により、AES暗号化をクラッシュさせる時間が劇的に短縮されました。...聞いた...

2x2 ^ 256の可能な組み合わせは、ブルートフォースにとって多くのことです。しかし、総当たり攻撃が唯一の方法です。実際には約30年かかります。 AESは、現時点で可能な限り最高の暗号化です。ただし、CPUを使用するのにかかる時間はそれだけです。 GPU(グラフィックプロセッシングユニット)は厳密に数学ベースであるため、人々は、GPUのみを使用してCPUよりもはるかに高速に数学ベースのアルゴリズムを解読するプログラムを作成しています。言い換えれば、AESは30年は続かないかもしれません。永遠のコードのみが可能だった場合。近い将来、人々が本当に情報を隠すことができる唯一の方法は、動的暗号化であるように見えます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top