共通鍵暗号方式(Symmetric-key encryption)

Symmetric-key encryption セキュリティ
Symmetric-key encryption

カギを2つ使って、安全に通信する方法のこと

簡単な説明

公開鍵暗号は「鍵がペア」になってるイメージ。相手に「みんなに配ってOKなカギ(公開鍵)」を渡して、暗号にしてもらう。でもその暗号を解けるのは、自分しか持ってない「秘密のカギ(秘密鍵)」だけ。だから、カギのやりとりを気にしなくていい!

由来

1976年、アメリカのホイットフィールド・ディフィーとマーティン・ヘルマンが提案した暗号方式で、暗号通信の革命的な発明とされています。RSA(リベスト・シャミア・アドルマン)方式は、現在も実用化されている代表例です。

具体的な説明

公開鍵暗号方式では、暗号化と復号で異なるカギを使用します。暗号化には「公開鍵」を使い、復号には「秘密鍵」を使います。公開鍵は自由に公開して問題なく、秘密鍵は本人だけが持ちます。これにより、安全に情報を送ることができます。

たとえば、AさんがBさんにメッセージを送りたい場合、Bさんの「公開鍵」を使って暗号化します。暗号化されたメッセージは、Bさんだけが持っている「秘密鍵」でしか復号できません。こうすることで、鍵の事前共有が不要になり、安全性が高まります。

項目共通鍵暗号方式公開鍵暗号方式
鍵の本数1本(同じ鍵を共有)2本(公開鍵と秘密鍵)
鍵の共有方法あらかじめ安全な方法で共有が必要公開鍵は誰でも入手可能(秘密鍵は本人だけ)
暗号化の速度速い(高速処理)遅い(計算量が多い)
主な用途大量データの暗号化、VPNなど電子証明書、電子署名、鍵交換など
セキュリティリスク鍵が漏れると全員にバレる秘密鍵が漏れない限り安全
AES、DES、RC4RSA、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つに分けて使います。

暗号化には「公開鍵」、復号には「秘密鍵」を使います。

相手に自分の「公開鍵」を渡しておけば、誰でも暗号化できて自分だけが解読可能です。

コメント

タイトルとURLをコピーしました