• 締切済み

電子署名のしくみ教えて・・

過去の質問で、公開鍵方式の理屈は理解できました。 公開鍵と電子署名のつながりが今いち解りません・・ 認証局・なりすましをキーワードにして、わかりやすく 教えてください。

みんなの回答

  • Rbear
  • ベストアンサー率32% (78/241)
回答No.3

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

  • Kon1701
  • ベストアンサー率24% (1445/5856)
回答No.2

送りたいファイルのハッシュを求め、それを秘密鍵で暗号化する。これは、No.1で書かれている通りです。 署名ですが、改竄防止が目的です。 もし、ファイルを書き換えられたとします。そうすると、受け取ったファイルから求めたハッシュと、秘密鍵で暗号化された署名の中にあるハッシュが一致しません。これで、改竄がわかるわけです。 公開鍵方式の暗号、通常は公開鍵で暗号化し、秘密鍵で復号します。ですが、その逆、秘密鍵で暗号化し、公開鍵で復号することも可能なのです。 公開鍵、これは通常、認証局の署名が付けられて配布されます。認証局の公開鍵は、複数の方法で確認できるように公開されています。それにより正しい鍵であることを確認するわけです。 もちろん、認証局が信用できることが大前提です。 たとえば、私が勝手に認証局みたいなことを行うことも可能です。でも、私には公的な信用はないですから、たとえ私の認証局の署名があったとしても、それは信用されないことになりますね。

381mk
質問者

お礼

この一連の動きは、もともと相手の公開鍵で文書を作成した人が、今度は自分の秘密鍵で同じ文書を作り(電子署名のため)相手に送信する・・という流れでしょうか?

  • kfir2001
  • ベストアンサー率35% (163/455)
回答No.1

公開鍵が理解できれば、電子署名を理解するのは、それほど難しくはないでしょう。 自分で作成した文書のハッシュを、「自分の秘密鍵」で暗号化したものを、電子署名として使用するだけのことです。 受け取った側では、電子署名を「発送者の公開鍵」で復号化して、文書のハッシュと比較します。 間違いなければ、その文書が本物であると判断できるわけです。 次に、どうやって「発送者の公開鍵」が本物か見分けるかですが、発送者が自分の公開鍵を認証局に送付し、「認証局の秘密鍵」で暗号化してもらい「電子証明書」とします。 受け取った側は、「電子証明書」を認証局の公開鍵で復号化して、本物の公開鍵であるか見分けます。 さらに、どうやって「認証局の公開鍵」が本物か見分けるかですが、OSやブラウザーにあらかじめ主要な認証局の公開鍵は組み込まれています。その公開鍵で、他の認証局の電子証明書を認証します。 第3者が、「発送者」になりすまして電子署名をつけたとしても、「発送者の公開鍵」で復号化できなかったり、文書のハッシュと異なるため、受信者には見分けがつきます。

381mk
質問者

お礼

ありがとうございます。