用語集 · 更新日
ハッシュ値(デジタル指紋)
文書の内容から計算される固定長の値。1バイトでも変わると値がまったく変わるため、改ざんの検知に使われる。
「ハッシュ値(デジタル指紋)」とは?
ハッシュ値は、ハッシュ関数という計算方法でファイルから求める短い値で、デジタル指紋とも呼ばれます。SHA-256 では64文字の16進数になります。同じファイルからは常に同じ値が得られ、内容がわずかでも変わると、まったく違う値になります。逆に、ハッシュ値から元のファイルを復元することはできません。
電子署名法は、電子署名の要件として、改変が行われていないかを確認できることを挙げています(第2条第1項第2号)。ハッシュ値は、この「改変の有無の確認」を実現するための基本的な道具で、デジタル署名の仕組みの中でも使われています。
ハッシュ値の便利な点は、ファイルそのものを渡さなくても照合できることです。たとえば当社の検証ページでは、PDF はブラウザの中でハッシュ値に変換され、当社のサーバーに送られるのは64文字の値だけです。契約書の中身を第三者に見せずに、「このファイルは署名されたときのままか」を確認できます。
eSignSimple は、送信前の元の文書と、署名完了後の最終ファイルのハッシュ値を計算して証明書に記載します。完了メールにも最終ハッシュ値が記載されるため、メールを保管しておけば、後からでも照合できます。
私たちの見解:ハッシュ値は「見た目が同じか」ではなく「中身が1バイトも違わないか」を調べます。PDF を別のソフトで開いて保存し直すだけでも値が変わることがあるため、署名済み PDF は受け取ったファイルのまま保存しましょう。
ハッシュ値は、電子帳簿保存法やタイムスタンプの仕組みなど、電子文書の真実性を確保するさまざまな場面で使われています。ハッシュ値そのものは秘密の情報ではないため、メールで共有しても問題ありません。
ハッシュ値は、文書の内容そのものではなく「指紋」だけを比べる仕組みなので、機密性の高い契約書でも安心して照合に使えます。取引先や弁護士に文書の完全性を説明するときは、「証明書に記載されたハッシュ値と、手元のファイルのハッシュ値が一致する」ことを示すだけで十分なことが多いです。
具体例:取引先から「送られてきた PDF と手元の PDF が同じか確認したい」と言われたとき、両方のファイルを検証ページに置けば、どちらも署名時のファイルと一致するかがすぐにわかります。見比べて探す必要はありません。
「ハッシュ値(デジタル指紋)」の具体例
署名済みの契約書の金額が後から1文字書き換えられていないか確認したいとき、PDF を検証ページに置くと、ハッシュ値が一致しないことで改変がわかります。
関連する用語
- デジタル署名: 公開鍵暗号と電子証明書を使って、文書と署名者を技術的に結びつけ、署名後の改変を検知できるようにする仕組みのこと。
- 監査証跡: 署名の過程で文書に起きたすべての出来事(送信、閲覧、署名、完了など)を、日時、IP アドレス、端末とともに記録した履歴。
- 署名証明書(完了証明書): 署名済み PDF に添付されるページで、誰が、いつ、どのように署名したかと、文書のハッシュ値をまとめたもの。
よくある質問
SHA-256 は安全ですか?
SHA-256 は現在広く使われているハッシュ関数で、実用的な方法で同じハッシュ値を持つ別のファイルを作ることは知られていません。
PDF を印刷してスキャンしたらハッシュ値は一致しますか?
一致しません。印刷やスキャン、別ソフトでの再保存でファイルの中身が変わるため、元の署名済み PDF を保存しておく必要があります。
ハッシュ値から契約内容がわかりますか?
わかりません。ハッシュ値から元のファイルの内容を復元することはできません。
ハッシュ値が一致しないのはどんなとき?
ファイルの内容が1バイトでも変わったときです。改ざんのほか、別のソフトで開いて保存し直した、印刷してスキャンした、といった場合も一致しなくなります。
ハッシュ値を自分で計算することはできますか?
できます。Mac や Linux ではターミナルの shasum -a 256 コマンド、Windows では PowerShell の Get-FileHash コマンドで SHA-256 を計算でき、証明書の値と比べられます。
MD5 や SHA-1 と SHA-256 の違いは?
いずれもハッシュ関数ですが、MD5 と SHA-1 には弱点が知られており、改ざん検知の用途では SHA-256 などのより新しい方式が使われています。