FLAGS

MENU

NOTICE

2006年8月10日木曜日

(メモ)PGP(Pretty Good Privacy) (mixi05-u459989-200608100131)

ミクシ内で書かれた旧おかあつ日記を紹介します。
(メモ)PGP(Pretty Good Privacy)
2006年08月10日01:31
第22回 PGP(Pretty Good Privacy) 佐藤晃洋 2002/1/17

今回のテーマは「PGP」。E-Mailの暗号化プロトコルとして有名なだけに、Internetをある程度長くやっている人ならおそらく一度は耳にした事があるのではないだろうか。ただ名前は有名なわりに、実際中身がどのようになっているのかといった部分については意外と知らない人も多い。そこで今回はそんなPGPの原理について説明してみたい。

■まずはPGPの歴史から

原理説明の前に、まずはPGP開発の歴史を振り返っておきたい。何しろPGPの開発に関しては、本来ならその話だけで本が一冊書けてしまうぐらいいろいろな経緯がある上、現状を説明する上でも過去の経緯をある程度把握しておかないと説明がつかない部分がある。

PGPは当初、Philip R. Zimmermann氏が個人で開発してきたE-Mailの暗号化ソフトとして1991年に登場した。そもそもZimmermann氏は米国で反核運動家として活動していたのだが、その活動に際して仲間と連絡を取る際に、その内容が政府などに盗聴されたりする危険を防止するためにPGPの開発を開始したといわれている。そのためもあってか、PGPの最初のバージョンであるPGP 1.0は非常にアングラ色が強く、当時まだ特許で保護されていた「RSA」と呼ばれる公開鍵暗号のアルゴリズムを無許可で利用するなどの行為も行われていた。

その後PGPが一般に普及するにつれ、RSA暗号の特許についてはPGP 2.5で「RSAREF」と呼ばれるライブラリを使用するように変更が加えられ、特許問題はクリアされた。しかしPGP・RSAREFはともに米国で開発されたソフトウェアであり、それをInternet経由で全世界に配布することは米国の輸出規制に抵触する恐れがあった。しかしここで Zimmermann氏は予想もしない手を打つ。何とPGP 2.6の全ソースコードを書籍にまとめ出版したのだ。米国では「言論・出版の自由」は絶対的な人権として認められているため、書籍が外国に輸出される分にはその内容に対して輸出規制がかからない可能性が高いという盲点を突いたのだ(そして事実、規制はかからなかった)。そしてその書籍に掲載されたソースコードをOCRで読み取ってコンパイルすれば、米国外のユーザーでもPGPが利用可能になるというわけで、ここにPGPは全世界で安心して利用できるようになった。

しかしこの方式では、PGPがバージョンアップするたびに書籍をその都度出版しなければならないため、非常に手間がかかる。そこでPGP 2.6より「米国版」と「国際版」の2つに分けられ、国際版については米国外で開発を進めることで、米国の輸出規制をクリアするという手法が取られるようになった。少し古いPGPの解説に「PGPは米国外のサイトからダウンロードしてください」などと書かれていたのはそのためだ。現在は米国の輸出規制が緩められたため米国版PGP(現在はMcAfeeとSniffer Technologiesが開発を担当)を米国以外で利用することも可能になっているが、一応国際版PGPのプロジェクトは継続されており、PGPの多言語対応やドキュメントの翻訳などを進めている。

■PGPの暗号の仕組み

さて、PGPはどのようにしてメールの暗号化を行っているのだろうか。これについては、PGPが採用している「公開鍵暗号」の仕組みをまず説明したい。

公開鍵暗号では、データを暗号化するのに「公開鍵」と「秘密鍵」という2つの鍵を用意するが、基本的に公開鍵で暗号化したデータは秘密鍵がないと解読(復号化)ができず、逆に秘密鍵で暗号化したデータは公開鍵でのみ解読できる、という仕組みになっている。そこでPGPのようなメールの暗号化プロトコルの場合はどうするかといえば、2つの鍵のうち秘密鍵を自分で保管しておき、メールをやり取りする相手にあらかじめ公開鍵を送っておく。そしてメールを送る側はこの公開鍵でメールを暗号化して送ると、そのメールは秘密鍵でしか開けないわけなので、他人にメールの内容を見られることなくメールが受け取れる、という仕組み。

しかし公開鍵暗号は非常に解読に時間がかかるという難点があるので、メール全体を丸ごと公開鍵暗号で暗号化すると、特にサイズの大きなメールなどの場合は大変なことになる。そこでPGPではメールの暗号化を2段階に分け、まずメール本文を「セッション鍵」と呼ばれる共通鍵(メール送信時にランダムに生成される)で暗号化し、そのセッション鍵を公開鍵暗号で暗号化するという方式が取られている。公開鍵暗号の処理をセッション鍵の部分に限定することで暗号処理にかかる時間を極力短くしているわけだ。

それでは逆に秘密鍵で暗号化したメールを相手に送るとどうなるのだろうか。この場合、公開鍵は事前に公開されているわけだから、その公開鍵でメールの本文が正しく取り出せた場合、そんな暗号メールを生成できるのは秘密鍵を持っている人間、つまり公開鍵を公開している本人しかありえない。というわけで、PGPは「確かにこのメールの送信者は~だよ」という証明にも使うことが出来る。

■PGPの抱える問題

とまあここまでPGPについて解説してきたが、PGPにも実はいろいろ問題がある。

例えばPGPのフリーソフトウェア版は、上記の「セッション鍵」を生成するためのアルゴリズムの特許関係などから商用利用が認められておらず、商用環境でPGPを利用するためには製品版のPGPを購入しなければならない(しかも現在日本国内ではPGPの製品版は販売されていない)。

また万が一秘密鍵が何らかの理由で他人に知られてしまった場合、それとペアになる公開鍵をそのままにしておくと他人にメールを解読されてしまう危険があるので、古い公開鍵を無効にして新しい公開鍵を用意しなければならない。そのためメールを送る側は、どの公開鍵が現在有効なのかを確認してからでないと、安心してメールが送れない。しかし「現在有効な公開鍵はこれ」ということを保証する機関がPGPの場合には存在しないのだ。一応PGPの場合は代わりに「相互信用」と呼ばれる仕組みを用意しているが、それらの信頼度は決して高くない。

そのようなPGPが抱えるいろいろな問題を解決するため、近年新しいメール暗号化プロトコルがいくつか登場してきている。次回はそれらのプロトコルについて解説したい。

http://journal.mycom.co.jp/series/ityougo/022/
コメント一覧
ウミガメ   2006年08月10日 01:42
UPnPとかPGPとかPSPとかSNSとかSEOとかCEOとか、もう困ったもんだ。僕の頭はPNGとかGBRとかLAXとかRVP, RDP, PKR(これ三つはフィルムの略称)やPSD,JPG,BMP,RAWあたりでいっぱいです。
おかあつ   2006年08月10日 01:58
「ご冗談でしょうファインマンさん」に書いてあったんですが、スペースシャトルの説明書って こういう略称が無数に書いてあるんだそうです。 分厚い略称の一覧説明書も付いていて、ある略称を知るためにある略称を調べ... と永遠に続くそうです。

パソコンもそうなっちゃうんでしょうか。
 
出展 2006年08月10日01:31 『(メモ)PGP(Pretty Good Privacy)』

著者オカアツシについて


小学生の頃からプログラミングが趣味。都内でジャズギタリストからプログラマに転身。プログラマをやめて、ラオス国境周辺で語学武者修行。12年に渡る辺境での放浪生活から生還し、都内でジャズギタリストとしてリベンジ中 ─── そういう僕が気付いた『言語と音楽』の不思議な関係についてご紹介します。

特技は、即興演奏・作曲家・エッセイスト・言語研究者・コンピュータープログラマ・話せる言語・ラオ語・タイ語(東北イサーン方言)・中国語・英語/使えるシステム/PostgreSQL 15 / React.js / Node.js 等々




おかあつ日記メニューバーをリセット


©2022 オカアツシ ALL RIGHT RESERVED