暗号理論
英語では、暗号を cryptography といい、暗号学を cryptology という。また、日本ではもっぱら総称される暗号には、「コード」と「サイファ (en:cipher)」という分類がある。
暗号理論は、暗号学の一分野である。
暗号の理論の主な分野には、以下のようなものがある。
暗号系 (cryptosystem) 、すなわち暗号化と復号、といった手続きの構成方法や性能・安全性などに関する研究
暗号や電子署名といった守秘 (confidentiality) や完全性 (integrity) を実現する、暗号アルゴリズムや暗号プロトコルの研究
暗号解読(cryptanalysis)
暗号理論は暗号学の一分野であり、暗号学の全ては理論ではカバーしきれない。古典的な暗号に比べれば現代の暗号(現代暗号)は理詰めで構成されている。 それでも、暗号学としては、その運用や関与する人間の不注意といったヒューマンファクタなども考慮しなければならない。
安全性の前提 情報理論的安全性 計算量的安全性 指数関数時間 準指数関数時間 多項式時間
そのほか サイドチャネル攻撃 en:side channel attack 故障利用攻撃 タイミング攻撃 en:timing attack キャッシュ攻撃 音響解析攻撃 en:acoustic cryptanalysis 電力解析攻撃 en:power analysis 単純電力解析攻撃 en:simple power analysis 差分電力解析攻撃 en:differential power analysis 電磁波解析攻撃(テンペスト en:TEMPEST) 締め上げ暗号分析 en:rubber-hose cryptanalysis
暗号 (Cipher) 以外の暗号プリミティブについても、同様な安全性の研究がなされている。
署名 安全条件 全面的解読 一般的偽造 選択的偽造 存在的偽装 en:existential forgery 攻撃条件 直接攻撃 既知文書攻撃 一般的選択文書攻撃 指向的選択文書攻撃 適応的選択文書攻撃
ハッシュ関数 プレイメージ (preimage) 2ndプレイメージ コリジョン (collision)
乱数 - 暗号の観点からの要請 暗号論的擬似乱数列生成器 pseudorandom function(en:Pseudorandom function family、「乱数列」(random numbers)ではないことに注意)
それ以前のシーザー暗号からエニグマまでをまとめて古典暗号という。 紙と鉛筆と多少の道具のみを使用していた暗号とエニグマなどの機械式暗号を区別して、後者を近代暗号とすることもある。また1949年の暗号理論を現代暗号の始まりと考える人もいる。
1990年代後半から、計算量理論的アプローチによる、暗号アルゴリズムの安全性証明の手法やモデル化の研究がなされ、計算量的に困難と仮定されている問題 (IFPやDLP) と等価であることを証明可能な暗号アルゴリズムが提案された。あるいは既知の暗号解読法では解読できないことを証明できる暗号アルゴリズムが提案された。これらを「現代暗号の第2期」ということがある(証明可能安全性)。安全性証明は、Rabin暗号やゼロ知識対話証明のように90年以前から研究があり、それらの成果の集積である。
2000年代前半には、ゼロ知識対話証明やマルチパーティ計算などの暗号プロトコルの安全性証明を統一的に扱うフレームワークの研究が進んだ。
古典暗号 筆記と道具ベース 秘匿による安全性、難解さに基づくセキュリティ(英語版) - アルゴリズムは非公開
近代暗号 機械式暗号
現代暗号 電子計算機ベース 情報理論的安全性 information theoretic security 計算量的安全性 computational security 経験則による安全性 - アルゴリズムは公開、安全性の根拠は非公開または未知 証明可能な安全性 provable security
物理暗号 物理的理論にもとづく暗号