Previous Topへ Next

なんちゃってなIT用語辞典5

多分何の役にも立たないIT用語辞典
How that IT term sounds funny


GUI

Graphic User Interface

コンピュータという物にどういうイメージを持っているだろうか?

そのイメージというのはCUIの時代にコンピュータに入った人か、GUIになってから入ったかでかなり違うように思う。

CUIとはキャラクターユーザインタフェイス、つまり文字だけでコンピュータを操作するインターフェイスをさす。
それに対してGUIとはグラフィックユーザインタフェイス、つまりウィンドウやデスクトップに配置されたアイコンをクリックすることでファイルやアプリケーションを開く視覚的なインターフェイスをいう。


コンピュータが人間と敵対して人間を抹殺するというテーマの映画が最近でも続々と封切りされている。
「ターミネーター3」だとか「マトリックスリボリューション」とかで、どれも人間が作り出した人工知能が人間を支配し、人間を抹殺するという映画だ。
こういうコンピュータの恐怖を体現した原点はスタンリーキューブリックの「2001年宇宙の旅」に登場するHAL9000型コンピュータだろう。

しかしコンピュータで人工知能の研究をしている人たちに言わせれば、そういう自我意識と自己改革、学習能力を持ったコンピュータ(あるいはロボット)を作るのは

「現状では到底不可能で、向こう50年のうちでも実現できるかどうか怪しい」

ということになるらしい。


ノイマン型コンピュータと呼ばれているのが今の世代のコンピュータだが、これは簡単に言うと 「線形のメモリ」を持ち、「プログラムを内蔵」し、「プログラムとデータを同等に扱う」コンピュータということになるらしい。
線形のメモリと言うのは、メモリの内部を小部屋(アロケーション)に分けてそこに1番から順番に番号(アドレス)を打っていきメモリの働きを管理するということだ。
一つの命令が終わるとプログラムカウンタの数字が一つ進んで、その番号に対応する次のメモリのプログラムを読みにいくという構造になっていて、CPUに大きな空間を持たせなくてもここに未処理のデータやプログラムを置いておけるので、プロセッサの構造を単純化することができる。
処理も順番に読み出すことになるので単純、強力だが、一度に一つのことしかできない。

またプログラムを内蔵するということは、ある入力に対しては決まった動作をするというふうに事前に決められているということだ。

この構造を持つことで、コンピュータはルーティンワークの繰り返しに対しては、人間も到底およばない能力を持つことになったが、プログラマが事前に想定した処理しかできないという制約からも逃れられない。


今までに全く扱ったことがない、新しいタイプのデータに対してはその処理方法を新たなプログラムという形で入力してもらわないとそれをどうしたら良いのか全く解らない。
これが今のコンピュータなわけだ。
だから学習能力なんてないし、自我意識に目覚めて人間を殺しはじめるなんてレベルからはまだはるかにかけ離れている。


ところでインタフェイスとコンピュータのイメージという話に戻るが、CUIベースでコンピュータに触ってきた人と、GUIベースの人ではこういうコンピュータのおバカさんぶりに対するイメージがかなり違うんではないかという気がする。

CUIをベースにしたコンピュータというのは、基本的にユーザインターフェイスの部分は非常に軽くてシンプルなので、その部分が挙動不振な動作をするということはまずない。
CUIは入力に対してほぼ確実に予想通りの出力が得られる。
CUIでコンピュータを使って来た人たちは、コンピュータに

「便利な電卓の親分」

というイメージを持っているんじゃないだろうか。


ところがGUIしか知らないユーザは、なぜかコンピュータを擬人化したがる傾向がある。
フリーズしはじめると
「今日はご機嫌が悪い」
と言ってみたり、自分の愛機を名前で呼んでみたり。
コンピュータが人類を抹殺するというイメージを持っているのもコンピュータが日頃言うことをきかないから、そういう反逆者的なイメージを持つのだろう。

しかし先ほども書いたが、

人間に対して愛憎を感じたり人間に反逆するコンピュータが実現するのはまだかなり先の話だ。


2年ほど前に沖縄でITシンポジウムを収録した時に、当時幕張に来ていたビルゲイツとネット中継で会場と結び、ビルゲイツが基調講演と質疑応答をするというシーンがあった。

この時にゲイツはコンピュータはPCという形態を獲得し、GUIというインタフェイスを獲得したことでいかにユーザフレンドリーになって、これがIT革命の原動力となってきたかを強調していた。
(これはもちろんWindows95以降のインタフェイスのことだろう。
Windows3.0以前のGUIはGUIと呼ぶのはおこがましいようなシロモノだったし、MS-DOSはGUIですらないといいながらUNIXに対してアドバンテージなんて何もなかったわけだから、Windows95によってMicrosoftは復興できたという喜びを語ったんだろうと思う)

「GUIがコンピュータをユーザフレンドリーにした。」
このビルゲイツの言葉がいつまでも魚の小骨のように喉にひっかかった。
これは確かに間違いではない。
MS-DOSは使えないOSの代表だったわけだし、WindowsはMS-DOSを隠すことで飛躍した。
それまでコンピュータなんか触る気もなかったような人たちも、コンピュータを使いはじめたのはWindows95の功績だという言い方もできるだろう。
僕自身もそれ以前からMacを触ったことがあるとはいっても、実際に仕事でコンピュータを使いはじめたのはWindows95からだ。
(そしてコンピュータアレルギーになってしまったが)

Windows95のインタフェイスは混乱していたし(どうしてここで右クリックしなきゃいけないのか、ウインドウツールバーとのすみ分けも全く混乱していたし、結局四の五の言わずに覚えろというマニュアルしかないということに驚かされる毎日だった)
おまけにせっかく徹夜で作ったファイルを保存しようとした瞬間に
「不正な操作が行われたためにシステムは終了する」
という異常者のようなコメントを出してフリーズする。

このインタフェイスを見て
「このコンピュータはいつか反逆者になって人間を殺しに来るに違いない。」
というイメージを持つのはとても自然なことだと思う。
これがユーザフレンドリーだろうか?



逆説的な言い方をすればGUIは情報工学の基礎知識がないような人でも、コンピュータを扱えるようにデザインされたといいながら、実際にはGUIになることでコンピュータは完全にブラックボックスになってしまった。

MacにしろWindowsにしろ、なんでそうなるのかよく解らないおかしな動きをするということは誰でも経験があるのじゃないだろうか?
GUIベースで動かしている限り、コンピュータというものは信用できないという言い方もできる。
「そんなおかしな動きをするはずがない、トラブルには必ず原因がある」
と自信たっぷりに言える人というのはやはり、CUIで鍛えたコンピュータを扱う勘所を知っている人だと思う。


GUIはCUIに比べると相当に重く、複雑で安定性に欠ける。
これは構造上仕方がないともいえるが、やはりGUIはまだまだ完成されていないともいえる。

じゃいつになったら完成されるのかというと、完成はされないのかもしれない。


今、MacもWindowsもどんどんGUI部分を重くする方向で進化している。
それ自体は面白い進歩を一部生み出しているけれども、今のパソコンOSはあまりにも大きく重くなり過ぎているようにも思う。
パソコンがどんどんGUIを進化させて重く巨大になっていく中で、組み込みコンピュータのOSは軽く安定したTRONのシェアがどんどん高くなっている。

パソコンがかつてのサーベルタイガーのように、あるいはティラノサウルスーレックスのようになりつつあるようなそんな気がする時もある。







公開鍵暗号

public key encryption

この言葉は仕事で取り上げる前からセキュリティに詳しい人に説明を聞いていたが、一回説明を聞いただけでは理解できなかった。
ここで誰が読んでも理解できるPKの説明にトライしようというのは大それたことかもしれない。
でもこれは間違いなくITのキーワードになる(あるいはもうなりつつある)言葉だと思う。


暗号というものは古代ローマのジュリアスシーザーの時代から使われていたそうだ。
有名なシーザー暗号というのがある。
第2次大戦の時には有名なドイツのエニグマという暗号があった。

しかしこういう暗号のイメージは
「絶対に破れない暗号は存在しない」
ということじゃないだろうか。

日本の外交暗号もアメリカで「紫」というコードネームの解読機が開発され、真珠湾攻撃は事前にアメリカに筒抜けだったといわれている。
エニグマも結局イギリスに解読されていた。

インターネットでメールをやり取りしたり、カード番号をオークションに入力したりすると盗聴されて個人情報が漏れたりするんじゃないかという心配が出てくる。
今、暗号化のソリューションが出てきているといわれても、ドイツの暗号ですら破られたのに安心できる暗号なんて存在しないんじゃないかというのが一般的な感情だ。
本当に安心できる暗号は存在しないのか?


ところで暗号はなぜ破られるのかというと、平文を暗号化する時の方法(これを暗号の専門家たちは「鍵」と呼ぶ)と暗号文をもとの平文に戻す時の方法が同じだから、暗号は破られてしまう。

例えばアルファベットを一つずらして文章を作るという「鍵」を作る。
This is encryption
という平文は
Uijt jt fodszqujpo
という見事な暗号文になった。
しかしこれを相手に渡す時に「アルファベットを一つ前にずらして解読して下さいね」という「鍵」を渡さなければいけない。

このように送信側と受信側が同じ「鍵」を持つことでこれは暗号として機能するのでこれを「共通鍵暗号」という。
実は古代ローマのシーザー暗号も、ドイツのエニグマもみな「共通鍵暗号」だったという意味では同じものだ。

「共通鍵暗号」の問題点はこれだ。
こうして顔を合わせて「アルファベットを一つずらして」と言える相手ならいいが、地球の裏側にいる初対面の人にメールで鍵を渡す時にはいったいどうしたらいいかということだ。
メールははがきと同じようなものだから、最初に「アルファベットをずらして」などという「鍵」を送信してしまうと、以降の文章は全て悪意ある第3者に盗聴される恐れがある。

「鍵」を盗まれないで地球の裏側の相手に「鍵」を渡す方法はないか?
これが最初の命題だ。



「共通鍵暗号」はもう一つの問題を持っている。
共通の「鍵」で暗号化、平文化をするわけだから暗号文を見ればどうしても「鍵」を推測できてしまうという問題だ。

先の
Uijt jt fodszqujpo
という暗号文を見ればこの短い文章の中に、「j」が3つも出てくることに気がつく。ということは「j」は最も多く使われるアルファベットの暗号化だということがすぐわかってしまう。
最も多く使われるのはaeiouという5文字だ。
英語の場合特に頻度が高いアルファベットは「i」だ。
これは「i」だと推測できる。
この暗号の送り主はアルファベットをいくつかずらす、シーザー暗号をよく使うという情報をもし盗聴者が知っていたら、もうこれだけの情報でこの暗号は破られてしまう。

こういうことを取っ掛かりにして暗号文というのは「鍵」を盗まれなくても破られてしまうのだ。

これをバレにくくするために乱数表を使ったりして暗号は複雑になっていったが、いくら複雑になっても結局暗号は破られてしまう。
それは一つの「鍵」で暗号化と平文化をやってしまう「共通鍵暗号」であるかぎり逃れられないことなのだ。

暗号文から「鍵」を推測することができない暗号はできないのか?
これが2番目の命題だ


この命題に解を出した二人の学者がいた。
ディフィー、ヘルマンの二人だ。
この二人のヒッピーのような学者の来歴は面白いがここでは割愛する。

ディフィーとヘルマンが考えたのはこういう答えだ。

命題1の答え
秘密の「鍵」を相手に送ろうとするから暗号は破られる。
ならば相手に送る「鍵」は秘密ではない「公開する鍵」を送れば良い。

「鍵」は二つ用意され、ひとつは暗号文を作り出す時に専用に使う「公開鍵」とし、もうひとつは暗号文から平文化する時に専用に使う「秘密鍵」とし、「公開鍵」は通信する可能性がある人全員に配ってしまう。

(あるいは自分のサイトで公開する)
「秘密鍵」は誰にも公開しないで、自分だけが厳重に管理する。

命題2の答え

「公開鍵」で暗号化した文章はペアの「秘密鍵」でないと平文化できないという鍵を作る。
この「公開鍵」で暗号化した文章は同じ「公開鍵」では平文化できないようにする。

それを実現するために「鍵」には一方向関数を採用する

一方向関数は暗号文から「秘密鍵」を推測できないようなものを作る。
また「公開鍵」からペアの「秘密鍵」を推測できないようなものを作る。


暗号文を送ってもらう時には相手にまず「公開鍵」を渡し、相手にその「鍵」を使って暗号化してもらう。
そして受け取った暗号文は自分の保管している「秘密鍵」で平文化する。

これで誰にも「鍵」を盗まれないで安全に通信ができる。
問題はこういうひとつの「鍵」で暗号化した文章を、もうひとつの「鍵」でないと解読できないという一方向関数というのはどんなものがふさわしいかということだ。


ディフィーとヘルマンはこの関数を見つけるところまではたどり着けなかったが、すぐに別のグループが「楕円関数」を使うことでこういう「鍵」が実現できることを発見した。
こうして完成したのが「公開鍵暗号」だ。

この暗号のユニークなところはディフィーたちの研究どおり、片方の「鍵」を「公開」してしまうところだ。

公開してしまうわけだからもちろん悪意ある盗聴者にもこの「公開鍵」はバレている。
しかし上記のように「公開鍵」で暗号化された文章は「公開鍵」では平文化することはできない。
「秘密鍵」は本人にしか判らない訳だから、盗聴者にはどうしようもないわけだ。


「公開鍵暗号」という言葉はなじみのない言葉だが、この技術はもう身近にどんどん使われている。
それは高速道路のETCであったりする。
またインターネットでカード番号を入力するようなサイトはよく見るとブラウザのどこかに「鍵」のアイコンが表示されていることがある。
また有料サービスのサイトでは「SSL」という表示に当たることがある。
これらはブラウザがこの「公開鍵暗号」を使って通信しているということだ。

現在出荷されているほぼ全てのパソコンには「公開鍵暗号」のプラグイン(SSL:セキュリティソケットレイヤー)が組み込まれている。
ほぼ全てだ。



インターネットの有料サービスにはパスワードなどで入る
パスワードを守るために「公開鍵暗号」を使ったSSLは広く使われている


この暗号がどれくらいの強度を持っているのか、まだ不安を感じている人がいるかもしれない。
現在最も強力な128bitの「公開鍵暗号」は暗号の組み合わせがほぼ無限にあり、もしスーパーコンピュータで全ての組み合わせを試す総当たり攻撃をした場合、2万年かかるとされていた。
最近ではコンピュータの性能があがってきているので、

2000年程度で破れるのではないかという人もいるが、それでも2000年だ。
総当たりで暗号を破ることはほぼ不可能だと考えていい。


また楕円関数を用いて暗号文や「公開鍵」から「秘密鍵」を推測する方法も、今の数学学会では発見されていない。

この暗号はあまりにも強力なので、アメリカ政府が国外での使用を制限しようとしたくらいだ。
暗号強度については折り紙付きというのは、この特許権を持つRSAセキュリティとアメリカ政府が長い間係争していたことからも十分証明されている。


こういう重い鍵暗号がインターネット通信で普通に使われるようになってきているのは、ブロードバンド化とも密接な関係がある。
「公開鍵暗号」は大きな処理を必要とし、暗号文も長文化する。
通信が高速化してきたからこういうセキュリティを使うことが、現実的になってきたということもいえる。


こうした暗号技術を使ったVPNも商用化されている。
企業内の本支店を結ぶ通信網で、例えば現金決済を即日できれば便利だ。
しかしそういうデリケートな内容を含む通信は秘密通信でなくてはいけない。

インターネットは別項にも書いた通りもともとオープンなネットワークだ。通信の機密性ということには配慮されていない。
それで今までは専用線を使ったプライベートネットワークが使われていた。
しかしこれも物理的にタップされると盗聴できてしまうという意味では、電話と同じように危険性がある。

どのみち暗号化は必要だ。
それなら「公開鍵暗号」を使って暗号化してしまい一般のインターネット回線を使って流してしまえばいい。

「公開鍵暗号」は今のところ破る方法が発見されていないので、こういうネットワークはVPN(バーチャルプライベートネットワーク)として安全が確保されている上に、通信コストが安い。


「公開鍵暗号」の有用性はこれだけではない。
もしさきほどの暗号通信と逆のことをやったらどうなるだろうか?

つまり今度は発信者が自分の「秘密鍵」を使って暗号化した文章を送って相手に事前に渡したペアの「公開鍵」で平文化してもらうということだ。
「公開鍵暗号」は一方向関数なので、「秘密鍵」で暗号化された暗号文はペアの「公開鍵」でないと 平文化できない。
これは逆にいうと、その人の「公開鍵」で平文化できる暗号を作れるのはその人本人だけだから、間違いなくその人が書いた文章だという署名(電子認証)になる。

これでインターネットを使ってメールで契約書を交わすこともできるようになるわけだ。
この電子的な署名は印鑑証明などよりも強力な本人特定になる。



こうした「公開鍵」を登録してまちがいなく本人であるという証明をしてくれる、「電子公証人役場」のような機関も生まれてきている。
PKI(Public Key Infrastructure)と呼ばれる機関だ。

PKIは今までのところ民間のサービスとして発展してきている。
ベリサイン、ボルチモアなどの有力企業がこういうサービスを本格的にビジネス化している。
こういうサービスを利用することで、いつでもどこでも「秘密鍵」を元にしたコードを示すことで本人と特定してくれる。
これでオンラインで有料サービスを受けたり、売買等ができたりということが容易になってくる。
住基ネットも本来こういう趣旨でスタートしたはずだが、セキュリティを軽視したままPKIなどの基盤を整備せずに始動してしまったので何の役にも立たない、何のために作ったのかよく判らないものに成り果ててしまっている。

こういうセキュリティサービスは政府を尻目に民間でどんどん進歩を遂げている。


2004年1月6日



<追記>
公開鍵暗号方式の誤り解説の氾濫をそろそろどげんかせんと_高木浩光@自宅の日記
このリンク先にあるが最近のセキュリティに関する記事というのは相当間違いがあって、それは注意を要するということだ。

たとえば当記事の秘密鍵を使って暗号化すれば、電子認証が可能になるというのは

「これらは、RSAアルゴリズムを説明するものにはなり得ても、公開鍵暗号方式を説明するものになっていない。公開鍵と秘密鍵が「逆に使える」というのはRSAアルゴリズムがたまたま(まあまあ)そうなだけであって、そのような性質を持たない他の公開鍵暗号方式がたくさん存在する。」

ということだ。
確かに認証のアルゴリズムは最近でRSA以外のものを非常に多く見かけるし、一概にそうともいえないと感じていた。RSAセキュリティを取材した時には確かにそういう説明を受けたが、そこは彼らも微妙に言葉を濁していた。暗号化と認証は今では一対の鍵でやるのではなく、別のソリューションとなっているのが普通のようだ。

この稿ではRSA鍵の歴史の話を取り上げているのであえて本文の訂正をしないが、実際の一般に使われている電子署名ではDSSが使われ、これは暗号化ソリューションの公開鍵暗号とはペアになっているわけではないし、RSA暗号化キーとセットになっているわけでもない。
だからこのような解説は、公開鍵暗号と電子認証の成立期の歴史を記述しているが現状を記述しているわけではない。














Previous Topへ Next





site statistics