共通鍵暗号方式

読み:きょうつうかぎあんごうほうしき / 英語表記:symmetric-key cryptography

暗号化と復号に同じ鍵を使う暗号方式。処理が速いが、鍵を安全に相手へ渡す方法が課題になる。AESが代表的。

イマシルちゃんの解説

宝箱に鍵をかけて送るとき、受け取った人も同じ鍵を持っていれば開けられるよね。
共通鍵暗号方式は、そんな「送る人と受け取る人が同じ鍵を持つ」暗号なんだ。

とっても速く暗号にできるのがいいところ。
でも、その鍵をどうやって相手に渡すか……そこが一番の悩みどころなんだよ!

より深い解説

定義

共通鍵暗号方式は、暗号化と復号に同じ鍵を使う暗号方式である。送信者と受信者だけがその鍵を秘密に共有している必要がある。秘密鍵暗号方式、対称鍵暗号方式とも呼ばれる。

代表的な方式

方式鍵の長さ現在の評価
AES128、192、256ビット標準。ブロック長は128ビット
ChaCha20256ビットTLS 1.3で使われるストリーム暗号
DES56ビット鍵が短く、総当たりで解読できるため使用不可
3DES(トリプルDES)112または168ビット相当廃止が進んでいる

公開鍵暗号方式との比較

共通鍵暗号方式公開鍵暗号方式
鍵暗号化と復号で同じ鍵暗号化は公開鍵、復号は秘密鍵
処理の速さ速い遅い
鍵の受け渡し安全に渡す方法が必要公開鍵は公開してよい
n人が互いに通信するときの鍵の数n(n−1)/2個2n個(各人が公開鍵と秘密鍵の組)
代表例AESRSA、楕円曲線暗号

例えば10人が互いに秘密の通信をする場合、共通鍵暗号方式では 10 × 9 ÷ 2 = 45個の鍵が必要になる。

ハイブリッド暗号方式

TLSなどでは、2つの方式の長所を組み合わせる。

  1. 公開鍵暗号方式(や、それに基づく鍵交換)で、共通鍵を安全に共有する
  2. データ本体は、共有した共通鍵を使って、速い共通鍵暗号方式で暗号化する

これをハイブリッド暗号方式という。

ブロック暗号の利用モード

AESのようなブロック暗号は、決まった長さ(AESでは128ビット)ずつ暗号化する。それより長いデータをどうつなげて暗号化するかを利用モードという。

モード特徴
ECBブロックごとに独立して暗号化する。同じ平文のブロックは同じ暗号文になり、模様が透けて見えるため使うべきでない
CBC前のブロックの暗号文を次のブロックに混ぜる
GCM暗号化と同時に改ざん検知のための認証タグを作る(認証付き暗号)。TLSで広く使われる

実際の試験ではここに出る!

この用語が出てくる記事

↑