どっかの高専生の技術備忘録

10割自分の備忘録用のブログ。

Windows環境でPGP(GnuPG)を使う~公開鍵暗号、秘密鍵暗号について~

目次

 

 

そもそもPGPとは?

Pretty Good Privacyの略称でフィル・ジマーマンって人が作った暗号化ソフト

公開鍵暗号方式を採用していてファイルの暗号化と署名ができるやーつ

今はシマンテック社に買収されてる

超ざっくり説明だから詳しく知りたい人はWikipediaへどうぞ。

ちなみにPGPはもともとアメリカで開発されて当時は国外へ輸出できなかった。

規制緩和でOpenPGP(アメリカ国外でも使える版)ができて、それの別実装版がGnuPG

これも詳しく知りたい人はWikipediaへどうぞ。

 

 

どうしてPGPを入れるのか?

ロマンがあるから

すみません、ちゃんと書きます。

まず、前述したとおりPGP公開鍵暗号方式を採用しているので勉強も兼ねて触ってみたかった。

あと、自分でファイルを暗号化してる感がめっちゃする!!

最近のメールサービスとか、インスタントメッセンジャーとかって全部裏で勝手にやってくれるから、身近なもので身近でない暗号化っていう行為を自分でやってみたかった。

 

 

公開鍵暗号方式秘密鍵暗号方式について

おそらくここまで読んでる人が思ったこと。公開鍵暗号ってなに?

郵便にたとえて説明します。ついでに秘密鍵暗号も説明しちゃいます。

 

シチュエーションはAさんがBさんにを大事な書類を送りたいとします。

ちなみにAさんとBさんは日本とブラジルぐらい離れているとする

 

もし、その内容を葉書に書いて送ったとしたらどうでしょう?

郵便を回収する人や、関係ない郵便局員の人も書類の内容を知ることができちゃいます。これが何も暗号化していない状態です。

 フリーWifiとかに繋いでいてこれをやったらとんでもないことになっちゃいますね。

 

じゃぁどうすれば安全にファイルを送れるのか?

 

おそらく一番安全なのは金庫に書類を入れて相手に送るということです。

ここで使う鍵の仕組みに公開鍵方式と秘密鍵方式に違いがあります。

 

秘密鍵暗号方式の場合

使う仕組みは鍵穴があって対応した鍵がないと開け締めできないタイプのやつです。

ここで使う対応した鍵を鍵Lとします。

 

  1. Aさんは金庫に書類を入れ鍵Lを使って鍵穴を回し、金庫をロックします。
  2. Aさんはロックされた金庫をブラジルにいるBさんへ送ります。
  3. Bさんは送られた金庫を同じく鍵Lを使って鍵穴を回し、金庫を開けます。
  4. 無事にBさんは書類を受け取りました。

 

この場合AさんとBさん以外に金庫の中身を見れる人はいるでしょうか?

郵便の配達員さんもAさんが金庫を送る頃にはロックがされており、

開けることはできません。

お互いに秘密の鍵を持っているのでこの名前なんです。

一見するとこれで十分かもしれませんが、一つ大きな弱点があります。

秘密鍵方式というのは相手と自分が同じ鍵を持っていることが大前提になります。

 

 AさんとBさんが同じ鍵Lを持っていないと上の状況が成立しないのです。

ピンと来ましたか?

 

来ていない人へ質問です。

どうやって鍵Lを安全にBさんへ渡しましょう?

 

  • 鍵Lをそのまま送ると配達員が合鍵をつくかもしれない。
  • 金庫に鍵を入れようとすると無限に鍵が必要
  • 複数人に送るとすると人数分鍵が必要
  • 直接会うのめんどい

 

これを鍵配送問題といいます。

秘密鍵方式だけだと安全性に限界があるということです。

 

そこで公開鍵方式の出番

使う仕組みは錠前と鍵でロックをするタイプです。

f:id:datsuka_qwerty:20200406145504p:plain      f:id:datsuka_qwerty:20200406145505p:plain

こんなやーつ

 

  1. BさんはAさんに錠前を送る(対応する鍵は手元においておく)
  2. Aさんは金庫に書類を入れ送られた錠前鍵をかける
  3. AさんはBさんに金庫を送る
  4. Bさんは送られた金庫についている錠前を手元にある鍵で解錠する
  5. 無事にBさんは書類を受け取る

 

これだとどうでしょうか?

錠前というのは鍵をかけることは誰にでもできるので

AさんとBさんが同じ鍵を持つ必要はありません。

しかも、複数人に書類を送りたいときもこれだとBさんが持つ鍵は一つで十分です。

Bさんが錠前の鍵をきちんと保管していれば誰にも開けられません。

ここで言う錠前が公開鍵、Bさんの持っている鍵が秘密鍵となります。

だからこの名前なんです。

 

つまり、Bさんの錠前でAさんが鍵をかけBさんしかもってない鍵で開けるって事です。

*正確にはここの錠前も鍵と一緒

 

これで鍵配送問題が解決したように見えます。

しかし、これにも一つ欠点があります。

 

この錠前と金庫の持ち主がBさんという証明がどこにもないのです。

 

  • もしかしたら配達員が錠前をすり替えてるかもしれない。
  • つくった人がわからないから不安

なのでBさんのものだと確認しなくてはいけません。

 

そこで登場!署名さん

名前でおおよそ分かると思いますが、、

金庫と錠前にBさんのサインがされていたらどうでしょうか?

そのサインはBさんオリジナルのもので他人が複製しようとしても筆跡鑑定でバレてしまいます。

これは実際の状況でも同じでBさんは自分の秘密鍵電子署名をします。

 

 

今回はここまで

流石に疲れたので今回はPGPの軽い説明と、公開鍵暗号秘密鍵暗号の説明で終わりにします。次は導入とセットアップするつもりです。

 

 

ぞくへーん

datsuka-qwerty.hatenablog.com