署名付き暗号化電子メールシステムの原理

BACK TOP

注意事項: 署名付き暗号化メールシステムでは、1)「電子署名のみ」、2)「電子署名+暗号化」の2通りで電子メールが出せます。

1)では、内容は暗号化されませんが、電子署名により内容の改竄と差出人の確認が可能です。2)ではこれらに加えて内容が暗号化されますので、第3者が内容を見ることはできなくなります。本システムは試験運用中です。セキュリティの維持に関しては一切保証しかねます。


以下は原理を理解していただくための解説であり、説明をやさしくするために一部実際と異なる点があります。 正確な原理を知りたい方は専門書をご参照ください。 尚、UMINの暗号電子メールシステムは、FJ-PEMというフリーウエア(著作権は、富士通研究所株式会社が所有しています)を組み込んで実現しています。

安全な電子メールとは

 インターネット上では、暗号化されていない情報は盗み見られたり、内容が改竄される可能性があります。安全な電子メールとは、以下の条件が満たされるものとします。現在の通常のインターネット電子メールでは、以下の条件はすべて満たされていないため、プライバシーに関わる情報は安全に送信できません。

 1. 電子メールの内容が解読できない。
 2. 電子メールの内容が改竄できない。
 3. 差出人を偽って電子メールを送信することができない。


基礎となる理論

非対称鍵暗号方式

 通常の暗号(対称鍵暗号方式)は、暗号の暗号化と復号化に同じ鍵を利用します。 鍵とは、一般に整数値で表現可能であり、この整数値がわからないと暗号化されたデータを復号して読むことはできません。 指定可能な整数値の範囲は、非常に大きなものであり、コンピュータで総あたりでいろいろな鍵を試しても何年もかかるような大きさになっています。

 これに対して、非対称鍵暗号方式では、暗号化する鍵と復号化する鍵は異なったものを使用します。 説明のために以下の事実を掲げておきますが、数学的理論等に興味のあるかたは暗号の専門書をご参照ください。

 1. 鍵には、2種類があり、片方を秘密鍵、もう一方を公開鍵と呼ぶ。
 2. 秘密鍵で暗号化されたものは、公開鍵で復号できる。
 3. 公開鍵で暗号化されたものは、秘密鍵で復号できる。
 4. 秘密鍵がわかると公開鍵は簡単に計算で求めることができる。
 5. 公開鍵がわかっても秘密鍵を求めることはできない。

公開鍵は、みんなにわかってしまっても秘密鍵を計算することができないため、公開してもかまいません。


一方向ハッシュ関数

 一方向ハッシュ関数とは、以下のような性質を持った関数です。数学的理論等に興味のあるかたは暗号の専門書をご参照ください。

 1. あるデータ(ファイル等)を入力として受け取り、一定範囲の間の整数値を返す(2の64乗よりも自然数のどれか等)。
 2. 返された整数値から、入力されたデータの予測ができない。ある整数値を返すような入力データを作成することが非常に困難。
 3. 入力するデータをわずかでも変更すると、返される整数値が必ず変わってしまう。



電子署名付きメール、電子署名付き暗号化メール送信までの手順

 署名付き暗号化メールシステムでは、1)「電子署名のみ」、2)「電子署名+暗号化」の2通りで電子メールが出せます。 1)では、内容は暗号化されませんが、電子署名により内容の改竄と差出人の確認が可能です 。2)ではこれらに加えて内容が暗号化されますので、第3者が内容を見ることはできなくなります。 以下の作業は、1の作業さえ終了していれば、メール送信時に右下のスクロールボックスから「電子署名をしてメールを送る」または「暗号化及び電子署名してメールを送る」というオプションを選択すれば、UMINシステムで自動的に行なわれます。

 1. 自分専用の秘密鍵と公開鍵の生成を行う。秘密鍵はランダムな数ととりあえず考えておいてください。
 2. 自分の書いた電子メールのデータ(文書)を1方向ハッシュ関数に入力して、ある整数値を得る。
 3. 電子メールアドレス等の自己情報と上記で得た整数値を自分の秘密鍵で暗号化する。自分の秘密鍵を知っているのは本人だけであるから、暗号化できるのは本人だけのはずである。
 4. 自分の書いた電子メールのデータ(文書)を送る相手の公開鍵で暗号化する。このため、相手の公開鍵を事前に知っておく必要があるが、公開鍵は公開されているのでなんらかの方法で入手する(現在は、UMIN利用者で鍵の生成を行った人の公開鍵だけ自動的に入手できます)。(メールを暗号化する場合のみ)
 5. メールの送信を行う。



電子署名付きメール、電子署名付き暗号化メール受信して読むまでの手順

 注意:以下の作業は、UMINシステムではすべて自動的に行なわれます。

 1. メールを受信する
 2. メールの差出人の確認を行う
 3. メールの内容が暗号化されていれば、秘密鍵を使用して暗号を復号する