2016-08-19 5 views
0

のアルゴリズムの中では、md5、sha1、sha256と比べて塩の有無にかかわらず遅いとはどういうことでしょうか?Bcryptはどのように復号化を遅くするのですか?

+1

'bcrypt'は遅くなるように設計されています。これは、安全なパスワードハッシュ保存のために必要です。要点は、攻撃者がパスワードをブルートフォースするのを遅くすることです。 MD5、SHA1、SHA256などのシンプルなパスワードでは、たとえ塩を追加しても安全ではなく、攻撃者はこれらのハッシュを一般的なパスワードのリストに対して迅速にブルートフォースできます。 – zaph

答えて

2

bcryptのは、ハッシュの多くの反復が行われている方法を制御コスト要因を、持っています。このコスト要因は、将来的に高速化されたハードウェアに適応するために増加する可能性があります。

コスト係数は2の累乗になります。つまり、コスト係数を1増加させると、計算時間が2倍になります。現在推奨されている値は、お使いのサーバーによって異なります。

1

アルゴリズムのSHAファミリは、大きな入力用のハッシュを効率的に作成するように設計されています。一方、bcryptは、小さな入力に対して計算上高価な演算を実行するように設計されています(最初の72バイトの入力のみが使用されますが、ほとんどのパスワードで十分です)。

具体的には、bcryptは、キーの設定をより高価にするために修正されたBlowfishブロック暗号のバージョンのキー設定を実行するために入力saltとメッセージを使用します。アルゴリズムはその暗号を使用して既知の平文(OrpheanBeholderScryDoubt)を暗号化します。このため、入力エントロピーには72バイトの制限があります。Blowfishアルゴリズムには、初期化が必要なサブキーの数が限られています。

Wikipedia describes this process in more detail.

関連する問題