共通鍵暗号方式
暗号化と復号に同じ鍵を使う暗号方式。一般に公開鍵暗号方式より処理が速いが、通信相手と鍵を安全に共有する方法が課題になる。代表的な方式にAESがある。
イマシルちゃんの解説
共通鍵暗号方式は、データを読めない形に変える暗号化と、元に戻す復号に同じ鍵を使う暗号方式だよ。
送る側が鍵を使って暗号化し、受け取る側も共有した鍵で復号するんだ。
大量のデータを効率よく処理できるから、通信内容や保存するファイルを守るのに向いているよ。
ただし鍵が第三者に渡ると、その人にも中身を読まれてしまう。
だから暗号化の方法だけでなく、相手と鍵を安全に共有し、その後も秘密に保つことが大切なんだ。
この解説はわかりやすかったですか?
より深い解説
定義
共通鍵暗号方式は、暗号化と復号に同じ鍵を使う暗号方式である。送信者と受信者だけがその鍵を秘密に共有している必要がある。秘密鍵暗号方式、対称鍵暗号方式とも呼ばれる。
代表的な方式
| 方式 | 鍵の長さ | 現在の評価 |
|---|---|---|
| AES | 128、192、256ビット | 標準。ブロック長は128ビット |
| ChaCha20 | 256ビット | TLS 1.3で使われるストリーム暗号 |
| DES | 56ビット | 鍵が短く、総当たりで解読できるため使用不可 |
| 3DES(トリプルDES) | 112または168ビット相当 | 廃止が進んでいる |
公開鍵暗号方式との比較
| 共通鍵暗号方式 | 公開鍵暗号方式 | |
|---|---|---|
| 鍵 | 暗号化と復号で同じ鍵 | 暗号化は公開鍵、復号は秘密鍵 |
| 処理の速さ | 速い | 遅い |
| 鍵の受け渡し | 安全に渡す方法が必要 | 公開鍵は公開してよい |
| n人が互いに通信するときの鍵の数 | n(n−1)/2個 | 2n個(各人が公開鍵と秘密鍵の組) |
| 代表例 | AES | RSA、楕円曲線暗号 |
例えば10人が互いに秘密の通信をする場合、共通鍵暗号方式では 10 × 9 ÷ 2 = 45個の鍵が必要になる。
二つの暗号方式を組み合わせる
TLSなどでは、2つの方式の長所を組み合わせる。
- 公開鍵暗号方式(や、それに基づく鍵交換)で、共通鍵を安全に共有する
- データ本体は、共有した共通鍵を使って、速い共通鍵暗号方式で暗号化する
これをハイブリッド暗号方式という。
ブロック暗号の利用モード
AESのようなブロック暗号は、決まった長さ(AESでは128ビット)ずつ暗号化する。それより長いデータをどうつなげて暗号化するかを利用モードという。
| モード | 特徴 |
|---|---|
| ECB | ブロックごとに独立して暗号化する。同じ平文のブロックは同じ暗号文になり、模様が透けて見えるため使うべきでない |
| CBC | 前のブロックの暗号文を次のブロックに混ぜる |
| GCM | 暗号化と同時に改ざん検知のための認証タグを作る(認証付き暗号)。TLSで広く使われる |
実際の試験ではここに出る!全9問
ネットワークスペシャリスト
テクニカルエンジニア(ネットワーク)
- 午前