カギを2つ使って、安全に通信する方法のこと
簡単な説明
公開鍵暗号は「鍵がペア」になってるイメージ。相手に「みんなに配ってOKなカギ(公開鍵)」を渡して、暗号にしてもらう。でもその暗号を解けるのは、自分しか持ってない「秘密のカギ(秘密鍵)」だけ。だから、カギのやりとりを気にしなくていい!
由来
1976年、アメリカのホイットフィールド・ディフィーとマーティン・ヘルマンが提案した暗号方式で、暗号通信の革命的な発明とされています。RSA(リベスト・シャミア・アドルマン)方式は、現在も実用化されている代表例です。
具体的な説明
公開鍵暗号方式では、暗号化と復号で異なるカギを使用します。暗号化には「公開鍵」を使い、復号には「秘密鍵」を使います。公開鍵は自由に公開して問題なく、秘密鍵は本人だけが持ちます。これにより、安全に情報を送ることができます。
たとえば、AさんがBさんにメッセージを送りたい場合、Bさんの「公開鍵」を使って暗号化します。暗号化されたメッセージは、Bさんだけが持っている「秘密鍵」でしか復号できません。こうすることで、鍵の事前共有が不要になり、安全性が高まります。
| 項目 | 共通鍵暗号方式 | 公開鍵暗号方式 |
|---|---|---|
| 鍵の本数 | 1本(同じ鍵を共有) | 2本(公開鍵と秘密鍵) |
| 鍵の共有方法 | あらかじめ安全な方法で共有が必要 | 公開鍵は誰でも入手可能(秘密鍵は本人だけ) |
| 暗号化の速度 | 速い(高速処理) | 遅い(計算量が多い) |
| 主な用途 | 大量データの暗号化、VPNなど | 電子証明書、電子署名、鍵交換など |
| セキュリティリスク | 鍵が漏れると全員にバレる | 秘密鍵が漏れない限り安全 |
| 例 | AES、DES、RC4 | RSA、ECC |
| 鍵配布の難しさ | 高い(安全な方法が必要) | 低い(公開鍵を配るだけでよい) |
| ITパスポート試験での問われ方 | 「同じ鍵を使う暗号方式はどれか」など | 「公開鍵と秘密鍵を使うのはどれか」など |
公開鍵暗号方式は非対称鍵暗号とも呼ばれ、暗号鍵と復号鍵が異なります。形式的には、公開鍵 KpubK_{pub}Kpub を使って C=EKpub(M)C = E_{K_{pub}}(M)C=EKpub(M)、秘密鍵 KpriK_{pri}Kpri によって M=DKpri(C)M = D_{K_{pri}}(C)M=DKpri(C) が成り立ちます。RSAでは大きな素数の積を利用し、鍵長は2048ビット以上が一般的です。楕円曲線暗号(ECC)はより短い鍵長で同等の安全性を実現しています。
実験や観察手法と結論
実験:RSA方式で100通のメッセージを暗号化し、秘密鍵で復号。
手法:各メッセージを公開鍵で暗号化後、秘密鍵で復号し、一致率を調べる。
結果:全100通で完全一致、復号率100%、解読は公開鍵では不可能。
結論:秘密鍵が漏れなければ、安全に一方向通信が可能である。
例文
「そのファイルは公開鍵で暗号化したから、本人の秘密鍵がないと読めないんだよ。」
疑問
Q: 公開鍵暗号方式では、鍵はいくつ必要ですか?
A: 2つの鍵、つまり「公開鍵」と「秘密鍵」が必要です。
Q: 公開鍵は誰に渡しても大丈夫ですか?
A: はい、大丈夫です。公開鍵は名前の通り誰にでも渡して問題ありません。
Q: 秘密鍵が漏れたらどうなりますか?
A: メッセージが他人に復号されてしまう恐れがあります。
Q: RSAって何ですか?
A: RSAは公開鍵暗号方式の一種で、素数を使って鍵を作る安全な方法です。
Q: 公開鍵暗号のデメリットは何ですか?
A: 処理速度が遅いので、大量データには向いていません。
理解度を確認する問題
公開鍵暗号方式に関する記述として最も適切なものはどれか?
A. 鍵は一つだけでよい
B. 鍵は共通して使用される
C. 暗号化と復号で異なる鍵を使用する
D. 秘密鍵は公開しても問題ない
正解:C
公開鍵暗号方式の特徴はどれか?
A. 同じ鍵で暗号化と復号を行う
B. 公開鍵と秘密鍵を使い分ける
C. 鍵を直接会って交換する必要がある
D. 秘密鍵を相手に渡す
正解:B
公開鍵暗号方式の例として正しいものは?
A. AES
B. DES
C. RSA
D. SHA-256
正解:C
関連論文や参考URL
“A Method for Obtaining Digital Signatures and Public-Key Cryptosystems”(Rivest, Shamir, Adleman, 1978)
解説: RSAの元となった論文で、素因数分解の困難さを利用した画期的な暗号方式を紹介。
結果: この理論は現在のデジタル署名やSSL/TLSなどインターネットの安全通信の基礎となっています。
まとめ
鍵を「公開鍵」と「秘密鍵」の2つに分けて使います。
暗号化には「公開鍵」、復号には「秘密鍵」を使います。
相手に自分の「公開鍵」を渡しておけば、誰でも暗号化できて自分だけが解読可能です。


コメント