ポスト量子暗号

Takami Torao #PQC
  • このエントリーをはてなブックマークに追加

概要

ポスト量子暗号 (PQC; post-quantum cryptography) は量子計算耐性を持つ暗号アルゴリズムのこと。現在使用されている暗号アルゴリズムの多くは素因数分解問題 (RSA など)、または離散対数問題 (楕円曲線や BLS など) の困難性に基づいている。これらは現代のコンピュータにおいて堅牢なセキュリティを提供することができるが、将来的に十分な安全性を確保できなくなる可能性がある。例えば Shor のアルゴリズムは量子コンピュータの計算を用いて多項式時間で素因数分解問題を解く量子アルゴリズムである。

量子コンピュータに対する防衛策の一つは、現在の暗号アルゴリズムで使用されているキーサイズを倍以上に増加することである (例えば 128 ビットを 256 ビット以上へといったように)。もう一つの方法は本質的に量子計算耐性を持つ暗号へ移行することである。このような暗号スキームをポスト量子暗号と呼ぶ。

  • 格子暗号 (LBC; lattice-based cryptography) - 多次元格子の幾何学的問題の困難性に基づく暗号スキーム。これらは最短ベクトル問題、最近接ベクトル問題、LWE 問題に基づく NP 困難問題である。PQC の他にも完全準同型暗号でも盛んに研究されている。
    • NTRU
  • ハッシューベース暗号 (hash-based cryptography) - 現在広く利用されている暗号論的ハッシュ関数は離散対数問題のような困難性を根拠にしておらず、量子計算による攻撃の影響を受けないと考えられている (ただし一部のハッシュアルゴリズムは Grover のアルゴリズムを使用して、量子重ね合わせにより全ての入力値を同時にテストできる可能性がある)。ハッシュベース暗号は現在のところ電子署名スキームに限定されている。
    • マークル署名スキーム (MSS) -
    • 拡張マークル署名スキーム (XMSS; 2011) - MSS の拡張版でセキュリティが高められている。
    • Leighton-Micali 署名 (LMS) - 基本構成はマークル署名の one-time 署名。
    • SPHINCS / SPHINCS+ (2015) - ステートレス署名スキーム。SPHINCS の署名は 41kB とかなり大きく、SPHINCS+ でも最高強度で 30kB、最低強度で 8kB の大きさとなる。
  • コードベース暗号 (CBC; code-based cryptography) - エラー訂正コード (ECC) に基づく暗号および署名スキーム。最適化されたコードベース暗号は非常に軽量で高速であるため省電力デバイスに適している。
    • McEliece 暗号 - バイナリ Goppa というエラー訂正コードを使用する。Goppa は特定の値を超えたらゼロに戻るモジュラー演算に基づいている。Goppa 符号は堅牢だが公開鍵がかなり大きくなる傾向を持つ。
    • Niederreiter 暗号 - McEliece 暗号を補強したスキーム。全体的なセキュリティレベルは MacEliece と同等とみなされているが、暗号化において MacEliece よりも高速になる。
  • 多変量暗号 - 多変量多項式に基づく暗号プリミティブ。PQC に対して非常に強力な見立てがあるが、2020 年の時点ではまだ完全に熟成しておらず将来的に未発見の攻撃ベクトルが問題になる可能性がある。
    • Hidden Field Equations (HFE; 1996) - 二次方程式の解の難しさに基づいて構築されている。
    • Unbalanced oil and vinegar (UOV) - "Oil" と "Vinegar" と呼ばれる 2 種類の変数を区別することの難しさに基づく。ほとんどの UOV は加算と乗算に基づいているため非力なハードウェアでも高速に実装できるが、鍵はかなり大きくなる傾向がある。balanced oil and vinegar と呼ばれる UOV の前バージョンは 1998 に突破された。
    • Rainbow (2005) - UOV の多層実装に基づく署名スキーム。UOV と同様に鍵と署名のサイズが大きいが程度はより小さい。