公開鍵暗号方式に疑問があります


どうして公開鍵で鍵をすることができて  
公開鍵で鍵を開けられないのですか？

公開鍵で鍵を出来るのなら  
誰でもなりすますことが可能ですよね  
それって暗号として意味がありますか？




2015/05/27 追記

以下の電子署名に関する記載は､公開鍵暗号の種類であるRSA暗号に限った話になります。  
公開鍵暗号全般に適用できませんのでご注意ください。

追記ここまで

公開鍵暗号は、公開している公開鍵と自分だけが持っている秘密鍵の2種類の鍵を使い暗号化と復号を行います｡

そして、公開鍵の特徴として､公開鍵を使って暗号化したデータはその一方向性から公開鍵を使って復号することができず、自分だけが持っている秘密鍵を使わなければ復号できません。

ただ、公開鍵暗号の本質は公開されている鍵を使い特定の相手への送信を暗号化することなので､本来的になりすましを防ぐことは考慮されていませんし、又その能力もありません。

逆になりすましを防ぐのは電子署名という技術になり、コレは先の秘密鍵で鍵をかけたデータは公開鍵で開くことができますから、秘密鍵がばれていなければ間違いなく秘密鍵を唯一持っている本人から送信されたものであると証明できます｡

従って､Hogeさんから、Piyoさんへなりすましを防ぎなおかつ暗号化して送信する場合は､

  1. 送るべき平文をHogeさんの秘密鍵を使って暗号化（電子署名）
  2. 先の暗号化された暗号文をさらにPiyoさんの公開鍵を使って暗号化  
となり、受信したPiyoさんは

  3. Piyoさんの秘密鍵を使って復号
  4. Hogeさんの公開鍵を使って復号

と言う手順を踏むことで、暗号化と電子署名を行うことができます｡

