デジタル署名
このやり方は所謂ランダム・オラクル・モデルにおいて安全を証明できる。
その他のデジタル署名方式は、RSAに次いですぐ、最初にランポート署名(Lamport signature)、マークル署名(Merkle signature、別名" マークル木"(Merkle tree)あるいは単に" ハッシュ木"(Hash tree))、そしてラビン署名(Rabin signature)が開発された。
1984年、シャフィ・ゴールドワッサー、シルビオ・ミカリ、ロナルド・リベストはデジタル署名方式のセキュリティー要件を最初に厳格に定義した。彼らは攻撃モデルの段階を次のように示した。
唯鍵攻撃(Key-Only Attack)では、公開されている検証鍵だけを前提とした攻撃が行われる。
既知文書攻撃(Known Message Attack)では、既知の様々な文書の有効な署名を前提とした攻撃が行われるが、攻撃者に文書は選択されない。
選択文書攻撃(Chosen Message Attack)では、攻撃者は最初に選択した任意の文書への署名を入手し、その署名を前提とした攻撃が行われる。
彼らは攻撃結果の段階も次のように示した。
全面的解読(total break)とは、署名鍵を再生されるという結果をもたらすものである。
普遍的偽造(universal forgery)攻撃とは、任意の文書の署名も偽造できる署名アルゴリズムが発見されるという結果をもたらすものである。
全ての公開鍵暗号システムは、秘密鍵の機密を守り続ける事に完全に依存する。秘密鍵は利用者のコンピュータ上に格納し、(例えば)そのコンピュータのパスワードで保護できるが、これには以下の2つの欠点がある。
利用者は当該コンピュータ上の文書しか署名できない。そして
秘密鍵のセキュリティは、多くのPCとオペレーティングシステムで信頼できない事で悪名高い、そのコンピュータのセキュリティに完全に依存する。
より安全な代案はICカードに秘密鍵を格納する事である。多くのICカードは耐タンパー性を持つように意図的に設計される(しかしながら、かなり多くの設計は、Ross Andersonと彼の生徒達に破られた)。典型的な実装では、文書から計算されたハッシュ値がICカードに送られる。ICカードのCPUが格納されている利用者の秘密鍵を用いてそのハッシュ値を暗号化し、そしてそれを返す。通常は、利用者は暗証番号やPINコードを入力する事で(従って2要素認証を準備して)自分のICカードを活性化しなければならない。