暗号化ハッシュ関数の定義
暗号化ハッシュ関数は、暗号化で使用される数学関数です。 典型的なハッシュ関数は、可変長の入力を受け取り、固定長の出力を返します。 暗号化ハッシュ関数は、ハッシュ関数のメッセージ受け渡し機能とセキュリティプロパティを組み合わせます。
暗号化ハッシュ関数の詳細
ハッシュ関数は、メッセージの整合性の確認や情報の認証などのタスクのためにコンピューティングシステムで一般的に使用されるデータ構造です。 ただし、暗号的に弱いと見なされます。 暗号化ハッシュ関数は、一般的なハッシュ関数にセキュリティ機能を追加するため、メッセージの内容や受信者と送信者に関する情報の検出が困難になります。
特に、暗号化ハッシュ関数は3つの特性を示します
- それらは「衝突のない」ものです。簡単に言えば、2つの入力ハッシュが同じ出力ハッシュにマップされることはありません。 それらは非表示にすることができます。 簡単に言えば、出力からハッシュ関数の入力値を推測するのは難しいはずです。 彼らはパズルにやさしいはずです。 つまり、事前定義された出力を提供する入力を選択するのは難しいはずです。 したがって、入力はできるだけ広い分布から選択する必要があります。
上記の3つのプロパティは望ましいものですが、実際に常に実装できるとは限りません。 たとえば、入力ハッシュと出力のサンプルスペースの不一致により、衝突が可能になります。 この例は最近、MIT Digital Currency InitiativeがIOTAに衝突の脆弱性を発見したときに実証されました。
暗号化ハッシュ関数は、暗号通貨でトランザクション情報を匿名で渡すために広く使用されています。 たとえば、元の最大の暗号通貨であるビットコインは、アルゴリズムでSHA-256暗号化ハッシュ関数を使用します。 同様に、IoTのプラットフォームであるIOTAには、Curlと呼ばれる暗号化ハッシュ関数があります。