見出し画像

ところで電子署名ってなに?ハンコ不要?:電子政府案内 その3

はじめに
神長広樹と申します。現在エストニア、タリン工科大学電子政府学科修士2年生です。卒業も間近に控えたことからこの2年で学んだことをまとめてみたいと思いこのシリーズを始めました。形式は質問応答形式を採用し、なるべく引用元(多くは英語)をリンクまたは明記しますが、中には個人的な意見等も含まれる(その都度断ります)ことを留意ください。また各専門用語は英語中心となることをご了承ください。不備がある場合ご指摘いただけると幸いです。

前回の続きから


(この記事はいわゆるデジタル署名のことを指しますが、日本の法律が電子署名の語を使っているため、電子署名と記述します。)

ところで電子署名ってなに?

ざっくりいうと「ハンコの電子版」です。パスワードに似ています。ただ、暗号機能と改ざんチェック機能もついてます。まとめると機密性(confidentiality)と完全性(integrity)を保証するものです。

わかりません。

まずハンコの意義は「確かに本人です」という証拠です。(まあ、でも誰でもハンコは買えるのであまり意味は。。。)似たような概念にパスワードがあります。これは「本人しか知り得ない情報だから、その情報が正しい場合本人だろう」というものです。(まあ、これもなりすましは可能だし、手当たりしだいに誕生日とか入力すれば通ることも多いし、忘れるし。。。)

電子署名はこの「本人しか知り得ない」を担保に本人であることを保証します。

でも、パスワードじゃないんでしょ?

厳密に説明すると公開鍵暗号という仕組みを説明しないといけないのだが、それはこちらの佐々木真さんの投稿のほうが遥かにわかりやすいので、ここではイメージだけで語ります。

まず、鍵と錠前をイメージしてください。その2つはセットですね。次にその錠前を複数コピーします。

「鍵は1つ。だが錠前は、君がコピーした数だけある」
Love Baccano

すまん、脱線した。

とりあえず、そのコピーした分を友人に配ってくるんだ。そうすると、その友人たちは君に贈り物をする時、箱にその錠前で鍵をかければ、途中で配達員が中身を覗くということもなく、しかもその箱を開けられるのは君だけとなる。

これを想像力を使って、鍵と錠前を「2つで1つ」というふうに抽象度を上げてほしい。鍵を錠前として使うこともでき、そのとき錠前は鍵となると言った具合だ。ただし、このときもオリジナルの鍵は君が持っているもの1つだ。このとき「2つで1つ」だが、錠前はいくつあっても構わない。

では、今度は友人にお返しをするとしよう。このとき、君が持っている唯一のオリジナルの鍵を錠前として使えば、友人はその人が持つ錠前を鍵として開けることができる。もし本当に開けることができれば、友人はその贈り物が間違いなく君からの贈り物だと確信を得ることができる。なぜなら友人が持つ錠前は「2つで1つ」のもので、それのペアとなるオリジナル鍵を持つのはこの世で君しかいないからだ。ガラスの靴は何個複製してもいいけど、ぴったり合うのはシンデレラだけ。これと同じ。

実際にこの概念をコンピューター上で実装する場合は素数の組や楕円曲線を使ってペアを指定するのだが、ひとまず電子署名の半分はこの説明で事足りる。。。(よね?)ちょっと付け加えすと、ペアの片方を使って暗号化し、もう片方を使って復号化するんだ。ペアの欠片のどちらでも暗号化できるけど、復号化は事実上相棒しかできない(ただし量子コンピュータは今は考えない)。

本人確認としての機能の他にまだ電子署名には機能があるの?

そうここまでは本人確認。電子署名のもう半分の機能は「“ハンコ”を押したファイルは確かに“ハンコを押した時点”でのファイルと1文字も改ざんされていません」と保証するものなんだ。

ここに謎のボックスがあるとイメージしよう。そのボックスは入れたものに対し、何かしら吐き出す。同じものを入れた場合は同じものを吐き出すが、吐き出されたものを入れ直しても、元の入れたものが返ってくるわけではなく、また違ったものがでてくる謎のボックスだ。そして、似ているもの、例えば「あきたこまち」と「ひとめぼれ」を入れても、出てきたものはまったく違う2つのものというふうに、わずかでも入れたものが違えば、出てくるものは全然違うものとなる。

ところで今はコンピューター上での話をしたいので、この謎のボックスに入れるものはファイルとし、出てくるものは英数字の羅列とする。

さあ、これで役者が揃った。

まず、君が友人にファイルAを電子署名を使って送るとしよう。
まずファイルAを謎のボックスに入れて出てきた文字「eG0v」とする(本当はもっと長い文字列)。そして、君が持つオリジナル鍵(秘密鍵)を使ってファイルAを暗号化して、友人に送る。このとき「eG0v」という結果も一緒に送る。友人は以前君から渡された錠前(公開鍵)を使って暗号化ファイルAを復号化する。このとき、復号化できたら間違いなく君が送ったものだと友人は確認できる(本人確認と機密性の保持)。さらに友人は復号化したファイルAを同じ仕組みの謎のボックスに入れる。このとき「eG0v」と君が送った結果と同じ結果を得られれば、ファイルAは通信中に壊れたり改ざんされたりすることなく、そのままの情報を送ってきたと安心できる(完全性の保持)。

実際にはこれにタイムスタンプといい「いつ送られてきたのか」という公の記録も付随される。そして上記の細々とした作業(暗号化や謎のボックス)はソフトウェアが瞬時に代行してくれる。

でもさ、その“錠前(公開鍵)”を配るのって面倒じゃない?というか無理じゃない?

現実世界ではPublic Key Infrastructureと呼ばれるインフラが整備されていて認証局と呼ばれる第三者機関がこの公開鍵配布を行っている。

電子政府とどう関係があるの?

電子政府案内 その1で見てきたように、実際にWeb越しに本人確認を行うときに使われる。そのときエストニアならeIDカードが、日本ならマイナンバーカードとカード読み取り機が必要となる。ただし、エストニアでは通信会社と契約すればそのeIDカードをsimカードに搭載できて、いちいちカードを読み込んだりする必要はない。日本も2020年をめどに総務省が導入を進めている。

使い方は、まず専用のソフトウェアをダウンロードし、読み取り機にカードを挿入する。カードには自分の秘密鍵(2048bit)が組み込まれており、予め設定しておいたPINコードを入力することによって使用できる。電子署名の場合、施したいファイルを選んでPINを入力すれば完了となる。

ところでエストニアではその仕様が公開されており各機関で利用が盛んである。筆者の論文構想提出時などは「指導教員の電子署名付きで提出」と指定されていたくらいだ。

“ハンコ待機時間”が大幅に削減される上に、記録が残るなら随分有効そうだね

実際にエストニアではお金も時間も紙も削減できている(詳細な計算はこちらで)。最もこうした事実は国民の98%がeIDカードを所有し、日常的に使用し、データ交換レイヤーであるX-teeが整備(詳細は前回記事を参照)されて初めて実現できるものだろう。窓口や部署に出向くことなくスピーディーに本人確認や合意ができることは一度使ってみると、そうでないことが馬鹿馬鹿しいくらいに感じる(本音)。

でも、冒頭で断っているように日本にも電子署名法があるくらいだから使えるのにどうして普及していないの?

電子署名サービスがありすぎて統一されていないから。サービスが違えばサービス間で無効となり、結局従来のハンコに頼らざるを得なくなる。あと、もっと大きな母体が利権を巡ってケンカしているから。

まったく「世界最先端IT国家創造宣言」とはなんなんだろうか。

ただ地域経済分析システム:RESASは本当に素晴らしい。

次回

ありがとうございました。

コーヒーをご馳走してください! ありがとうございます!