bcrypt(ビークリプト)
パスワードハッシュ関数(OpenBSD)。Blowfish基盤+cost factor 12(2026年推奨・2^12 round)・$2a$/$2b$/$2y$接頭辞・72バイト最大・salt内包、bcryptjs(JavaScript)・argon2(bcrypt後継推奨2015 PHC)・scrypt(Litecoin)代替、OWASP 2025推奨はargon2id>bcrypt>scrypt順。
概要
bcrypt は OpenBSD で開発されたパスワードハッシュ関数で、Blowfish の暗号化エンジンをベースにしている。 2026年に推奨される cost factor は 12(2^12 ラウンド)で、$2a$、$2b$、$2y$ の接頭辞を持つ。 72 バイトまでの入力文字列に対して salt を内部に埋め込み、salt の長さは 16 バイト。 2025年に登場した bcryptjs は JavaScript 環境で同等の機能を提供する。 2025年以降、OWASP は argon2id を最優先、bcrypt、scrypt の順で推奨している。
主な特徴・仕組み
- Blowfish 基盤: 64 ビットブロック暗号を利用し、可変長キーをサポート。
- Cost factor: 12 を標準にし、2^12 = 4096 ラウンドで計算時間を増大。
- Salt 内包: 16 バイトの salt をハッシュ文字列に埋め込み、同一パスワードでも異なるハッシュを生成。
- 入力長制限: 72 バイトまでで、超過分は自動的に切り捨て。
- 互換性: $2a$、$2b$、$2y$ の三種類のプレフィックスにより、古い実装との互換性を保持。
- アルゴリズムの進化: 2026年に argon2id が推奨される一方、bcrypt は依然として多くのシステムで採用されている。
- 実装例: bcryptjs(JavaScript)、bcrypt-ruby(Ruby)、bcrypt-py(Python)など多様な言語で利用可能。
- ハードウェアアクセラレーション: 2025年にリリースされた GPU での実装例が報告され、計算時間を 30% 低減。
- セキュリティ評価: 2025年の OWASP レポートで、bcrypt は 2^12 ラウンドで 1 秒以上の計算時間を要し、ブルートフォース攻撃を実質的に抑制。
- 次世代対応: 2026年に発表された argon2id との比較表で、bcrypt はメモリ使用量が低く、低スペック環境でも実装しやすい点が評価される。
スペック/製品比較表
| 仕様項目 | bcrypt | argon2id | scrypt |
|---|---|---|---|
| cost factor | 12 | 2 | 14 |
| ラウンド数 | 4096 | 2 | 16384 |
| メモリ使用量 | 1 MB | 64 MB | 128 MB |
| 推奨ハードウェア | CPU 2.5 GHz | CPU 3.0 GHz | CPU 3.5 GHz |
※ 上記は 2025年に公開されたベンチマークデータを基にした概算値である。
具体例・対応製品
- RTX 5090: 2025年に登場した GPU は bcrypt をハードウェアで実装し、1 秒あたり 200,000 ハッシュを生成。
- Ryzen 9 9950X3D: 3.0 GHz のクロックで 12 cost factor の bcrypt を 1 秒あたり 80,000 ハッシュで処理。
- Core Ultra 9 285K: 2.5 GHz で 12 cost factor の bcrypt を 70,000 ハッシュ/秒。
- DDR5-6000: 64 MB のメモリを搭載したサーバーで、argon2id を 2 秒で 10,000 ハッシュに達成。
- PCIe 5.0 x16: 2026年にリリースされた PCIe 5.0 インターフェースは、bcrypt のデータ転送を 5 Gbps で実現。
自作PCでの選び方・注意点
- CPU クロック: 2.5 GHz 以上が望ましく、bcrypt の計算時間はクロックに比例。
- メモリ容量: 8 GB 以上を推奨。 12 cost factor では 1 MB で十分だが、argon2id を併用する場合は 16 GB 以上が必要。
- ストレージ速度: NVMe SSD(1,500 MB/s)を採用すると、ハッシュ生成後の保存速度が向上。
- 電源容量: 750 W 以上の電源ユニットを選択し、GPU と CPU の同時負荷に耐える。
- 冷却性能: 2025年に登場した液体冷却システムは、bcrypt 実行時の温度上昇を 5°C 以内に抑制。
- OS とドライバ: Linux 5.10 以降、Windows 11 22H2 で最新の bcrypt ライブラリを使用。
- バックアップ: ハッシュデータは 2 TB の外部 SSD に定期的にコピー。
- セキュリティポリシー: cost factor を 12 以上に設定し、定期的に更新。
- 監視ツール: 2026年にリリースされた「HashWatch」アプリで CPU 使用率とハッシュ生成速度をリアルタイム監視。
- アップデート計画: 2025年にリリースされた新しい bcrypt バージョンがあれば、システムを 3 か月以内に更新。
関連用語との違い
- argon2id: メモリコストが高く、GPU での攻撃に強い。bcrypt は CPU での実装が容易。
- scrypt: メモリ使用量が大きく、低スペック環境では負荷が高い。bcrypt は 1 MB で済む。
- PBKDF2: 1 回のハッシュ計算で済むが、bcrypt の 4096 ラウンドに比べて計算時間が短い。
- SHA-256: 速度は速いが、パスワードハッシュとしては推奨されない。bcrypt は可変長 salt と cost factor を持つ。
よくある質問
Q1. bcrypt の cost factor を 12 以上に設定するメリットは?
A1. 2^12 ラウンドで計算時間が約 1 秒以上になるため、ブルートフォース攻撃を実質的に抑制できる。
Q2. 72 バイトを超えるパスワードはどう扱われる?
A2. 72 バイトを超える部分は自動的に切り捨てられ、ハッシュは 72 バイト以内の文字列で計算される。
Q3. bcrypt と argon2id のどちらを選ぶべきか?
A3. 低スペック環境や既存システムでの互換性を重視するなら bcrypt、メモリコストを許容できる場合は argon2id が推奨される。
まとめ
bcrypt は 2026年においても多くの自作PCやサーバー環境で採用されるパスワードハッシュ関数である。 12 cost factor の設定は 2^12 ラウンドで十分な計算時間を確保し、CPU だけで実装可能である点が強み。 2025年に登場した GPU 実装や 2026年の argon2id 推奨により、セキュリティとパフォーマンスのバランスを保つことができる。 具体的なハードウェア構成としては RTX 5090、Ryzen 9 9950X3D、Core Ultra 9 285K、DDR5-6000、PCIe 5.0 x16 などが挙げられ、これらを組み合わせることで高いハッシュ生成速度と安定性を実現できる。 以上を踏まえ、次世代の自作PC構築では bcrypt をベースにしたセキュリティ設計を推奨する。