web-dev-qa-db-ja.com

PGP RSA鍵サイズ-暗号化/復号化時間

私が読んだことから、PGPは実際にデータを暗号化/復号化するために使用される対称鍵を暗号化/復号化するためにpub/priv鍵のみを使用します。長い非対称キーは、前述の対称キーの暗号化/復号化にのみ必要であるため、短いキーよりも遅くなることはないと思います。 この回答 およびその他のグーグル可能なリソースは、長さが長いキーはパフォーマンスを低下させることを示唆しています。ここで何か不足していますか?より大きなキーではありません-少なくともPGPの場合-ほとんどの場合より良いですか?

8
raphael b

RSAでは、encryptionは公開モジュラスサイズでほとんどが2次であり、decryptionはほとんどが3次です。つまり、キーサイズを2倍にすると(たとえば、2048ビットから4096ビットに)、暗号化のコストは4倍、復号化のコストは8倍になります。 (20000ビット以上の途方もなく大きいキーの場合、他のアルゴリズムは価値があり、復号化は3次ではなくなりますが、「通常の」RSA実装には適用されません。)

ただし、暗号化または復号化は対称キーの1回限りの操作にすぎないという点は正しいです。基本的なPCでは、1024ビットのRSAは暗号化解除に約1ミリ秒かかります。したがって、2048ビットのRSAは8ミリ秒を意味し、4096ビットのRSAは64ミリ秒程度を意味します。ご覧のとおり、この数値は人間の観点から見ると非常に低いままです。 PGPでの暗号化と復号化の知覚されたコストは、I/Oコストに何よりも依存します。 5 Mバイトの電子メールを受信して​​復号化すると、ダウンロードに数秒かかりますが、実際に復号化するのに数ミリ秒しかかかりません(対称暗号化は100 MB /秒で簡単に進行でき、非対称復号化はワンショットです)説明されているように操作)。

長いキーは必ずしも良いとは限りません。既知のクラッキングアルゴリズムは、キーが長いほど時間がかかるため、長いキーが好きです。ただし、この議論が有効でなくなる点があります。キーが長すぎて地球ベースのテクノロジーでは解読できない場合、キーは「十分に長く」なり、長くしても重要なメリットはありません。現在の RSAを破るレコード は768ビット用であり、1024ビットが実現可能であると考えられています(ただし、境界のどちら側にあるかはわかりません)。 2048ビットのRSAキーはすでに十分な大きさであり、快適なセキュリティマージンがあります。同じことが約2048ビットのElGamalおよびDSAキー(PGPでも使用されます)と言えます。

一方、より長いキーはより長い電子メールを意味します(PGPで署名された電子メールにはキーのコピーが含まれているため)。これはほとんど意味がありません(電子メールごとに数百バイトを追加してもそれほど重要ではありません)。特大のキーを使用するしないより重要な理由は、相互運用性です。実装によっては、内部制限がある場合があります。それらが設計された方法に、そして巨大なキーがこれらの制限を超える可能性があります。どうやら GnuPG の一部のバージョンは 4096ビット以上 のキーで問題があります。 2048ビットと4096ビットのキーはどこでも機能するはずです。

さらにマイナーな理由は、キーの生成が、キーのサイズが大きくなると法外に高くなる可能性があるということです-しかし、あなたはそれを頻繁に行わないので、これはマイナーです。

要約すると:PGPでは、2048ビットまたは4096ビットのキーを使用して、あなたは幸せになります。その選択について心配しすぎないでください。どちらでもかまいません。相互運用性の問題が発生するため、4096ビットを超えないでください。

12
Tom Leek