新しいシステムでは、バイナリ入力 (たとえば、1 キロバイトのテキスト、またはより大きなテキストとバイナリ ファイル) からデジタル署名を計算するために一方向ハッシュが必要です。この必要性は、Scons (ビルド システム) がコマンドラインとソース ファイルをハッシュする方法と、Git (バージョン管理システム) がファイルをハッシュしてストレージ/同期用の署名を計算する方法に似ています。
Scons は MD5 を使用し、Git は SHA-1 を使用することを思い出してください。
MD5 と SHA-1 は「壊れて」いますが、Scons も Git も特にセキュリティのためにハッシュを使用していません (たとえば、パスワードを保存するためではありません)。(もちろん、これはレガシーの採用による部分的な合理化です。)
質問: 新しいシステムで (非暗号化/セキュリティ) 一方向ハッシュに SHA256 (MD5 や SHA-1 ではなく) を使用しますか?
懸念事項は次のとおりです。
- MD5 と SHA-1 の採用には長い歴史があります
- SHA256 は比較的新しい (歴史はそれほど多くない) ですが、現在、新しい作業に推奨されているようです (ただし、「より強力な」アルゴリズムの強度は、私のアプリケーションには特に必要ありません)。
- SHA256 は計算に時間がかかる
- SHA256 はより長いキーを生成します (これらはディレクトリ/ファイル名として使用され、インデックス ファイルに格納されます) が、生成されたキーを切り捨てることができると思います (ハッシュはそれほど強力ではありませんが、十分なはずです)、または単にストレージが安価であると仮定しますファイルシステムはそれを処理できます。
Scons や Git コミュニティと一致する回答に特に興味があります。または「できるだけ早く新しいハッシュに移行したい!」(彼らの計画が何であるかわかりませんか?)