20

暗号化と復号化にRSAを使用しています。攻撃に対して脆弱だと聞きました。それは...ですか?使用するのはどれくらい安全ですか?

4

3 に答える 3

35

RSAに対する通常の攻撃では、2つの非常に大きな素数の積である大きな数を因数分解します。この背後にある一般的な考え方は、素数を見つけるのはかなり簡単であり、それらを掛け合わせて単一の大きな数を得るのも非常に簡単ですが、その大きな数から始める場合、要因を見つけるのは非常に困難です。

彼らが独立した会社だった頃、RSA DataSecurityInc.は因数分解の課題を実行していました。IIRC、最後のいくつかの賞はRSADSI自身のチームによって獲得されました。これらは、一般番号フィールドシーブ(GNFS)を使用して行われました。一般的な実装では、「ファクターベース」を構築するために数か月ほど多数のワークステーションを使用します。次に(難しい部分)、それを膨大な量のRAM(開始点としてテラバイトと考えてください)を備えた単一のマシンにフィードし、数週間クランチして要素を取得します。

そのポイントは、RSAに対する最も一般的な攻撃には、開始するのに非常に高い初期コスト(つまり、Crayスーパーコンピューターのようなものを入手すること)があることを指摘することです。ただし、正直なところ、1024ビットのRSAキー(2048ビットまたは4096ビットのキーは言うまでもなく、一部のパラノイド)への攻撃を開始するのに十分なRAMを保持できるマシンは現在存在しないと思います。タイプは使用を主張します)。

もちろん、その巨大なマシンを必要としない他の因数分解方法もありますが、それらは十分に効率が悪いので、せいぜいでも、RSA標準によってかなり小さなキーでさえも損益分岐点になるために何年もの作業を見ているでしょう- -たとえば、512ビット。

現実的には、RSA自体のセキュリティは、一般的に、RSAを使用するシステムを設計する際の懸念事項の中で最も少なくなります。実際、これはほとんどすべての合理的に最新の暗号化アルゴリズムに当てはまります。何かが侵入された場合、それは基本的に、関連する基本的なアルゴリズムを実際に破壊することではありません。それは、キーの配布方法の弱点、「ソーシャルエンジニアリング」攻撃などを見つけることによるものです。

(私が言ったように)これは一般的な暗号化に当てはまる傾向がありますが、RSAでは他のほとんどの暗号化よりも一貫して当てはまります。これは、RSAの通常のユースケースが比較的複雑であるためです。特に、通常、RSAを使用して生データの大規模なストリームを暗号化することは望ましくありません。RSAは十分に遅いため、通常、RSAを使用して大量のデータを暗号化することは望ましくありません。代わりに、通常、RSAをAESなどの対称鍵(別名秘密鍵)暗号化アルゴリズムと組み合わせて使用​​します。

この2つを一緒に使用する場合は、データの送信先となる人の公開鍵を取得することから始めます。次に、選択した対称アルゴリズムでキーとして使用する正しいサイズの乱数を生成します。乱数をRSAで暗号化し、ターゲットに送信します。次に、その番号を対称アルゴリズムのキーとして使用し、その対称アルゴリズムを使用して実際のデータを暗号化します。

これは、実際の使用では、RSAには、ほとんどの対称暗号化アルゴリズムに必ずしも適用されないいくつかの弱点があることを意味します。明らかな例として、対称アルゴリズムの「ランダム」キーを選択するために使用する方法が実際には完全にランダムではない場合、攻撃者はRSA暗号化自体をまったく攻撃することなく、キーを見つけてデータを復号化できる可能性があります(はい、これが実際の公開されたソフトウェアの実際の脆弱性の原因となっています)。

また、上記で説明したことは、RSAが通常使用される最も簡単な方法であることに注意してください。実際のシステムは、「完全転送秘密」 1などを提供するために、さらにかなり複雑になることがよくあります。このようなシステムのRSAは、依然として完全に通常のRSAですが、それを使用するシステムの残りの部分は、さらにかなり複雑です。

概要:RSA暗号化を使用する場合、RSA自体のセキュリティはおそらく最も懸念事項ではありません。「RSA」から「安全な通信システム」へのルートは、ギリシャ神話とキリスト教の聖書のねじれた組み合わせからの何かに少し似ています。あなたは行き​​たかったのですが、間違った方向に進むと、永遠の拷問と苦痛に陥ります。


1.いいえ、今はこれについて説明するつもりはありませんが、Crypto.SEで検索すると、いくつかの関連する結果が表示されると確信しています。ただし、RSAはPFSを提供するシステムで使用できますが、実際にはかなり珍しいことを付け加えておきます。

于 2012-04-18T17:51:19.687 に答える
7

RSAはすべての現実的なニーズに対して安全であると想定します。

しかしもちろん、それはあなたが何をしているのか、どのようにそれをしているのか、そして誰に対して防御したいのかによります。

接続を保護したいが、通常の推奨事項に固執する場合、RSAは十分に安全です。

NSAの鼻の下で秘密作戦を実行したい場合は、そのような質問をしなければならないため、すでに負けています。

PS:このようなものについては、StackExchangeのITセキュリティサイトをご覧ください。

于 2012-04-18T17:16:35.617 に答える
6

正しく実装されている場合(つまり、これを行う既存のライブラリを使用している場合)、データチャネルは安全です。ただし、暗号化のポイントは、単にデータチャネルをシステム全体の最も弱いポイントではないようにすることであることに注意してください。RSAはこれを行いますが、システムの他の部分とそれらの安全性について心配する必要があります。

于 2012-04-18T17:16:56.417 に答える