Hash
ハッシュ
任意のデータを変換して得られる固定長のデータのこと
ハッシュ関数
ハッシュ衝突
利用用途
誤り検出
データの送信時に、データとそのハッシュ値を暗号化したものを一緒に送る
このように認証のためにハッシュ値を「署名」という
受信者は受け取ったデータをハッシュ関数にかけ、データの整合性を確認できる
暗号化
Webサービスのログインパスワードなどもハッシュによって暗号化してDBに保存したりする
もしDBのデータが漏洩しても耐える
Cache
git
よく知らないが、使われているはずmrsekut.icon
ダブルハッシュ
Hashしたものをハッシュにする
ハッシュ関数の組み合わせを変えたりしてより予測しづらいハッシュ値を算出できる
Bitcoinで使われているハッシュ関数
SHA256
RIPEMD160
オープンなコミュニティで開発されているRIPEMDの内の一つ
160bitのハッシュ値を返す
OpenSSLなどにも使われている
ハッシュに対する攻撃
Brute Force Attack
ただのハッシュ値に対してこれをやるのは選択肢が多すぎて厳しいが、
例えばサービスのユーザーの認証に対してなら、同じパスワードは同じハッシュ値になるので、選択肢を大幅に減らすことができる
Rainbow Table Attack