概要
暗号システムとは、暗号アルゴリズムと鍵を用いて情報を保護するための形式的な枠組みです。この語は二つの近い意味で使われます。広義には、データを守るために組織的にまとめられた暗号技術や運用の全体を指し、狭義には理論暗号学で、特定のアルゴリズムから成る暗号方式、通常は鍵生成・暗号化・復号を備えたものを指します。
基本構成
狭義の形式的な見方では、暗号システムは通常、次の三つのアルゴリズム部分から成ります。鍵生成は一つまたは複数の鍵を作り、暗号化は鍵を使って平文を暗号文に変換し、復号はその過程を逆に戻します。重要な要素としては次のものがあります。
- 平文空間と暗号文空間 — 何を暗号化できるか、そしてその結果として得られる符号化された出力。
- 鍵 — 共通鍵(共有秘密鍵)または公開鍵方式(公開鍵と秘密鍵の対)。
- アルゴリズム — 暗号化と復号を行う決定的または確率的な手続き。
歴史と発展
現代の暗号システムは古典的な暗号から生まれ、20世紀の理論的進展を通じて発展しました。クロード・シャノンは情報理論的な基礎を築き、1970年代には公開鍵の発想と実用的な公開鍵システムが登場し、安全な通信や鍵配送の方法を大きく変えました。
用途と例
暗号システムは、安全なメッセージング、Webセキュリティ(TLS)、ディスクやファイルの暗号化、安全な電子メール、デジタル署名(密接に関連するが別個の方式)に不可欠です。ブロック暗号やストリーム暗号のような共通鍵暗号システムは大量データの処理に効率的であり、公開鍵方式は安全な鍵交換や認証を可能にします。
区別と安全性
暗号システムは、しばしば単一のアルゴリズムを指す非公式な用語である「暗号」とは異なり、また暗号技術を基盤としつつ基盤設備も含む、より広いプロトコル群とも区別されます。安全性の性質には、機密性、完全性、真正性があり、意味論的安全性や IND-CPA/IND-CCA のような形式的概念は、特定の攻撃への耐性を表します。いくつかの方式は情報理論的な完全秘匿を目指しますが、実用システムの多くは計算量的困難性の仮定に依存しており、その仮定は量子計算のような進歩の影響を受ける可能性があります。