【きょうつうかぎあんごう】

共通鍵暗号 とは?

最終更新:
💡 同じ秘密の鍵で、閉めて開ける

暗号化と復号に同じ秘密の鍵を使う方式です。AESなどがあり、通信相手との鍵の共有や、鍵を漏らさず管理することが大切です。

📌 このページのポイント
同じ秘密の鍵で、暗号化と復号送信者受信者平文読めるデータ暗号化暗号文鍵 K送信暗号文復号平文元に戻る鍵 K鍵の安全な共有・管理も必要
送信者と受信者は同じ秘密の鍵を使います。鍵そのものを暗号文と一緒にそのまま送る図ではありません。
ひよこ ひよこ
鍵をかけるイメージでいいの?
ペンギン先生 ペンギン先生
うん。送信者は読めるデータを暗号文に変え、受信者は同じ秘密の鍵で元へ戻すよ。鍵を持っていることが大切で、暗号の仕組み自体を秘密にする方式ではないんだ。
ひよこ ひよこ
公開鍵暗号とは何が違うの?
ペンギン先生 ペンギン先生
共通鍵暗号は同じ鍵を使う。公開鍵暗号では対応する公開鍵と秘密鍵を使うよ。通信では鍵を共有する仕組みと、データを暗号化する仕組みを組み合わせることがあるんだ。速度差は方式・実装・機器で変わるから、一律に何倍とは言えないよ。
ひよこ ひよこ
AESの128とか256って何?
ペンギン先生 ペンギン先生
鍵の長さをビット数で表しているよ。AESには128・192・256ビットの鍵があるけれど、処理するデータのブロックはどれも128ビット。鍵の長さとブロックの長さは別なんだ。
ひよこ ひよこ
AESを使えば、それだけで安心?
ペンギン先生 ペンギン先生
使い方も大切だよ。例えばAES-GCMは暗号化と改ざんの検知を組み合わせる方式だけれど、同じ鍵で暗号化するときにnonceという値を使い回すと保護が損なわれる。自作せず、利用するライブラリや通信規格の条件に従おう。
ひよこ ひよこ
HTTPSでも同じ鍵を先に送るの?
ペンギン先生 ペンギン先生
TLS 1.3では、ハンドシェイクで共有する鍵の材料を確立して、データの保護に使う鍵を導くよ。鍵の確立にはDiffie-Hellman系や事前共有鍵を使う方式がある。「公開鍵で共通鍵そのものを送る」とは限らないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「共通鍵暗号」って出てきたら「同じ秘密の鍵で暗号化と復号をする方式」と思えばだいたいOK!
📖 おまけ:英語の意味
「Symmetric Encryption」 = 対称暗号・共通鍵暗号
💬 Symmetricは「対称の」。暗号化と復号に同じ鍵を使うことを表しているよ。

参考資料

← 用語集にもどる