メインコンテンツへスキップ
Certyneo
用語集の用語 · F

ハッシュ関数

定義

ハッシュ関数は、任意のサイズの入力を固定長の出力(ダイジェストまたはハッシュと呼ばれるフィンガープリント)に変換する一方向数学関数です。1ビットの変更であっても、まったく異なるフィンガープリントが生成されます。最新の関数(SHA-256、SHA-3)は衝突耐性を備えています。デジタル署名では、ドキュメントはまずハッシュされ、そのフィンガープリントは秘密鍵で暗号化されます。これにより署名されたコンテンツの完全性が保証されます。

よくある質問

ハッシュ関数はどのような特性を持つ必要がありますか。

3つの本質的な特性があります。決定論的です。同じ入力は常に同じハッシュ値を生成します。一方向性があります。ハッシュ値から入力を復元することはできません。衝突耐性があります。異なる2つの入力が同じハッシュ値を生成することはほぼ不可能です。さらに、わずかな変更でハッシュ値が大きく変わるアバランシェ効果があります。

文書全体ではなく、ハッシュ値に署名するのはなぜですか。

効率性とセキュリティの理由からです。非対称暗号化操作は遅く、小さなサイズのデータに対して実行されます。固定長のハッシュ値は、その容量に関係なく、文書を忠実に表現します。ハッシュ値に署名することは、文書が1ページであろうと1000ページであろうと、文書に署名することと同じです。

どのアルゴリズムはまだ安全と見なされていますか。

SHA-2ファミリー(SHA-256が最も使用されているメンバー)およびSHA-3が推奨されています。MD5およびSHA-1は署名に使用すべきではありません。SHA-1については2017年に実際に衝突が発生しており、署名を無効にすることなく、ある文書を別の文書に置き換えることが可能になります。

ハッシング暗号化の違いは何ですか?

暗号化は可逆的です。正しい鍵があれば、元のメッセージを取り戻すことができます。ハッシングはそうではありません。ハッシュ値からは文書を復元することはできません。目的も異なります。暗号化は機密性を保護し、ハッシングは完全性を検証します。電子署名は後者に基づいており、前者には基づいていません。

これらの概念を実践する準備はできていますか?

Certyneoなら、インストール不要で数クリックでeIDAS準拠の署名エンベロープを作成できます。