公開鍵暗号とディジタル署名

インターネット上の公開鍵暗号やディジタル署名に関する解説で,以下のような記述が時々見られます.

 ・公開鍵で暗号化したものは秘密鍵で復号でき,秘密鍵で暗号化したものは公開鍵で復号できる.

 ・公開鍵暗号方式による署名は,メッセージ(ダイジェスト)を秘密鍵で暗号化することで実現できる.

「秘密鍵で暗号化」と言うのは,公開鍵を持つ誰でもが復号できるという意味でそもそも「暗号化」とは言い難く矛盾があると言えます (データを隠蔽する意味での暗号化ではない).

これらの誤った記述に起因する疑問や質問もインターネット上の質問サイトにしばしば投稿されています.これらの記述は RSA暗号アルゴリズムを前提にしており誤りなのですが,ここではこれらの誤解の背景と正しい理解のための情報を整理します.

ディジタル署名に関する誤解の背景

ディジタル署名と公開鍵暗号の関係

現在,単に公開鍵暗号方式と言った場合,広義の意味では秘密鍵と公開鍵のペアを用いた方式 (Public Key Cryptography) であり,暗号化・復号,ディジタル署名,鍵交換などが実現できる方式を指します. 狭義の意味では秘密鍵と公開鍵を用いたデータの暗号化方式 (Public Key Encryption) で共通鍵暗号方式に対比される方式です(暗号化・復号機能のみを対象). IPA の電子政府推奨暗号リスト(CRYPTREC)では,公開鍵暗号/守秘,公開鍵暗号/署名,公開鍵暗号/鍵共有という分類になっています.

ディジタル署名は,「広義の公開鍵暗号の一種」ですが,「狭義の公開鍵暗号を元にした方式」ではないと言えます(暗号化・復号機能を前提とはしていない).

ディジタル署名とは

RSA署名(ディジタル署名としてのRSA暗号)

実用的に使われている(標準化された) RSA暗号や RSA署名は,暗号の教科書やインターネット上の解説記事にある対象メッセージの単純なべき乗剰余演算ではありません.RSA の標準規格を定めた PKCS#1 では,次のような違いがあります.

inserted by FC2 system