CRYPTREC 耐量子計算機暗号の研究動向調査報告書 2025 年 3 月 CRYPTREC 暗号技術調査ワーキンググループ(耐量子計算機暗号) 目次 第1章 はじめに 1 1.1 暗号の安全性に影響のある量子コンピュータの開発状況 . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.1 量子コンピュータの分類 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.2 ハードウェアの進展とロードマップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 耐量子計算機暗号(PQC) の必要性について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.1 量子コンピュータの影響による現代暗号の危殆化予測 . . . . . . . . . . . . . . . . . . . . . . 7 1.2.2 量子コンピュータによる素因数分解・離散対数問題計算の現状 . . . . . . . . . . . . . . . . . 8 1.3 PQC の研究及び標準化等に関する動向 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.1 米国 NIST における標準化の動向 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3.2 米国以外での動向 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4 本調査で対象とした PQC の種類 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.5 耐量子計算機暗号調査報告書執筆者リスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 第2章 PQC の活用方法 27 2.1 公開鍵暗号の利用形態 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.1.1 署名用途での公開鍵暗号の利用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.1.2 守秘用途での公開鍵暗号の利用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.1.3 鍵共有用途での公開鍵暗号の利用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.2 PQC の導入における課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.2.1 署名用途での課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.2.2 守秘用途での課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.2.3 鍵共有用途での課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.3 PQC 導入へのアプローチ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3.1 プライオリティ設定の重要性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3.2 クリプトグラフィック・アジリティの重要性 . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.3.3 既存暗号方式とのハイブリッド構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.3.4 署名用途固有の対策 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.3.5 守秘及び鍵共有用途固有の対策 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.4 PQC の活用にむけて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 第3章 格子に基づく暗号技術 39 3.1 格子に基づく暗号技術の安全性の根拠となる問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.1.1 LWE 問題と代表的な求解法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.1.1.1 LWE 問題の紹介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 i 3.1.1.2 格子の基本事項と q-ary 格子の紹介 . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.1.1.3 LWE 問題の代表的な求解法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.1.2 NTRU 問題と代表的な求解法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.1.3 格子問題を解くアルゴリズムとその計算量について . . . . . . . . . . . . . . . . . . . . . . . 43 3.1.3.1 代表的な格子基底簡約アルゴリズムの紹介 . . . . . . . . . . . . . . . . . . . . . . . 43 3.1.3.2 BKZ 基底簡約アルゴリズムの出力基底と計算量 . . . . . . . . . . . . . . . . . . . . 44 3.1.3.3 格子問題の公開チャレンジの求解状況 . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.2 格子に基づく代表的な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.2.1 LWE に基づく Regev による公開鍵暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.2.2 LWE に基づく Lindner, Peikert らによる公開鍵暗号方式 . . . . . . . . . . . . . . . . . . . . 46 3.2.3 Ring-LWE に基づく Brakerski らによる公開鍵暗号方式 . . . . . . . . . . . . . . . . . . . . . 47 3.2.4 NTRU 問題に基づく Hoffstein らによる公開鍵暗号方式 . . . . . . . . . . . . . . . . . . . . . 48 3.2.5 Hash-and-Sign に基づく署名方式の格子問題への拡張 . . . . . . . . . . . . . . . . . . . . . . 49 3.2.6 Fiat-Shamir 署名方式の格子問題への拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.3 格子に基づく主要な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.3.1 FIPS 203:Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM) . 52 3.3.1.1 ML-KEM における数論変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3.1.2 ML-KEM の基本構成と処理概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.3.1.3 暗号パラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.3.1.4 CRYSTALS-Kyber との違い . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.3.2 FIPS 204: Module-Lattice-Based Digital Signature Standard(ML-DSA) . . . . . . . . . 57 3.3.2.1 ML-DSA における数論変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.3.2.2 ML-DSA の構成と処理概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.3.2.3 暗号パラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.3.2.4 CRYSTALS-Dilithium との違い . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.3.3 CRYSTALS-Kyber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.3.4 CRYSTALS-Dilithium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.3.5 FALCON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.3.6 FrodoKEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.3.6.1 NIST PQC 第 3 ラウンド版 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.3.6.2 ISO 標準への予備提案版 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.3.7 NewHope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.3.8 NTRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 3.3.9 SABER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 3.4 格子に基づく暗号技術に関するまとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 第4章 符号に基づく暗号技術 101 4.1 符号に基づく暗号技術の安全性の根拠となる問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.1.1 SD 問題とその拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.1.1.1 SD 問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.1.1.2 SD 問題の拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.1.2 SD 問題に対する評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 ii 4.1.2.1 Information Set Decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.1.3 LPN 問題とその拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 4.1.3.1 LPN 問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 4.1.3.2 LPN 問題の拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 4.1.4 LPN 問題に対する評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.1.4.1 ガウスの消去法に基づく手法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.1.4.2 Information Set Decoding に基づく手法 . . . . . . . . . . . . . . . . . . . . . . . 107 4.1.4.3 BKW アルゴリズムに基づく手法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 4.1.4.4 Arora–Ge アルゴリズム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4.1.4.5 Information Set Decoding と BKW を組み合わせたハイブリッド法 . . . . . . . . . 109 4.1.4.6 量子アルゴリズム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 4.2 符号に基づく代表的な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 4.2.1 McEliece 公開鍵暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 4.2.2 Niederreiter 公開鍵暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 4.2.3 符号版 Lyubashevsky-Peikert-Regev(LPR)公開鍵暗号方式 . . . . . . . . . . . . . . . . . 111 4.2.4 CFS 署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 4.3 符号に基づく主要な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 4.3.1 Classic McEliece . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 4.3.2 BIKE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 4.3.3 HQC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 4.4 符号に基づく暗号技術に関するまとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 第5章 多変数多項式に基づく暗号技術 123 5.1 多変数多項式に基づく暗号技術の安全性の根拠となる問題 . . . . . . . . . . . . . . . . . . . . . . . . 123 5.1.1 MP 問題(MQ 問題) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 5.1.2 MP 問題を解く計算の計算量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 5.1.3 MinRank 問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.1.4 IP 問題,EIP 問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.2 多変数多項式に基づく代表的な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 5.2.1 双極型システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 5.2.2 双極型システムの modifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 5.2.2.1 マイナス手法 “ − ” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 5.2.2.2 プラス手法 “ + ” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 5.2.2.3 External Perturbation “ v ” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 5.2.2.4 Internal Perturbation “ I ” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 5.2.3 公開鍵暗号方式 HFE,署名方式 HFE v − . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 5.2.3.1 公開鍵暗号方式 HFE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 5.2.3.2 署名方式 HFE− v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 5.2.4 署名方式 UOV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 5.2.4.1 UOV の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 5.2.4.2 UOV の公開鍵長の削減 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 5.2.4.3 署名方式 Rainbow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 iii 5.2.5 MPC-in-the-Head による署名方式の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 5.2.5.1 秘匿マルチパーティ計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 5.2.5.2 ゼロ知識証明への変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 5.3 多変数多項式に基づく主要な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 5.3.1 署名方式 UOV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 5.3.1.1 UOV の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 5.3.1.2 UOV のパラメータ選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 5.3.2 署名方式 QR-UOV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 5.3.2.1 QR-UOV の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 5.3.2.2 QR-UOV のパラメータ選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 5.3.3 署名方式 MAYO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 5.3.3.1 MAYO の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 5.3.3.2 MAYO のパラメータ選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 5.3.4 署名方式 MQOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 5.3.4.1 MQOM の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 5.3.4.2 MQOM のパラメータ選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 5.3.5 署名方式 MiRitH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 5.3.5.1 MiRitH の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 5.3.5.2 MiRitH のパラメータ選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 5.4 多変数多項式に基づく暗号技術に関するまとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 第6章 同種写像に基づく暗号技術 151 6.1 同種写像に基づく暗号技術の安全性の根拠となる問題 . . . . . . . . . . . . . . . . . . . . . . . . . . 152 6.1.1 同種写像問題の一般形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 6.1.2 SIDH 同種写像問題とその解法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.1.3 レベル構造付き同種写像問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 6.1.4 同種写像に基づく一方向性群作用(暗号学的群作用)に関する計算問題 . . . . . . . . . . . . . 156 6.1.4.1 2 種の一方向性群作用:REGA と EGA . . . . . . . . . . . . . . . . . . . . . . . . 156 6.1.4.2 CSIDH-(R)EGA 上の計算問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 6.1.4.3 イデアル類群作用に基づく量子マネーの安全性に関する計算問題 . . . . . . . . . . . 158 6.1.5 自己準同型環計算問題と SQIsign 署名方式の安全性に関する計算問題 . . . . . . . . . . . . . . 158 6.1.5.1 自己準同型環計算問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 6.1.5.2 SQIsign 署名方式の安全性に関する計算問題 . . . . . . . . . . . . . . . . . . . . . . 159 6.2 同種写像に基づく代表的な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 6.2.1 暗号学的群作用に基づく鍵共有方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 6.2.1.1 CSIDH 鍵共有 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 6.2.1.2 群作用に基づく CSIDH 以外の鍵共有方式 . . . . . . . . . . . . . . . . . . . . . . . 163 6.2.2 レベル構造付き同種写像問題に基づく鍵共有 . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 6.2.2.1 M-SIDH 鍵共有と MD-SIDH 鍵共有 . . . . . . . . . . . . . . . . . . . . . . . . . . 163 6.2.2.2 (Q)FESTA 鍵共有と binSIDH 鍵共有(terSIDH 鍵共有) . . . . . . . . . . . . . . 163 6.2.3 暗号学的群作用に基づく署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 6.2.3.1 SeaSign 署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 iv 6.2.3.2 CSI-FiSh 署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 6.2.4 GPS 署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 6.3 同種写像に基づく主要な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 6.3.1 SQIsign 署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 6.3.1.1 KLPT アルゴリズムに基づく SQIsign 署名方式 . . . . . . . . . . . . . . . . . . . . 167 6.3.1.2 SQIsign2D 署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 6.4 同種写像に基づく暗号技術に関するまとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 第7章 ハッシュ関数に基づく署名技術 179 7.1 ハッシュ関数に基づく署名技術の安全性の根拠となる問題 . . . . . . . . . . . . . . . . . . . . . . . . 179 7.2 ハッシュ関数に基づく代表的な署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 7.2.1 Winternitz One-Time Signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 7.2.2 マークル木を用いた署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 7.2.3 マークル木の階層構造による署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 7.2.4 プレフィクスとビットマスク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 7.3 ハッシュ関数に基づく主要な署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 7.3.1 Lighton-Micali Hash-Based Signatures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 7.3.1.1 LM-OTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 7.3.1.2 LMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 7.3.1.3 HSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 7.3.1.4 パラメータの設定と安全性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 7.3.2 XMSS: eXtended Merkle Signature Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . 185 7.3.2.1 WOTS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 7.3.2.2 XMSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 7.3.2.3 XMSSM T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 7.3.2.4 パラメータの設定と安全性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 7.3.3 SLH-DSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 7.3.3.1 WOTS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 7.3.3.2 XMSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 7.3.3.3 Hypertree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 7.3.3.4 FORS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 7.3.3.5 SLH-DSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 7.3.3.6 パラメータの設定と安全性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 7.3.3.7 ハッシュ関数の実現法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 7.4 ハッシュ関数に基づく署名技術に関するまとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 v 第1章 はじめに 暗号は情報を保護するための基礎的な手段である。基本的な暗号の分類として共通鍵暗号と公開鍵暗号があり,さら に公開鍵暗号の下位分類として通信相手の認証などを目的とした署名方式,情報の守秘を目的とした公開鍵暗号方式*1 , 秘密鍵の共有を目的とした鍵共有が存在する*2 。これらを含めた基本的な暗号方式を部品(プリミティブ)とした高機 能暗号 [5] が数多く提案されている。2025 年現在,署名目的で DSA,ECDSA 等,情報の守秘目的で RSA-OAEP 等, 秘密鍵共有の目的では DH,ECDH 等*3 が国際的な標準暗号方式 [96] として用いられており,日本においても電子政府 推奨暗号 [142] とされている。 これらの暗号方式の安全性と深く関わる計算問題として,素因数分解問題や楕円曲線上の離散対数問題があり,古 典コンピュータ*4 では効率的に解くことが困難であると信じられている。このことから,RSA 暗号や ECDSA 署名は ある程度の大きさの鍵長を用いることで安全性が保てると考えられている [141]。一方で,Shor の量子アルゴリズム [122, 124] はこれらの計算問題を効率的に解くため,量子コンピュータの高性能化が情報セキュリティに影響を及ぼす とされている。以上の背景のもと,古典コンピュータ上での効率的な実装が可能であり,かつ古典・量子双方のコン ピュータを用いた攻撃に対しても安全性を確保できる暗号方式が必要とされている。 本報告書で扱う耐量子計算機暗号の範囲 量子コンピュータによる攻撃への耐性を耐量子計算機性と呼び,耐量子計算 機性を持つ暗号技術を耐量子計算機暗号(Post-Quantum Cryptography: PQC)と呼称する。しかしながら,耐量子 計算機性の定式化はそれぞれの暗号技術の定式化を踏まえて行われており,一義的な意味で用いられる単語ではないこ とに注意が必要である。 例えば,公開鍵暗号方式は古典アルゴリズムの 3 つ組として定式化され,それらの古典安全性モデルの議論は IND-CCA 安全性をデファクトスタンダードとして収束している。それを踏まえ耐量子計算機性を持つ公開鍵暗号方 式は,同じ定式化を持ちかつ耐量子計算機性の安全性モデルを満たす方式と捉えることができる。ただし 2025 年現在 IND-CCA 安全性の量子版は様々に提案されており,例えば Boneh と Zhandry による IND-qCCA2[24],Chevalier らによる qIND-qCCA2[37] など,攻撃者が量子計算機をどのように用いるのかという点で定式化に細かい違いがある。 また,第 2 章冒頭にあるように,暗号技術のレイヤーを離れそれらを利用する暗号システムに関する耐量子計算機性 を考える事も可能である。 PQC の考え方が出現した文脈は RSA,ECDSA の代替となる公開鍵暗号の開発であり [29],PQC 候補とされるほ とんどの暗号技術は古典コンピュータでの実装を前提として提案されている。この,古典コンピュータによる実装可能 *1 本報告書の中では公開鍵暗号を Public-Key Cryptography の意味で用い,その下位分類としての Public-Key Encryption を公開鍵暗号 方式と表記する。 *2 基本的な暗号方式の定義と性質に関しては,例えば教科書 [149, 1.3 節] などを参照。 *3 これらの方式には多くの解説記事があるが,DH,DSA に関しては例えば [180] を,ECDH,ECDSA に関しては [147] がある。 *4 理論的には決定的チューリングマシンを物理的に実装した計算機で,狭義においては CMOS 半導体を用いた論理回路による計算機を指す。 現在普及しているコンピュータとほぼ同義である。 1 図 1.1: 2024 年度 CRYPTREC 体制図 性は情報を量子状態に乗せて伝達することで安全性を保証する量子暗号・量子鍵共有と PQC を区別する点とされるこ ともある(例えば [85, p. 3] を参照)。 以上の状況と本報告書の中で扱う暗号技術の種類(1.4 節も参照)を踏まえ,報告書内では特に断りのない場合,耐 量子計算機暗号(PQC)の言葉を,古典アルゴリズムの組み合わせにより定式化され,かつ耐量子計算機性を持つこと を技術的に判断できる暗号方式とする。例えば米国の国立標準技術研究所(NIST)における PQC 標準化プロジェク トでの選定基準 [101, 4.A 節] では,公開鍵暗号方式,鍵共有(KEM) ,署名方式に対して IND-CCA2,EUF-CMA 等 の古典の安全性ゲームから古典または量子による多項式時間帰着を行った先の計算問題の量子計算量がある値よりも大 きいという基準が用いられ,暗号方式の提案者はその根拠を提案書に述べている。 本報告書の背景および調査内容 近年の世界的な量子コンピュータの開発と商用マシンの普及と並行して,PQC に関 する研究及びその標準化に向けた活動も世界各国の組織で進んでおり(1.3 節を参照) ,国内でも PQC の研究動向を把 握する必要性がある。2020 年度第 2 回暗号技術検討会において,2021 年度から暗号技術評価委員会の活動計画として 2 年をかけて PQC の研究動向を調査し,ガイドラインを作成することが決定された。暗号技術評価委員会は暗号技術 調査ワーキンググループ(耐量子計算機暗号)を設置し,ワーキンググループにおいて 2022 年 9 月 30 日までの調査結 果をガイドライン [4] と調査報告書 [3] としてまとめ,出版した。その後,2022 年度第 2 回暗号技術検討会において, さらに 2 年間の研究動向調査活動を継続し新たなガイドラインと調査報告書を作成することが決定され,暗号技術評価 委員会は暗号技術調査ワーキンググループ(耐量子計算機暗号)を設置した(図 1.1)。 本ワーキンググループでは PQC の代表的な候補である 5 種類の分類(格子に基づく暗号技術,符号に基づく暗号技 術,多変数多項式に基づく暗号技術,同種写像に基づく暗号技術,ハッシュ関数に基づく署名技術)について調査し, 原則 2024 年 9 月 30 日までの調査結果をガイドラインと調査報告書にまとめた。本調査報告書の中で「現在」と表記 する場合,特に断りがなければ 2024 年 9 月 30 日時点での情報を指すものとする。 ガイドラインは暗号初学者を対象としており,調査報告書は暗号についての知見のある技術者や専門家を対象として いる。第 1 章ではガイドラインと調査報告書の概要,PQC を必要とする背景,研究及び標準化に関する動向,調査対 象とした PQC の種類についてまとめている。第 2 章では PQC の活用方法と移行に関する内容,特に守秘・鍵共有・ 署名のための PQC の利用などについて記載している。第 3 章以降では暗号技術に携わる研究者及び技術者を読者と 2 して想定し,PQC の代表的な候補である 5 種類の分類をまとめた。ただし,これらの章ではガイドラインの記載内容 は調査報告書の簡略版となっており,ガイドラインでは専門的な内容を省略し,暗号初学者が代表的な PQC 方式を把 握するために最小限の内容のみを記載した。 共通鍵暗号と暗号学的ハッシュ関数の耐量子計算機性 本報告書では詳しく述べていないが,共通鍵暗号や暗号学的 ハッシュ関数に対しても古典的な定式化を踏まえた上で量子的な攻撃に対する安全性モデルが提案されている。代表的 な量子攻撃モデルとして,復号オラクルに対して重ね合わせクエリを許さない Q1 モデルと許される Q2 モデル [73] が ある。 Grover の量子検索アルゴリズム [61] による共通鍵暗号方式の安全性の低下 [26] や暗号学的ハッシュ関数の衝突発見 の高速化 [27] が知られている。アルゴリズムの最適性 [139] から,攻撃の量子計算量は鍵長の指数関数であり,ほぼ全 ての共通鍵暗号,暗号学的ハッシュ関数は耐量子計算機性を持つものと認識されている。ただし,[74, 16] のように共 通鍵暗号の暗号利用モードによっては安全性が著しく低下する例は知られている。パラメータに関しても鍵長を数倍に 伸ばすだけで量子攻撃計算量を古典攻撃計算量と同等に増やすことが可能である.公開鍵暗号のように全く異なるアル ゴリズムへの移行が必要とされないため,影響は限定的と考えられている [148, 49]。共通鍵暗号方式の安全性への影 響を調査した報告書として CRYPTREC による [148],日本銀行金融研究所による [162] 等に詳しい記述がある。 1.1 暗号の安全性に影響のある量子コンピュータの開発状況 量子コンピュータは重ね合わせ,エンタングルメント等の量子的な物理現象を用いて計算を行うコンピュータの総称 である([152, 第 2 章],[150] 等を参照)。本節では,暗号の安全性に影響を及ぼすと考えられる量子コンピュータの開 発状況についてまとめる。 1.1.1 量子コンピュータの分類 量子コンピュータの開発は世界中で進められており,その形も多様であるが計算モデル,物理的実装,性能により分 類できる。 計算モデルによる分類 量子計算の基本的な計算操作と物理的操作の対応関係を表すモデルにより,量子回路型計算, 測定型量子計算,断熱型量子計算,アナログ量子シミュレーション,トポロジカル量子計算,ホロノミック量子計算等 に分類できる*5 。 量子回路型計算,測定型量子計算 特に量子回路型計算,測定型量子計算では多くの種類の物理実装が存在する。超伝 導量子ビット,冷却原子(中性原子) ,イオントラップ,シリコン量子,光量子,カラーセンター量子コンピュータ等の 開発が進められている。Shor のアルゴリズム等,暗号に大きな影響のあるアルゴリズムは量子回路を用いて記述され ていることから,これらのコンピュータの大規模化が現代暗号に大きな影響を与えると考えられる。1.2.2 節に述べる ように,多くの素因数分解実験が量子回路型計算のフレームワークで行われている。 断熱型量子計算と量子アニーリング 断熱型量子計算は基底状態が簡単に用意できる初期ハミルトニアンから,組み合 わせ最適化問題の解が基底状態に対応するようなハミルトニアンへとゆっくりと変化させることで解を得る計算フレー ムワーク [14, Def. 1] である。断熱型量子計算の下位分類の中で特に量子アニーリング(Quantum Annealing: QA) はクラウドサービスを通じた商用コンピュータが提供されていることから注目を集めている。 量子アニーリングは元々,Apolloni ら [19] によりシミュレーテッドアニーリング(Simulated Annealing: SA)に 類似したアルゴリズムを量子的に構成したことから名付けられたものであるが,現在では量子断熱計算のモデル [14, *5 分類に関しては [150, 134, 51] および [70, Sect 1.6] を参照。 3 Def. 1] における条件を開放系とし,有限時間に設定し,ハミルトニアンをイジングモデルに制限した計算フレームワー クを指すものと見なされている [169, § 3]。イジングモデルを用いた素因数分解実験も数多く行われている。 (1.2.2 節 を参照) ハミルトニアンの形に制限のない量子断熱計算の計算能力は量子回路型計算と多項式時間等価であり,計算量クラス BQP に属する [9]。この論文内では量子回路とハミルトニアンを互いに多項式サイズの差で変換する手法もで与えられ てはいるものの,2025 年現在でその変換を暗号方式への攻撃に応用した例は確認されていない。 3-XORSAT 問題のように古典多項式時間で計算可能であるにも関わらず,自然な形でインスタンスの変換を行った イジングモデルによる量子アニーリングでは効率的に解くことが困難であることが示唆されている計算問題の存在も知 られており [71],暗号に関係する問題が同様の性質を持つかどうかが未解決問題となっている。 量子ゲート型と量子アニーリング型 量子回路型計算を超伝導量子ビット,イオントラップにより実現したコンピュー タ,断熱型量子計算の中でも量子アニーリングを超伝導磁束量子ビットにより実現したコンピュータは物理的なハード ウェアの進化とプログラミング環境の進化により商用利用が進んでいる。これらは量子ハードウェアを専門としない技 術者でもクラウドを通じて容易に利用可能であることから注目を集めていることを踏まえ,量子回路型コンピュータと 量子アニーリング型コンピュータを指してそれぞれ量子ゲート型と量子アニーリング型という名称で分類し対比するこ ともある [152, 第 2 章, p. 11]。 アナログ量子シミュレータ 近年,中性原子や光格子を用いた様々な実装が急速に進展している計算フレームワークで ある。人工的な量子系を用いて別の量子系をシミュレーションするコンピュータの総称であり [173],古典コンピュー タを用いて量子回路や量子アニーリングの出力をシミュレーションする技術とは異なる。 規模と性能による分類 物理的な実現方法・計算モデルによる分類以外に,規模と性能による分類も提案されている。 NISQ は Noisy Intermediate-Scale Quantum の略で,2018 年に Preskill[69] により提案された概念である。NISQ デ バイスは搭載される物理量子 bit が数十から数百程度で,実行時のノイズが大きい量子デバイスを指す。量子誤り訂正 や大規模な計算を行うには不十分な性能とされる。2025 年現在,全ての量子コンピュータは NISQ デバイスであると 考えられる。 FTQC は Fault-Tolerant Quantum Computation の略で Shor[123] により提案された概念である。ノイズやデコ ヒーレンスのある量子デバイスでもその影響を量子誤り訂正等を用いて低減することで,大規模かつ長時間の計算が可 能となる理論を指す。そのような計算を実現するデバイスは FTQC デバイスと呼ばれ,必然的に多くの論理量子 bit による非常に低いエラーレートでの量子計算を可能とする。実用的な暗号方式に用いられる大きさの素因数分解問題, 離散対数問題の計算を行うためにはこの規模のコンピュータが必要と考えられている。 実際には FTQC デバイスが実現される前でもある程度の性能の量子エラー訂正を用いることで有用な計算が可能と なると考えられており,NISQ と FTQC の中間的な性能のデバイスを指す様々な概念が提案されている。汎用的なも のでは early-FTQC[175] という,数万物理量子 bit 程度の規模を持つ量子デバイスの概念があるが,特に暗号に関係 する概念として CRQC(Cryptographically Relevant Quantum Computer)があり,古典コンピュータでは解くこと が困難な暗号学的問題を解くことのできる量子コンピュータとして定義されている [8]。 1.1.2 ハードウェアの進展とロードマップ 前節の量子コンピュータの分類を踏まえ現在の量子コンピュータの開発状況と各組織のロードマップを概観する。量 子コンピュータの開発は世界中で進められており,網羅的な記述を行うことは本報告書の目的ではない。近年開発され た量子コンピュータの中で特筆すべき性能を持つもの,暗号に関係する応用に用いられたもの,日本国内で開発された ものに絞り紹介する。 以下では,物理量子 bit は搭載されている物理的な量子ビットの数を表し,論理量子 bit は量子誤り訂正などを行っ 4 た後の論理レベルでの量子 bit 数を表すものとする。 量子回路型コンピュータの開発は米国の民間企業を中心に 2010 年代以降急速に発展しており,特に超伝導量子ビッ トによる実装と中性原子による実装が 1000 物理量子 bit を超えるプロセッサを実現している。しかしながら,調査の 範囲で確認された量子コンピュータは総じて NISQ デバイスに留まっており,CRQC レベルのものは確認されていな い。一方で,数年前までは誤り訂正処理を行うことで逆にノイズが蓄積しエラーレートが悪化する状態であったもの が,2023 年には誤り訂正後のエラーレートが下回るという結果が報告されており [125, 95, 140, 38],FTQC に向け安 定な論理量子ビットの構築が進んでいる。また,近年では多くのコンピュータが実験室レベルではなく,商用として開 発されクラウドサービスを通じて公開されている [64, 15, 130] ことも特徴である。 世界的に FTQC の開発を目指して研究が進められており,大きな枠組みでは例えば以下の目標が掲げられている。 2020 年 1 月に決定された日本のムーンショット目標 6 では,様々な実装による量子コンピュータの開発を行い,2050 年までの FTQC 実現を目指している [154]。欧州の European Quantum Flagship が 2024 年 2 月に公表したロード マップでは,2020 年代後半に様々な実装での 1000 物理量子 bit,2030 年までに 99% 以上の忠実度*6 をもつ 1000 論理 量子 bit デバイスの実現を目標として掲げている [51]。 なお,量子コンピュータの性能を十分に引き出す強力なアルゴリズムを実現するためには量子 bit 数の増加のみでは なく,ゲート操作の忠実度の向上,コヒーレント時間の向上などの課題を克服し,量子誤り訂正,量子ランダムアクセ スメモリ等の 2025 年現在では完全には実用化されていない技術を用いる必要がある。それらの開発スピードの予測困 難性が,量子コンピュータが暗号に与える影響の将来予測を困難なものとしている。 以下,各実装方式ごとの開発状況とロードマップを概観する。 超伝導量子ビット 超伝導量子ビットによる量子コンピュータは集積可能性と設計自由度が高いこと [156],十分な品質 の量子ビットが比較的安定に実現できること [174] から,大規模化に向けた開発が他の方式よりも先行した。特に 2010 年代から IBM のクラウドサービスによる一般公開があり,代表的な量子コンピュータ方式として認識されている。近 年でも 2019 年 10 月に Google が 53 物理量子 bit の量子プロセッサ Sycamore を開発し量子超越性を宣言した事 [52], 2022 年 12 月に中国のチームが 110 物理量子 bit の量子プロセッサ [137] を用いて素因数分解アルゴリズムの実験を 行った事 [138] 等多くの話題がある。 量子 bit 数の多いプロセッサでは,IBM が 2023 年 12 月に開発した 1121 物理量子 bit のプロセッサ IBM Condor[55], 中国科学院の量子情報・量子技術創新研究院が 2024 年 4 月に開発した 504 物理量子 bit のプロセッサ骁鸿(Xiaohong) [78] 等が代表的である。IBM が 2023 年 12 月に発表したロードマップ [65] によれば,2029 年までに実行可能ゲート 数を 1 億に増やし,2033 年には実行可能ゲート数 10 億,論理量子 bit 数を 1000 まで上げるとしている。 量子誤り訂正に関する話題では 2022 年に訂正後のエラーレートが訂正前よりも下がるブレークイーブンポイントを 達成したとの報告が米国,中国それぞれの研究チームから行われている [125, 95]。その後,2024 年 8 月には Google のチームが表面符号を用いた量子メモリの実装実験 [38] を行い,誤り訂正後のエラーレートが訂正前よりも下がり,構 成された論理量子 bit の寿命が物理量子 bit の寿命よりも 2 倍程度長いと報告している。 日本国内では 2023 年 3 月に富士通と理化学研究所を中心としたチームが 64 物理量子 bit の量子コンピュータ叡を 開発,現在までに 3 台がリリースされクラウドを通じて利用されている [166, 177]。理研の次の目標は 144 物理量子 bit デバイスの実現であるとしている [167]。富士通では 2024 年 5 月にロードマップ [155] を公開し,2025 年中に 256 物理量子 bit を実現し,2026 年度以降に 1000 物理量子 bit を達成するとしている。 また,ムーンショット目標 6 の中のプロジェクト「スケーラブルな高集積量子誤り訂正システムの開発」においても 2030 年までに超伝導量子ビットを用いた 100 万物理量子 bit の FTQC を,2025 年に 100 物理量子 bit を用いた 1 論 理量子 bit のプロトタイプを作成することをマイルストーンとしている [151, 2:30]。 *6 ここでは量子ゲート操作の忠実度(gate fidelity)を指す。厳密な定義は決まっていないものの,大まかに量子デバイスの出力が理想的な計 算結果とどの程度一致しているかを測る指標である。 5 イオントラップ イオントラップ方式の利点はコヒーレント時間の長さと量子操作時のエラー率の低さである [146]。 同じ量子 bit 数を持つ超電導量子ビットのコンピュータと比べると量子体積*7 などの面で優位性がある [111]。2020 年 10 月に IonQ が 32 物理量子 bit[36],2024 年 6 月には Quantinuum が 56 物理量子 bit[112] のデバイスを発表してい る。Quantinuum と Microsoft により,量子誤り訂正後のエラーレートが訂正前よりも 800 倍程度低減されたという 実験報告が行われている [140]。 中性原子 中性原子(冷却原子)を用いた量子コンピュータはコヒーレント時間が長く,スケーラビリティが超伝導量 子ビットやイオントラップよりも良いとされる。また,動的光ピンセット技術により量子ビット間の全結合が可能であ るともされている [179]。開発は Atom computing による 1180 物理量子 bit の量子プロセッサ [40] を筆頭にここ数年 で急速に進展している。また,Harvard 大学らのチームが 280 物理量子 bit を用いて量子誤り訂正を行った 48 論理量 子 bit の構築とベンチマーク [23] を行い,訂正後のゲート操作の忠実度が上がることを確認している。日本の自然科学 研究機構分子科学研究所ではほぼ理論限界に近い 6.5 ns でのゲート操作速度を可能とする 400 物理量子 bit のシステ ムが構成されており [176, 8:45],2030 年の事業化を目指している [160]。 シリコン量子ビット この方式はシリコン中の電子スピンを用いるため,既存の半導体製造技術を応用可能であると見 込まれている [164]。また,動作温度が 10K 程度と超伝導量子ビットど比べて高いため冷却器の小型化が可能である点 なども利点として挙げられている。 Intel は 2010 年代から研究を進め,2023 年 6 月に 12 物理量子 bit のプロセッサ Tunnel Falls を発表した [67]。ま た,日立製作所 [157, 161] と理化学研究所 [165] が実用化に向けて研究を進めている。日本のムーンショット目標 6 で は,2040 年までに 10 万~100 万物理量子 bit による誤り訂正の実証を行い,2050 年までに 100 万以上の物理量子 bit からなる FTQC デバイスの実現を目指すとしている [163, p. 2]。 光量子 光子を用いることから室温や大気中での動作が可能で,装置の小型化が見込まれている [145]。2022 年 6 月に カナダの Xanadu 社が 216 量子 bit を搭載した Borealis を発表した [76]。2024 年 11 月には理研などが計算プラット フォームを開発し [159],2030 年までに光ファイバ型の連続量光量子コンピュータの実現を目指すとしている [145]。 量子アニーリングマシン D-Wave が 2010 年代から超伝導磁束量子ビット型アニーリングマシンを商用に発表してい る。2020 年 9 月にリリースされた D-Wave Advantage は約 5000 物理量子 bit を搭載していた [82]。2024 年に発表さ れた D-Wave Advantage 2 では量子ビット同士の結合数とノイズが改良されており,2024 年 6 月時点でのプロトタイ プは約 1200 物理量子 bit を搭載 [45],将来的に 7000 物理量子 bit 規模のアニーリングマシンを提供する予定であると している [44]。 日本国内では産業技術総合研究所が組み合わせ最適化問題に特化した超伝導磁束量子ビット型の 6 物理量子 bit 量子 アニーリングマシンを開発 [168]。また,NEC と東北大学が中心となり,超伝導パラメトロンを用いた 8 物理量子 bit の量子アニーリングマシンが開発されている [153]。 1.2 耐量子計算機暗号(PQC) の必要性について 本節では,量子コンピュータによる現代暗号への影響と PQC の必要性についてまとめる。2024 年 9 月現在,以下に 述べる素因数分解問題,離散対数問題を解く実験の他,検証用に構成した小規模な共通鍵暗号の鍵復元実験 [107],耐 量子計算機暗号の計算問題を解く実験 [114] が報告されている。調査の範囲では既存の量子コンピュータの性能が古典 コンピュータの暗号解読性能を超えたという報告,および実社会で用いられている大きさのパラメータを持つ暗号方式 *7 NISQ デバイスの性能を計る指標で,2018 年に IBM の研究者により提案された [43]。ベンチマーク用量子回路をデバイスで実行した測定 結果と理想的な実行結果を比較し,量子ノイズの影響により結果が理想から大きくずれないような最大の量子回路サイズ(量子ビット数 × 回 路深さ)を性能指標とする。 6 が解かれたという報告は無く,現代暗号に対する量子コンピュータの直接的な脅威は現時点では生じていないと考えら れる。 一方で,各機関が発表しているロードマップが予定通りに達成されると仮定すると,今後数十年で RSA,ECDSA を はじめとする素因数分解問題や離散対数問題の計算困難性に基づいた暗号の解読を可能とする規模の量子計算を実行可 能な量子コンピュータが開発される。暗号方式の提案から社会的な普及までは RSA 暗号・楕円曲線暗号で 20 年ほど の期間が必要とされたことから,PQC の場合でも同程度の期間が必要と想定されるため,長期間の移行スケジュール を策定し,準備を行う必要がある。 1.2.1 量子コンピュータの影響による現代暗号の危殆化予測 Shor による素因数分解問題と離散対数問題の量子多項式時間アルゴリズム [124] が発表されて以降,数千 bits の RSA 暗号を危殆化させる量子コンピュータの規模の見積もり [56, 58, 172, 57],実現時期の予測 [30, 18, 79, 90, 91] に関する研究が進められている。2025 年現在,直近の数年間で実用的な RSA 暗号,ECDSA 署名を攻撃可能な古典ま たは量子コンピュータが開発される可能性は極めて低いと考えられる。一方で,各国の標準機関は長期的には新たな暗 号方式に移行する必要があると考えプロジェクトを進めている。例えば米国 NIST は 2024 年 11 月に公表した NIST IR 8547 (initial public draft)[88, Sec. 4.1] において 2048,3072bits RSA と,224,256bits ECDSA,EdDSA を 2035 年までに段階的に廃止,利用禁止にするとしている。 暗号解読のモデルと数値化方法 Shor のアルゴリズムが量子回路を用いて表現されていること,量子回路型計算を行 う量子コンピュータの開発が他の方式よりも先行していることから,現代暗号の解読量子計算量の見積り [56, 58, 172, 57],および量子コンピュータ性能の将来予測を通じた共通鍵暗号,耐量子計算機暗号のパラメータ設定は量子回路モ デルを用いて数値化 [101, p. 18] がされている。量子計算量理論の観点からは 1.1.1 節冒頭に挙げた量子計算モデルが いずれも多項式倍の差を除いて等価であることが示されており,量子回路型計算で困難であると予想される計算問題が 断熱量子型計算(量子アニーリング)のような他の既知のモデルを用いた量子計算により危殆化する可能性は小さいと 考えられる。 なお,2048bits の合成数を公開鍵に用いた RSA 暗号(以下,RSA-2048 と表記)は古典で 112-bit 安全性を持つと されており [141],暗号に影響のある量子コンピュータの開発が仮に実現しなかった場合でも,古典コンピュータの性 能の伸びにより長期的には危殆化すると考えられている。このことから,将来的な鍵長の変更もしくは新たな暗号方式 への移行は量子コンピュータの大規模化とは独立した課題として準備を進める必要があることは長年議論されてきた [141, 21, 120] ことを指摘しておく。 危殆化時期の予測 RSA-2048 に対する量子コンピュータの影響とその危殆化時期に関して,様々な予測が存在する。 定量的な予測に基づいたものでは 2039 年以降 [30],2050 年前後 [18] と少なくとも 20 年程度は実現に時間がかかると されている。 セキュリティ・量子分野の専門家の予測では,Mariantoni が PQCrypto2014 の招待講演 [79] で調査に 5 年,開発 に 10 年程度で 15 年後(2029 年)としたもの,Mosca が Workshop on Cybersecurity in a Post-Quantum World (2015 年開催)で 2026 年から 2031 年 [90] と予測したものが有名である。近年では国際会議 RSA Conference 2023 内で開かれた暗号専門家によるパネルディスカッションの中で,Shamir が RSA,DH,ECDH に影響を及ぼす量子コ ンピュータがあと 30 年から 40 年で開発される可能性があると発言している [129]。 個人ではなく,多くの専門家へのアンケートを集計した結果が 2019 年から毎年 Global Risk Institute により Quantum Threat Timeline として発行されている。2023 年に行われたアンケートを基にした予測レポート [91] では 24 時間で RSA-2048 を解読可能な量子コンピュータが 15 年以内に出現する可能性が 33% から 54% 程度であると分 析している。この調査結果を引用するレポートは多く,例えば金融におけるサイバーリスクを取り扱う国際的なコン 7 ソーシアム Financial Services Information Sharing and Analysis Center の 2023 年報告書 [60] では危殆化時期をあ と 10 年から 30 年,米国の金融サービス標準を決定する ASC X9 の 2022 年度版報告書 [59] では CRQC の登場時期 について “There is no consensus on this issue” としながらも,危殆化時期をあと 5 年から 30 年としている。 日本国内の専門家へのアンケート調査では,2019 年に行われた文部科学省科学技術・学術政策研究所(NISTEP)に よる科学技術予測調査 [170, (II-4)p. 48, 52] がある。この中ではある程度コヒーレンス時間の長い数百物理量子 bit 規 模の量子回路コンピュータの登場を 2033 年頃と予測しているため,現代暗号に対して脅威となる量子コンピュータが 出現するのはそれ以降と解釈できる。ムーンショット目標 6 では 2050 年頃までに FTQC を実現するとしている [154] ことから,予測が実現されるのであれば現代暗号の量子コンピュータによる危殆化もその付近で起こると考えられる。 1.2.2 量子コンピュータによる素因数分解・離散対数問題計算の現状 将来的に RSA,ECDSA が危殆化すると考える専門家が多数存在する一方で,量子コンピュータ実機を用いた素因 数分解問題及び離散対数計算の実験は小規模なものに留まっている。本節では,量子コンピュータを用いた Shor のア ルゴリズムに関する実験,その他の素因数分解アルゴリズムに関する実験,および関連する理論的な成果についてまと める。 なお,量子回路型計算および量子アニーリングの古典計算機によるシミュレーションを用いた素因数分解の実験報告 が多く存在する [136, 172] が,本報告書では省略し量子的な現象を用いた計算機による報告のみを取り上げる。 Shor のアルゴリズムの実機実験 量子回路型コンピュータ実機を用いた実験は,CRYPTREC 外部調査報告書「Shor のアルゴリズム実装動向調査」[158] に挙げられているもの及びその後の [128, 126, 135] を含めて 15,21,35 の素因 数分解実験および離散対数問題 2z ≡ 1(mod 3)の離散対数の計算実験を行ったもののみしか知られていない。 [132, 133] をはじめとする Shor のアルゴリズムを用いた初期の報告は N = 15 の素因数分解回路の量子フーリエ変 換部分を除いた部分回路を実装する予備実験的なもの,位数や N の情報を用いて過度な簡略化を行ったものが多かっ た。2019 年には指数計算部分が簡略化されているものの,量子フーリエ変換部分と組み合わせた回路に対して IBM Quantum による N = 15, 21, 35 の実験報告 [83] が行われている。また,離散対数問題の実装実験報告 [18] が出版さ れるなど,実際に問題のインスタンスサイズには表れない量子回路規模の拡大は着実に続いていると考えられる。 Shor のアルゴリズムに関する理論の進展 1.1.2 節に紹介した量子コンピュータの性能進化がターゲットとなる数の 目に見える伸びに繋がらない理由が量子コンピュータ実機の性能と Shor のアルゴリズムの性質双方の観点から検証さ れ,明らかになりつつある。 Ichikawa らによる量子コンピュータ実機実験に関するサーベイ論文 [66] によると,2016 年から 2022 年の間に出版 された 748 件の実験報告で用いられた実際の量子 bit 数の中央値が 5 から 6 に増えたのみでありほぼ横ばいである。こ れは 2022 年に 433 物理量子 bit を搭載した IBM Quantum Osprey [39] が発表されていたこととは対照的である。量 子ノイズ,デコヒーレンス等の影響により,デバイスに搭載されている物理量子 bit 数と,実際に安定して動作し測定 可能な物理量子 bit 数の間には大きな差がある。 また,2024 年には Cai により Shor のアルゴリズムが量子ノイズに弱い事の理論的な証明 [31] が与えられている。 この現象は経験的には知られていたが [18, Sec. VI],より大きな規模で Shor のアルゴリズムを実行するためには量子 ビット数の増加だけではなく,量子ノイズの影響を下げる必要があることが理論的に示された形となる。 以上をまとめると,より大きな数の素因数分解を Shor のアルゴリズムを用いて行うためには十分にノイズが小さく, 安定して動作する量子ビットを搭載した量子コンピュータが必要であると考えられる。 また,Shor のアルゴリズムを用いて現在より大きな数の素因数分解を行うためには,これまでの実験のように入力 インスタンスに合わせ簡略化した量子回路ではなく,汎用の剰余加算・乗算回路による構成を行う必要がある。しかし ながら,N = 15 の素因数分解を行うために 4 ビットの汎用剰余加算・乗算回路を用いて Shor のアルゴリズムを構成 8 すると,ゲート数約 13,000,深さ約 10,500 となるという評価 [172] がある。これは, 現在の量子コンピュータでは実行 不可能な回路規模であり,簡略化されていない量子回路の実行は現在のところ困難であると考えられる。 一方,2023 年 8 月に Regev[115] により Shor のアルゴリズムよりも量子 bit 数を増やす代わりに量子ゲート数の少 ないアルゴリズムが提案された。多くのフォロー論文 [113, 48] が発表されているものの,量子コンピュータ実機を用 いた実験は確認されていない。 別の理論的な可能性として,量子アニーリングと一般的な断熱量子計算の中間にあるストカスティック断熱量子計 算*8 による Shor のアルゴリズムのシミュレーションがある。ストカスティック計算はハミルトニアンを基底に関して 非正定値の非対角実行列に制限した断熱型量子計算のクラス [14, Sect. VI] であり,計算量理論ではクラス StoqAQC と名付けられている。このクラスの能力を持つコンピュータは,Shor のアルゴリズムを効率的にシミュレート可能で あることが知られており [53, 54],ストカスティック断熱量子計算を実行可能な量子コンピュータが出現するかどうか が安全性に関わると考えられる。 量子アニーリングによる実験 Shor のアルゴリズム以外の素因数分解の計算手法のうち代表的なものとして,2 進数乗 算の筆算形式で式展開したものを,組み合わせ最適化問題(Quadratic Unconstrained Binary Optimization: QUBO) として定式化したものがある。QUBO とイジングモデルは自明な変換が知られていることから,量子アニーリングを 中心とした断熱量子計算を用いた実験が多数報告されている。 2000 年代後半の初期の実験 [106] ではハミルトニアンに合わせて有機化合物を合成し,最適化問題の変数に対応す る原子のスピンを核磁気共鳴(Nuclear Magnetic Resonance: NMR)を用いた分析により結果を取り出すという手法 で計算を行っていたためスケーリングが困難であったが,D-Wave の量子アニーリングマシンがオンライン上で比較的 手軽に利用可能になって以降は実験報告が相次いでいる [171, 136]。素因数分解のターゲットとなる数は着実に大型化 しており,現時点での最大は 2023 年に D-wave Advantage 4.1 を用いた 23 ビットの 8219999=32749×251 [47] であ り,最適化問題の表現方法,変数の省略など多くの技術を使い Pegasus トポロジーで接続された量子ビットの性能を引 き出している。 その他の素因数分解手法 Shor のアルゴリズム,量子アニーリング以外の手法でも様々な素因数分解の実験が行われ ている。アニーリングと同様の QUBO を Quantum Approximate Optimization Algorithm (QAOA)を用いて解 く実験 [110](143,291311 を分解),Variational Quantum Eigensolver (VQE)を用いて解く実験 [127](251 を分 解),Digitized adiabatic quantum computation を用いて解く実験 [62](2479 を分解)の報告がある。これらの実験 はいずれも IBM Quantum を用いて行われた。 量子回路型コンピュータ上で QAOA を用いた素因数分解問題へのアプローチとして,Schnorr アルゴリズム [119] の部分的な量子化の研究が存在する。Schnorr アルゴリズムは数体篩法の関係探索を係数制限付きの近似最近ベクトル 問題に変換して行うが,[138] ではこれをさらに最適化問題に落とし込み,QAOA を 10 量子 bit 回路上で実行するこ とで 48bits の数の素因数分解実験結果を報告している。 また,中性原子による実装の一種として,リュードベリ原子によるアナログ量子シミュレータを用いてグラフの最 大独立集合問題を解くための枠組みが整理されており,これを用いた素因数分解の実験も行われている。[105] では 6,15,35 の素因数分解のインスタンスを SAT を経由して最大独立集合問題に変換して実験を行っている。 1.3 PQC の研究及び標準化等に関する動向 現在 PQC として扱われている暗号のほとんどは 1994 年に Shor のアルゴリズムが発表される以前から効率性お よび理論的側面から研究が行われており [81, 75, 80],2000 年代以降に耐量子計算機性が注目されたものである。な *8 ストカスティック(stoquastic)は stochastic と quantum の合成語で,2006 年に Bravyi らの論文 [28] で導入された単語される。 9 お,Post-Quantum Cryptography の用語自体は 2004 年の論文 Post-Quantum Signatures[29] が初出であり,p.1 に Bernstein の造語であることが明記されている。 現在,PQC に関する研究成果は暗号の国際会議で主に発表されている。特に Crypto,Eurocrypt,Asiacrypt 等の 暗号全般を扱う会議で取り扱われることも多いが,その他 PQC を専門に扱う国際会議として PQCrypto が 2006 年か ら開催され,2024 年までに 15 回が開催されている。 以下,各国における標準化の動向を述べる。米国の国立標準技術研究所(NIST)は PQC の標準化活動を初期から大 規模に行っており世界への影響力が大きいため,まず米国の状況について述べてその後に各国の状況について述べる。 1.3.1 米国 NIST における標準化の動向 2015 年 8 月国家安全保障局(NSA)が PQC への移行計画 [7] を発表したことを受け,標準化活動が NIST により開 始された。2016 年 2 月には福岡で開催された国際会議 PQCrypto 2016 において NIST の Moody により NIST PQC 標準化プロジェクトに関する講演 [86] が行われ,選定基準に関する意見募集を経て 12 月に Call for Proposals [101] が正式公開された。 2017 年 11 月 30 日の公募締め切りまでに世界中から耐量子計算機暗号の候補 82 方式が提案され,公募条件を満た した 69 方式が標準化プロジェクト第 1 ラウンド候補として公開されたが,5 方式は公開後に取り下げられている。締 め切り直後からメーリングリスト pqc-forum [109] 上では世界中の暗号研究者,暗号方式の提案者らを交えて理論的 な脆弱性から実装リファレンスコードの軽微なバグの指摘に至るまで多彩な議論が行われた。このときの議論は [12, 108] 等にまとめられている。 2019 年 1 月 30 日には,第 2 ラウンドへ進む 26 方式が発表され,その後 2020 年 7 月 22 日には,第 3 ラウンド へ進む Finalists の 7 方式と Alternate Candidates の 8 方式が発表された [89]。両者の違いは Finalists が第 3 ラウン ドの終了時に標準化方式となるかどうかが判断されるもの,Alternate Candidates が標準化方式の候補ではあるもの の第 3 ラウンドの終了時点では判断が行われない可能性が高いものとされていた。しかし実際には Finalists であった Classic McEliece が第 4 ラウンド候補として判断を保留された一方で,Alternate Candidates であった SPHINCS+ がそのまま標準化方式として選ばれている。 2022 年 7 月 5 日に NIST から標準化方式として公開鍵暗号 1 方式と署名 3 方式が発表された [13]。これら 4 方式の うち,格子に基づく公開鍵暗号方式 CRYSTALS-Kyber は FIPS 203 (ML-KEM)[98] として,格子に基づく署名方式 CRYSTALS-Dilithium は FIPS 204 (ML-DSA)[97] として,ハッシュ関数に基づく署名方式 SPHINCS+ は FIPS 205 (SLH-DSA)[100] として 2024 年 8 月にそれぞれ標準化されている。また,格子に基づく署名方式 FALCON に ついてもアルゴリズムの微修正を経た後に FIPS 206 (FN-DSA)として標準化される予定である [25]。 標準化の 4 方式が決定されると同時に,第 3 ラウンド候補の中から第 4 ラウンドへと進む公開鍵暗号方式の 4 方式 が発表され,さらに追加の電子署名方式が再公募されることが周知された [118]。第 4 ラウンドに進んだ 4 方式のう ち,BIKE,Classic McEliece,HQC の 3 方式が符号に基づく公開鍵暗号方式,SIKE が同種写像に基づく公開鍵暗 号方式であった。その後,2022 年 8 月に SIKE に対する古典多項式時間による鍵復元攻撃が発表され [32],致命的 であることが確認されたことから提案チームにより候補から取り下げられた。2024 年 4 月に開催された第 5 回 PQC Standardization Conference における Moody の講演によると,NIST は 2024 年末までに残った第 4 ラウンド候補の 中から数件を標準化に選ぶとしている [85, p. 12] *9 。 署名方式の追加公募 第 4 ラウンドの発表と並行して,NIST は 2022 年 9 月から正式に追加の NIST PQC 標準化 プロジェクト追加署名(Additional Digital Signature Schemes)の募集を開始した。締切の 2023 年 6 月 1 日までに 50 方式の応募があり,翌 7 月に公募条件を満たした 40 方式が発表された。公募の事前情報として,2022 年 7 月に *9 2025 年 3 月に HQC が標準化方式として選ばれたことが発表されている [121]。 10 pqc-forum に投稿された文書 [84] では NIST が署名長と検証時間の小さい方式を求めているとし,一例として多変数 多項式に基づく署名方式の一種である UOV 方式が挙げられている。また,Module 格子のような構造化格子に基づく 署名方式は既に CRYSTALS-Dilithium と FALCON が標準化に決まっていることから,構造化格子に基づく手法以 外が望ましいとしており,後半の内容は募集要項にも明記された [99, p. 2]。結果として格子に基づく署名は 7 方式, UOV 型の多変数多項式に基づく署名では 7 方式の応募があった。 2022 年の署名方式公募後,NIST は選考の第 1 ラウンド候補を分類ごとに発表したが,その中に 2016 年の標準化に は存在しなかったカテゴリ MPC-in-the-Head が新たに登場している。これはマルチパーティ計算から構成したゼロ知 識証明プロトコルに Fiat-Shamir 変換を適用することで署名方式を得る構成フレームワークであり,格子,符号のよう に安全性の根拠となる計算問題の種類を表すものではない。MPC-in-the-Head に分類されているそれぞれの方式の安 全性は実際には符号問題,多変数方程式問題,共通鍵暗号方式の平文復元問題の困難性などに帰着されている。 2024 年 10 月には第 2 ラウンドの候補となる 14 方式 [117] が発表された。格子に基づく署名方式は格子同型性判定 問題を安全性の根拠とした HAWK の 1 方式,多変数多項式に基づく UOV 型署名が 4 方式,MPC-in-the-Head 型の 構成を行った署名が 5 方式であった。選定に関わるレポートは [11] で公開されている。 PQC への移行 2015 年に Mosca の提案した暗号の危殆化に関わる不等式 [90] では, X(情報を保護する期間)+Y (システム移行期間)と Z(CRQC 開発までの期間)の大小関係によりシステム移行の準備期間を設定する必要がある としている。一方で,暗号化データを保存し,将来的にコンピュータの性能が上がってから解読するハーベスト攻撃 (2.2.2 節も参照)を想定すると,CRQC 開発までの年数によらず,現在の暗号利用にはリスクがあるとも考えられてい る(例えば [88, Sec. 1] を参照。 )以上の背景のもと,2022 年 5 月公表された国家安全保障覚書 NSM-10[92] では 2035 年を目処に暗号システムで使用する暗号を PQC に移行することを目標としている。同様に,2022 年 9 月に発表され た商用国家安全保障アルゴリズムのリスト 2.0[6] では 2035 年までにシステムに耐量子計算機性をもたせることを目標 としたタイムラインを掲載している。 現在使われている暗号から PQC への移行を推進するため,NIST 内の NCCoE(National Cybersecurity Center of Excellence)を中心にコンソーシアムが設立された [50]。組織における暗号のユースケース,相互運用性やリスク評価 を含めた移行計画の策定に関する包括的な技術文書が NIST SP 1800-38A から 38C として発行される予定であり,現 在は Initial Preliminary Draft[94] が公開されている。 安全性レベル NIST PQC 標準化プロジェクトにおいて,暗号方式の安全性はレベル 1 から 5 で定義されており,提案 者は応募時にパラメータと達成される安全性レベルを示す必要があった。レベル 1, 3, 5 はそれぞれ AES128, AES192, AES256 などの 128, 192, 256bits の秘密鍵を持つブロック暗号の鍵復元の困難性と同等かそれ以上の計算量であり, レベル 2 と 4 はそれぞれ SHA256/SHA3-256 と SHA384/SHA3-384 などの 256bits と 384bits の暗号学的ハッシュ 関数の衝突探索の困難性と同等かそれ以上の古典もしくは量子計算量とされている。レベル 1 から 5 の具体的な計算 量は表 1.1 で与えられる [99]。古典コンピュータによる攻撃者に対しては古典論理回路のゲート数が,量子コンピュー タを利用可能な攻撃者に対しては量子回路のゲート数と最大深さの積が与えられている。計算量評価において,公開鍵 暗号方式では,IND-CCA2 安全性を考える際には 264 個以下の選択暗号文を復号オラクルに古典的にクエリできると し,署名方式では,EUF-CMA 安全性を考える際には 264 個以下のメッセージを署名オラクルに古典的にクエリでき るとしている。 また,レベル 1,3,5 の量子回路計算量で 2157 , 2221 , 2285 とされている部分は 2016 年の Call for proposals[101, 4.A.5 節] では 2170 , 2233 , 2298 であった。つまり,2016 年の PQC 候補でレベル 1,3,5 とされているものは 2022 年 の定義でもレベル 1,3,5 の基準を満たすことになる。この更新は AES を解読する量子回路の改良により,量子計算量 が改善されたことによる。 NIST 標準化に伴い,FIPS 203,204,205 の各文書ではセキュリティカテゴリの定義に関して NIST SP800-57 Part 1[21] を参照しているが,2024 年 9 月時点で最新の Rev. 5 において対応する定義が存在しないことが指摘されており, 11 NIST の担当者から次期リビジョンでの修正が予告されている [87]。 表 1.1: 2022 年に公表された NIST PQC 標準化プロジェクト追加署名の Call for proposals [101] における安全性レ ベルと計算量の対応表。各レベルは古典,量子のどちらか一方の基準を満たすものとして定義されている。 レベル 量子回路の(最大深さ)×(ゲート数) 古典論理ゲート数 レベル 1 2157 2143 レベル 2 – 2146 レベル 3 2221 2207 レベル 4 – 2210 レベル 5 2285 2272 1.3.2 米国以外での動向 米国以外でも世界各国の機関が調査活動を行い,調査レポートの出版 [20, 93],各国における PQC 標準方式または 推奨暗号方式の選定 [6, 34, 17, 120, 33, 35, 102, 131] を進めている。国際的な機関では ISO/IEC[68],IETF[63] 等 で移行,標準化の議論が進められている。 各国の政府機関から PQC の標準暗号リスト,推奨暗号リストが公表されている。代表的なものを表 1.2 にまとめ る。多くの国が NIST PQC 標準化プロジェクトに提案された暗号方式を採用しているが,FrodoKEM のように NIST PQC 標準化プロジェクトの第 3 ラウンド以降の選考に漏れた方式,Classic McEliece のように第 4 ラウンド選考中の 状態で選ばれた例も存在する。また,多くの機関が NIST 標準方式の単独利用ではなく古典的安全性がよく知られてい る RSA や ECDSA とのハイブリッドを推奨していること,レベル 3 以上のパラメータ利用を推奨していることも特徴 的である。国家による標準暗号以外でも Streamlined NTRU Prime[22] のように OpenSSH の実装 [104] を通じて実 用化されている方式も存在する。 韓国では量子耐性暗号研究団の主催する KpqC プロジェクト [178] が耐量子計算機性を持つ公開鍵暗号方式と署名 方式の公募を 2022 年に開始している。2022 年 10 月の締切までに公開鍵暗号方式・鍵共有が 8 方式,署名方式が 9 方 式応募された。2022 年 11 月に第 1 ラウンドを開始,2023 年 12 月に第 2 ラウンドの選考が開始され,2025 年 1 月に 共通鍵暗号に基づく MPC-in-the-Head パラダイムの署名方式 AIMer,および格子に基づく公開鍵暗号方式 NTRU+, 署名方式 HAETAE,鍵交換方式 SMAUG-T の 4 方式が最終方式として選ばれたことがアナウンスされた。 中国では中国暗号学会(CACR)が中心となり PQC の公募を行っている [143]。2018 年 6 月の募集要項に従い 2019 年 2 月の締切までに公開鍵暗号 38 方式と共通鍵暗号 22 方式が応募されている。2019 年 9 月の第 2 ラウンドの時点 で公開鍵暗号 14 方式と共通鍵暗号 10 方式に絞られ,最終的には 2020 年 1 月に一等,二等,三等としてランク付け が発表された [144]。一等として公開鍵暗号方式 LAC.PKE,Aigis-enc,署名方式 Aigis-sig,共通鍵暗号方式 uBlock, Ballet が挙げられている。 日本では CRYPTREC の暗号技術調査ワーキンググループにおいて 2014 年度に PQC の代表的な候補である格子 に基づく暗号技術について調査を行い,報告書「格子問題等の困難性に関する調査」を公開している [1]。さらに 2017 年度から 2018 年度にかけて,PQC の代表的な候補である 4 種類の分類(格子に基づく暗号技術,符号に基づく暗号 技術,多変数多項式に基づく暗号技術,同種写像に基づく暗号技術)について調査し,報告書にまとめた [2]。また, 2021 年度から 2022 年度にかけて,ハッシュ関数に基づく署名技術を加えた 5 種類の技術について調査を行い,報告書 [3] およびガイドライン [4] としてまとめている。 12 表 1.2: 世界各国の標準暗号,推奨暗号リストの状況。表中の勧告,推奨,許容等はそれぞれのレポートからの翻訳で あるため,厳密に同じ意味ではない。許容されているバージョン,安全性レベルなど,詳細は引用先のレポートを参照 のこと。 NIST PQC CNSA 2.0 NCSC ANSSI BSI NCSC NÚKIB TRAFICOM 方式の名称 (米) (米) (英) (仏) (独) (蘭) (チェコ)(フィンランド) [6] [34] [17] [120] [33, 35] [102] [131] ML-KEM 標準化 勧告 a 推奨 c 許容 d 推奨 ef 推奨 推奨 h 暗号要件 k (CRYSTALS-Kyber) (FIPS 203 [98]) FrodoKEM Round 3 – – 許容 d 推奨 e 許容 許容 i – e Classic McEliece Round 4 – – – 推奨 許容 許容 i – ML-DSA 標準化 勧告 a 推奨 c 許容 d 推奨 ef 推奨/許容 g 推奨 h 暗号要件 k (CRYSTALS-Dilithium) (FIPS 204 [97]) FN-DSA 標準化中 – – 許容 d – 推奨/許容 g 推奨 i – (FALCON) XMSS/LMS 標準化 勧告 b 推奨 許容 d 推奨 推奨/許容 g 推奨 j – (NIST SP 800-208) SLH-DSA 標準化 – 推奨 c 許容 d 推奨 ef 推奨/許容 g 推奨 i 暗号要件 k SPHINCS+ (FIPS 205 [100]) 注釈一覧 a 汎用的な耐量子アルゴリズムとしてレベル 5 パラメータの使用を勧告 b ソフトウェア・ファームウェアに対する署名のための使用を勧告 c 標準化の最終文書を元に堅牢な実装がされたものの利用を推奨 d メインストリームの PQC として適切だが,可能な限りパラメータを大きく取ること e 古典的な安全性が確保された方式とのハイブリッドのみを推奨 f NIST 標準化の安全性レベル 3,5 を推奨パラメータとする意向 g 緊急性のシナリオによって推奨と許容の方式が異なる h 単独利用は安全性レベル 5 のみ,他は古典の推奨暗号とのハイブリッド利用とする i 古典の推奨暗号とのハイブリッド利用とする j ファームウェア・ソフトウェアの保護目的での単独利用を推奨 k 古典の推奨暗号とのハイブリッド利用を推奨 1.4 本調査で対象とした PQC の種類 本調査報告書では PQC の調査を格子に基づく暗号技術,符号に基づく暗号技術,多変数多項式に基づく暗号技術, 同種写像に基づく暗号技術,ハッシュ関数に基づく署名技術の 5 分類で行った。この分類は,安全性の根拠となる数学 的な計算問題の種類に基づいて行われている。 例えば,教科書的な RSA 暗号では 2 つの異なる大きな素数 p, q と指数 d を秘密鍵,積 N = pq と指数 e を公開鍵と している。鍵復元の困難性と素因数分解問題の困難性は多項式時間等価であるため [116, 41],RSA 暗号の鍵復元の安 全性は素因数分解問題の困難性に基づくものと考えることができ,素因数分解に基づく暗号に分類できる。同様に,楕 円曲線暗号の場合も例えば楕円曲線上の ElGamal 暗号のように安全性が楕円曲線上の離散対数問題の困難性に基づく ため,離散対数問題に基づく暗号に分類できる。 本ガイドライン・報告書で扱う代表的な 5 種類の PQC (格子に基づく暗号技術,符号に基づく暗号技術,多変数多 項式に基づく暗号技術, 同種写像に基づく暗号技術,ハッシュ関数に基づく署名技術) も RSA 暗号等と同様に,暗号 の安全性がそれぞれ格子問題の困難性,符号復号問題の困難性,多変数代数方程式の求解困難性,同種写像上の計算問 13 題の困難性,ハッシュ関数の衝突発見困難性に基づいている。そして,これらの問題を量子コンピュータを利用して効 率よく解くアルゴリズムはまだ発見されていないことから,上に示した暗号技術は PQC であると期待されている。暗 号方式と数学的な計算問題の具体的な関係は各章の第 1 節に記載されている。 これらの 5 種類を選んだ理由は主に研究期間の長さ,研究コミュニティの大きさによる。より細かい歴史的な背景は 各章の第 4 節に記載されている。 格子に基づく暗号技術は 1997 年の Ajtai と Dwork による論文 [10] から 25 年以上の歴史を持ち,解読技術であ る格子アルゴリズムに関しても 50 年の歴史を持つ [46, 72, 77]。符号に基づく暗号技術は McEliece による 1978 年 の論文 [81] から 40 年以上の歴史を持ち,解読技術は通信における符号の復号技術であり符号理論として 70 年以上 研究が行われている。多変数多項式に基づく暗号技術は Ong と Schnorr による 1983 年の論文 [103] を源流*10 とし, 1988 年の Matsumoto-Imai 暗号 [80] を経て 40 年以上の研究が続けられている。同種写像の計算問題に基づく暗号技 術も Couveignes による 1997 年の提案 [42] から 25 年以上研究が続けられている。ハッシュ関数に基づく署名方式は Lamport による 1979 年の論文 [75] から 40 年以上の研究が行われている。 1.5 耐量子計算機暗号調査報告書執筆者リスト 主査 國廣 昇 筑波大学 委員 青木 和麻呂 文教大学 委員 伊藤 忠彦 セコム株式会社 委員 下山 武司 国立情報学研究所 委員 高木 剛 東京大学 委員 高島 克幸 早稲田大学 委員 成定 真太郎 KDDI 総合研究所 委員 廣瀬 勝一 福井大学 委員 安田 貴徳 岡山理科大学 委員 安田 雅哉 立教大学 事務局 篠原 直行 情報通信研究機構 事務局 五十部 孝典 情報通信研究機構 事務局 伊藤 竜馬 情報通信研究機構 事務局 大久保 美也子 情報通信研究機構 事務局 大東 俊博 情報通信研究機構 事務局 小川 一人 情報通信研究機構 事務局 金森 祥子 情報通信研究機構 事務局 黒川 貴司 情報通信研究機構 事務局 高安 敦 情報通信研究機構 事務局 横山 和弘 情報通信研究機構 事務局 吉田 真紀 情報通信研究機構 事務局 青野 良範 情報通信研究機構 *10 ただし Ong と Schnorr による方式の安全性は素因数分解問題に基づくため耐量子計算機性を持たないことに注意。 14 第 1 章の参照文献 [1] CRYPTREC 暗号技術調査 WG (暗号解析評価). 格子問題等の困難性に関する調査. CRYPTREC EX-2404- 2014, https://www.cryptrec.go.jp/exreport/cryptrec-ex-2404-2014.pdf. 2015-03. [2] CRYPTREC 暗号技術調査 WG (暗号解析評価). 耐量子計算機暗号の研究動向調査報告書. CRYPTREC TR-2001-2018, https://www.cryptrec.go.jp/report/cryptrec-tr-2001-2018.pdf. 2019-04. [3] CRYPTREC 暗号技術調査 WG (耐量子計算機暗号). CRYPTREC 耐量子計算機暗号の研究動向調査報告 書. CRYPTREC TR-2001-2022, https://www.cryptrec.go.jp/report/cryptrec-tr-2001-2022.pdf. 2023-03. [4] CRYPTREC 暗号技術調査 WG (耐量子計算機暗号). CRYPTREC 暗号技術ガイドライン (耐量子計算機暗 号). CRYPTREC GL-2004-2022, https://www.cryptrec.go.jp/report/cryptrec-gl-2004-2022.pdf. 2023-03. [5] CRYPTREC 暗号技術調査 WG (高機能暗号). CRYPTREC 暗号技術ガイドライン (高機能暗号). CRYP- TREC GL-2005-2022, https://www.cryptrec.go.jp/report/cryptrec-gl-2005-2022.pdf. 2023-03. [6] National Security Agency. Announcing the Commercial National Security Algorithm Suite 2.0. https: //media.defense.gov/2022/Sep/07/2003071834/-1/-1/0/CSA_CNSA_2.0_ALGORITHMS_.PDF. 2022-09. (2024-12-06 閲覧). [7] National Security Agency. Cryptography Today. https://web.archive.org/web/20150815072948/ https : / / www . nsa . gov / ia / programs / suiteb _ cryptography / index . shtml. 2015-08. (2024-12-05 Internet Archive 版を確認). [8] National Security Agency. Frequently Asked Questions, Quantum Computing and Post-Quantum Cryp- tography. https://media.defense.gov/2021/Aug/04/2002821837/-1/-1/1/Quantum_FAQs_20210804. PDF. 2021-08. (2024-12-01 閲覧). [9] D. Aharonov, W. van Dam, J. Kempe, Z. Landau, S. Lloyd, O. Regev. Adiabatic Quantum Computation is Equivalent to Standard Quantum Computation. SIAM J. Comput. Vol. 37, Num. 1 (2007), pp. 166–194. [10] M. Ajtai, Cynthia Dwork. A Public-Key Cryptosystem with Worst-Case/Average-Case Equivalence. STOC. ACM, 1997, pp. 284–293. [11] G. Alagic et al. Status Report on the First Round of the Additional Digital Signature Schemes for the NIST Post-Quantum Cryptography Standardization Process. NIST IR 8528, https://nvlpubs.nist. gov/nistpubs/ir/2024/NIST.IR.8528.pdf. 2024-10. [12] G. Alagic et al. Status Report on the First Round of the NIST Post-Quantum Cryptography Standard- ization Process. NIST IR 8204, https://nvlpubs.nist.gov/nistpubs/ir/2019/NIST.IR.8240.pdf. 2019-01. 15 [13] G. Alagic et al. Status Report on the Third Round of the NIST Post-Quantum Cryptography Standardiza- tion Process. NIST IR 8413, https://nvlpubs.nist.gov/nistpubs/ir/2022/NIST.IR.8413-upd1.pdf. 2022-07. [14] T. Albash, D. A. Lidar. Adiabatic quantum computation. Rev. Mod. Phys. Vol. 90, Iss. 1 (2018), p. 015002. [15] Amazon Braket 量子コンピュータ. https://aws.amazon.com/jp/braket/quantum-computers/. [16] M. V. Anand, E. E. Targhi, G. N. Tabia, D. Unruh. Post-Quantum Security of the CBC, CFB, OFB, CTR, and XTS Modes of Operation. PQCrypto. Vol. 9606. Lecture Notes in Computer Science. Springer, 2016, pp. 44–63. [17] ANSSI. ANSSI views on the Post-Quantum Cryptography transition (2023 follow up). https://cyber. gouv . fr / sites / default / files / document / follow _ up _ position _ paper _ on _ post _ quantum _ cryptography.pdf. 2023-12. (2024-12-06 閲覧). [18] Y. Aono, S. Liu, T. Tanaka, S. Uno, R. Van Meter, N. Shinohara, R. Nojima. The Present and Fu- ture of Discrete Logarithm Problems on Noisy Quantum Computers. IEEE Transactions on Quantum Engineering. Vol. 3 (2022), pp. 1–21. [19] B. Apolloni, N. Cesa-Bianchi, D. De Falco. A numerical implementation of “quantum annealing”. Pro- ceedings of the Ascona-Locarno conference. 1988, pp. 97–111. [20] GSM Association. Post Quantum Cryptography – Guidelines for Telecom Use Cases. https : / / www . gsma.com/newsroom/wp- content/uploads/PQ.03- Post- Quantum- Cryptography- Guidelines- for- Telecom-Use-v1.0.pdf. 2024-02. (2024-12-06 閲覧). [21] E. Barker. Recommendation for Key Management: Part 1 – General. NIST SP 800-57 Part 1 Rev. 5, https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf. 2020-05. [22] D. J. Bernstein et al. NTRU Prime. https://ntruprime.cr.yp.to/. (2024-12-06 閲覧). [23] D. Bluvstein et al. Logical quantum processor based on reconfigurable atom arrays. Nature. Vol. 626, Num. 7997 (2023), pp. 58–65. [24] D. Boneh, M. Zhandry. Secure Signatures and Chosen Ciphertext Security in a Quantum Computing World. CRYPTO (2). Vol. 8043. Lecture Notes in Computer Science. Springer, 2013, pp. 361–379. [25] C. Boutin. NIST Releases First 3 Finalized Post-Quantum Encryption Standards. https://www.nist. gov/news-events/news/2024/08/nist-releases-first-3-finalized-post-quantum-encryption- standards. 2023-08. (2024-12-06 閲覧). [26] G. Brassard. Searching a Quantum Phone Book. Science. Vol. 275, Num. 5300 (1997), pp. 627–628. [27] G. Brassard, P. Høyer and A. Tapp. Quantum Cryptanalysis of Hash and Claw-Free Functions. LATIN. Vol. 1380. Lecture Notes in Computer Science. Springer, 1998, pp. 163–169. [28] S. Bravyi, D. P. DiVincenzo, R. Oliveira, B. M. Terhal. The complexity of stoquastic local Hamiltonian problems. Quantum Inf. Comput. Vol. 8, Num. 5 (2008), pp. 361–385. [29] J. Buchmann et al. Post-Quantum Signatures. (2004). https://eprint.iacr.org/2004/297. [30] J. Sevilla and C. J. Riedel. Forecasting timelines of quantum computing. (2020). arXiv: 2009.05045. [31] J.-Y. Cai. Shor’s algorithm does not factor large integers in the presence of noise. Science China Infor- mation Sciences. Vol. 67, Num. 7 (2024). [32] W. Castryck, T. Decru. An Efficient Key Recovery Attack on SIDH. EUROCRYPT (5). Vol. 14008. Lecture Notes in Computer Science. Springer, 2023, pp. 423–447. 16 [33] National Cyber Security Centre. Guidelines for quantum-safe transport-layer encryption. https://www. ncsc.nl/documenten/publicaties/2022/juli/guidelines-for-quantum-safe-transport-layer- encryption/guidelines-for-quantum-safe-transport-layer-encryption. 2022-07. (2024-12-06 閲 覧). [34] National Cyber Security Centre. Next steps in preparing for post-quantum cryptography. https://www. ncsc .gov . uk / pdfs / whitepaper / next - steps - preparing - for - post - quantum - cryptography . pdf. 2024-08. (2024-12-06 閲覧). [35] National Cyber Security Centre. The PQC Migration Handbook, Guidelines for migrating to post-quantum cryptography (Version 2). https://publications.tno.nl/publication/34641918/oicFLj/attema- 2023-pqc.pdf. 2023-12. (2024-12-06 閲覧). [36] P. Chapman. Introducing the World’s Most Powerful Quantum Computer. https://ionq.com/posts/ october-01-2020-introducing-most-powerful-quantum-computer. 2020-10. (2024-12-01 閲覧). [37] C. Chevalier, E. Ebrahimi, QH Vu. On Security Notions for Encryption in a Quantum World. IN- DOCRYPT. Vol. 13774. Lecture Notes in Computer Science. Springer, 2022, pp. 592–613. [38] Google Quantum AI and Collaborators. Quantum error correction below the surface code threshold. Nature. Vol. 616, Num. 7955 (2024). [39] H. Collins, C. Nay. IBM Unveils 400 Qubit-Plus Quantum Processor and Next-Generation IBM Quantum System Two. https://newsroom.ibm.com/2022- 11- 09- IBM- Unveils- 400- Qubit- Plus- Quantum- Processor-and-Next-Generation-IBM-Quantum-System-Two. 2022-11. (2024-12-06 閲覧). [40] Atom Computing. Quantum startup Atom Computing first to exceed 1,000 qubits. https : / / atom - computing . com / quantum - startup - atom - computing - first - to - exceed - 1000 - qubits/. 2023-10. (2024-12-01 閲覧). [41] J.-S. Coron, A. May. Deterministic Polynomial-Time Equivalence of Computing the RSA Secret Key and Factoring. J. Cryptol. Vol. 20, Num. 1 (2007), pp. 39–50. [42] J.-M. Couveignes. Hard Homogeneous Spaces. Cryptology ePrint Archive, Paper 2006/291. 2006. https: //eprint.iacr.org/2006/291. [43] A. W. Cross, L. S. Bishop, S. Sheldon, P. D. Nation, J. M. Gambetta. Validating quantum computers using randomized model circuits. Phys. Rev. A. Vol. 100, Iss. 3 (2019), p. 032328. [44] D-Wave. Ahead of the Game: D-Wave Delivers Prototype of Next-Generation Advantage2 Annealing Quantum Computer. https://www.dwavesys.com/company/newsroom/press- release/ahead- of- the- game- d- wave- delivers- prototype- of- next- generation- advantage2- annealing- quantum- computer/. 2022-06. (2024-12-01 閲覧). [45] D-Wave. The Most Connected and Powerful Quantum Computer Built for Business. https : / / www . dwavesys.com/solutions-and-products/systems/. (2024-12-01 閲覧). [46] U. Dieter. How to calculate shortest vectors in a lattice. Mathematics of Computation. Vol. 29 (1975), pp. 827–833. [47] J. Ding, G. Spallitta, R. Sebastiani. Experimenting with D-Wave quantum annealers on prime factorization problems. Frontiers Comput. Sci. Vol. 6 (2024). [48] M. Ekerå, J. Gärtner. Extending Regev’s Factoring Algorithm to Compute Discrete Logarithms. PQCrypto (2). Vol. 14772. Lecture Notes in Computer Science. Springer, 2024, pp. 211–242. 17 [49] ETSI. Quantum-Safe Cryptography (QSC); Limits to quantum computing applied to symmetric key sizes. https://www.etsi.org/deliver/etsi_gr/QSC/001_099/006/01.01.01_60/gr_QSC006v010101p.pdf. 2017-02. (2024-12-01 閲覧). [50] National Cybersecurity Center of Excellence. Migration to Post-Quantum Cryptography. https://www. nccoe . nist . gov / crypto - agility - considerations - migrating - post - quantum - cryptographic - algorithms. [51] European Quantum Flagship. Strategic Research and Industry Agenda. https://qt.eu/media/pdf/ Strategic-Reseach-and-Industry-Agenda-2030.pdf. 2024-02. [52] A. Frank et al. Quantum supremacy using a programmable superconducting processor. Nature. Vol. 574, Num. 7779 (2019), pp. 505–510. [53] K. Fujii. Quantum speedup in stoquastic adiabatic quantum computation. (2018). arXiv: 1803.09954. [54] K. Fujii. Quantum speedup in stoquastic adiabatic quantum computation. 2019-01. QIP 2019 Poster session https://jila.colorado.edu/qip2019/qip2019_posters_monday.pdf. [55] J. Gambetta. The hardware and software for the era of quantum utility is here. https://jila.colorado. edu/qip2019/qip2019_posters_monday.pdf. 2023-12. (2024-12-01 閲覧). [56] C. Gidney, M. Ekerå. How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits. Quantum. Vol. 5 (2021), p. 433. [57] É. Gouzien, D. Ruiz, F.-M. Le Régent, J. Guillaud, N. Sangouard. Performance Analysis of a Repetition Cat Code Architecture: Computing 256-bit Elliptic Curve Logarithm in 9 Hours with 126 133 Cat Qubits. Phys. Rev. Lett. Vol. 131, Iss. 4 (2023), p. 040602. [58] É. Gouzien, N. Sangouard. Factoring 2048-bit RSA Integers in 177 Days with 13 436 Qubits and a Multimode Memory. Phys. Rev. Lett. Vol. 127, Iss. 14 (2021), p. 140503. [59] ASC X9 Quantum Computing Risk Study Group. Quantum Computing Risks to the Financial Services Industry. https://x9.org/download-qc-ir/. 2022-11. (2024-12-05 閲覧). [60] FS-ISAC’s post-quantum cryptography working group. Preparing for a post-quantum world by man- aging cryptographic risk. https : / / www . fsisac . com / hubfs / Knowledge / PQC / Preparing / ForAPostQuantumWorldByManagingCryptographicRisk.pdf?hsLang=en. 2023-03. (2024-12-05 閲覧). [61] L. K. Grover. A fast quantum mechanical algorithm for database search. STOC. ACM, 1996, pp. 212–219. [62] N. N. Hegade, K. Paul, F. Albarrán-Arriagada, X. Chen, E. Solano. Digitized adiabatic quantum factor- ization. Phys. Rev. A. Vol. 104, Iss. 5 (2021), p. L050403. [63] P. E. Hoffman, S. Celi. Post-Quantum Use In Protocols (pquip). https://datatracker.ietf.org/wg/ pquip/about/. (2024-12-06 閲覧). [64] IBM Quantum Platform. https://quantum.ibm.com/. [65] IBM、次世代量子プロセッサーおよび IBM Quantum System Two を発表するとともに、 実用的な量子コン ピューティングの時代の前進に向けロードマップを拡張. https://jp.newsroom.ibm.com/2023- 12- 05- IBM-Debuts-Next-Generation-Quantum-Processor-IBM-Quantum-System-Two,-Extends-Roadmap- to-Advance-Era-of-Quantum-Utility. 2023-12. (2024-12-01 閲覧). [66] T. Ichikawa et al. Current numbers of qubits and their uses. Nature Reviews Physics. Vol. 6, Num. 6 (2024), pp. 345–347. 18 [67] Intel’s New Chip to Advance Silicon Spin Qubit Research for Quantum Computing. https://www.intel. com/content/www/us/en/newsroom/news/quantum- computing- chip- to- advance- research.html. 2023-06. (2024-12-01 閲覧). [68] ISO. PQCRYPTO Post-quantum cryptography for long-term security. https : / / www . iso . org / organization/5984715.html. (2024-12-06 閲覧). [69] P. John. Quantum Computing in the NISQ era and beyond. Quantum. Vol. 2 (2018), p. 79. [70] S. P. Jordan. Quantum Computation Beyond the Circuit Model. 2008. arXiv: 0809.2307. [71] T. Jörg, F. Krzakala, G. Semerjian, F. Zamponi. First-Order Transitions and the Performance of Quantum Algorithms in Random Optimization Problems. Phys. Rev. Lett. Vol. 104, Iss. 20 (2010), p. 207206. [72] R. Kannan. Improved Algorithms for Integer Programming and Related Lattice Problems. STOC. ACM, 1983, pp. 193–206. [73] M. Kaplan, G. Leurent, A. Leverrier, M. Naya-Plasencia. Quantum Differential and Linear Cryptanalysis. IACR Trans. Symmetric Cryptol. Vol. 2016, Num. 1 (2016), pp. 71–94. [74] H. Kuwakado, M. Morii. Security on the quantum-type Even-Mansour cipher. ISITA. IEEE, 2012, pp. 312– 316. [75] L. Lamport. Constructing digital signatures from a one-way function. SRI International Technical Report, CSL-98. 1979-10. [76] J. Lavoie, Z. Vernon. Beating classical computers with Borealis. https://www.xanadu.ai/blog/beating- classical-computers-with-Borealis. 2022-06. (2024-12-01 閲覧). [77] A. K. Lenstra, H. W. Lenstra, L. Lovász. Factoring polynomials with rational coefficients. Mathematische Annalen. Vol. 261, Num. 4 (1982), pp. 515–534. [78] Linwen. Quantum Leap: China’s 504-Qubit Chip Narrows the US Gap. https://thechinaacademy.org/ quantum-leap-chinas-504-qubit-chip-narrows-the-us-gap/. 2024-04. (2024-12-01 閲覧). [79] M. Mariantoni. Building a superconducting quantum computer (Invited Talk). PQCrypto 2014. 2024-10. (2024-12-01 閲覧) 暗号危殆化の予測については動画 https://www.youtube.com/watch?v=wWHAs--HA1c の 49:30 で述べられている. [80] T. Matsumoto, H. Imai. Public Quadratic Polynominal-Tuples for Efficient Signature-Verification and Message-Encryption. EUROCRYPT. Vol. 330. Lecture Notes in Computer Science. Springer, 1988, pp. 419–453. [81] R. J. McEliece. A Public-Key Cryptosystem Based On Algebraic Coding Theory. Deep Space Network Progress Report. Vol. 44 (1978), pp. 114–116. [82] C. McGeoch, P. Farre. D-Wave Advantage システム: 概要. https://dwavejapan.com/app/uploads/ 2020/12/14-1049A-A_J-The_D-Wave_Advantage_System_An_Overview_0-.pdf. 2020-12. (2024-12-01 閲覧). [83] A. Mirko, Z. H. Saleem, K. Muir. Experimental study of Shor’s factoring algorithm using the IBM Q Experience. Physical Review A. Vol. 100, Iss. 1 (2019), p. 012305. [84] D. Moody. Announcement: The End of the 3rd Round – the First PQC Algorithms to be Standardized. https://groups.google.com/a/list.nist.gov/g/pqc- forum/c/G0DoD7lkGPk/m/f3Hl0sh3AgAJ. 2022-07. (2024-12-06 閲覧). 19 [85] D. Moody. Are we there yet? An Update on the NIST PQC Standardization Project. https://csrc. nist.gov/csrc/media/Presentations/2024/update-on-the-nist-pqc-standardization-project/ images-media/moody-are-we-there-yet-pqc-pqc2024.pdf. 2024-04. (2024-12-01 閲覧). [86] D. Moody. Post-Quantum Cryptography: NIST’s Plan for the Future. https://pqcrypto2016.jp/data/ pqc2016_nist_announcement.pdf. 2016-02. (2024-12-06 閲覧). [87] D. Moody. security category reference. https : / / groups . google . com / a / list . nist . gov / g / pqc - forum/c/OmLRb2rQyN4/m/_7y82chdAQAJ. 2022-09. (2024-12-06 閲覧). [88] D. Moody, R. Perlner, A. Regenscheid, A. Robinson, D. Cooper. Transition to Post-Quantum Cryptog- raphy Standards. NIST IR 8547 (initial public draft), https://nvlpubs.nist.gov/nistpubs/ir/2024/ NIST.IR.8547.ipd.pdf. 2024-11. (2025-02-17 閲覧). [89] D. Moody et al. Status Report on the Second Round of the NIST Post-Quantum Cryptography Standard- ization Process. NIST IR 8309, https://nvlpubs.nist.gov/nistpubs/ir/2020/NIST.IR.8309.pdf. 2020-07. [90] M. Mosca. Cybersecurity in a quantum world: will we be ready? Workshop on Cybersecurity in a Post- Quantum World. Session 8. 2015-04. (2024-02-29 閲覧). [91] M. Mosca, M. Piani. 2023 Quantum Threat Timeline Report. https://globalriskinstitute.org/ publication/2023-quantum-threat-timeline-report/. 2023-12. (2024-12-02 閲覧). [92] National Security Memorandum on Promoting United States Leadership in Quantum Computing While Mitigating Risks to Vulnerable Cryptographic Systems. https : / / www . whitehouse . gov / briefing - room / statements - releases / 2022 / 05 / 04 / national - security - memorandum - on - promoting - united- states- leadership- in- quantum- computing- while- mitigating- risks- to- vulnerable- cryptographic-systems/. 2022-05. (2025-01-11 閲覧). [93] NCSA. Guidelines for Post – Quantum Readiness. https://www.navy.mi.th/storage/frontend/ article/23852/file/th/Quantum%20Readiness.pdf. 2023-12. (2024-12-06 閲覧). [94] W. Newhouse et al. Migration to Post-Quantum Cryptography: Preparation for Considering the Imple- mentation and Adoption of Quantum Safe Cryptography. NIST SP 1800-38 (initial preliminary draft), https://csrc.nist.gov/pubs/sp/1800/38/iprd-(1). 2023-12. (2025-02-17 閲覧). [95] Z. Ni et al. Beating the break-even point with a discrete-variable-encoded logical qubit. Nature. Vol. 616, Num. 7955 (2023), pp. 56–60. [96] NIST. Digital Signature Standard (DSS). NIST FIPS 186-5, https://nvlpubs.nist.gov/nistpubs/ FIPS/NIST.FIPS.186-5.pdf. 2023-02. [97] NIST. Module-Lattice-Based Digital Signature Standard. NIST FIPS 204, https://nvlpubs.nist.gov/ nistpubs/FIPS/NIST.FIPS.204.pdf. 2024-08. [98] NIST. Module-Lattice-Based Key-Encapsulation Mechanism Standard. NIST FIPS 203, https : / / nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf. 2024-08. [99] NIST. Standardization of additional digital signature schemes, call for proposals. https://csrc.nist. gov/csrc/media/Projects/pqc-dig-sig/documents/call-for-proposals-dig-sig-sept-2022.pdf. 2022-10. (2024-03-05 閲覧). [100] NIST. Stateless Hash-Based Digital Signature Standard. NIST FIPS 205, https://nvlpubs.nist.gov/ nistpubs/FIPS/NIST.FIPS.205.pdf. 2024-08. 20 [101] NIST. Submission requirements and evaluation criteria for the post-quantum cryptography standardization process. https://csrc.nist.gov/CSRC/media/Projects/Post- Quantum- Cryptography/documents/ call-for-proposals-final-dec-2016.pdf. 2016-12. (2024-03-05 閲覧). [102] NÚKIB. Minimum requirements for cryptographic algorithms – Cryptographic security recommendations. https://nukib.gov.cz/download/publications_en/Minimum_Requirements_for_Cryptographic_ Algorithms_final.pdf. 2023-11. (2024-12-06 閲覧). [103] H. Ong, C. P. Schnorr. Signatures through Approximate Representation by Quadratic Forms. CRYPTO. Plenum Press, New York, 1983, pp. 117–131. [104] OpenSSH 9.0 was released. https://www.openssh.com/txt/release- 9.0. 2022-04. (2024-12-06 閲覧) Streamlined NTRU Prime と X25519 を組み合わせたハイブリッド鍵交換は 8.5 で試験的に実装され,9.0 か らはデフォルトで利用される仕様となっている. [105] J. Park et al. Rydberg-atom experiment for the integer factorization problem. Physical Review Research. Vol. 6, Iss. 2 (2024), p. 023241. [106] X. Peng, Z. Liao, N. Xu, G. Qin, X. Zhou, D. Suter, J. Du. Quantum Adiabatic Algorithm for Factorization and Its Experimental Implementation. Physical Review Letters. Vol. 101, Iss. 22 (2008), p. 220405. [107] L. Phab, S. Louise, R. Sirdey. First Attempts at Cryptanalyzing a (Toy) Block Cipher by Means of Quantum Optimization Approaches. J. Comput. Sci. Vol. 69 (2023), p. 102004. [108] Post-Quantum Cryptography Lounge. https://www.safecrypto.eu/pqclounge/. [109] pqc-forum. https://groups.google.com/a/list.nist.gov/g/pqc-forum. 2016/08/01 開始. [110] L. Qiu, M. Alam, A. Ash-Saki, S. Ghosh. Resiliency analysis and improvement of variational quantum factoring in superconducting qubit. ISLPED. ACM, 2020, pp. 229–234. [111] Quantinuum H-Series quantum computer accelerates through 3 more performance records for quantum vol- ume. https://www.quantinuum.com/blog/quantinuum-h-series-quantum-computer-accelerates- through-3-more-performance-records-for-quantum-volume. 2023-06. (2024-12-01 閲覧). [112] Quantinuum’s H-Series hits 56 physical qubits that are all-to-all connected, and departs the era of classical simulation. https://www.quantinuum.com/blog/quantinuums-h-series-hits-56-physical-qubits- that - are - all - to - all - connected - and - departs - the - era - of - classical - simulation. 2024-06. (2024-12-01 閲覧). [113] S. Ragavan, V. Vaikuntanathan. Space-Efficient and Noise-Robust Quantum Factoring. CRYPTO (6). Vol. 14925. Lecture Notes in Computer Science. Springer, 2024, pp. 107–140. [114] S. Ramos-Calderer, C. Bravo-Prieto, R. Lin, E. Bellini, M. Manzano, N. Aaraj, J. I. Latorre. Solving systems of Boolean multivariate equations with quantum annealing. Phys. Rev. Res. Vol. 4, Iss. 1 (2022), p. 013096. [115] O. Regev. An Efficient Quantum Factoring Algorithm. arXiv: 2308.06572. [116] R. L. Rivest, A. Shamir, L. M. Adleman. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Commun. ACM. Vol. 21, Num. 2 (1978), pp. 120–126. [117] Round 2 Additional Signatures. https : / / csrc . nist . gov / projects / pqc - dig - sig / round - 2 - additional-signatures. 2024-10. (2024-12-06 閲覧). [118] Round 4 Submissions. https://csrc.nist.gov/Projects/post- quantum- cryptography/round- 4- submissions. 2022-07. (2024-12-06 閲覧). 21 [119] C. P. Schnorr. Fast Factoring Integers by SVP Algorithms, corrected. Cryptology ePrint Archive, Paper 2021/933. 2021. https://eprint.iacr.org/2021/933. [120] Federal office for information security. Cryptographic mechanisms: recommendations and key lengths version: 2024-1. https : / / www . bsi . bund . de / SharedDocs / Downloads / EN / BSI / Publications / TechGuidelines/TG02102/BSI-TR-02102-1.html. 2024-02. (2024-12-05 閲覧). [121] Selected Algorithms. 2025-03. https : / / csrc . nist . gov / Projects / post - quantum - cryptography / selected-algorithms. (2025-03-30 閲覧). [122] P. W. Shor. Algorithms for Quantum Computation: Discrete Logarithms and Factoring. FOCS. IEEE Computer Society, 1994, pp. 124–134. [123] P. W. Shor. Fault-Tolerant Quantum Computation. FOCS. IEEE Computer Society, 1996, pp. 56–65. [124] P. W. Shor. Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. SIAM J. Comput. Vol. 26, Num. 5 (1997), pp. 1484–1509. [125] V. V. Sivak et al. Real-time quantum error correction beyond break-even. Nature. Vol. 616, Num. 7955 (2023), pp. 50–55. [126] U. Skosana, M. Tame. Demonstration of Shor’s factoring algorithm for N = 21 on IBM quantum processors. Scientific Reports. Vol. 11, Num. 16599 (2021). [127] M. Sobhani, Y. Chai, T. Hartung, K. Jansen. Variational Quantum Eigensolver Approach to Prime Factorization on IBM’s Noisy Intermediate Scale Quantum Computer. arXiv: 2410.01935. [128] E. G. Johansen and T. Simula. Prime number factorization using a spinor Bose-Einstein condensate- inspired topological quantum computer. Quantum Inf. Process. Vol. 21, Num. 1 (2022), p. 31. [129] The Cryptographers’ Panel. https://www.rsaconference.com/library/presentation/usa/2023/the% 20cryptographers%20panel. 2023-04. RSA Conference 2023 (2024-12-05 閲覧). [130] The Leap quantum cloud service. https : / / www . dwavesys . com / solutions - and - products / cloud - platform/. [131] TRAFICOM. Kryptografiset vahvuusvaatimukset luottamuksellisuuden suojaamiseen – kansalliset tur- vallisuusluokat. https : / / www . kyberturvallisuuskeskus . fi / sites / default / files / media / file / Kryptografiset_vahvuusvaatimukset_- _kansalliset_turvallisuusluokat_0.pdf. 2024-09. (2024- 12-06 閲覧). [132] L. M. K. Vandersypen, M. Steffen, G. Breyta, C. S. Yannoni, R. Cleve, I. L. Chuang. Experimental Realization of an Order-Finding Algorithm with an NMR Quantum Computer. Phys. Rev. Lett. Vol. 85, Iss. 25 (2000), pp. 5452–5455. [133] L. M. K. Vandersypen, M. Steffen, G. Breyta, C. S. Yannoni, M. H. Sherwood, I. L. Chuang. Experimental realization of Shor’s quantum factoring algorithm using nuclear magnetic resonance. Nature. Vol. 414, Num. 6866 (2001), pp. 883–887. [134] D.-S. Wang. A comparative study of universal quantum computing models: Toward a physical unification. Quantum Eng. Vol. 3, Num. 4 (2021). [135] W. Wang, Z. You, S. Wang, Z. Tang, H. Ian. Computing Shor’s algorithmic steps with classical light beams. Scientific Reports. Vol. 12, Num. 21157 (2022). [136] D. Willsch, P. Hanussek, G. Hoever, M. Willsch, F. Jin, H. De Raedt, K. Michielsen. The State of Factoring on Quantum Computers. 2024. arXiv: 2410.14397. 22 [137] S. Xu et al. Digital Simulation of Projective Non-Abelian Anyons with 68 Superconducting Qubits. Chinese Physics Letters. Vol. 40, Num. 6 (2023), p. 060301. [138] B. Yan et al. Factoring integers with sublinear resources on a superconducting quantum processor. arXiv: 2212.12372. [139] C. Zalka. Grover’s quantum searching algorithm is optimal. Phys. Rev. A. Vol. 60, Iss. 4 (1999), pp. 2746– 2751. [140] J. Zander. Advancing science: Microsoft and Quantinuum demonstrate the most reliable logical qubits on record with an error rate 800x better than physical qubits. https://blogs.microsoft.com/blog/ 2024/04/03/advancing- science- microsoft- and- quantinuum- demonstrate- the- most- reliable- logical-qubits-on-record-with-an-error-rate-800x-better-than-physical-qubits/. 2024-04. (2024-12-01 閲覧). [141] デジタル庁, 総務省, 経済産業省. 暗号強度要件(アルゴリズム及び鍵長選択)に関する設定基準. CRYPTREC LS-0003-2022r1, https://www.cryptrec.go.jp/list/cryptrec-ls-0003-2022r1.pdf. 2022-03. [142] デジタル庁, 総務省, 経済産業省. 電子政府における調達のために参照すべき暗号のリスト(CRYPTREC 暗 号リスト). CRYPTREC LS-0001-2022r1, https://www.cryptrec.go.jp/list/cryptrec- ls- 0001- 2022r1.pdf. 2024-05. [143] 中国密码学会. 全国密码算法设计竞赛通知. https://sfjs.cacrnet.org.cn/site/content/309.html. 2018-06. (2025-01-11 閲覧). [144] 中国密码学会. 关于全国密码算法设计竞赛算法评选结果的公示. https://sfjs.cacrnet.org.cn/site/ content/854.html. 2020-01. (2025-01-11 閲覧). [145] 橋本 俊和, 梅木 毅伺, 柏﨑 貴大, 井上 飛鳥. 連続量光量子コンピュータに向けた光技術. https://www.rd. ntt/research/JN202304_21560.html. 2023-04. (2024-12-01 閲覧). [146] 豊田 健二. 究極のコンピュータへ「もう一つの道」 イオンで可視化する量子情報. https://resou.osaka- u.ac.jp/ja/story/2021/specialite_002_6. 2021. (2024-12-01 閲覧). [147] 宮地 充子. 楕円曲線の理論的及び実用的可能性. IEICE FUNDAMENTALS REVIEW. Vol. 14, Num. 4 (2021), pp. 329–336. [148] 細山田 光倫. 量子コンピュータが共通鍵暗号の安全性に及ぼす影響の調査及び評価. CRYPTREC EX-2901- 2019, https://www.cryptrec.go.jp/exreport/cryptrec-ex-2901-2019.pdf. 2020-01. [149] 縫田 光司. 耐量子計算機暗号. 森北出版, 2020. [150] 伊藤 公平. 量子計算. 2010-02. https://www.ieice- hbkb.org/files/ad_base/view_pdf.html?p= /files/S2/S2gun_05hen_03.pdf. 電子情報通信学会 知識ベース 知識の森 S2 群(ナノ・量子・バイオ)5 編 (量子通信と量子計算)3 章. [151] 小林 和淑. ムーンショット目標 6 公開シンポジウム 2023 ~誤り耐性型汎用量子コンピュータの実現を目指し て~. https://www.youtube.com/watch?v=ebkT0LyKIKk. 2023-03. [152] 国立国会図書館調査及び立法考査局. 量子情報技術:科学技術に関する調査プロジェクト報告書. 2022-03. https://www.ndl.go.jp/jp/diet/publication/document/2022/index.html. [153] 国立大学法人東北大学, 日本電気株式会社. 新開発の 8 量子ビット量子アニーリングマシンを利用して東北大 学と NEC が将来のコンピュータシステムに関する共同研究を開始. https://jpn.nec.com/press/202306/ 20230628_01.html. 2023-06. (2024-12-01 閲覧). 23 [154] 国立研究開発法人科学技術振興機構. 目標 6 2050 年までに、経済・産業・安全保障を飛躍的に発展させる誤 り耐性型汎用量子コンピュータを実現. https://www.jst.go.jp/moonshot/program/goal6/index.html. (2024-12-01 閲覧). [155] 富士通. 量子コンピュータの誤り耐性量子計算を解説!エラー訂正とエラー緩和の最新トレンドを紐解 く. https : / / activate . fujitsu / ja / key - technologies - article / ta - fault - tolerant - quantum - computation-20240515. 2024-05. (2024-12-01 閲覧). [156] 向井 寛人, 朝永 顕成, 蔡 兆申. 超伝導量子コンピュータの基礎と最先端. 低温工学. Vol. 53, Num. 5 (2018), pp. 278–286. [157] 鈴木 教洋. 日立の量子コンピュータ研究開発戦略. https://www8.cao.go.jp/cstp/ryoshigijutsu/ jitsuyo_wg/3kai/siryo2-2.pdf. 2022-12. (2024-12-01 閲覧). [158] 高安 敦. Shor のアルゴリズム実装動向調査. CRYPTREC EX-2005-2020, https://www.cryptrec.go.jp/ exreport/cryptrec-ex-3005-2020.pdf. 2021-06. [159] 新方式の量子コンピュータを実現 -世界に先駆けて汎用型光量子計算プラットフォームが始動-. https: //group.ntt/jp/newsrelease/2024/11/08/241108a.html. 2024-11. (2024-12-01 閲覧). [160] 日本経済新聞. 量子計算機で新会社 富士通・日立など 10 社 産学で商用化. https://ohmori.ims.ac.jp/ news/2024/02/27/2607/. 2024-02. (2024-12-01 閲覧). [161] 日立、量子コンピュータの実用化に向けて 量子ビットの寿命を 100 倍以上長く安定化させる操作技術を開発. https://www.hitachi.co.jp/New/cnews/month/2024/06/0617.html. 2024-06. (2024-12-01 閲覧). [162] 清藤 武暢, 四方 順司. 量子コンピュータが共通鍵暗号の安全性に与える影響. 金融研究. Vol. 38, Num. 1 (2019), pp. 45–72. https://cir.nii.ac.jp/crid/1523106604811659392. [163] 樽茶 清悟. 拡張性のあるシリコン 量子コンピュータ技術の開発. https://www.jst.go.jp/moonshot/sympo/ 20230328/pdf/01_20230328_tarucha.pdf. 2023-03. (2024-12-01 閲覧). [164] 理化学研究所. シリコン量子ビットの高温動作に成功 -大型冷却装置が不要に、センサーなど幅広い量子ビッ ト応用へ-. https://www.riken.jp/press/2019/20190124_3/. 2019-01. (2024-12-01 閲覧). [165] 理化学研究所. シリコン量子ビットの高精度読み出しを実現 -半導体系の誤り耐性量子コンピュータの実現に 前進-. https://www.riken.jp/press/2024/20240213_2/index.html. 2024-02. (2024-12-01 閲覧). [166] 理化学研究所. 量子コンピュータを利用できる「量子計算クラウドサービス」開始 -国産超伝導量子コンピュー タ初号機の公開-. https://www.riken.jp/pr/news/2023/20230324_1/. 2023-03. (2024-12-01 閲覧). [167] 理化学研究所. 量子コンピュータ開発に挑む若手研究者たち. https://www.riken.jp/pr/closeup/2023/ 20230904_1/index.html. 2023-09. (2024-12-01 閲覧). [168] 産業技術総合研究所. 独自のアーキテクチャを用いた超伝導量子アニーリングマシンを実現. https://www. aist.go.jp/aist_j/new_research/2021/nr20210706/nr20210706.html. 2021-07. (2024-12-01 閲覧). [169] 大関 真之. 量子アニーリングが拓く機械学習と計算技術の新時代 (量子システム推定の数理). 数理解析研究所 講究録. Vol. 2059 (2017), pp. 13–23. https://cir.nii.ac.jp/crid/1050564288163922560. [170] 文部科学省 科学技術・学術政策研究所科学技術予測センター. 第 11 回科学技術予測調査 デルファイ調査. https://nistep.repo.nii.ac.jp/?action=repository_uri&item_id=6692&file_id=13&file_no=3. 2020-06. (2024-12-05 閲覧). [171] 山口 純平, 伊豆 哲也. イジング計算を用いた暗号解析について. オペレーションズ・リサーチ:経営の科学. Vol. 67, Num. 6 (2022), pp. 290–296. https://cir.nii.ac.jp/crid/1520011030559130112. [172] 山口 純平, 伊豆 哲也, 國廣 昇. 素因数分解問題に対する Shor アルゴリズムの実装と量子計算機シミュレータ を用いた実験. 暗号と情報セキュリティシンポジウム (SCIS 2023). 2023-01, 4A2–3. 24 [173] 大塩 耕平. アナログ量子シミュレータの開発動向と応用. https://www.mizuho-rt.co.jp/publication/ others/pdf/mhrt003_01.pdf. 2024-03. (2024-12-06 閲覧). [174] 塩見 英久. マイクロ波技術者から学ぶ超伝導量子コンピュータ入門. MWE2023 マイクロウェーブ ワーク ショップ プログラム FR6A 基礎講座. (2023). https://apmc-mwe.org/mwe2024/pdf/tut23/FR6A-1.pdf. [175] 徳永 裕己. 誤り耐性量子コンピュータの早期実現に向けた取り組み. NTT 技術ジャーナル. Vol. 35, Num. 9 (2023), pp. 26–29. [176] 大森 賢治. 大規模・高コヒーレンスな動的原子アレー型・誤り耐性量子コンピュータ. https://www.youtube. com/watch?v=OIVQ5ZmdCEo. 2024-03. (2024-12-01 閲覧). [177] 大阪大学 量子情報・量子生命研究センター. 【プレスリリース】大阪大学に設置した超伝導量子コンピュータ国 産3号機の クラウドサービスを開始. https://qiqb.osaka-u.ac.jp/20231220pr/. 2023-12. (2024-12-01 閲覧). [178] 量子耐性暗号研究団. KpqC. https://kpqc.or.kr/. (2024-12-06 閲覧). [179] 富田 隆文. 冷却原子型量子コンピュータの急速な発展とその展望について. https://www- conf.kek.jp/ joint-colloquium/slides/Tomita.pdf. 2024-03. (2024-12-01 閲覧). [180] 満保 雅浩. 公開鍵暗号. 映像情報メディア学会誌. Vol. 69, Num. 9 (2015), pp. 714–720. 25 第2章 PQC の活用方法 将来,一定以上の能力を持つ量子コンピュータが登場した場合には,既存の公開鍵暗号が解読される(破られる)と いう脅威が指摘されている [1, 20]。本章では,現在,標準的に用いられている公開鍵暗号の解読が可能となる水準の量 子コンピュータを Cryptographically Relevant Quantum Computer(CRQC)と記載し,CRQC を用いた攻撃に対 しても安全な性質を「耐量子計算機性」と記載する。また,耐量子計算機暗号(Post-Quantum Cryptography: PQC) とは,耐量子計算機性を持つ暗号アルゴリズムを意味し,本稿の対象である公開鍵暗号アルゴリズム以外にも,共通鍵 暗号やハッシュ関数も含まれるものとする [1]。加えて, 「耐量子計算機性を持つ情報システム」とは,CRQC を用いた 攻撃に対しても安全な情報システムを示すものとする。 ある情報システムが,既存の公開鍵暗号を利用していた場合,その情報システムは,将来における CRQC を用いた 攻撃の脅威に晒されることになる。そのような脅威への対応方法としては,情報システム内の(耐量子計算機性を持た ない)既存の公開鍵暗号方式部分を,耐量子計算機性を持つ公開鍵暗号方式に置き換えることで,その情報システムに 耐量子計算機性を持たせることが考えられる。 なお,耐量子計算機性を持たせるためには異なるアプローチも考えられる。例えば,今まで公開鍵暗号を利用してい た情報システムを,公開鍵暗号を利用しない仕組みに置き換えるアプローチである。具体的には,信頼できる特使等の 別の情報共有手段を利用し,通信相手と共通鍵の事前共有を行う方法である。しかし,このアプローチでは,情報シス テムの「スケーラビリティ」*1 が損なわれることが予想され,場合によっては実現不可能なコストが発生する。 現在,普及している情報システムの中には,公開鍵暗号を利用することにより,そのサービスのスケーラビリティを 維持しているものも多い。インターネットはその代表例であり,通信相手を認証する用途等で公開鍵暗号を利用するこ とにより,大規模な通信ネットワークの構築及び維持を実現している [4, 11, 14, 18]。このような大規模情報システム において,仮に,耐量子計算機性を持たせるために公開鍵暗号の利用を取りやめた場合,スケーラビリティが損なわ れ,その結果,維持・運用コストが大きく上昇してシステムの維持も困難となる。このため,公開鍵暗号を利用した情 報システムの現在及び将来においてスケーラビリティ上の懸念が発生しないという見通しがない限り,耐量子計算機性 の実現のためのアプローチとしては,耐量子計算機性を持つ公開鍵暗号を利用することが望ましい。 以下では,より具体的に,耐量子計算機性を持たせるためのアプローチについて紹介する。公開鍵暗号によって暗号 化(守秘・鍵共有)を行う情報システムに対して,耐量子計算機性を持たせるアプローチには,表 2.1 に示す手法及び その組み合わせが存在するが,一般に下段のアプローチになるほどスケーラビリティが低下する。ここで,最もスケー ラビリティが期待できるデータ削除や匿名化といった手法は,そのデータが削除や匿名化が可能であるか否かを検討し た後に実施する必要があり,運用上のスケーラビリティは高いものの,導入前の検討のために時間を必要とし,情報シ *1 スケーラビリティとは,要求される処理量等の変化に応じてそのシステムの対処能力を柔軟に増減させることができる能力である。 https://www.gartner.com/en/information-technology/glossary/scalability 本章では,情報システムの規模(ステークホルダ数,利用者数,処理量等)が増減した場合でも,その情報システムが消費するリソース(計 算量,通信量,人の手間等)が極端に増加しない,又は,減少させることができる能力の意味で利用する。 27 表 2.1: 公開鍵暗号による暗号化(守秘・鍵共有)を行う情報システムに対して耐量子計算機性を持たせるためのアプ ローチ アプローチ 概要 1. 削除・匿名化 情報システムが,漏洩しても問題ない情報以外は保管しない/扱わないようにする。又は,保 管する/扱う情報を加工することによって,漏洩しても問題ないように変形する。この方式 は,スケーラビリティが最も高いが,可用性が大きく低下することが考えられ,選択できな いことも多い。 2. 耐量子計算機 最も一般的な解決策であり,スケーラビリティを確保できる。現代暗号の利点を維持するア 性を持つ公開 プローチである。 鍵暗号の採用 3. 公開鍵暗号を 公開鍵暗号を利用している情報システムを,公開鍵暗号を利用しない仕組み(例えば,物理 用いない鍵共 的に通信相手全員に IC カードを配布することで,共通鍵の事前共有を行うなど)に置き換え 有手段の導入 ることで,耐量子計算機性を持たせる。暗号技術の観点からは,公開鍵暗号が登場する以前 の思想で再設計することになる。スケーラビリティが低く,不特定多数が利用するシステム では採用が困難と考えられる。また,通信当事者の捕捉が容易となることも考えられ,匿名 性の確保やプライバシ保護に関する再設計も併せて必要になる可能性がある。 4. 物理アクセス 1~3 のアプローチが採用できない場合にも採用可能である。暗号技術の観点からは,暗号技 制御 術が発展する以前の思想で再設計することになる。実装コスト及び運用コストが非常に高く なることが予想される。 ステムの可用性が低下するおそれもある。また,法令やポリシー等で削除・匿名化が許容されていない場合には,実施 できないおそれもある。 これらの事情より,耐量子計算機性を持たせるための最も汎用的かつ根本的な対応は,既存の公開鍵暗号方式を耐量 子計算機性を持つ公開鍵暗号方式に置き換えることであると考えられる。 ただし,情報システムで利用されている公開鍵暗号方式を,耐量子計算機性を持つ公開鍵暗号方式に置き換えること は容易ではない。それは単に実装を切り替えただけでは完了せず,公開鍵暗号がどのように利用されているのかについ て認識した上で,運用やデータ管理に係る様々な処理も併せて実施することが要求される(以降,暗号方式の置き換え に加えて,これらの処理を行うことを「暗号移行」と呼ぶ)。そこで本章では,公開鍵暗号のいくつかの利用形態を念 頭に,耐量子計算機性を持つ公開鍵暗号方式への暗号移行について紹介する。まず,現行の公開鍵暗号の利用形態を紹 介した上で,各利用形態における CRQC による脅威及びその対策について,システム運用やデータ管理処理の観点を 踏まえて概説する。また,脅威を評価する上で重要となる,保護対象となるデータの保護期間について記載した上で, 利用形態や保護対象を踏まえた対応についても概説する。 2.1 公開鍵暗号の利用形態 既存の公開鍵暗号方式を,耐量子計算機性を持つ方式へと暗号移行するに際しては,その公開鍵暗号方式の利用形態 ごとに,暗号移行のプロセスが大きく異なることが予想される。そこで,本節で公開鍵暗号の利用形態について概説し た上で,次節以降で各利用形態における暗号移行のプロセスについて述べる。公開鍵暗号にはいくつかの利用形態が存 在するが,本章では「電子政府における調達のために参照すべき暗号のリスト」[24] (以下「CRYPTREC 暗号リス ト」と呼ぶ。 )に合わせて,公開鍵暗号を署名・守秘・鍵共有に分類し,以降その分類に沿って概説する。また,本節で 28 は,署名用途/守秘用途/鍵共有用途の耐量子計算機性を持つ公開鍵暗号方式を,それぞれ署名用途/守秘用途/鍵共 有用途の PQC と表記する。 2.1.1 署名用途での公開鍵暗号の利用 本節では,署名を付与する行為を「デジタル署名処理」と呼び,付与される署名データを「デジタル署名」と呼ぶ。 デジタル署名が付与されたコンテンツを改竄すると,その改竄を検知することができる。このため,署名用途の公開鍵 暗号を用い,コンテンツにデジタル署名を付与することで,コンテンツの改竄によりもたらされる被害を防止すること ,動画等の情報であることもあれば,暗号鍵の鍵情報*2 ができる。コンテンツは,人が読む文章(ドキュメントデータ) であることもある。また,デジタル署名処理に用いられる秘密鍵が,対応する公開鍵を含む電子証明書によって所定の 人物/組織/装置等と紐づいている場合では,コンテンツの生成人物/組織/装置を確認(認証)することもできる。 このように署名用途の公開鍵暗号は,コンテンツの改竄防止,署名者の認証,データ元の認証等に利用される。 具体的な署名用途の公開鍵暗号の利用例としては,TLS 通信 [18] におけるクライアント認証(利用者の認証)やサー バ認証(サービス提供者の認証) ,OS のコードサインの確認(バイナリデータが改竄されていないことの確認)等に広 く利用されている。また,公開鍵の配布手段の一種である公開鍵暗号基盤(PKI)の構成においても,公開鍵暗号は広 く利用されており [4],コンテンツに対して署名が付与された時刻を確認可能なタイムスタンプ署名方式 [23] 等も存在 する。CRYPTREC 暗号リストには,DSA,ECDSA,EdDSA,RSA-PSS,及び RSASSA-PKCS1-v1 5 が署名用途 の公開鍵暗号として記載されている。 2.1.2 守秘用途での公開鍵暗号の利用 守秘用途の公開鍵暗号によって暗号化された暗号文は,対応する秘密鍵なしに復号することは困難となる。このた め,守秘用途の公開鍵暗号は,意図した相手だけにデータを提示するために利用することができる。暗号化処理による 保護は,ドキュメントデータ,動画等の情報に対して行われることもあれば,暗号鍵の鍵情報*3 に対して行われること もある。保護が鍵情報に対して行われるユースケースとしては,鍵情報を通信当事者間で共有する場合や,暗号鍵所有 者がその鍵情報をバックアップする場合等が該当する。 守秘用途及び鍵共有用途の公開鍵暗号の一般的な実装形態として,公開鍵暗号方式により別の暗号鍵を保護し,その 暗号鍵を利用した共通鍵暗号方式によりコンテンツの秘匿性や完全性を保護するというアプローチが存在する。このア プローチでは,共通鍵暗号方式の暗号鍵(以下,単に共通鍵と呼ぶ)は送信者により作成され,配送される。したがっ て,ある時点で共通鍵が漏洩した場合には,過去にその秘密鍵を持つ利用者に対して配送された共通鍵が漏洩するお それがある。また,受信者は共通鍵の生成に関わることがないため,送信者が別の通信相手と共通鍵を使い回してい ても察知することができない。このため,昨今の TLS 通信等における共通鍵の共有においては,守秘用途の公開鍵暗 号でなく,次節で概説する鍵共有用途での公開鍵暗号を一時的な鍵と組み合わせて利用することが望ましいと考えら れている [5, 19]。なお,「TLS 暗号設定ガイドライン」[5] においても,鍵交換(鍵共有・守秘)においては,Perfect Forward Security(PFS)*4 の特性を持つ DHE(又は ECDHE)を選択することがセキュリティ上望ましいと記載さ れている。CRYPTREC 暗号リストには,RSA-OAEP 及び RSAES-PKCS1-v1 5*5 が守秘用途の公開鍵暗号として 記載されている。また,RFC7525[19] においても,4.1 節において守秘用途で使用される RSA 暗号方式による鍵の転 送(RSA key transport)は利用すべきでないと記載されており,4.2 節において一時的(Ephemeral)な鍵を用いる *2 鍵情報には暗号鍵やメタデータが含まれ [5],公開鍵暗号の鍵のみではなく共通鍵暗号の鍵に関する情報も含む概念となる。 *3 秘密鍵,共通鍵,鍵導出鍵及びそれらの鍵のメタデータを含む。 *4 ある時点における鍵が漏洩した場合でも,漏洩した鍵とは異なる鍵を使用していた過去の暗号文の復号はできない性質。 *5 守秘用途の RSAES-PKCS1-v1 5 は,運用監視暗号リストに記載されており,互換性維持以外での利用は推奨されていない。 29 暗号スイート*6 が推奨されている。 2.1.3 鍵共有用途での公開鍵暗号の利用 鍵共有用途での公開鍵暗号は,鍵共有に参加する二者が,同一の鍵情報*7 を共有するために使用される。近年利用さ れている二者間鍵共有を目的とした多くの公開鍵暗号プロトコルにおいては,鍵共有に参加する双方が何らかの値を生 成し,その値に対して秘密鍵を使用した計算を行う。結果として,共有される鍵には双方の生成した値が影響すること となり,一方のみの計算で暗号鍵を導出することはできない。このため,守秘用途でのデータ送付と異なり,送信者 があらかじめ意図した特定の鍵を,共有鍵として利用することはできない。CRYPTREC 暗号リスト [24] には,DH, ECDH,及び PSEC-KEM が鍵共有用途の公開鍵暗号として記載されている。 2.2 PQC の導入における課題 図 2.1: Mosca の発表 [15] より 現在広く利用されている公開鍵暗号が,量子コンピュータを利用した攻撃に起因して,“近い将来”に危殆化する可能 性は低い [7] と考えられている。他方で,Mosca [15] が指摘するように,その情報システムで生成されるデータに対し て暗号方式による保護が期待される期間(図 2.1 における X)に,暗号処理の実装の置き換えに要する期間(同図にお ける Y)を加えたものが,CRQC による攻撃が実現するまでの期間(同図における Z)よりも長い場合(X + Y > Z の場合)は,当該情報システムで生成されるデータは CRQC による攻撃の脅威にさらされることになる。すなわち, CRQC 実現までの期間(Z)が非常に長く,遠い将来であったとしても,その情報システムの X や Y の値が大きけれ ば,何らかの対応が求められる。なお本章において,特記しない限り以降では,X,Y,Z は図 2.1 における X,Y,Z を示す。 もっとも,CRQC の実現時期は未だ不透明であり,Z を予想することは困難である。また,X は,暗号方式のみなら ず,保護対象となるデータの性質等によっても大きく異なる。特に,保護対象となるデータに対して,保護期間が設定 されていない場合などは,X を導出すること自体が新たな課題となる。同様に,Y も,暗号方式の実装形態によって大 きく変化する。さらに,X 及び Y は,情報システムの運用を通して,将来において変動することもありうる。 このように,ある公開鍵暗号アプリケーションが利用されている際に,CRQC による脅威について備える必要性が あるか否かを判断しようとした場合,Z は不確定であり,X や Y も変動しうるため,判断が難しいという課題がある [25]。ここで,保護対象となるデータに保護期間が設定されていない場合においては,判断に先駆けて(X 導出のため に)データの保護期間を決定することとなり,場合によってはその判断を行うための情報収集に相当の期間を必要と *6 複数の暗号アルゴリズムの組合せ *7 共通鍵暗号の共通鍵,鍵導出機能の鍵やパラメータ等 30 する。 PQC の導入においては,その情報システムに耐量子計算機性を持たせることが必要なのか,また,いつまでにそれ を行う必要があるのか,を判断すること自体が課題となる。 2.2.1 署名用途での課題 署名用途の公開鍵暗号は,コンテンツの改竄防止,認証等に利用されるが,ユースケースによって脅威の性質は大き く異なる。例えば,TLS 通信 [18] におけるクライアント認証やサーバ認証においては,認証用に付与されたデジタル 署名の検証を行うのは基本的にその場限りとなるため,X の値は小さくなる。また,Web ブラウザが信用するサーバ認 証用の証明書の有効期間は,ごく一部の例外を除いて 1 年程度であり,それほど長い期間利用されることはない。その ため,X の値は,守秘用途や他の認証用途に比べて非常に小さくなる [25]。さらに,ブラウザのアップデートやルート 認証局の入れ替えを,より迅速に実施できる体制を整備しており,Y の値も守秘用途や他の認証用途に比べて小さい。 他方で,電子データに対するドキュメント署名や,バイナリデータに対するコードサインであれば,署名対象のデー タを利用する人が存在する限り(数十年に渡り)デジタル署名が検証されることもある。特に,コードサインにおいて は,仮に電子証明書に有効期間が記載されていたとしても,その有効期間満了後にも検証されることが十分に考えられ る。そのため,X の値は,守秘用途や他の認証用途に比べて非常に大きくなる。 このように,署名用途においては,X の値は大きくなりうるものであり,個々のアプリケーションごとに判断する必 要がある。また,公開鍵の配布のために PKI を利用した場合,トラストアンカーの置き換え等に時間を要するため,Y が 10 年以上となることも珍しくない。 ここで,アプリケーションごとの判断の一例として,S/MIME プロトコルを利用するメールクライアントソフトウェ アにおいて保護が必要な期間について概説する。S/MIME 用に発行された証明書(に対応する秘密鍵)は,通信相手 の認証及び通信データの暗号化に利用可能であり,以下の用途での使用が可能である。 1. 通信時に通信相手を認証する 2. 通信時に通信データの暗号化(復号)に利用する 3. 過去に受け取ったメールの通信相手を後から認証する 4. 過去に受け取った通信データを復号する 3 及び 4 は,S/MIME プロトコルを通信プロトコルと捉えると,所管範囲外とも整理できるが,エンドユーザが利 用するメールクライアントソフトウェアの中には,通信終了後の保管されたメールに対しても暗号処理を行うものも存 在する。このような処理におけるセキュリティは,保存する/されているデータ(data at rest)のセキュリティとな り,データ保護の対象期間は非常に長くなる。 他方で,メールクライアントソフトウェアが 1 のみをサポートする場合*8 では,S/MIME 証明書(に対応する秘密 鍵)は受信者が送信者を認証した後は利用されることはない。このような,通信路上の転送されているデータ(data in transit)の認証におけるセキュリティでは,保護の対象期間は短くなる。このように,メールクライアントソフトウェ ア間でも,そのソフトウェアがサポートする機能の違いよって X の値は大きく変化する。 *8 通信時のメールコンテンツの暗号化は, (S/MIME 以外の)メールサーバ間の通信プロトコルにて実施することも可能である。そのため,送 受信者間の送受信者間の E2E 暗号化(End-to-End Encryption)が必要でない場合や,送受信者間の E2E 暗号化が許容されない場合にお いては,S/MIME による暗号化が行われないこともある。送受信者間の E2E 暗号化が許容されない例としては,メールサーバを運用する組 織が,自社ポリシーにて(メールクライアントではなく)メールサーバでのウィルス検知を必須とするケース等が挙げられる。 31 2.2.2 守秘用途での課題 守秘用途の公開鍵暗号においては,攻撃者が事前に暗号技術で保護されたデータを収集して保存しておき,後からそ のデータに対して攻撃を行う攻撃である,Harvest Now Decrypt Later 攻撃(以下, *9 の脅 「ハーベスト攻撃」と呼ぶ) 威が指摘されている。 ハーベスト攻撃においては,保護対象となるデータの保護期間,すなわち X の値が大きくなるほど,攻撃者が攻撃 可能な期間が長くなる。これは,攻撃者が CRQC の開発を待たずに攻撃(保護された情報の収集)を開始できるため である。一方,防御側は,攻撃者に情報が収集される前に,情報システムに耐量子計算機性を付与することが求められ る。保護対象となる情報の保護期間が長くなるほど,この不均衡は大きくなり,攻撃者の攻撃可能期間が長くなる。 守秘用途の公開鍵暗号では,保護対象となるコンテンツや鍵情報の保護期間が非常に長期となることが想定されてい る場合や,無期限で保護することが想定されている場合も存在する。例えば,患者を特定又は推測可能な形態で保管さ れた遺伝性疾患に関する医療情報や,外交関係の機微な情報,さらには,それらの情報の暗号化に利用される鍵などは 長い保護期間を持つ傾向にある。また,ドキュメントの生成時において,無期限に守秘することを前提としており,公 開することを想定していない情報も存在する。 これらの情報においては,X の値は非常に大きくなるため,おそらく X + Y > Z が成立することになる。そのため, 速やかに CRQC の脅威に対する何らかの対応を行うことで,被害を軽減することが望ましい [25]。 2.2.3 鍵共有用途での課題 鍵共有用途での課題は,守秘用途における課題と同種の課題を含んでいる。例えば,鍵共有で共有された共通鍵が, 非常に長い保管期間を持つデータの暗号化に利用されていた場合,X の値は非常に大きくなり,X + Y > Z が成立す ると考えられ,速やかに CRQC の脅威に対する何らかの対策が必要となる。 さらに,守秘用途では存在しない新たな懸念も存在する。例えば,一時的(Ephemeral)な鍵情報を用いた DH 鍵共 有方式を採用することにより PFS を達成している情報システムが存在し,その情報システムは,PFS であることを前 提とした運用ポリシーを策定していたとする。この情報システムの DH 鍵共有処理部分を,耐量子計算機性を持つ標準 化された公開鍵暗号方式に置き換える場合,以下の 2 つの方針が考えられる。 1)鍵共有用途の PQC に置き換える 2)守秘用途の PQC に置き換える 標準化された鍵共有用途の PQC が存在するのであれば,1)が選択可能であり,比較的容易に実現可能だと考えられ る。しかし,そのような鍵共有用途の PQC が存在せず,守秘用途の PQC しか標準化されていない場合には,2)を選 択することとなり,守秘用途の PQC を用いて鍵共有部分を構成することとなる。 2)の選択において,守秘用途の PQC を単純に導入した場合,PFS の性質を持たなくなるおそれがあり,それによ りデータ保護及び運用ポリシー策定時に想定していなかった経路からの情報漏洩等が発生する懸念が生じる。また,守 秘用途の公開鍵暗号方式に対して何らかの手を加えて,PFS の性質を持つ暗号プロトコルを構成したとしても,その 暗号プロトコルが標準化されていない場合は,運用ポリシー上,利用できないこともある。 他方で,2)の選択において,既存の鍵交換及び守秘用途の PQC の両方のハイブリッド構成を用いることによって 対応するアプローチも存在する*10 。ハイブリッド構成を用いることで,既存のアルゴリズムでしか防げない攻撃に対 しても,新たなアルゴリズムでしか防げない攻撃に対しても,安全な構成とすることができる [22]。 *9 Record Now Decrypt Later 攻撃,Store Now Decrypt Later 攻撃等とも呼ばれる。 *10 TLS における [13, 22],CMS における [16] 等が当該アプローチとして挙げられる。 32 例えば,既存の鍵共有方式(ephemeral ECDH 等)を用いた鍵交換で導出された秘密情報と,守秘用途の PQC (ML-KEM 等)を用いて導出された秘密情報の,両方を入力とし,所定のハッシュ計算の出力を暗号鍵とすることに より,PFS の性質を持つアルゴリズムでしか防げない攻撃に対しても,耐量子計算機性を持つアルゴリズムでしか防 げない攻撃に対しても安全な構成とすることができる。 もっとも,鍵共有処理を複数回行うことに起因し,処理量及びデータ転送量が増加するため,その増加に対応できる ように情報システムや通信プロトコルの修正が必要となりうることには注意が必要である。 2.3 PQC 導入へのアプローチ 2.2 節でも記載したように,CRQC の実現時期(又は実現までの期間 Z)は不透明ながら,X や Y の値が大きな情報 システムにおいては,何らかの対応を取ることが望ましい。また,本章冒頭で記載したように,情報システムに耐量子 計算機性を持たせる手段は,耐量子計算機性を持つ公開鍵暗号方式の導入だけではないものの,スケーラビリティを考 慮すると耐量子計算機性を持つ公開鍵暗号方式の利用が有望である。本節では,耐量子計算機性を持つ公開鍵暗号方式 への暗号移行を念頭に,その暗号移行を円滑に行う上での考慮事項について概説する。 2.3.1 プライオリティ設定の重要性 公開鍵暗号は様々な用途において普及している。それらの全ての公開鍵暗号方式を耐量子計算機性を持つ方式へ暗号 移行するためには,長い期間及び労力を要する。また,情報システムの中には,そのシステムの利用期間及び生成され るデータの保護期間が短い等の理由により,耐量子計算機性を持たせる必要がないものも存在するかもしれない。 そこで,暗号移行を検討する上では,X,Y,Z を意識して対応することが重要と考えられる。もっとも,X や Y は暗号 方式の利用局面ごとに異なることも想定され,またそれらの値は将来において変動する可能性がある。さらに,Z は不 確定であり,予想すること自体も困難である。このような状況の下で,全ての暗号モジュールに対して X,Y,Z を分析す るアプローチを取ることは,作業量の観点で大きな困難が伴うことが予想され,結果として本当に保護が必要なデータ に対する対応に手が回らないおそれがある。そこで,暗号移行を行う担当者は,優先度の高いものを洗い出し,その優 先度に応じて対応を行うことが適切である [9, 26, 25]。 PQC への暗号移行を検討するにあたり,あらかじめ優先順位付けを行うことの重要性は,金融庁の報告書 [27] でも 触れられており,基本事項は以下のように整理されている。 • 暗号解読可能な量子コンピュータによる既存の暗号危殆化に関連するリスクに基づいて,移行対象の優先順位付 けを行う。 • 移行対象の詳細な把握のため,クリプト・インベントリを構築する。 • 暗号危殆化状況に応じて安全かつ迅速に対応できるアーキテクチャを検討する。 • 優先順位の高いものを中心に移行期限を設定し,期限超過の可能性も踏まえたリスク低減策も検討する。 ここで,クリプト・インベントリとは利用している暗号モジュールや暗号方式のリストのことであり,その作成にお いては,既に管理簿や仕様書等が存在する場合はそれを利用することができる。また,管理簿や仕様書等が存在しない 場合は,何らかの自動化ツールを使うことが,効率の観点からもミスを減らす面からも望ましい。そのような自動化 ツールの利用を検討する上では,NIST NCCoE の検討 [9] が参考になる。 CRQC による攻撃リスクの評価においては,CRQC による攻撃が成功した場合の影響,暗号方式によって保護さ れる情報の保護期間(X の把握のために必要),情報システムで利用する各暗号モジュールの移行に要する時間(Y), CRQC を利用する攻撃を行うための前提条件の難易度(攻撃対象である暗号化データ取得の難易度や,そのデータを 利用した攻撃の難易度)等の把握が有用である。 33 この優先順位付けに先駆けて,過剰な保護期間が設定されている情報の保管期間短縮,不要な情報の消去,公開可能 な情報の公開等を併せて実施する事も望ましい。このような処理により,X の短縮が期待でき,暗号移行の対象となる システムを削減する効果が期待される。 暗号移行に際しては,速やかに PQC に暗号移行するというアプローチと,あらかじめクリプトグラフィック・アジ リティ [12]*11 を向上させつつ,ある程度以上のクリプトグラフィック・アジリティを達成した上で暗号移行するとい うアプローチが存在する。 クリプトグラフィック・アジリティが向上すると,Y や X の値が小さくなる。このため,例えば,PQC の評価が十 分にされておらず,暗号移行開始の妨げとなっている期間においては,当面の間はクリプトグラフィック・アジリティ 向上に努めるというアプローチも一定の合理性があるものと考えられる [26]。なお,クリプトグラフィック・アジリ ティ向上に伴う Y や X の短縮により,該当する情報システムのプライオリティが下がれば,他の相対的にプライオリ ティが高くなった情報システムへリソースを集中させることも可能となる。 本節では,インベントリ管理,不要な情報の消去,クリプトグラフィック・アジリティの確保等について概説したが, こららのアプローチは,一般的な情報セキュリティの文脈でも有効である。そのため,これらのアプローチの検討にお いては,PQC への暗号移行の文脈における効果のみを念頭に検討するのではなく,他のセキュリティ上の恩恵も併せ て視野に入れて検討を行うべきであろう [25]。 2.3.2 クリプトグラフィック・アジリティの重要性 クリプトグラフィック・アジリティは,文脈によって捕捉範囲が異なり,それに伴って異なる意味合いを持つことが ある [2]。しかしながら,それらに通底している性質として,暗号アルゴリズムや暗号プロトコルをより迅速に変更で きる点が挙げられる。 暗号移行においては,暗号移行の対象となる情報システムの暗号部分が,情報システムにハードコードされている場 合には,暗号アルゴリズムの変更が困難である。このような状態は「クリプトグラフィック・アジリティを持たない」 と表現することができる。 他方で,標準プロトコルを採用する情報システム,暗号モジュールにも標準プロトコルを利用している情報システ ム,その API が適切に定義されている情報システム,相互運用性が確保されている情報システム,及び暗号回路を含 むファームウェアアップデートをオンラインで実施できるように設計されている情報システム等では,その暗号移行に 要する時間は比較的短くなり,X + Y > Z となる可能性も低くなる。X 及び Y の値が十分に低く,所定の目標期間以 内に暗号移行が可能なシステムは,「クリプトグラフィック・アジリティを持つ」と表現することができる [2, 25]。 クリプトグラフィック・アジリティを持たせるための対応は,PQC の実装とは独立して実施することが可能である [3]。また,より短い期間での暗号移行を行うことが可能となれば,移行プロセスを開始するまでの猶予期間(Z − X − Y) をより長くすることが期待される。より長い猶予期間での暗号移行が可能となれば,該当猶予期間を CRQC の開発動 向調査等に充てることが可能となり,より適切なタイミングでの移行が期待できる。 なお,クリプトグラフィック・アジリティが十分向上した情報システムにおいては,暗号機能以外を変更する場合の 対応速度も高くなることが期待できる。すなわち,セキュリティ上の脆弱性が発覚した場合の対応速度や,ビジネス環 境に合わせたサービス変更の対応速度も高いことも期待される [25]。 以上を踏まえ,PQC への暗号移行を実施するにあたっては,まずは暗号移行を長期化する要素を排除することを試 み,情報システムにおける暗号プロトコルの変更をより迅速にできるようにシフトさせていく対策,すなわちクリプト グラフィック・アジリティを確保する対策を併せて実施することが効果的である [2, 3, 25]。 *11 暗号方式を変更可能とする性質。2.3.2 節参照。 34 2.3.3 既存暗号方式とのハイブリッド構成 暗号移行においては,ハイブリッド構成を採用することができる。PQC への暗号移行の文脈におけるハイブリッド 構成とは,既存の公開鍵暗号と,PQC の両方を利用することによって何らかの目標の達成を目指すものであるが,厳 密な定義は見当たらない [8]。ハイブリッド構成の目標は,暗号アルゴリズムの切替期間中における相互運用性の確保 や,既存暗号方式しか利用できない機器に対する後方互換性の確保であることもあれば,両方のアルゴリズムのうち片 方が危殆化した場合の安全性の維持であることもある。 また,ハイブリッドという用語は,単一の暗号モジュールを構成するコンポジット方式 [13, 16] の文脈で使用される こともあれば,複数の暗号モジュールの出力を入力として受け取り,新たな出力を生成するコンバイナー構造に対して 使用されることもある [8]。 なお,IETF の標準化活動において,ハイブリッド構成による鍵共有方式に関しては一定の合意が見受けられるが [13, 16],ハイブリッド構成によるデジタル署名方式 [17] に関しては合意に時間を要している。 2.3.4 署名用途固有の対策 署名用途の公開鍵暗号は様々なユースケースで利用されるが,PKI 等のインフラの移行に要する時間(Y)やコード サイン証明書が利用される期間(X)が比較的長いことから,速やかな PQC への暗号移行が困難である。この場合に おいても,以下の対応を取ることが望ましい。 PKI においては,一般に Y が長くなる傾向にあるが,電子証明書の有効期間の短縮や,1 枚の電子証明書に対して (既存暗号方式と署名用途の PQC の)2 つの公開鍵及びデジタル署名を付与する方式などを採用することで,Y の短縮 が期待できる [21]。なお,後者の 2 つの公開鍵暗号及びデジタル署名を利用する方式においては,実装やポリシー管理 の複雑さが大きく増加することから,注意を必要とする。 X を実質的に短縮する技術として,タイムスタンプ更新技術が存在する。例えば,ERS[10] 等を利用することで,タ イムスタンプの更新や,暗号方式の更新が可能となる。Z が経過する前に,既存の公開鍵暗号を PQC に更新すること が可能であれば,X,Y,Z の関係によらず,データは保護される。ただし,このアプローチでは,データ構造の複雑さが 増加する傾向があり, (PQC への即時の暗号移行に比べては小さいものの)情報システムの運用費用が増加する点には 注意を必要とする。 2.3.5 守秘及び鍵共有用途固有の対策 既に述べたように,耐量子計算機性を持たせるための一般的な対策は,既存の暗号方式を耐量子計算機性を持つ公開 鍵暗号方式に移行することである。ここで,2.2.2 節及び 2.2.3 節で述べたとおり,守秘及び鍵共有用途で保護されたコ ンテンツや鍵情報は,保護期間が非常に長いことや,場合によっては無期限で保護されることも考えられる。このよう な情報に対するハーベスト攻撃の脅威を考慮すると,当該情報は,将来における CRQC による解読リスクに既に晒さ れていることから,一刻も早く耐量子計算機性を持たせる対応を始めることが望ましい。ただし,全ての守秘及び鍵共 有用途の公開鍵暗号を移行するためには非常に大きなリソースが要求され,現実的なコストでは実現が困難であるおそ れがある。 このような状況においても,守秘及び鍵共有用途固有の対策を効率的に行う方法 [26] として,以下のアプローチが ある。 Z に対して X + Y の値が非常に小さく,X + Y  Z と予測される暗号文に対しては,CRYPTREC による注意喚 起情報 [6] に注意を払いつつ,現在用いている暗号の使用を継続する。また,X + Y > Z となることが十分予想される 暗号文に対しては,2.3 節前段で述べた,PQC への暗号移行や,暗号文の保護期間である X の短縮,情報システムの 35 暗号処理の実装の置き換えに要する期間 Y の短縮を行う。その結果,X や Y の値を十分に小さくすることができるの であれば,現在用いている暗号方式の使用を継続する。 一方で,X + Y > Z と予想される,又は,X + Y > Z となることが避けられない暗号文に対してしては,暗号シス テムの PQC への暗号移行を進めつつも,既存の公開鍵暗号によって保護されている暗号文は公開ネットワーク等に保 管せず,適切にアクセスコントロールを行う。 なお,現在 DH を利用している場合は,2.2.3 節で述べたような検討を行い,DH 固有の性質が必要か否かをあらか じめ検討することが望ましい。 2.4 PQC の活用にむけて PQC への暗号移行においては,どのようなデータに対して,どのような暗号技術を利用しているのかを把握するこ とが第一歩となる。また,保護対象となるデータの保護期間等をあらかじめ把握しておくことで,より効率的な対応が できる [26]。その上で,公開できるデータは公開し,破棄可能なデータは破棄することも検討すべきである。この検討 を進めることで,クリプトグラフィック・アジリティ [12] の確保も見込まれ,より効果的な PQC への移行が期待でき る。CRQC の脅威への対策を検討するにあたっては,保護されている情報の価値,CRQC による攻撃が成功した場合 の影響,図 2.1 における X,Y,Z の関係等を踏まえ,プライオリティを付けて,そのプライオリティ順に対策を実施する ことが望ましい [27, 25]。 36 第 2 章の参照文献 [1] National Security Agency. The Commercial National Security Algorithm Suite 2.0 and Quantum Com- puting FAQ. 2024-04. https://media.defense.gov/2022/Sep/07/2003071836/-1/-1/1/CSI_CNSA_2. 0_FAQ_.PDF. (2025-01-06 閲覧). [2] N. Alnahawi, N. Schmitt, A. Wiesmaier, A. Heinemann, T. Grasmeyer. On the State of Crypto-Agility. Cryptology ePrint Archive, Paper 2023/487. 2023. https://eprint.iacr.org/2023/487. [3] A. Amadori et al. The PQC Migration Handbook. https : / / publications . tno . nl / publication / 34643386/fXcPVHsX/TNO-2024-pqc-en.pdf. 2024-12. (2025-01-06 閲覧). [4] S. Boeyen, S. Santesson, T. Polk, R. Housley, S. Farrell, D. Cooper. Internet X.509 Public Key In- frastructure Certificate and Certificate Revocation List (CRL) Profile. RFC 5280, https://www.rfc- editor.org/info/rfc5280. 2008-05. (2023-04-12 閲覧). [5] CRYPTREC. TLS 暗号設定ガイドライン. CRYPTREC GL-3001-3.0.1, https://www.cryptrec.go.jp/ report/cryptrec-gl-3001-3.0.1.pdf. 2020-07. [6] CRYPTREC. 注意喚起一覧. https://www.cryptrec.go.jp/er.html. (2024-03-05 閲覧). [7] CRYPTREC 暗号技術評価委員会. 注意喚起情報 “現在の量子コンピュータによる暗号技術の安全性への影響”. https://www.cryptrec.go.jp/topics/cryptrec-er-0001-2019.html. [8] F. Driscoll, M. Parsons, B. Hale. Terminology for Post-Quantum Traditional Hybrid Schemes. Internet- Draft. 2024-12. https://datatracker.ietf.org/doc/draft-ietf-pquip-pqt-hybrid-terminology/ 05/. (2025-02-20 閲覧). [9] NIST National Cyersecurity Center of Excellence. Migration to Post-Quantum Cryptography Quantum Readiness: Cryptographic Discovery. NIST SP 1800-38B (initial preliminary draft), https://www.nccoe. nist . gov / sites / default / files / 2023 - 12 / pqc - migration - nist - sp - 1800 - 38b - preliminary - draft.pdf. 2023-12. (2025-02-17 閲覧). [10] T. Gondrom, R. Brandner, U. Pordesch. Evidence Record Syntax (ERS). RFC 4998, https://www.rfc- editor.org/info/rfc4998. 2007-08. (2023-04-12 閲覧). [11] P. E. Hoffman. DNS Security Extensions (DNSSEC). RFC 9364, https://www.rfc-editor.org/info/ rfc9364. 2023-02. [12] R. Housley. Guidelines for Cryptographic Algorithm Agility and Selecting Mandatory-to-Implement Al- gorithms. RFC 7696, https://www.rfc-editor.org/info/rfc7696. 2015-11. (2023-04-12 閲覧). [13] K. Kwiatkowski, P. Kampanakis, B. Westerbaan, D. Stebila. Post-quantum hybrid ECDHE-MLKEM Key Agreement for TLSv1.3. Internet-Draft. 2024-12. https://datatracker.ietf.org/doc/draft- kwiatkowski-tls-ecdhe-mlkem/03/. (2025-02-20 閲覧). [14] M. Lepinski, S. Kent. An Infrastructure to Support Secure Internet Routing. RFC 6480, https://www.rfc- editor.org/info/rfc6480. 2012-02. (2025-01-15 閲覧). 37 [15] M. Mosca. Cybersecurity in a quantum world: will we be ready? Workshop on Cybersecurity in a Post- Quantum World. Session 8. 2015-04. (2024-02-29 閲覧). [16] M. Ounsworth, J. Gray. Composite KEM For Use In Internet PKI. Internet-Draft. 2024-10. https : //datatracker.ietf.org/doc/draft-ietf-lamps-pq-composite-kem/. (2025-01-06 閲覧). [17] M. Ounsworth, J. Gray, M. Pala, J. Klaußner, S. Fluhrer. Composite ML-DSA For use in X.509 Public Key Infrastructure and CMS. Internet-Draft. 2024-10. https://datatracker.ietf.org/doc/draft- ietf-lamps-pq-composite-sigs/03/. (2025-01-15 閲覧). [18] E. Rescorla. The Transport Layer Security (TLS) Protocol Version 1.3. RFC 8446, https://www.rfc- editor.org/info/rfc8446. 2018-08. (2023-04-12 閲覧). [19] Y. Sheffer, R. Holz, P. Saint-Andre. Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS). RFC 7525, https : / / www . rfc - editor . org / info / rfc7525. 2015-05. (2023-04-12 閲覧). [20] P. W. Shor. Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. SIAM J. Comput. Vol. 26, Num. 5 (1997), pp. 1484–1509. [21] D. Stebila, S. Fluhrer, S. Gueron. Hybrid key exchange in TLS 1.3. Internet-Draft. 2024-10. https : //datatracker.ietf.org/doc/draft-ietf-tls-hybrid-design/11/. (2025-02-20 閲覧). [22] D. Stebila, S. Fluhrer, S. Gueron. Hybrid key exchange in TLS 1.3. Internet-Draft. 2025-01. https : //datatracker.ietf.org/doc/draft-ietf-tls-hybrid-design/12/. (2025-02-20 閲覧). [23] R. Zuccherato, P. Cain, Dr. C. Adams, D. Pinkas. Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP). RFC 3161, https://www.rfc-editor.org/info/rfc3161. 2001-08. (2023-04-12 閲覧). [24] デジタル庁, 総務省, 経済産業省. 電子政府における調達のために参照すべき暗号のリスト(CRYPTREC 暗 号リスト). CRYPTREC LS-0001-2022r1, https://www.cryptrec.go.jp/list/cryptrec- ls- 0001- 2022r1.pdf. 2024-05. [25] 伊藤 忠彦. 耐量子計算機暗号への移行へ向けた課題と社会実装への論点整理. 電子情報通信学会誌. Vol. 106, Num. 11 (2023), pp. 1026–1030. [26] 伊藤 忠彦, 宇根 正志, 清藤 武暢. 量子コンピュータによる脅威を見据えた暗号の移行対応. 2019-08. https: //www.imes.boj.or.jp/research/papers/japanese/19-J-15.pdf. (2025-01-06 閲覧). [27] 預金取扱金融機関の耐量子計算機暗号への対応に関する検討会. 預金取扱金融機関の耐量子計算機暗号への対 応に関する検討会報告書. 2024-11. https://www.fsa.go.jp/singi/pqc/houkokusyo.pdf. (2025-01-06 閲覧). 38 第3章 格子に基づく暗号技術 本章では格子に基づく暗号技術についてまとめる。格子に基づく暗号技術の安全性は,LWE (Learning with Errors) 問題,LWR (Learning with Rounding) 問題,NTRU 問題,およびそれらの変種等を含む格子理論に関係する問題を 解く計算の困難性に依存している。 3.1 格子に基づく暗号技術の安全性の根拠となる問題 3.1.1 LWE 問題と代表的な求解法 本節では,2005 年 Regev が提案した LWE 問題 [133] を紹介すると共に,格子を利用した LWE 問題に対する求解 法を紹介する。また,LWE 問題のいくつかの変種についても言及する。 3.1.1.1 LWE 問題の紹介 LWE 問題は機械学習理論から派生した求解困難な問題で,整数剰余類環 Zq 上の秘密ベクトル s ∈ Znq に関するラ ンダムな連立線形「近似」方程式が与えられたとき,その秘密ベクトルを復元する問題である。具体的な数値例として n = 4, q = 17 に対して,秘密ベクトル s = (s1 , s2 , s3 , s4 ) ∈ Z417 に関する連立線形近似方程式    14s1 + 15s2 + 5s3 + 2s4 ≈ 8 (mod 17)     13s 1 + 14s 2 + 14s 3 + 6s 4 ≈ 16 (mod 17) 6s1 + 10s2 + 13s3 + s4 ≈ 12 (mod 17)   ..   .   6s1 + 7s2 + 16s3 + 2s4 ≈ 3 (mod 17) が与えられたとする。(この数値例は [135] から引用した。) ただし,各線形方程式の値は近似値であり,その誤差はこ の例では ±1 以内と仮定する。このとき,この連立線形近似方程式の解 s を求めるのが LWE 問題である。ここに示し た数値例では s = (0, 13, 9, 11) ∈ Z417 が解となる。LWE 問題で注意すべきことは,連立線形近似方程式に誤差がない 場合は,Gauss の消去法により効率的に解を求めることができる点である。逆に言うと,連立線形近似方程式で与えら れる誤差の大きさが LWE 問題の求解を困難にする。 ■ 離散 Gauss 分布 一般に,LWE 問題における連立線形近似方程式の各行の誤差は,平均 0,パラメータ σ >0 の Z 上  πx2 の離散 Gauss 分布 χ = DZ,σ から生成される*1 。より正確には,χ は各整数 x がサンプルされる確率が exp − σ2 に比例する Z 上の離散確率分布である。この分布は,数学的な正規分布*2 とは異なるが,絶対値の大きな値が生成さ *1 本章では,記号 σ を Gauss 分布のパラメータ (標準偏差とは異なる) の意味で使い,署名を表すときには sig を用いる。 2 12 √ e−z /(2t ) により定義されるため, 2π 倍のずれがある。暗号の安 *2 分散 t2 に対して数学的な正規分布 N (0, t2 ) は,確率密度関数が √ 2πt 全性を議論する際に格子上のフーリエ変換が用いられることが多く [133],本文中の定義を用いることで,数式の表現が簡潔となる。 39 れる確率が非常に小さいという性質は共通している。例えば,絶対値が 3σ より大きな整数がサンプルされる確率は非 常に小さい。離散 Gauss 分布の詳細については [101] などを参照。 離散 Gauss 分布を厳密に出力するルーチンを実装するのは容易ではなく,また生成時間を一定にすることは困難で あるため,timing attack などの脆弱性 [40] が生まれる可能性がある。現実の方式 (3.3 節参照) においては,誤差 (ノ イズ) として離散 Gauss 分布との統計距離が小さい分布を用いている。 n×m また,記号 DZ,s を,各要素を DZ,s から独立に生成した n × m 行列とする。 ■ LWE 問題の定式化 以下は,定式化された LWE 問題である: 定義 3.1 (LWE 問題 [133]) n を正の整数とし,q を奇素数とする。平均 0,パラメータ σ の Z 上の離散 Gauss 分布 を χ = DZ,σ とする。秘密ベクトル s ∈ Zn q を固定する。一様ランダムに選ばれた a ∈ Zq と離散 Gauss 分布 χ から n サンプルされた e ∈ Z に対して,(a, b) ∈ Zn q × Zq の組を出力する確率分布を Ls,χ とする。ただし,b ≡ ha, si + e (mod q) とする。(2 つのベクトル v と w の内積を hv, wi で表す。) このとき,次の 2 つの問題を考える: 1. 判定 LWE (Decision-LWE) 与えられた組 (a, b) ∈ Znq × Zq が,確率分布 Ls,χ からサンプルされた元か,Znq × Zq 上一様ランダムに生成された元かを決定する問題。 2. 探索 LWE (Search-LWE) 確率分布 Ls,χ からサンプルされた組 (a, b) から秘密ベクトル s を復元する問題。 一般に,ここに示した 2 つの LWE 問題において確率分布 Ls,χ は任意個の組 (a, b) をサンプルするオラクルとして みなす。具体的には,ある固定したサンプル数 m > 0 に対して,確率分布 Ls,χ からサンプルされた異なる m 個の組    (a1 , b1 ), b1 ≡ ha1 , si + e1 (mod q)    (a2 , b2 ), b2 ≡ ha2 , si + e2 (mod q)  ..   .    (am , bm ), bm ≡ ham , si + em (mod q) から LWE 問題を解くことを考える。(解読に要する計算時間が最も短くなるような m を攻撃者が選べることを想定す る。) 第 i 行ベクトルを ai とする m × n 行列を A とし,b = (b1 , b2 , . . . , bm ) とおく。このとき,ここに示した m 個 の LWE サンプルの組は (A, b) ∈ Zm×n q × Znq と簡潔に表せて,関係式 b ≡ sA⊤ + e (mod q) を満たす。ただし, e = (e1 , e2 , . . . , em ) ∈ Zm をノイズベクトルとする。(各 ei は χ からサンプルされた元であることに注意する。) ■ LWE 問題の変種 LWE 問題の変種として,多項式環 Rq = Zq [x]/(ϕ) 上の LWE である Ring-LWE [149, 107]*3 や Module-LWE [97] がある。Ring-LWE では,3 つの多項式 s, ai , ei ∈ Rq に対する Ring-LWE サンプルとして {(ai , ai · s + ei )}m i=1 を考える。(特に,通常の LWE 問題と同じように,ランダムな s と,係数が小さい多項式の集合か らサンプリングされた ei が用いられる。) Ring-LWE の基礎環 Rq を定める多項式として,2 のべき乗の形をした整数 n に対し ϕ = xn + 1 がよく用いられる。また,Module-LWE では,多項式ベクトル s, ai ∈ Rqk と多項式 ei ∈ Rq に対 する Module-LWE サンプルとして {(ai , hai , si + ei )}m i=1 を考える。Module-LWE の基礎環 Rq を定める多項式とし ては ϕ = xn/k + 1 がよく用いられる。さらに,環上の LWE 以外の LWE 問題の変種として,丸め込み(rounding)で ノイズベクトルを生成する LWR[24] や middle-product と呼ばれる多項式演算を用いる Middle-product LWE [136] など数多くの変種が提案されている。 *3 文献 [107] ではより一般的に整数環とイデアルを用いて定義されているが,後の文献 [39] ではそれの簡略化として,多項式環 Rq を用いた表 現である “polynomial-LWE assumption” が提案された。現在では,後者の表現の方が Ring-LWE と呼ばれている。 40 3.1.1.2 格子の基本事項と q-ary 格子の紹介 ■ 格子の基本事項 m 次元実ベクトル空間 Rm の一次独立な m 個のベクトル b1 , b2 , . . . , bm の整数係数の線形結合 Pm 全体 L = { i=1 xi bi : xi ∈ Z, 1 ≤ i ≤ m} を (完全階数の) m 次元格子と呼ぶ。特に,格子 L はベクトル空間 R m の (離散) 加法部分群である。また,格子 L を生成する一次独立な m 個のベクトルの組 {b1 , b2 , . . . , bm } を基底と呼 び,各 bi を基底ベクトルと呼ぶ。さらに,行ベクトルで表した基底ベクトル bi ∈ Rm を行として持つ m × m 行列 B = (bi )m i=1 を格子 L の基底行列と呼ぶ。2 次元以上の格子を生成する異なる基底は無限に存在し,同じ格子を生成す る 2 つの基底行列 B1 と B2 に対し B2 = VB1 を満たす m × m のユニモジュラ行列 V が存在する。また,基底行列 B を用いて,格子 L の体積を vol(L) = | det(B)| と定める。(体積は基底の取り方に依存しない。) 格子 L の第 1 逐次最 小は L 上の最短な非零ベクトルの Euclid ノルムを指し,λ1 (L) と表す。この長さを持つベクトル v ∈ L を発見する計 算問題を最短ベクトル問題(Shortest Vector Problem: SVP)と書く。定数 γ > 1 に対して,γλ1 (L) よりも短いベクト ルを発見する計算問題を近似最短ベクトル問題と呼び,近似因子 γ を明示して γ-SVP と書く。また,点 w ∈ Rm と格 子基底が与えられたときに,w との距離が最小となる格子点を発見する計算問題を最近ベクトル問題(Closest Vector b = {x ∈ Rm : hx, yi ∈ Z (∀y ∈ L)} Problem: CVP)と書く。ベクトル空間 Rm の完全階数の格子 L に対し,集合 L  を格子 L の双対格子と呼ぶ。また,格子 L の基底行列 B に対して,B b = B−1 ⊤ は双対格子 L b の基底行列となり, b を双対基底行列と呼ぶ。単位行列 Im に対し BB この B b ⊤ = Im を満たすので,vol(L) × vol(L) b = 1 が成り立つ。 ■ q-ary 格子 ここでは,LWE 問題の求解で利用する特殊な格子を紹介する。正の整数 q に対して,qZm ⊆ L ⊆ Zm を満たす完全階数の m 次元格子 L を q-ary 格子と呼ぶ。2 つの自然数 m > n に対し,任意の正の整数 q と n × m 整 数行列 X に対する 2 つの m 次元 q-ary 格子を  Λq (X) = {y ∈ Zm : ∃s ∈ Zn s.t. y ≡ sX (mod q)} , Λ⊥ ⊤ q (X) = y ∈ Z : yX ≡ 0 (mod q) m と定義する。(これらの集合は Rm の離散加法部分群なので格子である。) 正規化の差を除き,これら 2 つの q- ary 格子は互いに双対の関係にある。正確には Λ⊥ \ \⊥ q (X) = q Λq (X) と Λq (X) = q Λq (X) が成り立つ。また,群 準同型写像 f : Zm −→ (Zq )n , y 7−→ yX⊤ (mod q) の核は q-ary 格子 Λ⊥ q (X) なので,群の準同型定理から vol(Λ⊥q (X)) vol(Λ⊥ q (X)) = [Z m : Λ ⊥ q (X)] = #Im(f ) が成り立つ。 ( 群の指数 [Z m : Λ ⊥ q (X)] は格子の体積の比  vol(Zm ) ⊥ n に一致することに注意する。) これより,体積 vol Λq (X) は q を割る。さらに,元の格子と双対格子の体積 の関係か ら ,q m−n は体積 vol (Λq (X)) を 割る こと が分 かる。(ただし,ほとんどの行列 X に対して 写像 f は  全射で,その時 vol Λ⊥ q (X) = q n と vol (Λq (X)) = q m−n が成り立つ。) q-ary 格子 Λq (X) 上のベクトルは ! X y = sX + qz (s ∈ Zn , z ∈ Zm ) とかけるので,その格子は (n + m) × m 整数行列 の一次従属な (n + m) 個の行 qIm ベクトルで生成される。この生成行列の Hermite Normal Form を計算することで,m 次元 q-ary 格子 Λq (X) の基底行 列 B ∈ Zm×m が得られる。また,双対基底の性質から,もう片方の q-ary 格子 Λ⊥ q (X) の基底行列は (qB −1 ⊤ ) ∈ Zm×m で得られる。 3.1.1.3 LWE 問題の代表的な求解法 LWE 問題の代表的な求解法として,最短ベクトル問題や最近ベクトル問題に帰着する方法がある。これらの手法は LWE 問題の困難性に基づいた暗号方式の解読困難性を評価するデファクトスタンダードの手法となっている。LWE 問題のインスタンスから変換される q-ary 格子の種類から,Dual attack,Primal attack という分類がなされ,それぞ れ判定版 LWE 問題,探索版 LWE 問題の評価手法として確立されている。 ■ 判定 LWE 問題に対する求解(Dual Attack) 判定 LWE 問題を SIS (Short Integer Solution) 問題に帰着して解 く方法を紹介する:正の整数 q と,0 < β < q を満たす実数 β を固定する。各成分が剰余環 Z/qZ 上一様ランダム 41 に選ばれた n × m 整数行列 X に対して,kvk ≤ β かつ vX⊤ ≡ 0 (mod q) を満たす非零ベクトル v ∈ Zm を見つ ける問題を SIS 問題と呼ぶ。つまり,これは q-ary 格子 Λ⊥ q (X) 上の短い非零ベクトルを見つける問題である。剰 余パラメータ q における LWE 問題のサンプル数を m とし,m 個の LWE サンプルの組を (A, b) ∈ Zm×n q × Zm q とする。ここで,n × m の転置行列 A⊤ に対する SIS 問題の短い解ベクトル v ∈ Λ⊥ ⊤ q (A ) が得られたとする (0 < kvk ≤ β と仮定)。このとき,LWE サンプルの組 (A, b) は関係式 b ≡ sA⊤ + e (mod q) を満たすので, hv, bi ≡ hv, sA⊤ + ei ≡ hvA, si + hv, ei ≡ hv, ei (mod q) が成り立つ (vA ≡ 0 (mod q) に注意) 。さらに,ノイズ √ √ ベクトル e のすべての成分 ei は離散 Gauss 分布 χ からサンプルされた元なので,|hv, ei| ≲ σ mkvk ≤ σβ m が期 √ 待できる。(離散 Gauss 分布 χ = DZ,σ のサンプル元 ei の絶対値はおおよそ σ 未満で,多めに見積もって kek ≲ σ m √ とした。) ゆえに,σβ m  q ならば,|hv, bi| (mod q) の値の大きさから LWE サンプルの組 (A, b) は確率分布 Ls,χ からサンプルされたものか判定できる。 ■ 探索 LWE 問題に対する求解法 (Primal Attack) 探索 LWE 問題を BDD (Bounded Distance Decoding) 問 1 題に帰着して解く方法を紹介する:格子 L と目標ベクトル w に対し,ある 0 < µ ≤ が存在し dist(w, L) = 2 minv∈L kw − vk < µλ1 (L) を満たすと仮定する。格子 L の基底が与えられたとき,目標ベクトル w に最も近い格 子ベクトル v ∈ L を見つける問題を BDD 問題と呼ぶ。m 個の LWE サンプルの組 (A, b) ∈ Zqm×n × Zm q は関係式 b ≡ sA⊤ + e (mod q) を満たすので,探索 LWE 問題は b を目標ベクトルとする q-ary 格子 Λq (A⊤ ) 上の BDD 問題 とみなせる。実際,目標ベクトル b = sA⊤ + e+ qz (∃z ∈ Zm ) に対して,格子ベクトルを v = sA⊤ + qz ∈ Λq (A⊤ ) と おくと,b − v = e が成り立つ。ノイズベクトル e のすべての成分 ei は離散 Gauss 分布 χ からサンプルされた元であ σ √ るため,分散と次元が大きい場合にはおおよそスケーリングされたカイ二乗分布に従い,高い確率で kek ≈ √ · m √ 2π となる。ゆえに,目標ベクトル b との距離が σ m 以下となる q-ary 格子 Λq (A⊤ ) 上の格子ベクトル v を見つけるこ とで,ノイズベクトル e を復元することができる。実用的には,Kannan や Bai-Galbraith らの埋め込み法 [94, 21] に より,BDD 問題を unique-SVP に帰着してからノイズベクトル e を復元する。 注意 3.2 (LWE 問題の変種に対する求解) LWE 問題の代表的な変種である Ring-LWE や Module-LWE では,上 述したように多項式環 Rq = Zq [x]/(ϕ) を基礎環として利用する。n 次多項式 ϕ に対して,基礎環 Rq = Zq [x]/(ϕ) の任意の元は n − 1 次以下の多項式 f = f0 + f1 x + · · · + fn−1 xn−1 (fi ∈ Zq ) と表せ,その係数ベクトル f = (f0 , f1 , . . . , fn−1 ) ∈ Znq と一対一に対応する。このように,基礎環 Rq の元をその係数ベクトルに対応させることで, Ring-LWE や Module-LWE 問題は通常の LWE 問題と同じようにベクトル・行列の形で表現できる。(詳細は [5] を参 照。また,ベクトル・行列の形の表現については,次で説明する NTRU 問題も参照。 )ベクトル・行列の形で表現した Ring-LWE や Module-LWE 問題に対して,上述で説明した通常の LWE 問題の求解法が適用できる。 3.1.2 NTRU 問題と代表的な求解法 ここでは,NTRU 問題とその代表的な求解法を紹介する。まず以下で,NTRU 問題について述べる: 定義 3.3 (NTRU 問題 [87]) 2 つの正の整数 n と q に対し,ϕ ∈ Z[x] を次数 n の多項式とし,Rq = Zq [x]/(ϕ) とす る。係数が小さい 2 つの多項式 f ∈ Rq× , g ∈ Rq に対して,h = g · f −1 ∈ Rq とする。(特に,f は環 Rq の可逆元に注 意。) このとき,与えられた多項式 h から,f または g の多項式を復元する問題を (探索) NTRU 問題という。 Pn−1 NTRU 問題における多項式 ϕ の選び方として,ϕ = xn ± 1, xn − x − 1, xn − xn/2 + 1, i=0 x i などがある [7, Table 1]。(最後の ϕ のみ次数は n − 1 である。) また,多項式 f (または g) の選び方として,{−1, 0, 1} などの小さい 係数を持つ多項式や,小さい素数 p と係数が小さい多項式 F に対し f = pF または f = pF + 1 と選ぶことが多い。 42 次に,NTRU 問題の代表的な求解法を紹介する。まず,与えられた多項式 h ∈ Rq に対して,h の回転行列を H ∈ Zn×n とする。(具体的には,n × n 整数行列 H の i 行ベクトルを多項式 xi−1 h ∈ Rq を次数の昇順に並べた係数 ベクトルとする。) このとき     1 h  x    xh     H ..=  ∈ Rqn ..  .   . xn−1 xn−1 h ! In H が成り立つ。ここで,2n × 2n 行列 B = の行ベクトルで生成される NTRU 格子を L とすると,短いベ 0 qIn クトル (f | g) ∈ Z2n を含む。(ただし,f , g ∈ Zn を多項式 f, g ∈ Rq の係数ベクトルとする。) 実際,hf = g (mod q) より,g = hf + qr を満たす多項式 r ∈ Rq が存在する。また,多項式 r の係数ベクトルを r ∈ Zn とすると,         1 h 1 1  x   xh  x   x         g ..  = g = hf + qr = f   + qr  ..  = (fH + qr)  ..  ∈ Rq..  .    .   .   . xn−1 xn−1 h xn−1 xn−1 となるので,g = fH + qr が成り立つ。これより,(f | g) = (f | fH + qr) = (f | r)B ∈ L が成り立つ。 (つまり,ベク トル (f | g) が NTRU 格子 L に含まれる。)ベクトル (f | g) ∈ Z2n が十分短く NTRU 格子 L 上の最短ベクトルと仮 定すると,これは NTRU 問題を SVP に帰着できることを示している。多くの方式で用いられる ϕ = xn ± 1 に対し ては,最短ベクトル (f | g) の各ブロックにおける回転で得られるベクトルも NTRU 格子 L に含まれるので,一般に NTRU 格子 L は複数の最短ベクトルを含む。 3.1.3 格子問題を解くアルゴリズムとその計算量について SVP・CVP の格子問題やここまでに紹介した LWE 問題・NTRU 問題などの格子問題を解くのに有用な技術とし て格子基底簡約がある。格子基底簡約は,与えられた格子 L の基底から,各ベクトル bi が短く・互いのベクトルが直 交に近い格子 L の新しい基底 {b1 , b2 , . . . , bm } を見つける操作である。(明確な定義はないが,このような基底を「簡 約基底」または「良い基底」と呼ぶ。) 3.1.3.1 代表的な格子基底簡約アルゴリズムの紹介 基底簡約アルゴリズムを紹介するために,Gram-Schmidt の直交化を説明する:基底 {b1 , b2 , . . . , bm } の Gram- X i−1 hbi , b∗j i Schmidt ベクトル b∗i は次のように再帰的に定まる:b∗1 = b1 , b∗i = bi − µi,j b∗j , µi,j = 。また,各 j=1 kb∗j k2 2 ≤ ℓ ≤ m に対し Rm から R-ベクトル空間 hb1 , b2 , . . . , bℓ−1 iR の直交補空間への直交射影を πℓ とかく。 (便宜上, π1 を恒等写像とする。) 以下で,代表的な 2 つの格子基底簡約アルゴリズムを紹介する。 1 ■ LLL [99] 簡約パラメータ < δ < 1 に対し,LLL 基底簡約は次の 2 条件を満たす基底 {b1 , b2 , . . . , bm } を 4 見つける (次元 m に関する)多項式時間アルゴリズムである: (i) 基底 {b1 , b2 , . . . , bm } はサイズ簡約されてい 1 る:Gram-Schmidt 係数が |µi,j | ≤ (∀i > ∀j) を満たす。 (ii) 基底 {b1 , b2 , . . . , bm } は Lovász 条件を満たす: 2 ∗ δkbk−1 k ≤ kπk−1 (bk )k (2 ≤ ∀k ≤ m) を満たす。入力基底に対して,Lovász 条件が成り立たないとき LLL 基底簡 2 2 約アルゴリズム内で隣り合う基底ベクトル bk−1 と bk の交換を行い,基底をサイズ簡約する。この操作を (i) と (ii) の 2 条件を満たすまで繰り返すことで LLL 簡約基底が計算される。 ■ BKZ [142] BKZ 基底簡約アルゴリズムは,ブロックサイズ β による LLL 基底簡約アルゴリズムの一般化である。 LLL に比べ,BKZ 基底簡約アルゴリズムでより良い簡約基底を見つけることが可能であるが,その計算量は β に関し 43 て指数時間である。特に,BKZ 基底簡約アルゴリズムに入力するブロックサイズ β を増やすごとに,実行時間が非常 に遅くなるが,より短い基底ベクトルを出力する。具体的には,ブロックサイズ 2 ≤ β ≤ m に対して,BKZ 基底簡約 アルゴリズムは次の 2 つの条件を満たす格子 L の基底 {b1 , b2 , . . . , bm } を見つける: (i) 基底はサイズ簡約されてい る。 (ii) すべての 1 ≤ j ≤ m に対し kb∗j k = λ1 (L[j,k] ) を満たす。ただし,k = min(j + β − 1, m) とし,射影ベクトル πj (bj ), . . . , πj (bk ) で生成されるブロック射影格子を L[j,k] とする。入力基底に対して,BKZ 基底簡約アルゴリズム 内ではブロック射影格子 L[j:k] 上の SVP オラクルを繰り返し呼びだし,(i) と (ii) の 2 条件を満たす基底を見つける。 3.1.3.2 BKZ 基底簡約アルゴリズムの出力基底と計算量 これまで BKZ2.0 [46] などの効率的な BKZ の改良アルゴリズムが提案され,格子に基づく暗号技術の安全性評価で 頻繁に利用されている。以下で,BKZ の出力基底と計算量評価の見積もりについて紹介する。 (詳細は [7] を参照。) ■ BKZ の出力基底の見積もり 格子基底簡約アルゴリズムが出力する簡約基底の「良さ」を測る指標として Hermite 因子がある。m 次元格子 L の基底が与えられたとき,アルゴリズムが出力する最短な基底ベクトルを b ∈ L とする。 kbk このとき,その基底簡約アルゴリズムの Hermite 因子は γ = で定義される。(つまり,Hermite 因子が小さ vol(L)1/m いほど,より短い基底ベクトルの出力を意味する。) 100 以上の高次元のランダム格子に対し,LLL や BKZ などの基 底簡約アルゴリズムの Hermite 因子の m 乗根 γ 1/m は格子の次元 m によらず定数に収束することが実験的に知られ ている。高い次元 m のランダム格子において,ブロックサイズ β ≥ 50 に対する BKZ 基底簡約アルゴリズムの root Hermite 因子はおおよそ   β−1 1   2(β−1) 1 1 −1 β 1 γm ≈ νβ β ≈ (πβ) β 2πe に従うことが実験的に知られている [46, 159]。ただし,νβ は β-次元の単位超球の体積とする。(例えば,β = 85 で γ 1/m ≈ 1.01 となる。) この root Hermite 因子の見積もりを用いて,格子に基づく暗号技術の安全性評価対象の格子 問題の求解で必要となる BKZ のブロックサイズ β を求めることができる。 ■ BKZ の計算量の見積もり BKZ 基底簡約アルゴリズムの計算量は,β 次元格子上の「SVP オラクルの計算量」 ふるい と「呼び出し回数」の積で見積もることができる。β 次元格子上の SVP オラクルに適したアルゴリズムとして 篩 (sieving) と数え上げ (enumeration) があり,篩の方が漸近計算量が小さい。(ただし,数え上げの空間計算量が β に 関して多項式的であるのに対し,篩の空間計算量は β に関して指数関数的である。) 具体的には,β 次元格子上の篩 の時間計算量は 2cβ+o(β) で,古典計算機上では c = 0.292 で,Montanaro の量子木探索アルゴリズムによって量子 計算機上で c = 0.265 と見積もられている。一方,数え上げの時間計算量は古典計算機上で 2c1 βlogβ+c2 β+c3 または 2 2c1 β +c2 β+c3 で,Grover アルゴリズムにより量子計算機上ではその指数部分が半分になると見積もられている。(定数 c1 , c2 , c3 に関しては様々な評価値があり,具体的な値については [7, Table 4] を参照。) また,BKZ 内の SVP オラク ルの呼び出し回数については,β または 8m と見積もることが多い。 (β は BKZ のブロックサイズで,m は格子の次 元とする。) ■ Core-SVP による安全性レベルの見積もり 上述の LWE や NTRU の探索問題の求解において,秘密情報に対応する ベクトル v を帰着先の格子 L の最短ベクトルとして埋め込み,L の基底に BKZ 基底簡約アルゴリズムを適用すること で目的の v を見つけることを考える。(具体的には,目的の v は,探索 LWE 問題では q-ary 格子上のノイズベクトル e で,NTRU 問題では NTRU 格子上のベクトル (f | g) を想定する。 )ここで,{b1 , . . . , bm } を格子 L の β-BKZ 簡約基 底とし,{b∗1 , . . . , b∗m } をその Gram-Schmidt ベクトルとする。Gaussian Heuristic と Geometric Series Assumption (GSA)の仮定の下で,目的ベクトル v の m − β の位置における射影ベクトル πm−β (v) ∈ πm−β (L) の長さが   2(β−1) 1 β kπm−β (v)k < kb∗m−β k ≈ δβ2β−m−1 vol(L) m , 1 1 δβ = (πβ) β 2πe 44 を満たせば,BKZ 基底簡約の基底ベクトルとして目的の v を見つけることができる。(探索 LWE 問題に対する BKZ による求解実験については,[10, 129] を参照。 )この不等式を満たす BKZ のブロックサイズ β に対して,BKZ 基底簡 約アルゴリズムのサブルーチンである β-次元 SVP アルゴリズムの 1 回の計算困難性を Core-SVP 困難性と呼ぶ [12]。 格子に基づく暗号方式の具体的な安全性レベルは,Core-SVP 困難性で評価・比較されることが多い。 3.1.3.3 格子問題の公開チャレンジの求解状況 SVP や LWE に対する求解アルゴリズムをテストする目的で,ドイツ・ダルムシュタット工科大学によって「SVP チャレンジ」・「LWE チャレンジ」と呼ばれる求解コンテストがインターネット上で開催されている [56]。2018 年に, ふるい 篩 をベースとした高速な格子アルゴリズム群である General Sieve Kernel (G6K)[9] が提案され,SVP チャレンジ・ LWE チャレンジの求解記録が飛躍的に更新された。具体的には,SVP チャレンジにおいては,G6K 内の篩アルゴリ ズムを GPU 実装することで,180 次元の SVP インスタンスが 4 台の NVIDIA Turing GPU と 1.5TBytes の RAM を搭載した計算機を用いて 51.6 日で求解されたと 2021 年 2 月に報告されている [69]。 (ただし,本報告では Gaussian Heuristic で期待される最短ベクトル長に対する近似因子が 1.04002 なので,今回 見つかった格子ベクトルは 180 次元 SVP インスタンスの厳密解ではなく近似解である。 )また 2023 年 7 月に,186 次 元の SVP インスタンスに対して,次のスペックを持つ計算機システムで約 50 日程度で近似因子が 1.01405 の非常に 短い格子ベクトルを見つけることに成功している(計算時間の内訳は,Progressive pnj-BKZ による基底簡約に 12.3 日,Sieving に短い格子ベクトルの探索に 38 日かかったと報告されている)[57]。 • CPU: 1 ∗ Intel Xeon Gold 6330, 56 threads @ 2.00GHz • GPU: 4 ∗ NVIDIA A100 80GB PCle • Max RAM used: 1441.6685 GB さらに,2024 年 7 月に,190 次元の SVP インスタンスに対する近似因子 1.04237 のベクトルが発見されている。G6K ライブラリによる β = 155~158 の篩アルゴリズムを,4 台の NVIDIA GeForce RTX 4090 と 1.5TBytes の RAM を 搭載した計算機,および 3 台の NVIDIA GeForce RTX 4090 D と 2.0TBytes の RAM を搭載した計算機を協調させ て動かすことで記録を出したと報告されている。 LWE チャレンジでは,(n, α) = (40, 0.040), (45, 0.030), (50, 0.025), (55, 0.020), (90, 0.005) の数多くの LWE インス タンスが G6K 内の progressive-BKZ の改良により求解されたと 2022 年 6~10 月に報告されている。(n は LWE の 秘密ベクトル長で,α はノイズの大きさに関するパラメータで,組 (n, α) のバランスで LWE インスタンスの難しさが 大きく変化する。 )例えば,(n, α) = (50, 0.025) と (40, 0.040) の 2 つの LWE インスタンスに対して,次のスペックを 持つ計算システムでそれぞれ約 592 時間と約 683 時間で求解されている [158]: • CPU:AMD EPYC 7002 Series 128@2.6GHz • RAM:1.5TBytes • GPU:8 ∗ NVIDIA GeForce RTX 3090 • VRAM:8 ∗ 24GB(936.2 GB/s) 2024 年 9 月には,(n, α) = (95, 0.005) の LWE インスタンスに対して,最大 144 の篩次元を用いて約 46 日で求解し たと報告されている。使用した計算機は 8 台の NVIDIA RTX 4090, 2 基の Intel Xeon Platinum 8480+, 2TBytes RAM を搭載している。 45 3.2 格子に基づく代表的な暗号方式 本節では,格子に基づく代表的な暗号方式として,LWE 問題に基づく Regev による公開鍵暗号方式 [133] およ び Lindner, Peikert による公開鍵暗号方式 [101],Ring-LWE 問題に基づく Brakerski らによる公開鍵暗号方式 [39], NTRU 問題に基づく Hoffstein らによる公開鍵暗号方式 [87],Hash-and-Sign に基づく署名方式の格子問題への拡張, ならびに Fiat-Shamir 署名方式の格子問題への拡張について述べる。 3.2.1 LWE に基づく Regev による公開鍵暗号方式 Regev による公開鍵暗号方式 [133] の構成には,以下の 4 つのパラメータが必要である。 • n: 安全性パラメータ • m: LWE サンプルの個数 (m ≥ 1.1 · nlogq となる最小の整数を選ぶ) • q: 剰余パラメータ (q として n2 ≤ q ≤ 2n2 を満たす素数を選ぶ) √ • α > 0: ノイズパラメータ (α = 1/( n · log2 n)) 以下に具体的な暗号方式の構成を示す。 秘密鍵の生成 一様ランダムに s ← Zn q を選ぶ。 公開鍵の生成 秘密鍵 s,剰余パラメータ q ,ノイズパラメータ α を持つ LWE 分布から生成した m 個のサン i=1 ← As,χ を公開鍵とする。ただし各 i について,a ← Zq , ei ← χ = DZ,αq とした時, プル (ai , bi )m m n bi = hai , si + ei ∈ Zq とする。 暗号化 集合 S を {1, 2, . . . , m} の中から一様ランダムに選んだ部分集合とする。平文 ! µ{0, 1} を以下のように暗 X X 号化する。平文ビットが 0 のとき,暗号文を ai , bi とする。平文ビットが 1 のとき,暗号文を ! i∈S i∈S X jqk X ai , + bi とする。 2 i∈S i∈S jqk 復号 暗号文 (a, b) に対し,b − ha, si ∈ Zq が より 0 に近い場合,復号結果として 0 を出力し,それ以外の場合は 2 1 を出力する。 ! X X X 復号の正当性について,平文 0 を暗号化した暗号文 (a, b) = a, bi の場合,b − ha, si ∈ Zq = (bi − X q X q i∈S i∈S i∈S hai , si) = ei なので,− < ei < であれば復号に成功し,0 が出力される。 4 4 i∈S i∈S P √ 各ノイズ ei は離散 Gauss 分布 χ = DZ,αq から選ばれているので, i∈S ei の標準偏差は高々 mαq となる。 √ ここで,各パラメータの選択方法から mαq < q/logn であり,非常に高い確率で復号に成功することが分かる。ま た平文 1 を暗号化した暗号文に対しても同様の議論が成り立つ。この暗号方式の安全性については,LWE 仮定の下で IND-CPA 安全であることが証明されている [134]。 e 2 ) で,暗号文サイズも平文サイズの ここで紹介した [133] による暗号方式は,公開鍵のサイズが O(mnlogq) = O(n e O(nlogq) = O(n) 倍に増加するため,決して効率的ではない。より効率的な方式としては [124] などを参照。 3.2.2 LWE に基づく Lindner, Peikert らによる公開鍵暗号方式 Lindner,Peikert らによる公開鍵暗号方式 [101] の構成には,以下のパラメータが必要である。 46 • n1 , n2 LWE 問題の安全性パラメータ • sk , se : 鍵生成時,暗号化時のノイズ付与のための離散 Gauss 分布パラメータ • q : q-ary 格子を構成する剰余パラメータ (q > 2) • l : 平文空間の次元,{0, 1}l を平文の対象空間とする 以下に具体的な暗号方式の構成を示す。 1 ×n2 n2 ×l n1 ×l 鍵生成 一様ランダムに A ← Zn q を選ぶ。S ← DZ,s k を秘密鍵とする。E ← DZ,s k を生成し,P = E − AS ∈ Znq 1 ×l を計算。(A, P ) を公開鍵とする。 暗号化 暗号化用のノイズとして (e1 , e2 , e3 ) ← DZ,s 1×n1 × DZ,s 1×n2 × DZ,s 1×l をサンプリング。メッセージ m ∈ {0, 1}l に e jqk e e ) とし c を暗号文とする。 対して c = (e1 A + e2 , e1 P + e3 + m 2 q 復号 v = c1 S + c2 を求め,各要素毎に m′i を |vi | < であれば 0,それ以外であれば 1 として m′ = (m′1 , . . . , m′l ) を 4 復号文とする。 jqk 復号の正当性について,暗号文 c = (e1 A + e2 , e1 P + e3 ) に対し,v = c1 S + c2 = e1 AS + e2 S + e1 P + e3 + m = jqk 2 e2 S + e1 E + e3 + m となる。秘密鍵 S ならびに E の各成分は,Gauss 分布 DZ,sk から,各ノイズ ei の成分は 2 q Gauss 分布 DZ,se から選ばれており,また sk , se の選び方から,高い確率で |v| < se sk (n1 + n2 ) < を満たし,復号 4 に成功することが分かる。この暗号方式の安全性については LWE 仮定の下で IND-CPA 安全であることが証明され ている。 3.2.3 Ring-LWE に基づく Brakerski らによる公開鍵暗号方式 Brakerski らによる Ring-LWE 問題に基づく公開鍵暗号方式は,暗号化したまま限定回の加算と乗算が可能な somewhat 準同型暗号として提案されているものである。この暗号方式には,以下の 4 つのパラメータが必要である。 • n: 2 のべき乗の整数で,暗号方式を構成する基礎的な環 R = Z[x]/(xn + 1) を定義する (n が 2 べきであること から,多項式 xn + 1 が Z 上既約となることに注意)。 • q: q ≡ 1 (mod 2n) を満たす素数で,暗号文空間の基礎環 Rq = Zq [x]/(xn + 1) を定義する。 • t: 条件 t < q を満たす整数で,暗号方式の平文空間 Rt = Zt [x]/(xn + 1) を定義する。 • σ > 0: ノイズを与えるための離散 Gauss 分布のパラメータ。 以下に具体的な暗号方式の構成を示す。なお,a0 + a1 x + · · · + an−1 xn−1 → (a0 , a1 , . . . , an−1 ) によって,環 R を Zn と同一視する。また同様に Rq と Zn q を同一視する。 鍵生成 s ← DZ,σ n を生成する。一様ランダムに p1 ← Rq を取りる。小さなエラー e ← χ を固定する。([39] では s ← χ を一様ランダムに選択するのに対し,[115] では一様ランダムには選択しない点だけが異なる)。公開鍵を pk = (p0 = −(p1 s + te), p1 ) とし,秘密鍵を sk = s とする。 暗号化 平文情報 m ∈ Rt と公開鍵 pk = (p0 , p1 ) に対し,まず χ から u, f, g ∈ R をサンプリングし,暗号文を Enc(m, pk) = (c0 , c1 ) = (p0 u + tg + m, p1 u + tf ), と定義する。ただし,条件 t < q より,この数式では元 m ∈ Rt を環 Rq の元として見なして計算する。つまり, 暗号文は (Rq )2 の元として表現される。 復号 任意の長さの暗号文 ct = (c0 , c1 , . . . , cξ ) に対して,復号は Dec(ct, sk) = [m̃]q mod t ∈ Rt , 47 X ξ で計算できる。ただし,m̃ = ci si ∈ Rq であり,[m̃]q は元 m̃ の各係数の [−q/2, q/2) への剰余とする。ま i=0 た,s = (1, s, s2 , . . . , sξ ) としたとき,この復号処理を Dec(ct, sk) = [hct, si]q mod t と書き直すこともできる。 この復号アルゴリズムの正当性については,暗号アルゴリズムで得られる暗号文 ct = (c0 , c1 ) に対し,関係式 p0 + p1 s = −te が成り立つことから,hct, si = (p0 u + tg + m) + s · (p1 u + tf ) = m + t · (g + sf − ue) が環 Rq 上で 成り立つ。ここで,元 m + t · (g + sf − ue) を環 R の元と見なしたとき,その各係数が [−q/2, q/2) 内に収まっている 限り,[hct, si]q = m + t · (g + sf − ue) が環 R 上で成立する (元 e, f, g, u ← χ が十分小さなノイズとして選択されて いることに注意)。この場合,剰余 mod t の操作で正しい復号結果 m ∈ Rt が得られる。 また,この暗号方式の安全性については,Ring-LWE 問題の計算量困難性仮定の下で KDM 安全 (key dependent message security) であることが証明されている [39]。 3.2.4 NTRU 問題に基づく Hoffstein らによる公開鍵暗号方式 Hoffstein らによる NTRU 問題に基づく公開鍵暗号方式 NTRUEncrypt [87] の構成には次のパラメータが必要で ある。 • n : 正の整数 (セキュリティパラメータ) • q : 正の整数 (素数である必要はない) • p : q と互に素で p  q である正の整数 • ϕ: 次数 n の多項式であり環 Rp = Zp [x]/(ϕ), Rq = Zq [x]/(ϕ) を定義する (ϕ としては例えば xn ± 1, xn − x − 1 等) 以下に具体的な暗号方式の構成を示す。 鍵生成 すべての係数の絶対値が小さい二つの多項式 f ∈ Rq , g ∈ Rq を選ぶ。ただし,f は Rp , Rq の両方において可 逆な要素とする。すなわち,ある fp , fq が存在し,以下を満たす。 f p · f = 1 ∈ Rp , f q · f = 1 ∈ Rq ここで f, fp を秘密鍵とし,h = pfq · g ∈ Rq を公開鍵とする。なお fp , fq ならびに g は f と h を用いて復元 可能であることに注意する。 暗号化 平文情報として,すべての係数の絶対値が p より小さい (例えば −1, 0, 1 のいずれかである) 要素 m ∈ Rq と し,公開鍵 pk = h に対し,r ∈ Rq を係数が小さい多項式からランダムに選び,暗号文を Enc(m, pk) = r · h + m ∈ Rq と定義する。 復号 暗号文 c ∈ Rq に対し,復号は Dec(m, sk) = [fp · [f · c]q ]p で求められる。ただし,[a]q , [a]p は元 a ∈ Rq の各係数をそれぞれ [−q/2, q/2), [−p/2, p/2) に収めたものと する。 復号の正当性については,次のように示される。[f ·c]q は,f ·c = f ·(r·h+m) = f (r·pfq ·g +m) = pr·g +f ·m ∈ Rq と変形されるが,r, g, f, m 共に,係数が小さいものから抽出しており,また p  q であること,更に係数が [−q/2, q/2) に収められていることから適切なパラメータ選択により,f · c は q による剰余を伴わない等式,すなわち 48 f · c = pr · g + f · m ∈ Z[x]/(ϕ) が満たされる。また右辺第一項は p 倍項であることから,続く p による剰余で消去 され,fp · (pr · g + f · m) = fp · f · m = m ∈ Rp となり正しい復号結果 m が得られる。 NTRUEncrypt の安全性についてはアルゴリズム提案当初格子問題への安全性帰着がついていなかったが,Stehlé ら [148] により,standard model での IND-CPA 仮定に基づくイデアル格子上の Ring-SIS 問題,ならびに Ring-LWE 問題に帰着されることが示されている。 3.2.5 Hash-and-Sign に基づく署名方式の格子問題への拡張 Hash-and-Sign に基づく署名方式は,Diffie,Hellman らによってその基本形が示されており,落とし戸つき一方向性 関数 f (x) ならびに f −1 (x) を用いて署名・検証が行われる。 • M : メッセージ • h = hash(M ): 暗号学的ハッシュ関数 • σ = f −1 (h) : 署名 • h = f (σ) が成り立つかを確認 : 署名検証 Diffie,Hellman らによる方式では,一方向性関数 f (x) として,素数 p を法とした離散対数問題に基づく関数 f (x) = ax mod p が提示されている。 この署名方式は,さまざまな改良が提案されているが,格子問題の困難性に基づく落とし戸つき関数を用いた Hash-and-Sign 署名方式が,Gentry らによって提案されている [83]。以下にその方式を示す。次のパラメータを準備 する。 • m, n : 正の整数 (セキュリティパラメータ) • hash(M ): 暗号学的ハッシュ関数 • q : 素数 • L = m1+ϵ , (ϵ > 0) : 秘密鍵の Euclide ノルムの上限 以下に具体的な署名方式を示す。 鍵生成 一様ランダムに A ← Zn×m q を生成する。[83] のサンプリング手法を用いて,Λ⊥ q (A) から短いベクトル S を生 成する。具体的には ||S|| < L かつ SAT ≡ 0 mod q を満たす。秘密鍵を S ,公開鍵を A とする。 m 署名生成 メッセージ M のハッシュ値 H = hash(M ) を乱数のシードとして DZ,s からサンプリングを行う。その値 を u とする。tA = u mod q を満たす t を任意に求める。秘密鍵 S を用いて,−t に近い格子 Λ⊥ q (A) 上の点 v を求め,σ = v + t とする。σ を署名として出力する。 m 署名検証 メッセージ M にハッシュ関数を作用させた値 h = hash(M ) を DZ,s にマッピングし,値を u とする。σ が短いベクトルでありかつ (σ − u)A = 0 である場合に正当な署名として受理する。 署名の正当性については,次のように示される。構成の仕方から,σ − u = v であり,v は格子 Λ⊥ q (A, q) 上の点 であるから,(σ − u)A mod q = vA mod q = 0 が成り立つ。また 秘密鍵 S の特徴から,σ ∈ DZm ,s であることか ら,σ は短いベクトルとなる。本署名方式は LWE 仮定の元で SUF-CMA(Strong Existential Unforgeability under Chosen Message Attack) 安全であることが示されている。 49 3.2.6 Fiat-Shamir 署名方式の格子問題への拡張 Fiat-Shamir 変換 [78] に基づく署名方式を総称して Fiat-Shamir 署名と呼ばれており,現在までさまざまな方式が 提案されている。以下に基本となる方式の一つである素因数分解問題をベースとする方式を記す。合成数 n = pq (p, q は素数) を法とするべき乗剰余演算 g(x) = g x mod n を一方向性関数として利用し,秘密鍵 s,公開鍵 a = g(s) を 準備する。 • M : メッセージ • h = hash(M ): 暗号学的ハッシュ関数 • r : ランダムな値 • (z, y) = (g(r)h + s, g(r)) : 署名 • g(z) = ar y が成り立つかを確認 : 署名検証 Lyubashevsky [105] によって,Fiat-Shamir with Aborts 型の格子ベースの署名方式が提案されている。以下にそ の具体的な署名方式について述べる。次のパラメータを準備する。 • hash(M ): 入力を係数の小さい多項式に写す暗号学的ハッシュ関数 • m : 正の整数 (セキュリティパラメータ) • n : 2 のべき乗 (セキュリティパラメータ) • σ : 正の整数 (セキュリティパラメータ) • κ : 2κ n Cκ > 160 を満たす整数 • p : (2σ + 1)m 2−128/n 程度の素数 • R = Zp [x]/(xn + 1) : 多項式剰余環 • D = {z ∈ R | ||g||∞ ≤ mnσκ} : ハッシュ関数 hâ の定義域を指定する集合 • G = {g ∈ R | ||g||∞ ≤ mnσκ − σκ} : 署名空間 ただし,||z||∞ は z の最大値ノルムとする。以下に具体的な署名方式を示す。 R に属する m 個の多項式の集合 Rm の要素 â に対し,Dm 上のハッシュ関数 hâ (ẑ), (ẑ ∈ Dm ) を以下のように定 める。hâ (ẑ) = â · ẑ = a1 z1 + · · · + am zm ∈ R。 鍵生成 係数の絶対値の最大値が σ 以下の多項式をランダムに m 個とり,多項式成分のベクトルとして並べたものを ŝ とする。D m のランダムなベクトル â によるハッシュ関数 hâ (·) を作用させた値 S = hâ (ŝ) を求め,ŝ を秘密 鍵,S を公開鍵とする。 署名生成 メッセージを M とする。 多項式を成分とするベクトル ŷ ∈ D m をランダムに選択し,c = hash(hâ (ŷ)||M ), ẑ = ŷ + cŝ を求める。 ẑ ∈ Gm となるまで,ベクトル ŷ の選択をくりかえす。σ = (ẑ, c) を署名として出力する。 署名検証 ẑ ∈ Gm ならびに c = hash(hâ (ẑ) − Sc||M ) が成り立つ場合に署名を受理する。 この署名方式の正当性は,hâ (ẑ) − Sc = hâ (ŷ + cŝ) − hâ (ŝ)c = hâ (ŷ) が成り立つことから保証される。安全性につ いては,環 R 上のイデアル格子での γ-SVP の困難性と等価であることが示されている。 50 3.3 格子に基づく主要な暗号方式 本節では,格子に基づく主要な暗号方式として,6 つの公開鍵暗号方式と 3 つの署名方式を取り上げ,その概要と設 計原理を説明する。 格子を用いた主な公開鍵暗号方式の構成として,最初期の Ajtai-Dwork 型 [3],GGH 型 [84] から近年の [133] によ る LWE 型 (Regev 型),[83, 101] に代表される dual-LWE 型,[87] に代表される NTRU 型が存在する。格子を用い た署名の構成としては主に GGH/NTRUSign 型 [84, 87],Fiat-Shamir with abort 型 [105, 106],Hash-and-Sign 型 [83, Sect.6],Plantard-Susilo-Win 型 [126] 等が知られている*4 。 また,安全性の根拠となる計算問題に関しても,最短ベクトル問題に直接還元するもの,LWE 問題,SIS 問題,LWR 問題およびそれらの Module 版,Ring 版へと還元するもの,NTRU 問題に還元するものへと分類できる。 これらの構成は安全性,実装時の性能,使いやすさなどの面から様々な長所・短所を持つが,できる限り幅広くそれ らを解説するため,以下の表 3.1 に挙げる 9 つの方式を紹介する。 表 3.1: 格子に基づく暗号の分類 文献 暗号化 鍵交換 署名 ML-KEM (FIPS 203) [120] ○ ○ ML-DSA (FIPS 204) [119] ○ CRYSTALS-Kyber [19] ○ ○ CRYSTALS-Dilithium [20] ○ FALCON [81] ○ FrodoKEM [13] ○ ○ NewHope [14] ○ ○ NTRU [43] ○ ○ SABER [28] ○ ○ • ML-KEM は CRYSTALS-Kyber に基づく dual-LWE 型の公開鍵暗号である。NIST により FIPS 標準アルゴ リズムとして制定されたことから,取り上げる。 • ML-DSA は CRYSTALS-Dilithium に基づく署名方式である。NIST により FIPS 標準アルゴリズムとして制 定されたことから,取り上げる。 • CRYSTALS-Kyber は dual-LWE 型の公開鍵暗号方式であり,安全性の根拠に xn + 1, n = 2k の形の多項式に より定義される環上の Module-LWE 問題の困難性を置いている。NIST PQC 標準化プロジェクトの Selected Algorithm となったことから取り上げる。 • CRYSTALS-Dilithium は Fiat-Shamir 型の署名方式であり,x256 + 1 を定義多項式とする環上の Module-LWE 問題の計算困難性を安全性の根拠としている。 環の性質を用いた数論変換による高速処理とサイズの圧縮が可 能であり,公開鍵サイズと署名サイズの和を最小化することを目的としてパラメータ設計を行っている。環の性 質を用いた処理の効率化の観点から取り上げる。 • FALCON は Hash-and-Sign 型の署名方式であり,xn + 1 を定義多項式とする NTRU 格子上の SIS 問題の困 難性を安全性の根拠としている。格子上の高速フーリエサンプリングを用いた高速な署名生成を特徴とし,方式 *4 この分類に関しては例えば [90, Sect. 3],[75, Sect. 5.5] 等を参照。 51 提案後も数多くの改良が提案されていることから取り上げる。 • FrodoKEM は dual-LWE 型の公開鍵暗号方式であり,安全性の根拠に LWE 問題の計算困難性を仮定してい る。保守的な構成を設計指針としており,将来 Ring 型や Module 型の構造を持つ格子問題に効率的な解法が発 見された場合でも安全性が確保されると期待される。保守的な構成という観点から取り上げる。 • NewHope は dual-LWE 型の公開鍵暗号方式であり,安全性の根拠に xn + 1, n = 2k の形の多項式により定義 される環上の Ring-LWE 問題の困難性を置いている。環の構造を活用した数論変換による高速実装,サイズの 低減という観点から取り上げる。 • NTRU は NTRU 型の公開鍵暗号方式であり,NTRU 格子上の格子問題の計算困難性を安全性の根拠としてい る。 NTRU 暗号は 1996 年の提案依頼改良が続けられてきたが,本方式は近年の研究成果が数多く盛り込まれ た形となるため取り上げる。 • SABER は LWE 型の公開鍵暗号方式であり*5 ,x256 + 1 を定義多項式とする環上の Module-LWR 問題の計算 困難性を安全性の根拠としている。LWR 問題を用いることで実装時のサンプリングを極力負担の少ないものと している。この観点から取り上げる。 3.3.1 FIPS 203:Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM) KEM とは公開されたチャンネル上で 2 者が秘密を共有するアルゴリズム群である。KEM で安全に生成された共 有の秘密は共通鍵暗号で用いられ,暗号や認証などの安全なやり取りの中で重要な役割を果たす。ML-KEM [120] は CRYSTALS-Kyber に基づく KEM で,その安全性は Module-LWE 問題の計算量困難性に基づく。具体的には, n = 256 に対し R := Z[X]/(X n + 1) を基本環とし,素数 q = 3329 に対し Rq := R/qR = Zq [X]/(X n + 1) をその剰 余環とする。環 Rq の元は Zq を係数とする n − 1 以下の次数の多項式 f = f0 + f1 X + · · · + fn−1 X n−1 と表せ,その 係数ベクトル (f0 , f1 , . . . , fn−1 ) を対応させることで,Zq 加群として Rq は Zn q と同型である。ML-KEM は,階数パ ラメータ k ∈ {2, 3, 4} に対し,Zq 加群 Rqk ≃ (Zn k q ) 上の LWE 問題を安全性の根拠とした KEM である。特に,Rq に おける乗算を高速化するために,数論変換(Number-Theoretic Transform: NTT)を利用する。ここでは,ML-KEM の最も基本となる構成要素である NTT を説明したのちに,ML-KEM の基本構成について説明する。 3.3.1.1 ML-KEM における数論変換 NTT は,環 Rq の元 f を Rq と同型な環 Tq の元 fb に写し,Tq における乗算を利用して効率的に Rq の 2 つの元の乗 算を行う手法である。これは C 上の高速フーリエ変換による多項式乗算と同じアイデアで,NTT はその Zq 上版とみ なせる。ML-KEM では,n = 28 = 256 と素数 q = 3329 で定まる剰余環 Rq = Zq [X]/(X n + 1) を用いる(ML-KEM の暗号パラメータについては,後述の 3.3.1.3 節を参照)。これらの暗号パラメータ (n, q) において,Z× q := Zq \ {0} は位数 q − 1 = 3328 = 28 · 13 の巡回群で,位数 28 = 256 = n の巡回部分群 hζi を唯一つ含む。具体的には,Zq に おいて ζ := 17 mod q が 1 の原始 n 乗根で,{ζ, ζ 3 , . . . , ζ n−1 } が Zq に含まれる 1 の原始 n 乗根のすべてである。こ n こで,N = = 128 とおくと,各 i = 0, 1, . . . , N − 1 に対して,ζ (2i+1)N ≡ −1 (mod q) である。ゆえに,多項式環 2 Zq [X] において,X n + 1 は次のように N 個の 2 次式の積に分解できる。 Y −1 −1   N  NY Xn + 1 = X 2 − ζ 2i+1 = X 2 − ζ 2BitRev7 (i)+1 ∈ Zq [X] i=0 i=0 *5 仕様書 [28] の設計原理の項には “Encryption: we use a simple LWR version of Regev’s LWE encryption scheme [35], where the encryption part is compressed (using the parameter T) to save on bandwith.” とあるが,Second PQC Standardization Conference の発表スライド [53, p. 5] においてはひな型を dual-LWE 型暗号としている。数式の比較から,どちらも原型と考えることが可能であるた め,本報告書では仕様書に従い LWE 型であるとした。 52 ただし,BitRev7 (i) は符号なし 7 ビット整数 i のビット逆順整数を表し,実装上の都合のため ML-KEM ではこの順序 を利用する。以下では,数論変換の原理を説明するために,i = 0, 1, · · · , N − 1 の単純な順序を用いる。上に示した X n + 1 の分解により,次の(Zq 加群としての)同型を得る。 M −1 N  Rq = Zq [X]/(X n + 1) ≃ Zq [X]/ X 2 − ζ 2i+1 =: Tq i=0 具体的には,この同型は N −1 NTT : Rq −→ Tq , f 7−→ fb := f mod (X 2 − ζ 2i+1 ) i=0 (3.1) で定まる。特に,Tq を NTT 空間,fb = NTT(f ) ∈ Tq を f ∈ Rq の NTT 表現とよぶ。 ■NTT 表現について f = f0 + f1 X + · · · + X n−1 ∈ Rq の偶数と奇数の次数に関する多項式をそれぞれ fe := f0 + f2 Y + f4 Y 2 + · · · + f2N −2 Y N −1 , fo := f1 + f3 Y + f5 Y 2 + · · · + f2N −1 Y N −1 ∈ Zq [Y ] とおく。構成から f = fe (X 2 ) + fo (X 2 )X なので,各 i = 0, 1, . . . , N − 1 に対して, X N −1 X N −1 fb2i := fe (ζ 2i+1 ) = f2j ζ (2i+1)j , fb2i+1 := fo (ζ 2i+1 ) = f2j+1 ζ (2i+1)j j=0 j=0 とおくと,  f ≡ fb2i + fb2i+1 X (mod X 2 − ζ 2i+1 ) (3.2)  N −1 が成り立つ。これより,f の NTT 表現は fb = fb2i + fb2i+1 X ∈ Tq とかける。 i=0 ■NTT 表現の行列表示 Zq の元を成分とする N × N 行列を   1 1 1 ··· 1 1 ζ3 ζ6 ··· ζ 3(N −1)     ζ5 ζ 10 ··· ζ 5(N −1)  B = A(ζ) := 1  ∈ (Zq )N ×N  .. .. .. .. ..  . . . . .  1 ζ 2N −1 ζ (2N −1)·2 ··· ζ (2N −1)(N −1) と お く 。Rq の 元 f = f0 + f1 X + · · · + X n−1 の 偶 数 と 奇 数 の 次 数 に 関 す る そ れ ぞ れ の 係 数 ベ ク ト ル (f0 , f2 , . . . , f2N −2 ), (f1 , f3 , . . . , f2N −1 ) ∈ ZN q に対して             fb0 fe (1) f0 fb1 fo (1) f1        fb2    fe (ζ 3 )      f2  fb3     fo (ζ 3 )     f3              fb4 = fe (ζ 5 )  = B  , f4  fb5 = fo (ζ 5 )  = B   f5              ..    ..   ..  ..    ..   ..  .  . .  .  . . 2N −1 2N −1 fb2N −2 fe (ζ ) f2N −2 fb2N −1 fo (ζ ) f2N −1 が成り立つ。つまり,f ∈ Rq の偶数と奇数の次数の係数ベクトルはそれぞれ B による線形変換(つまり,離散フーリ エ変換)で fb ∈ Tq の偶数と奇数の添え字番号のベクトルに写る。B の逆行列は C := N 1 A(ζ −1 ) なので,式 (3.1) の NTT 写像の逆写像 NTT−1 は行列 C を用いて計算可能である(つまり,逆離散フーリエ変換から計算可能)。 53 ■NTT 空間における乗算 Rq の 2 つの元 f, g に対して,その積を h := f · g ∈ Rq とおく。h の NTT 表現 b h ∈ Tq に ついて,式 (3.2) から,各 i = 0, 1, . . . , N − 1 に対して  b h2i + b h2i+1 X ≡ h = f · g ≡ (fb2i + fb2i+1 X) (b g2i + gb2i+1 X) mod X 2 − ζ 2i+1  N −1 が成り立つ。ここで,2 つの NTT 表現 fb = fb2i + fb2i+1 X N −1 , gb = (b g2i + gb2i+1 X)i=0 ∈ Tq の積を i=0   N −1 fb ◦ gb := fb2i + fb2i+1 X · (b g2i + gb2i+1 X) mod X 2 − ζ 2i+1 i=0    N −1 = fb2i gb2i + fb2i+1 gb2i+1 ζ 2i+1 + fb2i gb2i+1 + fb2i+1 gb2i X ∈ Tq i=0 と定めると,   NTT(f · g) = NTT(f ) ◦ NTT(g) ⇐⇒ f · g = NTT−1 fb ◦ gb ∈ Rq が成り立つ(つまり,式 (3.1) の NTT 写像は環の同型写像である) 。特に,NTT 空間 Tq における乗算は,成分ごとの 演算であるため,(Rq における乗算に比べて)効率的に計算可能である。 3.3.1.2 ML-KEM の基本構成と処理概要 加群 Rqk ≃ (Zn k k q ) 上の LWE 問題に基づく ML-KEM は 2 つのステップで構成される。まず,Rq 上の LWE 問題か ら公開鍵暗号(K-PKE)を構成し,次に藤崎-岡本変換により IND-CCA2 KEM に変換する。 ■K-PKE の処理概要 ここでは,K-PKE の処理概要とその原理が分かるように,簡略化した形で各アルゴリズムの処 理を説明する。特に,処理の高速化のために,NTT 変換を適宜利用する。 K-PKE 鍵生成 鍵生成アルゴリズム(FIPS 203 の Algorithm 13, K-PKE.KeyGen(d))では,乱数 d を入力として, 暗号鍵 ekPKE と復号鍵 dkPKE を次のように出力する。 • 入力:乱数 d • 出力:暗号鍵 ekPKE と復号鍵 dkPKE 1. (ρ, σ) ← G(dkk):ハッシュ関数 G を用いて擬似ランダムな乱数の組 (ρ, σ) を生成。k は Module の階数で, 各パラメータごとのドメインセパレーションのために追加されている。   b = A[i, 2. A b j] ∈ (Tq )k×k : 乱数 ρ を用いて,NTT 表現の公開鍵行列を生成 0≤i,j ω then (z, h) ←⊥ 表 3.12: CRYSTALS-Dilithium における署名検証関数の比較 格子ベース署名 [105, Fig. 4] CRYSTALS-Dilithium CRYSTALS-Dilithium テンプレート [20, Fig. 1] 実装のための擬似コード [20, Fig. 4] Vrfy(pk = (a, t), µ ∈ {0, 1}∗ , Vrfy(pk = (A, t), µ ∈ {0, 1}∗ , Vrfy(pk = (ρ, t1 ), M ∈ {0, 1}∗ , σ = (ẑ, c)) σ = (z, c)) σ = (z, h, c̃)) 0: ExpandA(ρ) → Â H(H(ρ||t1 )||M ) → µ ∈ {0, 1}512 SampleInBall(c̃) → ĉ 1: if ẑ ∈ Gm AND w1′ = HighBits(Az − ct, 2γ2 ) w1′ ← UseHintq (h, Az − ct1 · 2d , 2γ2 ) c = H(a(ẑ) − tc, µ) then accept if ∥z∥∞ < γ1 − β AND if ∥z∥∞ < γ1 − β AND c̃ = H(µ||w1′ ) else reject c = H(M ||w1′ ) then accept else reject AND #1 h ≤ ω then accept else reject らの値から UseHintq を用いて w1′ を復元し,z のノルム,h の 1 の数の確認を行い,正しければ accept を出力する。 安全性とパラメータ: CRYSTALS-Dilithium の安全性は,xn + 1 を定義多項式とする環上のモジュール格子問題であ る。ROM の下で,秘密鍵復元の困難性が Module-LWE 問題に,署名の強偽造不可能性が SelfTargetMSIS 問題にそれ ぞれ帰着される。SelfTargetMSIS 問題は Module-SIS 問題の変種であり,署名の偽造不可能性からのタイトな古典帰着 が知られている。一方で,Module-SIS 問題への古典帰着もタイトではないものの証明が与えられており,その意味で は Module-SIS 問題を安全性の根拠と捉えることもできる。 方式の発表後,仕様書内の安全性証明における理論の飛躍が発見された [25, p. 3]。具体的には署名の受動的攻撃下 における強偽造不可能性 (EUF-NMA) から選択文書攻撃下における強偽造不可能性 (EUF-CMA 安全性) への帰着を 行う際に,アドバーサリーが想定された挙動を行うためには秘密鍵の情報を必要とするため,確率的多項式時間である ことが保証できない。Barbosa らは 2023 年に問題点と修正,およびコンピュータ支援による安全性証明の論文 [25] を 発表している。なお,証明の修正であるため方式自体の変更は行われていない。 一方で,QROM においても鍵復元,署名偽造が同様に Module-LWE 問題,SelfTargetMSIS 問題それぞれ帰着され るものの Module-SIS 問題までの量子帰着が知られていない。 具体的なパラメータは,LWE 問題と SIS 問題の双方に対して BKZ アルゴリズムで解いた際の必要ブロックサイズ と Core-SVP の見積から求められている。 仕様書に掲載されたパラメータセットを表 3.13 に示す。セキュリティ強度を規定するパラメータのうち,問題が定 義される環とモジュールのランクに関わるものが (n, k, l, q) の 4 個,ノイズに関わるものが (η, γ1 , γ2 , β, τ, d) の 6 個 である。 変種: [20, Table 3] には NIST の提唱する安全性レベル 1 よりも弱いパラメータ,安全性レベル 5 よりも強いパラ メータが掲載されている。NIST PQC 標準化が決定して以降仕様書のバージョン [20] から様々な変更が加えられ,標 準方式 ML-DSA (3.3.2 節も参照) が公開された。変更の概要は本報告書 3.3.2.4 節を参照。 補足情報: NIST PQC 標準化プロジェクトの第 3 ラウンド報告レポートにおいて署名方式 FALCON との比較が行わ れ,CRYSTALS-Dilithium はそのシンプルさから一般的な実装に向いているが,FALCON は署名の短さからリソー スの制限されたデバイスで使われることが期待されている [4, p. 19]。 68 表 3.13: CRYSTALS-Dilithium 署名方式のパラメータ [20, Table 1] , [4, Table 8]。公開鍵,秘密鍵,署名サイズの単 位はそれぞれ Byte である。 (n, k, l, q) (η, γ1 , γ2 , β, τ, d) 安全性レベル 公開鍵サイズ 秘密鍵サイズ 署名サイズ 17 (256, 4, 4, 8380417) (2, 2 , 95232, 78, 49, 13) レベル 2 1, 312 2, 528 2, 420 19 (256, 6, 5, 8380417) (4, 2 , 261888, 196, 49, 13) レベル 3 1, 952 4, 000 3, 293 19 (256, 8, 7, 8380417) (2, 2 , 261888, 120, 60, 13) レベル 5 2, 592 4, 864 4, 595 注: 秘密鍵サイズは仕様書 [20] には掲載されていないが,NIST の第 3 ラウンド報告レポート [4] を参照した。 3.3.5 FALCON 歴史: FALCON は 2017 年 11 月の NIST PQC 標準化プロジェクトの公募に Thomas Prest, Pierre-Alain Fouque, Jeffrey Hoffstein, Paul Kirchner, Vadim Lyubashevsky, Thomas Pornin, Thomas Ricosset, Gregor Seiler, William Whyte, Zhenfei Zhang の 10 名を開発者として提出された [80]。その後修正が加えられ,現在の最新版は 2020 年 10 月に公開された v1.2[81] である。以下の記述はこの仕様書に従う。 参照 URL: 開発者による公式ページ https://falcon-sign.info/ を参照した。 設計原理: FALCON は多項式 xn + 1, n = 2k により定義される NTRU 格子上の SIS 問題の困難性を安全性の根拠と した格子ベースの署名方式であり,形式的には Gentry ら [83] の Hash-and-Sign 型の格子ベース署名をひな型として いる。高速フーリエサンプリングを用いるため,定義多項式の次数を 2k の形としていることからパラメータ選択の自 由度に制限があり,NIST PQC 標準化プロジェクトの提案方式では安全性レベル 1 および 5 のパラメータセットのみ が提案されている。 アルゴリズムの詳細: 表 3.14,3.15,3.16 に,Gentry ら [83] の Hash-and-Sign 型格子ベース署名と FALCON の鍵 生成,署名生成,署名検証関数を並置する。 パブリックパラメータは以下で与えられる。 • n, q: 環を定義する多項式 ϕ(x) = xn + 1 と法 q で,演算は Zq [x]/(ϕ) で行われる。 • σ: 離散 Gauss 分布の大きさを指定する。 • β: 有効な署名のノルムの上限を指定する。 アルゴリズム中で用いられるサブルーチンのうち,主なものを列挙する。 • FFT(f ), invFFT(s): 多 項 式 f ∈ R[x]/(ϕ) に 対 し て ,そ の フ ー リ エ 変 換 FFT(f ) を n 次 元 ベ ク ト ル (f (ζk ))k=0,...,n−1 で定義する*10 。ただし,ζk := exp((2k + 1)πi/n)。逆演算を invFFT : Rn → R[x]/(ϕ) で示す。変換,逆変換ともに標準的な高速フーリエ変換の手法が利用可能である。コンピュータ上での計算には 浮動小数点演算を用いるため,実行環境ごとに差が出ないように IEEE754 で規定される浮動小数点の表現と演 算を用いることが指定されている。 多項式を成分とするベクトル,行列に対しても FFT は成分ごとのフーリエ変換と定義し,invFFT も適切な切り 分けにより実数成分の行列,ベクトルから多項式成分の行列,ベクトルへ変換するものとする。 *10 数式上は差が無いが高速フーリエ変換による実装を行ったサブルーチンも同じ記号で示すため,Fast Fourier の意味で FFT と名づけられて いる。 69 また,演算 FFT(f ) FFT(g) を成分ごとの積と定義する。FFT 表現での多項式の積 FFT(f g) の計算に対応 する。 • HashToPoint(str, q, n): ビット列 str を多項式 c ∈ Zq [x]/(ϕ) に SHAKE256 ハッシュ関数を用いて写像する。 • Compress, Decompress: 多項式 s ∈ Z[x] を文字列に変換する関数とその逆関数とする。 • NTRUGen(ϕ, q): 計算が行われる環 Zq [x]/(ϕ) を指定するパラメータを入力とし,秘密鍵 B̂ の元となる多項式 f, g, F, G を出力する。このとき,f, g は係数が離散 Gauss 分布の n 次多項式,F, G は f G − gF ≡ q mod ϕ を満たすように計算される。 表 3.14: Hash-and-Sign 型格子ベース署名および FALCON における鍵生成関数の比較 Gentry らの格子ベース署名 [83, Sect. 7.1] FALCON[81, Algorithm 4] KeyGen(1 ) → (pk , sk ) λ KeyGen(ϕ, q) → (pk , sk ) 1: BA ≡ 0 (mod q) を満たす行列の組 f, g, F, G ← NTRUGen(ϕ, q) " # (A, B) を生成 g −f B← B: 成分の小さい行列 G −F A: ランダム行列 B̂ ← FFT(B) G ← B̂ × Bˆ∗ T ← ffLDL∗ (G) for each leaf leaf of T do √ leaf.value ← σ/ leaf.value h ← gf −1 mod q return pk = A, sk = B pk = h, sk = (B̂, T ) NTRU 型暗号の秘密鍵 (f, g) のうち,f は環 Zq /(ϕ) の中で逆元を持つため,適当な F, G ∈ Z[x] を用いて f G − gF = q mod ϕ (3.3) と書くことができる。この関係式と公開鍵 h = f −1 g を Hash-and-Sign フレームワーク [83] における行列 A, B と捉 えると,     1 g −f A= , B= (3.4) h G −F と表現することができる。このとき,行列 A は多項式 h の情報のみで表現可能であるため,pk = h となる。 また,署名の生成には sA ≡ H(m) を満たす短いベクトル s を生成する必要があり,効率化のため Ducas-Prest[67] の高速フーリエサンプリングを用いる。サンプリングアルゴリズムに必要な情報が B の FFT 表現   FFT(g) FFT(−f ) FFT(B) = (3.5) FFT(G) FFT(−F ) およびそれを元にした LDL 木と呼ばれる木構造 T である。木の中には B̂ のグラム行列 G = B̂ × B̂ ⋆ の*11 LDL 分 解における L の情報が格納され,それを用いて Babai の最近平面アルゴリズムの高速化および離散 Gauss 分布の高 速なサンプリングが可能となる。サンプリングを行うための付加情報として,木の全ての葉にある値を leaf.value から √ σ/ leaf.value に書き換えることで鍵生成が完了する。 *11 B ⋆ は体 Q[x]/(ϕ) におけるエルミート共役。詳細は [81, p. 23] 70 表 3.15: Hash-and-Sign 型格子ベース署名および FALCON における署名生成関数の比較 Gentry らの格子ベース署名 [83, Sect. 7.1] FALCON[81, Algorithm 10] ∗ Sign(sk = (B̂, T ), m ∈ {0, 1} ) → σ Sign(sk = (B̂, T ), m ∈ {0, 1}∗ , bβ 2 c) → σ 1: c ← H(m) r ← {0, 1}320 //平文のハッシュ値をベクトル化 c ← HashToPoint(r||m, q, n)   1 1 t̂ ← − FFT(c) FFT(F ), FFT(c) FFT(f ) q q 2: T を使い,sA ≡ c (mod q) を do 満たすベクトル s をサンプリング do z ← ffSamplingn (t̂, T ) ŝ ← (t̂ − ẑ)B̂ while ksk2 > bβ 2 c (s1 , s2 ) ← invFFT(ŝ) s ← Compress(s2 , 8 · sbytelen − 328) while (s =⊥) return σ=s σ = (r, s) 表 3.15 の署名生成関数の説明を記述する。平文にランダムビット r を結合した後,HashToPoint 関数で多項式 c ∈ Zq /(ϕ) を出力する。関係式 (3.3), (3.4) より,ベクトル t̂ は (FFT(c), FFT(0))B̂ −1 と等しい事がわかる。これら の情報を用いて,署名ベクトルのサンプリングを行う。 関数 ffSamplingn は,離散 Gauss 分布のサンプリングを行い,FFT 表現で出力するサブルーチンである。具体的に は,整数ベクトル z ∈ Z2n を,t = [c, 0]B −1 を中心として exp(−k(z − t)Bk2 /2σ 2 ) に比例した確率でサンプリング を行う。実装の効率化のため,実際には近似を行っている [81, Sect. 3.9.1, 3.9.2]。このとき,(t − z)B は原点を中心 とした集合 t + Λ(B) = {(c, 0) + x ∈ (Z[x]/(ϕ))2 : x ∈ Λ(B)} 上の離散 Gauss 分布となるため,s は短く,かつ   −1 1 sA ≡ ([c, 0]B − z)BA ≡ [c, 0] = c in Zq [x]/(ϕ) h が成り立つ。このとき,sA = c の関係から s1 + s2 h = c が成り立つ。この関係式が署名の検証時に用いられる。 サンプリングされた ŝ が kŝk2 ≤ bβ 2 c を満たしていれば invFFT により通常空間の表現に戻し,Compress 関数を用 いて圧縮された文字列 s を生成し,ハッシュ関数のシード r とともに署名とする。 表 3.16 の署名検証関数の説明を記述する。平文,ハッシュ関数のシード値,署名文字列から各要素を復元し, s1 = c − s2 h を計算する。署名が正しく生成されていれば sA = c の関係から,s1 は短い元となるはずなので, k(s1 , s2 )k2 ≤ bβ 2 c が満たされ検証が完了する。 安全性とパラメータ: FALCON の安全性は ϕ(x) = xn + 1, q = 12289 を定義多項式とする NTRU 格子上の計算問題 として表現される。鍵復元の困難性は SIS 問題,署名偽造はターゲットベクトルに近い点を求める計算問題として定式 化される。後者は Kannan の埋め込みにより短いベクトルを求める計算問題に変換される。セキュリティに関わるパ ラメータは n, q, σ, β の 4 個で,n は格子の次元を表し,大きく取ることで安全性が上がるが処理速度が低下する。q は 環を定義するための法で,大きくとることでノイズ耐性が上がるが格子が疎になり安全性が低下する。σ は Gauss 分 布の大きさを指定するパラメータで,大きくとることで安全性が上がるがエラー率が上がる。β は署名ベクトルの長さ の上限を指定するパラメータで,大きくとることで署名生成時のやり直し回数が下がるが,安全性が低下する。 71 表 3.16: Hash-and-Sign 型格子ベース署名および FALCON における署名検証関数の比較 Gentry らの格子ベース署名 [83, Sect. 7.1] FALCON[81, Algorithm 16] ∗ Vrfy(m ∈ {0, 1} , σ = s, pk = A) Vrfy(m ∈ {0, 1}∗ , σ = (r, s), pk = h, bβ 2 c) 1: t ← H(m) c ← HashToPoint(r||m, q, n) 2: if t − sA ≡ 0 (mod q) s2 ← Decompress(s, 8 · sbytelen − 328) AND s が短い then return accept if (s2 =⊥) return reject s1 ← c − s2 h mod q if k(s1 , s2 )k2 ≤ bβ 2 c return accept else return reject 具体的な困難性の評価およびパラメータ設定は,SIS 問題を BKZ アルゴリズムを用いて解いた場合の Core-SVP 計 算量により導出している。 表 3.17: FALCON のパラメータ [81, Table 3.3], [4, Table 8] 公開鍵,秘密鍵,署名サイズの単位はそれぞれ Byte で ある。 (n, q, σ, bβ 2 c) 安全性レベル 公開鍵サイズ 秘密鍵サイズ *12 署名サイズ ( 512, 12289, 165.736617183, 34034726) レベル 1 897 7, 553 666 (1024, 12289, 168.388571447, 70265242) レベル 5 1, 793 13, 953 1, 280 変種: 実装の複雑さによるサイドチャネル攻撃からの防御,セキュリティパラメータの多様性確保などを目的とした改 良が多数提案されている。 特に,鍵生成と署名生成における離散 Gauss 分布生成の改良が多い。一例として,Gauss 分布生成の演算を浮動小 数点から整数演算に変更した Zalcon[79],Gauss 分布の代わりに中心二項分布とした Peregrine [145],実装が複雑な 高速フーリエサンプリングを環上の CVP アルゴリズムをベースとしたより単純なものに置き換えた Mitaka [72] など が存在する。Peregrine は韓国の耐量子計算機暗号公募 KpqC[161] へと提出されているものの,同じ秘密鍵から生成 した署名に対する統計的攻撃法による実時間での鍵復元手法が知られている [100]。 また,FALCON では環の定義多項式が ϕ(x) = xn + 1, n = 2k の形に制限されていることから安全性レベル 1,5 の パラメータのみが提案されていたが,NTRU 格子をモジュール格子とすることでパラメータ設定の多様性を確保した Mod Falcon [47] も存在する。 Mitaka 内で用いられる離散 Gauss 分布生成アルゴリズムは実装が比較的単純である反面,生成された鍵および署名 ベクトルのノルムが大きく鍵長と署名長が長いという欠点があった。近年では Antrag[118] が両者の中間的な手法とし て,FFT 表現でのサンプリングを通じて鍵生成における離散 Gauss 分布のノルムを下げ鍵長と署名長を短くする戦略 を取っている。また,SOLMAE[95] も同様のサンプリング手法を用いた上で,エラーベクトルの圧縮表現などを用い て署名長を短縮する技術 [74] と組み合わせ KpqC へと提案されている。 *12 秘密鍵サイズは仕様書には掲載されていないが,NIST の第 3 ラウンド報告レポート [4, Sect. D] を参照した。 72 補足情報: 2022 年に NIST より標準化がアナウンスされ,将来的に NIST FIPS 206 (FN-DSA) として出版される予 定であるが,他の格子暗号方式 (FIPS 203 および 204) と比較して発表が遅れている。これは基準となる仕様書版 [81] からの修正箇所 [131] が多いことが原因であると考えられる。 鍵生成および署名生成アルゴリズムの中で浮動小数点演算が用いられているため実行環境ごとの結果の不安定性,定 数時間での実装が難しいことによるタイミング攻撃の可能性がある。対策として固定小数点を用いた実装への変更が検 討されている [131, p. 13]。 また,ML-DSA と比較して beyond unforgeability [52] の性質を完全には持たないことから,署名生成におけるハッ シュ値の計算方法の変更が検討されている([131, p. 15] および [71] を参照)。 3.3.6 FrodoKEM 歴史: 2016 年の国際会議 CCS において LWE ベースの鍵共有プロトコル Frodo が Joppe Bos, Craig Costello, Léo Ducas, Ilya Mironov, Michael Naehrig, Valeria Nikolaenko, Ananth Raghunathan, Douglas Stebila の 8 名の連名 で公表された [33]。 2017 年 11 月の NIST PQC 標準化プロジェクトの公募に提出された LWE ベースの公開鍵暗号方式 FrodoPKE および鍵カプセル化メカニズム Frodo KEM[116] では [33] の著者 8 名から Craig Costello が抜け,Erdem Alkim, Patrick Longa, Christopher Peikert の 3 名を加えた 10 名が inventors,Karen Easterbrook, Brian LaMacchia を Additional submitters とした合計 12 名での提案となっている。 NIST PQC 標準化プロジェクトへの提出後のディスカッションを通じて修正が加えられた後に ISO 標準化に提案さ れている。現在の最新版は 2024 年 12 月に公表された [82] である。本節の記述は NIST PQC 標準化プロジェクトを 通じてアップデートされた 2021 年 6 月の第 3 ラウンド版 [13],および 2024 年 12 月に公表された ISO 標準への提出 版 [82] に従う。 参照 URL: 開発者による公式ページ https://frodokem.org/ およびリファレンスコード https://github.com /Microsoft/PQCrypto-LWEKE を参照した。 設計原理: FrodoKEM は LWE 問題を安全性の根拠とする公開鍵暗号方式であり,将来 Ring 型や Module 型の構造 を持つ格子問題を用いた暗号に致命的な脆弱性が発見された場合でも安全性が確保されると期待されることを特徴と している*13 。LWE 問題自体の単純さからパラメータ設定の小回りが利くことも長所の一つとしている。形式的には Gentry-Peikert-Vaikuntanathan の [83, Sect. 7.1],Lindner-Peikert [101] をひな型とする dual-LWE 暗号に分類さ れる。IND-CPA 安全な公開鍵暗号方式を構成した後に,Hofheinz ら [89] のモジュール化藤崎-岡本変換 FO̸⊥ に Bos らの [34] の修正を施した変換手法 [13, Def. 2.19] を適用し IND-CCA2 安全な KEM を構成している。 3.3.6.1 NIST PQC 第 3 ラウンド版 アルゴリズムの詳細: 表 3.18,3.19,3.20 に Lindner-Peikert[101] による格子ベース公開鍵暗号と FrodoKEM の構成 の基礎となる FrodoPKE の鍵生成,暗号化,復号アルゴリズムを並置する。 パブリックパラメータは以下で与えられる。 • q: 計算の剰余環 Zq を指定する。ここでは q = 2D の形とし,D = 15, 16 に固定される。 • n, m, n: 行列のサイズを指定する。n は 8 の倍数とする。また,平文は m × n = 8 × 8 行列に符号化される。 • B, ℓ: 平文行列に符号化する情報量を指定する。行列の各成分は 0, . . . , 2B − 1 の整数で表現され,合計で ℓ = B · m · n ビットの情報を埋め込むことができる。 *13 FrodoKEM の仕様書 [13] では構造を持たないことを “algebraically unstructured” と表現している。 73 • lenseedA , lenseedSE : 擬似ランダム行列 A, S, E を生成するためのシードとなるビット列の長さで,提案パラメー タセットでは lenseedA は 128 に固定され,lenseedSE はセキュリティレベルに合わせて 128, 192, 256 の値を取る。 • Tχ : SampleMatrix 関数で用いられる確率分布の表で,セキュリティレベルごとに離散 Gauss 分布からの Rényi ダイバージェンスが小さくなるように設計されている。具体的な値は [13, Table 3] を参照。 関数内で用いられるサブルーチン群を以下に記述する。 • Frodo.Gen 関数はシードとなるビット列 seed と SHAKE ハッシュ関数を用いて擬似ランダム行列 A ∈ Zn×n q を生成する関数である。i 行目を生成する際に整数 i を 16 ビットのビット列にエンコードした hii を用い て SHAKE(hii||seed, 16n) を呼び出し,得られた 16n ビットを 16 ビットごとに分割することで n 個の整数 c0 , . . . , cn−1 ∈ {0, . . . , 216 − 1} として,Ai,j = cj mod q の形で各成分に振り分けている。このように関数 を構成することで,各 i 行目を生成する操作がハードウェアによる並列実装に適した形となる。また,q は 2 べ きの形で取られるため,各 Ai,j の分布に偏りは生じない。 • Frodo.SampleMatrix((r (0) , . . . , r (nm−1) ), n, m, T ) 関数は行列のサイズ n × m と (i, j) 成分の生成に用いるシー ド r (in+j) の列,乱数の確率分布を示すテーブル T を入力とする。それぞれのシードの長さは 16 ビットに固定 されている。T は整数上の中心対称な確率分布が Pr[|T | = t] のテーブルとして与えられており,シード r (in+j) の先頭 15 ビットで (i, j) 成分の絶対値を,残りの 1 ビットで符号を決定しサンプリングを行う。 • Frodo.Encode, Frodo.Decode 関数は ℓ = B · m · n ビットの平文を m × n 行列に埋め込む関数とその逆演算を行 う関数である。B ビットの整数 k を mod q に埋め込むため,行列の成分を k · bq/2B c とする。 表 3.18: Lindner-Peikert 格子ベース暗号および FrodoKEM における鍵生成関数の比較 Lindner-Peikert[101, Sect. 3.1] FrodoKEM[13, Algorithm 9] KeyGen(1 ) → (pk , sk ) λ FrodoPKE.KeyGen(1λ ) → (pk , sk ) $ 1: A: n1 × n2 ランダム行列 seedA ← − {0, 1}lenseedA A ← Frodo.Gen(seedA ) $ 2: S: 成分の小さい n2 × ℓ 行列 seedSE ← − {0, 1}lenseedSE //擬似乱数ビットの生成 (r (0) , . . . , r (2nn−1) ) ← SHAKE(0x5F||seedSE , 2nn · lenχ ) S T ← Frodo.SampleMatrix((r (0) , . . . , r (nn−1) ), n, n, Tχ ) 3: E: 成分の小さい n1 × ℓ 行列 E ← Frodo.SampleMatrix((r (nn) , . . . , r (2nn−1) ), n, n, Tχ ) 4: B = AS + E B = AS + E return pk = (A, B), sk = S pk = (seedA , B), sk = S T FrodoKEM の鍵生成関数(表 3.18 右)を説明する。鍵生成のためのシード seedA と seedSE を生成した後,Frodo.Gen 関数と Frodo.SampleMatrix 関数を用いて A, S, E を生成する。このとき,行列乗算時のメモリアクセスの順序を考え て S は転置の形で格納される。公開鍵行列 A は鍵サイズ圧縮のために成分ではなくシード seedA の形で格納される。 FrodoKEM の暗号化関数(表 3.19 右)を説明する。seedA から行列 A を復元した後,暗号化用の乱数行列 S ′ , E ′ , E ′′ を擬似乱数列 r (i) から生成する。擬似乱数列の生成には SHAKE ハッシュ関数を用いるが,パディング値 0x96 が鍵 生成で用いられた 0x5F と異なるため鍵生成の S, E とは異なる行列が得られることに注意。残りの処理はひな型の Lindner-Peikert 暗号を行列化したものである。 FrodoKEM の復号関数(表 3.20 右)は Lindner-Peikert 暗号の復号処理を行列化したものである。 安全性とパラメータ: ベースとなる IND-CPA 安全な公開鍵暗号の安全性は判定版 LWE 問題に帰着される。実装上の 74 表 3.19: Lindner-Peikert 格子ベース暗号および FrodoKEM における暗号化関数の比較 Lindner-Peikert[101, Sect. 3.1] FrodoKEM[13, Algorithm 10] Enc(pk = (A, B), FrodoPKE.Enc(pk = (A, B), µ ∈ {0, 1}ℓ )) → ct m ∈ {0, 1}ℓ ) → ct 0: A ← Frodo.Gen(seedA ) // A の復元 ′ ′ ′′ $ 1: s , e , e : 成分の小さいベクトル seedSE ← − {0, 1}lenseedSE (r (0) , . . . , r (2nn−1) ) ← SHAKE(0x96||seedSE , (2m · n + m · n) · lenχ ) //擬似乱数ビットの生成 ′ S ← Frodo.SampleMatrix((r (0) , . . . , r (m·n−1) ), m, n, Tχ ) E ′ ← Frodo.SampleMatrix((r (m·n) , . . . , r (2m·n−1) ), m, n, Tχ ) E ′′ ← Frodo.SampleMatrix((r (2m·n) , . . . , r (2m·n+m·n−1) ), m, n, Tχ ) 2: u = s′ A + e ′ B ′ = S ′ A + E ′ ; V = S ′ B + E ′′ jqk v = s′ B + e′′ + m · C1 = B ′ ; C2 = S ′ B + E ′′ + Frodo.Encode(µ) 2 return ct = (u, v) ct = (C1 , C2 ) 表 3.20: Lindner-Peikert 格子ベース暗号および FrodoKEM における復号関数の比較 Lindner-Peikert[101, Sect. 3.1] FrodoKEM[13, Algorithm 11] ′ Dec(sk , ct) → m FrodoPKE.Dec(sk , ct) → m′ 1: m = v − uS M = C1 − C2 S ( ′ 0 |mi | ≤ bq/4c mi = m′ = Frodo.Decode(M ) 1 それ以外 return m′ = (m′1 , . . . , m′ℓ ) m′ 効率化のため,鍵生成,暗号化処理において離散 Gauss 分布を近似した確率分布 Tχ を用いているが,その際の安全性 の低下は Rényi ダイバージェンスを用いた議論により評価されている [13, Sect. 5.1]。n は格子の次元で,大きくとる ことで安全性レベルが上がるが処理コストも上がる。q は環を定義する法で,大きく取ることで平文空間も大きくなる が,格子が疎になり安全性が下がる。σ は離散 Gauss 分布の大きさを決定するパラメータで,大きくとることで安全 性が上がるが,復号エラー率が上がる。 FrodoKEM のパラメータは LWE 問題の Primal 攻撃,Dual 攻撃双方での BKZ アルゴリズムを用いた計算量評価 から求められている。保守的なパラメータ設定のため,Core-SVP, BKZ の計算量評価を,計算量の上界を示す既存の 攻撃手法のみではなく,下界からの議論が行われていることも方式の特徴である。 変種: 行列 A の生成に SHAKE-256 ではなく,AES-128 を使ったバージョンも提案されている。AES-NI 命令を用いた Intel CPU による実装では SHAKE を用いたものよりも 2.5 倍程度高速である [13, Sect. 3.2]。 また,Encode Decode 関数に誤り訂正符号を用いて暗号文サイズを 1 割ほど削減したバージョンが提案されている [141, 140]。 補足情報: 構造を持つ格子 (structured lattice) でないという理由から NIST PQC 標準化プロジェクトの 第 3 ラウン ド候補として残っていた。構造付き格子ではない他の方式では他に符号ベース暗号の BIKE,HQC や同種写像ベース暗 号の SIKE があり,それらと比較するとパフォーマンスの観点から不利であったため標準化から漏れたと NIST の標 75 表 3.21: FrodoKEM CCA のパラメータ [13, Table 5]。σ の値は Tχ の元となる離散 Gauss 分布の標準偏差を示す。 秘密鍵サイズはデカプセル化時に用いられる鍵情報の中から,公開鍵に相当するものを除いた分である。公開鍵,秘密 鍵,平文,暗号文サイズの単位はそれぞれ Byte である。 (n, q, σ) 安全性レベル 公開鍵サイズ 秘密鍵サイズ 平文サイズ 暗号文サイズ 15 ( 640, 2 , 2.8) レベル 1 9, 616 10, 272 16 9, 720 16 ( 976, 2 , 2.3) レベル 3 15, 632 15, 664 24 15, 744 16 (1344, 2 , 1.4) レベル 5 21, 520 21, 568 32 21, 632 準化レポート [4, p. 17] に述べられている。 NIST PQC 標準化プロジェクトの 第 2 ラウンドのバージョンでは,藤崎-岡本変換を行った IND-CCA2 KEM の 実装において再暗号化後のチェックが定数時間ではないことから鍵復元攻撃が可能であることが示され [86],修正され ている。実装にかかわる攻撃として,ロウハンマー (Rowhammer) 攻撃による鍵復元攻撃が新たに発見された [76]。 NIST PQC 標準化プロセスの中で第 3 ラウンド候補であり,標準化には至らなかったものの,フランス,ドイツ, オランダ,チェコ等の国で耐量子計算機暗号の推奨・許容リストに入っている*14 。開発者らは ISO での標準化を目指 し,2024 年に予備提案 (Preliminary Standardization Proposal) [16, 82] を提出している。次節に詳細を述べる。 3.3.6.2 ISO 標準への予備提案版 2024 年 12 月に公開された ISO への予備提案版 [16, 82] では,NIST PQC 版からセキュリティ強化のための修正が 行われている。1 つ目は multi-target security と呼ばれる,複数の公開鍵が与えられたときに攻撃者がどれかひとつの 鍵に関して IND-CCA 安全性を破ることすら困難であるという要件である。通常の IND-CCA 安全性では 1 つの公開 鍵に対する識別を行うのに対し,multi-target では攻撃者が自身に都合の良い鍵を選ぶことができるため,攻撃者に有 利な設定となる。 2 つ目は multi-ciphertext security と呼ばれる,1 つの公開鍵で暗号化された複数の暗号文が与えられたときに,攻 撃者がどれか 1 つの暗号文に関する安全性を破ることが困難であるという要件である。これら 2 つの要件に対応する ため,鍵カプセル化時に用いられる疑似乱数 seedSE の長さに変更が加えられ,新たな乱数列 salt が導入されている。 表 3.22 から 3.24 に NIST 版 FrodoKEM と ISO 版 FrodoKEM の比較を示す。データの型変換を行う Pack, Unpack 関数の呼び出しは本質的でないため省略した。なお,2023 年,2024 年に公開された著者らの ISO 向け仕様書 [16, 82] では NIST 版(前節の表 3.18 から 3.20 で示したもの)を eFrodoKEM,新たなバージョンを FrodoKEM としているた め表記に注意。 表 3.25 に各安全性レベルごとの乱数 seed と seedSE の長さをまとめる。lensalt = 0 の場合,salt は空となり NIST 第 3 ラウンド版と ISO 版は同じプロトコルとなる。seed を追加したことにより,暗号文長はレベル 1,3,5 の場合表 3.21 と比較して 32,48,64Bytes 長くなる。 3.3.7 NewHope 歴史: NewHope の最初のバージョンは 2016 年に国際会議 USENIX Security において Erdem Alkim,Léo Ducas, Thomas Pöppelmann,Peter Schwabe により鍵共有プロトコルとして発表された [12]。また,直後に reconciliation によるエラー訂正プロセスを省略し簡略化した NewHope-Simple[11] が ePrint Archive において発表されている。 *14 各国の PQC 推奨・許容暗号リストの状況は第 1 章も参照。 76 表 3.22: FrodoKEM の NIST PQC 標準化プロジェクト 第 3 ラウンド版 [13, Algorithm 11] と ISO 版 [82, Sec. 8.1] の鍵生成関数の比較。両者ともに同じ関数であるが,表 3.25 に示すようにパラメータ lenseedSE の値が異なる。 FrodoKEM.KeyGen 関数は表 3.18 の右側の関数内で乱数 seedA , seedSE をランダムとせず,引数の値として実行した 結果を示す。 NIST 版 FrodoKEM[13, Algorithm 12] ISO 版 FrodoKEM [82, Sec. 8-1] ′ ′ KeyGen(1 ) → (pk , sk ) λ KeyGen(1λ ) → (pk ′ , sk ′ ) $ $ 乱数を生成 s, seedSE , z ← − {0, 1}lens +lenseedSE +lenz 乱数を生成 s, seedSE , z ← − {0, 1}lens +lenseedSE +lenz seedA ← SHAKE(z, lenseedA ) seedA ← SHAKE(z, lenseedA ) (pk, sk) ← FrodoKEM.KeyGen(seedA , seedSE ) (pk, sk) ← FrodoKEM.KeyGen(seedA , seedSE ) T //pk = (seedA , B) および sk = S //pk = (seedA , B) および sk = S T pkh ← SHAKE(seedA ||B, lenpkh ) pkh ← SHAKE(seedA ||B, lenpkh ) ′ ′ T pk = (seedA , B), sk = (s, seedA , b, S , pkh) pk ′ = (seedA , B), sk ′ = (s, seedA , b, S T , pkh) 表 3.23: FrodoKEM の NIST PQC 標準化プロジェクト 第 3 ラウンド版 [13, Algorithm 12] と ISO 版 [82, Sec. 8.2] の鍵カプセル化関数の比較。FrodoPKE.Enc(seedSE , pk ′ , µ) 関数は表 3.19 右側の関数内で乱数 seedSE をランダムと せず,引数の値を用いて実行した結果を示す。ISO 版では新たに salt が追加されている。 NIST 版 FrodoKEM[13, Algorithm 12] ISO 版 FrodoKEM [82, Sec. 8-1] ′ Encaps(pk ) → (ct, ss) Encaps(pk ′ ) → (ct, ss) $ $ µ← − {0, 1}lenµ // ランダムな鍵を生成 µ← − {0, 1}lenµ // ランダムな鍵を生成 $ salt ← − {0, 1}lensalt // ランダムな salt 値を生成 pkh ← SHAKE(pk, lenpkh ) pkh ← SHAKE(pk, lenpkh ) (seedSE , k) ← SHAKE(pkh, µ, lenseedSE + lenk ) (seedSE , k) ← SHAKE(pkh, µ, salt, lenseedSE + lenk ) ′ FrodoPKE.Enc(seedSE , pk , µ) → (C1 , C2 ) FrodoPKE.Enc(seedSE , pk ′ , µ) → (C1 , C2 ) SHAKE(C1 ||C2 ||k, lenss ) → ss SHAKE(C1 ||C2 ||salt||k, lenss ) → ss ct = (C1 , C2 ), ss ct = (C1 , C2 , salt), ss 2017 年 11 月の NIST PQC 標準化プロジェクトの公募に応募された Version 1.0[127] は新たに Roberto Avanzi, Joppe Bos,Antonio de la Piedra,Douglas Stebila の 4 人が加わった合計 8 人での提案とし,[11] をベースとして 公開鍵暗号方式を構成している。NIST PQC 標準化プロジェクトへ提出後のディスカッションを通じて修正が加えら れ,現在の最新版は 2020 年 4 月に公表された Version 1.1[14] である。 NIST PQC 標準化プロジェクトの 第 2 ラウンドに提出された Version 1.02[128] では,Martin R. Albrecht, Emmanuela Orsini,Valery Osheter,Kenneth G. Paterson,Guy Peer,Nigel P. Smart の 6 人が Contributor と して列挙されている。 本節の記述は最新版の仕様書 [14] に従う。 参照 URL: 開発者による公式ページ https://newhopecrypto.org/ および GitHub 上のリファレンス実装 https: //github.com/newhopecrypto/newhope を参照した。 設計原理: NewHope は環 Z[x]/(xn + 1), n = 2k 上の Ring-LWE 問題の計算困難性を安全性の根拠とする公開鍵暗 号方式であり,形式的には Gentry-Peikert-Vaikuntanathan の [83, Sect. 7.1],Lindner-Peikert [101] をひな型とす る dual-LWE 暗号に分類される。ベースとなる暗号方式におけるベクトルと行列の演算を多項式環の要素に置き換え 77 表 3.24: FrodoKEM の NIST PQC 標準化プロジェクト 第 3 ラウンド版 [13, Algorithm 13] と ISO 版 [82, Sec. 8.3] のデカプセル化関数の比較。FrodoPKE.Enc(seed′SE , pk ′ , µ′ ) 関数は表 3.19 右側の関数内で乱数 seedSE をランダムと せず,引数の値を用いて実行した結果を示す。ISO 版では新たに salt が追加されている。 NIST 版 FrodoKEM[13, Algorithm 14] ISO 版 FrodoKEM [82, Sec. 8-2] ′ Decaps(sk , ct) → ss Decaps(sk ′ , ct) → ss µ′ ← FrodoPKE.Dec(sk = S T , ct) µ′ ← FrodoPKE.Dec(sk = S T , ct) (seed′SE , k ′ ) ← SHAKE(pkh, µ, lenseedSE + lenk ) (seed′SE , k ′ ) ← SHAKE(pkh, µ′ , salt, lenseedSE + lenk ) FrodoPKE.Enc(seed′SE , pk ′ , µ′ )) → (C1′ , C2′ ) =: ct′ FrodoPKE.Enc(seed′SE , pk ′ , µ)) → (C1′ , C2′ ) =: ct′ if (ct = ct′ ) k̄ ← k ′ else k̄ ← s if (ct = ct′ ) k̄ ← k ′ else k̄ ← s SHAKE(C1 ||C2 ||k̄, lenss ) → ss SHAKE(C1 ||C2 ||salt||k̄, lenss ) → ss 表 3.25: NIST 版と ISO 版におけるパラメータ lensalt と lenseedSE の違い。セキュリティ強化のため salt が追加され, seedSE の長さが変更されている。 eFrodoKEM FrodoKEM (NIST 第 3 ラウンド版) (ISO 版) 安全性レベル lensalt lenseedSE lensalt lenseedSE レベル 1 0 128 256 256 レベル 3 0 192 384 384 レベル 5 0 256 512 512 IND-CPA 安全な公開鍵暗号方式を提案している。その際,数論変換を用いた乗算などの実装テクニックを用いて処理 を高速化している。環の定義多項式を xn + 1, n = 2k の形としている点も高速化に寄与しているが,その一方でパラ メータ選択の自由度に制限があり,NIST PQC 標準化プロジェクトの提案方式では安全性レベル 1 およびレベル 5 の パラメータセットのみが提案されている。 IND-CPA 安全な公開鍵暗号から IND-CCA 安全な KEM の構成には [89] のモジュール化された藤崎-岡本変換 QFO̸⊥ m を用いているが,その際に公開鍵暗号 CRYSTALS-Kyber(本報告書の 3.3.3 節も参照)の IND-CCA 安全な KEM の構成 [34, Sect. 4] に用いられた手法を取り入れ微修正を施している。結果として,構成された KEM が ROM, QROM の双方のモデルにおいて IND-CCA 安全であることが保証されている。 アルゴリズムの詳細: 表 3.26,3.27,3.28 に Lindner-Peikert[101] による格子ベース公開鍵暗号と NewHope の鍵生 成,暗号化,復号アルゴリズムを並置する。 パブリックパラメータは以下で与えられる。 • n, q: 演算を行う環 Rq := Zq [x]/(xn + 1) を定義する。特に指定のない場合には多項式の係数は自動的に区間 [−q/2, q/2) 内に収められるものとする。高速数論変換のため,n は 2 のべき乗の形であり,さらにアルゴリズ ム中で用いられる ω, γ が存在するために q は q ≡ 1 (mod 2n) を満たす素数として選ばれる。NewHope のパラ メータ設定では n = 512, 1024, q = 12289 が選ばれている。 • k: ノイズの大きさを設定する。 √ • ω, γ: 数論変換で用いる。Z× q における 1 の原始 n 乗根を ω ,その平方根を γ := ω mod q とする。NewHope のパラメータ設定では n = 512 に対して (ω, γ) = (3, 10968),n = 1024 に対して (ω, γ) = (49, 7) が取られて いる。 78 関数内で用いられるサブルーチン群を以下に記述する。 • Sample(seed, nonce) 関数は,各係数を平均ゼロに調整した二項分布 ψ8 から独立にサンプリングした n 次多項 式を 32Bytes の seed と非負整数値 nonce から生成する。自然数 k に対して,ψk の出力は独立にサンプリング X k (bi − b′i ) として定義される。 $ した 2k 個のビット bi , b′i ←− {0, 1} (k = 1, . . . , k) に対する i=1 • PolyBitRev(a ∈ Rq ): 高速数論変換を用いた乗算の場合,結果のインデックス順序が入れ替わるため配列の要素 X h−1 c[i] を xBitRev (i) として解釈しなければならない。ただし,ビット順序反転は h = log2 (n), i = bj 2j と 2 進 j=0 X h−1 X n−1 数展開したときに,BitRev(i) := bj 2h−j−1 計算される。関数は多項式 a(x) = ai xi に対して,指数部分 j=0 i=0 X n−1 をビット順序反転した多項式 ai xBitRev(i) を出力する。 i=0 • NTT(a), NTT−1 (â): Rq の多項式同士の乗算を高速化するため,数論変換 (Number Theoretic Transform: NTT)[14, p. 7-9] を用い,鍵と暗号文の処理を極力 NTT 空間で行う工夫がなされている。パラメータ n, q, ω, γ X n−1 を固定したとき,多項式 a(x) = ai xi ∈ Rq の数論変換 i=0 X n−1 X n−1 â = NTT(a) := âi xi , âi := γ j aj ω ij (mod q) i=0 j=0 および逆変換を   X n−1 X n−1 a = NTT−1 (â) := ai xi , ai := n−1 γ −i âj ω −ij  (mod q) i=0 j=0 とする。これらは線形変換であるので,a, b ∈ Rq に対して NTT(a) + NTT(b) = NTT(a + b) 等の性質がなり X n−1 X n−1 たつ。また,a ∗ b := i ci x , c i = aj bi−j mod n mod q は a ∗ b = NTT−1 (NTT(a) ◦ NTT(b)) を満た i=0 j=0 す。ただし,記号 ◦ は多項式の係数同士の積を取ることを表す。 a ∗ b を定義式通りに計算すると mod q での演算が O(n2 ) 回必要であるのに対して,高速数論変換を用いた方法 では O(nlogn) 回の演算で可能である。 数論変換を用いた高速乗算ではどこかのタイミングで添え字のビット順序を反転する必要がある。単純な IND-CPA PKE の実装における最適なのみを考えるのであればこのような置換は必要ないが,IND-CCA KEM のデカプセル化 処理内での再暗号化まで含めて実装を最適化した結果,NewHope では最初の KeyGen, Enc 関数の中で置換が行われて いる [14, p. 8]。 な お ,仕 様 書 [14] に は 多 項 式 と バ イ ト 列 の 相 互 変 換 を 行 う 関 数 EncodePK, EncodePolynomial, EncodeC, Compress, DecodePK, DecodePolynomial, DecodeC, Decompress が定義されているが,何れもデータの再配置を行 う関数であり方式を説明する上では本質的ではないため省略した。 NewHope の鍵生成関数(表 3.26 右)を説明する。ステップ 1 では 32Bytes( = 256bits) の乱数のシードを SHAKE- 256 ハッシュ関数を用いて 64Bytes の擬似乱数列 z を生成し,それを前半の z[0 : 31] と後半の z[32 : 63] に分割す る。Lindner-Peikert 型暗号(左側)におけるランダム行列 A の生成に対応して,GenA(·) 関数は 32Bytes の列を シードとして,ランダムな Rq の元を生成する。各係数が一様独立に Zq の元からサンプリングされる。実装は [14, 79 表 3.26: Lindner-Peikert 格子ベース暗号および NewHope における鍵生成関数の比較 Lindner-Peikert[101, Sect. 3.1] NewHope[14, Algorithm 1] KeyGen(1 ) → (pk , sk ) λ KeyGen(1λ ) → (pk , sk ) $ 1: A: n1 × n2 ランダム行列 seed ←− {0, 1, . . . , 255}32 , z = SHAKE256(64, seed) //32Bytes の seed を 64Bytes に伸長 â = GenA(z[0 : 31]) ∈ Rq 2: S: 成分の小さい n2 × ℓ 行列 s = PolyBitRev(Sample(z[32 : 63], 0)) ∈ Rd ; ŝ = NTT(s) 3: E: 成分の小さい n1 × ℓ 行列 e = PolyBitRev(Sample(z[32 : 63], 1)) ∈ Rd ; ê = NTT(e) 4: B = E − AS b̂ = â ◦ ŝ + ê //b = NTT(a ∗ s + e) return pk = (A, B), sk = S pk = (â, b̂), sk = ŝ Algorithm 5] を参照。出力された â がランダムな多項式 a の数論変換であることは, ランダム多項式の数論変換がま たランダム多項式となることから従う。 ステップ 2,3 ではそれぞれ係数の小さい多項式 s, e の数論変換を計算する。ステップ 1 で生成した擬似乱数の後半 z[32 : 63] をシードに用いて小さい値を係数に持つ多項式のサンプリングを行い,数論変換のためのビット順序の反転 処理をしたものを s,その数論変換を ŝ とする。e, ê についても同様。 ステップ 4 では数論変換後の多項式から公開鍵 b̂ を計算する。数論変換の性質より,これは a ∗ b + e の NTT 表現と なる。 表 3.27: Lindner-Peikert 格子ベース暗号および NewHope における暗号化関数の比較 Lindner-Peikert[101, Sect. 3.1] NewHope[14, Algorithm 1] Enc(pk = (A, B), m ∈ {0, 1} ) → ctℓ Enc(pk = (A, B), M ∈ {0, 1, . . . , 255}32 ) → ct $ 1: t, e′ , e′′ : 成分の小さいベクトル coin ←− {0, 1, . . . , 255}32 // ランダムシード s′ = PolyBitRev(Sample(coin, 0)) ∈ Rd ; t̂ = NTT(s′ ) e′ = PolyBitRev(Sample(coin, 1)) ∈ Rd e′′ = Sample(coin, 2) ∈ Rd 2: u = tA + e′ û = â ◦ t̂ + NTT(e′ ) jqk v = tB + e′′ + m · v ′ = NTT−1 (b̂ ◦ t̂) + e′′ + Encode(M ) 2 return ct = (u, v) ct = (û, v ′ ) NewHope の暗号化関数(表 3.27 右)を説明する。暗号化のためのランダム多項式 t̂, e′ , e′′ を生成するため,鍵生成 のステップ 2-3 と同様の処理を行う。t̂ は数論変換後の形式であるが,e′ , e′′ は通常の形式のまま用いる。 Encode 関数は 32Bytes(=256bits) の平文を n 次多項式の係数として埋め込む。NewHope のパラメータでは n = 512, 1024 が用いられるため,1bit の情報が複数箇所に埋め込まれることになる。具体的には平文の ibit 目を bi , 多項式の j 次の係数を vj としたときに j = 0, . . . , n − 1 に対して ( 0 k j (bj mod 256 = 0) vj = q (bj mod 256 = 1) 2 とする。 NewHope の復号関数(表 3.35 右)を説明する。健全性の証明より,v−NTT−1 (û◦ŝ) = v−u∗s が Encode(M ) と小さ いノイズ和であることが示されるため,Decode 関数はノイズの除去と平文 M ′ の復元を同時に行う [14, Algorithm 11]。 80 表 3.28: Lindner-Peikert 格子ベース暗号および NewHope における復号関数の比較 Lindner-Peikert[101, Sect. 3.1] NewHope[14, Algorithm 1] ′ Dec(sk , ct) → m Dec(sk , ct) → M ′ 1: m = v + uS m = v − NTT−1 (û ◦ ŝ) ( 0 |mi | ≤ bq/4c m′i = M ′ = Decode(m) 1 それ以外 return m′ = (m′1 , . . . , m′ℓ ) M′ 多項式 m の係数の中で,mi+256k (k = 0, . . . , n/256 − 1) の中にビット Mi′ の情報が埋め込まれているため,それらを X n/256−1 多数決で決定する。具体的には, |mi+256k − (q − 1)/2| が Mi′ = 0 の場合には (n/256) · (q − 1)/2 ≈ (n/512)q k=0 に近く,Mi′ = 1 の場合には 0 に近い値を取るため,和から (n/1024)q を引いた後に符号を見ることでビット列の復元 が完了する。 安全性とパラメータ: ベースとなる IND-CPA 安全な公開鍵暗号の安全性は環 Zq [x]/(xn + 1) 上の判定版 LWE 問題 に量子帰着されることが示されている。実装上の効率化のため,NewHope では鍵生成,暗号化の際に離散 Gauss 分布 の替わりに中心を 0 とした二項分布を用いているが,その分の安全性の低下は [14, Theorem 4.1] で Rényi ダイバー ジェンスを用いた議論により評価されている。 Ring-LWE 問題の具体的な困難性の評価には,LWE 問題に対する Primal 攻撃,Dual 攻撃双方での,BKZ アルゴ リズムを用いた必要ブロックサイズから導き出した CoreSVP 計算量による評価を用いている。 表 3.29: NewHope CPA-KEM, CCA-KEM のパラメータ [14, Table 2, 3]。2 番目のパラメータは NIST 耐量子計算 機暗号 Call for proposals[121] の基準でレベル 5 であると主張されているが,表 [14, Table 3] では 233-bit 安全性と なっている。公開鍵,秘密鍵,平文,暗号文サイズの単位はそれぞれ Byte である。 安全性 公開鍵 秘密鍵サイズ 平文 暗号文サイズ (n, q, k, γ) レベル サイズ (鍵カプセル化後) サイズ (鍵カプセル化後) ( 512, 12289, 8, 10968) レベル 1 928 869 (1, 888) 32 1, 088 (1, 120) (1024, 12289, 8, 7) レベル 5 1, 824 1, 792 (3, 680) 32 2, 176 (2, 208) 変種: 鍵共有を目的とした USENIX 版 [12],および reconciliation によるエラー訂正プロセスを省略し簡略化した NewHope-Simple[11] が存在する。 補足情報: NIST PQC 標準化プロジェクトの 第 2 ラウンドの選定レポート [113, p. 16] によると,NewHope と CRYSTALS-Kyber の間で比較が行われた。双方ともに dual-LWE 形式の構造を持つ格子上で考え,数論変換を用い た高速化を行うという方針で設計されている。Core-SVP ベースの困難性評価では双方とも同程度の強度であったが, 実装時のベンチマークの結果は CRYSTALS-Kyber の方が若干良かった。また,安全性の根拠に用いている問題が Ring-LWE と Module-LWE という違いがあり,パラメータ設定の自由度において不利であったようである。 81 3.3.8 NTRU 歴史: NTRU 暗号方式自体の歴史は長く,1996 年に国際会議 CRYPTO の Rump Session において発表され,その後 1998 年に国際会議 ANTS において発表された論文 [87] が方式の源流となる。本節では,歴史的な NTRU ではなく, NIST PQC 標準化プロジェクトの第 3 ラウンド Finalists に選定された公開鍵暗号方式 NTRU について説明する*15 。 2017 年 11 月の NIST PQC 標準化プロジェクトの公募に提出された 2 件の方式,Andreas Hülsing, Joost Rijneveld, John M. Schanck, Peter Schwabe らにより提案された NTRU-HRSS-KEM[93] と,Cong Chen, Jeffrey Hoffstein, William Whyte, Zhenfei Zhang らにより提案された NTRUEncrypt[42] が Round 2 に進む際にマージされ名称が NTRU と変更,Round 3 にかけてさらに修正が加えられたものが現在の方式となる。第 2 ラウンド提出版は [93] と [42] の著者 8 名に Oussama Danba を加えた合計 9 名での提案,第 3 ラウンド提出版はさらに Tsunekazu Saito, Keita Xagawa,Takashi Yamakawa の 3 名を加えた合計 12 名での提案となった。 現在の最新版は 2020 年 9 月に公表された仕様書 [43] である。本節の記述はこの仕様書に従う。 参照 URL: 開発者による公式ページ https://ntru.org/ を参照した。 設計原理: NTRU は NTRU 格子上の計算困難問題に安全性の根拠を置く公開鍵暗号方式である。具体的には鍵復元 攻撃の困難性が NTRU 格子上の短いベクトルを求める問題,平文復元攻撃の困難性が,ターゲットベクトルに近い NTRU 格子上の点を求める問題*16 として捉えられる。 ベースとなる公開鍵暗号方式は ANTS バージョン [87] の NTRU と比較して,鍵 f, g のサンプリング空間の変更, メッセージ多項式のマスキング手法の変更,暗号化関数の脱乱択化*17 などの改良が行われている。暗号化関数が決定 的であるためベースの方式自体は IND-CPA 安全性を持たないが,この性質を用いることで IND-CCA2 KEM の構成 において,単純な藤崎-岡本変換を用いた構成と比較してハッシュ関数の呼び出し回数を削減することが可能である。 提案ではベースとなる公開鍵暗号方式の OW-CPA 安全性を格子問題の困難性に還元した後に,Saito ら [139] にお いて提案された implicit rejection の導入による NTRU-HRSS-KEM の改良の構成をベースとして,デカプセル化時 の再暗号化処理のスキップによる IND-CCA2 KEM の構成を行っている。最終的な方式の IND-CCA2 安全性は適当 な仮定を置くことで ROM, QROM モデルにおいて元の方式の OW-CPA 安全性に帰着される。ただし標準的な仮定 においては QROM モデルでの還元はタイトではなく,いくつかの non-standard な仮定を置くことでタイトになる [4, p. 39]。 アルゴリズムの詳細: 以下,表 3.31,3.32,3.33 に ANTS 版の NTRU と NIST PQC 標準化プロジェクト第 3 ラウンド提出版の NTRU の公開鍵暗号方式を並置して解説する。 パブリックパラメータは以下で与えられる。仕様書 [43] には NTRU-HPS と NTRU-HRSS の 2 系統のパラメータ セットが存在し,それぞれ f , g のサンプリング空間,Lift 関数の構成などが異なる。 • n を定義多項式の次数,Φ1 = x − 1, Φn = (xn − 1)/(x − 1) を円分多項式,p, q を素数の法とする。多項式の次 数 n は素数で,2, 3 が Zn の原始元となるように選ぶ。 • 素数 q と多項式 F (x) に対して,記号 Z[x]/(q, F ) で剰余環 Zq [x]/(F (x)) を表す。特に R/q, S/q はそれぞれ Zq [x]/(Φ1 Φn ), Zq [x]/(Φn ) を定義する。n の取り方より,S/2, S/3 は有限体となるため,0 以外の元に常に逆元 *15 第 3 ラウンド Alternative Candidates の中の NTRU Prime とは異なる方式であることに注意。 *16 最短・最近ベクトル問題や限界距離復号問題と似ているが,設定が少し異なるため,このように表現する。 *17 一般に,脱乱択化 (derandomizing) とはアルゴリズム中で乱数を用いるサブルーチンを,ほぼ同等の性能を保ったままに乱数を用いない決 定的なサブルーチンに置き換えることを示す。元々の NTRU では暗号化関数内で平文をマスキングする多項式をランダムに生成していた が,提案バージョンでは多項式を関数の引数とし関数自体は決定的なものとなっている。 82 が存在することになる。 • 集合 T , を係数が {0, ±1} の多項式で次数が n − 2 以下のものの全体とし, ( ) X n−2 X n−3 ′ T := v= vi x ∈ T : i vi vi+1 ≥ 0 i=0 i=0 とする。 • L(d1 , d2 ) は ANTS 版 NTRU のサンプリング空間を定義するために用いられる。次数 n − 1 以下の多項式で d1 個の係数が +1,d2 個の係数が −1,残りは 0 であるものの集合とする。 暗号アルゴリズムの中で用いられるサブルーチン群は以下で与えられる。 • 多項式 a に対して,関数 S3(a) を b ≡ a mod (3, Φn ) を満たすもので,次数 n − 2 以下かつ係数が {0, ±1} と なるものとする。これを S/3 の代表元とする。 • Lift(m) 関数は,メッセージ m のマスキングに用いられる。暗号文を c = r · h + m にって計算する NTRU 系の暗号の場合,Lf , Lg の取り方によっては IND-CPA 安全性を持たない可能性がある [43, p. 22]。そのた め,メッセージ多項式 m を一度別の形にマスキングする必要がある。NTRUEncrypt[42] では,ランダム多項 式 t を足しこむことで実現していたのだが,NTRU-HRSS[93] ではこの機能を Lift を用いて実現している。Lift 関数は S3 関数を用いて実現され高速実装が可能であり,しかもマスキングのための多項式 t をサンプリング するという手間がなくなるため,より実装が単純・高速となる。そのため,第 2 ラウンドでのマージにおいて NTRU-HRSS のアイディアが残った形である。 以下の表 3.30 に鍵多項式 f, g ,暗号化に用いるランダム多項式 r ,平文多項式 m の空間と Lift 関数の違いをまとめ る。S3(m/(Φ1 )) の高速計算法は文献 [92, Append. B] に掲載されている。ANTS 版 NTRU では Lift 関数は明示され ていないが,[43, Sect. 1.3.1] によると S3(Lift(m)) = m を満たす単射 Lm → Z[x] として解釈できる。 表 3.30: 方式ごとのサンプリング空間,Lift 関数の違い ANTS 版 NTRU NTRU-HPS NTRU-HRSS [43, Sect. 1.3.1] [43, Sect. 1.3.2] [43, Sect. 1.3.3] Lf L(df , df − 1) T T+ Lg L(df , df − 1) T (q/8 − 2) {Φ1 · v : v ∈ T+ } Lr {p · ϕ : ϕ ∈ L(d, d)} T T Lm 係数が [−p/2, p/2] に含まれる多項式の集合 T (q/8 − 2) T Lift(m) 関数 - S3(m) Φ1 · S3(m/Φ1 ) NTRU の鍵生成関数(3.31)の詳細を記述する。最初に Sample fg 関数により (f , g) を Lf × Lg から一様ランダム にサンプリングする。ANTS 版では Lf からランダムにサンプリングを行い,mod (2, Φ1 Φn ), mod (3, Φ1 Φn ) の双方 で可逆であることを確認し,可逆でない場合にはサンプリングをやり直していた。一方で,NTRU-HPS,NTRU-HRSS では構成から可逆性が保証されているため,可逆性検査は行わない。 秘密鍵の中に hq が含まれるのは復号関数の中で暗号化に用いた多項式 r を復元するためである。 表 3.32 に暗号化関数を記述する。この部分はオリジナルの ANTS 版 NTRU とほぼ同様であるが,暗号化に用いる ランダム多項式 r が関数の入力として明示されている点,平文多項式の表現を Lift 関数によって変えている点が異な る。ANTS 版 NTRU では暗号化時に乱数として生成された r を平文の一部として扱うことで,暗号化関数が決定的な ものとなる。これにより,IND-CCA2 KEM を構成する際のタイトな還元を実現している [139]。 83 表 3.31: ANTS 版 NTRU および NIST PQC 版 NTRU における鍵生成関数の比較 ANTS NTRU [87, Sect. 1.2] NIST PQC NTRU [43, Figure 9] KeyGen(1 ) → (pk , sk ) λ KeyGen(1λ ) → (pk , sk ) 1: f ← Sample f() // Φ1 Φn の中で可逆な元をサンプリングする g ← Sample g() (f , g) ← Sample fg() fq ← (1/f ) mod (q, Φn ) 2: h ← (3g/f ) mod (q, Φ1 Φn ) h ← (3g · fq ) mod (q, Φ1 Φn ) hq ← (1/h) mod (q, Φn ) 3: fp ← (1/f ) mod (3, Φ1 Φn ) fp ← (1/f ) mod (3, Φn ) return pk = h, sk = (f , fp ) pk = h, sk = (f , fp , hq ) 表 3.32: ANTS 版 NTRU および NIST PQC 版 NTRU における暗号化関数の比較 ANTS NTRU [87, Sect. 1.3] NIST PQC NTRU [43, Figure 9] Enc(pk = h, m ∈ Lm ) → c Enc(pk = h, m ∈ Lm ; r) → c 1: r ← Sample r() 2: c ← (r · h + m) mod (q, Φ1 Φn ) m′ ← Lift(m) c ← (r · h + m′ ) mod (q, Φ1 Φn ) return c c 表 3.33: ANTS 版 NTRU および NIST PQC 版 NTRU における復号関数の比較 ANTS NTRU [87, Sect. 1.4] NIST PQC NTRU [43, Figure 9] ′ Dec(sk = (f , fp ), c) → m Dec(sk = (f , fp , hq ), c) → (r, m, flag) 0: if c 6≡ 0 (mod (q, Φ1 )) return (0, 0, 1) 1: a ← (c · f ) mod (q, Φ1 Φn ) a ← (c · f ) mod (q, Φ1 Φn ) ′ 2: m ← (a · fp ) mod (3, Φ1 Φn ) m ← (a · fp ) mod (3, Φn ) m′ ← Lift(m) r ← ((c − m′ ) · hq ) mod (q, Φn ) if (r, m) ∈ Lr × Lm return (r, m, 0) else return (0, 0, 1) ′ return m (r, m, flag) 表 3.33 の復号関数の説明を行う。暗号化関数が脱乱択化されたことで,復号関数は ANTS 版のものとは大きく異な るものになる。出力が平文の (r, m) の他に,復号が失敗したかどうかを示すフラグ flag を返す。このフラグがデカプ セル化時の implicit rejection に用いられる。 暗号化時の Lg の取り方,Lift 関数の性質から正しく作られた暗号文の場合ステップ 0 の c ≡ 0 mod (q, Φ1 ) が保 証される。flag = 0 の場合にこの等式が保証されることは,デカプセル化関数内での再暗号化スキップのために必要で ある。ステップ 2 で復元された m が S/3 の代表元となっていることは保証できないため,Lift 関数を用いて m′ の復 元を行い,それを用いて r を復元する。(r, m) が正常な平文空間 Lr × Lm に含まれているならば flag = 0 をセットし て復号結果を返し,そうでなければ失敗として r = m = 0 とし,失敗フラグを立てて値を返す。 84 安全性とパラメータ: ベースとなる公開鍵暗号方式の OW-CPA 安全性の具体的な困難性を評価するために鍵復元攻撃 と平文復元攻撃が考えられている。公開鍵から秘密鍵を復元する問題は,環の定義多項式と公開鍵多項式によって定義 される格子内において,秘密鍵 (f , g) に対応する短いベクトル*18 を発見する問題として捉えることができる。また, 暗号文から平文を復元する問題も hq から定義される格子内で,(0, c) に近いベクトルを探索する問題として捉えられ るため,最近ベクトル問題の埋め込みによりこちらも格子内の短いベクトルを求める問題として定式化することが可能 である。 以上により,暗号方式のパラメータ設定には与えられた格子内の短いベクトルを BKZ アルゴリズムを用いて発見す るために必要なブロックサイズ β を求め,具体的な計算量は Core-SVP による評価を行っている。 Core-SVP の計算量評価には,篩アルゴリズムで用いる巨大なメモリ空間にアクセスするためのコストを定数と仮 定した non-local model およびそうでないと仮定した local model の双方を用いた個別の評価 [43, Sect 5.3] を行って いる。 表 3.34: NTRU のパラメータ [43, Sect. 1.6, 3.2]. 公開鍵,秘密鍵,平文,暗号文サイズの単位はそれぞれ Byte であ る。 安全性レベル 公開鍵 秘密鍵 平文 暗号文 パラメータ名 (n, p, q) non-local local サイズ サイズ サイズ サイズ ntruhps2048509 (509, 3, 2048) - レベル 1 699 903( 935) 204 699 ntruhps2048677 (677, 3, 2048) レベル 1 レベル 3 930 1, 202(1, 234) 272 930 ntruhps4096821 (821, 3, 4096) レベル 3 レベル 5 1, 230 1, 558(1, 590) 328 1, 230 ntruhrss701 (701, 3, 8192) レベル 1 レベル 3 1, 138 1, 418(1, 450) 280 1, 138 秘密鍵サイズの括弧内は KEM のもので,32Bytes の乱数列 s の分大きくなる。 3.3.9 SABER 歴史: SABER は NIST PQC 標準化プロジェクトの公募への応募方式の一つ 2017 年 11 月に Jan-Pieter D’Anvers, Angshuman Karmakar, Sujoy Sinha Roy, Frederik Vercauteren の 4 名により公表され,その後同著者により 2018 年 5 月に国際会議 AFRICACRYPT において査読付き国際会議論文として発表された [54]。 NIST PQC 標準化プロジェクトの 第 2 ラウンド提出時において安全性証明に関わる微修正が行われ,第 3 ラウンド からは新たに Andrea Basso, Jose Maria Bermudo Mera, Michiel Van Beirendonck の 3 名が加わり,開発者は合計 7 名となっている。現在の最新版は第 3 ラウンド Finalists に提出された [28] であり,以下の記述はこの仕様書に従う。 参照 URL: 開発者による公式ページ https://www.esat.kuleuven.be/cosic/pqcrypto/saber/ およびリファレ ンス実装 https://github.com/KULeuven-COSIC/SABER を参照した。 設計原理: SABER は Module-LWR 問題を安全性の根拠とする公開鍵暗号方式であり,LWE 暗号におけるノイズ付 加計算をラウンディング演算に置き換えた暗号方式を構成のひな型としている。基本となる方式に対して Module 化と 実装上の改良のための修正を行い IND-CPA 安全な暗号方式を構成,藤崎-岡本変換により IND-CCA2 KEM とした ものである。仕様書の設計原理 [28, Sect. 4] の項には Regev 暗号 [133] の “LWR version” であると記述されている一 方で,Second PQC Standardization Conference の発表スライド [53, p. 5] では Lindner-Peikert 型(dual-LWE 型) *18 多項式環や格子の構成等の違いにより秘密鍵と最短ベクトルが対応しない,最短ベクトルが複数存在するなどの状況があるため,短いベクト ルという表現としている。 85 [101] の構成を原型としている。数式の比較から,どちらも原型と捉えることが可能であり,本報告書では仕様書に従 い LWE 型に分類する。 LWR 型暗号方式の利点として,LWE 暗号の実装時に必要とされる離散 Gauss 分布等からのサンプリング計算の回 避が挙げられる。また,処理を行う際の法 p, q を 2 のべき乗とすることでラウンディング処理がビット列の部分的なコ ピーのみで完了すること,同様に鍵となる行列 A ∈ Rqℓ×ℓ の生成が乱数生成ルーチンからのビット列のコピーのみで完 了することから,高速処理が可能であるという特徴がある。 一方で,2 のべき乗の形で p, q をとることにより,数論変換を用いた多項式同士の乗算が単純に適用できなくなると いう欠点があるが,仕様書 [28, Sect.4] によると,SABER で用いられる多項式は 256 次であり,通常の乗算方法を用 いても NTT によるものと処理時間に大きな差は無いと主張されている。また,[48] のように一度大きな剰余空間で乗 算を計算した後に Zp , Zq の世界に引き戻す実装テクニックも開発されており,多項式の乗算による効率の低下に関し ての大きな問題は無いと考えられる。 IND-CPA 安全な公開鍵暗号から IND-CCA2 KEM の構成には Hofheinz ら [89] による藤崎-岡本変換の変種を用い ており,ROM,QROM モデルの双方で安全であることが示されている [28, Sect. 6]。公開鍵暗号から KEM の具体的 な構成は [28, Algorithm 4-6] 参照。 アルゴリズムの詳細: 表 3.35,3.36,3.37 に Regev 暗号の LWR 版と SABER(IND-CPA 安全な基本バージョン)の 鍵生成,暗号化,復号アルゴリズムを並置する。 パブリックパラメータは以下で与えられる。 • n: 環を定義するための多項式 xn + 1 の次数であり,全てのパラメータセットで n = 256 とする。 • p, q, T : ラ ウ ン デ ィ ン グ の 大 き さ を 決 定 す る パ ラ メ ー タ 。全 て 2 の べ き 乗 の 形 で ,ϵq = log2 (q), ϵp = log2 (p), ϵT = log2 (T ) と し ,ϵq > ϵp > ϵT と す る 。つ ま り T |p|q の 関 係 が あ る 。計 算 を 行 う 環 は Rq := Zq [x]/(xn + 1) とし,Rq の元を成分とする。 • l: モジュール格子のランクである。ベクトル,行列をそれぞれ Rql×1 , Rql×l 等で表現する。 • 平文空間は R2 := Z2 [x]/(xn + 1) であり,256bits の情報を格納できる。 表 3.35: Regev 暗号の LWR 版および SABER における鍵生成関数の比較 Regev 暗号の LWR 版 [53, p. 7] SABER[28, Algorithm 1] KeyGen(1 ) → (pk , sk ) λ KeyGen(1λ ) → (pk , sk ) $ 1: A: ランダム行列 seedA ← − {0, 1}256 ; A ← gen(seedA ) ∈ Rql×l $ 2: s: 短いランダムベクトル r← − {0, 1}256 ; s ← βµ (Rql×1 ; r) 3: b = bAsep/q b = ((AT s + h) mod q)  (ϵq − ϵp ) ∈ Rpl×1 return pk = (A, b), sk = s pk = (seedA , b), sk = s 表 3.35 の左側は Regev による LWE 暗号 [133] におけるノイズ付加関数 As + e をラウンディング関数 bAsep/q へ と置き換えたものである。ただし,実数 x に対して bxep/q := bx · (p/q)e とし,ベクトル,行列に対しては成分ごとに その操作を行うものとする。また,自然数 a, ϵ に対して a  ϵ は右シフト演算の結果 a · 2−ϵ の整数部分を返すもので あり,b ∈ Rq に対しては b  ϵ は係数ごとの右シフトを,ベクトル b ∈ Rpl×1 に関しても成分ごとの右シフトを行った 結果とする。 表 3.35 の右側,SABER の鍵生成関数を説明する。ステップ 1 の gen 関数は 256bits の列をシードとして,Rq を成 分とした擬似ランダムな l × l 行列を生成する。各成分は Rq 内の一様分布とする。 ステップ 2 の βµ (Rql×1 ; r) はビット列 r をシードとして Rq 成分 l 次元の擬似ランダムベクトルを出力する関数であ 86 る。ここで,µ は偶数であるとし,各成分の多項式は係数を独立に,パラメータ µ の二項分布の出力から平均値 µ/2 を 引いた値をサンプリングしたものとする。 ステップ 3 の公開鍵ベクトル b の生成は AT s のラウンディングによるものだが,p, q がともに 2 のべき乗 εp , εq で あることから p/q を掛けた後のラウンディング処理が       p p 1 p q    bxep/q := x = x+ = x+ = x + 2εq −εp −1 2εp −εq (3.6) q q 2 q 2p と表現され,入力 x に定数 h = 2εq −εp −1 を加えた後,2εp −εq による乗算と切り捨て処理が (εq − εp ) ビットの右シフ トで実現される。表中の h は,係数が全て h の多項式を成分として持つ Rql×1 のベクトルを示す。 出力される公開鍵の形式はデータ量削減のため (A, b) の替わりに,行列 A を生成するためのシードを用いて pk = (seedA , b) としている。 表 3.36: Regev 暗号の LWR 版および SABER における暗号化関数の比較 Regev 暗号の LWR 版 [53, p. 7] SABER[28, Algorithm 2] Enc(pk = (A, b), m ∈ {0, 1}) → ct Enc(pk = (seedA , b), m ∈ R2 ; r) → ct 0: A ← gen(seedA ) ∈ Rql×l //行列 A の復元 1: s′ : 短いランダムベクトル s′ ← βµ (Rql×1 ; r) 2: b′ = bAT s′ ep,q b′ = ((As′ + h) mod q)  (ϵq − ϵp ) ∈ Rpℓ×1 j j p mm 3: c m = b T s′ − m · v ′ = bT (s′ mod p) ∈ Rp 2 T /p cm = (v ′ + h1 − 2ϵp −1 m mod p)  (ϵp − ϵT ) ∈ RT return ct = (cm , b′ ) ct = (cm , b′ ) 表 3.36 の右側,SABER の暗号化関数を説明する。平文空間は R2 = Z2 [x]/(xn + 1) で,n = 256bits の情報を格 納する。最初にステップ 0 として,暗号化処理に用いる行列 A を seedA から復元する。次にステップ 1 では暗号化用 のランダムベクトル s′ を種となるビット列 r を用いて生成するが,与えられていなかった場合には 256bits の乱数列 を擬似乱数生成器によって生成する。Enc 関数に種となるビット列が与えられているのは後にこの関数が藤崎-岡本変 換を用いた IND-CCA KEM の構成に使われるためである。s′ を生成する関数 βµ ,およびステップ 2 での As′ のラウ ンディングによる b′ の生成は鍵生成と同様である。ステップ 3 では b, s′ を用いて暗号化を行うが,(· · · )  (ϵp − ϵT ) の計算は (3.6) 式における p/q の役割を T /p に置き換えたものである。2ϵp −1 m は係数が 0 もしくは 2ϵp −1 の多項式 (∈ Rp ) となるため,復号関数内で v ′ + h1 のラウンディングを鍵を用いて小さいノイズに変換することで平文が復元 可能となる。 表 3.37: Regev 暗号の LWR 版および SABER における復号関数の比較 Regev 暗号の LWR 版 [53, p. 7] SABER[28, Algorithm 3] ′ ′ Dec(sk = s, ct = (cm , b )) → m Dec(sk = s, ct = (cm , b′ )) → m′ 1: v = (b′ )T s v = (b′ )T (s mod p) ∈ Rp    ′ 2 T 2: m = · v − cm m′ = ((v − 2ϵp −ϵr cm + h2 ) mod p)  (ϵp − 1) ∈ R2 q p return m′ m′    2 T 表 3.37 の右側,SABER の復号関数では (3.6) 式と同様の原理により · v − cm が計算される。h2 ∈ Rq q p は全ての係数が 2ϵp −2 − 2ϵp −ϵT −1 + 2ϵq −ϵp −1 である多項式とする。 87 安全性とパラメータ: ベースとなる IND-CPA 安全な公開鍵暗号の安全性は環 Z[x]/(x256 + 1) 上の Module-LWR 問 題に帰着されることが示されている。Module-LWR 問題の具体的な困難性評価は,Albrecht らによる LWE 問題, NTRU 問題の困難性シミュレータ [7] を LWR 問題向けに修正したものを用いている。 SABER の安全性を決めるパラメータは l, n, q, p, T, µ の 6 個である。l が Module-LWR 問題のランク,n が多項式 の次数であり,大きいほど安全性が上がるがラウンディング時のノイズの蓄積により復号エラー率が上がる。法 q を大 きくとることで Module-LWR の格子体積が大きくなり安全性が下がるがラウンディング時のノイズに強くなるため復 号エラー率が下がる。ラウンディングパラメータ p, T を大きくとることでラウンディング時のノイズに相当するもの が大きくなり,安全性が上がると同時に復号エラー率も上がる。秘密鍵サンプリングの範囲を指定する µ は大きくと ることで秘密鍵ベクトルのサンプリング空間が広がり安全性が上がるが,ラウンディング時のノイズが大きくなり復号 エラー率が上がる。 表 3.38: SABER のパラメータ [28, Table 1]。公開鍵,秘密鍵,平文,暗号文サイズの単位はそれぞれ Byte である。 公開鍵暗号 鍵カプセル化後 安全性 (l, n, q, p, T, µ) 公開鍵 秘密鍵 暗号文 公開鍵 秘密鍵 暗号文 レベル サイズ サイズ サイズ サイズ サイズ サイズ 13 10 3 (2, 256, 2 , 2 , 2 , 10) レベル 1 672 832(256) 736 672 1, 568( 992) 736 13 10 4 (3, 256, 2 , 2 , 2 , 8) レベル 3 992 1, 248(288) 1, 088 992 2, 304(1, 344) 1, 088 13 10 6 (4, 256, 2 , 2 , 2 , 6) レベル 5 1, 312 1, 664(384) 1, 472 1,312 3, 040(1, 760) 1, 472 秘密鍵サイズは一つ目の数字が圧縮前,括弧内の数字が圧縮後のものを示す。秘密鍵ベクトル s ∈ Rq の各成分が [−µ/2, µ/2] の範囲であることから,dlog2 qe bits の整数として保存するのではなく,下位 dlog2 µe bits のみを保存す ることで圧縮できる。 3.4 格子に基づく暗号技術に関するまとめ 格子に基づく暗号技術は,LWE 問題,Ring-LWE 問題,NTRU 問題を安全性の根拠とする方式をはじめ,これま で数多く提案されており,米国 NIST PQC 標準化プロジェクトで提案された暗号技術としては最も多くの暗号がこの カテゴリーに分類されている。 この米国 NIST PQC 標準化プロジェクトを通じて 2022 年 7 月に CRYSTALS-Kyber が標準的な暗号方式として, CRYSTALS-Dilithium および FALCON が標準的な署名方式として選定され,CRYSTALS-Kyber と CRYSTALS- Dilithium については,2024 年 8 月に FIPS 203, FIPS 204 として公開されている [120, 119]。また,CRYSTALS- Kyber と CRYSTALS-Dilithium は 2022 年 9 月に米国国家安全保障局の Commercial National Security Algorithm Suite 2.0 (CNSA2.0) にも選定されている [1]。NIST PQC 標準化プロジェクトの選考プロセスから漏れた方式の中で も,米国以外の公的機関において推奨暗号とされているものが存在する。一例として,FrodoKEM が 2020 年 8 月よ りドイツ情報セキュリティ庁 (BSI) の推奨暗号に [143],2022 年 1 月にはオランダ通信・安全委員会 (NLNCSA) によ り最も安全な暗号の例として推奨されている [15]。Google 社の Chrome ブラウザには,TLS レイヤーの性能試験目的 で搭載された耐量子計算機暗号プロトコル CECPQ1[37] および CECPQ2[132] にそれぞれ NewHope の USENIX 発 表バージョン [12] と NTRU が実装されていたが,2023 年 1 月現在ではともに削除されている。IBM 製テープドライ ブのプロトタイプとして,CRYSTALS-Kyber と CRYSTALS-Dilithium の組み合わせにより暗号化を行うものが制 作されている [98]。DNS サーバの一種である PowerDNS において,耐量子計算機性を実現する署名として FALCON のテスト用の実装が行われている [85]。オープンソースライブラリへの導入として,WireGuard VPN protocol への 88 SABER の実装 [91],WolfSSL への CRYSTALS-Kyber,FALCON の実装 [156],OpenSSH への Streamlined NTRU Prime の実装 [122] などが存在する他,Open Quantum Safe (OQS) プロジェクトによる liboqs ライブラリには暗号 化・鍵交換の方式として CRYSTALS-Kyber,NTRU,SABER,FALCON,FrodoKEM,NTRU-Prime が,署名方 式として CRYSTALS-Dilithium と FALCON が実装されている [138]。このように格子に基づく暗号技術の社会実装 が徐々に進みつつある。特に,標準化が先行する CRYSTALS-Kyber,CRYSTALS-Dilithium に対するサイドチャネ ル攻撃とその対策としてマスキング実装が検討されている [146, 153, 49]。 格子に基づく暗号技術の安全性の根拠となる問題としては,先に挙げた LWE 問題,Ring-LWE 問題,NTRU 問題 以外にも Compact LWE 問題,Module-LWE 問題,LWR 問題,BDD 問題,SIS 問題他,多くのバリエーションが 存在している。一般的な格子問題を解く手法としては,LLL アルゴリズム,BKZ アルゴリズムなどの基底簡約アルゴ リズムや,篩型のアルゴリズムが集中的に研究されている。格子に関する計算問題の間数多くの帰着関係が知られてお り,それらを用いて計算問題の困難性評価が行われている。例えば,LWE 問題は 3.1.1.3 節に挙げたような uSVP 問 題や BDD 問題に変換する手法が知られている。 SVP や LWE/NTRU などの格子問題の解析やそれらの求解アルゴリズムに関する最新研究については [36, 30, 77, 102, 137, 112, 55, 150, 58, 114, 130, 41, 100, 32, 51] を参照。近年,新しい格子問題として格子同型問題 [70] が提案 された。(格子同型問題の性質については [29] を参照。)また,格子同型問題の困難性を安全性の根拠とする署名方式 HAWK[66] は,NIST PQC 標準化プロジェクトにおける署名方式の追加公募において,格子に基づく方式の中で第 2 ラウンドにおいて進むことが許された方式である(2024 年 10 月時点) 。さらに,量子紛失 LWE サンプリング [59] や, 格子問題に対する量子アルゴリズムに関する研究 [45, 50] も近年進展している。 格子問題の困難性をベースとした暗号方式で最初のものは,Ajtai[2] により 1996 年に行われた,SIS 問題が格子問 題の最悪時と同等かそれ以上に困難であることの証明およびそれを用いた暗号学的ハッシュ関数の構成である。また, 1997 年には Ajtai と Dwork[3] により,unique SVP の最悪困難性を安全性の根拠とした公開鍵暗号が提案されてい る。この公開鍵暗号方式は翌年,Nguyen らによる解読実験 [117] により必要なパラメータが長大となり実用的でない ことが明らかにされたものの,その後の格子に基づく暗号構成の基礎となっている。 1996 年に Hoffstein らによって提案された NTRU 暗号 [87]*19 は,発表当初安全性証明が付けられておらず,攻撃 と修正が繰り返されていたが,2011 年 Stehlé ら [147] により,IND-CPA 安全性が Ring-LWE 問題に帰着可能な方式 が示された。一方で,2016 年には subfield attack[6] のような体の構造を使って格子の次元を圧縮する攻撃も提案され ており,暗号の構成のためには次元や法の大きさだけでなく,環・体の構造にも注意を払う必要がある。NTRU 格子上 の署名方式のサイズ改良 [74]・トラップドア生成 [73] や,NTRU に対する鍵ミスマッチ攻撃の改良 [103]・NTRU 格 子の簡約 [23] に関する最新の研究がある。 2005 年に Regev[133] により提案された LWE 問題は,論文発表と同時にそれを暗号の安全性根拠として保障する重 要な三つの性質が示された。一つは問題の average-case to worst case reduction,つまりパラメータを固定した際,問 題の (秘密ベクトル s に関する) 平均的な計算量が,最悪計算量 (難しいインスタンスを生成するような s の集合に対 する計算量) と多項式倍の違いしか無いことであり,残りの二つは判定 LWE と探索 LWE の等価性,および量子アル ゴリズムによる困難な格子問題への還元である。これらの定理を組み合わせることにより,Regev 自身により提案され た公開鍵暗号を解読することが平均的に難しいことが示され,その後の様々な LWE ベース暗号の構成の基礎なった。 LWE 格子問題への還元に関して,2013 年には古典計算機による還元も示されている [38]。 LWE 問題の欠点である鍵サイズの大きさを改善するため,2010 年には Lyubashevsky ら [107, 108] により Ring- LWE 問題が,2015 年には Langlois ら [97] により Module-LWE 問題が公開鍵暗号と同時に提案され,LWE 問題に おける関係と類似の,解読の平均的な困難さが証明されている。一方で,これらの変種とオリジナルの LWE 問題と の関係性は自明ではなく,同程度の難しさを持つかどうかは未解決問題である。一般的に Ring(Module)-LWE 問題 *19 文献上は 1998 年の国際会議 ANTS だが,初出は CRYPTO1996 の Rump Session である。 89 のインスタンスは LWE 問題のインスタンスとして書きなおすことができるため,LWE 問題は Ring(Module)-LWE 問題よりも困難であるという関係は自明であるが,逆の関係は知られていない。法 q が大きい場合には,Ring-LWE は Module-LWE よりも困難であることが知られている [8]。 (Ring/Module-LWE 問題の理論解析の最新研究について [154] を参照。) 実装時の問題として,離散 Gauss 分布を正確に生成することは難しいことが挙げられる。ノイズをある整数区間か ら一様分布として取った場合でも,格子問題へと量子帰着が可能であることが 2013 年に Döttling ら [62] により示さ れた。この方向性の研究として,Bai ら [22] により提案された,理想的な Gauss 分布を用いた暗号方式とそれを近似 的な分布に置き換えた方式の間での安全性の低下を Rényi ダイバージェンスを用いて議論するものがある。 格子に基づく暗号技術は,耐量子計算機暗号としてだけでなく,完全準同型暗号や多重署名などの高機能な暗号方式 に応用する研究も数多くある [31, 35, 125, 155, 61, 160, 123, 109, 44, 96, 60, 88, 110, 111]。 また,格子問題の計算機による具体的な求解に関して,2016 年より暗号解読コンテスト LWE Challenge[56] が開催 されている。3.1 節に,2024 年 11 月現在の状況について記載した。特に 3.3 節で示された各暗号方式のパラメータか ら見ると,解が得られている値からは,大きな隔たりがみられる。格子に基づく暗号技術は,各方式毎にパラメータ設 定手法に対する制約が異なっていることから,解読コンテストのサイズに基づく解読到達レベルを,具体的な暗号方式 の安全性の根拠とすることは,難しいところではあるものの,古典計算機での解読困難性を測る上での検討の一つに値 すると考えられる。(最新の BKZ の改良や LWE の解読計算量見積もりについては [152, 157] を参照) 格子に基づく暗号技術の安全性の根拠となる問題は,古典計算機・量子計算機のいずれにおいても現時点で効率的な 解読手法は見つかっていないが,格子に基づく暗号技術は未だ研究途上にあり,今後も研究の進捗を注視する必要が ある。 90 第 3 章の参照文献 [1] National Security Agency. Announcing the Commercial National Security Algorithm Suite 2.0. https: //media.defense.gov/2022/Sep/07/2003071834/-1/-1/0/CSA_CNSA_2.0_ALGORITHMS_.PDF. 2022-09. (2024-12-06 閲覧). [2] M. Ajtai. Generating Hard Instances of Lattice Problems (Extended Abstract). STOC. ACM, 1996, pp. 99–108. [3] M. Ajtai, Cynthia Dwork. A Public-Key Cryptosystem with Worst-Case/Average-Case Equivalence. STOC. ACM, 1997, pp. 284–293. [4] G. Alagic et al. Status Report on the Third Round of the NIST Post-Quantum Cryptography Standardiza- tion Process. NIST IR 8413, https://nvlpubs.nist.gov/nistpubs/ir/2022/NIST.IR.8413-upd1.pdf. 2022-07. [5] M. Albrecht, L. Ducas. Lattice attacks on NTRU and LWE: A history of refinements. London Mathematical Society Lecture Notes 469. Cambridge University Press, 2021, pp. 15–40. Chapter 2. [6] M. R. Albrecht, S. Bai, L. Ducas. A Subfield Lattice Attack on Overstretched NTRU Assumptions – Cryptanalysis of Some FHE and Graded Encoding Schemes. CRYPTO (1). Vol. 9814. Lecture Notes in Computer Science. Springer, 2016, pp. 153–178. [7] M. R. Albrecht, B. R. Curtis, A. Deo, A. Davidson, R. Player, E. W. Postlethwaite, F. Virdia, T. Wunderer. Estimate All the {LWE, NTRU} Schemes! SCN. Vol. 11035. Lecture Notes in Computer Science. Springer, 2018, pp. 351–367. [8] M. R. Albrecht, A. Deo. Large Modulus Ring-LWE ≥ Module-LWE. ASIACRYPT (1). Vol. 10624. Lecture Notes in Computer Science. Springer, 2017, pp. 267–296. [9] M. R. Albrecht, L. Ducas, G. Herold, E. Kirshanova, E. W. Postlethwaite, M. Stevens. The General Sieve Kernel and New Records in Lattice Reduction. EUROCRYPT (2). Vol. 11477. Lecture Notes in Computer Science. Springer, 2019, pp. 717–746. [10] M. R. Albrecht, F. Göpfert, F. Virdia, T. Wunderer. Revisiting the Expected Cost of Solving uSVP and Applications to LWE. ASIACRYPT (1). Vol. 10624. Lecture Notes in Computer Science. Springer, 2017, pp. 297–322. [11] E. Alkim, L. Ducas, T. Pöppelmann, P. Schwabe. NewHope without reconciliation. (2016). https:// eprint.iacr.org/2016/1157. [12] E. Alkim, L. Ducas, T. Pöppelmann, P. Schwabe. Post-quantum Key Exchange - A New Hope. USENIX Security Symposium. USENIX Association, 2016, pp. 327–343. [13] E. Alkim et al. FrodoKEM – Learning with errors key encapsulation. Algorithm specifications and sup- porting documentation (June 4, 2021). https : / / frodokem . org / files / FrodoKEM - specification - 20210604.pdf. 2021-06. (2024-03-04 閲覧). 91 [14] E. Alkim et al. NewHope algorithm specifications and supporting documentation Version 1.1 (Updated April 10, 2020). https://newhopecrypto.org/data/NewHope_2020_04_10.pdf. 2020-04. (2024-03-04 閲覧). [15] General intelligence and security service. Prepare for the threat of quantum computers. https://english.aivd.nl/publications/publications/2022/01/18/prepare-for-the-threat-of- quantumcomputers. 2022-01. (2024-03-04 閲覧). [16] Annex on FrodoKEM updates. https://frodokem.org/files/FrodoKEM-annex-20230418.pdf. 2024-04. (2024-12-01 閲覧). [17] R. Avanzi et al. CRYSTALS-Kyber – Algorithm specifications and supporting documentation. https://pq-crystals.org/kyber/data/kyber-specification.pdf. 2017-11. (2024-03-04 閲覧). [18] R. Avanzi et al. CRYSTALS-Kyber – Algorithm specifications and supporting documentation (version 2.0). https://pq- crystals.org/kyber/data/kyber- specification- round2.pdf. 2019-04. (2024-03-04 閲覧). [19] R. Avanzi et al. CRYSTALS-Kyber – Algorithm specifications and supporting documentation (version 3.02). https://pq-crystals.org/kyber/data/kyber-specification-round3-20210804.pdf. 2021-08. (2024-03-04 閲覧). [20] S. Bai, L. Ducas, E. Kiltz, T. Lepoint, V. Lyubashevsky, P. Schwabe, G. Seiler, D. Stehlé. CRYSTALS- Dilithium algorithm specifications and supporting documentation (Version 3.1). https://pq-crystals. org/dilithium/data/dilithium-specification-round3-20210208.pdf. 2021-02. (2024-03-04 閲覧). [21] S. Bai, S. D. Galbraith. Lattice Decoding Attacks on Binary LWE. ACISP. Vol. 8544. Lecture Notes in Computer Science. Springer, 2014, pp. 322–337. [22] S. Bai, T. Lepoint, A. Roux-Langlois, A. Sakzad, D. Stehlé, R. Steinfeld. Improved Security Proofs in Lattice-Based Cryptography: Using the Rényi Divergence Rather than the Statistical Distance. J. Cryptol. Vol. 31, Num. 2 (2018), pp. 610–640. [23] H. Bambury, P. Q. Nguyen. Improved Provable Reduction of NTRU and Hypercubic Lattices. PQCrypto (1). Vol. 14771. Lecture Notes in Computer Science. Springer, 2024, pp. 343–370. [24] A. Banerjee, C. Peikert, A. Rosen. Pseudorandom Functions and Lattices. EUROCRYPT. Vol. 7237. Lecture Notes in Computer Science. Springer, 2012, pp. 719–737. [25] M. Barbosa et al. Fixing and Mechanizing the Security Proof of Fiat-Shamir with Aborts and Dilithium. CRYPTO (5). Vol. 14085. Lecture Notes in Computer Science. Springer, 2023, pp. 358–389. [26] E. Barker, J. Kelsey. Recommendation for Random Number Generation Using Deterministic Random Bit Generators. NIST SP 800-90A Rev. 1, https://nvlpubs.nist.gov/nistpubs/SpecialPublications/ NIST.SP.800-90Ar1.pdf. 2015-06. [27] E. Barker, J. Kelsey, K. McKay, A. Roginsky, M. S. Turan. Recommendation for Random Bit Generator (RBG) Constructions. NIST SP 800-90C (4th public draft), https://nvlpubs.nist.gov/nistpubs/ SpecialPublications/NIST.SP.800-90C.4pd.pdf. 2024-07. (2025-02-17 閲覧). [28] A. Basso, J. M. Bermudo Mera, J.-P. D’Anvers, A. Karmakar, S. S. Roy, M. Van Beirendonck, F. Ver- cauteren. SABER: Mod-LWR based KEM (Round 3 Submission). https://www.esat.kuleuven.be/ cosic/pqcrypto/saber/files/saberspecround3.pdf. (2024-03-04 閲覧). 92 [29] B. Bencina, A. Budroni, J.-J. Chi-Domı́nguez, M. Kulkarni. Properties of Lattice Isomorphism as a Cryptographic Group Action. PQCrypto (1). Vol. 14771. Lecture Notes in Computer Science. Springer, 2024, pp. 170–201. [30] O. Bernard, A. Lesavourey, TH Nguyen, A. Roux-Langlois. Log-S -unit Lattices Using Explicit Stickel- berger Generators to Solve Approx Ideal-SVP. ASIACRYPT (3). Vol. 13793. Lecture Notes in Computer Science. Springer, 2022, pp. 677–708. [31] W. Beullens, S. Dobson, S. Katsumata, Y.-F. Lai, F. Pintore. Group signatures and more from isogenies and lattices: generic, simple, and efficient. Vol. 91. 6. 2023, pp. 2141–2200. [32] M. Bolboceanu, Z. Brakerski, D. Sharma. On Algebraic Embedding for Unstructured Lattices. Public Key Cryptography (3). Vol. 14603. Lecture Notes in Computer Science. Springer, 2024, pp. 123–154. [33] J. W. Bos, C. Costello, L. Ducas, I. Mironov, M. Naehrig, V. Nikolaenko, A. Raghunathan, D. Ste- bila. Frodo: Take off the Ring! Practical, Quantum-Secure Key Exchange from LWE. CCS. ACM, 2016, pp. 1006–1018. [34] J. W. Bos et al. CRYSTALS – Kyber: A CCA-Secure Module-Lattice-Based KEM. EuroS&P. IEEE, 2018, pp. 353–367. [35] C. Boschini, A. Takahashi, M. Tibouchi. MuSig-L: Lattice-Based Multi-signature with Single-Round Online Phase. CRYPTO (2). Vol. 13508. Lecture Notes in Computer Science. Springer, 2022, pp. 276–305. [36] K. Boudgoust, E. Gachon, A. Pellet-Mary. Some Easy Instances of Ideal-SVP and Implications on the Partial Vandermonde Knapsack Problem. CRYPTO (2). Vol. 13508. Lecture Notes in Computer Science. Springer, 2022, pp. 480–509. [37] M. Braithwaite. Experimenting with post-quantum cryptography. https://security.googleblog.com/ 2016/07/experimenting-with-post-quantum.html. 2023-04. (2024-03-04 閲覧). [38] Z. Brakerski, A. Langlois, C. Peikert, O. Regev, D. Stehlé. Classical hardness of learning with errors. STOC. ACM, 2013, pp. 575–584. [39] Z. Brakerski, V. Vaikuntanathan. Fully Homomorphic Encryption from Ring-LWE and Security for Key Dependent Messages. CRYPTO. Vol. 6841. Lecture Notes in Computer Science. Springer, 2011, pp. 505– 524. [40] L. G. Bruinderink, A. Hülsing, T. Lange, Y. Yarom. Flush, Gauss, and Reload - A Cache Attack on the BLISS Lattice-Based Signature Scheme. CHES. Vol. 9813. Lecture Notes in Computer Science. Springer, 2016, pp. 323–345. [41] K. Carrier, T. Debris-Alazard, C. Meyer-Hilfiger, J.-P. Tillich. Reduction from Sparse LPN to LPN, Dual Attack 3.0. EUROCRYPT (6). Vol. 14656. Lecture Notes in Computer Science. Springer, 2024, pp. 286– 315. [42] C. Chen, J. Hoffstein, W. Whyte, Z. Zhang. NIST PQ Submission: NTRUEncrypt A lattice based en- cryption algorithm. https://csrc.nist.gov/CSRC/media/Projects/Post- Quantum- Cryptography/ documents/round-1/submissions/NTRUEncrypt.zip. (2024-03-04 閲覧). [43] C. Chen et al. NTRU algorithm specifications and supporting documentation (September 30,2020). https: / / csrc . nist . gov / CSRC / media / Projects / post - quantum - cryptography / documents / round - 3 / submissions/NTRU-Round3.zip. 2020-09. (2024-03-04 閲覧). [44] Y. Chen. sfDualMS: Efficient Lattice-Based Two-Round Multi-signature with Trapdoor-Free Simulation. CRYPTO (5). Vol. 14085. Lecture Notes in Computer Science. Springer, 2023, pp. 716–747. 93 [45] Y. Chen, Q. Liu, M. Zhandry. Quantum Algorithms for Variants of Average-Case Lattice Problems via Filtering. EUROCRYPT (3). Vol. 13277. Lecture Notes in Computer Science. Springer, 2022, pp. 372–401. [46] Y. Chen, P. Q. Nguyen. BKZ 2.0: Better Lattice Security Estimates. ASIACRYPT. Vol. 7073. Lecture Notes in Computer Science. Springer, 2011, pp. 1–20. [47] C. Chuengsatiansup, T. Prest, D. Stehlé, A. Wallet, K. Xagawa. ModFalcon: Compact Signatures Based On Module-NTRU Lattices. AsiaCCS. ACM, 2020, pp. 853–866. [48] C.-M. M. Chung, V. Hwang, M. J. Kannwischer, G. Seiler, C.-J. Shih, B.-Y. Yang. NTT Multiplication for NTT-unfriendly Rings New Speed Records for Saber and NTRU on Cortex-M4 and AVX2. IACR Trans. Cryptogr. Hardw. Embed. Syst. Vol. 2021, Num. 2 (2021), pp. 159–188. [49] J.-S. Coron, F. Gérard, M. Trannoy, R. Zeitoun. Improved Gadgets for the High-Order Masking of Dilithium. Vol. 2023. 4. 2023, pp. 110–145. [50] R. Cramer, L. Ducas, B. Wesolowski. Mildly Short Vectors in Cyclotomic Ideal Lattices in Quantum Polynomial Time. J. ACM. Vol. 68, Num. 2 (2021), 8:1–8:26. [51] R. Cramer, L. Ducas, B. Wesolowski. Short Stickelberger Class Relations and Application to Ideal-SVP. EUROCRYPT (1). Vol. 10210. Lecture Notes in Computer Science. 2017, pp. 324–348. [52] C. Cremers, S. Düzlü, R. Fiedler, M. Fischlin, C. Janson. BUFFing signature schemes beyond unforgeability and the case of post-quantum signatures. Symposium on Security and Privacy (SP). IEEE, 2021, pp. 1696– 1714. [53] J.-P. D’Anvers. SABER: Module-LWR based KEM. Second PQC Standardization Conference. 2019-08. https://csrc.nist.gov/Presentations/2019/saber-round-2-presentation. (2024-03-04 閲覧). [54] J.-P. D’Anvers, A. Karmakar, S. Sinha Roy, F. Vercauteren. Saber: Module-LWR Based Key Exchange, CPA-Secure Encryption and CCA-Secure KEM. AFRICACRYPT. Vol. 10831. Lecture Notes in Computer Science. Springer, 2018, pp. 282–305. [55] D. Dachman-Soled, H. Gong, T. Hanson, H. Kippen. Revisiting Security Estimation for LWE with Hints from a Geometric Perspective. CRYPTO (5). Vol. 14085. Lecture Notes in Computer Science. Springer, 2023, pp. 748–781. [56] TU Darmstadt, UC San Diego. LWE Challenge. https://www.latticechallenge.org/lwe_challenge/ challenge.php. (2024-03-04 閲覧). [57] TU Darmstadt, UC San Diego. SVP Challenge, Hall Of Fame. https://www.latticechallenge.org/svp- challenge/halloffame.php. (2024-03-04 閲覧). [58] D. Das, A. Joux. Key Recovery Attack on the Partial Vandermonde Knapsack Problem. EUROCRYPT (6). Vol. 14656. Lecture Notes in Computer Science. Springer, 2024, pp. 205–225. [59] T. Debris-Alazard, P. Fallahpour, D. Stehlé. Quantum Oblivious LWE Sampling and Insecurity of Standard Model Lattice-Based SNARKs. STOC. ACM, 2024, pp. 423–434. [60] J. Devevey, A. Passelègue, D. Stehlé. G+G: A Fiat-Shamir Lattice Signature Based on Convolved Gaus- sians. ASIACRYPT (7). Vol. 14444. Lecture Notes in Computer Science. Springer, 2023, pp. 37–64. [61] N. Döttling, D. Kolonelos, R. W. F. Lai, C. Lin, G. Malavolta, A. Rahimi. Efficient Laconic Cryptography from Learning with Errors. EUROCRYPT (3). Vol. 14006. Lecture Notes in Computer Science. Springer, 2023, pp. 417–446. [62] N. Döttling, J. Müller-Quade. Lossy Codes and a New Variant of the Learning-With-Errors Problem. EUROCRYPT. Vol. 7881. Lecture Notes in Computer Science. Springer, 2013, pp. 18–34. 94 [63] L. Ducas, E. Kiltz, T. Lepoint, V. Lyubashevsky, P. Schwabe, G. Seiler, D. Stehlé. CRYSTALS-Dilithium algorithm specifications and supporting documentation. https://pq-crystals.org/dilithium/data/ dilithium-specification.pdf. 2017-11. (2024-03-04 閲覧). [64] L. Ducas, E. Kiltz, T. Lepoint, V. Lyubashevsky, P. Schwabe, G. Seiler, D. Stehlé. CRYSTALS-Dilithium: A Lattice-Based Digital Signature Scheme. IACR Trans. Cryptogr. Hardw. Embed. Syst. Vol. 2018, Num. 1 (2018), pp. 238–268. [65] L. Ducas, T. Lepoint, V. Lyubashevsky, P. Schwabe, G. Seiler, D. Stehle. CRYSTALS-Dilithium: Digital Signatures from Module Lattices. Cryptology ePrint Archive, Paper 2017/633. 2017. https://eprint. iacr.org/2017/633. [66] L. Ducas, E. W. Postlethwaite, L. N. Pulles, W. P. J. van Woerden. HAWK: Module LIP Makes Lattice Signatures Fast, Compact and Simple. ASIACRYPT (4). Vol. 13794. Lecture Notes in Computer Science. Springer, 2022, pp. 65–94. [67] L. Ducas, T. Prest. Fast Fourier Orthogonalization. ISSAC. ACM, 2016, pp. 191–198. [68] L. Ducas, J. Schanck. Security estimation scripts for Kyber and Dilithium. https://github.com/pq- crystals/security-estimates. 2019-03. (2024-03-04 閲覧). [69] L. Ducas, M. Stevens, W. P. J. van Woerden. Advanced Lattice Sieving on GPUs, with Tensor Cores. EUROCRYPT (2). Vol. 12697. Lecture Notes in Computer Science. Springer, 2021, pp. 249–279. [70] L. Ducas, W. P. J. van Woerden. On the Lattice Isomorphism Problem, Quadratic Forms, Remarkable Lattices, and Cryptography. EUROCRYPT (3). Vol. 13277. Lecture Notes in Computer Science. Springer, 2022, pp. 643–673. [71] S. Düzlü, R. Fiedler, M. Fischlin. BUFFing FALCON without Increasing the Signature Size. IACR Cryptol. ePrint Arch. (2024), p. 710. [72] T. Espitau, P.-A. Fouque, F. Gérard, M. Rossi, A. Takahashi, M. Tibouchi, A. Wallet, Y. Yu. MITAKA: A Simpler, Parallelizable, Maskable Variant of FALCON. EUROCRYPT (3). Vol. 13277. Lecture Notes in Computer Science. Springer, 2022, pp. 222–253. [73] T. Espitau, T. Thu Quyen Nguyen, C. Sun, M. Tibouchi, A. Wallet. ANTRAG: Annular NTRU trapdoor generation - Making MITAKA as secure as FALCON. ASIACRYPT (7). Vol. 14444. Lecture Notes in Computer Science. Springer, 2023, pp. 3–36. [74] T. Espitau, M. Tibouchi, A. Wallet, Y. Yu. Shorter Hash-and-Sign Lattice-Based Signatures. CRYPTO (2). Vol. 13508. Lecture Notes in Computer Science. Springer, 2022, pp. 245–275. [75] ETSI TR 103 616 V1.1.1 (2021-09) CYBER; Quantum-safe signatures. https://www.etsi.org/deliver/ etsi_tr/103600_103699/103616/01.01.01_60/tr_103616v010101p.pdf. 2021-09. (2024-03-04 閲覧). [76] M. Fahr et al. When Frodo Flips: End-to-End Key Recovery on FrodoKEM via Rowhammer. CCS. ACM, 2022, pp. 979–993. [77] J. Felderhoff, A. Pellet-Mary, D. Stehlé. On Module Unique-SVP and NTRU. ASIACRYPT (3). Vol. 13793. Lecture Notes in Computer Science. Springer, 2022, pp. 709–740. [78] A. Fiat, A. Shamir. How to Prove Yourself: Practical Solutions to Identification and Signature Problems. CRYPTO. Vol. 263. Lecture Notes in Computer Science. Springer, 1986, pp. 186–194. [79] P.-A. Fouque, F. Gérard, M. Rossi, Y. Yu. Zalcon: An alternative FPA-free NTRU sampler for Falcon. Third PQC Standardization Conference. 2021-06. (2024-03-04 閲覧). 95 [80] P.-A. Fouque et al. FALCON: Fast-Fourier lattice-based compact signatures over NTRU. Specification v1.0. https://csrc.nist.gov/CSRC/media/Projects/Post- Quantum- Cryptography/documents/round- 1/submissions/Falcon.zip. (2024-03-04 閲覧). [81] P.-A. Fouque et al. FALCON: Fast-Fourier lattice-based compact signatures over NTRU. Specification v1.2 – 01/10/2020. https://falcon-sign.info/falcon.pdf. 2020-10. (2024-03-04 閲覧). [82] FrodoKEM: Learning With Errors Key Encapsulation – Preliminary Standardization Proposal. https: //frodokem.org/files/FrodoKEM_standard_proposal_20241205.pdf. 2024-12. (2025-01-27 閲覧). [83] C. Gentry, C. Peikert, V. Vaikuntanathan. How to Use a Short Basis: Trapdoors for hard lattices and new cryptographic constructions. STOC. ACM, 2008, pp. 197–206. [84] O. Goldreich, S. Goldwasser, S. Halevi. Public-Key Cryptosystems from Lattice Reduction Problems. CRYPTO. Vol. 1294. Lecture Notes in Computer Science. Springer, 1997, pp. 112–131. [85] M. Grillere, P. Thomassen, N. Wisiol. FALCON-512 in PowerDNS. https://blog.powerdns.com/2022/ 04/07/falcon-512-in-powerdns/. 2022-04. (2024-03-04 閲覧). [86] Q. Guo, T. Johansson, A. Nilsson. A Key-Recovery Timing Attack on Post-quantum Primitives Using the Fujisaki-Okamoto Transformation and Its Application on FrodoKEM. CRYPTO (2). Vol. 12171. Lecture Notes in Computer Science. Springer, 2020, pp. 359–386. [87] J. Hoffstein, J. Pipher, J. H. Silverman. NTRU: A Ring-Based Public Key Cryptosystem. ANTS. Vol. 1423. Lecture Notes in Computer Science. Springer, 1998, pp. 267–288. [88] D. Hofheinz, K. Hostáková, R. Langrehr, B. Ursu. On Structure-Preserving Cryptography and Lattices. Public Key Cryptography (3). Vol. 14603. Lecture Notes in Computer Science. Springer, 2024, pp. 255–287. [89] D. Hofheinz, K. Hövelmanns, E. Kiltz. A Modular Analysis of the Fujisaki-Okamoto Transformation. TCC (1). Vol. 10677. Lecture Notes in Computer Science. Springer, 2017, pp. 341–371. [90] J. Howe, T. Pöppelmann, M. O’Neill, E. O’Sullivan, T. Güneysu. Practical Lattice-Based Digital Signature Schemes. ACM Trans. Embed. Comput. Syst. Vol. 14, Num. 3 (2015), 41:1–41:24. [91] A. Hülsing, K.-C. Ning, P. S., F. Weber, P. R. Zimmermann. Post-quantum WireGuard. SP. IEEE, 2021, pp. 304–321. [92] A. Hülsing, J. Rijneveld, J. M. Schanck, P. Schwabe. High-Speed Key Encapsulation from NTRU. CHES. Vol. 10529. Lecture Notes in Computer Science. Springer, 2017, pp. 232–252. [93] A. Hülsing, J. Rijneveld, J. M. Schanck, P. Schwabe. NTRU-HRSS-KEM Algorithm Specifications And Supporting Documentation (November 30, 2017). https : / / csrc . nist . gov / CSRC / media / Projects / Post-Quantum-Cryptography/documents/round-1/submissions/NTRU_HRSS_KEM.zip. 2017-11. (2024- 03-04 閲覧). [94] R. Kannan. Improved Algorithms for Integer Programming and Related Lattice Problems. STOC. ACM, 1983, pp. 193–206. [95] K. Kim, M. Tibouchi, A. Wallet, T. Espitau, A. Takahashi, Y. Yu, S. Guilley. SOLMAE – Algorithm specifications. https://kpqc.or.kr/images/pdf/SOLMAE.pdf. (2024-03-04 閲覧). [96] R. W. F. Lai, G. Malavolta. Lattice-Based Timed Cryptography. CRYPTO (5). Vol. 14085. Lecture Notes in Computer Science. Springer, 2023, pp. 782–804. [97] A. Langlois, D. Stehlé. Worst-case to average-case reductions for module lattices. Des. Codes Cryptogr. Vol. 75, Num. 3 (2015), pp. 565–599. 96 [98] M. Lantz. World’s first quantum computing safe tape drive. https://www.ibm.com/blogs/research/ 2019/08/crystals/. 2019-08. (2024-03-04 閲覧). [99] A. K. Lenstra, H. W. Lenstra, L. Lovász. Factoring polynomials with rational coefficients. Mathematische Annalen. Vol. 261, Num. 4 (1982), pp. 515–534. [100] X. Lin, M. Suzuki, S. Zhang, T. Espitau, Y. Yu, M. Tibouchi, M. Abe. Cryptanalysis of the Peregrine Lattice-Based Signature Scheme. Public Key Cryptography (1). Vol. 14601. Lecture Notes in Computer Science. Springer, 2024, pp. 387–412. [101] R. Lindner, C. Peikert. Better Key Sizes (and Attacks) for LWE-Based Encryption. CT-RSA. Vol. 6558. Lecture Notes in Computer Science. Springer, 2011, pp. 319–339. [102] H. Liu, Y. Yu. A Non-heuristic Approach to Time-Space Tradeoffs and Optimizations for BKW. ASI- ACRYPT (3). Vol. 13793. Lecture Notes in Computer Science. Springer, 2022, pp. 741–770. [103] Z. Liu, V., J. Ding, C. Cheng, Y. Pan. An Improved Practical Key Mismatch Attack Against NTRU. PQCrypto (1). Vol. 14771. Lecture Notes in Computer Science. Springer, 2024, pp. 322–342. [104] V. Lyubashevsky. CRYSTALS-Dilithium Round 3 presentation. Third PQC Standardization Confer- ence. 2021-06. https : / / csrc . nist . gov / Presentations / 2021 / crystals - dilithium - round - 3 - presentation. (2024-03-04 閲覧). [105] V. Lyubashevsky. Fiat-Shamir with Aborts: Applications to Lattice and Factoring-Based Signatures. ASIACRYPT. Vol. 5912. Lecture Notes in Computer Science. Springer, 2009, pp. 598–616. [106] V. Lyubashevsky. Lattice Signatures without Trapdoors. EUROCRYPT. Vol. 7237. Lecture Notes in Computer Science. Springer, 2012, pp. 738–755. [107] V. Lyubashevsky, C. Peikert, O. Regev. On Ideal Lattices and Learning with Errors over Rings. EURO- CRYPT. Vol. 6110. Lecture Notes in Computer Science. Springer, 2010, pp. 1–23. [108] V. Lyubashevsky, C. Peikert, O. Regev. On Ideal Lattices and Learning with Errors over Rings. J. ACM. Vol. 60, Num. 6 (2013), 43:1–43:35. [109] D. Micciancio, M. Schultz. Error Correction and Ciphertext Quantization in Lattice Cryptography. CRYPTO (5). Vol. 14085. Lecture Notes in Computer Science. Springer, 2023, pp. 648–681. [110] D. Micciancio, V. Vaikuntanathan. SoK: Learning with Errors, Circular Security, and Fully Homomorphic Encryption. Public Key Cryptography (4). Vol. 14604. Lecture Notes in Computer Science. Springer, 2024, pp. 291–321. [111] G. De Micheli, D. Kim, D. Micciancio, A. Suhl. Faster Amortized FHEW Bootstrapping Using Ring Automorphisms. Public Key Cryptography (4). Vol. 14604. Lecture Notes in Computer Science. Springer, 2024, pp. 322–353. [112] G. De Micheli, D. Micciancio, A. Pellet-Mary, N. Tran. Reductions from Module Lattices to Free Module Lattices, and Application to Dequantizing Module-LLL. CRYPTO (5). Vol. 14085. Lecture Notes in Computer Science. Springer, 2023, pp. 836–865. [113] D. Moody et al. Status Report on the Second Round of the NIST Post-Quantum Cryptography Standard- ization Process. NIST IR 8309, https://nvlpubs.nist.gov/nistpubs/ir/2020/NIST.IR.8309.pdf. 2020-07. [114] G. Mureau, A. Pellet-Mary, G. Pliatsok, A. Wallet. Cryptanalysis of Rank-2 Module-LIP in Totally Real Number Fields. EUROCRYPT (6). Vol. 14656. Lecture Notes in Computer Science. Springer, 2024, pp. 226–255. 97 [115] M. Naehrig, K. E. Lauter, V. Vaikuntanathan. Can homomorphic encryption be practical? CCSW. ACM, 2011, pp. 113–124. [116] M. Naehrig et al. FrodoKEM – learning with errors key encapsulation. Algorithm specifications and sup- porting documentation (November 30, 2017). https://frodokem.org/files/FrodoKEM-specification- 20171130.pdf. 2017-11. (2024-03-04 閲覧). [117] P. Q. Nguyen, J. Stern. Cryptanalysis of the Ajtai-Dwork Cryptosystem. CRYPTO. Vol. 1462. Lecture Notes in Computer Science. Springer, 1998, pp. 223–242. [118] Q. Nguyen. ANTRAG: Simplifying and improving Falcon Without Compromising Security. https:// csrc.nist.gov/csrc/media/Presentations/2024/antrag- simplifying- and- improving- falcon/ images-media/nguyen-antrag-pqc2024.pdf. 2024-04. (2024-12-30 閲覧). [119] NIST. Module-Lattice-Based Digital Signature Standard. NIST FIPS 204, https://nvlpubs.nist.gov/ nistpubs/FIPS/NIST.FIPS.204.pdf. 2024-08. [120] NIST. Module-Lattice-Based Key-Encapsulation Mechanism Standard. NIST FIPS 203, https : / / nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf. 2024-08. [121] NIST. Submission requirements and evaluation criteria for the post-quantum cryptography standardization process. https://csrc.nist.gov/CSRC/media/Projects/Post- Quantum- Cryptography/documents/ call-for-proposals-final-dec-2016.pdf. 2016-12. (2024-03-05 閲覧). [122] OpenSSH 8.9 was released on 2022-02-23. https://www.openssh.com/txt/release-8.9. (2024-03-04 閲覧). [123] J. Pan, B. Wagner, R. Zeng. Lattice-Based Authenticated Key Exchange with Tight Security. CRYPTO (5). Vol. 14085. Lecture Notes in Computer Science. Springer, 2023, pp. 616–647. [124] C. Peikert, V. Vaikuntanathan, B. Waters. A Framework for Efficient and Composable Oblivious Transfer. CRYPTO. Vol. 5157. Lecture Notes in Computer Science. Springer, 2008, pp. 554–571. [125] R. del Pino, S. Katsumata. A New Framework for More Efficient Round-Optimal Lattice-Based (Partially) Blind Signature via Trapdoor Sampling. CRYPTO (2). Vol. 13508. Lecture Notes in Computer Science. Springer, 2022, pp. 306–336. [126] T. Plantard, W. Susilo, K. Than Win. A Digital Signature Scheme Based on CV P∞ . Public Key Cryp- tography. Vol. 4939. Lecture Notes in Computer Science. Springer, 2008, pp. 288–307. [127] T. Pöppelmann, E. Alkim, R. Avanzi, J. Bos, L. Ducas, A. de la Piedra, P. Schwabe, D. Stebila. NewHope algorithm specifications and supporting documentation Version 1.0. https://newhopecrypto.org/data/ NewHope_2017_12_21.pdf. 2017-11. (2024-03-04 閲覧). [128] T. Pöppelmann et al. NewHope algorithm specifications and supporting documentation Version 1.02 (Updated March 15, 2019). https://newhopecrypto.org/data/NewHope_2019_04_10.pdf. 2019-03. (2024-03-04 閲覧). [129] E. W. Postlethwaite, F. Virdia. On the Success Probability of Solving Unique SVP via BKZ. Public Key Cryptography (1). Vol. 12710. Lecture Notes in Computer Science. Springer, 2021, pp. 68–98. [130] A. Pouly, Y. Shen. Provable Dual Attacks on Learning with Errors. EUROCRYPT (6). Vol. 14656. Lecture Notes in Computer Science. Springer, 2024, pp. 256–285. [131] T. Prest. FALCON Update (2024). https : / / csrc . nist . gov / csrc / media / Presentations / 2024 / falcon/images-media/prest-falcon-pqc2024.pdf. 2024-04. (2024-12-30 閲覧). [132] The Chromium Projects. CECPQ2. https://www.chromium.org/cecpq2/. (2024-03-04 閲覧). 98 [133] O. Regev. On lattices, learning with errors, random linear codes, and cryptography. STOC. ACM, 2005, pp. 84–93. [134] O. Regev. On lattices, learning with errors, random linear codes, and cryptography. J. ACM. Vol. 56, Num. 6 (2009), 34:1–34:40. [135] O. Regev. The Learning with Errors Problem (Invited Survey). CCC. IEEE Computer Society, 2010, pp. 191–204. [136] M. Rosca, A. Sakzad, D. Stehlé, R. Steinfeld. Middle-Product Learning with Errors. CRYPTO (3). Vol. 10403. Lecture Notes in Computer Science. Springer, 2017, pp. 283–297. [137] K. Ryan, N. Heninger. Fast Practical Lattice Reduction Through Iterated Compression. CRYPTO (3). Vol. 14083. Lecture Notes in Computer Science. Springer, 2023, pp. 3–36. [138] Open Quantum Safe. Algorithms in liboq. https : / / openquantumsafe . org / liboqs / algorithms/. (2024-03-04 閲覧). [139] T. Saito, K. Xagawa, T. Yamakawa. Tightly-Secure Key-Encapsulation Mechanism in the Quantum Random Oracle Model. EUROCRYPT (3). Vol. 10822. Lecture Notes in Computer Science. Springer, 2018, pp. 520–551. [140] C. Saliba. Error correction and reconciliation techniques for lattice-based key generation protocols. Ph. D. Theses. CY Cergy Paris Université, 2022-05. https://theses.hal.science/tel- 03718212/file/ SALIBA_2022.pdf. [141] C. Saliba, L. Luzzi, C. Ling. Error Correction for FrodoKEM Using the Gosset Lattice. 2021. [142] C.-P. Schnorr, M. Euchner. Lattice basis reduction: Improved practical algorithms and solving subset sum problems. Math. Program. Vol. 66 (1994), pp. 181–199. [143] Federal office for information security. BSI – Technical guideline (Cryptographic mechanisms: Recommen- dations and key lengths). https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/ TechGuidelines/TG02102/BSI-TR-02102-1.pdf?__blob=publicationFile&v=10. 2023-01.(2024-03-04 閲覧). [144] Selected Algorithms 2022. 2022-07. https://csrc.nist.gov/Projects/post-quantum-cryptography/ selected-algorithms-2022. (2024-03-04 閲覧). [145] E.-Y. Seo, Y.-S. Kim, J.-W. Lee, J.-S. No. Peregrine: Toward Fastest FALCON Based on GPV Framework. (2022). https://eprint.iacr.org/2022/1495. [146] H. M. Steffen, G. Land, L. J. Kogelheide, T. Güneysu. Breaking and Protecting the Crystal: Side-Channel Analysis of Dilithium in Hardware. PQCrypto. Vol. 14154. Lecture Notes in Computer Science. Springer, 2023, pp. 688–711. [147] D. Stehlé, R. Steinfeld. Making NTRU as Secure as Worst-Case Problems over Ideal Lattices. EURO- CRYPT. Vol. 6632. Lecture Notes in Computer Science. Springer, 2011, pp. 27–47. [148] D. Stehlé, R. Steinfeld. Making NTRUEncrypt and NTRUSign as Secure as Standard Worst-Case Problems over Ideal Lattices. Cryptology ePrint Archive, Paper 2013/004. 2013. https://eprint.iacr.org/2013/ 004. [149] D. Stehlé, R. Steinfeld, K. Tanaka, K. Xagawa. Efficient Public Key Encryption Based on Ideal Lattices. ASIACRYPT. Vol. 5912. Lecture Notes in Computer Science. Springer, 2009, pp. 617–635. [150] M. J. Steiner. The Complexity of Algebraic Algorithms for LWE. EUROCRYPT (3). Vol. 14653. Lecture Notes in Computer Science. Springer, 2024, pp. 375–403. 99 [151] M. S. Turan, E. Barker, J. Kelsey, K. McKay, M. Baish, M. Boyle. Recommendation for the Entropy Sources Used for Random Bit Generation. NIST SP 800-90B, https://nvlpubs.nist.gov/nistpubs/ SpecialPublications/NIST.SP.800-90B.pdf. 2018-01. [152] L. Wang. Analyzing Pump and Jump BKZ Algorithm Using Dynamical Systems. PQCrypto (1). Vol. 14771. Lecture Notes in Computer Science. Springer, 2024, pp. 406–432. [153] R. Wang, M. Brisfors, E. Dubrova. A Side-Channel Attack on a Higher-Order Masked CRYSTALS-Kyber Implementation. ACNS (3). Vol. 14585. Lecture Notes in Computer Science. Springer, 2024, pp. 301–324. [154] Z. Wang, Q. Lai, F.-H. Liu. Ring/Module Learning with Errors Under Linear Leakage – Hardness and Applications. Public Key Cryptography (2). Vol. 14602. Lecture Notes in Computer Science. Springer, 2024, pp. 275–304. [155] H. Wee, D. J. Wu. Succinct Vector, Polynomial, and Functional Commitments from Lattices. EURO- CRYPT (3). Vol. 14006. Lecture Notes in Computer Science. Springer, 2023, pp. 385–416. [156] wolfSSL. wolfSSL support for Apache httpd and curl (Post-Quantum Edition). https://github.com/ wolfSSL/osp/blob/master/apache-httpd/README_post_quantum.md. (2024-03-04 閲覧). [157] W. Xia, L. Wang, G. Wang, D. Gu, B. Wang. A Refined Hardness Estimation of LWE in Two-Step Mode. Public Key Cryptography (3). Vol. 14603. Lecture Notes in Computer Science. Springer, 2024, pp. 3–35. [158] W. Xia, L. Wang, G. Wang, D. Gu, B. Wang. Refined Strategy for Solving LWE in Two-step Mode. Cryptology ePrint Archive, Paper 2022/1343. 2022. https://eprint.iacr.org/2022/1343. [159] Y. Yu, L. Ducas. Second Order Statistical Behavior of LLL and BKZ. SAC. Vol. 10719. Lecture Notes in Computer Science. Springer, 2017, pp. 3–22. [160] Y. Yu, H. Jia, X. Wang. Compact Lattice Gadget and Its Applications to Hash-and-Sign Signatures. CRYPTO (5). Vol. 14085. Lecture Notes in Computer Science. Springer, 2023, pp. 390–420. [161] 量子耐性暗号研究団. KpqC. https://kpqc.or.kr/. (2024-12-06 閲覧). 100 第4章 符号に基づく暗号技術 本章では符号に基づく暗号技術についてまとめる。符号に基づく暗号技術の安全性はシンドローム復号(Syndrome Decoding: SD)問題や Learning Parity with Noise(LPN)問題を解く計算の困難性に依存している。 ■準備: 本章で使用する記号・用語を以下にまとめる。以下では,q を素数 p のべきとする。すなわち,ある正整数 k が存在して q = pk である。以下では log の底が省略されている場合は底を 2 とする。自然対数を用いる場合は ln と 書く。 有限体: Fq で位数が q の有限体を表す。 ハミング重みとハミング距離: Vn を有限体 Fq 上の n 次元ベクトル空間とする。 • 行ベクトル v = (v1 , v2 , . . . , vn ) ∈ Vn のハミング重みとは,非ゼロの成分の数である。すなわち,有限集合 X に対して |X| で X の要素数を表すとき,HW(v) = |{i | vi 6= 0}| である。 • ハミング距離を dH (x, y) = HW(x − y) で定義する。 • SH (n, w) でハミング重みが w の n 次元ベクトル全体の集合を表す。 ≤ • SH (n, w) でハミング重みが w 以下の n 次元ベクトル全体の集合を表す。 ■線形符号: 線形符号とは,誤りが発生する通信路において,メッセージを相手に正しく伝えるための技術である。 メッセージを冗長にして(符号化という)送信し,受信時に伝送中に生じた誤りを訂正する(復号という)ことで,正 しいメッセージを得ることができる。自然数 n および 素数べき q について,Fq 上の n 次元ベクトル空間の線形部分 空間を Fq 上の線形符号と呼び,C で表す。C の要素を符号語と呼び,n を符号長という。このとき [c1 , . . . , ck ] を C の 基底とする。k を線形符号の次元と呼ぶ。Fq 上の線形符号の符号長が n,次元が k であるとき,[n, k]q -線形符号とよ ぶ。[n, k]q -線形符号 C の最小距離 d とは,2 つの異なる符号語間のハミング距離の最小値である。d は符号 C の全て の非ゼロ符号語のハミング重みの最小値に一致する。すなわち,d = min HW(c) である。 c∈C\{0} [n, k]q -線形符号 C の生成行列とは,符号 C の基底ベクトルを行とする行列 G ∈ Fk×n q であり,メッセージの符号化 に用いられる。メッセージ s ∈ Fkq に対して,sG ∈ Fn q は符号語である。メッセージと符号語は一対一対応させること ができる。[n, k]q -線形符号 C のパリティ検査行列とは,行列 H ∈ Fr×n q で,c ∈ Fn q に対して,c ∈ C ならばかつそ の時に限り cH ⊤ = 0 となるものである。H の行が一次独立であれば,r = n − k である。組織符号化とは,行列 H (n−k)×(n−k) (n−k)×k に対して,行列 S ∈ Fq を適用し,SH = [In−k | Z] を得る操作を指す。ここで,Z ∈ Fq である。 線形符号は,生成行列やパリティ検査行列をうまく設計することで,受信時に符号語に加えられた誤りを訂正するこ とができる。誤り訂正には,復号アルゴリズムが用いられる。送信する符号語を c とし,通信路上で乗った誤りを e と する。受信者側は,受信語として y = c + e を得る。受信者は,復号アルゴリズムを用いて y から c を得る。受信者 がハミング重み t までの誤り e を一意に訂正できるとき,符号の訂正能力が t であるという。一般に,t ≤ b(d − 1)/2c が成り立つ。復号アルゴリズムには,符号の構造を用いる方式や,パリティ検査行列を用いる方式がある。後者の場 101 合,受信語 y に対して s = yH ⊤ を計算する。s はシンドロームと呼ばれる。s = eH ⊤ となることから,s 6= 0 であ れば,誤りを検出・訂正できる。 本稿では,具体的な線形符号(リード・ソロモン符号,リード・マラー符号,Goppa 符号)の詳細については扱わな い。符号理論の教科書や,電子情報通信学会 知識の森 「1 群 2 編 符号理論」 [57] などを参照されたい。 4.1 符号に基づく暗号技術の安全性の根拠となる問題 本節では,SD 問題と LPN 問題およびその困難性について報告する。 4.1.1 SD 問題とその拡張 4.1.1.1 SD 問題 SD 問題とは,解のハミング重みが指定された条件のもとで,F2 上の線形方程式を解けるかどうかという問題であ る。また,[n, k]2 -線形符号において,パリティ検査行列とシンドローム,受信語に乗ったエラーのハミング重みが与 えられたときに,エラーを求める問題とみなすことができる。本問題は符号暗号の安全性の根拠として非常に重要であ る。実際に, 4.3 節で説明する NIST PQC 標準化プロジェクトの第 4 ラウンドの 3 種類の符号暗号いずれの方式にお いても,SD 問題が安全性の根拠である。また,近年は SD 問題の拡張問題を安全性の根拠とする暗号や署名方式が多 数提案されていることから,主要な問題について説明する。 (n−k)×n 定義 4.1 (SD 問題) k, w ≤ n を満たす正の整数 n, k, w に対して,行列 H ∈ F2 とベクトル s ∈ Fn−k 2 が与え られる。SDn,k,w 問題は,eH ⊤ = s かつ HW(e) = w を満たすベクトル e ∈ Fn 2 を求める問題である。 4.1.1.2 SD 問題の拡張 SD 問題の拡張として,Regular-SD 問題,Restricted-SD 問題,Rank-SD 問題について述べる。 n/w ■Regular-SD 問題: ベクトル e ∈ Fn 2 が w-正則であるとは,e = (e1 , e2 , . . . , ew ) であり,各 ei ∈ F2 がハミング ⊤ 重み HW(ei ) = 1 を満たすことを指す。Regular-SDn,k,w 問題は,eH = s かつ HW(e) = w を満たす w-正則なベク トル e ∈ Fn 2 を求める問題である。Carozza,Couteau,Joux [16] によると,Regular-SD 問題に基づく署名は,通常 の SD 問題に基づく署名と比較して,署名長や署名時間がより短くなる場合があるとのことである。 ■Restricted-SD 問題: Restricted-SD 問題は,体を F2 から Fq に変更し,解 e の取りうる値を 0 を含む Fq の部分集 合に制限したものである。 (n−k)×n 定義 4.2 (Restricted-SD 問題) k, w ≤ n を満たす正の整数 n, k, w に対して,行列 H ∈ Fq とベクトル s ∈ Fn−k q が与えられる。部分群 E ⊆ F× ⊤ q に対して,E0 = E ∪ {0} とする。Restricted-SDn,k,w 問題は,eH = s か つ HW(e) = w を満たすベクトル e ∈ En0 を求める問題である。 Restricted-SD 問題は,NIST PQC 標準化プロジェクト追加署名第 2 ラウンドの CROSS [7] の安全性の根拠である。 ■Rank-SD 問題: Rank-SD 問題は,SD 問題を拡大体 Fqm に拡張し,重みの指標として行列のランクを用いたもので ある。F qm の Fq 基底を (b1 , . . . , bm ) とする。ベクトル x = (x1 , . . . , xn ) ∈ Fn q m を考える。各座標 xi について, X m xi = xi,j bj j=1 102 となるようなベクトル (xi,1 , . . . , xi,m ) ∈ Fm q と関連付けることができる。ベクトル x の関連行列 M を,M = (xi,j )(i,j)∈[1,n]×[1,m] で定義する。このとき,x のランク重み RW(x) を Rank(M ) で定義する。 (n−k)×n 定義 4.3 (Rank-SD 問題) k, w ≤ n を満たす正の整数 n, k, w に対して,行列 H ∈ Fqm とベクトル s ∈ Fn−k qm が 与えられる。Rank-SDn,k,w 問題は,eH ⊤ = s かつ RW(e) = w を満たすベクトル e ∈ Fn q m を求める問題である。 Rank-SD 問題は,NIST PQC 標準化プロジェクト追加署名第 2 ラウンドの RYDE [5] の安全性の根拠である。 4.1.2 SD 問題に対する評価 SD 問題の計算の困難性に関して,Berlekamp,McEliece,van Tilborg [9] によって,NP 困難な 3 次元マッチング 問題から SD 問題への多項式時間帰着が示されている。これにより,SD 問題が NP 困難であることが判明している。 SDn,k,w 問題や [n, k]2 -線形符号における k/n は符号化レートと呼ばれており,符号化レートが 1/2 付近で SD 問題が (n−k)×n 最も難しくなることが知られている。また,符号化レートを増加させると,公開鍵に相当する入力行列 H ∈ F2 のサイズが減少することから,暗号の設計においては,符号化レート 1/2 以上 1 未満の値が採用されることが多い。 以降では,SD 問題の求解手法として最も研究が進んでいる Information Set Decoding(ISD)を取り上げる。ISD は,符号化レート 0.42 以上において既存方式の中で漸近計算量が最も小さく,SD 問題の解読チャレンジを通して実時 間での計算量解析が進展している。 近年,Carrier,Debris-Alazard,Meyer-Hilfiger,Tillich [18, 17] が提案した Reduction-to-LPN(R-LPN)と呼ば れる手法が,符号化レート 0.42 未満において ISD の漸近計算量を下回るとする解析がなされた。R-LPN は,SD 問題 を後述する Sparse-LPN 問題や LPN 問題に帰着して解く手法であるが,実時間での計算量に関して評価が不足してい るため,本稿では取り上げない。 4.1.2.1 Information Set Decoding SDn,k,w 問題と対応する [n, k]-線形符号の最小距離を d と置く。2 進符号の場合,Gilbert-Varshamov 限界によ り,k/n ≈ 1 − H(d/n) である*1 。w ≈ d の場合の SDn,k,w 問題を Full Distance Decoding と呼ぶ。w ≈ d のと き,SDn,k,w 問題は解くのが最も難しくなる。w  d のとき,SDn,k,w 問題には複数の解が存在することが期待され, w ≤ d のとき,SDn,k,w 問題の解の個数の期待値は 1 以下である。暗号利用においては,w  d が選ばれ,トラップド アを通して唯一解が存在するように設計される。以降は w ≤ d の場合を考える。 問題を総当りで解くには,ハミング重みが SDn,k,w  w の n 次元ベクトル e を列挙すればよい。そのため,時間計算 n 量は O となる。より効率的な手法として,Prange は Information Set Decoding と呼ばれる手法 [53] を提 w 案した。基本アイデアは以下である: (n−k)×n 1. 一様ランダムに H ∈ F2 の列ベクトルを入れ替え,H̃ = HP とする。(P ∈ F2n×n は置換行列。) (n−k)×(n−k) 2. ガウスの消去法と対応する行列 S ∈ F2 によって H̃ を [In−k | Z] = S H̃ とする。(組織符号化) ′ ⊤ 3. シンドローム s ∈ F2 に対して,s = sS を計算する。 n−k 4. s′ のハミング重みが w ならば,e = (s′ , 0k )P ⊤ を出力する。そうでなければ,1. に戻る。 HW(s′ ) = w ならば,HW(e) = w である。また,eH ⊤ = (s′ , 0k )P ⊤ H ⊤ = (s′ , 0k )H̃ ⊤ = (s, 0k )S ⊤ H̃ ⊤ = (s, 0k )[In−k Z]⊤ = s が成立する。よって,ステップ   4 のチェックが通るならば,e は SD 問題の解である。末尾   k 列 n−k n−k n が全て 0 であるような eP は 通りあるため,ある置換行列に対して解が出力される確率は / w w w *1 ここで H(p) = −plog(p) − (1 − p)log(1 − p)。 103 表 4.1: 確率 1/2 以上で SD 問題を解く場合の漸近計算量(Full Distance Decoding の場合) log(Time)/n log(Space)/n 備考 Pra62(Lee-Brickel) 0.121 – [53, 39] Stern89 0.117 0.0135 [55] MMT11 0.112 0.0530 [43]; [30] によって空間計算量が改良された BJMM12 0.102 0.0769 [8] MO15 0.0967 0.0890 [44] BM17 0.0953 0.0910 [15]; MO15 を最適化したもの BM18 0.0951 0.0760 [14]; [18, 25] によって時間・空間計算量が修正された Sieving ISD 0.101 0.0636 [24]     n n−k となる。期待計算量は poly(n, k) · O / となり,先ほどの列挙法よりも速くなる。 w w Stern [55] 以降,空間計算量を犠牲にすることで時間計算量を引き下げる ISD の改良アルゴリズムが多数提案されて いる。Both と May [14] による時間計算量の表を,表 4.1 に示す。この表は,時間計算量を最小化した場合の符号化 レート k/n の最悪時(1/2 の少し下)の漸近計算量についてまとめられている。したがって,問題のパラメータによっ ては,表の数値よりも速く解くことが可能となる。 近年は,漸近計算量のみならず,具体的なパラメータに対する SDn,k,w 問題を求解するために必要なビット計算量を 見積もる研究もなされている。Esser,Verbel,Zweydinger,Bellini [29] は,CryptographicEstimators と呼称する 符号暗号や多変数多項式暗号のビット計算量を推定するソフトウェアを開発した。Narisada ら [48] は,Becker らの ISD [8] の実用的な改良方式を提案し,NIST PQC 標準化プロジェクト第 4 ラウンドの 3 種類の符号暗号のビット計 算量と実時間の計算量を算出した。 ■量子アルゴリズム 現在のところ多項式時間で SD 問題を解く量子アルゴリズムは提案されていない。しかし,量子 アルゴリズムを利用して,いくつかの古典 ISD を高速化する方法を Kachigar と Tillich [36] が提案している*2 。2024 年現在,最良の漸近計算量が得られているのは,BJMM 法 [8] の量子アルゴリズムである量子 BJMM 法であり,時間 計算量が 20.0587n ,空間計算量が 20.0188n となっている。 量子回路設計の研究に関しては,量子 Prange 法に対して,Perriello,Barenghi,Pelosi [51] がグローバーのアルゴ リズムを用いた量子回路を提案した。Esser ら [28] は,量子 Prange 法に対して,一部の演算を古典コンピュータ上で 行う量子と古典のハイブリッド法を提案した。Perriello,Barenghi,Pelosi [52] は,量子 Prange におけるガウスの消 去法の量子回路を改良し,NIST PQC 標準化プロジェクト第 4 ラウンドの 3 種類の符号暗号の解読に必要な量子回路 の深さを最大で 230 削減した。Chevignard,Fouque,Schrottenloher [20] は,量子 Prange 法に対して,量子回路の 深さを犠牲にすることで量子ビット数を削減する,深さと幅のトレードオフ手法を提案した。Stern の ISD [55] 以降に 提案されたリスト探索を伴う ISD については,グローバーのアルゴリズムと量子ウォーク探索を組み合わせた複雑な量 子回路が必要になると考えられている [36]。現在のところ,これらの量子 ISD に対する量子回路は提案されていない。 ■現状の進展 格子の場合と同様に “Decoding Challenge”(https://decodingchallenge.org/)というウェブサ イトが作成された。実時間での計算量解析を通じて,符号に基づく暗号技術の信頼性を向上させることが目的である。 現在,以下 5 つのカテゴリが用意されている。 *2 Kirshanova [38] が Kachigar と Tillich の結果 [36] の改良を提案していたが,誤りがあったことが報告されている。そのため,2024 年時 点でのベストな量子アルゴリズムは Kachigar と Tillich [36] であると考えられる。 104 1. F2 係数の一様ランダムな線形符号に対する SD 問題 2. F2 係数の一様ランダムな線形符号に対するハミング重みが小さい符号語を探索する問題 3. F3 係数の一様ランダム線形符号に対する SD 問題 4. Goppa 符号を用いた Niederreiter 暗号の場合の SD 問題。Classic McEliece(4.3.1 節)に対応 5. QC-MDPC 符号に基づく SD 問題。BIKE(4.3.2 節)や HQC(4.3.3 節)に対応 各問題に対して研究および解読が進んでおり,2025 年 1 月現在,解読に成功した最も困難な問題は次のとおりである。 • 1. n = 570, k = n/2 に対して w = 70(成定,福島,清本,2023/04) • 2. n = 1280, k = n/2 の場合に w = 204(成定,岡田,上村,相川,福島,清本,2024/09) • 3. n = 200, k = log3 (n) の場合に w = 198(Esser,May,Zweydinger,2021/12) • 4. n = 1409, k = 0.8n に対して w = 26(成定,古江,相川,福島,清本,2023/11) • 5. n = 3602, k = n/2 に対して w = 60(成定,岡田,上村,相川,福島,清本,2025/1) 1 の結果については,Narisada,Fukushima,Kiyomoto [47] を,4 の結果については,Narisada ら [48] を参照され たい。2,3,5 についての詳細は,Decoding Challenge 上に掲載されている各記録の詳細を参照されたい。 4.1.3 LPN 問題とその拡張 4.1.3.1 LPN 問題 LPN 問題とは,F2 上の誤差付きの線形方程式を解けるかどうかという問題である。また,[n, k]2 -線形符号におい て,生成行列と受信語が与えられたときに,メッセージを復号する問題とみなすことができる。1993 年に,Blum, Furst,Kearns,Lipton [11] が困難と思われる問題として挙げ,定式化を行った。第 3.1.1 章において,この問題を Fq に一般化した LWE 問題を既に扱っている。Berτ でパラメータ τ のベルヌーイ分布を表す。(確率 τ で 1,確率 1 − τ で 0 となる F2 上の分布である。)また,自然数 k ≥ 1 について,Berkτ で,Berτ から独立に k 個サンプルを取ったと きの Fk2 上の分布を表す。 定義 4.4 (LPN 問題) Fk2 から一様ランダムに選ばれた秘密鍵 s およびエラー比 τ ∈ [0, 1/2) に対して,以下の LPN サ ンプルを出力する LPN オラクルを考える。 (a, b) = (a, s · a⊤ + e), ここで,a は Fk2 から一様ランダムに選び,e は分布 Berτ に従い選ぶ。LPN オラクルを n 回呼び出すとき, (A, b) ← LPNnk,τ と表記する。これは,n 個の LPN サンプル (a1 , b1 ), (a2 , b2 ), . . . , (an , bn ) を行列・ベクトル表示 して, A = [a⊤ ⊤ ⊤ 1 a 2 . . . a n ] ∈ F2 k×n , b = sA + e ∈ Fn2 としたものである。n をサンプル数と呼ぶ。e は,n 個の LPN サンプルのエラー e を成分とするベクトルである。 LPNk,τ 問題とは,LPN オラクルへのアクセスが可能なときに,s を求める問題である。 サンプル数が n の LPNk,τ 問題は,SDn,k,nτ 問題に変換することができる。変種として,体を Fq に変更した LPN 問題・仮定が用いられることもある。LPN 問題の安全性仮定については,2022 年度版の CRYPTREC 耐量子計算機 暗号の研究動向調査報告書 [1, Section 3.1] も参照。 4.1.3.2 LPN 問題の拡張 以下では LPN 問題の拡張について述べる。 105 ■Exact-LPN 問題 誤差分布として,e ← Bern τ ではなく,ハミング重みが厳密に w のものだけを考える(すなわち e ← SH (n, w))。このように誤差分布を変えた問題を Exact-LPN 問題と呼ぶ。 そ ■Sparse-LPN 問題 一部の暗号方式では,s のハミング重みが小さい,すなわち,疎(スパース,sparse)であること を要求する。Applebaum ら [3] は s を誤差分布である χk から選んだ場合の LPN 問題と s を Fk からランダムに選ん だ LPN 問題の等価性を示している。このように s の分布を変えた問題を Sparse-LPN 問題と呼ぶ。 ■Ring-LPN 問題 Heyse,Kiltz,Lyubashevsky,Paar,Pietrzak [35] は,Ring-LPN 問題を定義した。この問題は Ring-LWE 問題(3.1.1.1 節)と同様に定義される。 定義 4.5 (探索版 Ring-LPN 問題) 適当な k 次の Fq 係数多項式 f (x) を考え,環 Rq = Fq [x]/(f (x)) を固定する。 Rq 上の確率分布 χ を固定する。χ と s ∈ Rq に対して,オラクル Os,χ を以下で定義する。(1) a を Rq から一様ラ ンダムに選び,(2) e を分布 χ に従い選び,(3) b = sa + e と計算し,(4) (a, b) ∈ Rq2 を出力する。 探索版 Ring-LPN 問題とは,オラクル Os,χ へのアクセスが可能なときに,s ∈ Rq を求める問題である。 ■Module-LPN 問題 Module-LWE 問題(3.1.1.1 節)と同様に,Module-LPN 問題を定義することができる。 定義 4.6 (探索版 Module-LPN 問題) 適当な k0 次の Fq 係数多項式 f (x) を考え,環 Rq = Fq [x]/(f (x)) を固定す る。Rq 上の確率分布 χ を固定する。 Rq 上の誤差分布 χ および s ∈ Rqk について,オラクル Os,χ を以下で定義する。(1) a を Rqk から一様ランダムに 選び,(2) e を分布 χ に従い選び,(3) b = s · a⊤ + e と計算し,(4) (a, b) ∈ Rq (k+1) を出力する。 探索版 Module-LPN 問題とは,オラクル Os,χ へのアクセスが可能なときに,s ∈ Rqk を求める問題である。 4.1.4 LPN 問題に対する評価 LPN 問題の計算の困難性に関して,サンプル数を固定した場合,NP 困難になることが Berlekamp,McEliece,van Tilborg [9] によって示されている*3 。また,Håstad [34] により近似版 LPN 問題*4 の NP 困難性も示されている。し かし,平均時の困難性についてはよく分かっていない。 LPN 問題の古典求解手法として,現在,大別して以下の 5 つのアルゴリズムが知られている。 1. ガウスの消去法に基づく手法 [19] 2. SD 問題における Information Set Decoding に基づく手法 [27] 3. Blum,Kalai,Wasserman [12] の BKW アルゴリズムに基づく手法 4. Arora,Ge [6] の「再線形化」アルゴリズム 5. 2. と 3. を組み合わせたハイブリッド法 [27] このうち,漸近的に時間計算量が最も小さい手法は BKW アルゴリズムであり,実用上最も高速な手法はハイブリッ ド法である。以降で各手法の概要を説明する。 4.1.4.1 ガウスの消去法に基づく手法 ガウスの消去法に基づく手法は,2008 年に Carrijo,Tonicelli,Imai,Nascimento [19] によって初めて提案された LPN 問題に対する多項式空間・指数時間アルゴリズムである。この手法は指数回数の LPN オラクルの呼び出しが必要 *3 A,b,自然数 w が与えられたときに,線形方程式 sa⊤ = bi を満たすハミング重み w 以下の s が存在するかどうかを判定する問題。 i *4 A および b を与えられたときに,線形方程式 sa⊤ = bi を近似度×最大値以上満たす s を探索する問題。 i 106 であるが,k 個の LPN サンプルを格納するメモリがあれば良いので,必要な計算資源が少なく,実装が容易である。 アルゴリズムの概要は以下である。 1. LPN オラクルを k 回呼び出す: (A, b) ← LPNkk,τ 2. A ∈ Fk×k 2 が可逆行列なら,s′ = bA−1 を秘密鍵の候補とする。 3. LPN オラクルを m = O(k) 回呼び出す: (A′ , b′ ) ← LPNm k,τ 4. 閾値 c ≥ mτ に対して,HW(s′ A′ + b′ ) ≤ c なら, s′ を解として出力する。それ以外の場合,1. からやり直す。 本アルゴリズムは,b にエラーが含まれている時とそうでない時のハミング重みの違いを用いて,秘密鍵を抽出する。 エラーが全く含まれていない場合,s′ は秘密鍵である。このとき,HW(s′ A′ + b′ ) の分布は Berm,τ に従う。一方,エ ラーが含まれているとき,s′ は秘密鍵ではない。このとき,HW(s′ A′ + b′ ) の分布は Berm,1/2 に従う。この分布の違 いを使えば,適切にパラメータ m, c を設定することで,高い確率で秘密鍵のみを出力できる。本手法の計算量は,k 個 の LPN サンプルのエラーが全て 0 である確率が (1 − τ )k であることから,時間計算量が poly(k) · O(2k ),空間計算 量が O(k 2 ),サンプル数が n = O(2k ) となる。 4.1.4.2 Information Set Decoding に基づく手法 LPNk,τ は任意のサンプル数 n に対して SD 問題(SDn,k,τ n )に変換できるため,LPN 問題は SD 問題の効率的な求 解手法である Information Set Decoding を用いて解くことができる。Esser,Kübler,May [27] によって提案された 実用的なアルゴリズムは,ガウスの消去法に基づく手法を拡張したものである。基本アイデアとして,ガウスの消去法 に基づく手法は k 個の LPN サンプルのエラーが全て 0 の場合を考えるが,その拡張として n 個の LPN サンプルのう ち k 個の LPN サンプルのエラーが全て 0 となる組み合わせを考える。n = O(k 2 ) に設定することで,高い確率でこの ような組み合わせが存在する。ガウスの消去法に基づく手法と比較して,LPN サンプルの数を O(2k ) から O(k 2 ) まで 減らせる点が利点である。アルゴリズムの概要は以下である。 1. LPN オラクルを n + m 回呼び出す: (A, b) ← LPNn+m k,τ 2. 集合 [n] = {1, . . . , n} から一様ランダムに k 要素を抽出した部分集合 I を 1 つ選ぶ。 3. (A, b) から集合 I の要素に対応する k 列を抽出したサンプル (AI , bI ) に対して,AI ∈ Fk×k 2 が可逆行列なら, s′ = bI A−1 I を秘密鍵の候補とする。 4. (A′ , b′ ) ← LPNm ′ ′ ′ ′ k,τ と閾値 c ≥ mτ に対して,HW(s A + b ) ≤ c なら,s を解として出力する。それ以外の場 合,2. からやり直す。 この手法のステップ 2 以降では,LPNn k,τ 問題に対応する SDn,k,τ n 問題を考える。Information Set Decoding に おける Prange 法 [53] を使い,SDn,k,τ n 問題を解く [27]。Prange 法は,HW(eI ) = 0 ならば,e = b − sA かつ HW(e) = τ n である e ∈ Fn2 を出力する。集合 I は,ISD における Information Set と呼ばれる集合に対応する。上の アルゴリズムは,任意の ISD に一般化できる: 1. LPN オラクルを n + m 回呼び出す: (A, b) ← LPNn+m k,τ 2. LPNnk,τ に対して,ISD を使って SDn,k,τ n を解く。出力として,解 e ∈ Fn2 と Information Set I を得る。なお, 残りの m サンプル LPNm k,τ は ISD の内部で解の検証に用いられる。 3. (AI , bI ) に対して,s = (bI − eI )A−1 I は高い確率で解である。 ISD には様々な手法があるが,[27] において,MMT 法が実用上最適であることが示されている。MMT 法のような Prange 法より後に提案された ISD は,HW(eI ) ≤ p ならば,e = b − sA かつ HW(e) = τ n である e ∈ Fn2 を出力す る。よって,Information Set にエラーが含まれている場合があるため,ステップ 3 でエラーを打ち消す必要がある。 107 本手法の計算量は,ISD の手法によって異なる関数 c(τ ) に対して,時間計算量が 2c(τ )k ,空間計算量が O(k 3 ),サ ンプル数が O(k 2 ) となる。 4.1.4.3 BKW アルゴリズムに基づく手法 BKW アルゴリズム [12] は,LPN 問題に対する最も著名な手法である。基本アイデアは以下である。オラクルから のサンプル (a, b) が a = (1, 0, . . . , 0) という形であれば,b = s1 + e となる。このようなサンプルを大量に集めれば, s1 を多数決法で求めることが出来る。一般に uj を j 番目の単位ベクトルとして,(uj , b) という形のサンプルを集め れば sj を多数決法で求められる。そこで,LPN オラクルからのサンプルを用いて,このようなサンプルを生成するこ とを目指す。s1 を求める BKW アルゴリズムの概要は以下である。なお,s2 , . . . , sk についても同様に求められる。 1. LPN オラクルを N = 2O(k/logk) 回呼び出す。 2. a ∈ Fk2 を長さ ℓ = k/logk の t = logk 個のブロックに分割する。 3. i = 1, . . . , t − 1 および各 j ∈ Fℓ2 について,a の接尾辞 j|0(i−1)d の j 毎に,全サンプルに対して 2ℓ 個のバケツ に分類する。 4. 各バケツ内で代表 (a∗ , b∗ ) を 1 つ選び,他のサンプル (a, b) に対して (a + a∗ , b + b∗ ) で置換する。代表 (a∗ , b∗ ) はバケツから除去する。これにより,a の末尾 i ブロックが全て 0 となるサンプルが得られる。 5. a = (a1 , . . . , aℓ , 0, . . . , 0) であるサンプル集合に対してガウスの消去法を行い,a = (1, 0, . . . , 0) を得る。いま, b = s · a⊤ + e に対して,b = s1 + e である。 6. b について多数決を行い,多い方を s1 とする。 BKW アルゴリズムでは,ステップ 4 で LPN サンプル同士の加算を実施することに起因してノイズが増加するた め,ステップ 5 の e の分布は Berτ とは異なる点に注意されたい。 BKW アルゴリズムの計算量は,時間計算量・空間計算量・サンプル数いずれも 2O(k/logk) である。よって,大きな 次元の LPN 問題に対しては,メモリ量の増加が課題となる。後述するように,良好なタイムメモリトレードオフ(時 間計算量と空間計算量のトレードオフ)を持つ BKW アルゴリズムの研究開発も進められている。 ■LF アルゴリズム: Levieil と Fouque [40] は BKW アルゴリズムの一部を変更し LF1 アルゴリズムを提案した。変 更点は,BKW アルゴリズムの 5 行目において,a = (a1 , . . . , aℓ , 0, . . . , 0) から s1 , . . . , sℓ を総当りで計算することで ある。 Levieil と Fouque は,LF1 アルゴリズムに一部のヒューリスティクを組み合わせた LF2 アルゴリズムも提案してい る。報告によれば,k = 99, τ = 1/4, n = 10000 の LPN 問題を CPU: Pentium 4(3GHz) ,RAM: 1GB のマシンで 解くことが可能である。Devadas,Ren,Xiao [22] は LF2 アルゴリズムについて詳細な解析を与え,BKW アルゴリ ズムとの比較を行っている。Devadas らの報告によれば,LF2 アルゴリズムは BKW アルゴリズムより時間計算量が 少ない分,メモリ使用量が増加するとのことである。 ■Kirchner の手法: Kirchner [37] は一様ランダムに選ばれた s よりは Berτ に従って選ばれる誤りベクトル e の方 が,ハミング重みが小さく,取りうる値が少ないことに着目した。そこで,LPN 問題を Sparse-LPN 問題に置き換え た上で問題を解く手法を提案している。一般の s であれば,総当りに必要な回数は 2ℓ となる。一方,e は疎であるこ とが期待されるため,e の総当りに必要な回数が削減される。 ■Ring-LPN 問題への応用: Bernstein と Lange [10] は Levieil と Fouque の高速化手法および Kirchner のアイデア を用いることにより,Ring-LPN 問題の解法が高速化できることを示している。 ■Coded-BKW: Guo,Johansson,Löndahl [33] は,covering codes と呼ばれる符号を用いて,Kirchner の手法 [37] および Bernstein と Lange [10] の手法を改良した Coded-BKW を提案した。Kirchner の手法では,BKW アルゴ 108 リズムのステップ 5 において,a を covering code の受信語とみなすことで探索空間の圧縮を行い,高速化を行って いる*5 。Zhang,Jiao,Wang [56] は別の符号を用いて Coded-BKW を改良している。Bogos と Vaudenay [13] は Coded-BKW の解析が一部欠けていることを分析し,最適化を行いつつ詳細な計算量評価を与えた。 ■Dissection-BKW: Esser,Heuer,Kübler,May,Sohler [26] は BKW アルゴリズムのタイムメモリトレードオフ 手法である Dissection-BKW を提案した。Dissection-BKW は,Dinur,Dunkelman,Keller,Shamir [23] によって 提案された部分和問題に対するタイムメモリトレードオフ手法である Dissection を,BKW アルゴリズムに適用した ものである。 4.1.4.4 Arora–Ge アルゴリズム Arora と Ge [6] は多変数多項式問題で古くから用いられている再線形化と呼ばれる手法を用いて,LPN 問題を解く アルゴリズムを提案した。このアルゴリズムをサンプル数 n の LPNk,τ 問題に用いた場合,w = τ n として,poly(k w ) 時間で解くことができる。poly(k w ) = 2O(τ nlogk) であるから,τ = o(k/(nlog2 k)) のようにエラーが疎であれば, BKW アルゴリズムよりも効率が良い。実際の符号暗号のパラメータ設定では,エラーをこのように疎に設定すること はないため,暗号の攻撃アルゴリズムとして用いるには重要度が低い。 4.1.4.5 Information Set Decoding と BKW を組み合わせたハイブリッド法 Esser,Kübler,May [27] は,BKW アルゴリズムと Information Set Decoding を組み合わせた実用上高速な手法 を提案した。ハイブリッド法のアルゴリズムの概要は以下である。 1. 次元削減パラメータ k1 , k2 , k ′ = k − k1 − k2 を決定する。 2. a の末尾 k1 列が 0 である LPN サンプルを一定数集める。 3. 集められたサンプルの k2 列に対して BKW アルゴリズムを行い,a の末尾 k1 + k2 列が 0 となるサンプルを一 定数集める。これによって,sk′ +1 , . . . , sk′ +k2 が求まる。 4. 集められたサンプルからなる LPN 問題を SD 問題に変換し,ISD で解く。これによって,s1 , . . . , sk′ が求まる。 5. 残りの sk′ +k2 +1 , . . . , sk を求める。k1 の値の大きさに応じて,全探索・ISD・再度ステップ 1 から処理をやり直 すといった方策を取る。 本手法の計算量は,Information Set Decoding に基づく手法の計算量と BKW アルゴリズムに基づく手法の計算量 との中間である。報告によれば,k = 135, τ = 1/4 の LPN 問題に対して,k1 = 10, k2 = 99, k ′ = 26 のパラメータを 使用し,16 コアの CPU および 256GB の RAM を搭載したサーバ 1 台を用いて,5.69 日での求解に成功した。また, k = 243, τ = 1/8 の LPN 問題に対して,k1 = 35, k2 = 0, k ′ = 208 のパラメータを使用し,同じサーバ 1 台を用いて, 15.07 日での求解に成功した。 また,暗号設計に用いられるパラメータを持つ LPN 問題に対して,空間計算量を現実的な値にセキュリティマージ ンを加えたものに制限(260 bit = 128PBytes および 280 bit = 128ZBytes)した時のビット計算量が推定された。報告 によれば,k = 512, τ = 1/8 の LPN 問題に対するハイブリッド法のビット計算量は 2102 であり,k = 512, τ = 1/4 の LPN 問題に対するビット計算量は 2151 である。一方で,この空間計算量の範囲では Coded-BKW [33] は動作しな いと報告されている。 *5 ただし,国際会議でのプレゼンテーションではサンプル数が不足していたとの報告があり,計算量・メモリ・サンプル数の評価は見直されて いる。詳しくは,[56] および [13] を参照のこと 109 4.1.4.6 量子アルゴリズム 現在のところ,多項式時間で LPN 問題を解く量子アルゴリズムは提案されていない。Esser,Kübler,May [27] は, 上述する ISD に基づく手法やハイブリッド法に対して,グローバーのアルゴリズムや量子ウォーク探索を用いること で高速化できる点を指摘している。k = 512, τ = 1/8 の LPN 問題に対する量子ハイブリッド法のビット計算量は 269 であり,k = 512, τ = 1/4 の LPN 問題に対するビット計算量は 2112 と推定されている。 4.2 符号に基づく代表的な暗号方式 本節では,符号に基づく代表的な暗号方式と署名方式の説明を行う。以下では,GLk (Fq ) で k 次の Fq 要素正則行列 全体がなす群を表す。また,Sn で n 次対称群を表す。Sn の要素である置換を GLn (Fq ) 中の置換行列と同一視する。 4.2.1 McEliece 公開鍵暗号方式 McEliece [45] が提案した古典的な暗号方式である。以下では q = 2 とする。 • k : 安全性パラメータ • n : サンプルの個数 • τ : 誤差パラメータ(例: τ n = O(k)) • t : 線形符号の誤り訂正能力(t = Ω(τ n)) 鍵生成: 誤り訂正能力が t である [n, k]2 -線形符号の生成行列 G ∈ Fk×n 2 を生成する。S ← GLk (F2 ) を一様ランダム に選ぶ。P ← Sn を一様ランダムに選ぶ。G̃ = SGP とする。 公開鍵を G̃ とし,秘密鍵を (S, G, P ) とする。 暗号化: 平文を m ∈ Fk2 とする。乱数 e ← Bern τ を選び,暗号文 c = mG̃ + e ∈ F2 を計算する。 n 復号: v̂ = cP −1 を計算する。v̂ を線形符号で訂正し m′ ∈ Fk2 を得る。m = m′ S −1 を出力する。 復号の正当性は以下で確認される。c = mG̃ + e として,v̂ = cP −1 を計算すると, v̂ = mG̃P −1 + eP −1 = mSG + eP −1 を得る。mSG はランダム化されたメッセージ mS の符号語であり,eP −1 は誤りである。eP −1 のハミング重みが t 以下であれば,線形符号の復号により,m′ = mS を得る。よって,高い確率で復号に成功する。平文 m および生 成行列 G̃ が一様ランダムであれば,暗号文 c ∈ Fn 2 はランダムな n 次元のベクトルと見分けが付かないと考えられて いる。一方で,平文 m が零ベクトルのとき,暗号文はランダムなベクトルと区別されてしまう。このことから,オリ ジナルの McEliece 暗号にはセキュリティ上の課題が存在することがわかる。 4.2.2 Niederreiter 公開鍵暗号方式 Niederreiter [49] が 1986 年に提案した。のちに McEliece 暗号と安全性が等価であることが示された。詳しくは [41] を参照のこと。以下では q = 2 とする。 • k : 安全性パラメータ • n : サンプルの個数 • t : 線形符号の誤り訂正能力 (n−k)×n 鍵生成: 誤り訂正能力が t である [n, k]2 -線形符号のパリティ検査行列 H ∈ F2 を生成する。T ← GLn−k (F2 ) 110 を一様ランダムに選ぶ。Q ← Sn を一様ランダムに選ぶ。H̃ = T HQ とする。 公開鍵を H̃ とし,秘密鍵を (T , H, Q) とする。 暗号化: 平文を e ∈ SH (n, t) とする。暗号文 d = eH̃ ⊤ ∈ Fn−k 2 を計算する。 復号: ŵ = dT −⊤ を計算する。ŵ を線形符号で訂正し復号し,誤りとして e′ を得る。e = e′ Q−⊤ を出力する。 復号の正当性は以下で確認される。d = eH̃ ⊤ として,ŵ = dT −⊤ を計算すると, v̂ = eH̃ ⊤ T −⊤ = eQ⊤ H ⊤ T ⊤ T −⊤ = eQ⊤ H ⊤ を得る。eQ⊤ はランダムに置換されたエラーであり,eQ⊤ H ⊤ はシンドロームである。eQ⊤ のハミング重みが t 以 下であれば,線形符号の復号により,e′ = eQ⊤ を得る。よって,高い確率で復号に成功する。平文 e およびパリティ 検査行列 H̃ が一様ランダムであれば,暗号文 d ∈ Fn−k 2 はランダムな n − k 次元のベクトルと見分けが付かないと考 えられている。また,H̃ が一様ランダムであり,適切な t が選択されていれば,暗号文は統計的にランダムなベクト ルと見分けが付かないとされている。一方で,オリジナルの Niederreiter 暗号は適応的選択暗号文攻撃(CCA)に対 して安全ではないため,次節で示すより安全な方式が提案されている。 4.2.3 符号版 Lyubashevsky-Peikert-Regev(LPR)公開鍵暗号方式 符号版 LPR 暗号は,Lyubashevsky,Peikert,Regev が 2010 年に提案した Ring-LWE 問題に基づく暗号方式 [42] を LPN 問題に基づく方式に変更したものである。以下では q = 2 とする。 • k : 安全性パラメータ • n = n1 + n2 : サンプルの個数 • ℓ : 平文長 √ • τ : 誤差パラメータ(例: τ n = O( k))  • t : 線形符号の誤り訂正能力(t = Ω (τ n)2 ) 鍵生成: 誤り訂正能力が t である [n2 , ℓ]2 -線形符号の生成行列 Gc を生成する。A ← Fk×n 2 1 とする。X ← Bernτ 1 ×n2 , Y ← Berk×n τ 2 とし,B = AX + Y ∈ Fk×n 2 2 とする。 公開鍵を G̃ = [A | B] ∈ Fk×n 2 とし,秘密鍵を (A, B, X) とする。 暗号化: 平文を m ∈ Fℓ2 とする。乱数 s ← Berkτ と 乱数 e ← Bern τ を選び,暗号文 c = sG̃ + e + (0n1 , mGc ) ∈ F2 n を計算する。  復号: d = c −X In を計算する。d を線形符号で訂正し復号すると m を得る。 2 復号の正当性は以下で確認される。c = sG̃ + e + (0n1 , mGc ) なので,前半部を u = sA + e1 ,後半部を v = sB + e2 + mGc と書く。  d = c −X In を計算すると, 2 d = v − uX = sB + e2 + mGc − sAX − e1 X = mGc + (e2 − e1 X + sY ) を得る。mGc は符号語であり,e2 − e1 X + sY は誤りベクトルである。よって,e2 − e1 X + sY のハミング重みが t 以下であれば,線形符号の復号により,m を得る。高い確率で e2 − e1 X + sY のハミング重みが t 以下になるよ うに τ を設定しているため,高い確率で復号に成功する。 111 表 4.2: 符号に基づく暗号の分類 文献 暗号化 鍵交換 署名 Classic McEliece [2] 〇 〇 – BIKE [4] 〇 〇 – HQC [46] 〇 〇 – 4.2.4 CFS 署名方式 CFS 署名方式は Courtois,Finiasz,Sendrier が 2001 年に提案した署名方式である [21]。のちに,安全性仮定が提 案パラメータセットでは成り立たないことが示された [31, 32]。しかし後の方式に大きな影響を与えたため,ここに記 す。Niederreiter 暗号では秘密鍵を持っている場合,ハミング重みが t 以下の誤りは訂正できる。一方,訂正可能なシ ≤ ンドロームの集合 {eH̃ ∈ Fn−k 2 | e ∈ SH (n, t)} のサイズは Fn−k 2 のサイズに比べれば圧倒的に少ない。 3.2.5 節のように Hash-and-Sign に基づいた構成を考える。メッセージ M のハッシュ値を シンドローム u ∈ Fn−k 2 と捉えた場合,正しく復号できないシンドロームになることが多い。そこで CFS 署名では,ハッシュ値を u = ≤ Hash(M, i) と i をインクリメントしながら計算し,ハッシュ値が {eH̃ ∈ Fn−k 2 | e ∈ SH (n, t)} に入るものを採用 する。 (n−k)×n 署名鍵と検証鍵: パリティ検査行列 H̃ ∈ F2 を検証鍵とする。また署名鍵を用いると,ハミング重み t 以下の 符号語を訂正できることとする。 署名: 文書 M について, 1. i = 0 とする。 2. u = Hash(M, i) を計算する。 3. ハミング重み t 以下の e で,eH̃ ⊤ = u となるものを計算する。なければ i ← i + 1 としてステップ 2 に 戻る。 4. σ = (e, i) を出力する。 検証: 文書 M と σ = (e, i) について,HW(e) ≤ t と eH̃ ⊤ = Hash(M, i) ならば,受理する。そうでないならば,棄 却とする。 4.3 符号に基づく主要な暗号方式 本稿では以下の暗号方式を取り上げる。いずれも NIST PQC 標準化プロジェクトにおいて第 4 ラウンドに進んだ ものである。 1. Classic McEliece: Niederreiter 暗号を採用し,符号の構成が非常に保守的という観点からこれを取り上げる。 2. BIKE: Niederreiter 暗号を採用し,QC-MDPC 符号を用いて鍵を圧縮している,という観点からこれを取り上 げる。 3. HQC: 符号版の LPR 暗号を採用,Quasi-Cyclic 符号を用いて鍵を圧縮している,という特徴からこれを取り上 げる。 112 4.3.1 Classic McEliece • 提案者: Albrecht,Bernstein,Chou,Cid,Gilcher,Lange,Maram,von Maurich,Misoczki,Niederhagen, Paterson,Persichetti,Peters,Schwabe,Sendrier,Szefer,Tjhai,Tomlinson,Wang • 基本方式の説明: Niederreiter 暗号方式に基づいている。基本符号方式として F2 上の Goppa 符号を利用してい る。(具体的な Goppa 符号の生成方法や符号化および復号の方法については提案方式の仕様書 [2] を参照のこ と。)q = 2m とし,n ≤ q を用いる。2 以上の t を mt < n となるように取り,k = n − mt とする。 (n−k)×n 鍵生成: 誤り訂正能力が t である Goppa 符号のパリティ検査行列 H ∈ F2 をランダムに生成する。組織 (n−k)×k 符号化し,H̃ = [In−k | T ] とする。公開鍵を pk = T ∈ F2 とする。符号生成に使ったパラメータ を Γ(Fq 係数の t 次モニック既約多項式と互いに異なる α0 , . . . , αn−1 ∈ Fq ) とする。秘密鍵を sk = Γ と する。 暗号化 Encrypt(pk , e) : 入力を e ∈ SH (n, t) とする。H̃ = [In−k | T ] とし,暗号文として c = H̃e ∈ Fn−k 2 を出力する。 復号 Decrypt(sk , c) : ハミング重み t のベクトル e を復号する。 1. c に k 個ゼロを加え,v = (c, 0k ) ∈ Fn2 を考える。 2. Goppa 符号の復号アルゴリズムを用いて,v と距離 t 以下にある符号語 d を計算する。(なければ ⊥ を出力する。) 3. e = v + d とする。 4. HW(e) = t かつ c = H̃e ならば e を出力する。(そうでなければ ⊥ を出力する。) • 鍵カプセル化方式の説明: 基本方式を決定性の公開鍵暗号とみなし,藤崎–岡本変換の変種をかけたものとみな せる。以下ではハッシュ関数 H : {0, 1}∗ → {0, 1}256 を用いる。 鍵生成: ℓ ビットのシード δ から乱数を生成し,鍵生成を行う。(乱数の生成方法は省略する。)公開鍵は同じく pk = T である。n ビットの一様ランダムな文字列 s を生成する。秘密鍵は sk = (Γ, s) である。 鍵カプセル化: 1. e ← SH (n, t) をランダムにサンプリングする。 2. c = Encrypt(pk , e) を計算する。 3. K = H(1, e, c) とする。 4. 暗号文を c とし,セッション鍵 K を出力する。 デカプセル化: 1. b = 1 とする。 2. 受信した c に対して,e = Decrypt(sk , c) とする。e = ⊥ であれば,b = 0, e = s と上書きする。 3. K = H(b, e, c) を計算する。 4. K を出力する。 以上より,セッション鍵(共通鍵)K を安全に共有することができる。 パラメータセットとして mceliece348864,mceliece348864f ,mceliece460896,mceliece460896f ,mceliece6688128, mceliece6688128f ,mceliece6960119,mceliece6960119f ,mceliece8192128,mceliece8192128f が提案されている。表 4.3 に鍵カプセル化方式のパラメータ,鍵長および暗号文長,想定セキュリティレベル,復号エラー率をまとめた。末尾に f が付くものは扱っていないが,鍵長・暗号文長は f 無しのものと同一である。Classic McEliece は公開鍵長が非常に 大きく,レベル 5 では 1MBytes を超える。一方で,暗号文長は非常に小さく,格子暗号に基づく FIPS 標準(FIPS 203)である ML-KEM [50] の暗号文サイズよりも小さい。例えば,[50, Table 3] によれば,ML-KEM のレベル 1 の 113 表 4.3: Classic McEliece のパラメータ。公開鍵長,秘密鍵長,暗号文長の単位はそれぞれ Byte とする。 パラメータ名 (m, n, t) 安全性レベル 公開鍵長 秘密鍵長 暗号文長 復号エラー率 mceliece348864 (12, 3488, 64) レベル 1 261, 120 6, 492 96 0 mceliece460896 (13, 4608, 96) レベル 3 524, 160 13, 608 156 0 mceliece6688128 (13, 6688, 128) レベル 5 1, 044, 992 13, 932 208 0 mceliece6960119 (13, 6960, 119) レベル 5 1, 047, 319 13, 948 194 0 mceliece8192128 (13, 8192, 128) レベル 5 1, 357, 824 14, 120 208 0 公開鍵長は 800 Bytes,秘密鍵長は 1632 Bytes,暗号文長は 768 Bytes となっている。 mceliece348864 の速度に関しては,鍵生成に必要な平均 CPU サイクル数が 60, 333, 686 Cycle,鍵カプセル化が 37, 585 Cycle,デカプセル化が 127, 668 Cycle である。参考までに,ML-KEM(Kyber-512)の速度は,鍵生成が 33, 428 Cycle,鍵カプセル化が 49, 184 Cycle,デカプセル化が 40, 564 Cycle である [50]。なお,いずれも Haswell CPU 搭載のサーバ上で AVX 命令を使用した C 言語実装を動作させた時の記録である。他のパラメータに関しては, 仕様書を参照されたい。 4.3.2 BIKE • 提案者: Aragon,Barreto,Bettaieb,Bidoux,Blazy,Deneuville,Gaborit,Gueron,Güneysu,Aguilar Melchor,Misoczki,Persichetti,Sendrier,Tillich,Zémor,Vasseur,Ghosh,Richter-Brokmann • 基本方式の説明: Niederreiter 暗号方式に基づいている。基本となる符号に QC-MDPC 符号を採用し,公開鍵 サイズを圧縮している。そのため,鍵や暗号化は格子暗号の一種の NTRU 暗号と非常に近い形をしている点 が特徴である。具体的な符号化および復号の方法については提案方式の仕様書 [4] を参照のこと。以下では, R = F2 [X]/(X n − 1) とする。 鍵生成: h0 ∈ R および h1 ∈ R を SH (n, w/2) から一様ランダムに選ぶ。h = h1 /h0 ∈ R とする。(h0 , h1 ) を QC-MDPC 符号のパリティ検査行列とし,(1, h) をその組織符号化したものとみなすことができる。公 開鍵を pk = h とし,秘密鍵を sk = (h0 , h1 ) とする。 暗号化 Encrypt(pk , (e0 , e1 )): (e0 , e1 ) ∈ R2 を SH (2n, t) 中のベクトルとみなす。c = e0 + e1 h ∈ R を出力 する。 復号 Decrypt(sk , c) : ハミング重み t 以下のベクトル (e0 , e1 ) を復号する。 1. ch0 を計算する。 2. QC-MDPC 符号の復号アルゴリズムを用いて,ch0 をシンドロームとするベクトル (e0 , e1 ) を計算 する。 • 鍵カプセル化方式の説明: 基本方式を決定性公開鍵暗号方式とみなす。基本方式とハッシュ関数 L : {0, 1}∗ → {0, 1}256 を用いて,平文 m ∈ {0, 1}256 と乱数 (e0 , e1 ) に対して暗号化 (c0 = Encrypt(pk , (e0 , e1 ))) および m のマスキング (c1 = m ⊕ L(e0 , e1 )) とを行う IND-CPA 安全な乱択公開鍵暗号を構成する。鍵カプセル 化方式は,この乱択公開鍵暗号に藤崎–岡本変換の変種を適用したものとみなせる。以下ではハッシュ関数 H, L : {0, 1}∗ → {0, 1}256 と G : {0, 1}∗ → SH (2n, t) を用いる。 鍵生成: 適切な長さのシード δ から乱数を生成し,鍵生成を行う。公開鍵は同じく pk = h である。ℓ ビットの 一様ランダムな文字列 s ∈ {0, 1}ℓ を生成する。秘密鍵は sk = (h0 , h1 , s) である。 114 鍵カプセル化: 1. m ← {0, 1}256 を一様ランダムに選ぶ。 2. (e0 , e1 ) = G(m) を計算する。 3. c0 = Encrypt(pk , (e0 , e1 )) と,c1 = m ⊕ L(e0 , e1 ) を計算する。 4. K = H(m, c) を計算する。 5. 暗号文を C = (c0 , c1 ) とし,セッション鍵 K を出力する。 デカプセル化: 1. 受信した C に対して,(e′0 , e′1 ) = Decrypt(sk , c0 ) を計算する。 2. 復号に失敗したら,⊥ を出力して停止する。 3. m′ = c1 ⊕ L(e′0 , e′1 ) を計算する。 4. (e′0 , e′1 ) = G(m′ ) ならば,K = H(m′ , c) を出力して停止する。 5. そうでなければ,K = H(s, c) を計算し,出力する。 以上より,セッション鍵(共通鍵)K を安全に共有することができる。 表 4.4 に鍵カプセル化方式のパラメータ,鍵長,暗号文長および復号エラー率をまとめた。3 つのパラメータセット がそれぞれレベル 1,3,5 相当として提案された。BIKE-Level1 の速度に関しては,鍵生成が 589, 000 Cycle,鍵カプ セル化が 97, 000 Cycle,デカプセル化が 1, 135, 000 Cycle である(Skylake CPU 搭載のサーバ,AVX 命令を使用) 。 他のパラメータに関しては,仕様書を参照されたい。 表 4.4: BIKE のパラメータ。公開鍵長,秘密鍵長,暗号文長の単位はそれぞれ Byte とする。 パラメータ名 (n, w, t) 安全性レベル 公開鍵長 秘密鍵長 暗号文長 復号エラー率 BIKE-Level1 (12323, 142, 134) レベル 1 1, 541 281 1, 573 2−128 BIKE-Level3 (24659, 206, 199) レベル 3 3, 083 419 3, 115 2−192 BIKE-Level5 (40973, 274, 264) レベル 5 5, 122 580 5, 154 2−256 4.3.3 HQC • 提案者: Aguilar Melchor,Aragon,Bettaieb,Bidoux,Blazy,Deneuville,Gaborit,Persichetti,Zémor, Bos,Dion,Lacan,Robert,Veron • 基本方式の説明: 符号版の LPR 暗号に基づき,公開鍵暗号を構成している。 R = F2 [X]/(X n − 1) とする。n′ = n1 n2 とし,[n′ , k] 線形符号 C を採用する。具体的な符号化および復号の方 法については提案方式の仕様書 [46] を参照のこと。線形符号 C の符号化・復号アルゴリズムを encode, decode とする。n ≥ n′ を仮定する。以下では,暗号文の第二要素 v を R 要素(n ビットベクトル)として扱っている が,実際には n′ ビットに縮めて用いる。 鍵生成: x ∈ R および y ∈ R を SH (n, w) から一様ランダムに選び,h ← R に対して公開鍵を pk = (h, s) ∈ R2 とし,秘密鍵を sk = (x, y) ∈ R2 とする。 暗号化 Encrypt(pk , m, r1 , r2 , e) : r1 ∈ R および r2 ∈ R を SH (n, wr ) から一様ランダムに選び,e ∈ R を SH (n, we ) から一様ランダムに選ぶ。u = r1 + h · r2 および v = encode(m) + s · r2 + e を計算する。 c = (u, v) を暗号文として出力する。 復号 Decrypt(sk , c): decode(v − u · y) を出力する。 • 鍵カプセル化方式: 基本方式を乱択な公開鍵暗号とみなし,藤崎–岡本変換の変種を適用したものとみなせる。 115 表 4.5: HQC のパラメータ。公開鍵長,秘密鍵長,暗号文長の単位はそれぞれ Byte とする。 パラメータ名 (n1 , n2 , n, w, wr = we ) 安全性レベル 公開鍵長 秘密鍵長 暗号文長 復号エラー率 hqc-128 (46, 384, 17669, 66, 75) レベル 1 2, 249 40 4, 497 2−128 hqc-192 (56, 640, 35851, 100, 114) レベル 3 4, 522 40 9, 042 2−192 hqc-256 (90, 640, 57637, 131, 149) レベル 5 7, 245 40 14, 485 2−256 以下ではハッシュ関数 H, H′ : {0, 1}∗ → {0, 1}256 を用いる。また,XOF *6 として HG : {0, 1}∗ → {0, 1}∗ も 用いる。(第 4 ラウンドで G への入力に seed ∈ {0, 1}128 と salt ∈ {0, 1}128 が追加された。) 鍵生成: 基本方式の鍵生成と同様。ただし h の生成をシード seed から行うこととし,公開鍵を pk = (s, seed) とする。また,秘密鍵にもシードを加え,sk = (x, y, seed) とする。 鍵カプセル化: 1. m ← Fk2 を一様ランダムにとる。 2. salt ← F128 2 を一様ランダムにとる。 3. θ = HG (m, seed, salt) を計算する。θ から r1 , r2 , e を生成する。 4. c = Encrypt(pk , m, r1 , r2 , e) を計算する。d = H′ (m) とする。K = H(m, c) とする。 5. 暗号文を C = (c, d, salt) とし,セッション鍵 K を出力する。 デカプセル化: 1. 受信した C に対して,m′ = Decrypt(sk , c) を計算する。 2. θ′ = HG (m′ , seed, salt) を計算する。 θ′ から r1′ , r2′ , e′ を生成する。 3. c′ = Encrypt(pk , m′ , r1′ , r2′ , e′ ) を計算する。c 6= c′ もしくは d 6= d′ ならば ⊥ を出力して停止する。 4. K = H(m, c) を出力する。 以上より,セッション鍵(共通鍵)K を安全に共有することができる。 3 つのパラメータセットがそれぞれレベル 1,3,5 相当として提案された。表 4.5 に鍵カプセル化方式のパラメー タ,鍵長,暗号文長および復号エラー率をまとめた。表中では,秘密鍵はシードだけ記憶していることにされてお り,40Bytes しかない。また公開鍵の h の部分もシードから再生成されることと定義されている点に注意されたい。 hqc-128 の速度に関しては,鍵生成が 87, 000 Cycle,鍵カプセル化が 204, 000 Cycle,デカプセル化が 362, 000 Cycle である(Skylake CPU 搭載のデスクトップ PC,AVX 命令を使用)。他のパラメータに関しては,仕様書を参照され たい。 4.4 符号に基づく暗号技術に関するまとめ 基本となる McEliece 暗号方式 [45] は,McEliece により 40 年以上前に提案されており,パラメータは改訂されてい るものの,いまだに破られていない。Classic McEliece などのように,公開鍵や秘密鍵は長いものの,暗号文は短い方 式が多い。LPN 問題は学習理論や符号理論から派生した問題であり,SD 問題は LPN 問題の特殊な場合である。誤り 確率 τ が十分大きい場合の LPN 問題や,重み w が一定の大きさの SD 問題を確率的多項式時間で効率的に解くこと は,量子コンピュータを用いても困難であると予想されている。 共通鍵暗号や公開鍵暗号の分野で多くの方式が LPN 問題や SD 問題に基づいて提案されている。LWE 問題と比較 した場合,利点としては, *6 eXtendable-Output Function の略。SHAKE128 や SHAKE256 が例として知られている。 116 • F2 およびその拡大体を基に構成するため,ハードウェア構成との相性が良い点 • 誤差分布としてベルヌーイ分布やその一般化した分布を用いるため,誤差のサンプリングが容易である点 が挙げられる。一方,欠点として, • 鍵や暗号文のサイズが大きくなりやすい点 • 符号の復号アルゴリズムが複雑になりがちな点 • 完全準同型暗号といった発展的な応用が少ない点 が挙げられる。暗号方式のパラメータ設定の際には,4.1 節で挙げたさまざまなアルゴリズムを考慮する必要がある。 アルゴリズムの高速化について盛んに研究されており,動向を注視する必要がある。また,符号に基づく暗号技術の信 頼性を向上させるためには,理論面における研究だけではなく,実時間の計算量に関する研究も重要である。公開鍵や 秘密鍵を圧縮しようと特殊な符号を採用したり,距離の定義を変える提案も多くある。これらは解読攻撃を受けること も多く,評価が確定していない暗号・署名方式については注視が必要である。 本報告書は 2024 年 9 月 30 日時点の情報に基づいているが,2025 年 3 月に NIST から,HQC が標準化方式として 選ばれたことが発表された [54]。 117 第 4 章の参照文献 [1] CRYPTREC 暗号技術調査 WG (耐量子計算機暗号). CRYPTREC 耐量子計算機暗号の研究動向調査報告 書. CRYPTREC TR-2001-2022, https://www.cryptrec.go.jp/report/cryptrec-tr-2001-2022.pdf. 2023-03. [2] M. R. Albrecht et al. Classic McEliece: conservative code-based cryptography. https://csrc.nist.gov/ csrc/media/Projects/post- quantum- cryptography/documents/round- 4/submissions/mceliece- Round4.tar.gz. 2022-10. (2024-03-05 閲覧). [3] B. Applebaum, D. Cash, C. Peikert, A. Sahai. Fast Cryptographic Primitives and Circular-Secure En- cryption Based on Hard Learning Problems. CRYPTO. Vol. 5677. Lecture Notes in Computer Science. Springer, 2009, pp. 595–618. [4] N. Aragon et al. BIKE: Bit flipping key encapsulation (Round 4 submission). https : / / csrc . nist . gov/csrc/media/Projects/post- quantum- cryptography/documents/round- 4/submissions/BIKE- Round4.zip. 2022-10. (2024-03-05 閲覧). [5] N. Aragon et al. RYDE. https://csrc.nist.gov/csrc/media/Projects/pqc-dig-sig/documents/ round-1/submission-pkg/ryde-submission.zip. 2024-11. (2024-11-15 閲覧). [6] S. Arora, R. Ge. New Algorithms for Learning in Presence of Errors. ICALP (1). Vol. 6755. Lecture Notes in Computer Science. Springer, 2011, pp. 403–415. [7] M. Baldi et al. CROSS (Codes and Restricted Objects Signature Scheme). https://cross-crypto.com/. 2024-11. (2024-11-15 閲覧). [8] A. Becker, A. Joux, A. May, A. Meurer. Decoding Random Binary Linear Codes in 2 n/20 : How 1 + 1 = 0 Improves Information Set Decoding. EUROCRYPT. Vol. 7237. Lecture Notes in Computer Science. Springer, 2012, pp. 520–536. [9] E. R. Berlekamp, R. J. McEliece, H. C. A. van Tilborg. On the inherent intractability of certain coding problems (Corresp.) IEEE Trans. Inf. Theory. Vol. 24, Num. 3 (1978), pp. 384–386. [10] D. J. Bernstein, T. Lange. Never Trust a Bunny. RFIDSec. Vol. 7739. Lecture Notes in Computer Science. Springer, 2012, pp. 137–148. [11] A. Blum, M. L. Furst, M. J. Kearns, R. J. Lipton. Cryptographic Primitives Based on Hard Learning Problems. CRYPTO. Vol. 773. Lecture Notes in Computer Science. Springer, 1993, pp. 278–291. [12] A. Blum, A. Kalai, H. Wasserman. Noise-tolerant learning, the parity problem, and the statistical query model. J. ACM. Vol. 50, Num. 4 (2003), pp. 506–519. [13] S. Bogos, S. Vaudenay. Optimization of LPN Solving Algorithms. ASIACRYPT (1). Vol. 10031. Lecture Notes in Computer Science. 2016, pp. 703–728. [14] L. Both, A. May. Decoding Linear Codes with High Error Rate and Its Impact for LPN Security. PQCrypto. Vol. 10786. Lecture Notes in Computer Science. Springer, 2018, pp. 25–46. 118 [15] L. Both, A. May. Optimizing BJMM with nearest neighbors: Full decoding in 2 2n/21 and McEliece security. Workshop on Coding and Cryptography. 2017. https://www.cits.ruhr-uni-bochum.de/imperia/md/ content/may/paper/bjmm+.pdf. [16] E. Carozza, G. Couteau, A. Joux. Short Signatures from Regular Syndrome Decoding in the Head. EUROCRYPT (5). Vol. 14008. Lecture Notes in Computer Science. Springer, 2023, pp. 532–563. [17] K. Carrier, T. Debris-Alazard, C. Meyer-Hilfiger, J.-P. Tillich. Reduction from Sparse LPN to LPN, Dual Attack 3.0. EUROCRYPT (6). Vol. 14656. Lecture Notes in Computer Science. Springer, 2024, pp. 286– 315. [18] K. Carrier, T. Debris-Alazard, C. Meyer-Hilfiger, J.-P. Tillich. Statistical Decoding 2.0: Reducing Decoding to LPN. ASIACRYPT (4). Vol. 13794. Lecture Notes in Computer Science. Springer, 2022, pp. 477–507. [19] J. Carrijo, R. Tonicelli, H. Imai, A. C. A. Nascimento. A Novel Probabilistic Passive Attack on the Protocols HB and HB+ . IEICE Trans. Fundam. Electron. Commun. Comput. Sci. Vol. 92-A, Num. 2 (2009), pp. 658–662. [20] C. Chevignard, P.-A. Fouque, A. Schrottenloher. Reducing the Number of Qubits in Quantum Information Set Decoding. ASIACRYPT (8). Vol. 15491. Lecture Notes in Computer Science. Springer, 2024, pp. 299– 329. [21] N. T. Courtois, M. Finiasz, N. Sendrier. How to Achieve a McEliece-Based Digital Signature Scheme. ASIACRYPT. Vol. 2248. Lecture Notes in Computer Science. Springer, 2001, pp. 157–174. [22] S. Devadas, L. Ren, H. Xiao. On Iterative Collision Search for LPN and Subset Sum. TCC (2). Vol. 10678. Lecture Notes in Computer Science. Springer, 2017, pp. 729–746. [23] I. Dinur, O. Dunkelman, N. Keller, A. Shamir. Efficient Dissection of Composite Problems, with Appli- cations to Cryptanalysis, Knapsacks, and Combinatorial Search Problems. CRYPTO. Vol. 7417. Lecture Notes in Computer Science. Springer, 2012, pp. 719–740. [24] L. Ducas, A. Esser, S. Etinski, E. Kirshanova. Asymptotics and Improvements of Sieving for Codes. EUROCRYPT (6). Vol. 14656. Lecture Notes in Computer Science. Springer, 2024, pp. 151–180. [25] A. Esser. Revisiting Nearest-Neighbor-Based Information Set Decoding. IMACC. Vol. 14421. Lecture Notes in Computer Science. Springer, 2023, pp. 34–54. [26] A. Esser, F. Heuer, R. Kübler, A. May, C. Sohler. Dissection-BKW. CRYPTO (2). Vol. 10992. Lecture Notes in Computer Science. Springer, 2018, pp. 638–666. [27] A. Esser, R. Kübler, A. May. LPN Decoded. CRYPTO (2). Vol. 10402. Lecture Notes in Computer Science. Springer, 2017, pp. 486–514. [28] A. Esser, S. Ramos-Calderer, E. Bellini, J. I. Latorre, M. Manzano. Hybrid Decoding – Classical-Quantum Trade-Offs for Information Set Decoding. PQCrypto. Vol. 13512. Lecture Notes in Computer Science. Springer, 2022, pp. 3–23. [29] A. Esser, J. A. Verbel, F. Zweydinger, E. Bellini. SoK: CryptographicEstimators – a Software Library for Cryptographic Hardness Estimation. AsiaCCS. ACM, 2024. [30] A. Esser, F. Zweydinger. New Time-Memory Trade-Offs for Subset Sum – Improving ISD in Theory and Practice. EUROCRYPT (5). Vol. 14008. Lecture Notes in Computer Science. Springer, 2023, pp. 360–390. [31] J.-C. Faugère, V. Gauthier-Umaña, A. Otmani, L. Perret, J.-P. Tillich. A distinguisher for high rate McEliece cryptosystems. ITW. IEEE, 2011, pp. 282–286. 119 [32] J.-C. Faugère, V. Gauthier-Umaña, A. Otmani, L. Perret, J.-P. Tillich. A Distinguisher for High-Rate McEliece Cryptosystems. IEEE Trans. Inf. Theory. Vol. 59, Num. 10 (2013), pp. 6830–6844. [33] Q. Guo, T. Johansson, C. Löndahl. Solving LPN Using Covering Codes. J. Cryptol. Vol. 33, Num. 1 (2020), pp. 1–33. [34] J. Håstad. Some optimal inapproximability results. J. ACM. Vol. 48, Num. 4 (2001), pp. 798–859. [35] S. Heyse, E. Kiltz, V. Lyubashevsky, C. Paar, K. Pietrzak. Lapin: An Efficient Authentication Protocol Based on Ring-LPN. FSE. Vol. 7549. Lecture Notes in Computer Science. Springer, 2012, pp. 346–365. [36] G. Kachigar, J.-P. Tillich. Quantum Information Set Decoding Algorithms. PQCrypto. Vol. 10346. Lecture Notes in Computer Science. Springer, 2017, pp. 69–89. [37] P. Kirchner. Improved Generalized Birthday Attack. Cryptology ePrint Archive, Paper 2011/377. 2011. https://eprint.iacr.org/2011/377. [38] E. Kirshanova. Improved Quantum Information Set Decoding. PQCrypto. Vol. 10786. Lecture Notes in Computer Science. Springer, 2018, pp. 507–527. [39] P. J. Lee, E. F. Brickell. An Observation on the Security of McEliece’s Public-Key Cryptosystem. EU- ROCRYPT. Vol. 330. Lecture Notes in Computer Science. Springer, 1988, pp. 275–280. [40] É. Levieil, P.-A. Fouque. An Improved LPN Algorithm. SCN. Vol. 4116. Lecture Notes in Computer Science. Springer, 2006, pp. 348–359. [41] Y. Li, R. H. Deng, X. Wang. On the equivalence of McEliece’s and Niederreiter’s public-key cryptosystems. IEEE Trans. Inf. Theory. Vol. 40, Num. 1 (1994), pp. 271–273. [42] V. Lyubashevsky, C. Peikert, O. Regev. On Ideal Lattices and Learning with Errors over Rings. EURO- CRYPT. Vol. 6110. Lecture Notes in Computer Science. Springer, 2010, pp. 1–23. [43] A. May, A. Meurer, E. Thomae. Decoding Random Linear Codes in Õ(20.054n ). ASIACRYPT. Vol. 7073. Lecture Notes in Computer Science. Springer, 2011, pp. 107–124. [44] A. May, I. Ozerov. On Computing Nearest Neighbors with Applications to Decoding of Binary Linear Codes. EUROCRYPT (1). Vol. 9056. Lecture Notes in Computer Science. Springer, 2015, pp. 203–228. [45] R. J. McEliece. A Public-Key Cryptosystem Based On Algebraic Coding Theory. Deep Space Network Progress Report. Vol. 44 (1978), pp. 114–116. [46] C. Aguilar Melchor et al. Hamming Quasi-Cyclic (HQC) – Fourth round version (Updated version 01/10/2022). https : / / csrc . nist . gov / csrc / media / Projects / post - quantum - cryptography / documents/round-4/submissions/HQC-Round4.zip. 2022-10. (2024-03-05 閲覧). [47] S. Narisada, K. Fukushima, S. Kiyomoto. Multiparallel MMT: Faster ISD Algorithm Solving High- Dimensional Syndrome Decoding Problem. IEICE Trans. Fundam. Electron. Commun. Comput. Sci. Vol. 106, Num. 3 (2023), pp. 241–252. [48] S. Narisada, S. Uemura, H. Okada, H. Furue, Y. Aikawa, K. Fukushima. Solving McEliece-1409 in One Day – Cryptanalysis with the Improved BJMM Algorithm. ISC (2). Vol. 15258. Lecture Notes in Computer Science. Springer, 2024, pp. 3–23. [49] H. Niederreiter. Knapsack-type cryptosystems and algebraic coding theory. Problemy Upravleniia i Teorii Informatsii (Problems of Control and Information Theory). Vol. 15, Num. 2 (1986), pp. 157–166. [50] NIST. Module-Lattice-Based Key-Encapsulation Mechanism Standard. NIST FIPS 203, https : / / nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf. 2024-08. 120 [51] S. Perriello, A. Barenghi, G. Pelosi. A Complete Quantum Circuit to Solve the Information Set Decoding Problem. QCE. IEEE, 2021, pp. 366–377. [52] S. Perriello, A. Barenghi, G. Pelosi. Improving the Efficiency of Quantum Circuits for Information Set Decoding. ACM Transactions on Quantum Computing. Vol. 4, Num. 4 (2023). https://doi.org/10. 1145/3607256. [53] E. Prange. The use of information sets in decoding cyclic codes. IRE Trans. Inf. Theory. Vol. 8, Num. 5 (1962), pp. 5–9. [54] Selected Algorithms. 2025-03. https : / / csrc . nist . gov / Projects / post - quantum - cryptography / selected-algorithms. (2025-03-30 閲覧). [55] J. Stern. A method for finding codewords of small weight. Coding Theory and Applications. Vol. 388. Lecture Notes in Computer Science. Springer, 1988, pp. 106–113. [56] B. Zhang, L. Jiao, M. Wang. Faster Algorithms for Solving LPN. EUROCRYPT (1). Vol. 9665. Lecture Notes in Computer Science. Springer, 2016, pp. 168–195. [57] 電子情報通信学会. 知識ベース 知識の森 1 群 (信号・システム) 2 編 (符号理論). https : / / www . ieice - hbkb.org/portal/01-2/01_02/. (2024-03-05 閲覧). 121 第5章 多変数多項式に基づく暗号技術 多変数公開鍵暗号(Multivariate Public Key Cryptosystems: MPKC)における暗号方式の特徴は,有限体上の多 変数多項式を用いた連立方程式    p1 (x1 , x2 , . . . , xn ) = 0,   p2 (x1 , x2 , . . . , xn ) = 0, ..   .   pm (x1 , x2 , . . . , xn ) = 0 の求解問題(MP 問題)を解く計算の困難性が安全性の根拠として必要ということである。連立線形方程式は多項式時 間で求解可能であるから,多変数公開鍵暗号に現れる MP 問題における多項式の最大次数は 2 次以上に限定される。 本報告書では,多変数公開鍵暗号の多くの方式で採用されている双極型システムを中心に解説する。 5.1 多変数多項式に基づく暗号技術の安全性の根拠となる問題 Fq で位数 q の有限体を表し,x = (x1 , x2 , . . . , xn ) で(代数的に独立な)変数の集合を表すものとする。x に関する Fq 上の多変数多項式の組,すなわち,多変数多項式 pi (x) (i = 1, . . . , m) により,P (x) = (p1 (x), p2 (x), . . . , pm (x)) と表されるものを(Fq 上の)多変数多項式系と呼ぶことにする。この多変数多項式系 P (x) は代入評価により,Fqn か ら Fqm への写像を構成する。この(多変数多項式)写像を P : Fqn → Fqm と表すことにする。 5.1.1 MP 問題(MQ 問題) MP 問題は次のように定義される。 MP 問題 多変数多項式系 P (x) = (p1 (x), p2 (x), . . . , pm (x)) と d = (d1 , d2 , . . . , dm ) ∈ Fqm に対して,変数 x に関す る連立方程式    p1 (x1 , x2 , . . . , xn ) = d1 ,   p2 (x1 , x2 , . . . , xn ) = d2 , .. (5.1)   .   pm (x1 , x2 , . . . , xn ) = dm の解(が存在するなら)少なくとも 1 つ求めよ。 連立方程式 (5.1) の右辺の各 di を左辺に移項して pi (x) に吸収させることができるので,右辺を 0 として MP 問題を 表現する場合もある。MP 問題において,P (x) の全ての成分 pi (x) が 1 次以下となる場合,MP 問題は単に線形方程 式を解く問題となり,ガウスの消去法などで m, n に関し多項式時間で求解することが可能である。よって,MP 問題 123 を考える場合は通常,各 pi (x) の次数は 2 以上であると仮定する。特に,pi (x) の次数が全て 2 となるとき,MP 問題 は MQ 問題と呼ばれる。Fq = F2 の場合,MQ 問題は NP 完全であることが知られている [26, p. 251, AN9]。 MQ 問題を解くコンテストとして Fukuoka MQ challenge [23] が知られている。扱われている MQ 問題は,有限体 は q = 2, 31, 256 の 3 種類と m, n に関しては m = 2n, n ≈ 1.5m の 2 種類の計 6 種類である。投稿され解かれた問 題の (m, n) の値の最大は表 5.1 のようになっている。 表 5.1: Fukuoka MQ challenge で解かれた MQ 問題のパラメータの最大値(2024/9/30 時点) タイプ I II III IV V VI Fq F2 F31 F256 F2 F31 F256 (m, n) m = 2n m = 2n m = 2n n ≈ 1.5m n ≈ 1.5m n ≈ 1.5m (m, n) の最大 (166, 83) (74, 37) (76, 38) (76, 114) (20, 30) (22, 33) 5.1.2 MP 問題を解く計算の計算量 MP 問題 (5.1) は,右辺の d を左辺に移行し,P (x) の中に吸収させてしまうことにより, P (x) = (p1 (x), . . . , pm (x)) = 0m (5.2) の形の求解問題に変形できる。MP 問題 (5.2) に対する一般的な解き方として,総当たり法や XL [38], Gröbner 基底 攻撃 [16] が知られている。 Qk XL は,( j=1 xij ) pj (x) = 0 (j = 1, . . . , m) の形の方程式をたくさん集め,連立線型方程式の簡約操作を用いて MP 問題の解を求める。MP 問題の解の xn の値を求める基本的な手順は以下のようになる。 Qk 1. ( j=1 xij ) pj (x) = 0 (j = 1, . . . , m) の形の方程式をたくさん集める。 2. これらの方程式内に現れる単項式を新たな変数で置き直し,連立線型方程式を立てる。 3. 立てた連立線型方程式を簡約化することで,xℓn (ℓ = 0, 1, 2, . . .) 以外の変数を消去する。 4. 得られた 1 変数 xn に関する多項方程式を解いて xn の値を求める。 この手順で得られた xn の値を (5.2) に代入すると,x1 , . . . , xn−1 に関する MP 問題が得られる。この MP 問題に対 して,上の手順と同様のことを行うと,今度は xn−1 の値を得ることができる。これを繰り返せば,最終的に MP 問 Qk 題の解のすべての成分が得られる。十分大きい正の整数 D を取り,D 次以下の ( ℓ=1 xiℓ ) pj (x) = 0 (j = 1, . . . , m) の形の方程式をすべて集めると,連立線型方程式が退化し,必ず解を持つようにすることができる。 Gröbner 基底攻撃は,イデアルの Gröbner 基底 [1] を計算して,MP 問題の解を求める。MP 問題 (5.2) の p1 (x), . . . , pm (x) の列を延長するように pm+1 (x) = xq1 − x1 , . . . , pm+n (x) = xqn − xn とおき,イデアル I ⊂ Fq [x] を I = hp1 (x), . . . , pm+n (x)i とおく。イデアル I の(ある項順序に関する)Gröbner 基底が計算できたとして,それを g1 (x), . . . , gℓ (x) ∈ Fq [x] とすると,MP 問題 (5.2) の解集合と,方程式 (g1 (x), . . . , gℓ (x)) = 0ℓ の解集合は一致する。 項順序を辞書式順序にした場合,I の Gröbner 基底は, g1 (x1 , . . . , xn ), . . . , gi2 −1 (x1 , . . . , xn ), gi2 (x2 , . . . , xn ), . . . , gi3 (x2 , . . . , xn ), . . . , gℓ−1 (xn−1 , xn ), gℓ (xn ) という風に,i が大きくなるにつれ,gi の変数の個数が(広義単調に)減るという形にできる。すると,gℓ (xn ) = 0 を 解いて xn の値を求めることができ,さらに,gℓ−1 (xn−1 , xn ) = 0 などに求めた xn の値を代入することで,xn−1 に 関する 1 変数の多項方程式が得られ,xn−1 の値を求めることができる。これを繰り返すことで,すべての xi の値が 124 特定でき,MP 問題 (5.2) の解を求められる。これが Gröbner 基底攻撃の基本戦略である。Gröbner 基底の効率的計 算方法としては,F4/F5 アルゴリズム [19, 20] が有名である。 Gröbner 基底攻撃と XL の攻撃計算量は,アルゴリズム内に現れる(最も計算が重い)連立線型方程式の簡約操作の 計算量で見積もられる。よって,攻撃計算量を求めるには,アルゴリズム内に現れる行列のサイズを知る必要がある が,それには攻撃アルゴリズム中に現れる多項式の次数の上限を見積もる必要がある。この上限の見積もり方について i (x) (di 次斉次多項式)と表し,Fq [x] の斉 説明する。各 pi (x) (i = 1, . . . , m + n) に対し,その最高次斉次部分を ph 次イデアル J を J = hph1 (x), . . . , phm+n (x)i で定める。d ≥ 0 に対し, Fq [x]d で d-次斉次多項式のなす Fq [x] の部分ベクトル空間を表し,Jd := J ∩ Fq [x]d とす L∞ る。次数環 Fq [x]/J = d=0 Fq [x]d /Jd の Hilbert 級数は ∞ X HSFq [x]/J (t) = dimFq (Fq [x]d /Jd ) td ∈ Z[[t]] (形式的べき級数) d=0 で定義される。J の Krull-次元が 0,すなわち,J が Fq [x] の極大イデアルとなるとき,HSFq [x]/J (t) は多項式となる。 このとき,dreg = deg(HSFq [x]/J (t)) + 1 とおき,これを正則性の次数 (degree of regularity) と呼ぶ。これ以外にも, Gröbner 基底計算と関係のある不変量として,solving degree dsol や first fall degree dff などが存在する [13, 18]。こ れらの不変量 dreg , dsol , dff はいずれも Gröbner 基底計算中に現れる多項式の次数の上限を評価する値である。一般 に,これらの不変量を求めることは Gröbner 基底計算と同程度困難であろうと考えられている。d をこれら不変量の うちの 1 つとしたとき,Gröbner 基底攻撃の計算量は以下のようになる [5]:  ω  n+d O . (5.3) d ここで,2 ≤ ω ≤ 3 は行列乗算指数。 任意の S(t) ∈ Z[[t]] に対し,[S(t)]+ ∈ Z>0 [[t]] で,S(t) の最初に現れる非正係数の次数以降(この項も含む)を切 り捨てた多項式を表すことにする。もし, "Q # " ! n # m+n Y n i=1 (1 − t ) 1 − tq di HSFq [x]/J (t) = = (1 − t ) di (1 − t)n i=1 1−t + + を満たすならば,p1 (x), . . . , pm+n (x) は半正則であるという。任意の m, n に対して, p1 (x), . . . , pm (x) の係数をラン ダムに選ぶと,多くの場合に p1 (x), . . . , pm+n (x) は半正則となることが実験的に知られている。半正則であれば,正 則性の次数 dreg は容易に計算可能である。 XL で解く連立線形方程式の行列部分は疎行列である。実際,pi (x) (i = 1, . . . , m) が含む単項式の個数の最大を L とすると,行列の各行の非零成分の個数も L 個以下となる。従って,  Qm  ! i=1 (1 − t di ) dXL = deg +1 (1 − t)n+1 + とおくと,q がある程度大きい場合,XL の計算量は以下のようになる:  2 ! n + dXL O L dXL 125 5.1.3 MinRank 問題 MinRank 問題 正の整数 r と行列 M1 , . . . , Mk ∈ Fqm×n に対し,α1 , . . . , αk ∈ Fq で,(α1 , . . . , αk ) 6= (0, . . . , 0) かつ ! X k Rank αi Mi ≤r i=1 なるものを求めよ。(Rank(M) は行列 M のランクを表す。) MinRank 問題は HFE− v や Rainbow など様々な方式の安全性に関わっている。また,MinRank 問題を解く計算の困 難性をベースとした署名方式などがいくつか提案されている [15, 6, 35, 2]。MinRank 問題は MP 問題に帰着できるこ とが知られている [30, 21, 4]。 例えば,Support minor modeling [4] では以下のように MinRank 問題が MP 問題に帰着される。α1 , . . . , αk が MinRank 問題の解であるとするならば,(S, C) ∈ Fqm×r × Fqr×n で X k SC = αi Mi (5.4) i=1 Pk なるものが存在する。rj を i=1 αi Mi の第 j 行とすると,(5.4) より rj は C の行ベクトルが張る空間に属する。 ′ (r+1)×n よって,行列 Cj ∈ Fq を   rj C′j = C で定めると,各 j = 1, . . . , m に対して,Rank C′j ≤ r を満たす。従って,C′j の任意の (r + 1) × (r + 1) 小行列の行列式 ! n = 0 という関係式が得られるが,このような関係式は j と小行列を動かすことにより m 個存在する。r 個の元 r+1 からなる T (⊂ {1, 2, . . . , n}) に対して,T に属する列番号からなる C の r × r 小行列を CT と表し,さらにその行列式 を cT と表すと,C′j の任意の (r+1)×(r+1) 小行列の行列式は,α1 , . . . , αk と cT (T ⊂ {1, . . . , m}, T の元の個数は r) ! ! n n に関する多項式で表すことができる。これらの変数の個数は k + である。つまり,MinRank 問題は k + r r ! n 個の変数の m 個の方程式からなる MP 問題に帰着される。 r+1 5.1.4 IP 問題,EIP 問題 Isomorphism of Polynomials(IP)問題は以下のように定義される。 IP 問題 S, T をそれぞれ,Fqn , Fqm 上のアフィン同型写像とする。多変数多項式系 P (x) = (p1 (x), p2 (x), . . . , pm (x)) に対し,多変数多項式系 P̃ (x) を合成により,P̃ (x) = T ◦ P (x) ◦ S で定める。このとき,P (x), P̃ (x) の情報 から S, T を求めよ。 IP 問題において,S や T の行列成分やベクトル成分をすべて独立な変数と見た場合,等式 P̃ (x) = T ◦ P (x) ◦ S は連 立多項式方程式と見ることができる。すなわち,IP 問題は MP 問題に変換される。 多変数多項式系のクラス C を 1 つ固定する。ここで多変数多項式系のクラスとは多変数多項式系の集合 Fq [x]m の 部分集合のことである。このとき,(クラス C に関する)Extended Isomorphism of Polynomials(EIP)問題は以下 のように定義される。 126 EIP 問題 多変数多項式系 P̃ (x) = (f1 (x), . . . , fm (x)) は,Fqn , Fqm 上のアフィン同型写像 S, T とクラス C に属する多 変数多項式系 P (x) により,P̃ (x) = T ◦ P (x) ◦ S で表されるとする。このとき,分解 P̃ (x) = T ′ ◦ P ′ (x) ◦ S ′ で,S ′ , T ′ は Fqn , Fqm 上のアフィン同型写像,P ′ (x) ∈ C なるものを見つけよ。 C = {P (x)} に関する EIP 問題が通常の IP 問題であるから,EIP 問題は IP 問題の拡張である。5.2 節で述べるよう に,EIP 問題は双極型システムで構成される公開鍵暗号方式,署名方式の鍵復元攻撃に対する安全性に関わる。EIP 問 題を解く方法はクラス C の取り方(あるいは方式)に依存する。 5.2 多変数多項式に基づく代表的な暗号方式 5.2.1 双極型システム IP 問題ベース [33] や MinRank 問題ベース [15, 2, 6, 35] の方式も存在するが,多変数公開鍵暗号の多くの方式が MP 問題をベースとして構成されている。中でも双極型システム [16] と呼ばれる構成方法が多く利用されているた め,この構成方法について説明する。(1 次多項式で構成されてなくても)多変数多項式系 P (x) によっては,多くの d ∈ Fqm に対して MP 問題が効率的に計算できる場合がある。例えば,n = m とし,P (x) = (p1 (x), p2 (x), . . . , pm (x)) が三角型多変数多項式系である,すなわち, p1 (x) = x1 , p2 (x) = x2 + g2 (x1 ) (g2 (x1 ) ∈ Fq [x1 ]), p3 (x) = x3 + g3 (x1 , x2 ) (g2 (x1 , x2 ) ∈ Fq [x1 , x2 ]), .. . pm (x) = xm + gm (x1 , . . . , xm−1 ) (gm (x1 , . . . , xm−1 ) ∈ Fq [x1 , . . . , xm−1 ]) の形で表されるとすると,任意の d ∈ Fqm に対して P (x) = d の(唯 1 つの)解が,x1 から逐次的に求められること が分かる。このことはすなわち,多変数多項式系のクラス C を三角型多変数多項式系の全体で定めると,任意の P ∈ C に対して,P (x) = d (d ∈ Fqm ) の解が効率的に計算可能ということである。 双極型システムでは,まず,MP 問題が効率的に計算できる多変数多項式系のクラス Ccent を見つけ固定する。 (例 えば,Ccent として三角型多変数多項式系の集合を取れる。 )G(x) ∈ Ccent と Fqn , Fqm 上のアフィン同型写像 S, T をそ れぞれ任意にとり,これらを合成した多変数多項式系 F (x) = T ◦ G(x) ◦ S をトラップドア付き一方向関数として利 用するのが,双極型システムのアイデアである。ただし,F (x) が実際にトラップドア付き一方向関数となるかどうか は Ccent のとり方に依存する。 双極型システムの鍵生成は次のように行う。 鍵生成 1. G(x) ∈ Ccent をランダムに選ぶ。 2. Fqn , Fqm 上のアフィン同型写像 S, T をランダムに選ぶ。 3. F (x) = T ◦ G(x) ◦ S とする。 このとき,公開鍵は F (x),秘密鍵は G(x), S, T となる。F (x) はその係数集合が公開鍵として保管される。また, G(x) を(この方式の)中心写像とよぶ。中心写像のクラス Ccent は 2 次の多変数多項式系で構成されることが多い。 これは,公開鍵長(や秘密鍵長)を出来るだけ小さくするためである。双極型システムは公開鍵暗号方式,署名方式両 方の構成に用いることができる。 公開鍵暗号方式の暗号化・復号は次のように行う。 127 暗号化 平文 M ∈ Fqn に対し,C = F (M ) を計算する。C が暗号文となる。 復号 暗号文 C ∈ Fqm に対し,(1) B1 = T −1 (C), (2) G(B2 ) = B1 なる B2 を計算, (3) M ′ = S −1 (B2 ) の順に計算 する。M ′ が平文と一致する。 復号が成功するためには, G(x) (あるいは F (x))が単射である必要がある。単射の条件を少し緩めて,「G(x) (あ るいは F (x))の逆像の個数が十分少ない」とすることもできる。この場合,M ′ が複数得られることになるので,ハッ シュ値などを用いて平文 M と一致する M ′ を特定する。 双極型システムの署名方式の署名生成・検証は次のように行う。 署名生成 メッセージ(のハッシュ値) M ∈ Fqm に対し,(1) B1 = T −1 (M ), (2) G(B2 ) = B1 なる B2 を計算, (3) σ = S −1 (B2 ) の順に計算する。σ が署名となる。 検証 署名 σ ∈ Fqn に対し,M ′ = F (σ) を計算する。M = M ′ ならば署名を受理,それ以外は棄却する。 署名生成がいつでも実行できるためには,どのような M ∈ Fqm に対しても,B2 = G−1 (B1 ) の計算ができる,すなわ ち,G(x) (あるいは F (x))が全射である必要がある。 双極型システムでは,中心写像のクラス Ccent の取り方を変えることで幅広い方式の構成が可能である。例えば, Ccent = { 三角型多変数多項式系 } とすると公開鍵暗号方式が得られる。双極型システムにおいては,Ccent に関する EIP 問題がその安全性に大きく関わってくる。実際,EIP 問題を解けた場合,F (x) = T ◦ G(x) ◦ S の代わりに分解 F (x) = T ′ ◦ G′ (x) ◦ S ′ を用いても,公開鍵暗号方式における復号および,署名方式における署名生成(偽造)が実行 可能となる。EIP 問題の困難性はクラス C の選び方に依存するので, C の選び方に応じて個々に解析される必要があ る。例えば,Ccent = { 三角型多変数多項式系 } としたときの EIP 問題は効率的に解けることが知られている [27]。 双極型システムの代表的な構成法として,simple field 方式と big field 方式がある。simple field 方式は中心写像の 構成に Fq 以外の有限体を利用しない。big field 方式は中心写像の構成に Fq の n 次拡大体 Fqn を利用する。big field 方式は中心写像を構成しやすいが,Gröbner 基底攻撃が効果的となる場合が多いという性質を持つ。5.2.3 節では,big field 方式の代表として署名方式 HFE および HFE− v ,5.2.4 節では,simple field 方式の代表として署名方式 UOV に ついて説明する。 5.2.2 双極型システムの modifier modifier [37, 16] は双極型システムの方式からその変種方式を構成する。様々な modifier があり,それぞれに安全 性を強化したり,効率性を向上させたりといった効果がある。以下では代表的な modifier を 4 つ紹介する。5.2.3 節で 説明する HFE v − 方式では,2 つの modifier(マイナス手法と External Perturbation)が利用されている。 5.2.2.1 マイナス手法 “ − ” マイナス手法は,公開鍵 F (x) のいくつかの成分を削除する方法である。すなわち,F (x) = (f1 (x), . . . , fm (x)) と 表されるとき,r 個の成分を削除し,F̃ (x) = (f1 (x), . . . , fm−r (x)) を新たな公開鍵とする方式である。F (x) に対し て有効な秘密鍵復元攻撃がある場合でも,F̃ (x) は F (x) よりも情報が欠落しているため,F̃ (x) に対しては同じ秘密 鍵復元攻撃が適用できなくなる可能性があり,安全性強化につながる。公開鍵暗号方式の構成では公開鍵の単射性が失 われたり,復号が困難になるといった理由により,マイナス手法はあまり用いられない。署名方式では,F (x) に対す る署名生成を利用して,F̃ (x) に対する署名生成ができる。 128 5.2.2.2 プラス手法 “ + ” プラス手法は,中心写像 G(x) にランダムな多項式を成分として加える方法である。すなわち,中心写像 G(x) = (g1 (x), . . . , gm (x)) に対し,r 個のランダムな多項式 gm+1 (x), . . . , gm+r (x) を用意し,G̃(x) = (g1 (x), . . . , gm+r (x)) を新たな中心写像とする方式である。中心写像に特定の構造を持たない多項式が混ざることにより,秘密鍵復元攻撃の 成功率を下げることができる。署名方式では公開鍵の全射性が失われたり,署名生成が困難になるといった理由によ り,プラス手法はあまり用いられない。公開鍵暗号方式では,復号において G̃(x) の逆写像を計算しなければならない が,その計算に G(x) の逆写像計算が利用できる。 5.2.2.3 External Perturbation “ v ” この modifier は,元々の変数 x = (x1 , . . . , xn ) に新たな変数 v = (xn+1 , . . . , xn+v )(vinegar 変数)を加える方法 である。この modifier は主に署名方式で利用される。署名方式を定める中心写像のクラスを C とする。新たな中心写 像のクラス C ′ を多項式写像 G(x, v) : Fqn+v → Fqm で,任意の v0 ∈ Fvq に対し,G(x, v0 ) ∈ C なるもの全体として定 める。すると,G(x, v) ∈ C ′ に対し,G(x, v) = d (d ∈ Fqm ) の解が次のように得られる。 1. v0 ∈ Fqv をランダムに選ぶ。 2. G(x, v0 ) = d を x に関して解く。(解を x∗ とする。) 3. (x, v) = (x∗ , v0 ) を出力。 この計算を利用して,新たな署名方式が構成できる。vinegar 変数は C とは無関係な変数なので追加することで安全性 強化が期待できる。 5.2.2.4 Internal Perturbation “ I ” この modifier は,中心写像 G(x) にノイズを加えて安全性を強化する方法である。変数 z = (z1 , . . . , zw ) と多項式 写像 H(z) : Fqw → Fqm ,および,アフィン写像 S : Fqn → Fqw を用意する。また,H(z) の像 W ⊂ Fqm が分かってお り,W に属する元の個数は十分少ないと仮定する。新たな中心写像 G̃(x) : Fqn → Fqm を G(x) + H(S(x)) で定める。 このとき,G̃(x) = d (d ∈ Fqm ) の解が次のように得られる。 1. w0 ∈ W をランダムに選ぶ。 2. 次の方程式の解 x∗ を求める。  G(x) = d − w0 , H(S(x)) = w0 もし,解が得られなかったら 1. に戻る。 3. x∗ を出力。 よって,この G̃(x) を中心写像として方式が構成できる。 129 5.2.3 公開鍵暗号方式 HFE,署名方式 HFE v − 5.2.3.1 公開鍵暗号方式 HFE ∼ K = Fqn を Fq の n 次拡大体とし,Fq -線形同型写像 ϕ : Fqn − → K を 1 つ固定する。D を正の整数として,K 上 の 1 変数多項式 X≤D q i +q ≤D j i qX q i +q j i G(X) = αi,j X + βi X q + γ (αi,j , βi , γ ∈ K) 0≤i≤j 0≤i をとる。G(X) の形の 1 変数多項式は HFE 多項式と呼ばれる。このとき,多変数多項式写像 G : Fqn → Fqn を G = ϕ−1 ◦ G ◦ ϕ と定めると,対応する多変数多項式系 G(x) の成分は全て 2 次多項式となる。d ∈ Fqn に対して, G(x) = d が解を持つならば,この解は全て効率的に計算することができる。実際,次の手順で計算できる。 1. B = ϕ(d) ∈ K を計算する。 2. A = G −1 (B) を Cantor-Zassenhaus アルゴリズムなどの因数分解アルゴリズムを用いて計算する。 3. ϕ−1 (A) を計算する。 但し,Step 2 の計算が効率的に実行できるためには D をある程度小さくとる必要がある。以上のことを踏まえ, αi,j , βi , γ ∈ K を動かしてできる G(x) のなすクラス CHFE に対し,Ccent = CHFE とした双極型システムにより公開 鍵暗号方式が構成できる。この公開鍵暗号方式を HFE [33] と呼ぶ。HFE 自体は 1999 年,Kipnis と Shamir により 効果的な攻撃が発見されている [30]。その後,HFE から派生した変種方式がいくつか提案されており,以下の HFE− v もその1つである。 5.2.3.2 署名方式 HFE− v HFE− v [33, 34] は,公開鍵暗号方式 HFE を署名方式に応用したものである。HFE と同様に Fq の n 次拡大体 K = Fqn をとり,Fq -線形同型写像 ϕ : Fqn → K を固定する。正の整数 a (a < n) と v を固定する。まず,G(X) は 次のように変更される。 X≤D q i +q ≤D j i qX q i +q j i G(X) = αi,j X + βi (xn+1 , . . . , xn+v )X q + γ(xn+1 , . . . , xn+v ) (αi,j ∈ K). (5.5) 0≤i≤j 0≤i ここで,βi (xn+1 , . . . , xn+v ), γ(xn+1 , . . . , xn+v ) は共に Fqv から K への多項式写像であり,βi (xn+1 , . . . , xn+v ) は 1 次 多項式,γ(xn+1 , . . . , xn+v ) は 2 次多項式である。多変数多項式系 G(x) は,多変数多項式写像 G = ϕ−1 ◦G ◦(ϕ×idv ) : Fqn+v → Fqn により定める。αi,j ∈ K と βi (xn+1 , . . . , xn+v ), γ(xn+1 , . . . , xn+v ) を動かしてできる G(x) のなすク ラスを CHFE− v と定める。基本的には,これを Ccent = CHFE− v として構成される双極型システムを考えるのであるが, 双極型システムを若干変更する。S は Fqn+v 上のアフィン同型写像のままでよいが,T は Fqn から Fqn−a への最大 ランクのアフィン写像と変更する。公開鍵は通常の双極型システムと同じように,F (x) = T ◦ G(x) ◦ S と定める。 よって,F は Fqn+v から Fqn−a への多変数多項式写像となる。メッセージ(のハッシュ値) M ∈ Fqn−a に対する署 名 σ = F −1 (M ) は以下のよう計算される。 1. c = T −1 (M ) ∈ Fqn (の 1 つ)を計算する。 2. B = ϕ(c) ∈ K を計算する。 3. B ′ ∈ Fqv をランダムに選び, A = G −1 (B k B ′ ) を Cantor-Zassenhaus アルゴリズムなどを用いて計算する。 G −1 (B k B ′ ) が存在しない場合は,B ′ の選択からやり直す。 4. e = ϕ−1 (A) を計算する。 130 5. σ = S −1 (e) を計算する。 HFE− v と同じ構造を持つ署名方式 GeMSS [14] は NIST PQC 標準化プロジェクト 第 3 ラウンドに選ばれたが,効率 的な攻撃法が提案されたため [36],第 4 ラウンドに進むことはできなかった。 5.2.4 署名方式 UOV 5.2.4.1 UOV の概要 UOV [29, 11] は,双極型システムを用いた署名方式である。UOV の中心写像は,決まったいくつかの変数に値を代 入することで 1 次式に変形でき,連立線形方程式の求解手法を用いて,効率的に署名生成が可能である。v, m を正の 整数とし,n = v + m とする。2 次多項式からなる多変数多項式系 G(x) = (g1 (x), . . . , gm (x)) を次の形で与える。 X (k) X (k) X (k) gk (x) = αi,j xi xj + βi,j xi xj + γi xi + η (k) (k = 1, . . . , m) 1≤i≤v 1≤i≤j≤v 1≤i≤n v+1≤j≤n (k) (k) (k) ここで,αi,j , βi,j , γi , η (k) ∈ Fq である。G(x) の形で定義される多変数多項式写像を UOV 多項式写像と呼ぶ。 gk (x) の 2 次多項式部分を g̃k (x) とすると, v z }| { z }| m { g̃k (0, . . . , 0, ∗, . . . , ∗) = 0 (5.6) となることが,UOV 多項式写像の特徴である。x1 , . . . , xv を vinegar 変数,xv+1 , . . . , xn を oil 変数と呼ぶ。G(x) の vinegar 変数に(ランダムな)値を代入すると,(5.6) により oil 変数に関する 1 次式が得られる。G(x) の逆写像は,連 立線形方程式の求解手法を用いて効率的に計算できる。具体的に,任意の c = (c1 , . . . , cm ) ∈ Fqm に対し,b = G−1 (c) (の一つ)が以下のように計算できる。 1. b1 , . . . , bv ∈ Fq をランダムにとる。 2. g1 (x), . . . , gm (x) に (x1 , . . . , xv ) = (b1 , . . . , bv ) を代入して得られる xv+1 , . . . , xn に関する 1 次式をそれぞれ ḡ1 (xv+1 , . . . , xn ), . . . , ḡm (xv+1 , . . . , xn ) とする。連立線形方程式    ḡ1 (xv+1 , . . . , xn ) = c1 ..  .  ḡm (xv+1 , . . . , xn ) = cm の解を計算し,それを bv+1 , . . . , bn と置く。もし解がなければ Step 1 に戻る。 3. b = (b1 , . . . , bn ) (k) (k) (k) αi,j , βi,j , γi , η (k) ∈ Fq を動かしてできる G(x) の集合を CUOV としたとき,Ccent = CUOV として構成される双 極型システムの署名方式を UOV と呼ぶ。但し,通常の双極型システムで使用するアフィン同型写像 T は,UOV の安 全性には貢献しないので必要ない。すなわち,秘密鍵は G(x) ∈ CUOV と Fqn 上のアフィン同型写像 S で,公開鍵は F (x) = G(x) ◦ S となる。F (x) の成分の 2 次多項式部分を f˜1 (x), . . . , f˜m (x) とし,部分空間 O (⊂ Fqn ) を v z }| { −1 O=S ({(0, . . . , 0, a) ∈ Fqn | a ∈ Fqm }) とすると,(5.6) により f˜i (o) = 0 (i = 1, . . . , m, o ∈ O) を満たす。このような性質を持つ部分空間を oil 空間とい う。逆に,多変数 2 次多項式系 H(x) が o 次元の oil 空間 O (⊂ Fqn ) を持ち,o ≥ m を満たすならば,H(x) は UOV の公開鍵として使用できる。 131 5.2.4.2 UOV の公開鍵長の削減 双極型システムの公開鍵 F (x) は,通常,その係数集合の形で記述され,その中でも,2 次多項式部分の係数集合が 公開鍵の大部分を占める。P (x) を多変数 2 次多項式系とし,p̃1 (x), . . . , p̃m (x) をその 2 次多項式部分とすると,ある 行列 P1 , . . . , Pm ∈ Fqn×n により, p̃i (x) = x Pi x⊤ (i = 1, . . . , m) と表すことができる。一般に,行列 P = (pij ) ∈ Fqh×h に対し,上三角行列 upper(P) = (cij ) ∈ Fqh×h を   pii i = j, cij = pij + pji i < j,  0 i>j で定義すると,p̃i (x) = x Pi x⊤ = x upper(Pi ) x⊤ が成り立つ。特に,Pi はすべて上三角行列で選ぶことができる。 UOV の中心写像 G(x) の 2 次多項式部分に対応する上三角行列を G1 , . . . , Gm とし,公開鍵 F (x) の 2 次多項式部 分に対応する上三角行列を F1 , . . . , Fm とすると,     Gi,1 Gi,2 Fi,1 Fi,2 Gi = , Fi = (Gi,1 , Fi,1 ∈ Fqv×v , Gi,2 , Fi,2 ∈ Fqv×o , Fi,3 ∈ Fqo×o ) 0o×v 0o×o 0o×v Fi,3 の形で表すことができる。ここで,Gi,1 , Gi,3 , Fi,1 , Fi,3 は上三角行列である。今,アフィン同型写像 S の線形部分を 表す行列 S (線形写像は x 7→ x S の形)が   Iv 0v×o S= (S0 ∈ Fqo×v ) S0 Io )すると,Fi = upper(S Gi S⊤ ) となるので,次の の形で表される場合に限定する。(但し,Iℓ は ℓ 次単位行列を表す。 関係が成り立つ。 · Gi,1 = Fi,1 , Gi,2 = Fi,2 − (Fi,1 + F⊤ ⊤ i,1 ) S0 , · Fi,3 = upper(−S0 F⊤ ⊤ ⊤ i,1 S0 + S0 Fi,2 ) = upper(−S0 Fi,1 S0 + S0 Fi,2 ). (5.7) これより,Fi,1 は任意の上三角行列, Fi,2 は任意の行列で選べることが分かる。そこで,Fi,1 , Fi,2 の成分すべてを公開 鍵として記述する代わりに,Fi,1 , Fi,2 を疑似乱数生成器を用いて構成することにして,そのシードのみを公開鍵とし て記述することにより公開鍵長を削減できる。このようにして,UOV の公開鍵の 2 次多項式部分は,シードと (5.7) で求められた Fi,3 (i = 1, . . . , m) だけで記述できる。 一般に,双極型システムの公開鍵長は n, m に関して,O(mn2 ) の増大度を持ち,大きくなりやすい。UOV では, 上の公開鍵の記述方法を使うことにより,公開鍵長の増大度は O(m3 ) となり,UOV のパラメータが 2m < n で選ば れることを踏まえると,一般の双極型システムの公開鍵の記述方法よりも,公開鍵長を削減できる。この削減方法は, 5.3 節で記述する(UOV の変種である)QR-UOV や MAYO にも利用されている。 5.2.4.3 署名方式 Rainbow 署名方式 Rainbow [17] は UOV を多層化して作られる。正の整数 t, v1 , o1 , . . . , ot に対し,vi+1 = vi + oi により, v2 , . . . , vt+1 を順次定める。また,i = 1, . . . , t に対し,Si = {1, . . . , vi }, Oi = {vi + 1, . . . , vi+1 } とおく。Si の元 の個数は vi で,Oi の元の個数は oi である。変数の個数を n = vt+1 ,式数を m = n − v1 とする多変数多項式系 G(x) = (gv1 +1 (x), . . . , gn (x)) を次の形で与える: X (k) X (k) X (k) gk (x1 , . . . , xn ) = αi,j xi xj + βi,j xi xj + γi xi + η (k) (k = v1 +1, . . . , n) i∈Oh ,j∈Sh i,j∈Sh , i≤j i∈Sh+1 132 (k) (k) (k) 但し,h は k が属する層番号,すなわち,“k ∈ Oh ” で定まる整数 1 ≤ h ≤ t である。αi,j , βi,j , γi , η (k) ∈ Fq を動かしてできる G(x) のなすクラスを CRainbow と定め,これを Rainbow の中心写像のクラスとする。任意の c = (c1 , . . . , cm ) ∈ Fqm に対し,b = G−1 (c)(の一つ)が以下のように計算できる。 1. b1 , . . . , bv1 ∈ Fq をランダムにとる。 2. h = 1, 2, . . . , t に対し,以下を実行: gvh +1 (x), . . . , gvh+1 (x) に (x1 , . . . , xvh ) = (b1 , . . . , bvh ) を代入して得られる xvh +1 , . . . , xvh+1 に関する 1 次式をそれぞれ ḡvh +1 (xvh +1 , . . . , xvh+1 ), . . . , ḡvh+1 (xvh +1 , . . . , xvh+1 ) とする。連立線形方程式    ḡvh +1 (xvh +1 , . . . , xvh+1 ) = cvh +1 ..  .  ḡvh+1 (xvh +1 , . . . , xvh+1 ) = cvh+1 の解を計算し,それを bvh +1 , . . . , bvh+1 と置く。もし解がなければ Step 1 に戻る。 3. b = (b1 , . . . , bn ) このアルゴリズムの Step 2 の第 h ループ内では,Sh を添字とする変数を vinegar 変数,Oh を添字とする変数を oil 変数とし,UOV の中心写像と同じ逆写像計算を行っている。このことから,Rainbow を UOV の多層化と見ること ができる。Rainbow は NIST PQC 標準化プロジェクト 第 3 ラウンドに選ばれたが,Rainbow の EIP 問題を解くこ とにより,小さなサイズの UOV への攻撃に帰着する攻撃が提案され [7, 12],その結果,level I, III, V として提案さ れていたパラメータがその安全性レベルに到達しないことになり(安全性レベル 143 bits が 69 bits に,207 bits が 157bits に,272 bits が 206 bits に下がった),第 4 ラウンドに進むことはできなかった。 5.2.5 MPC-in-the-Head による署名方式の構成 5.2.5.1 秘匿マルチパーティ計算 Ishai らによって導入された MPC-in-the-Head [28] は,秘匿マルチパーティ計算からゼロ知識証明を構成し,さら に Fiat-Shamir 変換により署名方式を構成する枠組みである。本来,MPC-in-the-Head の枠組みは広く,多変数公 開鍵暗号に限定された技術ではないが,多変数公開鍵暗号においては,MQ 問題に付随する MPC-in-the-Head と, MinRank 問題に付随する MPC-in-the-Head が重要であるため,この 2 つの場合に限定して説明する。 R ⊂ {0, 1}∗ × {0, 1}∗ を関係とする。命題 a に対して,(a, x) ∈ R であるとき,x は a の証拠(witness)であると いう。ここでは,R として,MQ 問題(あるいは,MinRank 問題)のインスタンスを命題とし,その解を証拠とする 関係に限定する。N 組のパーティ P1 , . . . , PN が存在するとする。加法構造を持つ代数系の元 b に対し,分散 JbK は JbK = (JbK1 , . . . , JbKN ) であり,JbK1 + · · · + JbKN = b なるものを意味するとする。命題 a に対し,以下のような性質を持つ秘匿マルチパーティ計算 f を考える。 • 秘密情報 x の分散 JxK に対し,Pj は JxKj を入力として受け取る。 • f は ‘受理’ か ‘棄却’ を返す。(a, x) ∈ R ならば,‘受理’ が返される。 • N − 1 組以下のパーティのビューが集まっても x の情報は全く漏れない。 命題が以下のような MQ 問題のインスタンスである場合を考える。    x A1 x ⊤ + x b ⊤ 1 = y1   x A2 x ⊤ + x b ⊤ 2 = y2 .. (5.8)   .   x Am x ⊤ + x b ⊤m = ym 133 ここで,A1 , . . . , Am ∈ Fqn×n , b1 , . . . , bm ∈ Fqn である。この場合の(MQOM [22] で利用されている)秘匿マルチ パーティ計算 fMQ の入力は,この MQ 問題の解 x∗ の分散 Jx∗ K である。η を正の整数とする。正の整数 n1 , n2 を n1 n2 ≥ n なるように選んでおく。また,u1 , . . . , un2 ∈ Fq を相異なる元として固定しておく。このとき,fMQ の計算 手順は以下の通りである。 秘匿マルチパーティ計算 fMQ 1. 乱数生成オラクル*1 OR により γ1 , . . . , γm ∈ Fqη が作られ,全パーティに送信する。 Pm 2. 各パーティ Pj は JzKj = i=1 γi (Jyi Kj − Jx∗ Kj b⊤ i ) を計算する。ここで,Jyi K = (yi , 0, 0, . . . , 0) である。 ∗ Pm ⊤ 3. 各パーティ Pj は JwKj = Jx Kj ( i=1 γi Ai ) を計算する。 4. ヒントオラクル OH により,a1 , . . . , an2 ∈ Fqη , Q′ (u) ∈ Fqη [u] の分散 Ja1 K, . . . , Jan2 K, JQ′ (u)K が作られ,対 応するパーティに配布される。ここで,a1 , . . . , an2 はランダムに選ばれ,Q′ (u) は次のように定められる。ま ず,n1 − 1 次以下の多項式 Xℓ (u) ∈ Fq [u], Wℓ (u) ∈ Fqη [u] (ℓ = 1, . . . , n2 ) を    X (u ) = x∗(ℓ−1)n1 +1   ℓ 1  Wℓ (u1 ) = w(ℓ−1)n1 +1 .. ..  .  .   Xℓ (un1 ) = x∗(ℓ−1)n1 +n1 Wℓ (un1 ) = w(ℓ−1)n1 +n1 を満たす補間多項式によって計算する。次に,W̃ℓ (u) ∈ Fqη [u] (ℓ = 1, . . . , n2 ) を W̃ℓ (u) = Wℓ (u) + aj (u − u1 )(u − u2 ) · · · (u − un1 ) P n2 とし,Q(u) ∈ Fqη [u] を Q(u) = ℓ=1 Xℓ (u) W̃ℓ (u) で定める。最後に,q0 を Q(u) の定数項とし,Q(u) = ′ ′ u · Q (u) + q0 で Q (u) を定める。 5. 各パーティ Pj は n1 − 1 次以下の多項式 JXℓ Kj (u) ∈ Fq [u], JWℓ Kj (u) ∈ Fqη [u] (ℓ = 1, . . . , n2 ) を   JXℓ Kj (u1 ) = Jx∗(ℓ−1)n1 +1 Kj    JWℓ Kj (u1 ) = Jw(ℓ−1)n1 +1 Kj  .. ..  .  .   JXℓ Kj (un1 ) = Jx∗(ℓ−1)n1 +n1 Kj JWℓ Kj (un1 ) = Jw(ℓ−1)n1 +n1 Kj を満たす補間多項式によって計算する。(JXℓ K(u), JWℓ K(u) は,それぞれ Xℓ (u), Wℓ (u) の分散となる。) 6. 各パーティ Pj は JW̃ℓ Kj (u) ∈ Fqη [u] (ℓ = 1, . . . , n2 ) を JW̃ℓ Kj (u) = JWℓ Kj (u) + Jaℓ Kj (u − u1 )(u − u2 ) · · · (u − un1 ) で定める。(JW̃ℓ K(u) は,W̃ℓ (u) の分散となる。) P n1 7. 各パーティ Pj は Jq0 Kj = n−1 1 · (JzKj − ′ i=1 ui JQ Kj (ui )) を計算する。 8. 乱数生成オラクルを用いて r ∈ Fqη \{u1 , . . . , un1 } を生成し,全パーティに送信する。 9. 各パーティ Pj は Jcℓ Kj = JW̃ℓ Kj (r) (ℓ = 1, . . . , n2 ) を計算する。 10. 全パーティは Jcℓ K (ℓ = 1, . . . , n2 ) を共有し,cℓ ∈ Fqη (ℓ = 1, . . . , n2 ) を計算する。 P n2 11. 各パーティ Pj は JvKj = r · JQ′ Kj (r) + Jq0 Kj − ℓ=1 cℓ JXℓ Kj (r) を計算する。 12. 全パーティは JvK を共有し,v を計算する。 13. v = 0 なら ‘受理’,それ以外は ‘棄却’ を出力する。 この計算について補足する。この計算では,x∗ が (5.8) の解であることを確認する代わりに, X m γi (yi − x∗ Ai x∗ ⊤ − x∗ b⊤ i )=0 i=1 *1 Randomness Oracle で,安全性証明に用いられるランダムオラクルとは異なる。 134 であることを確認している。x∗ が (5.8) の解でなくても,この等式は 1/q η の確率で成り立つ。等式を書き直すと, ! ! X m X m X m X m ∗⊤ ∗⊤ γi (yi − x∗ b⊤ i )= γi (x∗ Ai x ) = x∗ γ i Ai x = hx∗ , wi, (w = x∗ γ i A⊤ i ) i=1 i=1 i=1 i=1 Pm ∗ となる。よって,z = i=1 γi (yi − x b⊤ ∗ i ) とおくならば,z = hx , wi を確かめればよい。これは, n1 X X n2 X n1 z= Xℓ (ui )W̃ℓ (ui ) = Q(ui ) (5.9) i=1 ℓ=1 i=1 と同値である。v = 0 であれば,Schwartz-Zippel の補題により,高い確率で (5.9) が満たされることになる。η を大 きくすることで,この確率を 1 に近づけることができる。 5.2.5.2 ゼロ知識証明への変換 MPC-in-the-Head では秘匿マルチパーティ計算からゼロ知識証明を構成する。このゼロ知識証明は,命題 a に対し て証拠 x を知っているかどうかを検証するものである。秘匿マルチパーティ計算 fMQ に対応するゼロ知識証明の基本 設計は以下の通りである。 fMQ に対応するゼロ知識証明 1. 証明者は,証拠 x∗ の分散 Jx∗ K を作成する。そして,すべての j ∈ {1, . . . , N } に対し,Jx∗ Kj のコミットメン トを作成し,検証者に送る。 2. 検証者は,ランダムに γ1 , . . . , γm ∈ Fqη を生成し,これらをチャレンジとして証明者に送る。 3. 証明者は,a1 , . . . , an2 , Q′ (u) を生成し,これらの分散 Ja1 K, . . . , Jan2 K, JQ′ K(u) を作成する。そして,すべて の j ∈ {1, . . . , N } に対し,Ja1 Kj , . . . , Jan2 Kj , JQ′ Kj (u) のコミットメントを作成し,検証者に送る。 4. 検証者は,ランダムに r ∈ Fqη \{u1 , . . . , un1 } を生成し,これらをチャレンジとして証明者に送る。 5. 証明者は,(全てのパーティの計算を “頭の中で” 行い,)Jc1 K, . . . , Jcn2 K,および,JvK を作成する。そして,こ れらを検証者に送る。 6. 検証者は,ランダムに i∗ ∈ {1, 2, . . . , N } を生成し,これをチャレンジとして証明者に送る。 7. 証明者は,すべての j ∈ {1, 2, . . . , N }\{i∗ } に対し,JxKj , Ja1 Kj , . . . , Jan2 Kj , JQ′ Kj (u) を検証者に開示する。 8. 検証者は,以下を検証し,全て正しければ ‘受理’ を,それ以外は ‘棄却’ を出力する。 ✓ すべての j ∈ {1, 2, . . . , N }\{i∗ } に対し,Jx∗ Kj のコミットメント,および,Ja1 Kj , . . . , Jan2 Kj , JQ′ Kj (u) の コミットメントが正しいこと ✓ すべての j ∈ {1, 2, . . . , N }\{i∗ } に対し,Jx∗ Kj , Ja1 Kj , . . . , Jan2 Kj , JQ′ Kj (u) から Pj と同じ計算を行った とき,Jc1 Kj , . . . , Jcn2 Kj , JvKj の計算結果が一致すること ✓ v = 0 であること このゼロ知識証明について補足する。fMQ における全てのパーティのビューは(もともと開示されるものを除き)コ ミットメントが作成され,検証者に送られている。また,fMQ において乱数生成オラクルが介入する部分は,検証者 のチャレンジに置き換えられている。そして,1 つのパーティ以外のすべてのパーティに対するビューが開示され,そ のビューから各パーティと同じ計算を行って得られる結果と開示情報が一致すること,および,v = 0 であることによ り検証者は ‘受理’ を行っている。このゼロ知識証明の健全性誤差(soundness error)ε は約 1/N である。このゼロ知 識証明を τ 回繰り返すことにより,全体の健全性誤差を ετ にすることができる。 このゼロ知識証明に Fiat-Shamir 変換を施すことで署名方式 MQOM [22] が構成できる。MQOM ついては,5.3.4 節で詳しく述べる。また,5.3.5 節で詳しく述べる MiRitH は MinRank 問題に付随する秘匿マルチパーティ計算から 構成される署名方式である。 135 5.3 多変数多項式に基づく主要な暗号方式 多変数公開鍵暗号で標準化が有力視されるのは効率的な検証と短い署名長を持つ署名方式の UOV である。但し, UOV は公開鍵長が大きくなりやすいという性質を持つため,公開鍵長の削減手法を取り入れている UOV の変種であ る QR-UOV と MAYO も標準化の有力候補である。 また,MPC-in-the-Head では,MQ 問題に関するマルチパーティ計算に基づく署名方式 MQOM と,MinRank 問 題に関するマルチパーティ計算に基づく署名方式 MiRitH が注目されている。 表 5.2: 多変数多項式に基づく暗号の分類 文献 暗号化 鍵交換 署名 UOV [29, 11] ○ QR-UOV [24, 25] ○ MAYO [8, 9] ○ MQOM [22] ○ MiRitH [3] ○ 5.3.1 署名方式 UOV 5.3.1.1 UOV の概要 5.2.4.1 節で UOV の基本アルゴリズムは述べたため,この節でのアルゴリズムの記述は割愛する。NIST PQC 標準 化プロジェクト追加署名第 1 ラウンドに提出された UOV [11] のアルゴリズムには,さらに,5.2.4.2 節で述べた公開 鍵長の削減手法が取り入れられている。 5.3.1.2 UOV のパラメータ選択 UOV の設計に必要なパラメータは,q, m, n である。NIST PQC 標準化プロジェクト追加署名第 1 ラウンドに提出 されたドキュメント [11] では,以下のように UOV のパラメータ見積もりが公開されている。 表 5.3: UOV のパラメータと鍵および署名のサイズ (q, m, n) 安全性レベル 公開鍵サイズ 秘密鍵サイズ 署名サイズ (256, 44, 112) レベル 1 43, 576 Bytes 48 Bytes 128 Bytes ( 16, 64, 160) レベル 1 66, 576 Bytes 48 Bytes 96 Bytes (256, 72, 184) レベル 3 189, 232 Bytes 48 Bytes 200 Bytes (256, 96, 244) レベル 5 446, 992 Bytes 48 Bytes 260 Bytes 136 5.3.2 署名方式 QR-UOV 5.3.2.1 QR-UOV の概要 ′ ′ ′ ′ QR-UOV [24, 25] は UOV の変種である。Fqℓ 上の行列の集合 Fqnℓ ×n は,Fq 上の行列の集合 Fqn ℓ×n ℓ の部分集 ′ ′ ′ ′ 合と見なすことができる。この部分集合に属する行列は,Fqn ℓ×n ℓ の元として表示するよりも,Fqnℓ ×n の元として表 示する方が,サイズを 1/ℓ 倍に圧縮できる。QR-UOV は,この性質を利用して UOV の公開鍵長を削減している。 ℓ, V, M を正の整数とし,v = ℓ · V, m = ℓ · M, n = v + m とする。次数 ℓ の既約多項式 f ∈ Fq [t] を取り,Fq の 拡大体 Ef = Fq [t]/(f ) に,Fq -基底を 1, t, t2 , . . . , tℓ−1 で入れ,Fq 上のベクトル空間として Fqℓ と同一視する。任意の g ∈ Fq [t] に対し,写像 Ef 3 x 7→ xg ∈ Ef は Fq 上の線形写像となる。よって,この写像は Fq 上の ℓ × ℓ 行列とし て表すことができる。この行列を Φfg ∈ Fqℓ×ℓ と表し,Af = {Φfg | g ∈ Ef }(⊂ Fqℓ×ℓ ) とおく。ϕ : Ef → Fq を非自明 な Fq -線形写像で固定し,W = (ϕ(ti+j−2 ))ij ∈ Fqℓ×ℓ とすると,任意の X ∈ Af に対して,WX ∈ Fqℓ×ℓ は対称行列 a,b になることが知られている [24, Theorem 1]。正の整数 a, b に対し,Af を以下の形で表される aℓ × bℓ 行列の集合 とする:   X11 X12 ··· X1b X21 X22 ··· X2b     .. .. .. ..  (X11 , X12 , . . . , Xab ∈ Af )  . . . .  Xa1 Xa2 ··· Xab W(a) ∈ Fqaℓ×aℓ を W が主対角線に a 個並ぶ対角行列とし,W(a) Afa,b = {W(a) X | X ∈ Afa,b } (⊂ Fqaℓ×bℓ ) とする。 Fqaℓ×bℓ に属する一般の行列を記述するには,Fq の元が a b ℓ2 個必要であるが,それが W(a) Afa,b に属する場合は, a b ℓ 個で記述できることに注意してほしい。 QR-UOV では,公開鍵 F (x) の成分として 2 次斉次多項式を用いる。QR-UOV は双極型システムであるため, 5.2.4.2 節で述べたように,F (x) は,m 個の行列 (∈ Fqn×n ) を用いて記述することができる。QR-UOV では,これら V +M,V +M の行列がすべて W(V +M ) Af に属するような F (x) だけを用いる。但し,これらの行列は上三角行列の形に V +M,V +M はできないので,対称行列で記述する。この影響で,有限体の位数 q は奇数にする必要がある。W(V +M ) Af に属する行列は,一般の Fqn×n に属する行列よりも小さいサイズで記述できるため,オリジナルの UOV よりも QR-UOV の公開鍵の方が小さいサイズで記述できる。また,5.2.4.2 節で述べた UOV に対して適用できる公開鍵長削 減手法は,QR-UOV に対しても適用可能である。 安全性パラメータを λ とし,以下の関数を用意する。 • Expandsk : 任意の 2λ-ビット列から 1 個の AfV,M に属する行列を生成する疑似乱数生成関数 • Expandpk : 任意の 2λ-ビット列から m 個の W(V ) AfV,V に属する対称行列と,m 個の W(V ) AfV,M に属する 行列を生成する疑似乱数生成関数 • H : {0, 1}∗ → Fqm : 暗号学的ハッシュ関数 鍵生成 1. seedpk , seedsk ∈ {0, 1}2λ をランダムに選ぶ。 2. Expandpk (seedpk ) の計算により,Pi,1 ∈ W(V ) AfV,V(対称行列), Pi,2 ∈ W(V ) AfV,M (i = 1, . . . , m) を得る。 3. Expandsk (seedsk ) の計算により,S0 ∈ AfV,M を得る。 4. Pi,3 = −S⊤ ⊤ ⊤ 0 Pi,1 S0 + Pi,2 S0 + S0 Pi,2 ∈ Fq m×m (i = 1, . . . , m) を計算する。 公開鍵は pk = (seedpk , {Pi,3 }i=1,...,m ),秘密鍵は sk = seedsk である。次に,署名生成である。メッセージを M ∈ {0, 1}∗ とする。 137 署名生成 1. pk から (seedpk , {Pi,3 }i=1,...,m ) を取り出す。 2. sk から seedsk を取り出す。 3. Expandpk (seedpk ) の計算により,Pi,1 ∈ W(V ) AfV,V(対称行列), Pi,2 ∈ W (V ) AfV,M (i = 1, . . . , m) を得る。 4. Expandsk (seedsk ) の計算により,S0 ∈ AfV,M を得る。 5. Gi = −Pi,1 S0 + Pi,2 ∈ Fqv×m (i = 1, . . . , m) を計算する。 ! Iv 0v×m 6. U = ∈ Fqn×n とおく。 −S⊤ 0 I m 7. y = (y1 , . . . , yv ) ∈ Fqv をランダムに選ぶ。 8. L = (2 (y G1 )⊤ , . . . , 2 (y Gm )⊤ ) ∈ Fqm×m を計算する。(縦ベクトルを m 列並べて行列を作る。) 9. u = (y P1,1 y⊤ , . . . , y Pm,1 y⊤ ) ∈ Fqm を計算する。 10. salt ∈ {0, 1}λ をランダムに選び,t = H(M k salt) を計算する。 11. 連立線形方程式 x L = t − u の解を計算し,解 x = (yv+1 , . . . , yn ) ∈ Fqm を得る。もし解がなければ,Step 10 に戻る。 12. s = (y1 , . . . , yn ) U を計算する。 σ = (salt, s) が署名となる。最後に検証である。 検証 1. pk から (seedpk , {Pi,3 }i=1,...,m ) を取り出す。 2. σ から (salt, s) を取り出す。 3. Expandpk (seedpk ) の計算により,Pi,1 ∈ W(V ) AfV,V(対称行列), Pi,2 ∈ W(V ) AfV,M (i = 1, . . . , m) を得る。 ! Pi,1 Pi,2 4. Fi = (i = 1, . . . , m) とおく。 P⊤ i,2 Pi,3 5. t = H(M k salt) を計算する。 6. t′ = (s F1 s⊤ , . . . , s Fm s⊤ ) を計算する。 7. t = t′ ならば ‘受理’ を,それ以外は ‘棄却’ を返す。 5.3.2.2 QR-UOV のパラメータ選択 QR-UOV の設計に必要なパラメータは,λ, q, v, m, ℓ である。NIST PQC 標準化プロジェクト追加署名第 1 ラウン ドに提出されたドキュメント [25] では,以下のように QR-UOV のパラメータ見積もりが公開されている。 138 表 5.4: QR-UOV のパラメータと鍵および署名のサイズ (λ, q, v, m, ℓ) 安全性レベル 公開鍵サイズ 秘密鍵サイズ 署名サイズ (128, 7, 740, 100, 10) レベル 1 20, 657 Bytes 32 Bytes 331 Bytes (128, 31, 165, 60, 3) レベル 1 23, 657 Bytes 32 Bytes 157 Bytes (128, 31, 600, 70, 10) レベル 1 12, 282 Bytes 32 Bytes 435 Bytes (128, 127, 156, 54, 3) レベル 1 24, 271 Bytes 32 Bytes 200 Bytes (192, 7, 1100, 140, 10) レベル 3 55, 173 Bytes 48 Bytes 489 Bytes (192, 31, 246, 87, 3) レベル 3 71, 007 Bytes 48 Bytes 232 Bytes (192, 31, 890, 100, 10) レベル 3 34, 423 Bytes 48 Bytes 643 Bytes (192, 127, 228, 78, 3) レベル 3 71, 915 Bytes 48 Bytes 292 Bytes (256, 7, 1490, 190, 10) レベル 5 135, 439 Bytes 64 Bytes 662 Bytes (256, 31, 324, 114, 3) レベル 5 158, 453 Bytes 64 Bytes 306 Bytes (256, 31, 1120, 120, 10) レベル 5 58, 564 Bytes 64 Bytes 807 Bytes (256, 127, 306, 105, 3) レベル 5 173, 708 Bytes 64 Bytes 392 Bytes 5.3.3 署名方式 MAYO 5.3.3.1 MAYO の概要 MAYO [8, 9] は UOV の変種である。公開鍵を作る基となる変数の個数が少ない多変数多項式系 P (x) を用意して おき,検証者は,検証時(あるいはそれ以前)に P (x) から MAYO の公開鍵 F (x) を構成する。そのため,MAYO の公開鍵は,F (x) の係数集合ではなく,P (x) の係数集合となる。これにより,MAYO は,オリジナルの UOV に比 べて公開鍵長を小さくすることができる。 m, v, o, k を正の整数とし,o < m, n = v + o とする。2 次斉次多変数多項式写像 P (x) = (p1 (x), . . . , pm (x)) : Fqn → Fqm に対し,ある o 次元部分空間 O (⊂ Fqn ) があり, P (o) = 0m (o ∈ O) を満たすとする。5.2.4.1 節の言葉を使えば,O は oil 空間である。もし o ≥ m であれば,P (x) は UOV の公開鍵と して使用できるが,o < m なのでそれはできない。P ⋆ (x1 , . . . , xk ) : Fqkn → Fqm を次のようにおく。 X k X P ⋆ (x1 , . . . , xk ) = P (xi ) Ei,i + P ′ (xi , xj ) Ei,j (5.10) i=1 1≤i