定義:対称暗号とは何か

対称暗号(symmetric cryptography)は、暗号化と復号に同じ鍵(共通鍵)を用いる暗号の総称です。鍵を持つ側だけが復号できるため、通信や保存では「鍵をどう守り、どう配り、どう使い分けるか」が安全性に直結します。

対して、暗号化アルゴリズム自体の設計だけでなく、鍵の生成・保管・配布・更新(ローテーション)・消去といった運用が結果を左右します。そのため、対称暗号の理解は「仕組み」と「鍵管理」の両面で行うのが現実的です。

簡単なモデル:平文・鍵・暗号文

典型的には、平文(もとのデータ)と鍵を入力として暗号文を生成し、暗号文と同じ鍵を入力として平文を復元します。イメージとしては次の流れです。

  • 平文 + 鍵 → 暗号文
  • 暗号文 + 鍵 → 平文

ここで重要なのは、鍵が漏れると「暗号としての秘密」が失われやすいことです。さらに、同じ鍵で同じ入力を同じ条件で暗号化すると、暗号文同士の関係が観測されてしまう可能性があります。したがって、暗号化の対象だけでなく、同じ鍵をどう再利用するか、毎回どんな前提情報を組み合わせるかが要点になります。

代表的な仕組み:ブロック暗号とモード、IVの役割

対称暗号にはいくつかの分類がありますが、よく出てくるのがブロック暗号です。ブロック暗号は、一定サイズのデータ単位で変換を行い、その変換を「どうつなぐか」を決める仕組みがモード(mode)に相当します。

モード設計や初期化ベクトル(IV:初期値)の扱いは、暗号文の性質に大きく影響します。たとえば、IVが適切に用いられない、同じIVを同じ鍵で再利用する、といったミスは避けるべきです。理由は、暗号文が持つ“パターン”や“繰り返しの痕跡”が増える可能性があるためです。

なお、どの方式でも「IVが必要」と断言できるわけではありません。方式やモードの仕様によって前提が異なるため、実装の確認では「使用しているアルゴリズムとモードが何で、IVやノンス(nonce)をどのように扱う想定か」を確認します。ここが曖昧だと、評価も検証もズレやすくなります。

制限と落とし穴:鍵共有、再利用、完全性

対称暗号の制限は、大きく「鍵の共有・運用」と「同一鍵の使い方の難しさ」です。

1つ目は鍵共有コストです。相手と同じ鍵を安全に用意できないと復号できないため、鍵の配布や更新の手間がシステムの規模とともに増えます。2つ目は再利用の難しさです。同じ鍵を長期に使い続けたり、同じ条件で暗号化したりすると、暗号文の統計的な偏りや関係が観測されるリスクが上がります。

また、暗号化だけでは「改ざん検知」が保証されないことがあります。つまり、暗号文が第三者により一部書き換えられても、それに気づけない設計の場合があるためです。この点は、暗号化方式の設計として“完全性”を扱う仕組み(例:認証付きの枠組み)を併用するかどうかで変わります。