ディジタル署名
インターネットの世界では、様々な情報は色々な経路を通って送信者から送り先の相手へ情報を渡しています。
世の中には悪意をもった人が、送った情報を改ざんする行為があります。
情報の改ざんが行われていないことを証明する手法としてディジタル署名という仕組みがあります。
秘密鍵と公開鍵
ディジタル署名は、送信者の送った情報(データ)が間違いなく本人からと証明するために送信者は「公開鍵」「秘密鍵」と呼ばれるものを用意します。
【秘密鍵】
送信者のみが管理する秘匿された鍵。
【公開鍵】
送信者の秘密鍵で作成された公開用の鍵。
送信者の秘密鍵で暗号化された情報を複合することができる。
仕組みについて
①送信者と受信者の間には、使用するハッシュ関数も共有します。
②送信者は「秘密鍵」を用いて、「公開鍵」を作成して受信者に渡します。
③送信者は受信者へ渡すデータをハッシュ関数を用いてハッシュ値を算出します。
④算出したハッシュ値を送信者の「秘密鍵」で暗号化状態にします。
⑤送信者は受信者へ渡すデータと合わせて④で暗号化したハッシュ値を「署名」として送信します。
⑥受信者は受け取ったデータに署名されている暗号化された「署名」を「公開鍵」で復号します。
→この結果、送信者がハッシュ関数を用いたハッシュ値が判明します。
⑦受信者は、送信者から受け取ったデータを送信者と同じハッシュ関数を用いてハッシュ値を算出します。
⑧「署名」から公開鍵で復号したハッシュ値と受け取ったデータで算出したハッシュ値が一致していれば改ざんされていない証明となります。
まとめ
ディジタル署名を活用することで、重要なデータを送った人が本人であることを証明することができます。
悪意ある人がデータを改ざんしていた場合、暗号化された情報と不一致になるので第三者による介入があったと気づくことができます。
「データの改ざんを防ぐ」ということではありませんが、「改ざんされていないことを証明」する手法として活用する意識を持っていただければと思います。