これがパスワードを保存する正しい方法ではないことは知っていますが、理論的な観点からこれを尋ねています。
WebサイトのパスワードがRSA非対称暗号化で暗号化され、秘密の復号化キーが破棄され、事実上一方向のトリップになったとします。今、これらのパスワード「ダイジェスト」はどういうわけか漏らされました。
RSAで暗号化されたパスワードを解読するのに、PBKDF2でハッシュされたパスワードを解読するよりも時間がかかりますか?
2つの状況は比較できません。実際、他のすべての非対称暗号化アルゴリズムと同様に、RSA暗号化はランダム化されたプロセスです。同じ公開鍵を使用して同じデータを2回暗号化すると、同じ暗号化が行われませんメッセージを2回。これは設計によるものです:非対称暗号化は公開鍵(つまり、公開、everybody)を使用するためそのキーでデータを暗号化できます。データ自体の徹底的な検索を避けたいので、この非決定的な動作が必要です。 PKCS#1 で説明されているように、RSA暗号化のコアであるモジュラ指数を適用する前に、少なくとも8つのランダムパディングバイトが入力データに追加されます。
これには2つの結果があります。
したがって、RSAとPBKDF2の「クラッキング時間」を比較しても意味がありません。
もちろん、プログラマーの中には、RSAのように漠然と見えるものを想像しているかもしれませんが、ランダムパディングがないため、パスワードハッシュとして使用できます。これは確かに(自家製の)パスワードハッシュになります。上記のプログラマーがそれを過度に妨害しなかったと仮定すると(すでにかなり楽観的な仮定)、ブルートフォースが適用され、アルゴリズムで可能な限りの効率が得られます。アルゴリズムは高速です。また、場合によっては、この完全ではないRSAパスワードハッシュは無塩化され、コストを共有して複数のパスワードを同時に攻撃できるようになります。 PBKDF2にはソルトが含まれており、設定可能な速度(反復回数を含む)も含まれているため、このような攻撃への耐性が向上しています。