用語比較
対称鍵暗号と公開鍵暗号の違い
対称鍵暗号は同じ鍵で暗号化と復号を行い高速、公開鍵暗号は秘密鍵と公開鍵のペアで鍵共有と署名を担う。実際には組み合わせて使う。
- 難易度
- 初級
- 想定読者
- 開発者・情報処理試験受験者・初心者
- 所要時間
- 約7分
対称鍵暗号とは
送信者と受信者が同じ鍵を共有する方式。AES, ChaCha20 などが代表例。
公開鍵暗号とは
公開鍵と秘密鍵のペアを使う方式。鍵交換、署名に強い。RSA, ECDSA, EdDSA などが代表例。
違いの比較表
| 比較軸 | 対称鍵暗号 | 公開鍵暗号 |
|---|---|---|
| 鍵の数 | 1つ(共有) | 2つ(公開鍵・秘密鍵) |
| 速度 | 高速、データ本体に向く | 低速、鍵交換と署名に向く |
| 鍵配布 | 安全に共有する仕組みが必要 | 公開鍵は自由に配布できる |
| 主用途 | データの暗号化 | 鍵交換、署名、認証 |
使い分け
- TLSではハンドシェイクで公開鍵暗号、本体は対称鍵 (AES等) で暗号化
- JWT署名やコード署名には公開鍵暗号を使う
- ストレージ暗号化やDBレコード暗号化は対称鍵を使う
よくある誤解
- 公開鍵暗号の方が必ず安全、というのは誤り
- AESよりRSAの方が強い、とは限らない(用途が違う)
- 対称鍵だけで鍵交換を安全に行うのは難しい
よくある質問
対称鍵暗号と公開鍵暗号の違いは?
対称鍵暗号は同じ鍵で暗号化と復号を行い高速、公開鍵暗号は秘密鍵と公開鍵のペアで鍵共有と署名を担う。実際には組み合わせて使う。
対称鍵暗号とは?
送信者と受信者が同じ鍵を共有する方式。AES, ChaCha20 などが代表例。
公開鍵暗号とは?
公開鍵と秘密鍵のペアを使う方式。鍵交換、署名に強い。RSA, ECDSA, EdDSA などが代表例。
対称鍵暗号と公開鍵暗号はどう使い分ける?
TLSではハンドシェイクで公開鍵暗号、本体は対称鍵 (AES等) で暗号化 JWT署名やコード署名には公開鍵暗号を使う ストレージ暗号化やDBレコード暗号化は対称鍵を使う
対称鍵暗号と公開鍵暗号でよくある誤解は?
公開鍵暗号の方が必ず安全、というのは誤り AESよりRSAの方が強い、とは限らない(用途が違う) 対称鍵だけで鍵交換を安全に行うのは難しい