暗号化と復号に同じ鍵を使う暗号方式
共通鍵暗号方式とは、暗号化と復号に同じ鍵を使う暗号方式。この方式では、事前に情報をやりとりする相手と共通鍵を共有しておく必要がある。この共通鍵を安全な経路で配送することが求められるが、これは「鍵配送問題」とも呼ばれる。
共通鍵暗号方式では演算が比較的シンプルなことから、暗号化と復号における高速な処理を実現する。
しかし、お互いに保持している共通鍵が外部に漏えいしてしまうと、実質的に暗号化した内容が読み取りされてしまう恐れがある。このように、鍵を秘密にする必要があることから、秘密鍵暗号方式という別称もある。
暗号化と復号における処理が高速なことから、大量のデータのやり取りに利用されるケースが多い。例えば、DNSでゾーンの安全性を確保するために、TSIG(Transaction SIGnature)では共通鍵暗号が利用されている。
共通鍵暗号方式のデメリット
シンプルで高速な処理がメリットとされる共通鍵暗号方式の利用にはデメリットも少なくない。以下に主なデメリットを紹介する。
データの数だけ鍵を作る必要性
共通鍵暗号方式で用いられる鍵は、原則としてやり取りするデータごとに用意する必要がある。そのため、やり取りする数が増えるほど、鍵を個別に作ることを前提とすることから、鍵の管理が煩雑になりがちだ。また、ネットワーク内で利用する場合など、ネットワーク上の人数(n)が増加するごとに「n×(n−1)÷2」 個の鍵が必要になってしまうため、利用シーンは限定されてしまう。
鍵の安全な配送の必要性
送信側と受信側の双方で同じ鍵を利用することから、仮にどちらかで共通鍵が漏えいしてしまうと、暗号化した内容がすべて漏えいしてしまうリスクを抱えることになる。したがって、利用する鍵は安全に配送する必要があるため、配送に手間がかかってしまう。このような背景から、インターネット上の一般的な通信において単独で利用されることは少ない。
なお、共通鍵暗号方式はPPAPにおいても採用されていたことから、この問題をめぐる1つの懸念点としても指摘されていた。その結果、PPAPに代わる別の手法への置き換えが加速している。
共通鍵暗号方式の規格
共通鍵暗号方式には主に、DESとAESと呼ばれる2つの規格が存在する。
DES(Data Encryption Standard)
1977年に米国で規格化された方式だ。DESは64bit(8バイト)の鍵を用いて暗号化、復号を行う。
しかし、暗号解読技術の向上と鍵長が64bitの固定であることから、技術進展に伴って安全性が低下。
その後、DESの処理を複数回行うことで暗号強度を高める、ダブルDESやトリプルDESといった方式が開発されるに至った。しかし、総当たり攻撃への耐性に問題を抱えていたことから、新たに規格化されたAESに取って替わられることとなった。
AES(Advanced Encryption Standard)
DESに代わる共通鍵暗号のアルゴリズムとして、2000年に米国で規格化されたのがAESだ。鍵長を128bit、192bit、256bitの3つに可変できるようにしたことが特徴で、暗号強度が極めて高いとされている。現在でも、AESは無線LANの暗号アルゴリズムであるCCMPにて採用されており、WPA3における安全性を支える技術となっている。