ハッシュ(Hash)関数は、任意のサイズのデータを固定サイズの値に変換する関数です。ハッシュ関数が返す値はハッシュ値と呼ばれ、また散布コードや要約とも呼ばれます。ハッシュ値の空間は有限であり、入力の空間は通常無制限ですので、異なる入力が同じハッシュ値を生成する可能性があります。つまり衝突が発生し、これはハッシュ関数が不可逆であることを意味し、ハッシュ値から元の入力を逆算することはできません。ハッシュ関数は、チェックサム、フィンガープリント、エラー訂正コード、デジタル署名、パスワード、散布テーブルなどで一般的に使用されます。一般的なハッシュ関数には、MD5、SHA-1、SHA-2などがあります。
MD5アルゴリズムは、Ronald Rivestによって1991年に設計されたメッセージダイジェストアルゴリズムで、以前のハッシュ散布関数MD4を置き換えるために使用されました。最終的には、128ビットのバイナリの不可逆...
SHA-1(Secure Hash Algorithm 1)は、MD5と同様の役割を持つ、アメリカ国家安全保障局によって設計された暗号化ハッシュ関数です。入力に対して計算を行い、最終的には160ビットのハッシュ値(メッセ...
2001年、アメリカ国家安全保障局は暗号化ハッシュ(散布)関数の一群であるSHA-2(Secure Hash Algorithm 2)を設計しました。SHA-2はその前身であるSHA-1に比べて大きな変更が加えられていま...
SHA-3(Secure Hash Algorithm 3)は、2015年にアメリカ国家標準技術研究所によって公開された安全なハッシュ(散布)アルゴリズム標準シリーズの最新メンバーであり、Keccakアルゴリズムとも呼ば...
HMACは、メッセージの完全性を検証するための暗号化アルゴリズムです。これは、MD5、SHA-1、SHA-2、SHA-3などのハッシュ(散布)アルゴリズムをベースに構築されており、鍵が必要です。通信する両方の当事者は鍵を...
PBKDF2は、パスワードベースのキー派生関数です。多くの暗号学的アプリケーションでは、ユーザーのセキュリティは最終的にパスワードに依存しますが、パスワードは通常、直接キーとして使用することはできませんので、何らかの処理...