共通鍵
暗号系は、
暗号化と復号に同一の鍵を用いる
暗号方式で、秘密鍵
暗号系、対称鍵
暗号方式とも呼ばれます。広い意味では、鍵を共有した者同士の通信を安全にする
暗号技術全般を指し、メッセージ認証符号や認証付き
暗号も含まれます。しかし、ここでは主にメッセージの秘匿を目的とした狭義の共通鍵
暗号について解説します。
特徴
共通鍵
暗号系の最大の長所は、
公開鍵暗号系と比較して処理速度が非常に速いことです。しかし、短所として、鍵の受け渡しに細心の注意を払う必要があり、鍵が漏洩すると、
暗号化された情報を誰でも復号できてしまいます。鍵の管理は、共通鍵
暗号系のセキュリティにおいて最も重要な要素です。
鍵の管理には、鍵の受け渡し相手ごとに個別の鍵を用意する方法がありますが、この場合、管理する鍵の数は通信相手が増えるほど増加します。例えば、2人での通信には1種類の鍵で済みますが、3人では3種類、4人では6種類と、人数が増えるにつれて必要な鍵の数は増えていきます。n人の間で必要な鍵の総数は、n(n-1)/2で計算できます。
分類
共通鍵
暗号は、大きく分けてブロック
暗号とストリーム
暗号の2種類に分類されます。ブロック
暗号は一定のデータブロックごとに
暗号化を行う方式で、IDEA、AES、Camelliaなどが代表的です。ストリーム
暗号は、データストリームを逐次的に
暗号化する方式で、RC4、MUGIなどが知られています。ストリーム
暗号は一般的に、ロジック量が少なく、処理速度が速いとされています。
歴史
共通鍵
暗号の歴史は非常に古く、
紀元前のシーザー
暗号もこの方式の一つです。シーザー
暗号は、原文の文字を一定数だけずらすというシンプルな
アルゴリズムを使用しています。例えば、アルファベットを3文字ずらすと、AはDに、BはEに変換されます。このシフト数が鍵となります。シーザー
暗号のような、
アルゴリズムが公開されていれば解読が容易な
暗号は、古典
暗号として分類されます。一方、現代
暗号は、
アルゴリズムを公開しても鍵が漏洩しなければ安全であるという前提で設計されています。
現代
暗号の始まりは、1976年に発表されたDESと言われています。DESの登場により、
暗号アルゴリズムを議論の対象とすることが可能となり、
暗号学の研究が活発化しました。同時に、
暗号の解読技術も発展し、総当たり攻撃のような原始的な手法から、差分攻撃や線形攻撃といった高度な攻撃手法が考案されました。これらの攻撃によって、DESやFEALなどの
暗号が解読された事例もあります。松井充氏が開発したMISTY1も、2015年にIntegral攻撃によって解読されました。
共通鍵
暗号は、現代社会における情報セキュリティの根幹をなす技術であり、その安全性と効率性は常に追求されています。