4

私は暗号化アルゴリズムを設計中です。アルゴリズムは対称 (単一キー) です。

アルゴリズムの強度をビット単位でどのように測定しますか? キーの長さはアルゴリズムの強さですか?

編集:

レッスン 1 : 暗号化アルゴリズムを設計しないでください。AES などは、ある理由で学者によって設計および標準化されています。

レッスン 2 : 暗号化アルゴリズムの強度はビット単位ではなく、鍵のサイズです。アルゴリズムの強度は、その設計によって決まります。一般に、より大きな鍵サイズを使用するアルゴリズムは総当たり攻撃が困難であり、したがってより強力です。

4

6 に答える 6

16

まず第一に、これは何か深刻なことですか?もしそうなら、今すぐやめてください。やらないでください。アルゴリズムの設計は、世界で最も困難なことの 1 つです。何年にもわたる暗号解読の経験がない限り、リモートで安全なものを設計することはできません。

AES と RSA は、2 つのまったく異なる目的を果たします。違いは署名だけではありません。RSA は公開鍵アルゴリズムです。暗号化、鍵交換、デジタル署名に使用します。AES は対称ブロック暗号です。一括暗号化に使用します。RSA は非常に遅いです。AES は非常に高速です。最新の暗号システムのほとんどは、鍵交換に RSA を使用し、次に一括暗号化に AES を使用するハイブリッド アプローチを使用しています。

通常、「128 ビットの強度」と言うときは、キーのサイズを意味します。ただし、アルゴリズムの強度はキーのサイズよりもはるかに重要であるという点で、これは信じられないほど欺瞞的です。つまり、100 万ビットの鍵を持っているからといって、何の意味もありません。

アルゴリズムの強度は、鍵のサイズと暗号解読攻撃に対する耐性の両方で定義されます。ブルートフォースよりも優れた攻撃が存在する場合、アルゴリズムは壊れていると言います。

そのため、AES と 128 ビット キーを使用すると、2^128 未満の攻撃が機能しない場合、AES は「安全」と見なされます。ある場合は、「壊れている」と見なします(学術的な意味で)。これらの攻撃 (検索用) には、差分暗号解読、線形暗号解読、および関連するキー攻撃が含まれます。

アルゴリズムをブルートフォースする方法も、そのタイプによって異なります。AES のような対称ブロック暗号は、考えられるすべてのキーを試すことによって力ずくで行われます。ただし、RSA の場合、キーのサイズはモジュラスのサイズです。考えられるすべてのキーを試すことによってそれを破るのではなく、因数分解します。そのため、RSA の強度は数論の現在の状態に依存します。したがって、キーのサイズが必ずしも実際の強さを示すとは限りません。RSA-128 は恐ろしく安全ではありません。通常、RSA キーのサイズは 1024 ビット以上です。

56 ビット キーを使用する DES は、これまでに設計されたほとんどすべてのアマチュア暗号よりも強力です。

アルゴリズムの設計に興味がある場合は、他の人々を壊すことから始めるべきです。Bruce Schenier による暗号解読の自習コースがあります

FEAL は、これまでで最も壊れた暗号の 1 つです。これは、ブロック暗号の暗号解読を学習するための優れた出発点になります。ソースコードが公開されており、無数の論文が公開されているので、行き詰まったらいつでも「答えを調べる」ことができます。

于 2011-03-18T06:23:19.503 に答える
2

いやー、これは本当に難しい問題です。1つは確かです - キーの長さは、暗号化アルゴリズムの強度について何も示しません。

暗号化アルゴリズムの強度を測る手段として考えられるのは、次の 2 つだけです。

  • あなたのアルゴリズムをプロの暗号解読者に見せてください。アルゴリズムの強度は、暗号分析者が暗号を解読するのにかかった時間に比例します。
  • 強力な暗号化アルゴリズムにより、暗号化されたデータはかなりランダムに見えます。だから -暗号化されたデータのランダム性を測定してください。アルゴリズムの強度は、暗号化されたデータのランダム度に比例する必要があります。
    Warning - this criteria is just for playing arround, doesn't shows real encryption scheme strength !

つまり、実際のメジャーは最初ですが、2 番目のメジャーでは、楽しく遊ぶことができます。

于 2011-03-18T09:23:54.100 に答える
1

「セキュリティのビット」は、NIST (米国国立標準技術研究所) によって次のように定義されています。NIST SP 800-57 パート 1、セクション 5.6.1「比較可能なアルゴリズムの強度」。

NIST の SP 800-57 パート 1 のさまざまな改訂版: http://csrc.nist.gov/publications/PubsSPs.html#800-57-part1

現在のバージョン: http://csrc.nist.gov/publications/nistpubs/800-57/sp800-57_part1_rev3_general.pdf

「強さ」は「「アルゴリズムを破る」のに必要な作業量」と定義され、5.6.1 ではその基準について詳しく説明しています。同じセクションの表 2 は、AES、RSA、ECC など、さまざまなアルゴリズムのさまざまな鍵サイズによって実現される「セキュリティのビット」を示しています。

新しいアルゴリズムの相対的な強度を厳密に決定するには、真剣な作業が必要です。

于 2013-09-05T18:57:47.210 に答える
0

私の簡単で汚い定義は、「AES が同じ平均クラッキング時間を持つために必要なビット数」です。操作、経過時間など、好きな時間の尺度を使用できます。理論上の 40 ビット AES メッセージと同じくらいクラックに時間がかかる場合 (128 ビット AES よりも 2^88 短い時間)、64,000 ビット キーを使用したかどうかに関係なく、40 ビット強度です。

それは正直なところ、正直なところ、暗号の世界で見つけるのは難しいです。笑えるように、代わりにプレーンな RSA キーと比較してください。

明らかに、それは決して難しくて速いわけではなく、誰かがより良いクラックを見つけるたびに低下しますが、それは恣意的な「ビット単位の強度」測定の性質です. 運用面での強みは、はるかに具体的な尺度です。

于 2011-03-19T02:57:10.450 に答える