SHA-256は、どんな長さの文章からも常に256bit(64桁の16進数)の「指紋」を 作り出すハッシュ関数です。同じ文章なら常に同じ指紋、1文字でも違えば 指紋はまるごと変わります。
A幕: 文章の指紋
指紋(SHA-256):
B幕: アバランチ効果
2つの文章を比べます。片方だけ変えると指紋はどう変わるでしょうか。
C幕: 64ラウンドの内部
"abc"という3文字を例に、内部の8個のレジスタ(a〜h)が64回更新される様子を追います。
この段のメッセージスケジュール W[t]:
1x
D幕: 一方向性
指紋から元の文章に戻す方法は知られていません。体感として、 「指紋の先頭16bitだけが一致する文章」を実際に総当たりで探してみます (これは本物の逆算ではなく、原像を探す実験です)。
目標(先頭16bit):
パスワードは平文のまま保存せずハッシュにして保存する・ファイルのダウンロードが 壊れていないか確認する・ブロックチェーンでの「前の記録の指紋」の連鎖―― ハッシュ関数はこうした場面で使われています。