web-dev-qa-db-ja.com

SHA256のセキュリティ:攻撃が「SHA256の60ラウンドのうち46」を破ったとはどういう意味ですか?

ウィキペディアのレポート

現在、最高のパブリックアタックは、64ラウンドのSHA-256のうち46ラウンド、または80ラウンドのSHA-512のうち46ラウンドを破壊します。

これは何を意味し、SHA-256は考えられる将来においてどの程度安全であると予想されますか?一般の人には、64点中46点が「約72%壊れている」ように聞こえるかもしれません。ビットコインはSHA-256に依存しているので、それでも安全性は保たれるでしょうか?

31
Random Random

多くの暗号化アルゴリズム(ハッシュ関数、対称暗号化...)は、「ラウンド」のシーケンスとして編成されています。 経験的に与えられたアルゴリズム構造に対して、通常、より多くのラウンドはより多くのセキュリティを意味することに気づきました。正確には、いくつかのクラスの攻撃(例: differential および linear cryptanalysis )は、ラウンドの数に応じてその効率が多かれ少なかれ指数関数的に減少することを確認します。

暗号技術者は、完全なアルゴリズムを解読する方法を知らない場合、いくつかの機能を削除して、同じアルゴリズムの縮小バージョンを解読しようとします。特に、ラウンドがあるアルゴリズムの場合、ラウンドが少なくなります。 SHA-256が「46ラウンドまで」壊れていると言われる場合、これは、SHA-256を取得して最後の18ラウンドを削除することによって取得された別のハッシュ関数が攻撃される可能性があることを意味します(少なくとも「学術的な方法で」:攻撃は現実的である必要はありません。完全な機能を攻撃するよりも不可能である必要があります。しかし、最後の17ラウンドだけを削除すると、関数は、私たちが知る限り、完全なものと同じくらい優れています。攻撃者のラウンドの最大数が、完全なアルゴリズムでの実際のラウンド数よりも大幅に少ない場合、暗号技術者はより安全に感じます

攻撃効率の動作は線形ではなく、ラウンド数で指数関数的になる傾向があるため、これを直感的にさえも、「ラウンドの80%を壊すことができる->アルゴリズムが80%で壊される」に変換することはできません。 Analogy:10倍にして運勢を上げたいとしましょう。 1ドルから始めます。 10倍にすると1024ドルになります。それがあなたの目標です。 eightを2倍にすると、256ドルになります。 10回のうち8回の倍増:作業の80%ですよね?では、どうして256ドルしかなく、1024ドルの80%(819.2ドル)ではないのですか?

まとめると、これらのアサーションを読みすぎないようにする必要があります。これらは科学者にとって興味深い科学的結果ですが、簡単に解釈しすぎる可能性があります。

33
Tom Leek

まず、「72%」の部分に対処するには:

いいえ。それらは多かれ少なかれ同じレベルのセキュリティです。

ページ の別の引用を見てみましょう:

ラウンド数を減らしたSHA-2に対する中間ミートプリイメージ攻撃が2つあります。最初のものは、64ラウンドのうち41ラウンドのSHA-256を攻撃し、時間の複雑さは2です。253.5 スペースの複雑さは216、および時間2の80ラウンドのうち46ラウンドSHA-512511.5 とスペース2。 2つ目は、時間の複雑さが2の42ラウンドSHA-256を攻撃します。251.7 スペースの複雑さは212、および時間2の42ラウンドSHA-512502 とスペース222

SHA-256の時間の複雑さは2です256 普通に割れます。 2に減らします253.5 はごくわずかな違いであり、クラッキングが完了するまでに何百年もかかる変更が必要ですSHAが実現可能です。


「ラウンド」について:

SHA-256とSHA-512は、基本的に数値に繰り返し適用される特定の関数(2つのアルゴリズムに異なる定数を使用)です。適用するたびに「ラウンド」と呼ばれます。これらの研究者が行ったと思われることは、SHAラウンド数を削減するためのアルゴリズムであり、それを解読したものです

8
Manishearth