電子署名
電子署名方式には鍵生成アルゴリズム、署名(生成)アルゴリズム、検証アルゴリズムという3つのアルゴリズムがある。
鍵生成アルゴリズムは事前準備にあたるアルゴリズムであって、署名をしたいと思うユーザは事前にこのアルゴリズムを実行する必要がある。ユーザがこのアルゴリズムを実行すると、アルゴリズムはそのユーザの公開鍵および秘密鍵(と呼ばれるデータ)を出力する。印鑑に例えていうと、秘密鍵は実印に対応するものであり、公開鍵は印鑑照合に使う台紙(印鑑登録証)に対応するものである。
ユーザは鍵生成アルゴリズムを実行するときに、セキュリティ・パラメータと呼ばれる値をこのアルゴリズムに入力する。セキュリティ・パラメータは、署名文を偽造することの困難さを表した尺度である。さらに鍵生成アルゴリズムには乱数も入力される。鍵生成アルゴリズムが実行されるたびに異なる乱数が選ばれるので、ユーザごとに異なる公開鍵・秘密鍵ペアが割り振られることになる。
各ユーザは秘密鍵(実印に相当)を他人が使用することができないように保管する一方、公開鍵(印鑑証明書に相当)を皆に公開する。ユーザの秘密鍵を知っている(使うことができる)のはユーザ自身だけであるのに対し、そのユーザの公開鍵は全てのユーザが容易に知りうることになる。公開鍵、秘密鍵をそれぞれ検証鍵、署名鍵ともいう。
一度事前準備をすませたユーザは、何度でも秘密鍵(署名鍵)を用いて電子文書に電子署名することができる。電子署名するには、まず署名生成アルゴリズムにメッセージを入力する。
民事訴訟法228条は、「文書は、その成立が真正であることを証明しなければならない。」と規定する(228条1項)。民事訴訟では、ある文書をその作成者として記載されている者(作成名義人)によって作成されたものとして証拠に用いるには、まずそのこと(その文書が本当にその作成名義人によって作成されたものであること=真正な成立)を証明しなくてはならない。
例えば、甲が乙を訴えた訴訟において、甲・乙の署名押印がある契約書を甲が証拠として用いるには、(甲自身については自認すれば良いとして、)乙が本当にその契約書を作成したということをまず証明しなければならない。しかし過去のある時点で行われた(作成という)行為を証明するのはなかなか困難なことである場合が少なくない。
その負担を緩和するため、民事訴訟法は228条4項で「私文書は、本人又はその代理人の署名又は押印があるときは、真正に成立したものと推定する。