• ベストアンサー

秘密鍵 公開鍵

AからBへ公開鍵暗号方式でメールを送信する場合、Aはどの鍵を使うか?という問題で、解答は「Bの公開鍵」が正解なのですが、これはどうしてそういう答えになるのか、理解が出来ていません。 ご教示、よろしくお願いいたします。 また、同じAからBへ秘密鍵暗号方式でメールを送信する場合はどうなるのかも、併せてご教示頂ける 幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

こんばんわ。専門は暗号ではありませんが、セキュリティを生業にしている者です。 可能な限り簡単に、イメージをつかめるように書きたいと思います。 シナリオ:  ・AさんがBさんにメールを送る。  ・Aさんは、世界中の他の誰でもなくBさんにそのメールを読んでもらいたいと思っています。 Bさんの公開鍵と秘密鍵の状態  ・公開鍵と秘密鍵はそれぞれ別々のもので、片方からもう片方を推測することはできない。  ・Bさんの公開鍵は、基本的に世界中のだれでも入手・利用することができる。  ・Bさんの秘密鍵は、世界中でBさんただ一人が持っている。  ・Bさんの公開鍵で暗号化されたデータを復号できるのは、Bさんの秘密鍵だけ。  ・(逆に、Bさんの秘密鍵で暗号化されたデータを復号できるのは、Bさんの秘密鍵だけ) Aさんが目的を達成するには、Bさんの公開鍵で暗号化する必要があるということがわかると思います。要するに、仮に暗号化された通信文が世界中に公開されたとしても、その暗号を解いて元の通信文を取り出せるのは、世界中でBさんしかいないからです。 2つ目の質問の秘密鍵暗号方式ですが、こちらの鍵の状態がどうなっているかというと、  ・暗号化と復号に利用する鍵 = AさんとBさんが持っている鍵は同一の鍵。  ・このため、この鍵を持っているのは世界中でAさんとBさんしかいてはならない。  ・逆に言えば、この鍵を入手した人は誰でも、その鍵で暗号化されたデータを復号できる。 となっています。ですから、あえて答えるならば"AさんとBさんが同一の鍵を共有して、それを暗号化と復号に利用する"ということになります。 しかし、少し考えればわかりますが、秘密鍵暗号のみで安全に暗号化通信を行うのは容易ではありません。なぜならば、直接会うことでもできない限り、安全にAさんとBさんとが同じ鍵を持つことができないからです(直接会えるならば暗号化の必要はない)。 このため、現在のインターネットで実際に現在利用されている方式(S/MIME)は以下の通りです。  1. Aさんは通信文をまず任意の秘密鍵αで暗号化し、"暗号化された通信文"を作成する(秘密鍵αをBさんと事前に共有している必要はない)  2. 1.で使った秘密鍵αをBさんの公開鍵で暗号化し、"暗号化された秘密鍵α"を作成する  3. Aさんは"暗号化した通信文"と"暗号化された秘密鍵α"をBさんに送る(もし誰かがこの通信文を手に入れても復号は不可能)  4. Bさんは自分の秘密鍵で"暗号化された秘密鍵α"を復号し、秘密鍵αを取り出す。  5. 続いて、取り出した秘密鍵αで"暗号化された通信文"を復号する。  6. 元の通信文を取り出す。 なぜこんな面倒くさいことをするかというと、公開鍵暗号方式は秘密鍵暗号方式に比べて計算時間が圧倒的にかかるので、通信文そのものを公開鍵暗号方式で暗号化・復号するには時間がかかりすぎてしまうからです。秘密鍵暗号方式で利用した鍵を公開鍵暗号方式で暗号化することで、安全性と速度との両方を実現しているのです。

Youyou
質問者

お礼

ありがとうございます。 非常にイメージがしやすかったです。 Webサイトや教材ではなかなかここまでわかりやすく解説しているものがなくて、困っていました。 助かります。

その他の回答 (4)

回答No.5

前提として、 秘密鍵は自分だけが保持するもの。 公開鍵は配布するものという話は理解していると思います。 んで、 復号できるのは暗号化するときに使用したカギの対極にあるカギです。 暗号化というのは、相手だけが読むことができればよいので相手だけが復号できるように暗号化します。 つまり、 相手の公開鍵で暗号化することで、 暗号化された分の復号は相手の秘密鍵でしか復号できないという話。 わかってしまえばそんなに難しい話ではないかと。

Youyou
質問者

お礼

ありがとうございます。 簡潔でわかりやすかったです。

  • uyama33
  • ベストアンサー率30% (137/450)
回答No.3

暗号ソフトや、暗号メールを送信できるソフトが ベクターというネットのソフト屋さんに、 有料のもの、無料のもの沢山あります。 ”ベクター 暗号通信” などで検索して、とりあえず使ってみるのが一番です。 公開鍵暗号では、RSAや楕円曲線暗号もあります。 対称鍵暗号では、AESやカメリアなどもあります。 気楽に遊びながら体験すれば解説も良く分かるようになります。 暗号メールで遊んでみて下さい。そのあとで解説を読んでみて下さい。

Youyou
質問者

お礼

ありがとうございます。 今は試験勉強中なので、とりあえず、暗記あるのみですが、ひと段落したら、遊びがてら試してみようと思います。

noname#214300
noname#214300
回答No.2

Bの公開鍵でメールを暗号化した場合、そのメールを復号出来るのはBの秘密鍵だけです。 (RSA等の公開鍵暗号法は、DESの様な共通鍵暗号法とは違い、復号/暗号で使う鍵が違います) Bの秘密鍵は、Bだけが持っています。だからBだけがメールを復号出来るよう、Bの公開鍵で暗号を掛けます。 >同じAからBへ秘密鍵暗号方式でメールを送信する場合はどうなるのかも、併せてご教示頂ける 幸いです。 共通鍵暗号方式の事ですかね? この場合は、AはBと事前に取り決めていた鍵を使ってメールを暗号化します。 (もちろんAが勝手に鍵を決めて、後でBに教えても良いですが。暗号化されたメール本文と、鍵を教える通信が別々というところで、一定のセキュリティを担保します)

Youyou
質問者

お礼

ありがとうございます。 今は試験対策で丸暗記が優先なので、今後理解をさらに深めるためにもう少し勉強をしたいと思います。

  • jusimatsu
  • ベストアンサー率11% (171/1438)
回答No.1
Youyou
質問者

補足

ありがとうございます。 まず、ウィキペディアの解説は難しすぎて、さっぱり理解が出来ません。 http://www.infonet.co.jp/ueyama/ip/glossary/public_key.html は何となく、書いてある意味はわからなくもないのですが、だからどうしてA⇒Bに送信するためにBの公開鍵がいるのか、というふうに結びつくのか、が理解できません。 色々Webサイトは検索して見つけたのですが(ご紹介のサイトも一部既に拝見しています)、どうも私には難しすぎて・・・。 まず、この手の理論を知るための第一歩ってどうすればいいのでしょう?

関連するQ&A