はじめに
暗号の世界へようこそ!この実験 (Lab) では、現代のセキュリティにおける最も基本的な概念の 1 つである、暗号学的ハッシュについて実践的に学びます。具体的には、SHA-256 アルゴリズムを使用します。
暗号学的ハッシュ関数とは、任意のサイズの入力(または「メッセージ」)を受け取り、固定長のバイト列を返す数学的なアルゴリズムです。この出力は通常、「ダイジェスト」または「ハッシュ」と呼ばれます。例えば、SHA-256 は常に 256 ビット(32 バイト)のハッシュを生成します。
これらの関数には、いくつかの重要な特性があります。
- 決定論的 (Deterministic): 同じ入力からは、常に同じ出力が得られます。
- 一方向性 (One-way): ハッシュから元の入力を復元することは計算上不可能です。
- 雪崩効果 (Avalanche Effect): 入力にごくわずかな変更(例:1 文字の変更)を加えると、出力ハッシュは劇的に異なります。
この実験 (Lab) を通じて、openssl コマンドラインツールと簡単な Python スクリプトを使用して、これらの特性を探求し、ファイル整合性の検証やパスワードの保護といった現実世界のシナリオでハッシュがどのように使用されているかを理解します。



