あけましておめでとうございます。 ビットコインの基盤技術であるブロックチェーンではSHA-256というハッシュ関数が使用されており、強力な改竄耐性を実現するために重要な役割をはたしています。 ブロックチェーンに限らずITの分野ではSHA-256は頻繁に登場します。 SHA-256の説明として、データを決まったサイズの文字列(ハッシュ値)に変換し、またハッシュ値からもとのデータを復元することが困難という特性はよく聞きます。実際どのようにそれが実現されているのか気になったので調べてみました。 SHA-256の概要 sha256は暗号学的ハッシュ関数のSHA-2シリーズの一つです。 ハッシュ関数とは元のデータからダイジェスト(要約)を得る関数のことで、そこに 一方向性 衝突困難性 が追加されたものを暗号学的ハッシュ関数と呼びます。 sha256の仕様と実装 sha256の仕様はアメリカ国立標準技