ハッシュはっしゅ

・正式名称: Hash

概要

ハッシュ(Hash)とは、「薄切りまたは細かく切ること、めちゃくちゃにする」の意から、あるデータから一定の計算手順に基づいて固定長の値を求めること。求められた値をハッシュ値、計算手順のことをハッシュ関数という。
ハッシュ値から元のデータを復元することが極めて困難なことから、データ複製時の同一性や、SSL(Secure Sockets Layer)通信時のサーバ証明書などの改ざん検知、パスワード保存のセキュリティ強化など幅広く利用されている。

特徴

ハッシュ値を生成するハッシュ関数は、計算過程で情報の欠損が起きる不可逆的な一方向の関数であり、同じデータからは常に同じハッシュ値が生成され、元データの内容が少しでも変わるとハッシュ値も違ったものになる。
ハッシュ関数は、原理上、異なるデータから同一のハッシュ値を生成する(値が衝突する)可能性があるが、天文学的な桁数のため、現行の技術では時間がかかりすぎるため実質的に見つけられないとしている。
代表的なハッシュ関数には、MD5(Message Digest 5)、SHA-1(Secure Hash Algorithm 1)、SHA-1を改良したSHA-2(Secure Hash Algorithm 2)、RIPEMD(RACE Integrity Primitives Evaluation Message Digest)などがある。
MD5、SHA-1は現在では十分に安全ではないとされ、SHA-2などへの移行が推奨されている。RIPEMDは、オープンな学術コミュニティによって開発され特許による制限を受けないハッシュ関数であり、暗号資産であるビットコインにてSHA-2と共に利用されている。