6

私はWEPを調査しており、その一環として、RC4アルゴリズムをいじっています。逆テーブルを作成できるかどうかを判断しようとしています(ただし、大きいですが...スペースがなく、作成するつもりもありません)。そのために、最初の10バイトに一致する出力がいくつあるかを確認することにしました。これは、逆テーブルがどの程度うまく機能するかを判断するのに役立ちます。

もちろん、64ビットのRC4暗号化には2 ^ 64の可能なキーがあるため、約2^128の比較を行うことになります。さらに、比較ごとに10バイトを生成する必要があります。これは、約265ループです。(RC4初期化の場合は256、バイト自体の場合は10)。

ビジネスに至るまで:

約100コアのスーパーコンピューターで、20日間で約2 ^ 135の計算を実行できるでしょうか?

(キックオフされるまでの制限は20日です。最終的には8つになるか、400以上になる可能性がありますが、100コアになると思います。)

それが何かを意味するなら、私のプログラムはJavaで書かれています。http://pastie.org/2118864

4

5 に答える 5

4

理想的な世界では、それは周りにあります:

2135操作÷20日÷24時間/日÷60分/時間÷60秒/分÷100コア=1032操作//コア(Hz /コア)、私の計算がオフでない場合。

クロックごとに1つの計算を行う10個の32Hzコア必要です。通常、複数必要です。それは...控えめに言っても、現時点ではあまり到達可能ではありません。運が良ければ、スーパーコンピューターで到達できる最善の方法は、おそらく一般的な領域である〜10 GHz = 10 10Hz /コアです。

(そして、これはすべてアムダールの法則を無視しています...)

于 2011-06-25T02:02:16.653 に答える
4

興味深い質問であり、適切に答えるのは非常に困難です。スケーラビリティは、ほとんどの場合、「試してみる」ことの1つです。

注意すべき点の1つは、他の要因により、マルチコアシステムでは線形に満たないスケーリングが発生することです。

nプログラムが1秒あたりのキーを比較できるとしましょう。したがって、理想的な(つまり線形の)100コアシステムは、100n1秒あたりのキーを計算します。すべてのキーを比較するには(最悪のシナリオでは、現実的にはその半分になります)、数日かかり(2^135/100n)/86400ます。

が1000の場合n、5041220250680569829087031221211日かかります。これは、宇宙の年齢の推定値の約1億倍の長さです。

だから私は言うつもりです...いいえ:)暗号化アルゴリズムはこれらの種類の攻撃のために設計されています。また、Javaは、そのようなアプリケーションを作成するときに選択する最後の言語になります:p

于 2011-06-25T02:07:01.600 に答える
3

これらの数字はやや架空のものです。彼らは主に論点を述べることです。数学はそれを簡単にするために非常に楽観的です。

  1. 1つのコアで1秒間に40億(2 32)の操作を処理できます(これは非常に楽観的な数値です)

  2. 1日あたり86400秒(2 17に切り上げ)があるため

  3. および20日(2 5に切り上げ)

  4. および100コア(2 7に切り上げ)

次に... 232 * 2 17 * 2 5 * 2 7 == 2 ( 32 + 17 + 5 + 7) == 2 61計算...そう:

チャンスではありません。リモートでさえ閉じません。残っている計算の量は非常に驚異的であり、それが実際に何であるかを理解することさえできません。ごめん :-)

(上記の数値では、2 79日かかります...)

于 2011-06-25T02:04:17.760 に答える
3

人々は、数がどれほど大きくなる可能性があるかを理解していません。

2 ^ 135はおおよそ4e40、ok、43556142965880123323311949751266331066368です。

1エクサフロップを実行できるコンピューターがあり、現在のどのコンピューターよりもはるかに高速であるとします。したがって、すべての浮動小数点演算でこれらの計算の1つが可能である場合、1秒間に10^18の計算を実行できます。これでも4e22秒必要です。年間約31536000秒あるので、あなたの小さな企業はまだ1e15年以上かかります。

さて、あなたが誰と話すかにもよりますが、宇宙は6000年から130億年かそこらの間のどこかにあります。

Javaであろうとなかろうと、答えはノーです。(スカイネットはもうここにありますか?)

于 2011-06-25T02:11:01.527 に答える
1

宇宙には少なくとも2^240の原子があるので、1日1回の計算でも、それらの半分を計算する必要はありません。それからまた、ビル・ゲイツはかつて「宇宙の原子の半分以上を必要とする人は誰だろうか」と言ったことがありませんでした。

于 2011-06-25T02:10:51.353 に答える