bcrypt

Niels ProvosとDavid Mazièresが1999年にUSENIXで発表したパスワードハッシュ関数。Blowfish暗号を元に、意図的に鍵スケジュールを重くした"EksBlowfish"(expensive key schedule Blowfish)がベースになっている。名前の由来も"Blowfish crypt"から。

コストファクター

bcrypt最大の特徴は「コストファクター」という2のべき乗で表される反復回数パラメータ。コストファクターがNのとき、Blowfishの鍵スケジュールを2^N回繰り返す。コストファクターを1増やすごとに計算時間は2倍になる。ハードウェアの高速化に合わせてコストファクターを引き上げることで、計算コストを追随させられる「適応型」ハッシュ関数として設計されている。

2024〜2026年時点でのOWASP推奨は「本番環境のハードウェアで1ハッシュあたり約250msを目標にする」で、多くのクラウドインスタンスではコストファクター12がその目安に相当するとされる。

パスワードハッシュアルゴリズムの中での位置づけ

CPU時間のみをコストに変換する方式で、Argon2idscryptのような大容量メモリ確保を要求する「メモリハード」性は持たない。そのため専用ハードウェア(ASIC/GPU)による並列ブルートフォース耐性では、メモリハード関数に劣ると位置づけられる。とはいえ長年の実績と広範な実装がある、枯れた選択肢でもある。

#security #cryptography

出典

作成日時: 2026-08-16 23:15 / 更新日時: 2026-08-16 23:15