デジタル署名
著名な論文である「New Directions in Cryptography」において、ホイットフィールド・ディフィー(Whitfield Diffie)およびマーティン・ヘルマン(Martin Hellman)はデジタル署名という理論体系が存在するという推測とその概念について初めて著した。
程なく、ロナルド・リベスト(Ronald Rivest)、アディ・シャミア(Adi Shamir)、およびレオナルド・エーデルマン(Len Adleman)は、基本的なデジタル署名に用いる事ができるRSAアルゴリズムを開発した(これはただ単に概念実証としての役目だけを果たす事に注意されたい。単純なRSA署名は安全ではない)。デジタル署名を提供し広く市販された最初のソフトウェア・パッケージは、RSAアルゴリズムを用いて1989年に発売されたLotus Notes 1.0である。
基本的なRSA署名は以下のように算出される。RSA署名鍵を生成するために、2つの大きな素数の積である係数Nと一緒に、φがオイラーのφ関数である時e d = 1 mod φ(N)を満たす整数eおよびdを含むRSA鍵ペアを一つ単に生成する。署名者の公開鍵はNとeから成り、署名者の秘密鍵はdを含む。
メッセージmに署名するため、署名者はσ=m mod Nを計算する。検証するために、受信者はσ = m mod Nを照合する。
前述のように、この基本的な仕組みはあまり安全ではない。攻撃を防ぐため、まず最初にメッセージmに暗号ハッシュ関数を適用し、それからその結果に前述のRSAアルゴリズムを適用する事ができる。
ICカードの活性化のためにPINコードを入力する事は、一般的にテンキーパッドを必要とする。幾つかのカード読取り装置はそれ自身のテンキーパッドがある。これは、PCに内蔵されたカード読取り装置を使用し、そしてそのコンピュータのキーボードを使用してPINを入力するより安全である。(所有者/オペレータの意思で、あるいは意思ではなく -- 例えばウイルスなどによって)キーロガーが動いているコンピュータではPINコードが漏洩する恐れがある。専門のカード読取り装置はソフトウェアやハードウェアの改竄に対して(鉄壁ではないが)脆弱ではない。またもちろん、そのような全ての装置に対する盗聴攻撃は可能である。
幾つかの国では、デジタル署名は伝統的なペンと紙の署名にやや似ている地位がある。概して、それらの条件はデジタル署名される物がその文書の署名者をその条件の中に法的に縛りつけるという事を意味する。このような理由により、暗号化と署名のために別々の鍵ペアを用いる事が最適であると考えられる事がよくある。暗号化鍵ペアを用いて(例えば住宅購入について)暗号化された会話ができるが、その人が発した全てのメッセージに法的な署名がされる訳ではない。双方の者が同意に達する場合に限り、彼らの署名鍵で契約書に署名を行い、そしてその場合に限り彼らは特定の文書の条件によって法的に縛られる。署名の後で、その文書は暗号化されたリンクの上で送信できる。