送りたいファイルがあるとしますよね?
これをファイルAとします
「ハッシュ関数」と言うものを使ってファイルAから
「ハッシュ値」と言うものを作成します
このハッシュ値はファイル固有のものであり
同じハッシュ値を作成できるファイルを作成するのは
とても困難です
またハッシュ値から元のファイルを作ることはできません(計算問題でも答えから問題は判りませんよね?)
ファイルAはそのまま送っちゃいます
ハッシュ値は秘密鍵を使って暗号化して送ります
電子署名では復号化は公開鍵で行います
ここで認証局の登場です
認証局は公開鍵に対して
「この公開鍵は○○さんの物である」と言う証明を行います
どうやって証明するかは#1さんが書いてますね
さてファイルAと暗号化されたハッシュ値は届いたとします
受け取った人はファイルAからハッシュ値を作成します
そして公開鍵で復号化したハッシュ値と比較します
これで一致すれば改竄されずに届いたと言うことになります
暗号化されたハッシュ値は秘密鍵を持つ送信者にしか作れませんよね?
これを「電子署名」とすれば送信者になりすます事が困難になり、なりすましや改竄が大変困難になります
以上が電子署名の仕組みです、
なりすましより改竄対策に有効だと思います
お礼
この一連の動きは、もともと相手の公開鍵で文書を作成した人が、今度は自分の秘密鍵で同じ文書を作り(電子署名のため)相手に送信する・・という流れでしょうか?