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

共通鍵暗号 とは?

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

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

📌 このページのポイント
同じ秘密の鍵で、暗号化と復号 ① 送信者平文7f 3a92 b1K暗号化暗号文送信② 受信者平文7f 3a92 b1K復号元に戻る受け取った暗号文同じ秘密の鍵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は「対称の」。暗号化と復号に同じ鍵を使うことを表しているよ。

参考資料

← 用語集にもどる