Files
opaque-lattice/papers_txt/cryptrec-pqc-2024.txt
2026-01-06 12:49:26 -07:00

10456 lines
833 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 203Module-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 StandardML-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 AroraGe アルゴリズム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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-RegevLPR公開鍵暗号方式 . . . . . . . . . . . . . . . . . 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 の考え方が出現した文脈は RSAECDSA の代替となる公開鍵暗号の開発であり [29]PQC 候補とされるほ
とんどの暗号技術は古典コンピュータでの実装を前提として提案されている。この,古典コンピュータによる実装可能
*1 本報告書の中では公開鍵暗号を Public-Key Cryptography の意味で用い,その下位分類としての Public-Key Encryption を公開鍵暗号
方式と表記する。
*2 基本的な暗号方式の定義と性質に関しては,例えば教科書 [149, 1.3 節] などを参照。
*3 これらの方式には多くの解説記事があるがDHDSA に関しては例えば [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-CCA2EUF-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 程度の規模を持つ量子デバイスの概念があるが,特に暗号に関係
する概念として CRQCCryptographically 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 物理量子 bit2030 年までに 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
が解かれたという報告は無く,現代暗号に対する量子コンピュータの直接的な脅威は現時点では生じていないと考えら
れる。
一方で,各機関が発表しているロードマップが予定通りに達成されると仮定すると,今後数十年で RSAECDSA を
はじめとする素因数分解問題や離散対数問題の計算困難性に基づいた暗号の解読を可能とする規模の量子計算を実行可
能な量子コンピュータが開発される。暗号方式の提案から社会的な普及までは 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] において 20483072bits RSA と224256bits ECDSAEdDSA を
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 が RSADHECDH に影響を及ぼす量子コ
ンピュータがあと 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 量子コンピュータによる素因数分解・離散対数問題計算の現状
将来的に RSAECDSA が危殆化すると考える専門家が多数存在する一方で,量子コンピュータ実機を用いた素因
数分解問題及び離散対数計算の実験は小規模なものに留まっている。本節では,量子コンピュータを用いた Shor のア
ルゴリズムに関する実験,その他の素因数分解アルゴリズムに関する実験,および関連する理論的な成果についてまと
める。
なお,量子回路型計算および量子アニーリングの古典計算機によるシミュレーションを用いた素因数分解の実験報告
が多く存在する [136, 172] が,本報告書では省略し量子的な現象を用いた計算機による報告のみを取り上げる。
Shor のアルゴリズムの実機実験 量子回路型コンピュータ実機を用いた実験はCRYPTREC 外部調査報告書「Shor
のアルゴリズム実装動向調査」[158] に挙げられているもの及びその後の [128, 126, 135] を含めて 152135 の素因
数分解実験および離散対数問題 2z ≡ 1mod 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]143291311 を分解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 に関する研究成果は暗号の国際会議で主に発表されている。特に CryptoEurocryptAsiacrypt 等の
暗号全般を扱う会議で取り扱われることも多いが,その他 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 方式のう
BIKEClassic McElieceHQC の 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
(システム移行期間)と ZCRQC 開発までの期間)の大小関係によりシステム移行の準備期間を設定する必要がある
としている。一方で,暗号化データを保存し,将来的にコンピュータの性能が上がってから解読するハーベスト攻撃
2.2.2 節も参照を想定するとCRQC 開発までの年数によらず,現在の暗号利用にはリスクがあるとも考えられてい
る(例えば [88, Sec. 1] を参照。
以上の背景のもと2022 年 5 月公表された国家安全保障覚書 NSM-10[92] では 2035
年を目処に暗号システムで使用する暗号を PQC に移行することを目標としている。同様に2022 年 9 月に発表され
た商用国家安全保障アルゴリズムのリスト 2.0[6] では 2035 年までにシステムに耐量子計算機性をもたせることを目標
としたタイムラインを掲載している。
現在使われている暗号から PQC への移行を推進するためNIST 内の NCCoENational 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.PKEAigis-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. 166194.
[10] M. Ajtai, Cynthia Dwork. A Public-Key Cryptosystem with Worst-Case/Average-Case Equivalence.
STOC. ACM, 1997, pp. 284293.
[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. 4463.
[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. 121.
[19] B. Apolloni, N. Cesa-Bianchi, D. De Falco. A numerical implementation of “quantum annealing”. Pro-
ceedings of the Ascona-Locarno conference. 1988, pp. 97111.
[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. 5865.
[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. 361379.
[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. 627628.
[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. 163169.
[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. 361385.
[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. Shors 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. 423447.
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 Worlds 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. 592613.
[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. 3950.
[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. 827833.
[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 Regevs Factoring Algorithm to Compute Discrete Logarithms. PQCrypto
(2). Vol. 14772. Lecture Notes in Computer Science. Springer, 2024, pp. 211242.
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. 505510.
[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-ISACs 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. 212219.
[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. 345347.
18
[67] Intels 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. 193206.
[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. 7194.
[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. 515534.
[78] Linwen. Quantum Leap: Chinas 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. 419453.
[81] R. J. McEliece. A Public-Key Cryptosystem Based On Algebraic Coding Theory. Deep Space Network
Progress Report. Vol. 44 (1978), pp. 114116.
[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 Shors 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: NISTs 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. 5660.
[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. 117131.
[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. 229234.
[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] Quantinuums 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. 107140.
[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. 120126.
[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. 124134.
[123] P. W. Shor. Fault-Tolerant Quantum Computation. FOCS. IEEE Computer Society, 1996, pp. 5665.
[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. 14841509.
[125] V. V. Sivak et al. Real-time quantum error correction beyond break-even. Nature. Vol. 616, Num. 7955
(2023), pp. 5055.
[126] U. Skosana, M. Tame. Demonstration of Shors 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 IBMs 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. 54525455.
[133] L. M. K. Vandersypen, M. Steffen, G. Breyta, C. S. Yannoni, M. H. Sherwood, I. L. Chuang. Experimental
realization of Shors quantum factoring algorithm using nuclear magnetic resonance. Nature. Vol. 414,
Num. 6866 (2001), pp. 883887.
[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 Shors 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. Grovers 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. 329336.
[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. 278286.
[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. 4572. 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. 1323. 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. 290296. https://cir.nii.ac.jp/crid/1520011030559130112.
[172] 山口 純平, 伊豆 哲也, 國廣 昇. 素因数分解問題に対する Shor アルゴリズムの実装と量子計算機シミュレータ
を用いた実験. 暗号と情報セキュリティシンポジウム (SCIS 2023). 2023-01, 4A23.
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. 2629.
[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. 714720.
25
第2章
PQC の活用方法
将来,一定以上の能力を持つ量子コンピュータが登場した場合には,既存の公開鍵暗号が解読される(破られる)と
いう脅威が指摘されている [1, 20]。本章では,現在,標準的に用いられている公開鍵暗号の解読が可能となる水準の量
子コンピュータを Cryptographically Relevant Quantum ComputerCRQCと記載し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. 物理アクセス 13 のアプローチが採用できない場合にも採用可能である。暗号技術の観点からは,暗号技
制御 術が発展する以前の思想で再設計することになる。実装コスト及び運用コストが非常に高く
なることが予想される。
ステムの可用性が低下するおそれもある。また,法令やポリシー等で削除・匿名化が許容されていない場合には,実施
できないおそれもある。
これらの事情より,耐量子計算機性を持たせるための最も汎用的かつ根本的な対応は,既存の公開鍵暗号方式を耐量
子計算機性を持つ公開鍵暗号方式に置き換えることであると考えられる。
ただし,情報システムで利用されている公開鍵暗号方式を,耐量子計算機性を持つ公開鍵暗号方式に置き換えること
は容易ではない。それは単に実装を切り替えただけでは完了せず,公開鍵暗号がどのように利用されているのかについ
て認識した上で,運用やデータ管理に係る様々な処理も併せて実施することが要求される(以降,暗号方式の置き換え
に加えて,これらの処理を行うことを「暗号移行」と呼ぶ)。そこで本章では,公開鍵暗号のいくつかの利用形態を念
頭に,耐量子計算機性を持つ公開鍵暗号方式への暗号移行について紹介する。まず,現行の公開鍵暗号の利用形態を紹
介した上で,各利用形態における CRQC による脅威及びその対策について,システム運用やデータ管理処理の観点を
踏まえて概説する。また,脅威を評価する上で重要となる,保護対象となるデータの保護期間について記載した上で,
利用形態や保護対象を踏まえた対応についても概説する。
2.1 公開鍵暗号の利用形態
既存の公開鍵暗号方式を,耐量子計算機性を持つ方式へと暗号移行するに際しては,その公開鍵暗号方式の利用形態
ごとに,暗号移行のプロセスが大きく異なることが予想される。そこで,本節で公開鍵暗号の利用形態について概説し
た上で,次節以降で各利用形態における暗号移行のプロセスについて述べる。公開鍵暗号にはいくつかの利用形態が存
在するが,本章では「電子政府における調達のために参照すべき暗号のリスト」[24] 以下「CRYPTREC 暗号リス
ト」と呼ぶ。
)に合わせて,公開鍵暗号を署名・守秘・鍵共有に分類し,以降その分類に沿って概説する。また,本節で
28
は,署名用途/守秘用途/鍵共有用途の耐量子計算機性を持つ公開鍵暗号方式を,それぞれ署名用途/守秘用途/鍵共
有用途の PQC と表記する。
2.1.1 署名用途での公開鍵暗号の利用
本節では,署名を付与する行為を「デジタル署名処理」と呼び,付与される署名データを「デジタル署名」と呼ぶ。
デジタル署名が付与されたコンテンツを改竄すると,その改竄を検知することができる。このため,署名用途の公開鍵
暗号を用い,コンテンツにデジタル署名を付与することで,コンテンツの改竄によりもたらされる被害を防止すること
,動画等の情報であることもあれば,暗号鍵の鍵情報*2
ができる。コンテンツは,人が読む文章(ドキュメントデータ)
であることもある。また,デジタル署名処理に用いられる秘密鍵が,対応する公開鍵を含む電子証明書によって所定の
人物/組織/装置等と紐づいている場合では,コンテンツの生成人物/組織/装置を確認(認証)することもできる。
このように署名用途の公開鍵暗号は,コンテンツの改竄防止,署名者の認証,データ元の認証等に利用される。
具体的な署名用途の公開鍵暗号の利用例としてはTLS 通信 [18] におけるクライアント認証(利用者の認証)やサー
バ認証(サービス提供者の認証)
OS のコードサインの確認(バイナリデータが改竄されていないことの確認)等に広
く利用されている。また公開鍵の配布手段の一種である公開鍵暗号基盤PKIの構成においても公開鍵暗号は広
く利用されており [4],コンテンツに対して署名が付与された時刻を確認可能なタイムスタンプ署名方式 [23] 等も存在
する。CRYPTREC 暗号リストにはDSAECDSAEdDSARSA-PSS及び RSASSA-PKCS1-v1 5 が署名用途
の公開鍵暗号として記載されている。
2.1.2 守秘用途での公開鍵暗号の利用
守秘用途の公開鍵暗号によって暗号化された暗号文は,対応する秘密鍵なしに復号することは困難となる。このた
め,守秘用途の公開鍵暗号は,意図した相手だけにデータを提示するために利用することができる。暗号化処理による
保護は,ドキュメントデータ,動画等の情報に対して行われることもあれば,暗号鍵の鍵情報*3 に対して行われること
もある。保護が鍵情報に対して行われるユースケースとしては,鍵情報を通信当事者間で共有する場合や,暗号鍵所有
者がその鍵情報をバックアップする場合等が該当する。
守秘用途及び鍵共有用途の公開鍵暗号の一般的な実装形態として,公開鍵暗号方式により別の暗号鍵を保護し,その
暗号鍵を利用した共通鍵暗号方式によりコンテンツの秘匿性や完全性を保護するというアプローチが存在する。このア
プローチでは,共通鍵暗号方式の暗号鍵(以下,単に共通鍵と呼ぶ)は送信者により作成され,配送される。したがっ
て,ある時点で共通鍵が漏洩した場合には,過去にその秘密鍵を持つ利用者に対して配送された共通鍵が漏洩するお
それがある。また,受信者は共通鍵の生成に関わることがないため,送信者が別の通信相手と共通鍵を使い回してい
ても察知することができない。このため,昨今の TLS 通信等における共通鍵の共有においては,守秘用途の公開鍵暗
号でなく,次節で概説する鍵共有用途での公開鍵暗号を一時的な鍵と組み合わせて利用することが望ましいと考えら
れている [5, 19]。なお「TLS 暗号設定ガイドライン」[5] においても鍵交換鍵共有・守秘においてはPerfect
Forward SecurityPFS*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 の値が大きけれ
何らかの対応が求められる。なお本章において特記しない限り以降ではXYZ は図 2.1 における XYZ
を示す。
もっとも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. 14841509.
[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. 10261030.
[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 √
ez /(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 = B1 は双対格子 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 mn は体積 vol (Λq (X)) を 割る こと が分 かる。(ただし,ほとんどの行列 X に対して 写像 f は

全射で,その時 vol Λ⊥
q (X) = q n と vol (Λq (X)) = q mn が成り立つ。) 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 attackPrimal 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 + · · · + fn1 xn1 (fi ∈ Zq ) と表せ,その係数ベクトル f =
(f0 , f1 , . . . , fn1 ) ∈ 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 問題という。
Pn1
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 行ベクトルを多項式 xi1 h ∈ Rq を次数の昇順に並べた係数
ベクトルとする。) このとき    
1 h
 x    xh
   
H ..=  ∈ Rqn
..
 .   .
xn1 xn1 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..
 .   
.   .   .
xn1 xn1 h xn1 xn1
となるので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
i1
hbi , bj i
Schmidt ベクトル bi は次のように再帰的に定まるb1 = b1 , bi = bi µi,j bj , µi,j = 。また,各
j=1
kbj k2
2 ≤ ≤ m に対し Rm から R-ベクトル空間 hb1 , b2 , . . . , b1 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
δkbk1 k ≤ kπk1 (bk )k (2 ≤ ∀k ≤ m) を満たす。入力基底に対してLovász 条件が成り立たないとき LLL 基底簡
2 2
約アルゴリズム内で隣り合う基底ベクトル bk1 と 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 に対し kbj 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 簡約基
底とし,{b1 , . . . , bm } をその Gram-Schmidt ベクトルとする。Gaussian Heuristic と Geometric Series Assumption
GSAの仮定の下で目的ベクトル v の m β の位置における射影ベクトル πmβ (v) ∈ πmβ (L) の長さが
  2(β1)
1
β
kπmβ (v)k < kbmβ k ≈ δβ2βm1 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
ライブラリによる β = 155158 の篩アルゴリズムを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 年 610 月に報告されている。n は LWE の
秘密ベクトル長で,α はノイズの大きさに関するパラメータで,組 (n, α) のバランスで LWE インスタンスの難しさが
大きく変化する。
)例えば,(n, α) = (50, 0.025) と (40, 0.040) の 2 つの LWE インスタンスに対して,次のスペックを
持つ計算システムでそれぞれ約 592 時間と約 683 時間で求解されている [158]
• CPUAMD EPYC 7002 Series 128@2.6GHz
• RAM1.5TBytes
• GPU8 NVIDIA GeForce RTX 3090
• VRAM8 24GB936.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 らによる公開鍵暗号方式
LindnerPeikert らによる公開鍵暗号方式 [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 を求め,各要素毎に mi を |vi | < であれば 0それ以外であれば 1 として m = (m1 , . . . , ml ) を
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 + · · · + an1 xn1 → (a0 , a1 , . . . , an1 ) によって,環 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 2128/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 203Module-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 + · · · + fn1 X n1 と表せ,その
係数ベクトル (f0 , f1 , . . . , fn1 ) を対応させることで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 , . . . , ζ n1 } が 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 Regevs 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 n1 ∈ 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 n1 の 偶 数 と 奇 数 の 次 数 に 関 す る そ れ ぞ れ の 係 数 ベ ク ト ル
(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 写像の逆写像 NTT1 は行列 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 = NTT1 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<k
3. s = (s[i])0≤i<k ∈ Rqk :各 s[i] ∈ Rq のすべて Zq 係数は中心二項分布 CBDη からサンプルする
4. e = (e[i])0≤i<k ∈ Rqk :各 e[i] ∈ Rq のすべての Zq 係数は CBDη からサンプルする
5. b
s = (NTT(s[i]))0≤i<k ∈ Tqk :各 s[i] を NTT 変換
6. b
e = (NTT(e[i]))0≤i<k ∈ Tqk :前のステップ同様,各 e[i] を NTT 変換
P 
7. b
t=A b ◦b s+b e=
k1 b
A[i, j] ◦ b
s [j] + b
e [i] ∈ Tqk NTT 空間上で LWE 関係式を生成
j=0
  0≤i<k
8. ekPKE = b
t, ρ , dkPKE = b b は ρ から復元可能であることに注意)
s公開鍵行列 A
9. (ekPKE , dkPKE ) を出力
b j] は,入力する乱数から擬似ランダムな Tq の元を出力
ステップ 2 においてNTT 表現の公開鍵行列の各成分 A[i,
b j] ← SampleNTT(ρkikj) と
する SampleNTT 関数FIPS 203 の Algorithm 7を用いて生成する具体的にはA[i,
生成)。ステップ 3, 4 において s[i]e[i] を SamplePolyCBD 関数FIPS 203 の Algorithm 8を用いて生成する。こ
の関数の中では Rq の元の各係数をZq 上の二項分布を出力する関数 CBDη の出力として設定する。このとき,関数
はステップ 1 で生成した σ を乱数シードとし,以下の順序で実行される。
54
(i) (x1 , . . . , xη , y1 , . . . , yη ) ∈ {0, 1}2η を一様ランダムにサンプルする
(ii) i=1 (xi yi ) mod q ∈ Zq を出力
 
ステップ 8 においてFIPS 203 では b t, ρ と b
s をそれぞれ符号化関数 ByteEncodeFIPS 203 の Algorithm 5
符号化したものを暗号鍵 ekPKE と復号鍵 dkPKE とする。
b が復元可能なので,暗号鍵 ekPKE は NTT 表現の
鍵生成アルゴリズムにおいて,ρ から NTT 表現の公開鍵行列 A
     
b b
LWE インスタンスの組 A, t と等価なデータとなる。特にt := NTT1 b b ∈ (Rq )k×k
t ∈ Rqk , A := NTT1 A
とおくとRqk 上の LWE 関係式 t = As + e が成り立つ。一方,復号鍵 dkPKE は NTT 表現の LWE の秘密 b
s である
ので,暗号鍵から復号鍵を見つけるのは Tqk ≃ Rqk 上の探索 LWE 問題である。特に,適切な暗号パラメータ(後述の
3.3.1.3 節を参照)を利用した場合,その LWE 問題を解くのは計算量的に非常に困難である。また,鍵生成アルゴリズ
ムにおいてNTT 空間上で公開鍵行列 A b を直接生成すると共に,ステップ 7 で NTT 空間上で LWE 関係式を生成す
ることで,計算の高速化を図る。
K-PKE 暗号化 暗号化アルゴリズムFIPS 203 の Algorithm 14, K-PKE.Encryptでは暗号化鍵 ekPKE ,平文 m と
乱数 r を入力として,次のように暗号文 c を出力する。
 
• 入力:暗号化鍵 ekPKE = b
t, ρ ,平文 m と乱数 r
• 出力:暗号文 c
b ∈ (Tq )k×k を復元
1. ρ から NTT 表現の公開鍵行列 A
2. y = (y[i])0≤i<k ∈ Rqk :各 y[i] ∈ Rq のすべての Zq 係数は中心二項分布 CBDη からサンプルする
3. e1 = (e1 [i])0≤i<k ∈ Rqk :各 e[i] ∈ Rq のすべての Zq 係数は CBDη からサンプルする
4. e2 ∈ Rq :すべての Zq 係数は CBDη からサンプルする
b = (NTT (y[i]))0≤i<k ∈ Tqk
5. y
  P 
6. u = NTT1 A b ◦ y
b + e 1 = A y + e1 = k1
A[j, i]y[j] + e1 [i] ∈ Rqk
j=0
0≤i<k
b = (A[i, j])
ただしA = NTT1 (A) 0≤i,j<k ∈ (Rq )
k×k
とする)
7. µ = Decompress
 (ByteDecode(m))
 ∈ Rq :平文 m をビット列化した後に Rq の元に変換
1 b
8. v = NTT t ◦yb + e 2 + µ = t y + e 2 + µ ∈ Rq
9. c = (u, v) ∈ Rqk × Rq を出力
ステップ 2, 3, 4 においてr をシードとした擬似乱数を引数とした SamplePolyCBD 関数で,すべての Zq 係数が十分
小さい多項式を生成する。ステップ 7 では,バイト列で表現された平文 m を ByteDecode 関数FIPS 203, Algorithm
lq k
6でビット列 (m0 , m1 , . . . , mn1 ) に変換した後に,各ビット mi ∈ {0, 1} を Decompress 関数で µi := · mi ∈ Zq
2
に変換する。また,各 µi を係数とする多項式を µ = µ0 + µ1 x + · · · + µn1 xn1 ∈ Rq とする。ステップ 9 において,
FIPS 203 では u と v はそれぞれ Compress 関数で圧縮した後ByteEncode 関数で符号化する。

暗号文は c = (u, v) = A y + e1 , t y + e2 + µ ∈ Rqk × Rq の形でLWE に基づく Lindner-Peikert による暗号
方式と同様Rqk 上の LWE 問題が計算困難であれば,暗号文から µ(つまり,平文 mの情報が洩れない。また
テップ 6 と 8 においてNTT 空間上で A y と t y を計算することで,計算の高速化を図る。
K-PKE 復号 復号アルゴリズムFIPS 203 の Algorithm 15, K-PKE.Decryptでは復号鍵 dkPKE と暗号文 c を入力
とし,次のように復号文 m を出力する。
• 入力:復号鍵 dkPKE = b
s と暗号文 c = (u, v)
• 出力:復号文 m

1. w = v NTT1 b
s ◦ NTT(u) = v s u ∈ Rq
2. m = ByteEncode (Compress(w)) を出力
55
 多項式表現の Rq の元 w = w0 + w1 x + · · · + wn1 x に対して,各係数 wi ∈ Zq を Compress
n1
ステップ 2 において,
2
関数で zi := · wi mod 2 ∈ {0, 1} に変換する。また,ビット列 (z0 , z1 , . . . , zn1 ) を ByteEncode 関数FIPS 203,
q
Algorithm 5でバイト列に変換する。特にByteEncode 関数と ByteDecode 関数は互いの逆関数である。

復号アルゴリズムにおいて,暗号文 c = (u, v) = A y + e1 , t y + e2 + µ ∈ Rqk × Rq に対してRqk 上の LWE
関係式 t = As + e から,
w = v s u = t y + e2 + µ (As) y s e1

= t y + e 2 + µ t + e y s e1 = µ + e 2 e y s e1 ∈ Rq
| {z }
すべての Zq 係数が十分小さい
が成り立つ。ここでs, e, e1 , y ∈ Rqk の各成分 s[i], e[i], e1 [i], y[i] ∈ Rq と µ ∈ Rq のすべての Zq 係数は十分小さいこ
とに注意する。よってCompress 関数による各 Zq 係数におけるノイズ補正により
Compress(w) = Compress(µ) = (m0 , m1 , . . . , mn1 ) ∈ {0, 1}n1
が成り立つ。最後にByteEncode 関数により,平文のビット列 (m0 , m1 , . . . , mn1 ) をバイト列に変換することで,元
の平文 m に復号できる(つまり,復号文 m は平文 m に一致する)
。また,ステップ 1 においてNTT 空間上で s u
を計算することで,計算の高速化を図る。
■ML-KEM の処理概要 K-PKE 方式を用いてML-KEM を以下のように構成する。
ML-KEM 鍵生成 鍵生成アルゴリズムFIPS 203, Algorithm 16ではK-PKE 鍵生成アルゴリズムを用いて2 つ
の乱数 d, z から鍵カプセル化鍵 ek とデカプセル化鍵 dk を次のように出力する。
• 入力2 つの乱数 d, z
• 出力:鍵カプセル化鍵 ek とデカプセル化鍵 dk
1. K-PKE 鍵生成アルゴリズムで,乱数 d から (ekPKE , dkPKE ) を生成
2. ek = ekPKE
3. dk = (dkPKE , ek, H(ek), z)H はハッシュ関数
4. (ek, dk) を出力
ML-KEM 鍵カプセル化 鍵カプセル化アルゴリズムFIPS 203, Algorithm 17ではK-PKE 暗号化アルゴリズム
を用いて,鍵カプセル化鍵 ek と乱数 m から共有の秘密鍵 K と暗号文 c を次のように出力する。
• 入力:鍵カプセル化鍵 ek と乱数 m
• 出力:共有の秘密鍵 K と暗号文 c
1. (K, r) = G (mkH(ek))G はハッシュ関数
2. K-PKE 暗号化アルゴリズムで,(ek, m, r) から暗号文 c を生成
3. (K, c) を出力
ML-KEM デカプセル化 デカプセル化アルゴリズム (FIPS 203, Algorithm 18) ではK-PKE 復号アルゴリズムを用
いて,デカプセル化 dk と暗号文 c から,共有の秘密鍵 K を次のように出力する。またc が改竄されていないことを
保証するためにK-PKE 暗号化アルゴリズムで復号文から暗号文 c を生成しc と c が一致するか検証する。
• 入力:デカプセル化 dk = (dkPKE , ek, H(ek), z) と暗号文 c
• 出力:共有の秘密鍵 K
1. K-PKE 復号アルゴリズムで,復号鍵 dkPKE と暗号文 c から,復号文 m を生成
2. (K , r ) = G (m kH(ek))
56
3. K̄ = J(zkc)J はハッシュ関数
4. K-PKE 暗号化アルゴリズムで,(ek, m , r ) から暗号文 c を生成
5. c 6= c の場合はK = K̄ とおく
6. K を出力
3.3.1.3 暗号パラメータ
ML-KEM における主な暗号パラメータと対応する鍵や暗号文のサイズと安全性レベルは以下である。具体的に
LWE の次元 n = 256 と剰余素数 q = 3329 は ML-KEM-512, -768, -1024 の 3 種類の暗号パラメータで共通で
あるが,主に 3 種類の階数パラメータ k ∈ {2, 3, 4} により安全性レベルが異なる。ML-KEM のパラメータ名は,
n × k ∈ {512, 768, 1024} の値により名づけられている。)
表 3.2: ML-KEM の暗号パラメータ
暗号パラメータ サイズ単位Bytes 安全性
n q k カプセル化鍵 デカプセル化鍵 暗号文 共有の秘密鍵 レベル
ML-KEM-512 256 3329 2 800 1,632 768 32 レベル 1
ML-KEM-768 256 3329 3 1,184 2,400 1,088 32 レベル 3
ML-KEM-1024 256 3329 4 1,568 3,168 1,568 32 レベル 5
3.3.1.4 CRYSTALS-Kyber との違い
• Kyber の第 3 ラウンド提出版では共有する秘密鍵は長さが可変な値として扱われていた。一方ML-KEM で
は,その長さは 256 ビットに固定している。また,その鍵は直接共通鍵として利用できる。
• ML-KEM.Encaps と ML-KEM.Decaps のアルゴリズムでは,第 3 ラウンド仕様とは異なる藤崎-岡本変換
を利用する。具体的にはML-KEM.Encaps は共有する秘密の導出において暗号文のハッシュ値を含まず,
ML-KEM.Decaps ではその変更に合わせている。
• 第 3 ラウンドの仕様ではML-KEM.Ecaps アルゴリズム内の初期乱数 m は使う前にハッシュ化される。具体
的には,アルゴリズム 16 の 1 と 2 行目の間にm ← H(m) のステップがあったがML-KEM ではその処理は
不必要で行わない。
• ML-KEM では,第 3 ラウンドの仕様にはなかった入力データの検証ステップを含む。例えばML-KEM.Encaps
では,カプセル化キーを含むバイト配列が,モジュラー還元なしで q を法とする整数配列に正しくデコードされ
ることを必要とする。
3.3.2 FIPS 204: Module-Lattice-Based Digital Signature StandardML-DSA
ML-DSA [119] は CRYSTALS-Dilithium に基づく署名方式である。ML-KEM と同じように2 のべき数 n = 256
に対し R := Z[X]/(X n + 1) を基本環とし,素数 q = 8380417 に対し Rq := R/qR = Zq [X]/(X n + 1) をその剰余環
とする。階数パラメータ k ∈ {2, 3, 4} に対しML-DSA の安全性は Zq 加群 Rqk ≃ (Zn k
q ) 上の Module-LWE 問題の
計算困難性に依存する。またML-KEM と同様にRq における乗算を高速化するためにNTT を利用する。ここで
は,主に ML-DSA の構成と処理概要について説明する。
57
3.3.2.1 ML-DSA における数論変換
ML-DSA では2 のべき数 n = 28 = 256 と素数 q = 223 213 +1 = 8380417 で定まる剰余環 Rq = Zq [X]/(X n +1)
を用いるML-DSA の暗号パラメータについては,後述の 3.3.2.3 節を参照)
。これらの暗号パラメータの組 (n, q) にお
いてZ×
q は位数 q 1 = 2 · 1023 の巡回群である。ML-DSA ではZq における 1 の原始 512 乗根 ζ := 1753 mod q
13
をとる。このとき,多項式環 Zq [X] においてX n + 1 は次のように n 個の 1 次式の積に分解できる。
Y
n1 Y
 n1 
Xn + 1 = X ζ 2i+1 = X ζ 2BitRev8 (i)+1 ∈ Zq [X]
i=0 i=0
ただしBitRev8 (i) は符号なし 8 ビット整数 i のビット逆順整数としML-DSA ではこの順序を利用する。具体的に
は,各 i = 0, 1, . . . , n 1 に対し ζi := ζ 2BitRev8 (i)+1 とおき,環としての同型
M
n1 M
n1
NTT : Rq ≃ Zq [X]/(X ζi ) ≃ Zq =: Tq , f 7→ fb := (f (ζ0 ), f (ζ1 ), . . . , f (ζn1 ))
i=0 i=0
を用いてRq における乗算を効率的に行う。
3.3.2.2 ML-DSA の構成と処理概要
加群 Rqk ≃ (Zn k
q ) 上の LWE 問題に基づく ML-DSA は以下に示すアルゴリズム群で構成される。ただしML-DSA
の処理概要とその原理が分かるように,簡略化した形で各アルゴリズムの処理を説明する。
■ML-DSA 鍵生成 鍵生成アルゴリズムFIPS 204, Algorithm 6では乱数 ξ を入力として,公開鍵 pk と秘密鍵
sk を次のように出力する(ただし,ℓ は次元パラメータとする)。
• 入力:乱数 ξ
• 出力:公開鍵 pk と秘密鍵 sk
1. (ρ, ρ , K) = H(ξ):ハッシュ関数 H で乱数 ξ から 3 つのデータの組 (ρ, ρ , K) を一意的に生成
b = ExpandA(ρ) ∈ (Tq )k× :擬似ランダムな行列 A ∈ (Rq )k× を生成し,その NTT 表現を A
2. A b を計算
3. (s1 , s2 ) = ExpandS(ρ ) ∈ Sη × Sηk Sη はすべての係数が [−η, η] 内の R の元全体の集合(例:η ∈ {2, 4}
   
4. t = NTT1 A b ◦ NTT(s1 ) + s2 ∈ Rk = As1 + s2
q
5. (t1 , t0 ) = Power2Round(t) ∈ Rqk × Rqk t ∈ Rqk を上位と下位ビットに分割
6. pk = (ρ, t1 ) とおき,そのハッシュ値 tr = H(pk) を計算
7. pk と sk = (ρ, K, tr, s1 , s2 , t0 ) を出力
ステップ 2 においてExpandA 関数FIPS 204, Algorithm 32乱数シード ρ から擬似ランダムな A を生成し,
b を計算する。ステップ 3 においてExpandS 関数FIPS 204, Algorithm 33棄却サンプリン
その NTT 表現 A
グを用いてある範囲 [−η, η] 内の係数をもつ R の元の組を生成する(η ∈ {2, 4}
。ステップ 5 においてPower2Round
関数FIPS 204, Algorithm 35を用いてt ∈ Rqk の各成分のすべての係数を上位と下位のビットに分割する。
鍵生成アルゴリズムにおいて,本質的に公開鍵 pk は (A, t) に対応する。公開鍵に関する付属情報をいくつか含むが
秘密鍵 sk は (s1 , s2 ) に対応する。公開鍵と秘密鍵の間にRqk 上の LWE 関係式 t = As1 + s2 が成り立つ。これより,
公開鍵から秘密鍵を見つけるのは Rqk 上の探索 LWE 問題となり,適切な暗号パラメータ(後述の 3.3.2.3 節を参照)を
利用した場合,その LWE 問題を解くのは計算量的に非常に困難である。
■ML-DSA 署名生成 署名生成アルゴリズムFIPS 204, Algorithm 7では秘密鍵 sk と平文 M を入力として,
平文に対応する署名 σ を次のように出力する。
58
• 入力:秘密鍵 sk = (ρ, K, tr, s1 , s2 , t0 ) と平文 M
• 出力:署名 σ
1. b s2 = NTT(s2 ) ∈ Tqk , b
s1 = NTT(s1 ) ∈ Tq , b t0 = NTT(t0 ) ∈ Tqk NTT 表現を計算
b = ExpandA(ρ) ∈ (Tq )k× ρ から A
2. A b を復元
3. µ = H(trkM ):秘密鍵の一部 tr と平文 M から定まるハッシュ値
4. 次を繰り返す:
ay = (y[i])i=0 ∈ Rq :各 y[i] ∈ Rq の各 Zq 係数をある小さい範囲で擬似ランダムにサンプル
 
b ◦ NTT(y) = Ay ∈ Rk NTT 変換を利用
bw = NTT1 A q
cw1 = HighBits(w) ∈ Rqk w の各成分の上位ビット
dc̃ = H (µkw1 )
ec = SampleInBall(c̃) ∈ Rq :各係数を {1, 0, 1} からサンプルする(十分小さい)
fb
c = NTT(c) ∈ Tq
gcs1 = NTT1 (b s1 ) ∈ Rq , cs2 = NTT1 (b
c ◦b c ◦b
s2 ) ∈ Rqk NTT 空間の乗算を利用
hz = y + cs1 ∈ Rq
ir0 = LowBits(w cs2 ) ∈ Rqk w cs2 の各成分の下位ビット
jz と r0 のすべての Zq 係数が十分小さい場合,次の処理を行う:
c ◦b
i. ct0 = NTT1 (b t0 ) ∈ Rqk NTT 空間の乗算を利用
ii. h = MakeHint (ct0 , w cs2 + ct0 ):長さ k の不一致真理値ベクトル
ct0 のすべての Zq 係数が十分小さく,かつ h 内の 1 の個数が十分少ないとき,ステップ 5 に進む
5. σ = (c̃, z, h) を出力
ステップ 4 (e) において,乱数 c̃ を引数とする SampleInBall 関数FIPS 204, Algorithm 29すべての Zq 係数
を {1, 0, 1} からサンプルした多項式 c ∈ Rq を生成する(ただし,係数ベクトルのハミング重みは 64 以下)。ステッ
プ 4 (j) ii においてMakeHint 関数FIPS 204, Algorithm 39HighBits(w cs2 + ct0 ) と HighBits(w cs2 ) の
Zq 係数の不一致真理値による長さ k のベクトル h を計算する。次の署名検証時で w1 を復元するために h を用いる。
署名生成アルゴリズムにおいて,ステップ 4 が主処理で,すべての Zq 係数が十分小さい z = y + cs1 ∈ Rq を見つ
けるまで y ∈ Rq を取り直す。具体的には,擬似ランダムにサンプルしたすべての Zq 係数が十分小さい y ∈ Rq から,
コミットメント w1 を生成しw1 と µ から定まるハッシュ値であるチャレンジ c̃ を求める。また,レスポンスとして,
すべての Zq 係数が十分小さい z = y + cs1 を生成する。チャレンジ c̃レスポンス zコミットメント w1 のヒント h
の 3 つの組 σ = (c̃, z, h) を平文に対応する署名とする。
■ML-DSA 署名検証 署名検証アルゴリズムFIPS 204, Algorithm 8では公開鍵 pk = (ρ, t1 ) と署名 σ = (c̃, z, h)
付きの平文 M を入力として,署名検証の結果を次のように真偽値で出力する。
• 入力:公開鍵 pk = (ρ, t1 ),署名 σ = (c̃, z, h) 付きの平文 M
• 出力:真偽値
b = ExpandA(ρ)ρ から A
1. A b を復元
2. tr = H(pk)pk のハッシュ値
3. µ = H(trkM ):秘密鍵の一部 tr と平文 M から定まるハッシュ値
4. c = SampleInBall(c̃)
 ∈ Rq :各係数を {1, 0, 1} からサンプルする 
1 b
5. w Approx= NTT A ◦ NTT(z) NTT(c ) ◦ NTT(t1 · 2d ) = Az c t1 · 2d ∈ R
q
ただしd は上位と下位ビットを分割する閾値)
6. w1 = UseHint(h, wApprox
):署名生成時のコミットメントを復元
59
7. c̃ = H(µkw1 ):µ と w1 から定まるハッシュ値
8. z のすべての Zq 係数が十分小さく,かつ c̃ = c̃ のとき署名を受理し,それ以外は棄却とする。
ステップ 6 においてUseHint 関数FIPS 204, Algorithm 40wApprox が w に十分近いとき,ヒント h を元
に署名生成時のコミットメント w1 を復元するつまりw1 = w1 )。具体的には,σ が正当な署名であればc = c
で z = y + cs1 なのでLWE 関係式 t = As1 + s2 と t1 · 2d ≈ tt1 は t の上位ビット)より
wApprox = Az ct1 · 2d = Ay + cAs1 ct1 · 2d
= w + c(t s2 ) ct1 · 2d ≈ w cs2 ≈ w
が成り立つcs2 ∈ Rqk のすべての Zq 係数は十分小さいことに注意)。このとき,ステップ 7 で c̃ = c̃ となり検証に成
功する。一方,平文 M が改竄または署名 σ が偽造された場合は,非常に高い確率で c̃ 6= c̃ となり,検証に失敗する。
3.3.2.3 暗号パラメータ
ML-DSA における主な暗号パラメータと対応する鍵や署名のサイズと安全性レベルは以下である。具体的には,
LWE の次元 n = 256 と剰余素数 q = 8380417 は ML-DSA-44, -65, -87 の 3 種類の暗号パラメータで共通であるが,
主に公開鍵行列 A ∈ (Rq )k× のサイズ (k, ) により安全性レベルが異なる特にML-DSA のパラメータ名は,(k, )
により名づけられている)。
表 3.3: ML-DSA の暗号パラメータ
暗号パラメータ サイズ(単位:バイト) 安全性
n q (k, ) 秘密鍵 公開鍵 署名 レベル
ML-DSA-44 256 8380417 (4, 4) 2,560 1,312 2,420 レベル 2
ML-DSA-65 256 8380417 (6, 5) 4,032 1,952 3,309 レベル 3
ML-DSA-87 256 8380417 (8, 7) 4,896 2,592 4,627 レベル 5
3.3.2.4 CRYSTALS-Dilithium との違い
• CRYSTALS-Dilithum の version 3.1 と第 3 ラウンド提出版との違いは,安全性を確保するために,署名アルゴ
リズム内の秘密ランダムシード ρ とメッセージ表現 µ の長さが 384 から 512bits への増大である。加えて,公
開鍵のハッシュに関する変数 tr のサイズを 384 から 256 ビットに減少させる一方,鍵生成において変数 ζ を ρ
に再ラベル付けし,そのサイズを 256 から 512bits 増大させている。
• ML-DSA と CRYSTALS-Dilithum の version 3.1 との違いについてML-DSA では tr の長さを 512bits に増
やしML-DSA-65 と ML-DSA-87 のパラメータ設定それぞれで e
c の長さを 384 と 512bits に増大している。
CRYSTALS-Dilithum version 3.1 では,デフォルトの署名アルゴリズムは署名者の秘密鍵とメッセージから疑
似ランダム生成された ρ について確定的でoptional version では ρ は 512bits のランダム列としてサンプリ
ングされる。一方ML-DSA では,ρ′ は署名者の秘密鍵,メッセージ,と Approved RBG*6 から生成された
256bits の文字列 rnd から生成される。またML-DSA 標準ではrnd が 256bits の定数文字列である optional
deteministic version を許可している。
*6 NIST SP 800-90 シリーズ [26, 151, 27] で規定されたランダムビット生成器 (Random Bit Generator: RBG) を指す。
60
3.3.3 CRYSTALS-Kyber
歴史: CRYSTALS-Kyber は NIST PQC 標準化プロジェクトへの応募方式の一つとして 2017 年 11 月に Roberto
Avanzi, Joppe Bos, Léo Ducas, Eike Kiltz, Tancréde Lepoint, Vadim Lyubashevsky, John M. Schanck, Peter
Schwabe, Gregor Seiler, Damien Stehlé の 10 名により共同で発表され [17],その後 2018 年 4 月の国際会議 Euro
S&P に Roberto Avanzi を除いた 9 名の共著により査読付き論文として発表された [34]。NIST PQC 標準化プロジェ
クトの第 3 ラウンドからは Jintai Ding が加わり 11 名での提案となった。NIST の耐量子計算機暗号標準化において
唯一暗号化・鍵交換目的での Selected Algorithm として残った方式である [144]。
NIST PQC 標準化プロジェクトのラウンドが進むごとに主に暗号化処理のパラメータに関して修正が行われ,現在
の最新版は 2021 年 8 月に公開されたバージョン 3.02[19] である。以下の記述はこの仕様書に従う。
参照 URL: 開発者による公式ページ https://pq-crystals.org/kyber/ および GitHub のリファレンスコード
https://github.com/pq-crystals/kyber を参照した。
設計原理: CRYSTALS-Kyber は Module-LWE 問題を安全性の根拠とする公開鍵暗号方式でありdual-LWE 暗号方
式をひな型*7 として x256 + 1 を定義多項式とした環上で処理を行うことで効率化している。
ベースとして IND-CPA 安全な公開鍵暗号を構成し,それを藤崎-岡本変換のデカプセル化失敗時の戻り値を調整し
た Hofheinz らの変種 [89] により IND-CCA2 安全な KEM へと変換している。
アルゴリズムの詳細: 表 3.53.63.7 に Lindner-Peikert[101] による格子ベース公開鍵暗号と CRYSTALS-Kyber の
鍵生成,暗号化,復号アルゴリズムを並置する。
パブリックパラメータは以下で与えられる。
• n, q: 環を定義するための多項式 xn + 1 の次数と法を示す。用いられる多項式環は R := Z[x]/(xn + 1), Rq :=
Zq [x]/(xn + 1) であり,常に n = 256, q = 3329 = 28 · 13 + 1 と固定されている*8 。
• k: Module 格子のランクとする。
• η1 , η2 : 鍵生成および暗号化時に生成するノイズベクトルの大きさを指定する。
• du , dv : 暗号文多項式 (u, v) ∈ Rqk × Rq を表現するためのビット数を指定する。
用いられるサブルーチンのうち主なものを以下に列挙する。
X
255 X
255
• NTT(f ) は f = fi x ∈ Rq の NTT 表現 fˆ =
i
fˆi xi ∈ Rq を求める関数で,
i=0 i=0
X
127 X
127
fˆ2i = f2j ζ (2br7 (i)+1)j および fˆ2i+1 = f2j+1 ζ (2br7 (i)+1)j
j=0 j=0
により定義される。ただしbr7 (i) は 7bits の整数を引数にとり,そのビット順序を反転した整数を出力する関
数である。ζ = 17 は Zq における原始元である。
こ の 表 記 は 複 数 の Rq の 元 を 並 べ た ベ ク ト ル s = (s0 , s1 , . . . , sk1 ) ∈ Rqk に も 有 効 で NTT(s) =
(NTT(s0 ), NTT(s1 ), . . . , NTT(sk1 )) 等と解釈する。
• Parse(XOF(ρ, i, j)): XOF (extendable output function) を用いてシードの ρ, i, j から十分な長さの擬似乱数列
を生成し,それを Parse 関数により Rq の元に変換する。
*7 仕様書では,アルゴリズムの形が Lyubashevsky-Peikert-Rosen の Ring-LWE ベース暗号 [107] に似ているとしている。
*8 NIST PQC 標準化プロジェクト 第 1 ラウンド提出時には q = 7681 であったが,第 2 ラウンドからはこの値に変更された。
61
• CBDη (PRF(σ, i)): 大きさ η ∈ N の Central Binomial Distribution (CBD) を生成する。擬似乱数生成器 PRF
は長さ 32Bytes の σ と 1Byte の i をシードとして 512ηbits の擬似乱数列 β0 β1 · · · β512η1 へと変換する。この
X
η1 X
η1
列を 2ηbits ごとに切り分け i = 0, . . . , 255 に対して fi = βi·2η+j βi·2η+η+j を計算。i 次の係数を fi
j=0 j=0
とした 255 次多項式を CBDη 関数の出力とする。
• Encode (ŝ), Decode (b): Encode 関数は 255 次の多項式 ŝ ∈ Rq を入力とし,各係数を bits のビット列に直し
たものを結合した 256bits のビット列を出力とする。Decode 関数はその逆を行う関数で,ビット列を多項式環
の元に変換する。
• Compressq (x, d), Decompressq (x, d): x ∈ Zq を近似的に dbits に変換,逆変換を行う関数であり,暗号文のサイ
ズ削減に用いられる。具体的には
Compressq (x, d) := d(2d /q) · xc mod 2d , および
Decompressq (x, d) := d(q/2d ) · xc
で定義される。
擬似乱数生成器の実装について: アルゴリズムの仕様の中で用いられる擬似乱数生成器 XOF, PRF, G, H, KDF につい
て,元々の SHAKE ハッシュ関数などを用いたものに加えNIST PQC 標準化プロジェクト 第 2 ラウンドに合わせ
てアップデートされたバージョン 2.0[18] からは “90s version” として AES と SHA のみを用いたものが提案されて
いる。これらの関数がデファクトスタンダードとして既に多くのハードウェア上で実装されている事から,高速化を
狙ったものである。以下の表 3.4 に用いられる関数をまとめる。なお,本節で紹介する IND-CPA 安全な方式の中では
XOF, PRF および G のみが用いられ,他の 2 つは IND-CCA2 安全な方式の構成において呼び出される。
90s version の XOF 関数では CTR モードの AES-256 を,ρ を鍵12Bytes の nonce を nonce[0] = i, nonce[1] = j,
nonce[] = 0 for = 2, . . . , 11 とパディングして用いる。同様に PRF 関数では AES-256 の CTR モードを ρ
12Bytes の nonce を nonce[0] = i, nonce[] = 0 for = 1, . . . , 11 として用いる。オリジナルバージョンの
SHAKE-128 の呼び出し方に関してはリファレンス実装*9 を参照した。
表 3.4: CRYSTALS-Kyber における擬似乱数生成器の実装 [19, Sect. 1.4]
XOF(ρ, i, j) PRF(σ, i) H(b) G(b) KDF(b)
オリジナル SHAKE-128(ρ||i||j) SHAKE-256(σ||i) SHA3-256(b) SHA3-512(b) SHAKE-256(b)
90s AES-256 AES3-256 SHA-256(b) SHA-512(b) SHA-256(b)
CRYSTALS-Kyber の鍵生成関数(表 3.5 右)を説明する。表の中で B は 1Byte 分の情報を表す集合 {0, 1, . . . , 255}
を表す。ランダムに生成した 32Bytes の d をシードとして,ハッシュ関数 G を用いて 512Bytes の擬似ランダムビッ
トの組 (ρ, σ) を生成する。これらはそれぞれ,行列 A ∈ Rqk×k とノイズ多項式 s, e ∈ Rqk をサンプリングするための
シードとして用いられる。通常空間で Rq を一様ランダムにサンプルしたものに NTT をかけた後の分布はまた Rq 内
の一様分布となるためA は最初から NTT 空間でサンプリングされているものとみなされる。
s, e ∈ Rqk については CBDη1 を用いて通常空間でのサンプリングを行い,その成分を個別に数論変換する。数論変
換の性質により,最後の t̂ は NTT(As + e) となる。公開鍵サイズを圧縮するためA, t̂ をそれぞれシード ρEncode
関数による圧縮形式で保存する。秘密鍵の ŝ に関しても同様である。
CRYSTALS-Kyber の暗号化関数(表 3.6 右)を説明する。圧縮形で入力された公開鍵から t̂, Â を復元する。この
とき,処理の効率化のために行列は転置された形で復元される。
*9 https://github.com/pq-crystals/kyber/blob/master/ref/symmetric-shake.c, 2024/12/24 参照
62
表 3.5: Lindner-Peikert 格子ベース暗号および CRYSTALS-Kyber における鍵生成関数の比較
Lindner-Peikert [101, Sect. 3.1] CRYSTALS-Kyber [19, Algorithm 4]
KeyGen(1 ) → (pk , sk )
λ
KeyGen(1λ ) → (pk , sk )
$
0: d←
B 32
(ρ, σ) ← G(d) // B 256 × B 256 の疑似ランダムビット列
1: A: n1 × n2 ランダム行列 Â[i][j] ← Parse(XOF(ρ, j, i))
for i = 0, . . . , k 1 and j = 0, . . . , k 1
2: S: 成分の小さい n2 × 行列 s[i] ← CBDη1 (PRF(σ, i)) for i = 0, . . . , k 1
ŝ ← NTT(s)
3: E: 成分の小さい n1 × 行列 e[i] ← CBDη1 (PRF(σ, i + k)) for i = 0, . . . , k 1
ê ← NTT(e)
4: B = AS + E t̂ ← Â ◦ ŝ + ê
return pk = (A, B), sk = S pk = (Encode12 (t̂ mod q)||ρ), sk = Encode12 (ŝ mod q)
表 3.6: Lindner-Peikert 格子ベース暗号および CRYSTALS-Kyber における暗号化関数の比較
Lindner-Peikert[101, Sect. 3.1] CRYSTALS-Kyber [19, Algorithm 5]
Enc(pk = (A, B), m ∈ {0, 1} ) → ct Enc(pk = (T ||ρ), m ∈ B 32 ) → ct
0: t̂ ← Decode12 (T )
ÂT [i][j] ← Parse(XOF(ρ, i, j)) //行列 Â の転置の形での復元
1: s , e , e : 成分の小さいベクトル r[i] ← CBDη1 (PRF(r, i)) for i = 0, . . . , k 1
それぞれ Kyber の r, e1 , e2 に対応 e1 [i] ← CBDη2 (PRF(r, i + k)) for i = 0, . . . , k 1
e2 ← CBDη2 (PRF(r, 2k))
2: u = s A + e r̂ ← NTT(r)
jqk
v =sB+e +m·
u ← NTT1 (AˆT ◦ r̂) + e1
2
v ← NTT1 (t̂T ◦ r̂) + e2 + Decompressq (Decode1 (m), 1)
c1 ← Encodedu (Compressq (u, du ))
c2 ← Encodedv (Compressq (v, dv ))
return ct = (u, v) ct = (c1 ||c2 )
暗号化のため成分の小さい r, e1 ∈ Rqk と e2 ∈ Rq をサンプリングする。通常空間と NTT 空間を使い分けて処理を
効率化しているが,最終的な暗号文 c1 ||c2 は通常空間でのベクトル u ∈ Rqk と多項式 v ∈ Rq を Compressq 関数で圧縮
したものとなる。ここで2 種類のノイズ η1 , η2 を使い分けるのはη1 のみによるノイズの大きさと,最後の Encode
関数によるラウンディングからの決定的ノイズと η2 のノイズを合成したものの大きさが釣り合うように調整するため
である [19, Sect. 1.5]。
CRYSTALS-Kyber の復号関数(表 3.7 右は圧縮されたビット列の展開NTT 空間の利用などで表現が煩雑になっ
ているがLindner-Peikert 暗号の復号処理と本質的に同様である。最後の Compressq (·, 1) 関数が Lindner-Peikert 暗
号における m から m への変換に対応している。
安全性とパラメータ: ベースとなる IND-CPA 安全な公開鍵暗号の安全性は多項式環 Rq := Zq [x]/(xn + 1) 上の判定
版 Module-LWE 問題へと ROMQROM モデルの下で帰着される。
パラメータの設定は Module-LWE 問題を構造の無い LWE 問題とみなし Primal, Dual の双方の攻撃を BKZ アルゴ
63
表 3.7: Lindner-Peikert 格子ベース暗号および CRYSTALS-Kyber における復号関数の比較
Lindner-Peikert[101, Sect. 3.1] CRYSTALS-Kyber [19, Algorithm 6]
Dec(sk , ct) → m Dec(sk , ct = (c1 ||c2 )) → m ∈ B 32
1: m = v uS u ← Decompressq (Decodedu (c1 ), du )
(
0 |mi | ≤ bq/4c
mi = v ← Decompressq (Decodedv (c2 ), dv )
1 それ以外
ŝ ← Decode12 (sk )
m ← Encode1 (Compressq (v NTT1 (ŝT ◦ NTT(u)), 1))
return m = (m1 , . . . , m ) m
リズムを用いて解いた場合の必要ブロックサイズに対応する Core SVP 計算量を通じて行われている。Module-LWE
問題へと帰着する際に,二項分布によるノイズと Compressq 関数の四捨五入によるノイズを総合して詳細な解析を行っ
ている。また,パラメータ設定用のスクリプトは [68] で公開されている。
暗号の性能を決めるパラメータは n, k, q, η1 , η2 , du , dv の 7 個であり,大まかに以下の特徴を持つ。格子の次元は多
項式の次数 n と Module-LWE 問題のランク k の積であり,これらのパラメータを大きくとることで暗号の安全性が上
がるが処理速度が低下し,鍵と暗号文のサイズが膨らむ。法 q を大きくとることでノイズ耐性が上がり復号エラー率が
下がるが,格子が疎になり暗号の安全性が低下する。
(η1 , η2 ) は鍵生成と暗号化に用いられるノイズ多項式の大きさで,大きくとることで暗号の安全性が上がるが復号エ
ラー率も上がる。また,ノイズの中心二項分布を生成する際に必要とされるランダムビットの長さが増える。
(du , dv ) は暗号文 (u, v) をビット列で表現するための精度を指定する。小さくとることで暗号文サイズが削減できる
が,桁落ちが発生し復号エラー率が上がる。また,これらの値を小さくとることは暗号文にノイズを与えることにな
り,安全性が僅かではあるが向上するが,復号エラー率への影響の方が大きい。
安全性レベル 1,3,5 に対応するパラメータの値を表 3.8 に示す。また,δ は IND-CCA2 KEM おける復号エラー率
を示す。正しい暗号文が KEM のデカプセル化 [19, Algorithm 9] で棄却される確率である。
表 3.8: CRYSTALS-Kyber のパラメータ [19, Table 1] および [4, Sect. D]. 公開鍵,秘密鍵,平文,暗号文サイズの
単位はそれぞれ Byte である。
安全性 公開鍵 秘密鍵 平文 暗号文 復号
(n, k, q) (η1 , η2 ) (du , dv )
レベル サイズ サイズ サイズ サイズ エラー率 δ
(256, 2, 3329) (3, 2) (10, 4) レベル 1 800 1, 632 32 768 2139
(256, 3, 3329) (2, 2) (10, 4) レベル 3 1, 184 2, 400 32 1, 088 2164
(256, 4, 3329) (2, 2) (11, 5) レベル 5 1, 568 3, 168 32 1, 568 2174
3.3.4 CRYSTALS-Dilithium
歴史: CRYSTALS-Dilithium は 2017 年 6 月に Cryptology ePrint Archive において Léo DucasTancrède
LepointVadim LyubashevskyPeter SchwabeGregor SeilerDamien Stehlé の 6 名の連名で公表 [65] され,そ
の後論文内での予告通りに 2017 年 11 月に NIST PQC 標準化プロジェクトへの応募方式 [63] として Eike Kiltz を加
えた 7 名を開発者として提出された。査読付き論文としては国際会議 CHES 2018 において公開された版 [64] が存在
64
する。
NIST PQC 標準化プロジェクトのラウンドが進むごとに微修正が行われ,現在の最新版は 2021 年 2 月に公開され
た仕様書 V3.1[20] である。本節の記述はこの仕様書に従う。
参照 URL: 開発者による公式ページ https://pq-crystals.org/dilithium/ を参照した。
設計原理: CRYSTALS-Dilithium は格子ベースの署名方式でありLyubashevsky[105] による Fiat-Shamir with
Aborts 型の構成を行っている。秘密鍵復元問題の安全性の根拠をx256 + 1 を定義多項式とした環上における
Module-LWE 問題に,署名の強偽造不可能性の根拠を SelfTargetMSIS 問題に置いている。通信コストを下げるため,
公開鍵サイズと署名サイズの和の最小化を目的としてパラメータの設計を行っている。
最新の実装では,署名の検証にかかる計算時間の 80% はハッシュ関数 Keccak の処理時間であり,速度的にはこれ
以上改良できない限界であるとしている [104]。
アルゴリズムの詳細: 表 3.93.103.12 に Lyubashevsky による Fiat-Shamir with Aborts 型の格子ベース署名,
CRYSTALS-Dilithium のテンプレートアルゴリズム [20, Fig. 1] および実装のための擬似コード [20, Fig.4] を並置し
て記述する。
パブリックパラメータは以下で与えられる。
• n, q: 環を定義するための多項式 xn + 1 の次数と法を示す。用いられる多項式環は R := Z[x]/(xn + 1), Rq :=
Zq [x]/(xn + 1) であり,提案方式の中では常に n = 256, q = 223 213 + 1 = 8380417 を用いる。
• k: モジュール格子のランクとする。
• l: ハッシュの (Rq における) 次元パラメータとする。
• d: 鍵生成時に t から分離する下位ビットの長さ
• η: 秘密鍵ベクトルのサンプリング空間の大きさ。
• τ : 署名生成時のベクトル c のサンプリング空間の大きさ。β := η · τ
γ1 : 署名生成用ベクトル y のサンプリング空間の大きさ。
γ2 : 署名生成用ベクトル w から取り出す上位ビットの長さ。
用いられるサブルーチンのうち主なものを以下に列挙する。
X
255
• NTT(a) は a = ai xi の NTT 表現 â ∈ Z256
q を求める関数で,
i=0
â = (a(r0 ), a(r0 ), a(r1 ), a(r1 ), . . . , a(r127 ), a(r127 ))
で計算される。ただしr = 1753, ri = r brv(128+i) mod q, brv(k) 関数は k を 8bits の 2 進数としてみたときの
ビット順序を反転された数を出力するものとする [20, Sect. 2.2]。
• H: ビット列の伸長のためのハッシュ関数。CRYSTALS-Dilithium の実装では SHAKE256 ハッシュ関数を用
いる。
• ExpandA(ρ): 乱数生成のシード ρ を用いて,ランダム行列 A ∈ Rqk×l を生成し,その NTT 表現
   
a1,1 a1,2 ··· a1,l NTT(a1,1 ) NTT(a1,2 ) ··· NTT(a1,l )
 a2,1 a2,2 ··· a2,l   NTT(a2,1 ) NTT(a2,2 ) ··· NTT(a2,l ) 
   
A= . → Â = 
 ..
..
.
..
. ... 
 
..
.
..
.
..
.
..
.
ak,1 ak,2 ··· ak,l NTT(ak,1 ) NTT(ak,2 ) ··· NTT(ak,l )
を計算し出力する。
• ExpandS(ρ ): 署名に用いる多項式 s1 , s2 を生成するための関数で512bits のシードを入力とする。
65
• Power2Roundq (t, d), HighBitsq (t, α), LowBitsq (t, α): Zq の元 t で0 ≤ t < q を満たすものを t = r1 · 2d +
r0 , q/2 < r ≤ q/2 と分解したときに Power2Roundq (t, d) = (r1 , r0 ) と定義する。Zq 成分の多項式 t ∈ Rq
および Rq 成分のベクトル t に対しても成分ごとに同様の操作を行うものとして定義する。具体的にはt =
X 
tj,i xi と書いたときに Power2Roundq (tj,i , d) → (tj,i,1 , tj,i,0 ) とすればPower2Roundq (t, d) →
 X
j=1,...,k  X 
(t1 , t0 ) は t1 = qj,i xi , t0 = rj,i xi , ただし tj,i = qj,i · 2d + rj,i と定義したものと
j=1,...,k j=1,...,k
する。
また,α を q 1 の約数としたとき,同様に整数 t を t = r1 · α + r0 , q/2 < r0 ≤ q/2 の形で分解し,
HighBitsq (t, α), LowBitsq (t, α) をそれぞれ r1 , r0 で定義する。
• MakeHintq (z, r, α), UseHintq (h, r, α): MakeHintq 関数は HighBitsq (r, α) 6= HighBitsq (r + z, α) であれば 1 を,
そうでなければ 0 を返す関数である。UseHintq 関数は引数から HighBitsq (r + z, α) を復元する関数である。ま
た,ベクトル z = (z1 , . . . , zk ), r = (r1 , . . . , rk ) に対してMakeHintq (z, r, α) は MakeHintq (zi , ri , α) を第 i 成
分としたベクトルとする。復元成功の十分条件は [20, Lemma 4] で与えられている。
• SampleInBall(c̃) 関数は係数のうち τ 個が ±1 で,それ以外が 0 である多項式の集合 Bτ から一様サンプリング
を行う。τ はパブリックパラメータとして与えられており,引数の c̃ はサンプリングのシードとして用いられ
る。生成された多項式 c ∈ R の NTT 表現 ĉ = NTT(c) が出力される。
• #1 h はベクトル h = (h0 , . . . , h255 ) の中でhi = 1 となる成分の個数を返す。Dilithium の中では MakeHint
関数の出力となる 0-1 ベクトルであるため,ベクトルのハミング重みである。
表 3.9: CRYSTALS-Dilithium における鍵生成関数の比較
格子ベース署名 CRYSTALS-Dilithium CRYSTALS-Dilithium
[105, Fig. 4] テンプレート [20, Fig. 1] 実装のための擬似コード [20, Fig. 4]
KeyGen(1λ ) → (pk , sk ) KeyGen(1λ ) → (pk , sk ) KeyGen(1λ ) → (pk , sk )
$
1: ŝ: 短い多項式を s1 ← Sηl , s2 ← Sηk ζ←− {0, 1}256
成分とするベクトル H(ζ) → (ρ, ρ , K) ∈ {0, 1}256 × {0, 1}512 × {0, 1}256
ExpandS(ρ ) → (s1 , s2 ) ∈ Sη × Sηk
$
2: a: ハッシュ関数 Â ←− Rqk×l ExpandA(ρ) → Â ∈ Rqk×
3: t ← a(ŝ) t = As1 + s2 t ← NTT1 (Â · NTT(s1 )) = As1 + s2
Power2Roundq (t, d) → (t1 , t0 )
H(ρ||t1 ) → tr ∈ {0, 1}256
return sk = (a, ŝ), pk = (a, t) sk = (A, t, s1 , s2 ), pk = (A, t) sk = (ρ, K, tr, s1 , s2 , t0 ), pk = (ρ, t1 )
表 3.9 の鍵生成関数について記述する。256bits のシード ζ をハッシュ関数 H により合計 1024bits に伸長し,その
うち ρ, ρ をそれぞれ公開鍵 A のシード,秘密鍵 s1 , s2 のシードとして用いる。鍵サイズ圧縮のため,行列 A はシード
ρ の形で表現され,必要に応じて展開される。秘密鍵 s1 , s2 は R の元をそれぞれ , k 個並べたベクトルであり,各成
分は集合 Sη = {w ∈ R : kwk∞ ≤ η} から一様ランダムにサンプリングされる。
Step 2 および 3 では Fiat-Shamir 型格子署名における秘密鍵 ŝ のハッシュ関数 a(ŝ) の計算が,ベクトル (s1 , s2 ) と
行列 A を用いた As1 + s2 の計算に対応している。計算されたベクトル t ∈ Rqk に対してPower2Roundq 関数により
上位ビットと下位ビットに分割する。
最後に,メッセージに連結するためのランダムビット tr をハッシュ関数 H を用いて生成する。
表 3.10 の署名生成関数について記述する。処理の準備として,ρ から行列 A の NTT 表現 Â を復元する。ランダム
ビット tr を用いてメッセージのハッシュ値 µ を計算し,この値に署名をつける。κ は ExpandMask 関数の中で呼び
出す SHAKE256 のシードとなる値でH(K||µ) → ρ とともに用いられる。計算効率化の目的で Rq の元の乗算には
66
表 3.10: CRYSTALS-Dilithium における署名生成関数の比較
格子ベース署名 CRYSTALS-Dilithium CRYSTALS-Dilithium
[105, Fig. 4] テンプレート [20, Fig. 1] 実装のための擬似コード [20, Fig. 4]
Sign(sk = (a, ŝ), Sign(sk = (A, t, s1 , s2 ), Sign(sk = (ρ, K, tr, s1 , s2 , t0 ),
µ ∈ {0, 1} ) → σ µ ∈ {0, 1} ) → σ M ∈ {0, 1} }) → σ
0: ExpandA(ρ) → Â
H(tr||M ) → µ ∈ {0, 1}512
1: z ←⊥ z ←⊥ κ ← 0, (z, h) ←⊥
H(K||µ) → ρ ∈ {0, 1}512
ŝ1 ← NTT(s1 ); ŝ2 ← NTT(s2 )
t̂0 ← NTT(t0 )
2: while z =⊥ do while z =⊥ do while (z, h) =⊥ do
3: ŷ: 短い多項式を y ← Dγl×1
1 1
ExpandMask(ρ , κ) → y ∈ S̃γl 1
成分とするベクトル
4: c ← H(a(ŷ)||µ) w1 ← HighBits(Ay, 2γ2 ) w ← NTT1 (Â · NTT(y)) = Ay
c = H(µ||w1 ) w1 ← HighBitsq (w, 2γ2 )
H(µ||w1 ) → c̃ ∈ {0, 1}256
SampleInBall(c̃) → ĉ ∈ Bτ ⊂ Rq
5: ẑ ← ŷ + cŝ z ← y + cs1 z ← y + NTT1 (ĉ · ŝ1 )
r0 ← LowBits(Ay cs2, 2γ2 ) r0 ← LowBitsq (w NTT1 (ĉ · ŝ2 ), 2γ2 )
if ẑ ̸∈ Gm if (∥z∥∞ ≥ γ1 β) OR if (∥z∥∞ ≥ γ1 β) OR
then z ←⊥ (∥r0 ∥∞ ≥ γ2 β) then z ←⊥ (∥r0 ∥∞ ≥ γ2 β) then (z, h) ←⊥
else
h ← MakeHintq (·) ... (*)
κ←κ+l
return σ = (ẑ, c) σ = (z, c) σ = (z, h, c̃)
NTT 表現を用いるため,予め s1 , s2 , t0 を NTT 表現に変換しておく。
Fiat-Shamir 型署名の標準的な構成方法と同様に,署名の初期値 (z, h) を ⊥ としwhile ループの中で生成された
署名が集合 G に含まれているかどうかを検査し含まれていない場合にはループをやり直す。
ExpandMask 関数の中では,(ρ , κ) をシードとしてランダムベクトル y ∈ Rql をサンプリングする。ここで,各成分
( 255 )
X
は S̃γ1 = wi x : γ1 < wi ≤ γ1 から一様ランダムにサンプリングされる。このサンプリングは表 3.10 中央の
i
i=0
y ← Dγl×1
1
に対応する。
署名生成のためのベクトル c ∈ Rql は 256bits のシード c̃ により表現され,この値自体は µ と w1 を連結したハッ
シュ値から計算される。ここで,µ はメッセージからの要素でありw1 は公開鍵 A と直前でサンプリングした y から
来る要素である。計算効率のため,内積 c · s1 は NTT 表現で計算された後に逆変換をかけ z = y + c · s1 となる。
ステップ 5 では z 6∈ G のチェックのためz と w cs2 の下位ビットの ℓ∞ ノルムがそれぞれ比較される。両方が閾
値よりも小さい場合には次のヒント生成関数 () が実行される。ヒント生成関数は表 3.11 により示されMakeHintq
実行後に再びノルムの大きさがチェックされ,閾値よりも大きな場合には (z, h) ←⊥ となる。つまり2 回の if 文の
中での 4 回の不等号検査のうち一つでも満たされない条件があれば,シード κ を増やし y の生成からやり直すこと
になる。ここでMakeHintq 関数の中での cs2 + ct0 の計算は前半を r0 の計算で用いたものを使いまわし,後半を
NTT1 (ĉ · t̂0 ) の形で計算することで効率化可能である。
表 3.12 の署名検証関数について記述する。公開鍵,署名に含まれる乱数のシード ρ, c̃ から Â, ĉ を復元し,メッセー
ジに対応するハッシュ値 µ を計算する。Az ct1 · 2d は Â · NTT(z) NTT(c) · NTT(t1 · 2d ) の形で計算する。これ
67
表 3.11: 署名生成関数におけるヒント生成時のチェック関数
h ← MakeHintq (ct0 , w cs2 + ct0 , 2γ2 )
if kct0 k∞ ≥ γ2 OR #1 h > ω 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.143.153.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,...,n1 で定義する*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 名が inventorsKaren 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.183.193.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 , . . . , cn1 ∈ {0, . . . , 216 1} としてAi,j = cj mod q の形で各成分に振り分けている。このように関数
を構成することで,各 i 行目を生成する操作がハードウェアによる並列実装に適した形となる。またq は 2 べ
きの形で取られるため,各 Ai,j の分布に偏りは生じない。
• Frodo.SampleMatrix((r (0) , . . . , r (nm1) ), 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 (2nn1) ) ← SHAKE(0x5F||seedSE , 2nn · lenχ )
S T ← Frodo.SampleMatrix((r (0) , . . . , r (nn1) ), n, n, Tχ )
3: E: 成分の小さい n1 × 行列 E ← Frodo.SampleMatrix((r (nn) , . . . , r (2nn1) ), 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 (2nn1) ) ← SHAKE(0x96||seedSE ,
(2m · n + m · n) · lenχ )
//擬似乱数ビットの生成
S ← Frodo.SampleMatrix((r (0)
, . . . , r (m·n1) ), m, n, Tχ )
E ← Frodo.SampleMatrix((r (m·n) , . . . , r (2m·n1) ), m, n, Tχ )
E ← Frodo.SampleMatrix((r (2m·n) , . . . , r (2m·n+m·n1) ), 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 = (m1 , . . . , 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 AlkimLéo Ducas
Thomas PöppelmannPeter 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 BosAntonio de la PiedraDouglas Stebila の 4 人が加わった合計 8 人での提案とし,[11] をベースとして
公開鍵暗号方式を構成している。NIST PQC 標準化プロジェクトへ提出後のディスカッションを通じて修正が加えら
れ,現在の最新版は 2020 年 4 月に公表された Version 1.1[14] である。
NIST PQC 標準化プロジェクトの 第 2 ラウンドに提出された Version 1.02[128] ではMartin R. Albrecht
Emmanuela OrsiniValery OsheterKenneth G. PatersonGuy PeerNigel 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(seedSE , 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)
(seedSE , k ) ← SHAKE(pkh, µ, lenseedSE + lenk ) (seedSE , k ) ← SHAKE(pkh, µ′ , salt, lenseedSE + lenk )
FrodoPKE.Enc(seedSE , pk , µ′ )) → (C1 , C2 ) =: ct FrodoPKE.Enc(seedSE , 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.263.273.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 bi ) として定義される。
$
した 2k 個のビット bi , bi ←− {0, 1} (k = 1, . . . , k) に対する
i=1
• PolyBitRev(a ∈ Rq ): 高速数論変換を用いた乗算の場合,結果のインデックス順序が入れ替わるため配列の要素
X
h1
c[i] を xBitRev (i) として解釈しなければならない。ただし,ビット順序反転は h = log2 (n), i = bj 2j と 2 進
j=0
X
h1 X
n1
数展開したときにBitRev(i) := bj 2hj1 計算される。関数は多項式 a(x) = ai xi に対して,指数部分
j=0 i=0
X
n1
をビット順序反転した多項式 ai xBitRev(i) を出力する。
i=0
• NTT(a), NTT1 (â): Rq の多項式同士の乗算を高速化するため,数論変換 (Number Theoretic Transform:
NTT)[14, p. 7-9] を用い,鍵と暗号文の処理を極力 NTT 空間で行う工夫がなされている。パラメータ n, q, ω, γ
X
n1
を固定したとき,多項式 a(x) = ai xi ∈ Rq の数論変換
i=0
X
n1 X
n1
â = NTT(a) := âi xi , âi := γ j aj ω ij (mod q)
i=0 j=0
および逆変換を  
X
n1 X
n1
a = NTT1 (â) := ai xi , ai := n1 γ i âj ω ij  (mod q)
i=0 j=0
とする。これらは線形変換であるのでa, b ∈ Rq に対して NTT(a) + NTT(b) = NTT(a + b) 等の性質がなり
X
n1 X
n1
たつ。またa b := i
ci x , c i = aj bij mod n mod q は a b = NTT1 (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 = NTT1 (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 右を説明する。健全性の証明よりvNTT1 (û◦ŝ) = vus が 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 NTT1 (û ◦ ŝ)
(
0 |mi | ≤ bq/4c
mi = M = Decode(m)
1 それ以外
return m = (m1 , . . . , m ) M
多項式 m の係数の中でmi+256k (k = 0, . . . , n/256 1) の中にビット Mi の情報が埋め込まれているため,それらを
X
n/2561
多数決で決定する。具体的には, |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 XagawaTakashi 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.313.323.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
n2 X
n3
T := v= vi x ∈ T :
i
vi vi+1 ≥ 0
i=0 i=0
とする。
• L(d1 , d2 ) は ANTS 版 NTRU のサンプリング空間を定義するために用いられる。次数 n 1 以下の多項式で d1
個の係数が +1d2 個の係数が 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 DAnvers,
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.353.363.37 に Regev 暗号の LWR 版と SABERIND-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-KyberFALCON の実装 [156]OpenSSH への Streamlined NTRU
Prime の実装 [122] などが存在する他Open Quantum Safe (OQS) プロジェクトによる liboqs ライブラリには暗号
化・鍵交換の方式として CRYSTALS-KyberNTRUSABERFALCONFrodoKEMNTRU-Prime が,署名方
式として CRYSTALS-Dilithium と FALCON が実装されている [138]。このように格子に基づく暗号技術の社会実装
が徐々に進みつつある。特に,標準化が先行する CRYSTALS-KyberCRYSTALS-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. 99108.
[3] M. Ajtai, Cynthia Dwork. A Public-Key Cryptosystem with Worst-Case/Average-Case Equivalence.
STOC. ACM, 1997, pp. 284293.
[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. 1540. 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. 153178.
[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. 351367.
[8] M. R. Albrecht, A. Deo. Large Modulus Ring-LWE ≥ Module-LWE. ASIACRYPT (1). Vol. 10624. Lecture
Notes in Computer Science. Springer, 2017, pp. 267296.
[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. 717746.
[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. 297322.
[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. 327343.
[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. 322337.
[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. 610640.
[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. 343370.
[24] A. Banerjee, C. Peikert, A. Rosen. Pseudorandom Functions and Lattices. EUROCRYPT. Vol. 7237.
Lecture Notes in Computer Science. Springer, 2012, pp. 719737.
[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. 358389.
[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. DAnvers, 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. 170201.
[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. 677708.
[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. 21412200.
[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. 123154.
[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. 10061018.
[34] J. W. Bos et al. CRYSTALS Kyber: A CCA-Secure Module-Lattice-Based KEM. EuroS&P. IEEE,
2018, pp. 353367.
[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. 276305.
[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. 480509.
[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. 575584.
[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. 323345.
[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. 716747.
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. 372401.
[46] Y. Chen, P. Q. Nguyen. BKZ 2.0: Better Lattice Security Estimates. ASIACRYPT. Vol. 7073. Lecture
Notes in Computer Science. Springer, 2011, pp. 120.
[47] C. Chuengsatiansup, T. Prest, D. Stehlé, A. Wallet, K. Xagawa. ModFalcon: Compact Signatures Based
On Module-NTRU Lattices. AsiaCCS. ACM, 2020, pp. 853866.
[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. 159188.
[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. 110145.
[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:18: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. 324348.
[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. DAnvers. 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. DAnvers, 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. 282305.
[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. 748781.
[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. 205225.
[59] T. Debris-Alazard, P. Fallahpour, D. Stehlé. Quantum Oblivious LWE Sampling and Insecurity of Standard
Model Lattice-Based SNARKs. STOC. ACM, 2024, pp. 423434.
[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. 3764.
[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. 417446.
[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. 1834.
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. 238268.
[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. 6594.
[67] L. Ducas, T. Prest. Fast Fourier Orthogonalization. ISSAC. ACM, 2016, pp. 191198.
[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. 249279.
[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. 643673.
[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. 222253.
[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. 336.
[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. 245275.
[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. 979993.
[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. 709740.
[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. 186194.
[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. 197206.
[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. 112131.
[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. 359386.
[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. 267288.
[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. 255287.
[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. 341371.
[90] J. Howe, T. Pöppelmann, M. ONeill, E. OSullivan, T. Güneysu. Practical Lattice-Based Digital Signature
Schemes. ACM Trans. Embed. Comput. Syst. Vol. 14, Num. 3 (2015), 41:141:24.
[91] A. Hülsing, K.-C. Ning, P. S., F. Weber, P. R. Zimmermann. Post-quantum WireGuard. SP. IEEE, 2021,
pp. 304321.
[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. 232252.
[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. 193206.
[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. 782804.
[97] A. Langlois, D. Stehlé. Worst-case to average-case reductions for module lattices. Des. Codes Cryptogr.
Vol. 75, Num. 3 (2015), pp. 565599.
96
[98] M. Lantz. Worlds 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. 515534.
[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. 387412.
[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. 319339.
[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. 741770.
[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. 322342.
[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. 598616.
[106] V. Lyubashevsky. Lattice Signatures without Trapdoors. EUROCRYPT. Vol. 7237. Lecture Notes in
Computer Science. Springer, 2012, pp. 738755.
[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. 123.
[108] V. Lyubashevsky, C. Peikert, O. Regev. On Ideal Lattices and Learning with Errors over Rings. J. ACM.
Vol. 60, Num. 6 (2013), 43:143: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. 648681.
[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. 291321.
[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. 322353.
[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. 836865.
[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. 226255.
97
[115] M. Naehrig, K. E. Lauter, V. Vaikuntanathan. Can homomorphic encryption be practical? CCSW. ACM,
2011, pp. 113124.
[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. 223242.
[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. 616647.
[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. 554571.
[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. 306336.
[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. 288307.
[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. 6898.
[130] A. Pouly, Y. Shen. Provable Dual Attacks on Learning with Errors. EUROCRYPT (6). Vol. 14656.
Lecture Notes in Computer Science. Springer, 2024, pp. 256285.
[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. 8493.
[134] O. Regev. On lattices, learning with errors, random linear codes, and cryptography. J. ACM. Vol. 56,
Num. 6 (2009), 34:134:40.
[135] O. Regev. The Learning with Errors Problem (Invited Survey). CCC. IEEE Computer Society, 2010,
pp. 191204.
[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. 283297.
[137] K. Ryan, N. Heninger. Fast Practical Lattice Reduction Through Iterated Compression. CRYPTO (3).
Vol. 14083. Lecture Notes in Computer Science. Springer, 2023, pp. 336.
[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. 520551.
[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. 181199.
[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. 688711.
[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. 2747.
[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. 617635.
[150] M. J. Steiner. The Complexity of Algebraic Algorithms for LWE. EUROCRYPT (3). Vol. 14653. Lecture
Notes in Computer Science. Springer, 2024, pp. 375403.
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. 406432.
[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. 301324.
[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. 275304.
[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. 385416.
[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. 335.
[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. 322.
[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. 390420.
[161] 量子耐性暗号研究団. KpqC. https://kpqc.or.kr/. (2024-12-06 閲覧).
100
第4章
符号に基づく暗号技術
本章では符号に基づく暗号技術についてまとめる。符号に基づく暗号技術の安全性はシンドローム復号Syndrome
Decoding: SD問題や Learning Parity with NoiseLPN問題を解く計算の困難性に依存している。
■準備: 本章で使用する記号・用語を以下にまとめる。以下では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
(nk)×(nk) (nk)×k
に対して,行列 S ∈ Fq を適用しSH = [Ink | 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 問題の拡張問題を安全性の根拠とする暗号や署名方式が多
数提案されていることから,主要な問題について説明する。
(nk)×n
定義 4.1 (SD 問題) k, w ≤ n を満たす正の整数 n, k, w に対して,行列 H ∈ F2 とベクトル s ∈ Fnk
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 を求める問題である。CarozzaCouteauJoux [16] によるとRegular-SD 問題に基づく署名は,通常
の SD 問題に基づく署名と比較して,署名長や署名時間がより短くなる場合があるとのことである。
■Restricted-SD 問題: Restricted-SD 問題は,体を F2 から Fq に変更し,解 e の取りうる値を 0 を含む Fq の部分集
合に制限したものである。
(nk)×n
定義 4.2 (Restricted-SD 問題) k, w ≤ n を満たす正の整数 n, k, w に対して,行列 H ∈ Fq とベクトル
s ∈ Fnk
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 ) で定義する。
(nk)×n
定義 4.3 (Rank-SD 問題) k, w ≤ n を満たす正の整数 n, k, w に対して,行列 H ∈ Fqm とベクトル s ∈ Fnk
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 問題の計算の困難性に関してBerlekampMcEliecevan Tilborg [9] によってNP 困難な 3 次元マッチング
問題から SD 問題への多項式時間帰着が示されている。これによりSD 問題が NP 困難であることが判明している。
SDn,k,w 問題や [n, k]2 -線形符号における k/n は符号化レートと呼ばれており,符号化レートが 1/2 付近で SD 問題が
(nk)×n
最も難しくなることが知られている。また,符号化レートを増加させると,公開鍵に相当する入力行列 H ∈ F2
のサイズが減少することから,暗号の設計においては,符号化レート 1/2 以上 1 未満の値が採用されることが多い。
以降ではSD 問題の求解手法として最も研究が進んでいる Information Set DecodingISDを取り上げる。ISD
は,符号化レート 0.42 以上において既存方式の中で漸近計算量が最も小さくSD 問題の解読チャレンジを通して実時
間での計算量解析が進展している。
近年CarrierDebris-AlazardMeyer-HilfigerTillich [18, 17] が提案した Reduction-to-LPNR-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
案した。基本アイデアは以下である:
(nk)×n
1. 一様ランダムに H ∈ F2 の列ベクトルを入れ替えH̃ = HP とする。P ∈ F2n×n は置換行列。)
(nk)×(nk)
2. ガウスの消去法と対応する行列 S ∈ F2 によって H̃ を [Ink | Z] = S H̃ とする。(組織符号化)
3. シンドローム s ∈ F2 に対してs = sS を計算する。
nk
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 =
(s, 0k )[Ink Z] = s が成立する。よって,ステップ
  4 のチェックが通るならばe は SD 問題の解である。末尾
  k 列
nk nk 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 備考
Pra62Lee-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 nk
となる。期待計算量は poly(n, k) · O / となり,先ほどの列挙法よりも速くなる。
w w
Stern [55] 以降,空間計算量を犠牲にすることで時間計算量を引き下げる ISD の改良アルゴリズムが多数提案されて
いる。Both と May [14] による時間計算量の表を,表 4.1 に示す。この表は,時間計算量を最小化した場合の符号化
レート k/n の最悪時1/2 の少し下)の漸近計算量についてまとめられている。したがって,問題のパラメータによっ
ては,表の数値よりも速く解くことが可能となる。
近年は,漸近計算量のみならず,具体的なパラメータに対する SDn,k,w 問題を求解するために必要なビット計算量を
見積もる研究もなされている。EsserVerbelZweydingerBellini [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 法に対してPerrielloBarenghiPelosi [51] がグローバーのアルゴ
リズムを用いた量子回路を提案した。Esser ら [28] は,量子 Prange 法に対して,一部の演算を古典コンピュータ上で
行う量子と古典のハイブリッド法を提案した。PerrielloBarenghiPelosi [52] は,量子 Prange におけるガウスの消
去法の量子回路を改良しNIST PQC 標準化プロジェクト第 4 ラウンドの 3 種類の符号暗号の解読に必要な量子回路
の深さを最大で 230 削減した。ChevignardFouqueSchrottenloher [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 McEliece4.3.1 節)に対応
5. QC-MDPC 符号に基づく SD 問題。BIKE4.3.2 節)や HQC4.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 = 198EsserMayZweydinger2021/12
• 4. n = 1409, k = 0.8n に対して w = 26成定古江相川福島清本2023/11
• 5. n = 3602, k = n/2 に対して w = 60成定岡田上村相川福島清本2025/1
1 の結果についてはNarisadaFukushimaKiyomoto [47] を4 の結果についてはNarisada ら [48] を参照され
たい。235 についての詳細はDecoding Challenge 上に掲載されている各記録の詳細を参照されたい。
4.1.3 LPN 問題とその拡張
4.1.3.1 LPN 問題
LPN 問題とはF2 上の誤差付きの線形方程式を解けるかどうかという問題である。また,[n, k]2 -線形符号におい
生成行列と受信語が与えられたときにメッセージを復号する問題とみなすことができる。1993 年にBlum
FurstKearnsLipton [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 問題 HeyseKiltzLyubashevskyPaarPietrzak [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 困難になることが BerlekampMcEliecevan
Tilborg [9] によって示されている*3 。またHåstad [34] により近似版 LPN 問題*4 の NP 困難性も示されている。し
かし,平均時の困難性についてはよく分かっていない。
LPN 問題の古典求解手法として,現在,大別して以下の 5 つのアルゴリズムが知られている。
1. ガウスの消去法に基づく手法 [19]
2. SD 問題における Information Set Decoding に基づく手法 [27]
3. BlumKalaiWasserman [12] の BKW アルゴリズムに基づく手法
4. AroraGe [6] の「再線形化」アルゴリズム
5. 2. と 3. を組み合わせたハイブリッド法 [27]
このうち,漸近的に時間計算量が最も小さい手法は BKW アルゴリズムであり,実用上最も高速な手法はハイブリッ
ド法である。以降で各手法の概要を説明する。
4.1.4.1 ガウスの消去法に基づく手法
ガウスの消去法に基づく手法は2008 年に CarrijoTonicelliImaiNascimento [19] によって初めて提案された
LPN 問題に対する多項式空間・指数時間アルゴリズムである。この手法は指数回数の LPN オラクルの呼び出しが必要
*3 Ab自然数 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 = bA1 を秘密鍵の候補とする。
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 を用いて解くことができる。EsserKüblerMay [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 A1
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 )A1
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 ∈ F2 についてa の接尾辞 j|0(i1)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 43GHz
RAM: 1GB のマシンで
解くことが可能である。DevadasRenXiao [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: GuoJohanssonLöndahl [33] はcovering codes と呼ばれる符号を用いてKirchner の手法 [37]
および Bernstein と Lange [10] の手法を改良した Coded-BKW を提案した。Kirchner の手法ではBKW アルゴ
108
リズムのステップ 5 においてa を covering code の受信語とみなすことで探索空間の圧縮を行い,高速化を行って
いる*5 。ZhangJiaoWang [56] は別の符号を用いて Coded-BKW を改良している。Bogos と Vaudenay [13] は
Coded-BKW の解析が一部欠けていることを分析し,最適化を行いつつ詳細な計算量評価を与えた。
■Dissection-BKW: EsserHeuerKüblerMaySohler [26] は BKW アルゴリズムのタイムメモリトレードオフ
手法である Dissection-BKW を提案した。Dissection-BKW はDinurDunkelmanKellerShamir [23] によって
提案された部分和問題に対するタイムメモリトレードオフ手法である Dissection をBKW アルゴリズムに適用した
ものである。
4.1.4.4 AroraGe アルゴリズム
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 を組み合わせたハイブリッド法
EsserKüblerMay [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 問題を解く量子アルゴリズムは提案されていない。EsserKüblerMay [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 : 線形符号の誤り訂正能力
(nk)×n
鍵生成: 誤り訂正能力が t である [n, k]2 -線形符号のパリティ検査行列 H ∈ F2 を生成する。T ← GLnk (F2 )
110
を一様ランダムに選ぶ。Q ← Sn を一様ランダムに選ぶ。H̃ = T HQ とする。
公開鍵を H̃ とし,秘密鍵を (T , H, Q) とする。
暗号化: 平文を e ∈ SH (n, t) とする。暗号文 d = eH̃ ∈ Fnk
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 ∈ Fnk
2 はランダムな n k 次元のベクトルと見分けが付かないと考
えられている。またH̃ が一様ランダムであり,適切な t が選択されていれば,暗号文は統計的にランダムなベクト
ルと見分けが付かないとされている。一方で,オリジナルの Niederreiter 暗号は適応的選択暗号文攻撃CCAに対
して安全ではないため,次節で示すより安全な方式が提案されている。
4.2.3 符号版 Lyubashevsky-Peikert-RegevLPR公開鍵暗号方式
符号版 LPR 暗号はLyubashevskyPeikertRegev が 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 ∈ F2 とする。乱数 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 署名方式は CourtoisFiniaszSendrier が 2001 年に提案した署名方式である [21]。のちに,安全性仮定が提
案パラメータセットでは成り立たないことが示された [31, 32]。しかし後の方式に大きな影響を与えたため,ここに記
す。Niederreiter 暗号では秘密鍵を持っている場合,ハミング重みが t 以下の誤りは訂正できる。一方,訂正可能なシ
ンドロームの集合 {eH̃ ∈ Fnk
2 | e ∈ SH (n, t)} のサイズは Fnk
2 のサイズに比べれば圧倒的に少ない。
3.2.5 節のように Hash-and-Sign に基づいた構成を考える。メッセージ M のハッシュ値を シンドローム u ∈ Fnk
2
と捉えた場合,正しく復号できないシンドロームになることが多い。そこで CFS 署名では,ハッシュ値を u =
Hash(M, i) と i をインクリメントしながら計算し,ハッシュ値が {eH̃ ∈ Fnk
2 | e ∈ SH (n, t)} に入るものを採用
する。
(nk)×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
• 提案者: AlbrechtBernsteinChouCidGilcherLangeMaramvon MaurichMisoczkiNiederhagen
PatersonPersichettiPetersSchwabeSendrierSzeferTjhaiTomlinsonWang
• 基本方式の説明: Niederreiter 暗号方式に基づいている。基本符号方式として F2 上の Goppa 符号を利用してい
る。(具体的な Goppa 符号の生成方法や符号化および復号の方法については提案方式の仕様書 [2] を参照のこ
と。q = 2m としn ≤ q を用いる。2 以上の t を mt < n となるように取りk = n mt とする。
(nk)×n
鍵生成: 誤り訂正能力が t である Goppa 符号のパリティ検査行列 H ∈ F2 をランダムに生成する。組織
(nk)×k
符号化しH̃ = [Ink | T ] とする。公開鍵を pk = T ∈ F2 とする。符号生成に使ったパラメータ
を ΓFq 係数の t 次モニック既約多項式と互いに異なる α0 , . . . , αn1 ∈ Fq ) とする。秘密鍵を sk = Γ と
する。
暗号化 Encrypt(pk , e) : 入力を e ∈ SH (n, t) とする。H̃ = [Ink | T ] とし,暗号文として c = H̃e ∈ Fnk
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 を安全に共有することができる。
パラメータセットとして mceliece348864mceliece348864f mceliece460896mceliece460896f mceliece6688128
mceliece6688128f mceliece6960119mceliece6960119f mceliece8192128mceliece8192128f が提案されている。表 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-KEMKyber-512の速度は鍵生成が
33, 428 Cycle鍵カプセル化が 49, 184 Cycleデカプセル化が 40, 564 Cycle である [50]。なお,いずれも Haswell
CPU 搭載のサーバ上で AVX 命令を使用した C 言語実装を動作させた時の記録である。他のパラメータに関しては,
仕様書を参照されたい。
4.3.2 BIKE
• 提案者: AragonBarretoBettaiebBidouxBlazyDeneuvilleGaboritGueronGüneysuAguilar
MelchorMisoczkiPersichettiSendrierTillichZémorVasseurGhoshRichter-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 に対して,(e0 , e1 ) = Decrypt(sk , c0 ) を計算する。
2. 復号に失敗したら,⊥ を出力して停止する。
3. m = c1 ⊕ L(e0 , e1 ) を計算する。
4. (e0 , e1 ) = G(m ) ならばK = H(m , c) を出力して停止する。
5. そうでなければK = H(s, c) を計算し,出力する。
以上よりセッション鍵共通鍵K を安全に共有することができる。
表 4.4 に鍵カプセル化方式のパラメータ鍵長暗号文長および復号エラー率をまとめた。3 つのパラメータセット
がそれぞれレベル 135 相当として提案された。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 2128
BIKE-Level3 (24659, 206, 199) レベル 3 3, 083 419 3, 115 2192
BIKE-Level5 (40973, 274, 264) レベル 5 5, 122 580 5, 154 2256
4.3.3 HQC
• 提案者: Aguilar MelchorAragonBettaiebBidouxBlazyDeneuvilleGaboritPersichettiZémor
BosDionLacanRobertVeron
• 基本方式の説明: 符号版の 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 2128
hqc-192 (56, 640, 35851, 100, 114) レベル 3 4, 522 40 9, 042 2192
hqc-256 (90, 640, 57637, 131, 149) レベル 5 7, 245 40 14, 485 2256
以下ではハッシュ関数 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 つのパラメータセットがそれぞれレベル 135 相当として提案された。表 4.5 に鍵カプセル化方式のパラメー
タ,鍵長,暗号文長および復号エラー率をまとめた。表中では,秘密鍵はシードだけ記憶していることにされてお
40Bytes しかない。また公開鍵の h の部分もシードから再生成されることと定義されている点に注意されたい。
hqc-128 の速度に関しては,鍵生成が 87, 000 Cycle鍵カプセル化が 204, 000 Cycleデカプセル化が 362, 000 Cycle
であるSkylake CPU 搭載のデスクトップ PCAVX 命令を使用)。他のパラメータに関しては,仕様書を参照され
たい。
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. 595618.
[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. 403415.
[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. 520536.
[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. 384386.
[10] D. J. Bernstein, T. Lange. Never Trust a Bunny. RFIDSec. Vol. 7739. Lecture Notes in Computer Science.
Springer, 2012, pp. 137148.
[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. 278291.
[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. 506519.
[13] S. Bogos, S. Vaudenay. Optimization of LPN Solving Algorithms. ASIACRYPT (1). Vol. 10031. Lecture
Notes in Computer Science. 2016, pp. 703728.
[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. 2546.
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. 532563.
[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. 477507.
[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. 658662.
[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. 157174.
[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. 729746.
[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. 719740.
[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. 151180.
[25] A. Esser. Revisiting Nearest-Neighbor-Based Information Set Decoding. IMACC. Vol. 14421. Lecture
Notes in Computer Science. Springer, 2023, pp. 3454.
[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. 638666.
[27] A. Esser, R. Kübler, A. May. LPN Decoded. CRYPTO (2). Vol. 10402. Lecture Notes in Computer
Science. Springer, 2017, pp. 486514.
[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. 323.
[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. 360390.
[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. 282286.
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. 68306844.
[33] Q. Guo, T. Johansson, C. Löndahl. Solving LPN Using Covering Codes. J. Cryptol. Vol. 33, Num. 1
(2020), pp. 133.
[34] J. Håstad. Some optimal inapproximability results. J. ACM. Vol. 48, Num. 4 (2001), pp. 798859.
[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. 346365.
[36] G. Kachigar, J.-P. Tillich. Quantum Information Set Decoding Algorithms. PQCrypto. Vol. 10346. Lecture
Notes in Computer Science. Springer, 2017, pp. 6989.
[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. 507527.
[39] P. J. Lee, E. F. Brickell. An Observation on the Security of McElieces Public-Key Cryptosystem. EU-
ROCRYPT. Vol. 330. Lecture Notes in Computer Science. Springer, 1988, pp. 275280.
[40] É. Levieil, P.-A. Fouque. An Improved LPN Algorithm. SCN. Vol. 4116. Lecture Notes in Computer
Science. Springer, 2006, pp. 348359.
[41] Y. Li, R. H. Deng, X. Wang. On the equivalence of McElieces and Niederreiters public-key cryptosystems.
IEEE Trans. Inf. Theory. Vol. 40, Num. 1 (1994), pp. 271273.
[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. 123.
[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. 107124.
[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. 203228.
[45] R. J. McEliece. A Public-Key Cryptosystem Based On Algebraic Coding Theory. Deep Space Network
Progress Report. Vol. 44 (1978), pp. 114116.
[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. 241252.
[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. 323.
[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. 157166.
[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. 366377.
[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. 59.
[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. 106113.
[56] B. Zhang, L. Jiao, M. Wang. Faster Algorithms for Solving LPN. EUROCRYPT (1). Vol. 9665. Lecture
Notes in Computer Science. Springer, 2016, pp. 168195.
[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. 立てた連立線型方程式を簡約化することでxn ( = 0, 1, 2, . . .) 以外の変数を消去する。
4. 得られた 1 変数 xn に関する多項方程式を解いて xn の値を求める。
この手順で得られた xn の値を (5.2) に代入するとx1 , . . . , xn1 に関する MP 問題が得られる。この MP 問題に対
して,上の手順と同様のことを行うと,今度は xn1 の値を得ることができる。これを繰り返せば,最終的に 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 ), . . . , g1 (xn1 , xn ), g (xn )
という風にi が大きくなるにつれgi の変数の個数が広義単調に減るという形にできる。するとg (xn ) = 0 を
解いて xn の値を求めることができさらにg1 (xn1 , xn ) = 0 などに求めた xn の値を代入することでxn1 に
関する 1 変数の多項方程式が得られxn1 の値を求めることができる。これを繰り返すことで,すべての 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
1t
+ +
を満たすならば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
Cj =
C
で定めると,各 j = 1, . . . , m に対してRank Cj ≤ r を満たす。従ってCj の任意の (r + 1) × (r + 1) 小行列の行列式
!
n
= 0 という関係式が得られるが,このような関係式は j と小行列を動かすことにより m 個存在する。r 個の元
r+1
からなる T (⊂ {1, 2, . . . , n}) に対してT に属する列番号からなる C の r × r 小行列を CT と表し,さらにその行列式
を cT と表すとCj の任意の (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 PolynomialsIP問題は以下のように定義される。
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 PolynomialsEIP問題は以下
のように定義される。
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 , . . . , xm1 ) (gm (x1 , . . . , xm1 ) ∈ Fq [x1 , . . . , xm1 ])
の形で表されるとすると,任意の 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 = G1 (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), . . . , fmr (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 から Fqna への最大
ランクのアフィン写像と変更する。公開鍵は通常の双極型システムと同じようにF (x) = T ◦ G(x) ◦ S と定める。
よってF は Fqn+v から Fqna への多変数多項式写像となる。メッセージ(のハッシュ値) M ∈ Fqna に対する署
σ = 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 = G1 (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 = G1 (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
を満たす補間多項式によって計算する。次に (u) ∈ Fqη [u] ( = 1, . . . , n2 ) を
(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) は (u) の分散となる。)
P n1
7. 各パーティ Pj は Jq0 Kj = n1
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 , . . . , t1 で入れ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+j2 ))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<j≤k
ここでEi,j ∈ Fqm×m (1 ≤ i ≤ j ≤ k) は正則行列でありP (x, y) は P (x + y) P (x) P (y) で定まる双線形写
像である。すると,
P ⋆ (o1 , . . . , ok ) = 0m (o1 , . . . , ok ∈ O)
を満たすのでO k が P ⋆ (x1 , . . . , xk ) の oil 空間となる。ko = dimFq O k なのでko ≥ m を満たせばP ⋆ (x1 , . . . , xk )
は UOV の公開鍵として使用できる。Ei,j (1 ≤ i ≤ j ≤ n) をシステムパラメータとしておけばP ⋆ (x1 , . . . , xk ) は
(5.10) によりP (x) だけから構成できる。公開鍵を P (x) の係数集合だけで記述することで,公開鍵のサイズを小さ
くした UOV が MAYO である。さらに5.2.4.2 節で述べた UOV に対して適用できる公開鍵長削減手法はMAYO
に対しても適用可能である。
139
安全性パラメータを λ とし,以下の行列,関数を用意する。
• 正則行列 Ei,j ∈ Fqm×m (1 ≤ i ≤ j ≤ k)
• Expandsk 任意の λ-ビット列から 1 個の Fqo×v に属する行列を生成する疑似乱数生成関数
• Expandpk 任意の λ-ビット列から m 個の Fqv×v に属する上三角行列とm 個の Fqv×o に属する行列を生成
する疑似乱数生成関数
• H : {0, 1} → Fm
q 暗号学的ハッシュ関数
鍵生成
1. seedpk , seedsk ∈ {0, 1}λ をランダムに選ぶ。
2. Expandpk (seedpk ) の計算によりPi,1 ∈ Fqv×v (上三角行列), Pi,2 ∈ Fqv×o (i = 1, . . . , m) を得る。
3. Expandsk (seedsk ) の計算によりR ∈ Fqo×v を得る。
4. Pi,3 = upper(R Pi,1 R R Pi,2 ) ∈ Fqo×o (i = 1, . . . , m) を計算する。
公開鍵は pk = (seedpk , {Pi,3 }i=1,...,m ),秘密鍵は sk = seedsk である。次に,署名生成である。メッセージを
M ∈ {0, 1} とする。
署名生成
1. pk から (seedpk , {Pi,3 }i=1,...,m ) を取り出す。
2. sk から seedsk を取り出す。
3. Expandpk (seedpk ) の計算によりPi,1 ∈ Fqv×v (上三角行列), Pi,2 ∈ Fqv×o (i = 1, . . . , m) を得る。
4. Expandsk (seedsk ) の計算によりR ∈ Fqo×v を得る。
5. Fi = (Pi,1 + P
i,1 ) R + Pi,2 ∈ Fq
v×o
(i = 1, . . . , m) を計算する。
!
Iv 0v×o
6. U = ∈ Fqn×n とおく。
R Io
7. y1 , . . . , yk ∈ Fqv (横ベクトル)をランダムに選ぶ。
Pi Pk
8. Li = j=1 ((yj F1 ) , . . . , (yj Fm ) ) Ej,i + j=i+1 ((yj F1 ) , . . . , (yj Fm ) ) Ei,j ∈ Fqo×m (i = 1, . . . , k) を
計算する。
 
L1
 . 
9. L =  .. 
 ∈ Fq
ko×m
とおく。
Lk
Pk P
10. u = i=1 (yi P1,1 yi , . . . , yi Pm,1 yi ) Ei,i + 1≤i<j≤k (yi (P1,1 + P
1,1 ) yj , . . . , yi (Pm,1 + Pm,1 ) yj ) Ei,j ∈
Fqm を計算する。
11. salt ∈ {0, 1}λ をランダムに選びt = H(M k salt) を計算する。
12. 連立線形方程式 (x1 , . . . , xk ) L = t u の解を計算し,解 (x1 , . . . , xk ) = (z1 , . . . , zk ) ∈ Fqko を得る。もし解
がなければStep 11 に戻る。
13. s = ((y1 , z1 ) U, . . . , (yk , zk ) U) を計算する。
σ = (salt, s) が署名となる。最後に検証である。
検証
1. pk から (seedpk , {Pi,3 }i=1,...,m ) を取り出す。
2. σ から (salt, (s1 , . . . , sk )) を取り出す。
3. Expandpk (seedpk ) の計算によりPi,1 ∈ Fqv×v (上三角行列), Pi,2 ∈ Fqv×o (i = 1, . . . , m) を得る。
140
!
Pi,1 Pi,2
4. Pi = (i = 1, . . . , m) とおく。
0v×o Pi,3
5. t = H(M k salt) を計算する。
Pk P
6. t = i=1 (si P1 s
i , . . . , si Pk si ) Ei,i +
1≤i<j≤k (si (P1 + P1 ) sj , . . . , si (Pk + Pk ) sj ) Ei,j を計算する。
7. t = t ならば ‘受理’ を,それ以外は ‘棄却’ を返す。
5.3.3.2 MAYO のパラメータ選択
MAYO の設計に必要なパラメータは,λ, q, n, m, o, k である。MAYO の情報を発信しているウェブサイトで掲載さ
れているドキュメント [10] では,以下のように MAYO のパラメータ見積もりが公開されている。
表 5.5: MAYO のパラメータと鍵および署名のサイズ
(λ, q, n, m, o, k) 安全性レベル 公開鍵サイズ 秘密鍵サイズ 署名サイズ
(128, 16, 86, 78, 8, 10) レベル 1 1, 420 Bytes 24 Bytes 454 Bytes
(128, 16, 81, 64, 17, 4) レベル 1 4, 912 Bytes 24 Bytes 186 Bytes
(192, 16, 118, 108, 10, 11) レベル 3 2, 986 Bytes 32 Bytes 681 Bytes
(256, 16, 154, 142, 12, 12) レベル 5 5, 554 Bytes 40 Bytes 964 Bytes
5.3.4 署名方式 MQOM
5.3.4.1 MQOM の概要
MQOM [22] は5.2.5.1 節で説明した MQ 問題に関する秘匿マルチパーティ計算 fMQ から MPC-in-the-Head
で構成された署名方式である。5.2.5.2 節で述べたようにfMQ はゼロ知識証明に変換することができる。さらに,
Fiat-Shamir 変換により署名方式が構成できる。以下では5.2.5.1 節の設定や記号を用いる。安全性パラメータを λ
とし,以下の関数を用意する。
• Expand 任意の λ-ビット列を入力とする疑似乱数生成関数
• H1 , H2 , H3 : {0, 1} → {0, 1}2λ :暗号学的ハッシュ関数
• Commitコミットメント関数
鍵生成
1. seedpk , seedsk ∈ {0, 1}λ をランダムに選ぶ。
2. Expand(seedpk ) の計算によりAi ∈ Fqn×n (上三角行列), bi ∈ Fqn (i = 1, . . . , m) を得る。
3. Expand(seedsk ) の計算によりx ∈ Fqn を得る。
4. yi = x Ai x + x b
i (i = 1, . . . , m) を計算する。
公開鍵は pk = (seedpk , y = (y1 , . . . , ym )),秘密鍵は sk = seedsk である。次に,署名生成である。メッセージを
M ∈ {0, 1} とする。
署名生成
1. pk から (seedpk , y) を取り出す。
2. sk から seedsk を取り出す。
141
3. Expand(seedpk ) の計算によりAi ∈ Fqn×n (上三角行列), bi ∈ Fqn (i = 1, . . . , m) を得る。
4. salt ∈ {0, 1}2λ , mseed ∈ {0, 1}λ をランダムに選ぶ。
5. Expand(salt, mseed) の計算によりrseed[e] ∈ {0, 1}λ (e = 1, . . . , τ ) を得る。
6. e = 1, . . . , τ に対して以下を行う:
[e]
6-1. Expand(salt, rseed[e] ) の計算によりseedj ∈ {0, 1}λ (j = 1, . . . , N ) を得る。
[e]
6-2. すべての j = 1, . . . , N に対しExpand(salt, seedj ) の計算により以下を得る:
· j < N ならばJx [e] Kj , Ja1 Kj , . . . , Jan2 Kj , JQ Kj (u)
[e] [e] [e]
[e] [e]
· j = N ならばJa1 KN , . . . , Jan2 KN
PN 1
6-3. Jx [e] KN = x j=1 Jx [e] Kj を計算する。
6-4. コミットメントを計算する:
(
[e]
[e] Commit(salt, e, j, seedj ) j = 1, . . . , N 1
comj =
Commit(salt, e, N, seedN , Jx [e] KN )
[e]
j=N
[1] [τ ]
7. h1 = H1 (M, salt, com1 , . . . , comN ) を計算する。
[e] [e]
8. Expand(h1 ) の計算によりγ1 , . . . , γm (e = 1, . . . , τ ) を得る。
9. e = 1, . . . , τ に対して以下を行う:
9-1. fMQ のヒントオラクルと同じ計算によりx , {Ai , bi }i=1,...,m , γ1 , . . . , γm , a1 , . . . , an2
[e] [e] [e] [e]
PN
但しai = j=1 Jai Kj からQ (u) ∈ Fqη [u] を計算する。
[e] [e] [e]
P N 1
9-2. JQ KN (u) = Q (u) j=1 JQ Kj (u) を計算する。
[e] [e] [e]
9-3. コミットメント com N = Commit(salt, e , 0 , JQ KN (u)) を計算する。
[e] [e]
10. h2 = H2 (M, salt, h1 , com N , . . . , com N ) を計算する。
[1] [τ ]
11. Expand(h2 ) の計算によりr[1] , . . . , r [τ ] ∈ Fqη を得る。
12. e = 1, . . . , τ に対して以下を行う:
12-1. fMQ に お け る 全 パー テ ィ と 同 じ 計 算 に よ り Jx [e] K, Ja1 K, . . . , Jan2 K, JQ K(u) から Jbroad[e] K =
[e] [e] [e]
[e] [e]
(Jc1 K, . . . , Jcn2 K, Jv [e] K) を計算する。
[e] [e] PN
12-2. broad[e] = (c1 , . . . , cn2 , v [e] ) = j=1 Jbroad[e] K を計算する。
13. h3 = H3 (M, salt, h2 , Jbroad[1] K, . . . , Jbroad[τ ] K) を計算する。
14. Expand(h3 ) の計算によりi [1] , . . . , i [τ ] ∈ {1, . . . , N } を得る。
15. view[e] (e = 1, . . . , τ ) を以下のようにおく:
(
({seedj }j∈{1,...,N }\{i [e] } , Jx [e] KN , JQ KN (u)) (i [e] 6= N )
[e] [e]
[e]
view =
(i [e] = N )
[e]
({seedj }j∈{1,...,N }\{i [e] } )
16. σ = (salt, h1 , h2 , h3 , {view[e] , broad[e] , comi [e] , com N }e=1,...,τ ) とおく。
[e] [e]
σ が署名となる。最後に検証である。
検証
1. pk から (seedpk , y) を取り出す。
2. σ から (salt, h1 , h2 , h3 , {view[e] , broad[e] , comi [e] , com N }e=1,...,τ ) を取り出す。
[e] [e]
3. Expand(seedpk ) の計算によりAi ∈ Fqn×n (上三角行列), bi ∈ Fqn (i = 1, . . . , m) を得る。
[e] [e]
4. Expand(h1 ) の計算によりγ1 , . . . , γm (e = 1, . . . , τ ) を得る。
5. Expand(h2 ) の計算によりr[1] , . . . , r [τ ] ∈ Fqη を得る。
6. Expand(h3 ) の計算によりi [1] , . . . , i [τ ] ∈ {1, . . . , N } を得る。
142
7. e = 1, . . . , τ に対して以下を行う:
[e] [e]
7-1. broad[e] から (c1 , . . . , cn2 , v [e] ) を取り出す。
7-2. view[e] から以下を取り出す:
· i [e] 6= N ならば, {seedj }j∈{1,...,N }\{i [e] } , Jx [e] KN , JQ KN (u)
[e] [e]
· i [e] = N ならば, {seedj }j∈{1,...,N }\{i [e] }
[e]
7-3. すべての j ∈ {1, . . . , N }\{i [e] } に対しExpand(salt, seedj ) の計算により以下を得る:
[e]
· j < N ならばJx [e] Kj , Ja1 Kj , . . . , Jan2 Kj , JQ Kj (u)
[e] [e] [e]
[e] [e]
· j = N ならばJa1 KN , . . . , Jan2 KN
7-4. すべての j ∈ {1, . . . , N }\{i [e] } に対しfMQ における Pj と同じ計算より, Jx [e] Kj , Ja1 Kj , . . . , Jan2 Kj ,
[e] [e]
JQ Kj (u), c1 , . . . , cn2 からJbroad[e] Kj = (Jc1 Kj , . . . , Jcn2 Kj , Jv [e] Kj ) を計算する。
[e] [e] [e] [e] [e]
P
7-5. Jbroad[e] Ki [e] = broad[e] j∈{1,...,N }\{i [e] } Jbroad[e] Kj を計算する。
7-6. すべての j ∈ {1, . . . , N }\{i [e] } に対し,以下のようにコミットメントを計算する:
[e] [e]
· j < N ならば, comj = Commit(salt, e, j, seedj )
· j = N ならば, comj = Commit(salt, e, N, seedN , Jx [e] KN )
[e] [e]
com j = Commit(salt, e, 0, JQ KN (u))
[e] [e]
8. h1 = H1 (M, salt, com1 , . . . , comN ) を計算する。
[1] [τ ]
9. h2 = H2 (M, salt, h1 , com N , . . . , com N ) を計算する。
[1] [τ ]
10. h3 = H3 (M, salt, h2 , Jbroad[1] K, . . . , Jbroad[τ ] K) を計算する。
11. i [e] 6= N なる e ∈ {1, . . . , τ } でcom N 6= com N となるものがあれば,‘棄却’ を返す。
[e] [e]
12. v [e] 6= 0 なる e ∈ {1, . . . , τ } があれば,‘棄却’ を返す。
13. (h1 , h2 , h3 ) 6= (h1 , h2 , h3 ) ならば,‘棄却’ を返す。それ以外は ‘受理’ を返す。
5.3.4.2 MQOM のパラメータ選択
MQOM の設計に必要なパラメータは,λ, q, m, n, n1 , n2 , η, N, τ である。NIST PQC 標準化プロジェクト追加署名
第 1 ラウンドに提出されたドキュメント [22] ではさらに効率性向上のテクニックhypercube optimizationseed
tree など)が追加されており,それを踏まえて以下のように MQOM のパラメータの見積もりが公開されている。
143
表 5.6: MQOM のパラメータと鍵および署名のサイズ。署名中の view[e] に含まれる要素数が署名生成ごとに異なるた
め,署名サイズは平均値が与えられている。
(λ, q, m(= n), n1 , n2 , η, N, τ ) 安全性レベル 公開鍵サイズ 秘密鍵サイズ 署名サイズ(平均)
(128, 31, 49, 5, 10, 10, 256, 20) レベル 1 47 Bytes 78 Bytes 6, 348 Bytes
(128, 31, 49, 5, 10, 6, 32, 35) レベル 1 59 Bytes 102 Bytes 6, 575 Bytes
(128, 251, 43, 4, 11, 5, 256, 22) レベル 1 47 Bytes 78 Bytes 7, 621 Bytes
(128, 251, 43, 4, 11, 4, 32, 34) レベル 1 59 Bytes 102 Bytes 7, 809 Bytes
(192, 31, 77, 6, 13, 11, 256, 30) レベル 3 73 Bytes 122 Bytes 13, 837 Bytes
(192, 31, 77, 6, 13, 7, 32, 51) レベル 3 92 Bytes 160 Bytes 14, 257 Bytes
(192, 251, 68, 5, 14, 7, 256, 30) レベル 3 73 Bytes 122 Bytes 16, 590 Bytes
(192, 251, 68, 5, 14, 4, 32, 52) レベル 3 92 Bytes 160 Bytes 17, 161 Bytes
(256, 31, 106, 6, 18, 10, 256, 42) レベル 5 99 Bytes 166 Bytes 24, 147 Bytes
(256, 31, 106, 6, 18, 8, 32, 66) レベル 5 125 Bytes 218 Bytes 24, 926 Bytes
(256, 251, 93, 6, 16, 7, 256, 41) レベル 5 99 Bytes 166 Bytes 28, 917 Bytes
(256, 251, 93, 6, 16, 5, 32, 66) レベル 5 125 Bytes 218 Bytes 29, 919 Bytes
5.3.5 署名方式 MiRitH
5.3.5.1 MiRitH の概要
MiRitH [3] はMinRank 問題に関する秘匿マルチパーティ計算から MPC-in-the-Head で構成された署名方式であ
る。MinRank 問題は 5.1.3 節でも述べたが,次のように表現することもできる。
MinRank 問題(別バージョン) 正の整数 r と行列 M0 , . . . , Mk ∈ Fqm×n に対しα1 , . . . , αk ∈ Fq で,
!
X
k
Rank M0 + αi Mi ≤r
i=1
なるものを求めよ。
r×(nr)
もし,α = (α1 , . . . , αk ) ∈ Fqk と K ∈ Fq が存在し,
!  
X
k
Inr
M0 + αi Mi · = 0m×(nr) (5.11)
K
i=1
となるならば,α は MinRank 問題の解である。M = (M0 , . . . , Mk ) に対しMα ∈ Fqm×n を
X
k
Mα = M 0 + αi Mi
i=1
m×(nr)
α ∈ Fq
としML α ∈ Fq
, MR をそれぞれMα の左側 n r 列Mα の右側 r 列で定めると,(5.11) は
m×r
α = Mα · K と同値である。そこで,
ML (秘匿マルチパーティ計算において設定される関係 R の)命題を MinRank
R
問題のインスタンスとし,その証拠を α, K としておけば,α が MinRank 問題の解であることがMα のラン
クを直接計算をせずとも)効率的に検証できる。以下の検証プロトコルでは,ランダム行列 R ∈ Fqs×m を用意
144
α Mα · K) とおきV = 0s×(nr) となることで (5.11) を確認する。(5.11) が成り立つときは
V = R (ML R
V = 0s×(nr) が必ず成り立つが,(5.11) が成り立たないときに V = 0s×(nr) となる確率は約 1/q s である。
安全性パラメータを λ とし,以下の関数を用意する。
• Expand 任意の λ-ビット列を入力とする疑似乱数生成関数
• H1 , H2 : {0, 1} → {0, 1}2λ :暗号学的ハッシュ関数
• Commitコミットメント関数
鍵生成
1. seedpk , seedsk ∈ {0, 1}λ をランダムに選ぶ。
2. Expand(seedpk ) の計算によりM1 , . . . , Mk ∈ Fqm×n を得る。
r×(nr)
3. Expand(seedsk ) の計算によりα1 , . . . , αk ∈ Fq , K ∈ Fq , ER ∈ Fqm×r を得る。
4. ER K を計算し,左側の n r 列を ER K右側の r 列を ER として定まる行列を E ∈ Fqm×n とする。
Pk
5. M0 = E =1 α M を計算する。
公開鍵は pk = (seedpk , M0 ),秘密鍵は sk = seedsk である。次に,署名生成である。メッセージを M ∈ {0, 1}
する。
署名生成
1. pk から (seedpk , M0 ) を取り出す。
2. sk から seedsk を取り出す。
3. Expand(seedpk ) の計算によりM1 , . . . , Mk ∈ Fqm×n を得る。
4. salt ∈ {0, 1}2λ をランダムに選ぶ。
5. e = 1, . . . , τ に対して以下を計算する:
5-1. seed[e] ∈ {0, 1}λ をランダムに選ぶ。
[e]
5-2. Expand(salt, seed[e] ) の計算によりseedj ∈ {0, 1}λ (j = 1, . . . , N ) を得る。
[e]
5-3. すべての j = 1, . . . , N に対しExpand(salt, seedj ) の計算により以下を得る:
[e] [e] r×(nr) s×(nr)
· j < N ならばJA[e] Kj ∈ Fqs×r , Jα1 Kj , . . . , Jαk Kj (∈ Fq ), JK[e] Kj ∈ Fq , JC[e] Kj ∈ Fq
· j = N ならばJA[e] KN ∈ Fqs×r
[e] PN 1 [e]
5-4. Jα KN = α j=1 Jα Kj ( = 1, . . . , k) を計算する。
PN 1 PN 1
5-5. JK[e] KN = K j=1 JK[e] Kj JC[e] KN = A[e] K j=1 JC[e] Kj を計算する。
( [e]
[e] (seedj ) (j = 1, . . . , N 1)
5-6. statej = [e] [e] [e]
とおく。
(seedN , Jα1 KN , . . . , Jαk KN , JK KN , JC KN ) (j = N )
[e] [e]
[e] [e]
5-7. コミットメント comj = Commit(salt, e, j, statej ) (j = 1, . . . , N ) を計算する。
[1] [τ ]
6. h1 = H1 (M, salt, com1 , . . . , comN ) を計算する。
7. Expand(h1 ) の計算によりR[e] ∈ Fqs×m (e = 1, . . . , τ ) を得る。
8. e = 1, . . . , τ に対して以下を計算する:
[e] [e] L [e] R [e]
8-1. Jα1 K, . . . , Jαk K よりJMα K, JMα K を計算する。
R [e]
8-2. JS K = R
[e] [e]
JMα K + JA[e] K を計算する。
PN
8-3. S[e] = j=1 JS[e] Kj を計算する。
L [e]
8-4. JV[e] K = S[e] JK[e] K R[e] JMα K JC[e] K を計算する。
PN
8-5. V[e] = j=1 JV[e] Kj を計算する。
8-6. Jbroad[e] K = (JS[e] K, JV[e] K), broad[e] = (S[e] , V[e] ) とおく。
145
9. h2 = H2 (M, salt, h1 , Jbroad[1] K, · · · , Jbroad[τ ] K) を計算する。
10. Expand(h2 ) の計算によりi [1] , . . . , i [τ ] ∈ {1, . . . , N } を得る。
11. view[e] をすべての j ∈ {1, . . . , N }\{i [e] } に対する statej のリストとする。
[e]
12. σ = (salt, h1 , h2 , {view[e] , broad[e] , comi [e] }e=1,...,τ ) とおく。
σ が署名となる。最後に検証である。
検証
1. pk から (seedpk , M0 ) を取り出す。
2. σ から (salt, h1 , h2 , {view[e] , broad[e] , comi [e] }e=1,...,τ ) を取り出す。
3. Expand(seedpk ) の計算によりM1 , . . . , Mk ∈ Fqm×n を得る。
4. Expand(h1 ) の計算によりR[e] ∈ Fqs×m (e = 1, . . . , τ ) を得る。
5. Expand(h2 ) の計算によりi [1] , . . . , i [τ ] ∈ {1, . . . , N } を得る。
6. e = 1, . . . , τ に対して以下を計算する:
6-1. broad[e] から (S[e] , V[e] ) を取り出す。
[e]
6-2. view[e] から (statej )j∈{1,...,N }\{i [e] } を取り出す。
6-3. コミットメント comj = Commit(salt, e, j, statej ) (j ∈ {1, . . . , N }\{i [e] }) を計算する。
[e] [e]
6-4. すべての j ∈ {1, . . . , N }\{i [e] } に対しstatej により以下を得る:
[e]
[e]
· j < N ならばseedj
[e] [e] [e]
· j = N ならばseedN , Jα1 KN , . . . , Jαk KN , JK[e] KN , JC[e] KN
6-5. すべての j ∈ {1, . . . , N }\{i [e] } に対しExpand(salt, seedj ) の計算により以下を得る:
[e]
[e] [e]
· j < N ならばJA[e] Kj , Jα1 Kj , . . . , Jαk Kj , JK[e] Kj , JC[e] Kj
· j = N ならばJA[e] KN
6-6. すべての j ∈ {1, . . . , N }\{i [e] } に対しJα1 Kj , . . . , Jαk Kj よりJMα Kj , JMα
[e] [e] L [e] R [e]
Kj を計算する。
R [e] [e]
6-7. JS Kj = R JMα Kj + JA Kj (j ∈ {1, . . . , N }\{i }) を計算する。
[e] [e] [e]
6-8. JV[e] Kj = S[e] JK[e] Kj R[e] JMα Kj JC[e] Kj (j ∈ {1, . . . , N }\{i [e] }) を計算する。
L [e]
6-9. Jbroad[e] Kj = (JS[e] Kj , JV[e] Kj ) (j ∈ {1, . . . , N }\{i [e] }) とおく。
P
6-10. Jbroad[e] Ki [e] = broad[e] j∈{1,...,N }\{i [e] } Jbroad[e] Kj を計算する。
7. h1 = H1 (M, salt, com1 , . . . , comN ) を計算する。
[1] [τ ]
8. h2 = H2 (M, salt, h1 , Jbroad[1] K, · · · , Jbroad[τ ] K) を計算する。
9. V[e] 6= 0s×(nr) なる e ∈ {1, . . . , τ } があれば,‘棄却’ を返す。
10. (h1 , h2 ) 6= (h1 , h2 ) ならば,‘棄却’ を返す。それ以外は ‘受理’ を返す。
5.3.5.2 MiRitH のパラメータ選択
MiRitH の設計に必要なパラメータは,λ, q, m, n, k, r, s, N, τ である。NIST PQC 標準化プロジェクト追加署名第
1 ラウンドに提出されたドキュメント [3] ではさらに効率性向上のテクニックhypercube optimizationseed tree
など)が追加されており,それを踏まえて以下のように MiRitH のパラメータの見積もりが公開されている。署名中の
view[e] に含まれる要素数が署名生成ごとに異なるため,署名長は平均値が与えられている。
146
表 5.7: MiRitH のパラメータと鍵および署名のサイズ。署名中の view[e] に含まれる要素数が署名生成ごとに異なるた
め,署名サイズは平均値が与えられている。
(λ, q, m(= n), k, r, s, N, τ ) 安全性レベル 公開鍵サイズ 秘密鍵サイズ 署名サイズ(平均)
(128, 16, 15, 78, 6, 5, 16, 39) レベル 1 129 Bytes 16 Bytes 7, 661 Bytes
(128, 16, 15, 78, 6, 9, 256, 19) レベル 1 129 Bytes 16 Bytes 5, 665 Bytes
(128, 16, 16, 142, 4, 5, 16, 39) レベル 1 144 Bytes 16 Bytes 8, 800 Bytes
(128, 16, 16, 142, 4, 9, 256, 19) レベル 1 144 Bytes 16 Bytes 6, 298 Bytes
(192, 16, 19, 109, 8, 7, 16, 55) レベル 3 205 Bytes 24 Bytes 16, 668 Bytes
(192, 16, 19, 109, 8, 9, 256, 29) レベル 3 205 Bytes 24 Bytes 12, 423 Bytes
(192, 16, 19, 167, 6, 7, 16, 55) レベル 3 205 Bytes 24 Bytes 17, 882 Bytes
(192, 16, 19, 167, 6, 9, 256, 29) レベル 3 205 Bytes 24 Bytes 13, 115 Bytes
(256, 16, 21, 189, 7, 7, 16, 74) レベル 5 253 Bytes 32 Bytes 29, 568 Bytes
(256, 16, 21, 189, 7, 10, 256, 38) レベル 5 253 Bytes 32 Bytes 21, 763 Bytes
(256, 16, 22, 254, 6, 7, 16, 74) レベル 5 274 Bytes 32 Bytes 31, 980 Bytes
(256, 16, 22, 254, 6, 10, 256, 38) レベル 5 274 Bytes 32 Bytes 23, 144 Bytes
5.4 多変数多項式に基づく暗号技術に関するまとめ
1984 年にOng と Schnorr が多変数 2 次多項式を利用した署名方式 [32] を提案した。したがって,多変数多項式を
利用した暗号技術は,既に 40 年以上の歴史を持つことになる。Ong と Schnorr の署名方式は,合成数を法とする剰余
環を係数としており合成数の素因数分解ができないことを安全性の仮定としていたが1988 年に,松本と今井によ
り,初めて有限体を係数とした多変数多項式を利用した公開鍵暗号方式 [31] が提案された*2 。これ以降MQ 問題の解
読困難性を安全性の仮定とする方式が数多く提案されており,現在に至る。
多変数多項式に基づく公開鍵暗号方式,および,署名方式の多くは双極型システムを用いて構成されている。双極型
システムは,暗号化や検証が効率的に実行できるという特徴を持つ。双極型システムを用いて構成されている署名方
式 UOV も,この特徴を持ち,さらに,署名長が短いという特徴も持っている。一方で,双極型システムは公開鍵長
が大きくなりやすいという課題もある。UOV に対しては,公開鍵長を削減する改良を加えた変種として QR-UOV や
MAYO が提案されている。
一方でMQ 問題や MinRank 問題に付随する秘匿マルチパーティ計算から MPC-in-the-Head の枠組みを利用して
署名方式を構成することができる。こちらは方式が提案されてからまだ数年しかたっていないということもあり,今後
の研究動向を見守る必要がある。
*2 かつて国内では「多次多変数暗号」と呼ばれていた
147
第 5 章の参照文献
[1] W. W. Adams, P. Loustaunau. An Introduction to Gröbner Bases. Vol. 3. Graduate Studies in Mathe-
matics. American Mathematical Society.
[2] G. Adj, L. Rivera-Zamarripa, J. A. Verbel. MinRank in the Head: Short Signatures from Zero-Knowledge
Proofs. (2022). https://eprint.iacr.org/2022/1501.
[3] G. Adj, L. Rivera-Zamarripa, J. A. Verbel, E. Bellini, S. Barbero, A. Esser, C. Sanna, F. Zweydinger.
MiRitH. 2022-08. https://csrc.nist.gov/csrc/media/Projects/pqc-dig-sig/documents/round-
1/submission-pkg/mirith-submission.zip. Submission to the NISTs Post-Quantum Cryptography:
Additional Digital Signature Schemes, round 1.
[4] M. Bardet, M. Bros, D. Cabarcas, P. Gaborit, R. A. Perlner, D. Smith-Tone, J.-P. Tillich, J. A. Verbel.
Improvements of Algebraic Attacks for Solving the Rank Decoding and MinRank Problems. ASIACRYPT
(1). Vol. 12491. Lecture Notes in Computer Science. Springer, 2020, pp. 507536.
[5] M. Bardet, J.-C. Faugère, B. Salvy, B.-Y. Yang. Asymptotic expansion of the degree of regularity for
semi-regular systems of equations. Effective Methods in Algebraic Geometry (MEGA). 2004, pp. 7174.
[6] E. Bellini, A. Esser, C. Sanna, J. Verbel. MR-DSS Smaller MinRank-based (Ring-)Signatures. (2022).
https://eprint.iacr.org/2022/973.
[7] W. Beullens. Improved cryptanalysis of UOV and Rainbow. Cryptology ePrint Archive, Paper 2020/1343.
2020. https://eprint.iacr.org/2020/1343.
[8] W. Beullens. MAYO: Practical Post-quantum Signatures from Oil-and-Vinegar Maps. SAC. Vol. 13203.
Lecture Notes in Computer Science. Springer, 2021, pp. 355376.
[9] W. Beullens, F. Campos, S. Celi, B. Hess, M. J. Kannwischer. MAYO. 2022-08. https://csrc.nist.gov/
csrc/media/Projects/pqc- dig- sig/documents/round- 1/submission- pkg/mayo- submission.zip.
Submission to the NISTs Post-Quantum Cryptography: Additional Digital Signature Schemes, round 1.
[10] W. Beullens, F. Campos, S. Celi, B. Hess, M. J. Kannwischer. MAYO Round 2 Version. 2025-02. https:
//pqmayo.org/assets/specs/mayo-round2.pdf.
[11] W. Beullens et al. UOV. 2022-08. https://csrc.nist.gov/csrc/media/Projects/pqc- dig- sig/
documents/round-1/submission-pkg/UOV-submission.zip. Submission to the NISTs Post-Quantum
Cryptography: Additional Digital Signature Schemes, round 1.
[12] Ward Beullens. Breaking Rainbow Takes a Weekend on a Laptop. CRYPTO (2). Vol. 13508. Lecture
Notes in Computer Science. Springer, 2022, pp. 464479.
[13] A. Caminata, E. Gorla. Solving degree, last fall degree, and related invariants. Journal of Symbolic
Computation. Vol. 114 (2023), pp. 322335.
148
[14] A. Casanova, J.-C. Faugere, G. Macario-Rat, J. Patarin, L. Perret, J. Ryckeghem. GeMSS. https :
/ / csrc . nist . gov / CSRC / media / Projects / Post - Quantum - Cryptography / documents / round - 2 /
submissions/GeMSS-Round2.zip. Submission to the NISTs Post-Quantum Cryptography, round 2.
[15] N. T. Courtois. Efficient Zero-Knowledge Authentication Based on a Linear Algebra Problem MinRank.
ASIACRYPT. Vol. 2248. Lecture Notes in Computer Science. Springer, 2001, pp. 402421.
[16] J. Ding, J. E. Gower, D. S. Schmidt. Multivariate Public Key Cryptosystems. Vol. 25. Advances in
Information Security. Springer, 2006.
[17] J. Ding, D. Schmidt. Rainbow, a New Multivariable Polynomial Signature Scheme. ACNS. Vol. 3531.
Lecture Notes in Computer Science. 2005, pp. 164175.
[18] V. Dubois, N. Gama. The Degree of Regularity of HFE Systems. ASIACRYPT. Vol. 6477. Lecture Notes
in Computer Science. Springer, 2010, pp. 557576.
[19] J.-C. Faugère. A new efficient algorithm for computing Gröbner bases (F4). J. Pure Appl. Algebra. Vol.
139 (1999), pp. 6188.
[20] J.-C. Faugère. A new efficient algorithm for computing Gröbner bases without reduction to zero (F5).
ISSAC. ACM, 2002, pp. 7583.
[21] J.-C. Faugère, M. S. El Din, P.-J. Spaenlehauer. Computing loci of rank defects of linear matrices using
Gröbner bases and applications to cryptology. ISSAC. ACM, 2010, pp. 257264.
[22] T. Feneuil, M. Rivain. MQOM (MQ on my mind). 2022-08. https://csrc.nist.gov/csrc/media/
Projects/pqc-dig-sig/documents/round-1/submission-pkg/mqom-submission.zip. Submission to
the NISTs Post-Quantum Cryptography: Additional Digital Signature Schemes, round 1.
[23] Fukuoka MQ Challenge. https://www.mqchallenge.org/. 2025-03-04 閲覧).
[24] H. Furue, Y. Ikematsu, Y. Kiyomura, T. Takagi. A New Variant of Unbalanced Oil and Vinegar Using
Quotient Ring: QR-UOV. ASIACRYPT (4). Vol. 13093. Lecture Notes in Computer Science. Springer,
2021, pp. 187217.
[25] H. Furue, Y. Ikematsu, Y. Kiyomura, T. Takagi, K. Yasuda, T. Miyazawa, T. Saito, A. Nagai. QR-
UOV. 2022-08. https://csrc.nist.gov/csrc/media/Projects/pqc- dig- sig/documents/round-
1/submission-pkg/QR-UOV-submission.zip. Submission to the NISTs Post-Quantum Cryptography:
Additional Digital Signature Schemes, round 1.
[26] M. R. Garay, D. S. Johnson. A Guide to the Theory of NP-Completeness. In Computers and Intractability.
W.H. Freeman, 1979.
[27] L. Goubin, N.T. Courtois. Cryptanalysis of the TTM Cryptosystem. ASIACRYPT. Vol. 1976. Lecture
Notes in Computer Science. Springer, 2000, pp. 4457.
[28] Y. Ishai, E. Kushilevitz, R. Ostrovsky, A. Sahai. Zero-knowledge from secure multiparty computation.
STOC. ACM, 2007, pp. 2130.
[29] A. Kipnis, L. Patarin, L. Goubin. Unbalanced Oil and Vinegar Signature Schemes. EUROCRYPT. Vol.
1592. Lecture Notes in Computer Science. Springer, 1999, pp. 206222.
[30] A. Kipnis, A. Shamir. Cryptanalysis of the HFE Public Key Cryptosystem by Relinearization. CRYPTO.
Vol. 1666. Lecture Notes in Computer Science. Springer, 1999, pp. 1930.
[31] 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. 419453.
149
[32] H. Ong, C.-P. Schnorr. Signatures through Approximate Representation by Quadratic Forms. CRYPTO.
Plenum Press, New York, 1983, pp. 117131.
[33] J. Patarin. Hidden Fields Equations (HFE) and Isomorphisms of Polynomials (IP): Two New Families of
Asymmetric Algorithms. EUROCRYPT. Vol. 1070. Lecture Notes in Computer Science. Springer, 1996,
pp. 3348.
[34] A. Petzoldt, M.-S. Chen, B.-Y. Yang, C. Tao, J. Ding. Design Principles for HFEv-Based Multivariate
Signature Schemes. ASIACRYPT (1). Vol. 9452. Lecture Notes in Computer Science. Springer, 2015,
pp. 311334.
[35] B. Santoso, Y. Ikematsu, S. Nakamura, T. Yasuda. Three-Pass Identification Scheme Based on MinRank
Problem with Half Cheating Probability. arXiv: 2205.03255.
[36] C. Tao, A. Petzoldt, J. Ding. Efficient Key Recovery for All HFE Signature Variants. CRYPTO (1). Vol.
12825. Lecture Notes in Computer Science. Springer, 2021, pp. 7093.
[37] C. Wolf. Taxonomy of public key schemes based on the problem of Multivariate Quadratic equations.
Cryptology ePrint Archive, Paper 2005/077. 2005. https://eprint.iacr.org/2005/077.
[38] B.-Y. Yang, J.-M. Chen. All in the XL Family: Theory and Practice. ICISC. Vol. 3506. Lecture Notes in
Computer Science. Springer, 2004, pp. 6786.
150
第6章
同種写像に基づく暗号技術
本章では同種写像に基づく暗号技術についてまとめる。同種写像に基づく暗号技術の安全性は,同種写像問題を解く
計算の困難性及び(それと同値な)自己準同型環計算問題の困難性に依存しており,同種写像暗号に関する研究はこれ
まで継続して進められている。特に,本報告書の 2022 年度版 [1] と比べて,高次元同種写像計算を利用した鍵共有・署
名構成に進展が見られている6.2.2.2 節6.3.1.2 節及び 6.4 節参照)。
6.1 節では,安全性の根拠となる問題として,同種写像問題の一般形を述べた後,最近発見された SIDHSupersingular
Isogeny DiffieHellman同種写像問題 [59] に対する解法について述べる。そして,その攻撃法を回避する計算問題と
して,レベル構造付き同種写像問題,同種写像に基づく一方向性群作用に関する計算問題,自己準同型環計算問題及び
SQIsignShort Quaternion and Isogeny Signature署名方式 [61] の安全性に関する計算問題の順に,その概要を記
述していく。6.2 節では,代表的な暗号方式として,一方向性群作用に基づく CSIDH Commutative Supersingular
Isogeny DiffieHellman鍵共有 [29] とその変種SIDH 型の鍵共有方式CSIDH ベースの SeaSign 署名方式 [58]
CSI-FiShCommutative Supersingular Isogeny FiatShamir署名方式 [16],そして自己準同型環計算問題に基づ
く GPSGalbraithPetitSilva署名方式 [72] を取り上げる。6.3 節では主要な暗号方式としてGPS 署名方式を
改良した SQIsign 署名方式を解説する。
本章では,超特異楕円曲線を用いた暗号技術を主に扱う。しかし,通常楕円曲線に基づく CRS Couveignes
RostovtsevStolbunov鍵共有法 [42, 109] を改良した De Feo らの方式 [60] は,それ自体は実用的な性能にはまだ遠
いが6.2.1.1 節で説明する CSIDH 鍵共有の原型を与えているという点で重要である。また,群作用暗号を量子マネー
へ応用した [120, 90] では,通常楕円曲線が用いられている。
同種写像の数学的詳細についてはDe Feo の概説記事 [55] や Washington の楕円曲線の教科書 [118] を参照の
こと。和書では,相川らによる概説書 [121] において,同種写像暗号に必要な数学も詳しく説明されている。また,
GalbraithVercauteren による同種写像関連問題のサーベイ [73] も参照する。
■記法 x ←R X はx を有限集合 X から一様ランダムにサンプリングすることを表す。以下では,有限体上に定義
された楕円曲線のみを扱い,同種写像暗号では,多くの場合,モンゴメリ型の楕円曲線定義式 Ea,b : by 2 = x3 + ax2 + x
が用いられる。標数 p の有限体 F 上定義された楕円曲線 E に対しOE は E の無限遠点でありF の拡大体 K に対し
K-有理点群は E(K) := {(x, y) ∈ K2 | (x, y) は E の定義式を満たす } {OE } で与えられる。また,正整数 r に
対して E の r-ねじれ部分群は E[r] := {P ∈ E(Fp ) | rP = OE } で与えられる。ここで Fp は有限体 Fp の代数閉包を
表す。
151
6.1 同種写像に基づく暗号技術の安全性の根拠となる問題
6.1.1 節で同種写像問題の一般形を述べた後6.1.2 節で 2022 年に発見された SIDH 同種写像問題に対する解法につ
いて述べそしてその攻撃法を回避する計算問題としてレベル構造付き同種写像問題6.1.3 節),同種写像に基づ
く一方向性群作用に関する計算問題6.1.4 節)
,自己準同型環計算問題と SQIsign 署名方式の安全性に関する計算問題
6.1.5 節)の順に,その概要及びそれら問題に対する解析状況について記述していく。
レベル構造付き同種写像問題に基づく QFESTA 暗号方式・鍵共有 [96] は,現時点で効率面で最も良い同種写像ベー
ス鍵共有法を実現しており6.2.2.2 節で紹介される。また,同種写像ベースの一方向性群作用に関する計算問題は,
様々な暗号応用に対して有用であり6.2.1 節及び 6.2.3 節でそれぞれ基本的な CSIDH 鍵共有と CSI-FiSh 署名方式が
示される。そして自己準同型環計算問題と関連する計算問題はNIST PQC 標準化プロジェクト追加署名第 1 ラウ
ンドを通過した SQIsign 署名方式6.3.1 節)を基礎付けるために重要である。
つまり6.1.3 節から 6.1.5 節までで示される 3 種の同種写像問題群はそれぞれに重要な応用先を有しており,それ
らの安全性に関して検討することが同種写像暗号を評価する第一歩である。
6.1.1 同種写像問題の一般形
同種写像とは2 つの楕円曲線 E, E の間の写像 φ でありE の座標 (x, y) の有理式で与えられると共に,楕円曲線
の加法構造に関する準同型性,即ち φ(P + Q) = φ(P ) + φ(Q),を有する非零写像である。(その正確な定義は,前掲
の各文献を参照のこと。またE, E の間に,同種写像 φ が存在する時にE と E は同種であるという。
同種写像 φ は,その核 C = ker(φ) によって決まるので,φ の定義域曲線始点曲線E に対して φ の値域となる楕
円曲線を E/C と書き表す,すなわち,φ : E → E/C 。核 C = ker(φ) の位数がセキュリティパラメータ λ の多項式サ
イズであればC = ker(φ) の生成元から φ を効率的に計算するアルゴリズムが Vélu によって与えられている [116]。
(モンゴメリ型楕円曲線に対する Vélu の公式に関しては,[105] を参照のこと。) 特に核の位数 #C が小素数になる同
種写像の計算を同種写像基本演算として,それらの合成が同種写像暗号での基本的な暗号演算を与えることになる。そ
して,その合成における基本演算の組み合わせ方法が,秘密鍵情報を与える。
つまり,同種な楕円曲線の間の同種写像を計算することを要求する次の同種写像問題が,具体的な暗号方式の安全性
を根拠づける次節以降の諸問題の基本形となる。(超特異同種写像問題と自己準同型環計算問題との計算量的同値性に
関しては 6.1.5 節で触れる。)
定義 6.1 (一般形同種写像問題 [73]) 2 つの同種な楕円曲線 E, E に対して,同種写像 φ を計算せよ。(φ のコンパク
トな表現を与えよ。)
Y
ここで,
「φ のコンパクトな表現」とは様々な表現方法が考えられる。例えばdeg(φ) が小素数 i によって ei i
i
となっている場合には,この分解に沿って φ を分解した各 i 次同種写像の像に現れる値域楕円曲線(又は j 不変量)の
列挙で与えることができる。また6.1.2 節にて後述する SIDH 同種写像問題(定義 6.2)の設定では,核の生成点が,
同種写像のコンパクトな表現を与える。そして6.2.1.1 節で与えられる CSIDH 鍵共有では虚 2 次整環(オーダー)の
イデアル類によって同種写像が表現される。6.1.2 節で述べられる SIDH 鍵共有に対する攻撃法は,楕円曲線同種写像
に対する新しい表現法を与えた [107]。最近の高次元同種写像を用いた同種写像暗号の進展は,この新しい同種写像表
現法に基づいて行われている。SIDH 同種写像問題6.1.4 節にて後述する CSIDH-(R)EGA-DL 問題(定義 6.56.7
は,定義 6.1 の同種写像問題に基づいて定義される。
定義 6.1 において,φ の次数が多項式サイズであれば,この問題は簡単に解けるので,φ の次数は指数サイズとする。
またCSIDH 鍵共有では Fp -有理な楕円曲線のみを対象とするのでFp -同型であるが Fp -同型でないツイスト曲線を
152
判別する必要性がある。しかしながら,ツイスト曲線は j 不変量では判別できない。この理由からGalbraith ら [73]
は j 不変量を使って同種写像問題を定式化しているが上ではあえてより素朴な形を採用して2 つの同種な楕円曲
線 E, E を使って同種写像問題を提示した。
同種写像問題の初期の考察には,自己準同型環計算を扱った Kohel の博士論文 [80] や Galbraith による同種写像問
題に関する研究 [69] 及び Couveignes と RostovtsevStolbunov による初期の暗号応用への提案 [42, 109] がある。そ
の後Charles らによる同種写像に基づいたハッシュ関数の提案 [33] は,同種写像一方向性関数を一方向性の観点から
だけでなく,衝突困難性の観点からも見直すことになり,初期の同種写像暗号の研究では重要な役割を果たした。特
に,同種写像グラフがエクスパンダーグラフであることに着目して暗号に応用した意義は大きい。
■超特異同種写像問題と通常同種写像問題 標数 p の有限体上の楕円曲線 E の p-ねじれ部分群 E[p] がE[p] = {OE }
の時E を超特異楕円曲線といいそうでない時E を通常楕円曲線という。超特異楕円曲線の j 不変量はFp2 の要
素である。つまり,超特異 j 不変量の個数は,有限個であり,具体的に bp/12c + ϵ(但し ϵ ∈ {0, 1, 2})で与えられる。
超特異,通常という楕円曲線の性質は,同種写像によって保存されるため,同種写像問題も,この 2 つの性質によって,
超特異同種写像問題と通常同種写像問題という 2 つの問題に分類される。
■超特異同種写像問題の計算困難性 超特異同種写像問題は6.1.4.2 節で述べられる CSIDH 鍵共有や CSI-FiSh 署名
方式の安全性に関する計算問題の一般形であり,その計算困難性を評価することは重要である。また,自己準同型環計
算問題との関係性については 6.1.5 節を参照のこと。
√ √
超特異同種写像問題の古典計算機による解読時間は Õ( p),量子計算機による解読時間は Õ( 4 p) と見積もられて
いる。Kohel [80] による超特異同種写像グラフ上のアルゴリズム解析に基づいて,現在最良の古典解読アルゴリズムは
DelfsGalbraith [49] によるもの及びその改良 [111] で,解読時間は Õ( p) である。DelfsGalbraith アルゴリズムで
は Fp 上の超特異楕円曲線からなる部分グラフが利用されている。量子解読アルゴリズムは Biasse ら [17] によって時
間計算量が Õ( 4 p) の量子アルゴリズムが知られている。これはFp 上の超特異楕円曲線の同種写像問題に対する準指
数時間量子アルゴリズム [37] と Grover アルゴリズムに基づく Õ( 4 p) の道探索アルゴリズムを結合したものである。
またCostello ら [41]Longa ら [86] による報告UdovenkoVitto [115] による$IKEp182 Challenge [40] 解読報
JaquesSchanck [76] による同種写像問題に対する(量子)安全性評価報告は,いずれも SIDH 鍵共有(及び SIKE
暗号方式 [75])法への攻撃として提案されているが,多くの部分は一般的な超特異同種写像問題に関する知見としても
有効であることに注意する。更に固定次数の同種写像を計算する問題に対してCRYPTO 2024 において Benčina
ら [11] により改善された古典/量子アルゴリズムが提案されている。
6.1.2 SIDH 同種写像問題とその解法
SIDH 鍵共有(及び SIKE 暗号方式これまで同種写像暗号の中核方式と位置づけられてきたがSIDH 同種写
像問題(定義 6.2に対して2022 年に CastryckDecru [23] に始まる一連の鍵導出解法が発表されて,暗号として完
全に破れてしまった。しかしこれらの解法はSIDH 同種写像問題という補助点の情報を入力に含む問題に対する解
法であって,一般の同種写像問題(定義 6.1には適用できないことに注意する。B-SIDH 鍵共有 [39]Séta 暗号方式
[63] も本攻撃法により同様に解読可能である。SIDH 鍵共有に対して修正を図ろうとする試みについては6.2.2 節で
述べる。
■SIDH 同種写像問題 SIDH 鍵共有の公開パラメータは ppsidh := (A , B , eA , eB , f ; E, PA , QA , PB , QB ) で与えられる。
ここでp + 1 = f · A · eBB でp は素数A , B は 2 つの異なる小素数であるf は小さい正整数で,多くの場合
eA
f = 1。例えばA = 2, B = 3。E はFp2 上定義された超特異楕円曲線でありPA , QA はE[eAA ] の基底PB , QB
E[eBB ] の基底である。
153
定義 6.2 (SIDH 同種写像問題 [59, 73]) SIDH 鍵共有公開パラメータ ppsidh と,そこで定義された E と eBB -同種な
EB と PA , QA ∈ EB [eAA ] が与えられた時PA = φ B (PA ), QA = φ B (QA ) となる次数 eBB の同種写像 φ B : E → EB を計算
せよ。特に,φ B の核 ker(φ B ) の生成元 RB ∈ E[eBB ] を計算せよ。
以下SIDH 同種写像問題に対してCastryckDecru による鍵導出攻撃 [23]Maino らによる始点曲線に依らない
攻撃法 [87]Robert による SIDH 問題に対する多項式時間攻撃 [106] の順に概説する。
■CastryckDecru による鍵導出攻撃 [23] 始点曲線 E が特殊極値整環 O0 を自己準同型環にもつ場合に主に限られる
が*1 ,アーベル曲面間の同種写像が分解するかどうかという事実を使って SIDH 問題にアプローチした最初の論文で
ある。特筆すべきはSIKE Challenge [40] に挙げられていたパラメータ $IKE217 や SIKE パラメータ SIKEp434
SIKEp503SIKEp610SIKEp751 をいずれも現実的な時間内で解読することに成功したことである。後続の実装報
告 [99] ではNIST 安全性レベル 5 に相当するとされていたパラメータ SIKEp751 が通常の PCIntel Core i7-9750H
CPUで 1-2 時間程度で解けることが報告されている。
以下に示す Kani の補題が鍵となっている: 秘密同種写像の次数 NB := eBB と互いに素な次数 a の同種写像
α : E → E が与えられれば,α と SIDH 同種写像問題の入力から楕円曲線積の間の (a + NB , a + NB )-同種写像
F : E × E → EB × E が構成可能になる。ここで CastryckDecru [23] はNA := eAA , A = 2, B = 3 として
NA > NB の下でa := NA NB が a = a21 + 4a22 と 2 整数 a1 , a2 による表現をもつ場合に有効な攻撃法を始点
曲線 E が特殊極値的な場合に示した(特殊極値的楕円曲線に関しては 6.1.5.2 節を参照)。更に,その攻撃では,
a + NB = (NA NB ) + NB = NA = 2eA であるのでF は (2eA , 2eA )-同種写像,つまり Richelot 同種写像の列となって
いる。Richelot 同種写像列の計算や Richelot 同種写像のなすグラフに関する研究はこれまでも種数 2 同種写像暗号と
関連して行われてきており [114, 79, 25, 64, 46, 43],それらの研究と関連した形で CastryckDecru 攻撃法が実現さ
れている。
■Maino らによる始点曲線に依らない攻撃法 [87] Maino らによる論文 [87] では,始点曲線に依らない攻撃法を実現
するためにKani の補題で必要な次数 a が平滑smoothになる場合の解析を進めてDe Feo の寄与も取り込んで
準指数時間攻撃法を実現した。更にCastryckDecru 法では秘密同種写像 φ B を徐々に部分的な同種写像を決定して
いく方法であったがMaino ら [87] は,より直接的に 1 度の Kani の補題適用により φ B を見つけ出すアルゴリズム
に改良した。
■Robert による SIDH 問題に対する多項式時間攻撃 [106] Robert [106] では,楕円曲線 8 つの直積の間の同種写像 F
を上述の Kani の補題の一般化より得て,その分解性を使って多項式時間が証明可能な SIDH 攻撃アルゴリズムを構成
した。さらに,[106] ではCastryckDecru 法Maino らによる方法を「2g 次元攻撃法」という形で統合した。それ
によりそれぞれの方法の利点と課題が分かりやすい形で把握できるようになった。
例えば,[106] の主結果は,上述のように 8 次元アーベル多様体間の同種写像計算に基づいた証明可能多項式時間「8
次元攻撃法」アルゴリズムの提示にあるが一方ヒューリスティック多項式時間の「4 次元攻撃法」アルゴリズム
[106, 系 4.5, 命題 4.6] についても詳細な解析を与えており,実装可能性という点から貴重な考察が含まれている。そし
2024 年に Dartois [43] により 4 次元攻撃法の効率的な実装結果が報告された。
またRobert の論文 [106] においてはPetit [102] から始まり de Quehen ら [103] により発展させられた SIDH に
対する「ねじれ点攻撃torsion point attack」との関連性もまとめられておりさらに広い見地から補助点情報を
使った攻撃法の全体像も概観できるようになっている。
*1 特殊極値整環 O0 に関しては 6.1.5.2 節を参照のこと。
154
6.1.3 レベル構造付き同種写像問題
定義 6.2 の SIDH 同種写像問題ではPA = φ B (PA ), QA = φ B (QA ) となる E[eAA ] の基底 PA , QA および EB [eAA ] の基
底 PA , QA が補助点情報として与えられたことにより多項式時間攻撃を受けた。それを回避するために M-SIDH 鍵共有
や FESTA 鍵共有が提案されたがDe Feo ら [57] によってそれらの鍵共有の安全性を保証する問題としてSIDH
同種写像問題を一般化したレベル構造付き同種写像問題(Γ-SIDH 問題)が提案された。
まずレベル構造を定義する。E が定義されている有限体の標数を p としてN を p と互いに素な正整数とする。
E[N ] を生成する 2 点 (P, Q) を E[N ] の基底と呼びE[N ] の全ての基底からなる集合を BE [N ] で表す。2 × 2 の可逆
行列全体 GL2 (Z/N Z) の BE [N ] への作用を
 
a b
· (P, Q) = (aP + bQ, cP + dQ)
c d
で定める。GL2 (Z/N Z) の部分群 Γ に対して,Γ · (P, Q) := {γ · (P, Q) | γ ∈ Γ} を Γ-軌道とすると基底集合 BE [N ]
は Γ-軌道によって分割される。Γ-軌道を(レベル N の)Γ-レベル構造と呼び,全ての Γ-レベル構造からなる集合を
S
BE [Γ] と表す。すなわち,基底集合 BE [N ] は BE [N ] = S∈BE [Γ] S と Γ-レベル構造 S ∈ BE [Γ] によって交わりなく
分割される。
定義 6.3 ((d, Γ)-SIDH 問題,Γ-SIDH 問題 [57]) 楕円曲線 E と d 次の同種写像 ϕ によって d-同種な E (= ϕ(E))
Γ-レベル構造 S ∈ BE [Γ] に対して,(E, S, E , ϕ(S)) が与えられて ϕ を計算せよ((d, Γ)-SIDH 問題)。次数 d が文脈
から明らかな場合は,単に Γ-SIDH 問題と呼ぶ。
多くの暗号応用においては [57, 補題 6] に示されるように Γ を特殊線型群 SL2 (Z/N Z) の部分群としてよいので,以
( !)
1 0
下でも Γ ⊆ SL2 (Z/N Z) とする。特に,Γ-SIDH 問題は,Γ = I = の時には,定義 6.2 の SIDH 同種写
0 1
像問題と等しくなり多項式時間解法を有する一方,Γ = SL2 (Z/N Z) の時には,一般の同種写像問題と等しくなり現状
では効率的な解法が知られていない。よってI ( Γ ( SL2 (Z/NZ) となる Γ によって暗号構成に有用な Γ-SIDH 問題
を見つけることが重要な課題である。 ( !)
λ 0
そのような Γ の例としてΓM := (( SL2 (Z/N Z)) に対する ΓM -SIDH 問題の困難性が M-SIDH
0 λ
鍵共有の安全性の根拠となるのでΓM -SIDH 問題は M-SIDH 問題と呼ばれる [57]。またFESTA 鍵共有は ΓD =
( !)
λ 0
(( SL2 (Z/N Z)) に対する ΓD -SIDH 問題の困難性を安全性の根拠としておりΓD -SIDH 問題は,
0 λ1
対角-SIDH 問題Diagonal-SIDH 問題)と呼ばれている [57]。6.2.2 節での参照のため,定義 6.4 で,改めて M-SIDH
問題,対角-SIDH 問題を定義する。
定義 6.4 (M-SIDH 問題,対角-SIDH 問題 [57]) 上で与えた SL2 (Z/N Z) の部分群 ΓM , ΓD に対してΓM -SIDH
問題を M-SIDH 問題と定義してΓD -SIDH 問題を対角-SIDH 問題と定義する。
M-SIDH 鍵共有においては,相異なる小素数 q1 , . . . , qt を用いて N = q1 · · · qt とした ΓM を用いることで,#ΓM = 2t
となることを安全性の根拠にしている。またFESTA ではN を 2 のべき乗とした ΓD を用いる。それらのパラメー
タに対してM-SIDH 問題,対角-SIDH 問題共に,現状,指数関数時間の攻撃法しか知られていない [57, 表 1]。
155
6.1.4 同種写像に基づく一方向性群作用(暗号学的群作用)に関する計算問題
素体 Fp 上定義された超特異楕円曲線間の同種写像問題の困難性に基づく鍵共有法としてCSIDH 鍵共有6.2.1 節
参照)が 2018 年になって Castryck らによって提案された [29]。その安全性の根拠となる計算問題を [42, 4] に従って
まとめる。以降では,整数 a, ba < bに対して Z の部分集合 [a, b] を [a, b] := {a, a + 1, . . . , b 1, b} とする。
6.1.4.1 2 種の一方向性群作用REGA と EGA
■CSIDH 鍵 共 有・CSI-FiSh 署 名 方 式 の 公 開 パ ラ メ ー タ CSIDH 鍵 共 有 で ,公 開 パ ラ メ ー タ は ppcsidh :=
(O, (l1 , l2 , . . . , ln ), E, B) で与えられる。ここでO は虚 2 次代数体の整環l1 , l2 , . . . , ln はノルムが小さい奇素
i になる O の素イデアルでi は (i ) := li li i = 1, 2, . . . , nと 2 個の異なる素イデアル li , li の積に分解してい
る。そして p + 1 = 4 · 1 · · · n とした時p は素数である必要がある。小奇素数 i は例えば1 = 3, 2 = 5, . . . で
ある。E はFp 上定義されてO を Fp -自己準同型環にもつ超特異楕円曲線である。B は指数 ei の絶対値の上限値,
すなわち B ≤ ei ≤ B となる指数 ei を CSIDH 鍵共有では使う。
CSI-FiSh 署名方式の公開パラメータには,イデアル類群 cl(O) の構造計算がなされた ppcsidh が含まれる。そして,
cl(O) の生成元の間の関係式の情報 R も付された公開パラメータ ppcsi-fish := (ppcsidh , R) を用いることで,有限アー
ベル群 cl(O) 上での効率的な一様サンプリングが可能になる。特にその代表的なパラメータである CSIDH-512 では,
cl(O) がノルム 3 のイデアル l1 により生成される巡回群であることが [16] において示された。現在,イデアル類群
cl(O) の構造計算は入力 O のサイズに対して古典準指数時間必要であるのでCSIDH-512 のように生成元が既知
の十分大きいイデアル類群を得ることは一般に困難で,公開パラメータ ppcsi-fish 生成に対する大きな制約となって
いる。
■CSIDH・CSI-FiSh 群作用の抽象形としての REGA・EGA CSIDH 鍵共有,及び CSI-FiSh 署名方式での基本演算は,
Fp -自己準同型環に虚 2 次代数体の整環 O をもつ楕円曲線集合 X に対する O のイデアル類群 G := cl(O) の群作用
(g, x) 7→ gx ∈ X (但し g ∈ G, x ∈ X) として理解できる。その群作用は,自由かつ推移的である。群作用の詳細につ
いては 6.2.1.1 節を参照のこと。その記法に従えばCSIDH・CSI-FiSh における同種写像問題はこの群作用のG
に関する)逆関数 (x, gx) 7→ g を計算する問題と理解できる。このことからCSIDH・CSI-FiSh における群作用は,
一方向性群作用(または暗号学的群作用)と呼ばれる [42, 113]。
但しCSIDH 鍵共有と CSI-FiSh 署名方式ではppcsidh と ppcsi-fish の違いに応じて G からのサンプリング方法が
異なる。CSI-FiSh 署名方式ではすでに述べたように G から効率的に一様サンプリングするのに対してCSIDH では
Y
n
[B, B]n ⊂ Zn から適切に選んだ (e1 , e2 , . . . , en ) により計算した lei i によって G からのサンプリングを行う。
i=1
これらサンプリング方法の違いに基づいて,最近の一方向性群作用の研究 [4, 91] ではCSI-FiSh 署名方式の場合
の一方向性群作用を EGAEffective Group Action有効群作用と呼びCSIDH 鍵共有の場合の群作用を REGA
Restricted Effective Group Action制限的有効群作用と呼んでいる。以降では基本構成としての「CSIDH」を
接頭辞に付けて,それぞれの一方向性群作用を CSIDH-EGACSIDH-REGA と呼ぶことにする。
6.1.4.2 CSIDH-(R)EGA 上の計算問題
■CSIDH-EGA 上の DL,CDH 計算問題とそれらの量子帰着同値性 CSIDH-EGA に関して離散対数問題Discrete
Logarithm: DLにあたる基本問題は以下の CSIDH-EGA-DL 問題であり,更に,それに基づいた CDHCompu-
tational DiffieHellmann問題はCSIDH-EGA-CDH 問題である。それらの問題はそれぞれCSIDH ベクトル
化問題及び CSIDH 並列化問題と呼ばれることもある [42, 113, 30]。以下,イデアル類 [a] の群作用 [a]E に関しては
6.2.1.1 節を参照のこと。
156
定義 6.5 (CSIDH-EGA-DL 問題 [42, 29, 4]) CSI-FiSh 署名公開パラメータ ppcsi-fish とFp 上定義されており
Fp -自己準同型環 O をもつ超特異楕円曲線 E, EA が与えられた時EA = [a]E となる O のイデアル a を計算せよ。但
a の E への作用が効率的に計算可能な場合に限る。例えばa が小さい次数のイデアル積で与えられる場合などで
ある。
定義 6.6 (CSIDH-EGA-CDH 問題 [42, 29, 4]) CSI-FiSh 署名公開パラメータ ppcsi-fish とFp 上定義されてお
り Fp -自己準同型環 O をもつ超特異楕円曲線 E, EA := [a]E, EB := [b]E 但しa, b は群作用が効率的に計算できる
O のイデアル)が与えられた時,[ab]E = [b]EA = [a]EB を計算せよ。
通常の DL 問題と CDH 問題の場合のようにCSIDH-EGA-CDH 問題を CSIDH-EGA-DL 問題に帰着させること
ができるが,[68] においてその逆CSIDH-EGA-CDH 問題を解くオラクルを用いて CSIDH-EGA-DL 問題を解く
多項式時間量子帰着アルゴリズムが提案されている。[68] の帰着ではCSIDH-EGA-CDH 問題を完全に解くオラクル
を仮定していた。Montgomery ら [91, 70] により有意なnon-negligible確率で CSIDH-EGA-CDH 問題に答えるオ
ラクルを用いても [68] の帰着が成り立つことが示された。
更に,[91] ではCSIDH-REGA 上では [68] の帰着結果が成り立たないことも示されており,判定版の CSIDH-EGA-
DDH 問題へ拡張する事に関しても否定的な結果が示されている。またCSIDH-EGA-DL 問題と CSIDH-EGA-CDH
問題の古典帰着に関してCastryck ら [30] は,
(古典)一方向性の準同型写像が存在するという妥当な仮定の下に,一
般には EGA-DL 問題を EGA-CDH 問題に古典帰着させることができないことを簡潔な反例によって示した。
■CSIDH-REGA 上の DL,CDH 計算問題 既に述べたように,現在,イデアル類群 G := cl(O) の構造計算を多項式時
間で行う古典アルゴリズムは知られていないためG 上の一様分布からの効率的なサンプリング法も知られていな
い。よって,近似的にその一様サンプリングを行う効率的な(秘密鍵)サンプリング法を用いて CSIDH 鍵共有は与え
られる6.2.1 節参照。それに従ってCSIDH-EGA-DL 問題と CSIDH-EGA-CDH 問題もそれぞれ修正されて,そ
れらを CSIDH-REGA-DL 問題CSIDH-REGA-CDH 問題として以下に与える。これらの問題も,前段落と同様に,
CSIDH ベクトル化問題及び CSIDH 並列化問題と呼ばれることもある [42, 113, 30]。
定義 6.7 (CSIDH-REGA-DL 問題 [29, 4]) CSIDH 鍵共有公開パラメータ ppcsidh とFp 上定義されており Fp -
自己準同型環 O をもつ超特異楕円曲線 E ,及び [B, B]n ⊂ Zn から一様ランダムに選んだ (e1 , e2 , . . . , en ) により
Y
n
a := lei i となる a によって EA = [a]E となる EA が与えられた時a と同じイデアル類に属する a ∈ [a] を計算せよ。
i=1
定義 6.8 (CSIDH-REGA-CDH 問題 [29, 4]) CSIDH 鍵共有公開パラメータ ppcsidh とFp 上定義されており
Fp -自己準同型環 O をもつ超特異楕円曲線 E, EA := [a]E, EB := [b]E 但しa, b は共に,[B, B]n ⊂ Zn から一様
Y
n
ランダムに選んだ (e1 , e2 , . . . , en ) により lei i と表されるイデアル)が与えられた時,[ab]E = [b]EA = [a]EB を計算
i=1
せよ。
■CSIDH-(R)EGA-DL 問題の古典計算機による計算困難性 CSIDH-(R)EGA-DL 問題に関してはFp 上の超特異楕
円曲線の同種写像問題に対する DelfsGalbraith [49] の(古典)アルゴリズムを適用するのが,漸近的解読時間が最速
の古典アルゴリズムとされており,その解読時間は Õ( 4 p) である。
■CSIDH-(R)EGA-DL 問題に対する準指数時間での量子攻撃 G の X への作用が自由かつ推移的であるなら,群作用
DL 問題は隠れシフト問題に帰着されてそれは更に二面体群に関する隠れ部分群問題Dihedral Hidden Subgroup
Problem: DHSPに帰着する。DHSP には,準指数時間で動く量子アルゴリズムが知られているので,一般に一方向
性群作用に基づいた暗号方式は量子計算機に対して準指数時間安全性しかもたない。つまりChilds ら [37] による
157
通常同種写像問題に対する量子準指数時間アルゴリズムはCSIDH-(R)EGA-DL 問題に対しても有効でありCSIDH
群作用に関する DL 問題に対する量子計算機による漸近的な解読時間は準指数関数 Lp [1/2, 3/2] で与えられる*2 。
実用的には,漸近的ではないその正確な見積もりが,与えられた安全性レベルを達成する p の bit 長を決めるのに重
要である。まずEurocrypt 2019 においてBernstein ら [13] はCSIDH 群作用を行う量子回路のサイズを具体的
に見積もることで,上述の準指数時間アルゴリズムが,従来考えられていたより計算オーバーヘッドが大きいのでない
か,つまり,攻撃するのはより困難であろうと主張している。
更にEurocrypt 2020 においてBonnetainSchrottenloher [19] と Peikert [101] により独立に 2 つの研究成果が
報告された。[19] では,詳細に CSIDH 攻撃量子アルゴリズムを検討して,これまで考えられていたより効率的に攻撃
可能であると主張している。それにより彼らはCastryck ら [29] が 56 bits 量子安全性レベルと主張していたパラ
メータが,実際には 38 bits レベルの量子安全性しか確保できないのでないか,という試算を述べている。また,[19]
ではKuperberg の 2005 年の論文 [82] に基づいた攻撃法に関して特に詳細な解析がなされたがPeikert [101] では,
その後の DHSP 解法の進展 [104, 83] も取り入れた安全性評価の改善がなされた。
そしてChávez-Saab ら [35] の最近の評価結果ではNIST 安全性レベル 1 を満たすために素数 p を 4096 bits ま
たは 5120 bits 程度に大きくする必要性が示されており,安全性レベル 2 には 6144 bits安全性レベル 3 には 8192
bits または 9216 bits 程度の大きさが必要であるという評価結果も報告されている。
■CSIDH・CSI-FiSh パラメータ以外のイデアル類群作用 DDH 問題の古典解法 上で見た EGA 上の DL 問題と CDH
問題の同値性と関係した DDHDecisional DiffieHellman問題に関する研究成果が Castryck ら [31, 28, 27] により
発表された。ある種のイデアル類群作用においては,虚 2 次整環における「種の理論genus theory」を用いて
の作用に関する DDH 問題を効率的に解くことができることが示された。
但しCSIDH 鍵共有・CSI-FiSh 署名方式に対して重要なこととして,その攻撃が有効になるためにはイデアル類群
G := cl(O) が 2-ねじれ点を持つ必要がありp ≡ 3 mod 4 である CSIDH パラメータに対しては無効であることも示
されている。
6.1.4.3 イデアル類群作用に基づく量子マネーの安全性に関する計算問題
また,現在,イデアル類群の群作用に基づいて公開検証可能な量子マネーを構成する研究も活発に行なわれている
[85, 120, 90, 95]。特にMontgomerySharif [95] では量子マネーquantum money/quantum lightningの安全
性を示すために楕円曲線重ね合わせ複製問題Elliptic Curve Superposition Duplication Problem: ECSDP )や楕
円曲線重ね合わせ衝突問題Elliptic Curve Superposition Collision Problem: ECSCPといった計算問題が定義さ
れて,その計算困難性が論じられている。
6.1.5 自己準同型環計算問題と SQIsign 署名方式の安全性に関する計算問題
6.1.5.1 自己準同型環計算問題
同種写像暗号はKohel [80]Galbraith [69]Couveignes [42] らの先駆的研究にその起源をもつが特にKohel
は有限体上の楕円曲線の自己準同型環を計算するアルゴリズムを探求しており,そのために楕円曲線の同種写像からな
る「同種写像グラフ」の性質を見極めることから始めて,目的とする自己準同型環計算を同種写像グラフ上のアルゴリ
ズム構成に帰着していく。その後KohelLauterPetitTignol [81] は,この「同種写像計算」と「自己準同型環計算」
を並置しながら考察する視点を,「構成的 Deuring 対応」として計算論的観点から捉え直した(表 6.1 参照)。そこで
は,四元数環側での -同種写像道探索問題を解く KLPT アルゴリズムが鍵となるアルゴリズムである([78, 54] 参照)
そして,この構成的 Deuring 対応に基づき「同種写像計算」と「自己準同型環計算」の等価性が示されており [51, 52,
( )
*2 ここでLp [α, c] := exp (c + o(1)) (logp)α (loglogp)1α とする。
158
119],現在,自己準同型環計算問題の困難性に基づいた暗号構成の研究が進められている [72, 61, 62]。
■自己準同型環計算問題とその超特異同種写像計算問題との同値性 以下の記述に関しては,例えば [84] を参照。ま
た,四元数環については Voight の教科書 [117] に詳しい説明がある。有理数体 Q 上 {1, i, j, k} を基底とするベクトル
空間でありかつ a, b ∈ Q により i2 = a, j 2 = b, k = ij = ji という積構造が入った Q 上の代数(環)を四元数環 B と
呼ぶ。各素点 ν (素数または ∞)における Q の完備化 Qν による B ⊗ Qνν = p, ∞ の時にのみ斜体(可除環)にな
る四元数環 B = Bp,∞ を扱う。これをBp,∞ は p, ∞ の 2 点のみで分岐する四元数環であるといいBp,∞ は同型を除
いて一意的に決まる。この同じ素数 p を標数とする有限体上の超特異楕円曲線 E の自己準同型写像がなす環 End(E)
は E の自己準同型環と呼ばれてEnd(E) は Bp,∞ の極大整環 O になっている*3 。ここで,
(四元数環の)整環とは Z
上階数 4 の加群でありかつ環であるものであり,極大整環とは,そのような整環の中で包含関係に関して極大になって
いるものを指す。この自己準同型環 End(E) を計算する以下の問題が基本である。
定義 6.9 (自己準同型環計算問題 [80]) 超特異楕円曲線 E が与えられてE の自己準同型環 End(E) を計算せよ。
Eisenträger らの研究 [51, 52] により,超特異同種写像計算問題と(超特異)自己準同型環計算問題の間に多項式時間
帰着による計算問題としての同値性が示された。そこではヒューリスティックな仮定が使われていたがWesolowski
[119] は,一般化されたリーマン予想に基づいて,その同値性に対して厳密な証明を与えた。また,[100, 88] において
非スカラー自己準同型写像を計算する問題One Endomorphism Problemと自己準同型環計算問題の等価性も
示されている。
6.1.1 節で,超特異同種写像問題の古典計算機による現在最速の解読時間は Õ( p) と見積もられていたので,この同
値性により,自己準同型環計算問題も同等の計算時間であるが,直接に,自己準同型環計算問題を解く研究も進められ
ており,[52] においてÕ( p) 時間の自己準同型環計算(古典)アルゴリズムが報告されており,その後 [67] により
改良されている。またKambe ら [77] によって10 から 30 bits の素数 p に対する自己準同型環計算の実装報告がな
されている。
■Deuring 対応 自己準同型環計算問題で与えられる楕円曲線 E から極大整環 O への対応は,表 6.1 に掲げたよ
うに,楕円曲線に関する様々な概念から四元数環に関する概念への対応に拡張される。その詳細に関しては,例
えば [84, 第 2 章] に記述があるが,特に基本的な対応としては,同種写像 φ : E → E1 が,極大整環の間の同型
O
= End(E), O1
= End(E1 ) を通して,左 O-整イデアルかつ右 O1 -整イデアルである Iφ に対応していることである。
これにより始点曲線 E を固定すると,同種写像 φ : E → E1 の終点曲線 E1 が O のイデアル類と対応することがわか
り,超特異 j 不変量(∈ Fp2 )の集合がイデアル類集合 cl(O) と一対一に対応していることもわかる。
一般に表 6.1 に示されるように,幾何的な情報から成る楕円曲線側のデータと代数的な情報から成る四元数環側の
データの間に対応関係が存在しておりDeuring 対応と呼ばれる。自己準同型環計算問題(定義 6.9)は Deuring 対応
に基づいた問題であり,楕円曲線側の超特異 j 不変量 j(E) から対応する四元数環側の極大整環 O = End(E) を計算
する問題となっている。そして,この Deuring 対応は6.2.4 節及び 6.3.1 節での暗号構成を理解する際にも重要な鍵
となっている。
6.1.5.2 SQIsign 署名方式の安全性に関する計算問題
次にSQIsign 署名方式 [61, 34] の安全性を示すために必要な計算問題を述べる。近年進展が著しい SQIsign2D 署
名方式の安全性に関しては [8, 97] などを参照のこと。
■SQIsign 署名方式の健全性に関する計算問題 まずはSQIsign 署名方式の健全性(偽造不可能性)を示すための計
算問題である超特異平滑自己準同型写像計算問題Supersingular Smooth Endomorphism Problemを定義する。以
*3 自己準同型写像は英語で endomorphism であるので,その全体を End(E) で表す。
159
表 6.1: Deuring 対応
楕円曲線側 四元数環側
超特異 j 不変量 j(E) ∈ Fp2 (の Fp2 /Fp -Galois 共役類) Bp,∞ 内の極大整環 O = End(E) の自己同型類(タイプ)
同種写像 φ : E → E1 で定まる (E1 , φ) 左 O-整イデアルかつ右 O1 -整イデアルである Iφ
自己準同型写像 θ ∈ End(E) 主イデアル Oθ
同種写像の次数 deg(φ) イデアルのノルム n(Iφ )
双対同種写像 φ̂ 共役イデアル Iφ
同じ定義域・値域の同種写像 φ : E → E1 , ψ : E → E1 同値なイデアル Iφ
超特異 j 不変量 j(E) ∈ Fp2 の集合 イデアル類の集合 cl(O)
同種写像の合成 τ ◦ ρ : E → E1 → E2 イデアル積 Iτ ◦ρ = Iρ · Iτ
N -同種写像の同型類 レベル N の Eichler 整環の類集合
下では,核が巡回群となる自己準同型写像を巡回自己準同型写像と呼ぶ。
定義 6.10 (超特異平滑自己準同型写像計算問題 [61, 34]) 超特異楕円曲線 E が与えられて,平滑な整数を次数にもつ
E 上の(非自明な)巡回自己準同型写像を見つけよ。
この問題で問うているような非自明な自己準同型写像が計算できれば,[52] で見るように,自己準同型環 End(E)
全体も計算できることが知られているので,この問題は,本質的に自己準同型環計算問題と同値である [61]。よって,
Õ( p) 時間での古典アルゴリズム [52] が現状最速と見積もられる。
■特殊極値的楕円曲線 次にSQIsign 署名方式のゼロ知識性を示すための計算問題を述べるが,公開パラメータで
重要となる楕円曲線 E0 を示す。p = 3 mod 4 の時j 不変量 j = 1728 となる E0 : y 2 = x3 + x の O0 = End(E0 )
は i2 = 1, j 2 = p となる O0 = Z + Zi + Z i+j
2 + Z 2 となることが知られている。更に具体的に自己準同型写像
1+ij
ι : (x, y) 7→ (x, 2 +Z 2
1y), π : (x, y) 7→ (xp , y p ) により End(E0 ) = Z + Zι + Z ι+π 1+ιπ
で与えられる。
標数 p と ∞ のみで分岐する四元数環 Bp,∞ := Q[i, j] における極大整環 O0 ⊂ Bp,∞ は,最小判別式の 2 次整環で
ある O ⊂ O0 ∩ Q[i] による O + jO ⊂ O0 が部分整環であり O ⊂ (jO)⊥ と直交分解しているとき*4 ,特殊極値的
special extremalであるという。詳細は [61, 84] を参照。p = 7 mod 12 の時,上述の E0 に対して End(E0 ) は特殊
極値的でありこの時E0 は特殊極値的曲線と呼ばれる。特殊極値的曲線 E0 は,その自己準同型環の構造が簡単で
計算上扱いやすいため GPS 署名方式 及び SQIsign 署名方式の公開パラメータの一部として必要である。
*4 Bp,∞ における内積は α, β ∈ Bp,∞ に対して 1 tr(αβ̄) で与えられてここはその内積に関する直交分解であるBp,∞ 内のトレース,共
2
役の定義は,例えば [84] を参照のこと)。
160
■SQIsign 署名方式のゼロ知識性に関する計算問題 SQIsign 署名方式では,右図
SQIsign 同種写像図式
の同種写像 τ が秘密鍵で,超特異楕円曲線 EA が公開鍵(の主要な一部)である。
署名生成では,同種写像 ψ, φ を適切に生成して得られた合成写像 φ ◦ ψ ◦ τ̂ を「ラン E0
ψ
/ E1
ダム化」した同種写像 σ を署名とする*5 。その詳細は 6.3.1.1 節を参照。[61, 62] に τ φ
おいて定義された E0 を始点とする同種写像から成るある集合 PNτ を τ によって  
EA
σ / E2
EA を始点とした同種写像に移した集合 [τ ] PNτ PNτ の τ による pushforward
を考える。正しく生成された署名同種写像 σ は [τ ] PNτ に属するのであるが,それ CSI-FiShGPS 図式と同
が EA を始点とした 2 べき次数 D (= 2e ) の巡回同種写像全体 IsoD,j(EA ) から一様 様に可換図式ではない。
ランダムにサンプリングしたのと区別が付くかという問題が以下でありSQIsign
署名方式のゼロ知識性を示すために必要である。
定義 6.11 (SQIsign 署名方式のランダム識別問題 [61, 34]) τ : E0 → EA を秘密同種写像として,楕円曲線 E0 を含
む SQIsign 署名方式の公開パラメータ ppsqisign (詳しくは 6.3.1 節参照)と公開鍵 EA が入力として与えられると共
に,[τ ] PNτ から一様サンプリングして返すオラクル Oτ への多項式回のアクセスが許される時にEA を始点とする
同種写像 σ が与えられて σ が IsoD,j(EA ) から一様ランダムに選ばれたか,[τ ] PNτ から一様ランダムに選ばれたかを
判定せよ。
SQIsign 署名方式の提案者によると現在のところSQIsign 署名方式のランダム識別問題を解くのにE0 と EA の
情報から τ を暴く攻撃法より効率の良い攻撃法はまだ知られていないとのことである [61, 84]。つまりÕ( p) 時間
を必要とすると見積もられている。また,上述の SQIsign 署名方式に関する計算問題は,どちらも補助点を問題に含ま
ないことにより6.1.2 節で見た最近の SIDH 同種写像問題に対する攻撃法が適用できないことに注意する。
6.2 同種写像に基づく代表的な暗号方式
以下では6.2.1 節で CSIDH 鍵共有と CSIDH 鍵共有以外の群作用暗号を6.2.2 節でレベル構造付き同種写像問題
に基づく鍵共有方式を6.2.3 節で暗号学的群作用に基づく署名方式を6.2.4 節で GPS 署名方式を述べる。
また,ここで述べた方式以外にも POKE [7]IS-CUBE [92]LIT-SiGamal [93] など新たな鍵共有方式が提案され
ていることにも注意する。
6.2.1 暗号学的群作用に基づく鍵共有方式
6.2.1.1 CSIDH 鍵共有
Castryck ら [29] により提案された CSIDH 鍵共有を記述する。CSIDH 鍵共有は,有限アーベル群 G による一方向
性群作用をもつ空間 X 上で構成される。ここでX = Ep (O, π) はFp 上定義されて Fp -有理自己準同型環が固定さ
れた虚 2 次整環 O と同型であり,かつその同型により p 乗フロベニウス写像が π ∈ O に移されるような超特異楕円曲
線の Fp -同型類の集合でありG = cl(O) は O のイデアル類群である。以下ではEp (O, π) が空でないと仮定する。
Castryck ら [29] は6.1.4.2 節で定義した CSIDH-REGA-CDH の判定版問題の困難性に基づいてCSIDH 鍵共有方
式を提案した。
K を虚 2 次代数体O ⊂ K をその整環とする,すなわちランク 2 の自由 Z-加群である K の部分環である。O-分数
イデアルは,α ∈ K と O-イデアル a によって αa と表される K 内の O-部分加群である。ab = O となる O-分数イデ
アル b が存在する時にO-分数イデアルa は可逆であるという。そして,そのような b が存在するならばa1 = b
*5 τ̂ は τ の双対同種写像である。表 6.1 も参照のこと。
161
と定義する。可逆分数イデアルの集合 I(O) はイデアル積に関してアーベル群をなす。この群には主イデアルからなる
部分群 P (O) が含まれておりO のイデアル類群は商群 cl(O) = I(O)/P (O) によって定義される。どのイデアル類
[a] ∈ cl(O) にも整イデアルが存在してその代表として使うことができる。O のどの整イデアル a も O-イデアルの積と
して as 6⊆ πO となる整イデアル as によって (πO)r as と表せる。ここで,π はp 乗フロベニウス写像。この表示によ
り,整イデアル a に対して楕円曲線 E/E[a] とそこへの N (a) 次同種写像 φa : E → E/E[a] が以下のように定義され
\
る。ここでN (a) := # (O/a) は a のルムである。φa の分離的な部分は E[a] = ker α を核にもつ同種写像で
α∈as
あり,純非分離的な部分はフロベニウス写像 π の r 回の繰り返しで与えられる。同種写像 φa 及び値域曲線 E/E[a] は
共に Fp 上定義されており Fp -同型を除いて一意的に決まる。ここで主イデアルにより定義される同種写像は E 上の自
己準同型写像になるので2 つのイデアルが同じイデアル類に属することと,対応する同種写像が Fp -同型な値域曲線
を与えることとは同値である。つまりE/E[a] の Fp -同型類はイデアル類 [a] のみにより決まり,特に,この対応はイ
デアル類群 cl(O) の Ep (O, π) への作用を与える。更にEp (O, π) に属する 2 つの楕円曲線間の Fp -同種写像 ψ は
すべてこの対応により可逆な O-イデアルから得られる。そして分離部分 as は ψ から as = {α ∈ O | ker α ⊇ ker ψ}
によって復元できる。その対応は以下の定理にまとめられる。
定理 6.12 ([29]) 虚 2 次代数体内の整環 O と π ∈ O を Ep (O, π) が空集合でないものとする。その時,以下で与え
られるイデアル類群 cl(O) の Ep (O, π) への作用は自由かつ推移的である。
cl(O) × Ep (O, π) → Ep (O, π)
([a], E) 7 → E/E[a],
ここでa は類 [a] を代表する整イデアルである。
以下では E/E[a] を [a]E と書くことにする。定理 6.12 で述べた群作用に基づいて,以下のように CSIDH 鍵共有プ
ロトコル(図 6.1を定義する。下の図でa ← cl(O) と書かれている部分は,実際にはイデアル類群 cl(O) からのサン
プリングとして,定義 6.7 の CSIDH-REGA-DL 問題及び定義 6.8 の CSIDH-REGA-CDH 問題に記載された REGA
としての a のサンプリング法を用いる。モンゴメリ型楕円曲線 E : y 2 = x3 + ax2 + x に対して,係数 a はE のモン
ゴメリ係数と呼ばれる。CSIDH 鍵共有では,始点曲線 E : y 2 = x3 + x に対して,アリスとボブによって計算される
楕円曲線はすべてモンゴメリ型楕円曲線である。
アリス ボブ
[a]E
a ← cl(O) : アリスの秘密鍵 −−−−−−→ b ← cl(O) : ボブの秘密鍵
[a] Eのモンゴメリ係数を計算 ←−−−−−− [b] Eのモンゴメリ係数を計算
[b]E
SKAlice := [a] ([b]E) のモンゴメリ係数 SKBob := [b] ([a]E) のモンゴメリ係数
図 6.1: CSIDH 鍵共有の概要
イデアル類群 cl(O) は可換なので,[a] ([b]E) = [ab]E = [ba]E = [b] ([a]E) であり,そのモンゴメリ係数を考えれば
SKAlice = SKBob となるのでアリスとボブは同じ鍵を共有できる。その計算アルゴリズムについてはCastryck ら
[29]Meyer ら [89]Onuki ら [98] などを参照のこと。CSIDH 鍵共有の安全性はCSIDH-REGA-CDH 問題の困難
性に基づく。
最近,主に CSIDH 系の方式で使う演算を効率化するべき根同種写像radical isogeny計算法 [26, 24] や square-root
Vélu 計算法 [12],さらにそれらを組み合わせた計算法 [47] が提案されている。またChávez-Saab らによって,効率
化された SQALE 鍵共有方式 [35] も提案されており4096 bits 以上の CSIDH 素数パラメータに関する SQALE 鍵共
有の実装報告もなされている。2024 年に出版された CSIDH 実装報告 [21] も参照のこと。
162
6.2.1.2 群作用に基づく CSIDH 以外の鍵共有方式
CSIDH 鍵共有の変種にはOSIDH 鍵共有 [38, 44] や SiGamal 暗号方式 [94]・Sims 暗号方式 [66] がある。OSIDH
鍵共有では楕円曲線以外に「向き」orientationと呼ばれる付加情報への群作用も考慮しておりSiGamal 暗号方
式では楕円曲線とその上のねじれ点への群作用を考慮した暗号方式の設計になっている。特にSiGamal 暗号方式
ではねじれ点への群作用を取り入れることでCSIDH 共有鍵であるモンゴメリ係数(図 6.1 参照)ではなく,ねじ
れ点の離散対数からなる一様ランダムな乱数を送受信者間で共有できるようになっている。
2023 年に入ってからCSIDH 鍵共有以外で向き付けられた楕円曲線に対して新たに SCALLOP [56] と呼ばれる
群作用暗号が De Feo らによって提案された。SCALLOP により,利用できる「向き」の取り方を増やすことがで
きてEGA パラメータの選択肢を増やすことが可能となる。その後SCALLOP を高次元同種写像を用いて効率化
した SCALLOP-HD [36] や,実用的なパラメータ選択のための改良を施した PEARL-SCALLOP [5] が提案された。
PEARL-SCALLOP によりCSIDH-512CSIDH-1024CSIDH-1536 と同等の安全性レベルの EGA が得られて,
それらのパラメータに関して実際に格段の計算効率化が実現できたことが [5] で報告されている。
また,レベル構造付きの群作用を考察した論文 [71, 6] や,従来の群作用をランク 1 加群作用と位置付けてランク 2
加群作用に拡張した論文 [108] など,最近になっても引き続いて,暗号学的群作用の新しい構成法が提案されているこ
とにも注意する。
6.2.2 レベル構造付き同種写像問題に基づく鍵共有
定義 6.36.4 で定めたレベル構造付き同種写像問題の困難性に安全性の根拠を置いた鍵共有を述べる。
6.2.2.1 M-SIDH 鍵共有と MD-SIDH 鍵共有
6.1.2 節で見たようにSIDH 鍵共有に対して多項式時間の攻撃法が発見されたが,その直後に,それら攻撃法を
回避する SIDH 鍵共有の変種方式が 2 つ提案された。1 つ目はMoriya による「同種写像次数」を隠すことによる
次数隠蔽型masked-degreeSIDH であり MD-SIDH 鍵共有と呼ばれ2 つ目はFouotsa によるねじれ点隠蔽型
masked torsion point imagesSIDH であり M-SIDH 鍵共有と呼ばれる [65]。Eurocrypt 2023 で発表された [65] に
おいてM-SIDH 方式の方がMD-SIDH 方式より小さい素数 p によって同等の安全性が得られることが述べられて
いる。M-SIDH 鍵共有の安全性は定義 6.4 の M-SIDH 問題の困難性に基づく。一方これらの方式はSIDH 方式よ
り効率面では格段に劣ることも指摘されている。例えばNIST レベル 1,3,5 に対応する M-SIDH 素数 p の bit 長は,
それぞれ 5911938213000 bits となることが示されておりSIKE 暗号方式に提案された素数 bit 長434610
751 bitsと比べて格段に大きくそれにより計算効率も劣ることになる。またCastryckVercauteren[32] は特殊な
パラメータを用いた M-SIDH に対する攻撃法を発表したが,[65] に述べられているパラメータ設定においては有効な
攻撃にはなっていない。
6.2.2.2 (Q)FESTA 鍵共有と binSIDH 鍵共有terSIDH 鍵共有)
M-SIDH 鍵共有以外にもAsiacrypt 2023 において,レベル構造付き同種写像問題困難性に基づいた 2 方式が発表
された。BassoMainoPope による FESTA 鍵共有 [10] と BassoFouotsa による binSIDH 鍵共有(及び terSIDH
鍵共有)[9] である。それらの FESTA 鍵共有binSIDH 鍵共有共に,対角-SIDH 問題6.4)の困難性に安全性の根
拠を置いている [57, 図 1]。
CRYPTO 2024 においてNakagawaOnuki により2 次元同種写像の使い方を改良してFESTA の効率を高め
た QFESTA[96] が提案された。[96] で NIST 安全性レベル 1 パラメータである QFESTA-128 では,公開鍵サイズは
247 Bytes で SIKEp434 と同程度,暗号文サイズは 494 Bytes で SIKEp434 の約 2 倍となっている。そしてNIST
163
安全性レベル 3,5 の QFESTA-192QFESTA-256 に関しても対応する SIKE パラメータ SIKEp610SIKEp751 と
同様のデータサイズ比率(公開鍵サイズは同程度で,暗号文サイズは約 2 倍)をほぼ達成しており,現状,効率面で最
も良い同種写像ベース鍵共有法を実現している。
また,[32] ではM-SIDH の時と同様に特殊なパラメータの FESTA に対する攻撃法が発表されたが [10] のパラメー
タ設定においては有効な攻撃にはなっていない。
6.2.3 暗号学的群作用に基づく署名方式
本節では暗号学的群作用に基づく署名方式として6.2.3.1 節で SeaSign 署名方式を6.2.3.2 節で CSI-Fish 署名
方式を述べる。また6.1.4.3 節でも述べたように,群作用暗号に基づく署名・認証系の研究として,最近,量子マネー
構成への応用が活発に行なわれている [85, 120, 90, 95]。
6.2.3.1 SeaSign 署名方式
De Feo と Galbraith [58] によりCSIDH ベースの SeaSign 署名方式が提案された。これはCSIDH 鍵共有の数学
的な構造を利用したものであり,まだ実用的とは言い難いが,現実的な計算時間に収まる署名方式となっている。以下
では,[58] で,
「基本形」と呼ばれる SeaSign 署名方式を記載する。[58] では,更に,基本形でも使われたパラメータ t
と共に,パラメータ s を導入して,署名が短い方式や公開鍵が短い方式といった変形方式を定義している。また,後続
研究 [48] において,実用化を目指して SeaSign 署名方式の高速化が図られた。
以下では,ベクトル e の各成分は ei i = 1, 2, . . . , nとする即ちe = (e1 , e2 , . . . , en ) である。ベクトル
fk , zk についても同様の記法を用いる。H は t bit 出力のハッシュ関数とする。また,整数 a, ba < bに対して
[a, b] := {a, a + 1, . . . , b 1, b} ⊂ Z とする。
鍵生成: 公開パラメータ ppcsidh := (O, (l1 , l2 , . . . , ln ), E, B),すなわち,虚 2 次整環 Oイデアル l1 , l2 , . . .", ln Fp#-有
Y
n
理な超特異楕円曲線 E ,上限値 B を入力とする。係数ベクトル e ←R [B, B]n を生成する。EA := lei i E
i=1
を計算して,秘密鍵 sk := e公開鍵 pk := EA とする。
署名生成: 公開パラメータ ppcsidh ,メッセージ msg公開鍵 pk := EA ,秘密鍵 sk := e を入力とする。各
" # k = 1, 2, . . . , t
Y
n
f
に対して,係数ベクトル fk ←R [(nt + 1)B, (nt + 1)B] を生成してEk := n
li k,i E を計算する。ハッ
i=1
シュ値を b1 k · · · k bt := H(j(E1 ), . . . , j(Et ), msg) と bit 分解する。各 k = 1, 2, . . . , t に対して,もし bk = 0 で
あればzk := fk として,もし bk = 1 であればzk := fk e として,もし zk 6∈ [ntB, ntB]n であれば ⊥ を
出力する。そうでなければ,署名 σ := (z1 , z2 , . . . , zt , b1 , b2 , . . . , bt ) を出力する。
署名検証 公開パラメータ ppcsidh ,メッセージ msg公開鍵 pk := EA ,署名 σ を入力とする。まず,署名 σ が,
. . , bt ) というデータになっていることを確認する。各
σ := (z1 , z2 , . . . , zt , b1 , b2 , . " # k"= 1, 2, . .#. , t に対して,も
Y n
z
Yn
z
し bk = 0 であればEk := li k,i E を計算して,もし bk = 1 であればEk := li k,i EA を計算する。
i=1 i=1
ハッシュ値を b1 k · · · k bt := H(j(E1 ), . . . , j(Et ), msg) と bit 分解する。もし,(b1 , b2 , . . . , bt ) = (b1 , b2 , . . . , bt )
であれば,受理を出力して,そうでなければ,棄却とする。
SeaSign 署名方式はランダムオラクルモデルにおいてCSIDH-REGA-CDH 問題困難性の仮定の下で,選択文書
攻撃に対して存在的偽造不可EUF-CMA安全であることが示されている [58]。
164
6.2.3.2 CSI-FiSh 署名方式
BeullensKleinjungVercauteren [16] はCSIDH-512 パラメータに関するイデアル類群 cl(O) の構造計算を遂行
することで,効率を高めた CSIDH ベースの CSI-FiSh 署名方式を提案した。CSIDH-512 パラメータでは512 bits
素数 p = 4 · 1 · · · · · 74 174 = 587 を用いておりBeullens ら [16] はQ( p) のイデアル類群 cl(O) が,
ノルム 3 のイデアル l1 により生成される位数 N := #cl(O) = 37 · 1407181 · 51593604295295867744293584889 ·
31599414504681995853008278745587832204909 の有限巡回群になることを示した。つまり,[a] ∈ Z/N Z に対してイ
デアル類 [l1 ]a = [la ] を対応させることで同型 Z/N Z
1 = cl(O) が得られる。更に,イデアル類群の作用 [la ]E を同型 1
Z/N Z
= cl(O) を使って [a]E と表しZ/N Z の作用と見なすことにする。これにより 6.1.4.1 節に述べた,より望ま
しい CSIDH ベースの一方向性群作用 EGA が得られた。
CSI-FiSh 署名方式の構成法は SeaSign 署名方式と変わらないので,Σ-プロ
CSI-FiSh 同種写像図式
トコルにおける記述の差異のみを右図に従って以下に述べる: 位数 N の巡回
群 Z/N Z (
= cl(O)) の作用に基づき,秘密鍵(証拠)を乱数 a ∈ Z/N Z公開 E0
[b]
/ E1
鍵 E0 , EA := [a]E0 とする。証明者は乱数 b ∈ Z/N Z によりコミットメント ||>
||
[a]
||
E1 := [b]E0 を計算して検証者に送る。検証者はチャレンジ c ∈ {0, 1} をランダ  || [ba]
EA
ムに選び証明者に送付,証明者はレスポンス r := b ca mod N を検証者に送
る。最後に,検証者は c = 0 であれば E1 = [r]E0 であることc = 1 であれば
E1 = [r]EA であることが成り立つかどうか検証して検証結果を出力する。
実際にCSI-FiSh 署名方式にするにはFiatShamir 変換に則り,チャレンジを (ci ∈ {0, 1})i∈[t] と t 個にすると
ともに,それらをハッシュ関数を用いて計算して非対話化することで得られる。
上に示したフレームワークをより広範囲の CSIDH パラメータに拡張できれば望ましいが6.1.4.2 節に述べたよう
CSIDH 問題の最近の安全性検討状況によるとNIST 安全性レベル 1 を満たすためには,素数 p を 4096 bits また
は 5120 bits 程度に大きくする必要性が示されている。そして,それに対応するイデアル類群計算を遂行するのは現状
では困難と思われており,このことが,実適用における CSI-FiSh 署名アプローチの限界を示していた。しかし2023
年に入って6.2.1.2 節で述べたように新たな群作用としてSCALLOP [56] が提案されてEGA パラメータの選
択肢を増やすことができるようになりCSI-FiSh 署名方式の柔軟なパラメータ選択への新しい道が開かれた。その後,
実用性を高めるために SCALLOP-HD [36] や PEARL-SCALLOP [5] が提案されたことは 6.2.1.2 節で述べた通りで
あり,今後の研究に注目する必要がある。
またBoneh ら [18] により,(ジェネリック)群作用に基づく署名サイズがセキュリティパラメータ λ に対して
Ω(λ2 /logλ) となることが示されていることにも注意する。
CSI-FiSh 署名提案後にEl Kaafarani ら [53] により,タイト安全な Lossy CSI-FiSh 署名方式の提案もなされた。
そして,リング署名・グループ署名など高機能暗号系への拡張研究 [15, 14] があるのが CSI-FiSh 署名方式の利点の一
つとなっている。
6.2.4 GPS 署名方式
GalbraithPetitSilvaGPS[72] によって始めて自己準同型環のゼロ知識証明に基づく署名方式が提案された。
GPS 署名方式は 1 bit チャレンジ空間のゼロ知識証明プロトコルに基づいているため実際に利用するのは困難であろ
うと思われているが現在GPS 署名方式はSQIsign 署名方式の原型を与えているという点で重要である。6.1.5 節
で述べた Deuring 対応と KLPT アルゴリズム [81] が GPS 署名方式の理論的基礎を与える。
165
右図において E0 は 6.1.5.2 節で与えた j(E0 ) = 1728 なる楕円曲線(特殊極値
GPS 同種写像図式
的楕円曲線)であり,そこで見たようにその E0 に関しては End(E0 ) の構造が簡
明な形で与えられている。その楕円曲線 E0 からの秘密鍵同種写像 τ : E0 → EA E0
σ1
/ E1
| >
を知っている証明者署名生成者EA から別の楕円曲線 E1 への同種写像 ||
|
τ
|| σ
σ0 : EA → E1 と τ との合成 σ0 ◦ τ : E0 → E1 を KLPT アルゴリズムに基づい  || 0
EA
て「ランダム化」して同じ始点 E0 と終点 E1 をもつ σ0 ◦ τ とは異なる同種写像
σ1 : E0 → E1 を得ることができる。
さらに,自己準同型環 End(EA ) を計算する問題の困難性に基づけば,このようなランダム化ができるのは,τ を
知っている証明者に限られるので,チャレンジ bit c ∈ {0, 1} を送って証明者に同種写像 σc を答えさせることにより,
τ に関する知識の有無を検査することができて,認証・署名方式が構成できる。それが GPS 認証方式,そしてその
FiatShamir 変換署名が GPS 署名方式である。ここでは [72, 第 4 章] と [84, 5.1.2 節] に基づいて GPS 署名方式を記
述する。また,[72, 第 4 章] では,通常の FiatShamir 変換を施した署名方式と Unruh 変換を施した署名方式の 2 方
式が記述されているが,ここでは記述の簡便さを考慮して前者の記述を基にして以下に署名方式を与える。
鍵生成: 既知の特殊極値的自己準同型環 O0 をもつ超特異楕円曲線 E0 とする。互いに素な B-べき平滑数 S1 , S2 *6 を,
S1 , S2 次の同種写像グラフ上ランダムウォークがグラフのエクスパンダー性により一様分布を導く程度に十分大
きくとる。セキュリティパラメータ λ に対して t := λ(または t := 2λとしてt bits 出力のハッシュ関数 H
を選ぶ。ppgps := (E0 , S1 , S2 , H) を公開パラメータとする。さらにE0 を始点とする S1 次のランダムな同種
写像 τ : E0 → EA を計算してppgps と EA を公開鍵として,τ を秘密鍵とする。
署名生成: 各 i = 1, . . . , t に関して EA を始点とする S2 次のランダムな同種写像 σ0,i : EA → E1,i を計算する。署名
対象メッセージ msg に対してチャレンジ bit 列 h := b1 k · · · k bt := H(j(E1,1 ), . . . , j(E1,t ), msg) ∈ {0, 1}t を
ハッシュ関数 H で計算する。各 i = 1, . . . , t に対して,もし bi = 1 なら KLPT アルゴリズムに基づいて「ラン
ダム化」したランダム同種写像 σ1,i : E0 → E1,i を計算する。署名を σ := (h, σb1 ,1 , . . . , σbt ,t ) とする。
署名検証: 公開鍵 (ppgps , EA ),メッセージ msg と署名 σ = (h, σ1 , . . . , σt ) を入力として,各 i = 1, . . . , t に対して,
同種写像 σi を計算して,その終点曲線 E1,i を得る。次に H(j(E1,1 ), . . . , j(E1,t ), msg) を計算して署名内の h
と一致するかどうか検証して,全ての i = 1, . . . , t に対して検証が成功すれば受理を出力して,そうでなければ,
棄却とする。
GPS 署名方式は,超特異楕円曲線同種写像計算問題またはそれと同値な自己準同型環計算問題(定義 6.9)の困難性
を仮定すればランダムオラクルモデルの下で EUF-CMA 安全であることが示されている [72, 定理 10]。GPS 署名方
式では1 bit のチャレンジを用いた Σ-プロトコルに基づいているため,署名サイズが大きくなるのが欠点である。ま
た,署名生成で使われた KLPT アルゴリズムの計算時間改善も課題であった [84, 5.1.2 節]。以上GPS 署名方式には
(1) 署名サイズ 及び (2) KLPT アルゴリズム計算時間 に関する 2 つの課題が存在する。
6.3 同種写像に基づく主要な暗号方式
本節では,公開鍵と署名サイズが小さいことを特長にもつ SQIsign 署名方式について述べる(表 6.2 参照)。
e e ∏ ek,i
*6 Sk k = 1, 2が B-べき平滑数powersmooth numberとはSk が k,i < B なる k,i の積で表されるつまりSk =
k,i k,i i k,i
ことである。ただし k,i は互いに異なるものとする。
166
表 6.2: 同種写像に基づく暗号の分類
文献 暗号化 鍵交換 署名
SQIsign [61, 34, 8] ○
6.3.1 SQIsign 署名方式
以下,自己準同型環計算問題(定義 6.9)の困難性に安全性の根拠を置く SQIsign 署名方式を概説する。SQIsign 署
名方式は公開鍵と署名を合わせたサイズが小さい方式として注目されている。また2024 年 10 月にSQIsign 署名方
式が NIST PQC 標準化プロジェクト追加署名第 2 ラウンドに進むことが発表された [3]。以下ではKLPT アルゴリ
ズムに基づいた SQIsign 署名方式 [61, 34] のアルゴリズムとパラメータを述べた後,最新の改良版である SQIsign2D
署名方式 [8] について報告する。
6.3.1.1 KLPT アルゴリズムに基づく SQIsign 署名方式
6.2.4 節で述べた GPS 署名方式を基にして改良を加えた署名方式が SQIsign 署名方式でありAsiacrypt 2020 で
De FeoKohelLerouxPetitWesolowski [61] により提案された。6.2.4 節末尾に付した GPS 署名方式の 2 つの課題
を克服している。チャレンジ空間に同種写像の空間を用いることで,そのサイズをセキュリティパラメータ λ まで大き
くして,Σ-プロトコルを 1 度適用するだけで十分な FiatShamir 署名構成とした。これで署名サイズが格段に小さく
なった。またGPS 署名生成においては,表 6.1 の Deuring 対応に基づいて,同種写像のイデアル表現(表 6.1 の四
元数環側)をねじれ点を使った表現(表 6.1 の楕円曲線側に変換する部分で時間が費やされていたがSQIsign 署名
方式ではその処理を速度改善したサブルーチンIdealToIsogenyに置き換えるのに成功して現実的な演算効率を達成
した(詳細は [61, 62] を参照)。
また,安全性に関しては,健全性は超特異平滑自己準同型写像計算問題(定義 6.10)の困難性に基づき,ゼロ知識性
は定義 6.11 で述べた SQIsign 署名方式のランダム識別問題の困難性に基づいている。初期提案 [61] では,ノルム方程
式を解くサブルーチンに不備があり,生成される署名同種写像 σ に偏りが生じていたことが [62] において指摘された。
そして,更に [62] でその不備を除去したアルゴリズム提案が行われた。
■SQIsign 署名アルゴリズム SQIsign 署名方式では,右図の同種写像 τ が秘密鍵 SQIsign 同種写像図式
で,超特異楕円曲線 EA が公開鍵(の主要な一部)である。署名生成では,コミッ
E0
ψ
/ E1
トメント同種写像 ψ とチャレンジ同種写像 φ を適切に生成して得られた合成写像
φ ◦ ψ ◦ τ̂ を一般化された KLPT アルゴリズムに基づいてランダム化した同種写像 τ φ
 
σ を署名(Σ-プロトコルのレスポンス)とする。一般化 KLPT アルゴリズムに関 EA
σ / E2
しては [34, 2.5.2.2 節] を参照。チャレンジ φ によりセキュリティパラメータ分の
ランダムネスを与えることができるので1 度の Σ-プロトコル適用で十分な安全
性が達成できる。よってGPS 署名方式と比べて格段に短い署名サイズが実現で
きる。
鍵生成: 既知の特殊極値的自己準同型環 O0 をもつ超特異楕円曲線 E0 ,λ bits の平滑な奇数 Dcλ はセキュリティパ
ラメータ),超特異 2-同種写像グラフの直径より大きな e による D := 2e を生成してppsqisign := (E0 , Dc , D)
を公開パラメータとする。さらにE0 を始点とするランダムな同種写像 τ : E0 → EA を計算してppsqisign と
EA を公開鍵として,τ を秘密鍵とする。
167
署名生成: E0 を始点とするランダムな同種写像 ψ : E0 → E1 を計算。署名対象メッセージ msg に対してハッシュ
関数 H で計算した H(j(E1 ), msg) から決まる Dc 次の巡回同種写像 φ : E1 → E2 を計算。同種写像の合成
φ ◦ ψ ◦ τ̂ : EA → E2 から(一般化された KLPT アルゴリズムを用いて)同じ始点・終点を有して φ̂ ◦ σ が巡回
同種写像になる D 次のランダム同種写像 σ : EA → E2 を計算。(E1 , E2 , σ) を msg の署名として出力。
署名検証: 公開鍵 (ppsqisign , EA ),メッセージ msg と署名 (E1 , E2 , σ) を入力としてE1 から E2 への同種写像
φ := H(j(E1 ), msg) を計算する。σ が EA から E2 への D 次同種写像であることと φ̂ ◦ σ が EA から E1 への巡
回同種写像であることを検証して,共に成立すれば受理を出力して,そうでなければ,棄却とする。
既に述べたようにSQIsign 署名方式の安全性は,超特異平滑自己準同型写像計算問題(定義 6.10)の困難性と,定義
6.11 で述べた SQIsign 署名 σ のランダム識別問題の困難性に基づいている。またSantosEriksenMeyerReijnders
[112] は有限拡大体を活用して署名検証を高速に行う方法を提案している。
■SQIsign 署名パラメータ 署名同種写像 σ の次数は D = 2e ,チャレンジ同種写像 φ の次数は平滑な奇数 Dc である。
Fp 上の超特異楕円曲線 E の位数 p + 1 のねじれ点及びそのツイスト曲線上の位数 p 1 のねじれ点を利用して次数
D, Dc の同種写像を小さい拡大次数の有限体で効率的に計算するために,できるだけ大きい正整数 f ,正奇数 T に関し
て 2f · T | p2 1 が満たされる素数 pSQIsign 素数)を生成することが必要である。具体的には,ある B に対して B-
平滑な T T ≈ p5/4+ϵ([20] では例えば 0.02 < ϵ < 0.1 とする)に対して 2f · T | p2 1 となる素数 p を探索する必要
がある。SQIsign 素数の選択基準として,署名検証の効率化には f をできるだけ大きくして,署名生成の効率性にとっ
ては B/f をできるだけ小さくするのが望ましい [62]。
6.3.1.2 SQIsign2D 署名方式
Dartois ら [45] により高次元同種写像を用いて改善を図った SQIsignHD 署名方式が提案された。さらに 2 次元同
種写像によってデータサイズ,演算時間,安全性に関して改善された複数の方式が相次いで発表されている [8, 97,
50, 22]。以下ではそれらの中で特にSQIsign2D-West 署名方式 [8] に関して,[8] で述べられたパラメータ,
データサイズ及び性能報告に関して述べる。SQIsign 署名方式を 2 次元同種写像を用いて改善することができたのは
NakagawaOnuki [96, 97] の貢献が大きい。
特筆すべきは,素数 p の選択である。上に述べたように,従来の SQIsign 署名方式では B-平滑な T を適切に設定す
る必要があるなど素数 p の選択には限界が伴っていた。しかしSQIsign2D-West では,できるだけ小さな c により
p + 1 = c × 2e となる素数 p を用いるため,セキュリティレベルに応じて柔軟なパラメータ選択がしやすい。また,一
般化メルセンヌ素数 p = c × 2e 1 を用いることで高速実装も可能になり,表 6.3 に示すように,鍵生成・署名生成・
署名検証において実用的な実行時間が達成できることが報告されている [8]。
そして,表 6.3 に示されているように,セキュリティパラメータ λ ( 21 log2 p) に対して公開鍵サイズを 4λ + 16
bits署名サイズを 9λ + 16 + 2log2 (2λ) bits と小さく抑えることができるのも特長である。
6.4 同種写像に基づく暗号技術に関するまとめ
本章では同種写像に基づいた暗号技術をまとめた。NIST PQC 標準化プロジェクト追加署名第 2 ラウンドに進ん
だ SQIsign 署名方式CSIDH 鍵共有に代表される群作用暗号,ここ数年進展著しいレベル構造付き同種写像問題に基
づく鍵共有方式などに関して方式記述と安全性研究についてまとめてきた。またSIDH 攻撃に端を発した高次元同種
写像の暗号応用に関しても調査結果を報告した。
[42] によるとCouveignes は1997 年の École Normale Supérieure でのセミナーで既に同種写像に基づく暗号技
術を提案しており,ほぼ同時期に Kohel [80] や Galbraith [69] も,同種写像問題に関する研究を始めていた。つまり,
同種写像暗号技術の研究は既に 27 年の歴史をもつ。そして,最近になり,耐量子計算機暗号の必要性が高まること
168
表 6.3: SQIsign2D-West 素数パラメータ p 及び公開鍵・署名サイズBytesIntel Xeon Gold 6338Ice Lake
2GHz上での鍵生成・署名生成・署名検証の実行時間ms[8]
NIST 安全性レベル 1 3 5
素数 p 5·2248
1 65 · 2
376
1 27 · 2
500
1
公開鍵サイズ 66 98 130
署名サイズ 148 222 294
鍵生成 30 85 180
署名生成 80 230 470
署名検証 4.5 14.5 31
同種写像暗号技術は注目されて研究が進みNIST PQC 標準化プロジェクト第 4 ラウンドにも選ばれた SIKE
暗号方式及びその基本形である SIDH 鍵共有は最近まで堅調に安全性評価を積み重ねてきた。しかし2022 年の
CastryckDecru の攻撃法 [23] を始めとする一連の攻撃法 [87, 106] は SIDH 鍵共有に対して決定的な結果をもたら
した。
一方本章においても随所に見られるようにKani の補題に基づいて楕円曲線同種写像を高次元同種写像に埋め
込むことで次数が平滑でない同種写像も暗号演算に取り込むことが可能になるなどSIDH 攻撃法に端を発した全
く新しい同種写像暗号研究が現在展開されつつある。例えばSIDH 攻撃の発案者である Castryck は“An Attack
Became a Tool: Isogeny-based Cryptography 2.0” と題する Eurocrypt 2024 の招待講演において,同種写像暗号研
究が今新しい転換点に差し掛かっており,その技術的な核となるのが高次元同種写像の利用であると述べている。更
6.1.3 節で示したレベル構造付き同種写像問題などの新たな安全性解析の枠組みに関しても研究が進んでおり,そ
のような理論的基盤に基づいて,新しい方式提案も含む活発な研究活動が引き続いて行われている。
現在,特に,公開鍵と署名を合わせたサイズが小さい SQIsign 署名方式が注目されていると共に6.1.4 節で見たよ
うな CSIDH ベースの一方向性群作用に関する研究も注目されており,種々の暗号プロトコルへの応用も視野に入れた
研究も進んでいる。それらも含めて,今後,特に注意すべきこと数点について以下にまとめておく。
• SQIsign 署名方式は,公開鍵と署名のサイズの小ささ,補助点なしの署名構成,そして短署名に対する強い社会
的ニーズなどを踏まえると,現在有望な同種写像暗号技術と思われる。その一方,ゼロ知識性に関する計算問題
(定義 6.11)の安全性検討などに関して,まだ安全性評価が不十分であり,その安全性評価は今後の重要な課題
の一つである。さらに,今後は,実装研究を進める必要もあり,特にさまざまなプラットフォームでの実装結果
を蓄えていく必要がある。またSQIsign2D-West 論文 [8]Asiacrypt 2024の副題は “The Fast, the Small,
and the Safer” となっており2 次元同種写像の利用により演算速度,データサイズ,安全性と多方面での改善
が図られており,この方向性での今後の研究進展に注目していく必要がある。
• SQIsign 署名方式は NIST PQC 標準化プロジェクト追加署名第 2 ラウンドに進むことが決定しており [3]
SQIsign及び SQIsign2D署名パラメータに対して
(一般的な)超特異同種写像問題及びそれと同値な自己準
同型環計算問題に対する古典・量子アルゴリズムの詳細な解析・見積もりを行うことが今後の重要な課題である。
• 鍵共有方式として,レベル構造付き同種写像問題に基づく M-SIDH 鍵共有,(Q)FESTA 鍵共有binSIDH 鍵
共有を 6.2.2 節で取り上げた。群作用ベースの鍵共有には例えばCSIDHSCALLOPSiGamal などがあ
るが,他にも POKEIS-CUBELIT-SiGamal など新たな鍵共有・暗号方式が提案されてきており,これから
も同種写像に基づく鍵共有・暗号方式の安全性解析と方式改良(及び新規提案)は大変重要な課題である。
• 6.2.3 節で述べたリング署名・グループ署名の他にもパスワード認証鍵共有PAKE[2, 74] や紛失疑似ランダ
ム関数OPRF[110] などといった一方向性群作用の暗号応用に関する研究が進められており,耐量子計算機
169
性をもつ方式として注目する必要がある。更に,近年では 6.1.4.3 節で見たように量子マネーなどの新しい応用
研究も進んでおり,一方向性群作用の新たな暗号応用を探ることも今後の重要な課題の一つである。
• 上で述べたように高次元同種写像を利用した暗号・署名構成,及び安全性解析は,現在も研究が進展し続けてい
る。全体に,同種写像暗号技術は,まだまだ研究の余地があり,鍵・暗号文・署名サイズの小ささの点で他の耐
量子計算機暗号にない特長があるので,さまざまな利用用途を見据えて今後も継続的な研究が望まれる。
170
第 6 章の参照文献
[1] CRYPTREC 暗号技術調査 WG (耐量子計算機暗号). CRYPTREC 耐量子計算機暗号の研究動向調査報告
書. CRYPTREC TR-2001-2022, https://www.cryptrec.go.jp/report/cryptrec-tr-2001-2022.pdf.
2023-03.
[2] M. Abdalla, T. Eisenhofer, E. Kiltz, S. Kunzweiler, D. Riepel. Password-Authenticated Key Exchange
from Group Actions. CRYPTO (2). Vol. 13508. Lecture Notes in Computer Science. Springer, 2022,
pp. 699728.
[3] 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.
[4] N. Alamati, L. De Feo, H. Montgomery, S. Patranabis. Cryptographic Group Actions and Applications.
ASIACRYPT (2). Vol. 12492. Lecture Notes in Computer Science. Springer, 2020, pp. 411439.
[5] B. Allombert, J.-F. Biasse, J. Komada Eriksen, P. Kutas, C. Leonardi, A. Page, R. Scheidler, M. Tot Bagi.
PEARL-SCALLOP: Parameter Extension Applicable in Real-Life SCALLOP. Cryptology ePrint Archive,
Paper 2024/1744. 2024. https://eprint.iacr.org/2024/1744.
[6] S. Arpin, W. Castryck, J. Komada Eriksen, G. Lorenzon, F. Vercauteren. Generalized class group actions
on oriented elliptic curves with level structure. Cryptology ePrint Archive, Paper 2024/1172. 2024. https:
//eprint.iacr.org/2024/1172. to appear in the proceedings of WAIFI 2024.
[7] A. Basso. POKE: A Framework for Efficient PKEs, Split KEMs, and OPRFs from Higher-dimensional
Isogenies. Cryptology ePrint Archive, Paper 2024/624. 2024. https://eprint.iacr.org/2024/624.
[8] A. Basso, L. De Feo, P. Dartois, A. Leroux, L. Maino, G. Pope, D. Robert, B. Wesolowski. SQIsign2D-West
- The Fast, the Small, and the Safer. 2024.
[9] A. Basso, T. B. Fouotsa. New SIDH Countermeasures for a More Efficient Key Exchange. ASIACRYPT
(8). Vol. 14445. Lecture Notes in Computer Science. Springer, 2023, pp. 208233.
[10] A. Basso, L. Maino, G. Pope. FESTA: Fast Encryption from Supersingular Torsion Attacks. ASIACRYPT
(7). Vol. 14444. Lecture Notes in Computer Science. Springer, 2023, pp. 98126.
[11] B. Bencina, P. Kutas, S.-P. Merz, C. Petit, M. Stopar, C. Weitkämper. Improved Algorithms for Finding
Fixed-Degree Isogenies Between Supersingular Elliptic Curves. CRYPTO (5). Vol. 14924. Lecture Notes
in Computer Science. Springer, 2024, pp. 183217.
[12] D. J. Bernstein, L. De Feo, A. Leroux, B. Smith. Faster computation of isogenies of large prime degree.
ANTS 2020. Vol. 4. The Open Book Series 1. Mathematical Sciences Publishers, 2020, pp. 3955.
[13] D. J. Bernstein, T. Lange, C. Martindale, L. Panny. Quantum Circuits for the CSIDH: Optimizing
Quantum Evaluation of Isogenies. EUROCRYPT (2). Vol. 11477. Lecture Notes in Computer Science.
Springer, 2019, pp. 409441.
171
[14] W. Beullens, S. Dobson, S. Katsumata, Y.-F. Lai, F. Pintore. Group Signatures and More from Isogenies
and Lattices: Generic, Simple, and Efficient. EUROCRYPT (2). Vol. 13276. Lecture Notes in Computer
Science. Springer, 2022, pp. 95126.
[15] W. Beullens, S. Katsumata, F. Pintore. Calamari and Falafl: Logarithmic (Linkable) Ring Signatures from
Isogenies and Lattices. ASIACRYPT (2). Vol. 12492. Lecture Notes in Computer Science. Springer, 2020,
pp. 464492.
[16] W. Beullens, T. Kleinjung, F. Vercauteren. CSI-FiSh: Efficient Isogeny Based Signatures Through Class
Group Computations. ASIACRYPT (1). Vol. 11921. Lecture Notes in Computer Science. Springer, 2019,
pp. 227247.
[17] J.-F. Biasse, D. Jao, A. Sankar. A Quantum Algorithm for Computing Isogenies between Supersingular
Elliptic Curves. INDOCRYPT. Vol. 8885. Lecture Notes in Computer Science. Springer, 2014, pp. 428
442.
[18] D. Boneh, J. Guan, M. Zhandry. A Lower Bound on the Length of Signatures Based on Group Actions
and Generic Isogenies. EUROCRYPT (5). Vol. 14008. Lecture Notes in Computer Science. Springer, 2023,
pp. 507531.
[19] X. Bonnetain, A. Schrottenloher. Quantum Security Analysis of CSIDH. EUROCRYPT (2). Vol. 12106.
Lecture Notes in Computer Science. Springer, 2020, pp. 493522.
[20] G. Bruno, M. Corte-Real Santos, C. Costello, J. Komada Eriksen, M. Meyer, M. Naehrig, B. Sterner.
Cryptographic Smooth Neighbors. Cryptology ePrint Archive, Paper 2022/1439. 2022. https://eprint.
iacr.org/2022/1439.
[21] F. Campos, J. Chávez-Saab, J.-J. Chi-Domı́nguez, M. Meyer, K. Reijnders, F. Rodrı́guez-Henrı́quez, P.
Schwabe, T. Wiggers. Optimizations and Practicality of High-Security CSIDH. IACR Commun. Cryptol.
Vol. 1, Num. 1 (2024), p. 5.
[22] W. Castryck, M. Chen, R. Invernizzi, G. Lorenzon, F. Vercauteren. Breaking and Repairing SQIsign2D-
East. Cryptology ePrint Archive, Paper 2024/1453. 2024. https://eprint.iacr.org/2024/1453. to
appear in the proceedings of ASIACRYPT 2024 merging with [97].
[23] W. Castryck, T. Decru. An Efficient Key Recovery Attack on SIDH. EUROCRYPT (5). Vol. 14008.
Lecture Notes in Computer Science. Springer, 2023, pp. 423447.
[24] W. Castryck, T. Decru, M. Houben, F. Vercauteren. Horizontal Racewalking Using Radical Isogenies.
ASIACRYPT (2). Vol. 13792. Lecture Notes in Computer Science. Springer, 2022, pp. 6796.
[25] W. Castryck, T. Decru, B. Smith. Hash functions from superspecial genus-2 curves using Richelot isogenies.
J. Math. Cryptol. Vol. 14, Num. 1 (2020), pp. 268292.
[26] W. Castryck, T. Decru, F. Vercauteren. Radical Isogenies. ASIACRYPT (2). Vol. 12492. Lecture Notes
in Computer Science. Springer, 2020, pp. 493519.
[27] W. Castryck, M. Houben, S.-P. Merz, M. Mula, S. van Buuren, F. Vercauteren. Weak Instances of Class
Group Action Based Cryptography via Self-pairings. CRYPTO (3). Vol. 14083. Lecture Notes in Computer
Science. Springer, 2023, pp. 762792.
[28] W. Castryck, M. Houben, F. Vercauteren, B. Wesolowski. On the decisional DiffieHellman problem
for class group actions on oriented elliptic curves. ANTS 2022. Vol. 8. Research in Number Theory 99.
Springer, 2022, pp. 3955.
172
[29] W. Castryck, T. Lange, C. Martindale, L. Panny, J. Renes. CSIDH: An Efficient Post-Quantum Commu-
tative Group Action. ASIACRYPT (3). Vol. 11274. Lecture Notes in Computer Science. Springer, 2018,
pp. 395427.
[30] W. Castryck, N. Vander Meeren. Two Remarks on the Vectorization Problem. INDOCRYPT. Vol. 13774.
Lecture Notes in Computer Science. Springer, 2022, pp. 658678.
[31] W. Castryck, J. Sotáková, F. Vercauteren. Breaking the Decisional Diffie-Hellman Problem for Class
Group Actions Using Genus Theory: Extended Version. J. Cryptol. Vol. 35, Num. 4 (2022), p. 24.
[32] W. Castryck, F. Vercauteren. A Polynomial Time Attack on Instances of M-SIDH and FESTA. ASI-
ACRYPT (7). Vol. 14444. Lecture Notes in Computer Science. Springer, 2023, pp. 127156.
[33] D. X. Charles, K. E. Lauter, E. Z. Goren. Cryptographic Hash Functions from Expander Graphs. J.
Cryptol. Vol. 22, Num. 1 (2009), pp. 93113.
[34] J. Chavez-Saab et al. SQIsign: Algorithm specifications and supporting documentation. submission to
the NISTs PQC standardization. (2023).
[35] J. Chávez-Saab, J.-J. Chi-Domı́nguez, S. Jaques, F. Rodrı́guez-Henrı́quez. The SQALE of CSIDH: sublinear
Vélu quantum-resistant isogeny action with low exponents. J. Cryptogr. Eng. Vol. 12, Num. 3 (2022),
pp. 349368.
[36] M. Chen, A. Leroux, L. Panny. SCALLOP-HD: Group Action from 2-Dimensional Isogenies. Public Key
Cryptography (3). Vol. 14603. Lecture Notes in Computer Science. Springer, 2024, pp. 190216.
[37] A. M. Childs, D. Jao, V. Soukharev. Constructing elliptic curve isogenies in quantum subexponential time.
J. Math. Cryptol. Vol. 8, Num. 1 (2014), pp. 129.
[38] L. Colò, D. Kohel. Orienting supersingular isogeny graphs. J. Math. Cryptol. Vol. 14, Num. 1 (2020),
pp. 414437.
[39] C. Costello. B-SIDH: Supersingular Isogeny Diffie-Hellman Using Twisted Torsion. ASIACRYPT (2).
Vol. 12492. Lecture Notes in Computer Science. Springer, 2020, pp. 440463.
[40] C. Costello. The Case for SIKE: A Decade of the Supersingular Isogeny Problem. Cryptology ePrint
Archive, Paper 2021/543. 2021. https://eprint.iacr.org/2021/543.
[41] C. Costello, P. Longa, M. Naehrig, J. Renes, F. Virdia. Improved Classical Cryptanalysis of SIKE in
Practice. Public Key Cryptography (2). Vol. 12111. Lecture Notes in Computer Science. Springer, 2020,
pp. 505534.
[42] J.-M. Couveignes. Hard Homogeneous Spaces. Cryptology ePrint Archive, Paper 2006/291. 2006. https:
//eprint.iacr.org/2006/291.
[43] P. Dartois. Fast computation of 2-isogenies in dimension 4 and cryptographic applications. Cryptology
ePrint Archive, Paper 2024/1180. 2024. https://eprint.iacr.org/2024/1180.
[44] P. Dartois, L. De Feo. On the Security of OSIDH. Public Key Cryptography (1). Vol. 13177. Lecture
Notes in Computer Science. Springer, 2022, pp. 5281.
[45] P. Dartois, A. Leroux, D. Robert, B. Wesolowski. SQIsignHD: New Dimensions in Cryptography. EURO-
CRYPT (1). Vol. 14651. Lecture Notes in Computer Science. Springer, 2024, pp. 332.
[46] P. Dartois, L. Maino, G. Pope, D. Robert. An Algorithmic Approach to (2, 2)-isogenies in the Theta
Model and Applications to Isogeny-based Cryptography. Cryptology ePrint Archive, Paper 2023/1747.
2023. https://eprint.iacr.org/2023/1747.
173
[47] T. Decru. Radical N élu Isogeny Formulae. CRYPTO (5). Vol. 14924. Lecture Notes in Computer Science.
Springer, 2024, pp. 107128.
[48] T. Decru, L. Panny, F. Vercauteren. Faster SeaSign Signatures Through Improved Rejection Sampling.
PQCrypto. Vol. 11505. Lecture Notes in Computer Science. Springer, 2019, pp. 271285.
[49] C. Delfs, S. D. Galbraith. Computing isogenies between supersingular elliptic curves over Fp . Des. Codes
Cryptogr. Vol. 78, Num. 2 (2016), pp. 425440.
[50] M. Duparc, T. B. Fouotsa. SQIPrime: A Dimension 2 Variant of SQISignHD with Non-smooth Challenge
Isogenies. 2024.
[51] K. Eisenträger, S. Hallgren, K. E. Lauter, T. Morrison, C. Petit. Supersingular Isogeny Graphs and Endo-
morphism Rings: Reductions and Solutions. EUROCRYPT (3). Vol. 10822. Lecture Notes in Computer
Science. Springer, 2018, pp. 329368.
[52] K. Eisenträger, S. Hallgren, C. Leonardi, T. Morrison, J. Park. Computing endomorphism rings of super-
singular elliptic curves and connections to pathfinding in isogeny graphs. ANTS 2020. Vol. 4. The Open
Book Series 1. Mathematical Sciences Publishers, 2020, pp. 215232.
[53] A. El Kaafarani, S. Katsumata, F. Pintore. Lossy CSI-FiSh: Efficient Signature Scheme with Tight
Reduction to Decisional CSIDH-512. Public Key Cryptography (2). Vol. 12111. Lecture Notes in Computer
Science. Springer, 2020, pp. 157186.
[54] J. Komada Eriksen, L. Panny, J. Sotáková, M. Veroni. Deuring for the People: Supersingular Elliptic Curves
with Prescribed Endomorphism Ring in General Characteristic. LuCaNT: LMFDB, Computation, and
Number Theory. Vol. 796. Contemporary Mathematics. AMS, 2024. https://www.ams.org/books/conm/
796/16008/conm796-16008.pdf.
[55] L. De Feo. Mathematics of Isogeny Based Cryptography. 2017. arXiv: 1711.04062.
[56] L. De Feo, T. B. Fouotsa, P. Kutas, A. Leroux, S.-P. Merz, L. Panny, B. Wesolowski. SCALLOP: Scaling
the CSI-FiSh. Public Key Cryptography (1). Vol. 13940. Lecture Notes in Computer Science. Springer,
2023, pp. 345375.
[57] L. De Feo, T. B. Fouotsa, L. Panny. Isogeny Problems with Level Structure. EUROCRYPT (6). Vol.
14656. Lecture Notes in Computer Science. Springer, 2024, pp. 181204.
[58] L. De Feo, S. D. Galbraith. SeaSign: Compact Isogeny Signatures from Class Group Actions. EURO-
CRYPT (3). Vol. 11478. Lecture Notes in Computer Science. Springer, 2019, pp. 759789.
[59] L. De Feo, D. Jao, J. Plût. Towards quantum-resistant cryptosystems from supersingular elliptic curve
isogenies. J. Math. Cryptol. Vol. 8, Num. 3 (2014), pp. 209247.
[60] L. De Feo, J. Kieffer, B. Smith. Towards Practical Key Exchange from Ordinary Isogeny Graphs. ASI-
ACRYPT (3). Vol. 11274. Lecture Notes in Computer Science. Springer, 2018, pp. 365394.
[61] L. De Feo, D. Kohel, A. Leroux, C. Petit, B. Wesolowski. SQISign: Compact Post-quantum Signatures from
Quaternions and Isogenies. ASIACRYPT (1). Vol. 12491. Lecture Notes in Computer Science. Springer,
2020, pp. 6493.
[62] L. De Feo, A. Leroux, P. Longa, B. Wesolowski. New Algorithms for the Deuring Correspondence
Towards Practical and Secure SQISign Signatures. EUROCRYPT (5). Vol. 14008. Lecture Notes in
Computer Science. Springer, 2023, pp. 659690.
174
[63] L. De Feo, C. D. de Saint Guilhem, T. B. Fouotsa, P. Kutas, A. Leroux, C. Petit, J. Silva, B. Wesolowski.
Séta: Supersingular Encryption from Torsion Attacks. ASIACRYPT (4). Vol. 13093. Lecture Notes in
Computer Science. Springer, 2021, pp. 249278.
[64] E. Florit, B. Smith. An atlas of the Richelot isogeny graph. RIMS Kôkyûroku Bessatsu. Vol. B90 (2022),
pp. 195219. https://repository.kulib.kyoto-u.ac.jp/dspace/handle/2433/276282.
[65] T. B. Fouotsa, T. Moriya, C. Petit. M-SIDH and MD-SIDH: Countering SIDH Attacks by Masking
Information. EUROCRYPT (5). Vol. 14008. Lecture Notes in Computer Science. Springer, 2023, pp. 282
309.
[66] T. B. Fouotsa, C. Petit. SimS: A Simplification of SiGamal. PQCrypto. Vol. 12841. Lecture Notes in
Computer Science. Springer, 2021, pp. 277295.
[67] J. Fuselier, A. Iezzi, M. Kozek, T. Morrison, C. Namoijam. Computing supersingular endomorphism rings
using inseparable endomorphisms. 2023. arXiv: 2306.03051.
[68] S. Galbraith, L. Panny, B. Smith, F. Vercauteren. Quantum equivalence of the DLP and CDHP for group
actions. Mathematical Cryptology. Vol. 1, Num. 1 (2021), pp. 4044. https://journals.flvc.org/
mathcryptology/article/view/122741.
[69] S. D. Galbraith. Constructing Isogenies between Elliptic Curves Over Finite Fields. LMS Journal of
Computation and Mathematics. Vol. 2 (1999), pp. 118138.
[70] S. D. Galbraith, Y.-F. Lai, H. Montgomery. A Simpler and More Efficient Reduction of DLog to CDH for
Abelian Group Actions. Public Key Cryptography (3). Vol. 14603. Lecture Notes in Computer Science.
Springer, 2024, pp. 3660.
[71] S. D. Galbraith, D. Perrin, J. F. Voloch. CSIDH with Level Structure. Cryptology ePrint Archive, Paper
2023/1726. 2023. https://eprint.iacr.org/2023/1726.
[72] S. D. Galbraith, C. Petit, J. Silva. Identification Protocols and Signature Schemes Based on Supersingular
Isogeny Problems. J. Cryptol. Vol. 33, Num. 1 (2020), pp. 130175.
[73] S. D. Galbraith, F. Vercauteren. Computational problems in supersingular elliptic curve isogenies. Quan-
tum Inf. Process. Vol. 17, Num. 10 (2018), p. 265.
[74] R. Ishibashi, K. Yoneyama. Compact Password Authenticated Key Exchange from Group Actions. ACISP.
Vol. 13915. Lecture Notes in Computer Science. Springer, 2023, pp. 220247.
[75] D. Jao et al. Supersingular Isogeny Key Encapsulation. https://sike.org/files/SIDH- spec.pdf.
2022-09. 2024-11-12 閲覧).
[76] S. Jaques, J. M. Schanck. Quantum Cryptanalysis in the RAM Model: Claw-Finding Attacks on SIKE.
CRYPTO (1). Vol. 11692. Lecture Notes in Computer Science. Springer, 2019, pp. 3261.
[77] Y. Kambe, A. Katayama, Y. Aikawa, Y. Ishihara, M. Yasuda, K. Yokoyama. Computing Endomorphism
Rings of Supersingular Elliptic Curves by Finding Cycles in Concatenated Supersingular Isogeny Graphs.
Commentarii Mathematici Universitatis Sancti Pauli. Vol. 72, Num. 1 (2024), pp. 1942.
[78] Y. Kambe, Y. Takahashi, M. Yasuda, K. Yokoyama. On the feasibility of computing constructive Deuring
correspondence. NuTMiC 2021. Vol. 126. Banach Center Publications. Institute of Mathematics, Pol-
ish Academy od Sciences, 2023. https : / / www . impan . pl / en / publishing - house / banach - center -
publications/all/126/0/115356/on- the- feasibility- of- computing- constructive- deuring-
correspondence.
175
[79] T. Katsura, K. Takashima. Counting Richelot isogenies between superspecial abelian surfaces. ANTS
2020. Vol. 4. The Open Book Series 1. Mathematical Sciences Publishers, 2020, pp. 283300.
[80] D. Kohel. Endomorphism rings of elliptic curves over finite fields. PhD thesis. University of California at
Berkeley, 1996.
[81] D. Kohel, K. Lauter, C. Petit, J.-P. Tignol. On the quaternion -isogeny path problem. LMS Journal
of Computation and Mathematics. Vol. 17 (2014), pp. 418432. Special Issue A: Algorithmic Number
Theory Symposium XI.
[82] G. Kuperberg. A Subexponential-Time Quantum Algorithm for the Dihedral Hidden Subgroup Problem.
SIAM J. Comput. Vol. 35, Num. 1 (2005), pp. 170188.
[83] G. Kuperberg. Another Subexponential-time Quantum Algorithm for the Dihedral Hidden Subgroup
Problem. 8th Conference on the Theory of Quantum Computation, Communication and Cryptography,
TQC 2013, May 21-23, 2013, Guelph, Canada. Ed. by S. Severini, F. G. S. L. Brandão. Vol. 22. LIPIcs.
2013, pp. 2034.
[84] A. Leroux. Quaternion algebras and isogeny-based cryptography. PhD thesis. Ecole Polytechnique, 2022.
[85] J. Liu, H. Montgomery, M. Zhandry. Another Round of Breaking and Making Quantum Money: How to
Not Build It from Lattices, and More. EUROCRYPT (1). Vol. 14004. Lecture Notes in Computer Science.
Springer, 2023, pp. 611638.
[86] P. Longa, W. Wang, J. Szefer. The Cost to Break SIKE: A Comparative Hardware-Based Analysis with
AES and SHA-3. CRYPTO (3). Vol. 12827. Lecture Notes in Computer Science. Springer, 2021, pp. 402
431.
[87] L. Maino, C. Martindale, L. Panny, G. Pope, B. Wesolowski. A Direct Key Recovery Attack on SIDH.
EUROCRYPT (5). Vol. 14008. Lecture Notes in Computer Science. Springer, 2023, pp. 448471.
[88] A. Herlédan Le Merdy, B. Wesolowski. The supersingular endomorphism ring problem given one endo-
morphism. Cryptology ePrint Archive, Paper 2023/1448. 2023. https://eprint.iacr.org/2023/1448.
[89] M. Meyer, S. Reith. A Faster Way to the CSIDH. INDOCRYPT. Vol. 11356. Lecture Notes in Computer
Science. Springer, 2018, pp. 137152.
[90] H. Montgomery, S. Sharif. Quantum Money from Class Group Actions on Elliptic Curves. 2024.
[91] H. Montgomery, M. Zhandry. Full Quantum Equivalence of Group Action DLog and CDH, and More.
ASIACRYPT (1). Vol. 13791. Lecture Notes in Computer Science. Springer, 2022, pp. 332.
[92] T. Moriya. IS-CUBE: An isogeny-based compact KEM using a boxed SIDH diagram. Cryptology ePrint
Archive, Paper 2023/1506. 2023. https://eprint.iacr.org/2023/1506.
[93] T. Moriya. LIT-SiGamal: An efficient isogeny-based PKE based on a LIT diagram. Cryptology ePrint
Archive, Paper 2024/521. 2024. https://eprint.iacr.org/2024/521.
[94] T. Moriya, H. Onuki, T. Takagi. SiGamal: A Supersingular Isogeny-Based PKE and Its Application to a
PRF. ASIACRYPT (2). Vol. 12492. Lecture Notes in Computer Science. Springer, 2020, pp. 551580.
[95] S. Mutreja, M. Zhandry. Quantum State Group Actions. Cryptology ePrint Archive, Paper 2024/1636.
2024. https://eprint.iacr.org/2024/1636.
[96] K. Nakagawa, H. Onuki. QFESTA: Efficient Algorithms and Parameters for FESTA Using Quaternion
Algebras. CRYPTO (5). Vol. 14924. Lecture Notes in Computer Science. Springer, 2024, pp. 75106.
176
[97] K. Nakagawa, H. Onuki. SQIsign2D-East: A New Signature Scheme Using 2-dimensional Isogenies. Cryp-
tology ePrint Archive, Paper 2024/771. 2024. https://eprint.iacr.org/2024/771. to appear in the
proceedings of ASIACRYPT 2024 merging with [22].
[98] H. Onuki, Y. Aikawa, T. Yamazaki, T. Takagi. A Constant-Time Algorithm of CSIDH Keeping Two Points.
IEICE Trans. Fundam. Electron. Commun. Comput. Sci. Vol. 103-A, Num. 10 (2020), pp. 11741182.
[99] R. Oudompheng, G. Pope. A Note on Reimplementing the CastryckDecru Attack and Lessons Learned for
SageMath. Cryptology ePrint Archive, Paper 2022/1283. 2022. https://eprint.iacr.org/2022/1283.
[100] A. Page, B. Wesolowski. The Supersingular Endomorphism Ring and One Endomorphism Problems are
Equivalent. EUROCRYPT (6). Vol. 14656. Lecture Notes in Computer Science. Springer, 2024, pp. 388
417.
[101] C. Peikert. He Gives C-Sieves on the CSIDH. EUROCRYPT (2). Vol. 12106. Lecture Notes in Computer
Science. Springer, 2020, pp. 463492.
[102] C. Petit. Faster Algorithms for Isogeny Problems Using Torsion Point Images. ASIACRYPT (2). Vol.
10625. Lecture Notes in Computer Science. Springer, 2017, pp. 330353.
[103] V. de Quehen, P. Kutas, C. Leonardi, C. Martindale, L. Panny, C. Petit, K. E. Stange. Improved Torsion-
Point Attacks on SIDH Variants. CRYPTO (3). Vol. 12827. Lecture Notes in Computer Science. Springer,
2021, pp. 432470.
[104] O. Regev. A Subexponential Time Algorithm for the Dihedral Hidden Subgroup Problem with Polynomial
Space. 2004. arXiv: quant-ph/0406151.
[105] J. Renes. Computing Isogenies Between Montgomery Curves Using the Action of (0, 0). PQCrypto. Vol.
10786. Lecture Notes in Computer Science. Springer, 2018, pp. 229247.
[106] D. Robert. Breaking SIDH in Polynomial Time. EUROCRYPT (5). Vol. 14008. Lecture Notes in Computer
Science. Springer, 2023, pp. 472503.
[107] D. Robert. On the efficient representation of isogenies (a survey). Cryptology ePrint Archive, Paper
2024/1071. 2024. https://eprint.iacr.org/2024/1071.
[108] D. Robert. The module action for isogeny based cryptography. Cryptology ePrint Archive, Paper
2024/1556. 2024. https://eprint.iacr.org/2024/1556.
[109] A. Rostovtsev, A. Stolbunov. Public-key cryptosystem based on isogenies. Cryptology ePrint Archive,
Paper 2006/145. 2006. https://eprint.iacr.org/2006/145.
[110] C. D. de Saint Guilhem, R. Pedersen. New Proof Systems and an OPRF from CSIDH. Public Key
Cryptography (3). Vol. 14603. Lecture Notes in Computer Science. Springer, 2024, pp. 217251.
[111] M. Corte-Real Santos, C. Costello, J. Shi. Accelerating the Delfs-Galbraith Algorithm with Fast Subfield
Root Detection. CRYPTO (3). Vol. 13509. Lecture Notes in Computer Science. Springer, 2022, pp. 285
314.
[112] M. Corte-Real Santos, J. Komada Eriksen, M. Meyer, K. Reijnders. AprèsSQI: Extra Fast Verification
for SQIsign Using Extension-Field Signing. EUROCRYPT (1). Vol. 14651. Lecture Notes in Computer
Science. Springer, 2024, pp. 6393.
[113] B. Smith. Pre- and Post-quantum Diffie-Hellman from Groups, Actions, and Isogenies. WAIFI. Vol. 11321.
Lecture Notes in Computer Science. Springer, 2018, pp. 340.
[114] K. Takashima. Efficient Algorithms for Isogeny Sequences and Their Cryptographic Applications. CREST
Crypto-Math Project. Mathematics for Industry. Springer Singapore, 2017, pp. 97114.
177
[115] A. Udovenko, G. Vitto. Revisiting Meet-in-the-Middle Cryptanalysis of SIDH/SIKE with Application to
the $IKEp182 Challenge. Cryptology ePrint Archive, Paper 2021/1421. 2021. https://eprint.iacr.
org/2021/1421.
[116] J. Vélu. Isogénies entre courbes elliptiques. C. R. Acad. Sci. Paris, Sér. A. Vol. 273 (1971), pp. 305347.
[117] J. Voight. Quaternion algebras. Springer International Publishing, 2021-06.
[118] L. C. Washington. Elliptic curves : number theory and cryptography. 2nd ed. Discrete mathematics and
its applications. Chapman & Hall/CRC, 2008.
[119] B. Wesolowski. The supersingular isogeny path and endomorphism ring problems are equivalent. FOCS.
IEEE, 2021, pp. 11001111.
[120] M. Zhandry. Quantum Money from Abelian Group Actions. ITCS. Vol. 287. LIPIcs. 2024, 101:1101:23.
[121] 相川 勇輔, 神戸 祐太, 工藤 桃成, 高島 克幸, 安田 雅哉. 代数曲線の計算理論と暗号への応用. 数学メモアール
10. 日本数学会, 2024.
178
第7章
ハッシュ関数に基づく署名技術
本章ではハッシュ関数に基づく署名技術についてまとめる。ハッシュ関数に基づく署名技術の安全性はハッシュ関数
の第二原像攻撃に対する安全性に依存している。
ハッシュ関数に基づく署名技術は,最初に Lamport により one-time signature として提案された [15, 31]。また,
この方式を改良した Winternitz one-time signature が Merkle [35] により述べられている。これらの方式は一組の公
開鍵と秘密鍵を用いて一つのメッセージに署名を行う 1 回署名方式である。1 回署名方式とマークル木とを用いて複数
回署名を行うことを可能とする方式が Merkle [34, 35] により述べられている。
7.1 ハッシュ関数に基づく署名技術の安全性の根拠となる問題
ハッシュ関数は任意長あるいは実用上十分な長さ以下の入力 {0, 1} 系列に対して固定長の {0, 1} 系列を出力する
関数である。ハッシュ関数を H : D → R とする。ここでD は任意長の {0, 1} 系列の集合 {0, 1} の部分集合であ
R は固定長の {0, 1} 系列の集合である。ハッシュ関数の第二原像攻撃は,第一原像 X ∈ D が与えられたとき,
X 6= X かつ H(X) = H(X ) を満たす第二原像 X ∈ D を求めるという問題を解くことを目的とする攻撃である。な
お,第二原像攻撃に対する安全性は,しばしばハッシュ関数の各入力に対する出力がランダムであると仮定して評価さ
れる。このようなランダム関数はランダムオラクルとも呼ばれる。H がランダムオラクルであるとき,第二原像の計
算時間は Θ(|R|) である。また量子コンピュータではGrover の探索アルゴリズム [20] を用いることにより,第二
p
原像の計算時間は Θ( |R|) となる。
本章で取り上げるハッシュ関数に基づく署名技術では,米国 NIST の指定する標準ハッシュ関数族である SHA-2 [38],
SHA-3 [39] のうちのいくつかのハッシュ関数を用いることが想定されている。
SHA-2 は固定長入出力の圧縮関数からなる Merkle-Damgård 構造 [14, 36] を有するハッシュ関数の族でありSecure
Hash Standard [38] のうちSHA-1 を除く SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256
からなる。SHA-2 の各ハッシュ関数の名称の末尾の数値は出力の bit 長を表す。SHA-3 は固定長入出力の置換を用い
たスポンジ構造 [9] を有するハッシュ関数の族でありSHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128,
SHAKE256 からなる。SHA3-224, SHA3-256, SHA3-384, SHA3-512 については,末尾の数値は出力の bit 長を表す。
なお,出力長は内部状態のうちスポンジ構造を有するハッシュ関数の安全性に大きく関わるキャパシティと呼ばれる部
分の bit 長の半分である。SHAKE128,SHAKE256 については,出力長は任意に設定できる。なお,末尾の数値はキャ
パシティの bit 長の半分である。SHA-2, SHA-3 の出力長および安全性の一覧を表 7.1 に示す。この表では,第二原像
攻撃に対する安全性のみでなく,それとともにハッシュ関数の主な安全性要件である衝突攻撃,原像攻撃に対する安全
性も示されている。この表で,攻撃に対する安全性を表す数値 µ は bit 安全性と呼ばれ,攻撃に成功するために必要な
計算時間(ハッシュ関数を構成する圧縮関数あるいは置換の計算回数)がおよそ 2µ であることを示している。なお,
SHA-224, SHA-256, SHA-512 の第二原像攻撃に対する安全性は Kelsey と Schneier により提案された攻撃 [29] に基
179
づいて評価されておりL(m) := dlog2 (m/B)e である。ここでm は第一原像の bit 長でありSHA-224, SHA-256
については B = 512SHA-512 については B = 1024 である。
表 7.1: SHA-2, SHA-3 の安全性 [39]
ハッシュ関数 出力長 攻撃に対する安全性(ビットセキュリティ)
衝突攻撃 原像攻撃 第二原像攻撃
SHA-224 224 112 224 min{224, 256 L(m)}
SHA-512/224 224 112 224 224
SHA-256 256 128 256 256 L(m)
SHA-512/256 256 128 256 256
SHA-384 384 192 384 384
SHA-512 512 256 512 512 L(m)
SHA3-224 224 112 224 224
SHA3-256 256 128 256 256
SHA3-384 384 192 384 384
SHA3-512 512 256 512 512
SHAKE128 d min{d/2, 128} min{d, 128} 以上 min{d, 128}
SHAKE256 d min{d/2, 256} min{d, 256} 以上 min{d, 256}
本章で使用する記号・用語を以下にまとめる。
• {0, 1} 系列 α, β の連接を αkβ と表記する。
 は左論理シフトを表す。
• 整数 ν について [ν]l は ν の長さ l Bytes の 2 進数表記を表す。
• B := {0, 1}8 とする。
• 8080 のように typewriter font で書かれている数字は 16 進数として解釈する。
7.2 ハッシュ関数に基づく代表的な署名方式
7.2.1 Winternitz One-Time Signature
Winternitz one-time signature [35] は,一組の公開鍵と秘密鍵を用いて一つのメッセージに署名を行う 1 回署名
方式である。この方式では,署名対象のメッセージのハッシュ値 N を b 進数表記の整数とみなす。N が m 桁の b
進数 Nm 1 Nm 2 · · · N1 N0 で表記されるとする。このとき0 ≤ k ≤ m 1 について Nk ∈ {0, 1, . . . , b 1} であ
m 1
X m 1
X
N = Nk 2k である。さらにN のチェックサムを C := (b 1 Nk ) と定義する。C が c 桁の b 進数
k=0 k=0
Nm +c 1 Nm +c 2 · · · Nm +1 Nm で表記されるとする。ℓ := m + c とする。
■鍵生成アルゴリズム 秘密鍵 (x0 , x1 , . . . , x1 ),公開鍵 (pub0 , pub1 , . . . , pub1 ) は以下のように生成される。
1. 一様ランダムに x0 , x1 , . . . , x1 ∈ D を取る。
2. 0 ≤ k ≤ 1 について pubk := H b1 (xk ) := H(H(· · · (H (xk )) · · · )) とする。
| {z }
b1 times
180
■署名アルゴリズム メッセージのハッシュ値 N の署名 (s0 , s1 , . . . , s1 ) は以下のように生成される。
1. 0 ≤ k ≤ 1 について sk := H Nk (xk ) とする。
■検証アルゴリズム メッセージのハッシュ値 N とその署名 (s0 , s1 , . . . , s1 ) の検証は以下のように行われる。
1. 0 ≤ k ≤ 1 について pubk = H b1Nk (sk ) かつそのときに限り,(s0 , s1 , . . . , s1 ) は N の正しい署名で
ある。
仮にチェックサムが導入されていないとするとN の署名 (s0 , s1 , . . . , sm 1 ) が得られたとき0 ≤ k ≤ m 1 に
ついて Nk ≥ Nk を満たす N についてsk := H Nk Nk (sk ) によって,署名 (s0 , s1 , . . . , sm 1 ) が容易に偽造できる。
Winternitz one-time signature の偽造不能性はDods ら [16] により論じられている。Winternitz one-time signa-
ture に基づく方式についてはLafrance と Menezes [30] によりまとめられている。
7.2.2 マークル木を用いた署名方式
1 回署名方式を用いて複数のメッセージに署名を行う場合,メッセージの個数と同じ個数の公開鍵と秘密鍵の組が必
要となる。マークル木を用いることにより,このような複数回署名方式の公開鍵の大きさを削減できる [34]。
2h 個のメッセージに署名を行うための 1 回署名の公開鍵を pk0 , pk1 , . . . , pk2h 1 とする。このとき,高さが hすな
わち,葉の個数が 2h のマークル木は以下のように構成される。高さ j(≥ 0) の左から i(≥ 0) 番目の節点を vi,j と表記
する。vi,j は以下のように計算される。
1. 0 ≤ i ≤ 2h 1 についてvi,0 := H(pki ) とする。
2. 1 ≤ j ≤ h に対し0 ≤ i ≤ 2hj 1 についてvi,j := H(v2i,j1 kv2i+1,j1 ) とする。
この署名方式の公開鍵は v0,h である。秘密鍵は 1 回署名の公開鍵 pk0 , pk1 , . . . , pk2h 1 に対応するすべての秘密鍵で
ある。i 個目のメッセージの署名を検証するためにはv0,h を用いて pki が正しいことを検証する必要がある。このた
めにi 個目のメッセージの署名には,マークル木の vi,0 から v0,h に至る経路上の各節点の,経路上にない子節点が含
まれる。これらの節点の列は認証パスと呼ばれる。
7.2.3 マークル木の階層構造による署名方式
前節で述べた一つのマークル木を用いた署名方式では,鍵生成時にすべての 1 回署名の公開鍵と秘密鍵を生成する必
要があり例えば250 個の署名を行うために高さ 50 のマークル木を構成することは,所要計算時間の観点から非実用
的である。このような多数のメッセージに署名を行う際には,マークル木を用いた署名方式の階層構造による署名方式
が提案されている [24]。
この署名方式で構成されるマークル木を用いた署名方式の階層構造の階層数を L とし,根に相当する最上層を第
(L 1) 層,葉に相当する最下層を第 0 層とする。さらに0 ≤ i ≤ L 1 について,第 i 層のマークル木の高さはすべ
∑L1 ∑L1
て等しく hi であると仮定する。このとき,第 i 層のマークル木は 2 j=i+1 hj 個存在する。この署名方式では 2 j=0 hj
個のメッセージに署名できる。
この署名方式では,第 (L 1) 層のマークル木の根が公開鍵となる。この公開鍵を生成する際には1 回署名の公開
鍵と秘密鍵の組を 2hL1 個だけ生成すれば良い。0 < i ≤ L 1 について,第 i 層の各マークル木は第 (i 1) 層の 2hi
個のマークル木の根を署名するために使用される。第 0 層のマークル木は,それぞれ 2h0 個のメッセージの署名に使用
される。
181
この署名方式では,一つのメッセージの署名の際に,各層についてそれぞれ一つのマークル木を生成しておけば十分
である。各メッセージの署名は,そのメッセージに対する第 0 層のマークル木による署名と0 < i ≤ L 1 について,
そのメッセージの署名の際に使用された第 i 層のマークル木による第 (i 1) 層のマークル木の根の署名からなる。こ
の署名方式について,階層数 L = 3各階層のマークル木の高さ h0 = h1 = h2 = 3 の模式図を図 7.1 に示す。灰色の
節点は認証パスをなす節点である。
message
図 7.1: マークル木の階層構造による署名方式
7.2.4 プレフィクスとビットマスク
プレフィクスは,ハッシュ関数に基づく署名方式の処理において,すべてのハッシュ関数の計算がそれぞれ異なる
入力に対して行われるよう入力に付加される系列である。プレフィクスはLighton と Micali [32] によりsecurity
string という名称で,ハッシュ関数に基づく署名方式の安全性をハッシュ関数の第二原像攻撃に対する安全性にタイト
に帰着するために導入された。なお,プレフィクスは,ハッシュ関数の用途とそれが用いられる位置(例えば,どの 1
回署名方式か,どのマークル木のどの節点か)により自然に定義できることから,現在は通常,アドレスと呼ばれる。
ビットマスクはDahmen ら [13] により,ハッシュ関数に基づく署名方式の安全性をハッシュ関数の第二原像攻撃
に対する安全性に帰着するために導入された。ビットマスクは乱数系列であり,ハッシュ関数への入力をランダム化す
るためにbit ごとの排他的論理和により入力に加えられる。
7.3 ハッシュ関数に基づく主要な署名方式
本章で取り上げるハッシュ関数に基づく署名方式を表 7.2 に示す。
NIST SP 800-208 [12] は,以下のハッシュ関数に基づく stateful な署名方式を規定している。
• Lighton-Micali Signatures (LMS), Hierarchical Signature System (HSS) [33]
• eXtended Merkle Signature Scheme (XMSS), multi-tree XMSS (XMSS M T ) [21]
LMS は Lighton と Micali による署名方式 [32] に基づく。HSS, XMSSM T はそれぞれ7.2.3 節で述べられたような,
LMS, XMSS の階層構造による署名方式である。ハッシュ関数に基づく stateful な署名方式では,同一の秘密鍵が複
182
表 7.2: ハッシュ関数に基づく署名方式
文献 暗号化 鍵交換 署 名
Lighton-Micali Hash-Based Signatures [33, 12] ○
eXtended Merkle Signature Scheme (XMSS) [21, 12] ○
Stateless Hash-Based Digital Signature Algorithm (SLH-DSA) [40] ○
数のメッセージの署名に使用されることがないように秘密鍵を管理することが必須である。
NIST FIPS 205 [40] はハッシュ関数に基づく stateless な署名方式 SLH-DSA (Stateless Hash-Based Digital
Signature Algorithm) を規定している。stateless な署名方式ではstateful な方式に求められるような秘密鍵の管理
は不要である。SLH-DSA は2022 年 7 月に NIST PQC 標準化プロジェクトで標準化候補アルゴリズムの一つに選出
された SPHINCS+ v.3.1 [2] に基づく。SPHINCS+ は SPHINCS [8] の改良版として提案され [6, 7],その後も NIST
PQC 標準化プロジェクトで改良が行われv.3.1 となった。
以下ではLighton-Micali Hash-Based SignaturesXMSSSLH-DSA についてそれぞれ 7.3.1 節7.3.2 節7.3.3
節で述べるが,どの順番で読んでも差し支えない。
7.3.1 Lighton-Micali Hash-Based Signatures
IRTF RFC 8554 [33] ではLMS, HSS が述べられている。LMS, HSS では Winternitz one-time signature に基
づく LM-OTS が用いられる。LMS は LM-OTS とマークル木とを用いて構成され,この構造は LMS 木と呼ばれる。
HSS は LMS 木の階層構造による署名方式である。LM-OTS, LMS, HSS にはそれぞれ,それらのアルゴリズムで用い
られるハッシュ関数,パラメータセットに対応する長さ 4 Bytes の符号なし整数が割り当てられる。これは typecode
と呼ばれる。
[
本節では,ハッシュ関数 H : D → R についてD = {0, 1}8i , R = {0, 1}8n とする。すなわちH は任意長の
i≥0
byte 系列を入力とし,長さ n Bytes の系列を出力する。なお,本節の表記は概ね [18] の表記法に基づいている。
7.3.1.1 LM-OTS
w ∈ {1, 2, 4, 8} を Winternitz 係数の幅bit 長とする。p を LM-OTS を構成する長さ n Bytes の系列の個数とす
る。type を typecode とする。ハッシュ関数 H を用いて以下の関数が定義される。
(
i x i = 0 のとき
HI,q,d (x; j) :=
H(Ik[q]4 k[d]2 k[i + j 1]1 kHI,q,d
i1
(x; j)) i ≥ 1 のとき
ここでI は長さ 16 Bytes の系列でありLM-OTS がLMS や HSS においてどのマークル木で使用されるかを表す。
q は長さ 4 Bytes の整数でありLM-OTS の公開鍵が対応するマークル木の葉を表す。
■鍵生成アルゴリズム 与えられた I, q に対応する秘密鍵と公開鍵の組を生成するアルゴリズムを以下に示す。
1. x0 , x1 , . . . , xp1 ∈ {0, 1}8n を一様ランダムに取る。
2 1 w
2. 0 ≤ i ≤ p 1 についてyi := HI,q,i (xi ; 0) とする(図 7.2)。
3. K := H(Ik[q]4 k[8080]2 ky0 ky1 k · · · kyp1 ) とする。
秘密鍵は (type, I, q, x0 , x1 , . . . , xp1 ) である。公開鍵は [type]4 kIk[q]4 kK である。
183
図 7.2: yi の計算
■署名アルゴリズム Checksum : {0, 1}8n → {0, 1}16 は以下のように定義される関数である。
8n/w1
X 
Checksum(S) := (2w 1 di )  ls
i=0
ここでS = d0 kd1 k · · · kd8n/w1 であり0 ≤ i ≤ 8n/w 1 について di ∈ {0, 1}w である。上式で di は整数とみな
されている。またls は n, w に応じて決まる整数であり16 ls が w の倍数でありかつChecksum(S) の 2 進数
表記の長さが常に 16 ls bits 以下となるよう定められる。
メッセージ M に対する署名アルゴリズムを以下に示す。
1. アルゴリズムのパラメータセットに応じて type, n, p, w の値を定める。
2. C ∈ {0, 1}8n を無作為に選択しQ := H(Ik[q]4 k[8181]2 kCkM )c := Checksum(Q) とする。
3. Qkc ∈ {0, 1}wp をそれぞれ長さ w bits のブロック V0 , V1 , . . . , Vp1 に分割する。
4. 0 ≤ i ≤ p 1 についてσi := HI,q,i
Vi
(xi ; 0) とする。ここでVi は整数とみなされる。
メッセージ M に対する署名は σ := [type]4 kCkσ0 kσ1 k · · · kσp1 である。
■検証アルゴリズム 鍵生成と署名のアルゴリズムより容易に導出される。詳細は [18, 33] を参照のこと。
7.3.1.2 LMS
LMS は LM-OTS と同じハッシュ関数を用いることが推奨されている。LMS のマークル木の各節点には番号が付さ
れる。根の番号は 1 であり,番号 ν の節点の左の子と右の子の番号はそれぞれ 2ν, 2ν + 1 である。
h はマークル木の高さを表す。m はマークル木の各節点に対応する系列の byte 長を表し,これはハッシュ関数の出
力長である。h, m の値は LMS の typecode によって定められる。
■鍵生成アルゴリズム
1. I ∈ {0, 1}128 を一様ランダムに取る。
2. 0 ≤ q ≤ 2h 1 についてLM-OTS の公開鍵と秘密鍵の組 (pk q , sk q ) を生成する。
3. マークル木の番号 r の節点に対応する系列 T [r] は以下のように定義される。
( h
H(Ik[r]4 k[8282]2 kpk r2 ) 2h ≤ r ≤ 2h+1 1 のとき
T [r] :=
H(Ik[r]4 k[8383]2 kT [2r]kT [2r + 1]) 1 ≤ r ≤ 2h 1 のとき
公開鍵は [type]4 k[otstype]4 kIkT [1] である。秘密鍵は sk 0 , sk 1 , . . . , sk 2 1 である。ここで type, otstype はそれぞれ
h
LMS, LMS-OTS の typecode を表す。
■署名アルゴリズム 以下では 0 ≤ q ≤ 2h 1 である。最初の署名では q = 0 とし1 回の署名ごとに q の値を 1 だ
け増やすことによりLM-OTS の各秘密鍵を複数回使用しないようにしなければならない。
メッセージ M に対する署名アルゴリズムを以下に示す。
184
1. 秘密鍵 sk q を用いて LM-OTS による M の署名 σ を計算する。
2. 0 ≤ i ≤ h 1 についてpi := T [b(q + 2h )/2i c ⊕ 1] とする。
M の署名は [q]4 kσk[type]4 kp0 kp1 k · · · kph1 である。p0 , p1 , . . . , ph1 は LM-OTS の公開鍵 pk q の認証パスである。
■検証アルゴリズム 鍵生成と署名のアルゴリズムより容易に導出される。詳細は [18, 33] を参照のこと。
7.3.1.3 HSS
HSS は 7.2.3 節で述べられたような LMS 木の階層構造による署名方式である。階層数 L は 1 ≤ L ≤ 8 を満たす。
HSS は stateful な署名方式なので,メッセージの署名の際に最下層の LMS 木の秘密鍵が使い尽くされたとき,その
メッセージの署名で使用された L 個の LMS 木のうち,第 l 層から下のすべての LMS 木の秘密鍵が使い尽くされた最
大の l を求める。l = L 1 のときは新たな署名を作成しない。l ≤ L 2 のとき0 ≤ i ≤ l について,秘密鍵が使い
尽くされた第 i 層の LMS 木を破棄し,それぞれに替わる新たな LMS 木を使用して新しいメッセージへの署名を行う。
HSS の鍵生成,署名,検証の各アルゴリズムについての詳細は [18, 33] を参照のこと。
7.3.1.4 パラメータの設定と安全性
LMS の選択文書攻撃に対する存在偽造不能性EUF-CMAについてはKatz [28] や Fluhrer [18] によりランダ
ムオラクルモデルを仮定して示されておりまたEaton [17] により量子ランダムオラクルモデルを仮定して示されて
いる。なおIRTF RFC 8554 [33] には,ハッシュ関数は第二原像攻撃に対する安全性を満たさなければならないと記
されている。
NIST SP 800-208 [12] では,ハッシュ関数として SHA-256, SHA-256/192, SHAKE256/256, SHAKE256/192 を
使用することが認可されている。ここでSHA-256/192 は SHA-256 の出力の上位 192 bits を出力とするハッシュ関
数である。SHAKE256/256, SHAKE256/192 はそれぞれ,出力長を 256 bits192 bits とする SHAKE256 である。
NIST SP 800-208 [12] と IRTF RFC 8554 [33] の両方に掲載されている SHA-256 を用いる場合の LM-OTS, LMS の
パラメータセットの値の一覧をそれぞれ表 7.3, 7.4 に示す。
表 7.3: LM-OTS のパラメータセットと署名長(単位は Byte 表 7.4: LMS のパラメータセット
名称 n w p ls 署名長 名称 m h
LMOTS SHA256 N32 W1 32 1 265 7 8,516 LMS SHA256 M32 H5 32 5
LMOTS SHA256 N32 W2 32 2 133 6 4,292 LMS SHA256 M32 H10 32 10
LMOTS SHA256 N32 W4 32 4 67 4 2,180 LMS SHA256 M32 H15 32 15
LMOTS SHA256 N32 W8 32 8 34 0 1,124 LMS SHA256 M32 H20 32 20
LMS SHA256 M32 H25 32 25
7.3.2 XMSS: eXtended Merkle Signature Scheme
XMSS は [10, 24] で提案された方式の改良版 [25] に基づく署名方式でありWOTS+ と呼ばれる Winternitz
one-time signature に基づく 1 回署名方式 [22] を用いる*1 。
XMSS では三つの鍵付きハッシュ関数 F, H, Hmsg と擬似ランダム関数 R が用いられる。いずれも出力の byte 長は
等しく,これを n とする。F の入力は byte 長 n の鍵と byte 長 n の系列である。H の入力は byte 長 n の鍵と byte
*1 7.3.3 節の SLH-DSA で用いられる 1 回署名方式とマークル木を用いた署名方式もそれぞれ WOTS+ XMSS と呼ばれるが,アルゴリズム
には相違点が存在する。
185
長 2n の系列である。Hmsg の入力は byte 長 3n の鍵と任意 byte 長の系列である。R の入力は byte 長 n の鍵と byte
長 32 の系列である。これらの関数は SHA-2 [38] または SHA-3 [39] を用いて定義される。例えばn = 32 のとき,
SHA-256 を用いて以下のように定義される。
F(k, x) := SHA-256([0]32 kkkx)
H(k, x) := SHA-256([1]32 kkkx)
Hmsg (k, x) := SHA-256([2]32 kkkx)
R(k, x) := SHA-256([3]32 kkkx)
XMSS では,ハッシュ関数の呼び出しをランダム化するために,それぞれのハッシュ関数の呼び出しで,鍵とビット
マスクが用いられる。これらは擬似ランダム関数を用いて生成され,入力として byte 系列の seed と長さ 32 Bytes の
アドレス ADRS が与えられる。アドレスは 3 種あり,それぞれ OTS ハッシュアドレスL 木アドレス,ハッシュ木ア
ドレスと呼ばれる。それらの構造を図 7.3 に示す。
layer address (4 Bytes) layer address (4 Bytes) layer address (4 Bytes)
tree address (8 Bytes) tree address (8 Bytes) tree address (8 Bytes)
type = 0 (4 Bytes) type = 1 (4 Bytes) type = 2 (4 Bytes)
OTS address (4 Bytes) L-tree address (4 Bytes) Padding = 0 (4 Bytes)
chain address (4 Bytes) tree height (4 Bytes) tree height (4 Bytes)
hash address (4 Bytes) tree index (4 Bytes) tree index (4 Bytes)
keyAndMask (4 Bytes) keyAndMask (4 Bytes) keyAndMask (4 Bytes)
(a) OTS ハッシュアドレス (b) L 木アドレス (c) ハッシュ木アドレス
図 7.3: アドレスの構造
7.3.2.1 WOTS+
w ∈ {4, 16} は Winternitz パラメータと呼ばれる。ℓ := 1 + 2 は公開鍵,秘密鍵,署名を構成する byte 長 n の要
素の個数を表す。ここで,
1 := d8n/log2 we, 2 := blog2 (1 (w 1))/log2 wc + 1
である。
■チェイニング関数 チェイニング関数 chain の入力は,長さ n Bytes の系列 X ,スタートインデクス iステップ数
s長さ 32 Bytes のアドレス ADRS長さ n Bytes のシード seed であり,以下のように定義される。
X s = 0 のとき
chain(X, i, s, seed, ADRS) := NULL i + s ≥ w のとき
F(Key, chain(X, i, s 1, seed, ADRS) ⊕ BM ) それ以外のとき
ここで,
Key := R(seed, ADRS k[i + s 1]4 k[0]4 ), BM := R(seed, ADRS k[i + s 1]4 k[1]4 )
である。なおADRS は ADRS の上位 24 Bytes であり例えばADRS k[i + s 1]4 k[0]4 は図 7.3a の ADRS の
hash address, keyAndMask の値をそれぞれ,[i + s 1]4 , [0]4 とすることを表している。
186
■鍵生成アルゴリズム 入力は ADRS, seed である。
1. 0 ≤ i ≤ 1 についてsk i ∈ {0, 1}8n を一様ランダムに取る。
2. 0 ≤ i ≤ 1 についてADRS の chain address の値を [i]4 とし,
pk i := chain(sk i , 0, w 1, seed, ADRS)
とする。この計算を図 7.4 に示す。この図で
Key j := R(seed, ADRS k[j]4 k[0]4 ), BM j := R(seed, ADRS k[j]4 k[1]4 )
である。
公開鍵は pk := (pk 0 , pk 1 , . . . , pk 1 ) である。秘密鍵は sk := (sk 0 , sk 1 , . . . , sk 1 ) である。
図 7.4: pk i の計算
■署名アルゴリズム 入力は byte 長 n のメッセージ M ,秘密鍵 sk ,アドレス ADRSシード seed である。
1. M をそれぞれ長さ log2 w bits の 1 個のブロックに分割し,先頭から順に M0 , M1 , . . . , M1 1 とする。これら
を整数とみなすと0 ≤ i ≤ 1 1 についてMi ∈ {0, 1, . . . , w 1} である。
1 1
X
2. C := (w 1 Mi ) とする。
i=0
3. C · 2
8(2 log2 w mod 8)
を長さ d(2 log2 w)/8e Bytes の系列とみなし,それぞれ長さ log2 w bits の 2 個のブロッ
クに分割し,先頭から順に M1 , M1 +1 , . . . , M1 とする。
4. 0 ≤ i ≤ 1 についてADRS の chain address の値を i とし,
sig i := chain(sk i , 0, Mi , seed, ADRS)
とする。
メッセージ M に対する署名は sig 0 , sig 1 , . . . , sig 1 である。
■検証アルゴリズム 鍵生成と署名のアルゴリズムより容易に導出される。詳細は [21] を参照のこと。
7.3.2.2 XMSS
XMSS はマークル木を用いた署名方式であり,公開鍵と秘密鍵の各組は完全二分木に対応付けられる。
XMSS のハッシュ木の構成のために,ランダム化ハッシュ関数 RH が導入されている。RH の入力は長さ n Bytes の
LEFT , RIGHT ,長さ n Bytes のシード seed長さ 32 Bytes のアドレス ADRS であり,以下のように定義される。
RH(LEFT , RIGHT , seed, ADRS) := H(Key, (LEFT ⊕ BM0 )k(RIGHT ⊕ BM1 ))
ここで,
Key := R(seed, ADRS k[0]4 ), BM0 := R(seed, ADRS k[1]4 ), BM1 := R(seed, ADRS k[2]4 )
187
である。なおADRS は ADRS の上位 28 Bytes であり例えばADRS k[0]4 は ADRS の図 7.3 の keyAndMask
の値を [0]4 とすることを表している。
秘密鍵の生成には [10] に示されているような擬似ランダム鍵生成法を用いることが許容されているが,その安全性
は少なくとも XMSS の安全性と同等でなければならない。
■鍵生成アルゴリズム 鍵生成アルゴリズムではマークル木が構成され,その各葉には WOTS+ の公開鍵が対応する。
WOTS+ の公開鍵に対して L 木と呼ばれるハッシュ木が構成され,その木の根のハッシュ値が XMSS のマークル木の
葉に割り当てられる。L 木の高さ j(≥ 0) の左から i(≥ 0) 番目の節点を Nodei,j と表記する。L 木は以下にしたがって
構成される。入力は WOTS+ の公開鍵 pk := (pk 0 , pk 1 , . . . , pk 1 )L 木アドレス ADRSシード seed である。
1. 0 ≤ i ≤ 1 についてNodei,0 := pk i とする。
2. j ≥ 0 について,根が得られるまで以下にしたがって Nodei,j+1 を計算する。なお,値の定義された Nodei,j の
個数を とする。
a0 ≤ i < b /2c についてNodei,j+1 := RH(Node2i,j , Node2i+1,j , seed, ADRS) とする。ここでADRS
の tree height を [j]4 tree index を [i]4 とする。さらに,ℓ′ が奇数のときNode⌊ /2⌋,j+1 := Node 1,j
とする。
bj ← j + 1 とする。
鍵生成アルゴリズムで構成されるマークル木の高さを h とすると,このマークル木には 2h 個の葉が存在する。この
マークル木に対応する 2h 個の WOTS+ の公開鍵,それらの L 木,さらに,このマークル木の計算に用いられる OTS
ハッシュアドレスL 木アドレス,ハッシュ木アドレスの layer addresstree address はすべて,それぞれ [0]4 [0]8
である。左から k (≥ 0) 番目の葉に対応する OTS ハッシュアドレスの OTS addressL 木アドレスの L-tree address
は [k]4 である。
鍵生成アルゴリズムで構成されるマークル木の葉は対応する L 木の根である。葉以外の節点は L 木の節点と同じ方
法で計算される。なお,このマークル木は完全二分木なので,上述の L 木の計算手続きで,ℓ′ は常に偶数となる。
秘密鍵は2h 個の WOTS+ の秘密鍵,次の署名に使用される WOTS+ の秘密鍵に対応するマークル木の葉の番号
idx ,署名されるメッセージのハッシュの計算に使用される SKPRF ,マークル木の根 root seed である。公開鍵は,
マークル木の根seed である。ここでSKPRF と seed はこの鍵生成アルゴリズムで無作為に選択される長さ n Bytes
の系列である。また,公開鍵には識別子 OID が付される。
■署名アルゴリズム メッセージ M の署名は,署名に使用される WOTS+ の秘密鍵の番号 idx M のダイジェスト
の計算に使用される乱数 r WOTS+ による署名,マークル木の idx 番目の葉の認証パスからなる。
1. M のダイジェストを M := Hmsg (rkrootk[idx ]n , M ) とする。ここでr := R(SKPRF , [idx ]4 ) である。
2. WOTS+ の idx 番目の秘密鍵を用いて M に署名し,マークル木の idx 番目の葉の認証パスを計算する。
WOTS+ の同じ秘密鍵が 2 回以上使用されないようidx は idx ← idx + 1 により更新される。
■検証アルゴリズム 鍵生成と署名のアルゴリズムより容易に導出される。詳細は [21] を参照のこと。
7.3.2.3 XMSSM T
XMSSM T は7.2.3 節のマークル木の階層構造による署名方式に相当する。XMSSM T 木はハイパー木と呼ばれd
層の XMSS 木からなる。ここでXMSS 木は 7.3.2.2 節の鍵生成アルゴリズムで生成される L 木とマークル木から
なる木を表す。第 (d 1) 層と第 0 層はそれぞれXMSSM T 木の根と葉に相当する。すべての XMSS 木の高さは等
しくWinternitz パラメータもすべて同じ値が用いられる。第 x 層の左から y 番目の XMSS 木の構成で使用される
188
OTS ハッシュアドレスL 木アドレス,ハッシュ木アドレスの layer address と tree address は,それぞれ [x]4 [y]4
である。
XMSSM T の鍵生成,署名,検証の各アルゴリズムについての詳細は [21] を参照のこと。
7.3.2.4 パラメータの設定と安全性
Kampanakis と Fluhrer [26] によりLMS と XMSS の比較が論じられている。
Hülsing [25] らはXMSS について安全性証明を与えEUF-CMA 安全性を満たすことを鍵付きハッシュ関数
F, H, Hmsg と擬似ランダム関数 R の以下の安全性に帰着している。
• F が以下の性質を満たすこと
multi-function, multi-target second preimage resistance (MM-SPR)
すべての出力が 2 個以上の原像を持つこと
• H が MM-SPR を満たすこと
• Hmsg が multi-target extended target collision resistance (M-ETCR) を満たすこと
• R が擬似ランダム関数 (PRF) であること
ここでMM-SPR, M-ETCR はF, H, Hmsg の構成に用いられるハッシュ関数の第二原像攻撃に対する安全性に基づ
く性質である。一方PRF は,秘密鍵入力を有するハッシュ関数が擬似ランダム関数であることを要求する。さらに,
R による鍵とビットマスクの生成については,ハッシュ関数がランダムオラクルであることが仮定される。
IRTF RFC 8391 [21] では,上述の XMSS の安全性に関する結果に基づいてn = 32, 64 のときそれぞれ256
bit 安全性512 bit 安全性が提供されると記されている。また量子計算機を用いた攻撃に対してはそれぞれ128 bit
安全性256 bit 安全性が提供されると記されている。
IRTF RFC 8391 [21] では,ハッシュ関数として SHA-256 を用いることが要求されているが,オプションとして
SHAKE128/256, SHA-512, SHAKE256/512 を用いることが記されている。一方NIST SP 800-208 ではSHA-256,
SHA-256/192, SHAKE256/256, SHAKE256/192 を用いることが認可されている。NIST SP 800-208 [12] と IRTF
RFC 8391 [21] の両方に掲載されている SHA-256 を用いる場合の WOTS+ , XMSS, XMSSM T のパラメータセット
の値の一覧をそれぞれ表 7.5, 7.6, 7.7 に示す。
表 7.5: WOTS+ のパラメータセット 表 7.6: XMSS のパラメータセットと署名長(単位は Byte
名称 n w 名称 n w h 署名長
WOTSP-SHA2 256 32 16 67 XMSS-SHA2 10 256 32 16 67 10 2,500
XMSS-SHA2 16 256 32 16 67 16 2,692
XMSS-SHA2 20 256 32 16 67 20 2,820
7.3.3 SLH-DSA
SLH-DSA [40] は 7.2.3 節のマークル木の階層構造による署名方式に基づく stateless な署名方式である。SLH-DSA
で用いられる 1 回署名方式とマークル木を用いた署名方式はそれぞれ WOTS+ (Winternitz One-Time Signature
Plus scheme)XMSS (eXtended Merkle Signature Scheme) と呼ばれる*2 。またXMSS で構成されるマークル木
は XMSS 木と呼ばれる。SLH-DSA が 7.2.3 節で述べられた方式と異なる点はFORS (Forest of Random Subsets)
*2 これらの名称は 7.3.2 節の XMSS の対応する署名方式の名称と同一であるが,アルゴリズムには相違点が存在する。
189
表 7.7: XMSSM T のパラメータセットと署名長(単位は Byte
名称 n w h d 署名長
XMSSMT-SHA2 20/2 256 32 16 67 20 2 4,963
XMSSMT-SHA2 20/4 256 32 16 67 20 4 9,251
XMSSMT-SHA2 40/2 256 32 16 67 40 2 5,605
XMSSMT-SHA2 40/4 256 32 16 67 40 4 9,893
XMSSMT-SHA2 40/8 256 32 16 67 40 8 18,469
XMSSMT-SHA2 60/3 256 32 16 67 60 3 8,392
XMSSMT-SHA2 60/6 256 32 16 67 60 6 14,824
XMSSMT-SHA2 60/12 256 32 16 67 60 12 27,688
と呼ばれるハッシュ関数に基づく数回 (few-time) 署名方式が導入されている点である。数回署名方式は,一組の公
開鍵と秘密鍵の組を用いて複数個のメッセージに署名できる。SLH-DSA では,メッセージは FORS を用いて署名
されFORS の公開鍵が hypertree と呼ばれる XMSS 木の階層構造による署名方式を用いて署名される。SLH-DSA
数回署名方式を導入して署名可能な回数を増加させることによりstateless であることを達成している。なお,
WOTS+ XMSShypertreeFORS は SLH-DSA の構成要素として使用されるのみであり,それぞれの単独での使
用は許容されていない。
SLH-DSA の公開鍵は長さ n Bytes の2つの系列 PK.root と PK.seed である。PK.root は hypertree の最上層
の XMSS 木の根である。PK.seed は無作為に選択される。SLH-DSA の秘密鍵は n Bytes の2つの系列 SK.seed と
SK.prf でありいずれも無作為に選択される。なおNIST FIPS 205 [40] ではPK.seed, SK.seed, SK.prf の生成
に SP 800-90A [4]SP 800-90B [44]SP 800-90C [5] で規定されているランダム bit 生成器を使用することが求めら
れている。WOTS+ と FORS のすべての秘密鍵はSK.seed を用いて擬似ランダム関数により生成される。SK.prf
は,メッセージダイジェストの計算に使用される乱数系列の生成に使用される。
SLH-DSA の署名では,メッセージダイジェストはこれらの乱数系列を用いたランダム化されたハッシュ関数により
生成され,そのメッセージダイジェストの一部を用いてメッセージの署名に用いる FORS の公開鍵と秘密鍵の組が選
択される。
SLH-DSA では以下の関数が用いられる。
• PRFmsg : Bn × Bn × B → Bn はメッセージダイジェストの計算に使用される乱数系列を生成する擬似ランダ
ム関数である。
• Hmsg : Bn × Bn × Bn × B → Bm はメッセージダイジェストを計算するハッシュ関数である。
• PRF : Bn × Bn × B32 → Bn は WOTS+ FORS の秘密鍵を生成する擬似ランダム関数である。
• T : Bn × B32 × Bn → Bn は WOTS+ XMSS 木FORS で用いられるハッシュ関数である。
さらにT1 , T2 についてF := T1 , H := T2 の表記が用いられる。
SLH-DSA では,図 7.5 に示す 7 種のアドレスが用いられる。どのアドレスも長さは 32 Bytes である。各アドレス
の layer address と tree address は XMSS 木の階層構造で,ハッシュ関数がどの XMSS 木で用いられるかを表す。こ
れに基づきFORS 木アドレスFORS 木根圧縮アドレスFORS 鍵生成アドレスの layer address の値はすべて 0 と
定められている。
190
layer address (4 Bytes) layer address (4 Bytes) layer address (4 Bytes)
tree address (12 Bytes) tree address (12 Bytes) tree address (12 Bytes)
type = 0 (4 Bytes) type = 1 (4 Bytes) type = 2 (4 Bytes)
key pair address (4 Bytes) key pair address (4 Bytes) 0 (4 Bytes)
chain address (4 Bytes) 0 (4 Bytes) tree height (4 Bytes)
hash address (4 Bytes) 0 (4 Bytes) tree index (4 Bytes)
(a) WOTS+ ハッシュアドレス (b) WOTS+ 公開鍵圧縮アドレス (c) ハッシュ木アドレス
layer address = 0 (4 Bytes) layer address = 0 (4 Bytes)
tree address (12 Bytes) tree address (12 Bytes)
type = 3 (4 Bytes) type = 4 (4 Bytes)
key pair address (4 Bytes) key pair address (4 Bytes)
tree height (4 Bytes) 0 (4 Bytes)
tree index (4 Bytes) 0 (4 Bytes)
(d) FORS 木アドレス (e) FORS 木根圧縮アドレス
layer address (4 Bytes) layer address = 0 (4 Bytes)
tree address (12 Bytes) tree address (12 Bytes)
type = 5 (4 Bytes) type = 6 (4 Bytes)
key pair address (4 Bytes) key pair address (4 Bytes)
chain address (4 Bytes) 0 (4 Bytes)
0 (4 Bytes) tree index (4 Bytes)
(f) WOTS+ 鍵生成アドレス (g) FORS 鍵生成アドレス
図 7.5: アドレスの構造
7.3.3.1 WOTS+
WOTS+ は Winternitz one-time signature に基づく 1 回署名方式である。WOTS+ は2つのパラメータ n と lg w
を用いる。n はセキュリティパラメータであり,署名されるメッセージ,公開鍵,秘密鍵,署名を構成する系列の byte
長である。lg w は Winternitz パラメータと呼ばれる正整数 w について lg w := log2 w と定義される。WOTS+ では
lg w = 4 と定められておりw = 16 である。
WOTS+ の公開鍵,秘密鍵,署名を構成する系列の個数は len := len 1 + len 2 で表される。ここで,
len 1 := d8n/lg w e, len 2 := blog2 (len 1 (w 1))/lg w c + 1
である。lg w = 4 なのでlen 1 = 2nlen 2 = 3len = 2n + 3 である。
■チェイニング関数 チェイニング関数 chain の入力は,長さ n Bytes の系列 X ,スタートインデクス iステップ数
sPK.seedWOTS+ ハッシュアドレス ADRS であり,以下のように定義される。
1. tmp ← X とする。
2. i ≤ j ≤ i + s 1 についてADRS の hash address を j としtmp ← F(PK.seed, ADRS, tmp) とする。
3. tmp を返す。
191
■鍵生成アルゴリズム 入力は SK.seed, PK.seed, WOTS+ ハッシュアドレス ADRS である。なおADRS の
chain address, hash address の値はいずれも 0 である。
1. 0 ≤ i ≤ len 1 についてADRS の chain address の値を i とし,
sk i ← PRF(PK.seed, SK.seed, skADRS) pk i ← chain(sk i , 0, w 1, PK.seed, ADRS)
とする。なおskADRS は WOTS+ 鍵生成アドレスでありlayer address, tree address, key pair address,
chain addresss については ADRS と同じ値が用いられる。
2. pk ← Tlen (PK.seed, wotspkADRS, pk 0 k · · · kpk len1 ) とする。ここでwotspkADRS は WOTS+ 公開鍵圧
縮アドレスでありlayer address, tree address, key pair address については ADRS と同じ値が用いられる。
公開鍵は pk である。秘密鍵は sk := (sk 0 , sk 1 , . . . , sk len1 ) である。
■署名アルゴリズム 入力は byte 長 n のメッセージ M SK.seedPK.seedWOTS+ ハッシュアドレス ADRS
である。ADRS の layer address, tree address, key pair address で指定される WOTS+ の秘密鍵を用いて署名が生
成される。なおADRS の chain address, hash address の値はいずれも 0 である。
1. M をそれぞれ長さ lg w bits の len 1 個のブロックに分割し,先頭から順に msg 0 , msg 1 , . . . , msg len 1 1 とする。
これらを整数とみなすと0 ≤ i ≤ len 1 1 についてmsg i ∈ {0, 1, . . . , w 1} である。
X
len 1 1
2. csum ← (w 1 msg i ) とする。
i=0
(8(len 2 ·lg w mod 8)) mod 8
3. csum · 2 を長さ d(len 2 · lg w )/8e Bytes の系列とみなし,それぞれ長さ lg w bits の len 2
個のブロックに分割し,先頭から順に msg len 1 , msg len 1 +1 , . . . , msg len1 とする。
4. 0 ≤ i ≤ len 1 についてADRS の chain address の値を i とし,
sk i ← PRF(PK.seed, SK.seed, skADRS) sig i ← chain(sk i , 0, msg i , PK.seed, ADRS)
とする。なおskADRS は WOTS+ 鍵生成アドレスでありlayer address, tree address, key pair address,
chain addresss については ADRS と同じ値が用いられる。
メッセージ M に対する署名は sig 0 , sig 1 , . . . , sig len1 である。
■検証アルゴリズム SLH-DSA では WOTS+ が単独で使用されることが想定されていないため,検証アルゴリズム
は明示されておらずWinternitz one-time signature の検証に必須の,メッセージと署名の組から対応する公開鍵の
候補を計算するアルゴリズムが示されている。なお,このアルゴリズムは,鍵生成と署名のアルゴリズムより容易に導
出される。詳細は NIST FIPS 205 [40] を参照のこと。
7.3.3.2 XMSS
XMSS はマークル木を用いた署名方式でありWOTS+ を用いて構成される。
■鍵生成アルゴリズム XMSS ではWOTS+ の公開鍵を各葉にもつ高さ h のマークル木XMSS 木)を構成するこ
とにより公開鍵が生成される。XMSS 木の高さ z (≥ 0) の左から i (≥ 0) 番目の節点を node i,j と表記する。入力は
SK.seed, PK.seed, ADRS である。
1. 0 ≤ i ≤ 2h 1 についてnode i,0 ← pk i とする。ここでpk i は SK.seed, PK.seed を用いて計算される
WOTS+ の公開鍵である。なおpk i の計算に用いられるアドレスの layer address と tree address の値は
ADRS のそれらと等しくkey pair address の値は [i]4 である。
192
2. 1 ≤ z ≤ h についてそれぞれ0 ≤ i ≤ 2h z 1 について,
node i,z ← H(PK.seed, ADRS, node 2i,z1 knode 2i+1,z1 )
とする。ここでADRS はハッシュ木アドレスでありtree height の値は [z]4 tree index の値は [i]4 である。
公開鍵は XMSS 木の根 node 0,h であり,秘密鍵は 2h 個の WOTS+ の秘密鍵である。
なおXMSS の単独での使用が想定されていないことからNIST FIPS 205 [40] では,鍵生成アルゴリズムは明示
されておらずXMSS 木の各節点を計算する再帰的アルゴリズムが示されている。
■署名アルゴリズム SLH-DSA ではXMSS で署名されるメッセージは XMSS の公開鍵あるいは FORS の公開鍵の
みである。入力は M, SK.seed, idx , PK.seed, ADRS である。M は長さ n Bytes のメッセージidx は M の署名に
使用される WOTS+ の鍵の key pair address である。
WOTS+ の idx 番目の秘密鍵を用いて M に署名しXMSS 木の idx 番目の葉の認証パスを計算する。
■検証アルゴリズム NIST FIPS 205 [40] では,検証に必須の,メッセージと署名の組から対応する公開鍵の候補を
計算するアルゴリズムが示されている。このアルゴリズムは鍵生成と署名のアルゴリズムより容易に導出されるので,
詳細は NIST FIPS 205 [40] を参照のこと。
7.3.3.3 Hypertree
SLH-DSA ではhypertree と呼ばれる XMSS 木の階層構造が用いられる。hypertree は d 層の XMSS 木からなり,
すべての XMSS 木の高さは等しい。第 (d 1) 層と第 0 層はそれぞれ hypertree の根と葉に相当する。第 x 層の左か
ら y 番目の XMSS 木の構成で使用される WOTS+ ハッシュアドレスWOTS+ 公開鍵圧縮アドレスWOTS+ 鍵生
成アドレス,ハッシュ木アドレスの layer address と tree address はそれぞれ [x]4 [y]12 である。
hypertree の公開鍵は第 (d 1) 層の XMSS の公開鍵である。hypertree の署名,検証の各アルゴリズムについての
詳細は NIST FIPS 205 [40] を参照のこと。
7.3.3.4 FORS
FORS は,数回署名方式 HORS [43] に基づく HORST [8] の改良版である。FORS は k, t := 2a をパラメータとし,
長さ ka bits の系列に署名を行う。
■鍵生成アルゴリズム 入力は SK.seed, PK.seed, FORS 木アドレス ADRS である。なおADRS の layer
address, tree address, key pair address は,生成された FORS の公開鍵の署名に用いられる WOTS+ の鍵の生成に
用いられるアドレスのそれらの値と等しい。
1. 0 ≤ i ≤ kt 1 について,
sk i ← PRF(PK.seed, SK.seed, skADRS) node i,0 ← F(PK.seed, ADRS, sk i )
とする。ここでskADRS は FORS 鍵生成アドレスでありlayer address, tree address, key pair address に
ついては ADRS と同じ値が用いられtree index の値は [i]4 である。またADRS の tree index の値は [i]4
である。
2. 1 ≤ z ≤ a についてそれぞれ0 ≤ i ≤ k · 2az 1 について,
node i,z ← H(PK.seed, ADRS, node 2i,z1 knode 2i+1,z1 )
とする。ここでADRS の tree height の値は [z]4 tree index の値は [i]4 である。
193
3. pk ← Tk (PK.seed, forspkADRS, node 0,a k · · · knode k1,a ) とする。ここでforspkADRS は FORS 木根圧縮
アドレスでありlayer address, tree address, key pair address については ADRS と同じ値が用いられる。
このアルゴリズムによりnode 0,a , node 1,a , . . . , node k1,a を根とする k 個のマークル木が構成されている。公開鍵は
pk である。秘密鍵は sk 0 , sk 1 , . . . , sk kt1 である。
■署名アルゴリズム 長さ k · a bits のメッセージダイジェスト md をそれぞれ長さ a bits の k 個のブロック
md 0 , md 1 , . . . , md k1 に分割する。すなわちmd = md 0 kmd 1 k · · · kmd k1 である。さらにmd i を 2 進数表記の
非負整数とみなす。md の署名は sk 0·t+md 0 , sk 1·t+md 1 , . . . , sk (k1)t+md k1 と0 ≤ i ≤ k 1 についてnode i,a を根
とするマークル木の node i·t+md i ,0 の認証パスである。詳細は NIST FIPS 205 [40] を参照のこと。
■検証アルゴリズム NIST FIPS 205 [40] では,検証に必須の,メッセージと署名の組から対応する公開鍵の候補を
計算するアルゴリズムが示されている。詳細は NIST FIPS 205 [40] を参照のこと。
7.3.3.5 SLH-DSA
前節までの構成要素を用いて SLH-DSA の署名が構成される。SLH-DSA のパラメータは以下のとおりである。
• セキュリティパラメータ n単位は Byte
• hypertree のパラメータ h, d, h (= h/d)
• FORS のパラメータ a, k
• WOTS+ のパラメータ lg w
• メッセージダイジェストの byte 長 m = d(h h )/8e + dh /8e + d(k · a)/8e
■鍵 生 成 ア ル ゴ リ ズ ム SK.seed, SK.prf ∈ Bn は い ず れ も 無 作 為 に 選 択 さ れ る 。PK.seed ∈ Bn は
無 作 為 に 選 択 さ れ る 。PK.root ∈ Bn は hypertree の 第 (d 1) 層 の XMSS 木 の 根 で あ る 。秘 密 鍵 は
SK.seed, SK.prf, PK.seed, PK.root である。公開鍵は PK.seed, PK.root である。したがって,秘密鍵,公開鍵
のサイズはそれぞれ4n Bytes2n Bytes である。
■署名アルゴリズム メッセージ M の署名は以下のように生成される。
1. R := PRFmsg (SK.prf, opt rand , M ) とする。ここでopt rand を Bn の乱数とすることがデフォルトとされ
ており,特にサイドチャネル攻撃が懸念される場合については強く推奨されているが,乱数生成器が利用可能で
ない場合は opt rand = PK.seed とすることが許容されている。
2. digest := Hmsg (R, PK.seed, PK.root, M ) とする。digest の最初の d(k · a)/8e Bytes次の d(h h )/8e
Bytesその次の dh /8e Bytes をそれぞれ md ,整数 idx tree の 2 進数表記,整数 idx leaf の 2 進数表記とする。
3. hypertree の第 0 層の左から idx tree 番目の XMSS 木の左から idx leaf 番目の葉に対応する FORS の鍵を用いて
md の先頭 k · a bits に対する署名を生成する。
4. 上の署名で用いられた FORS の公開鍵への hypertree による署名を生成する。
M の署名は Rmd への FORS による署名md への署名の検証に用いられる FORS の公開鍵への hypertree による
署名からなる。したがって,署名のサイズは (1 + k(a + 1) + h + d · len)n Bytes である。
SLH-DSA では,署名アルゴリズムに与えられるメッセージ M を署名対象の内容から生成する二つの方法が定めら
れている。これらは pure 版pre-hash 版と呼ばれている。署名アルゴリズムに対してpure 版ではコンテクストと署
名対象の内容とが与えられpre-hash 版ではコンテクストと署名対象の内容のハッシュ値とが与えられる。なお,コ
ンテクストは長さが高々 255 Bytes の系列であり,デフォルトでは空列である。詳細については NIST FIPS 205 [40]
194
を参照のこと。
■検証アルゴリズム 署名アルゴリズムより容易に導出されるので,詳細については NIST FIPS 205 [40] を参照の
こと。
7.3.3.6 パラメータの設定と安全性
SLH-DSA については,表 7.8 の 12 個のパラメータセットが示されている。この表の最左欄の名称は,使用される
ハッシュ関数とセキュリティパラメータ n の bit 長を単位とした値を示している。さらにs と f はそれぞれ,署名サ
イズ,計算時間が小さくなるよう定められたパラメータセットであることを示している。また,安全性レベルは NIST
PQC 標準化プロジェクトの Call for Proposals に記された安全性強度のカテゴリである。これらのパラメータセット
は,一組の公開鍵と秘密鍵により高々 264 個のメッセージが署名される場合の選択文書攻撃に対する存在偽造不能性を
考慮して定められている。
表 7.8: SLH-DSA のパラメータセット。公開鍵長,署名長の単位は Byte である。
名称 n h d h a k lg w m 安全性レベル 公開鍵長 署名長
SLH-DSA-SHA2-128s
16 63 7 9 12 14 4 30 レベル 1 32 7,856
SLH-DSA-SHAKE-128s
SLH-DSA-SHA2-128f
16 66 22 3 6 33 4 34 レベル 1 32 17,088
SLH-DSA-SHAKE-128f
SLH-DSA-SHA2-192s
24 63 7 9 14 17 4 39 レベル 3 48 16,224
SLH-DSA-SHAKE-192s
SLH-DSA-SHA2-192f
24 66 22 3 8 33 4 42 レベル 3 48 35,664
SLH-DSA-SHAKE-192f
SLH-DSA-SHA2-256s
32 64 8 8 14 22 4 47 レベル 5 64 29,792
SLH-DSA-SHAKE-256s
SLH-DSA-SHA2-256f
32 68 17 4 9 35 4 49 レベル 5 64 49,856
SLH-DSA-SHAKE-256f
Hülsing と Kudinov [23] はSPHINCS+ が EUF-CMA 安全性を満たすことをハッシュ関数 T Hmsg ,擬似ラン
ダム関数 PRF, PRFmsg の以下の安全性に帰着している。
• T が以下の性質を満たすこと
single-function, multi-target collision resistance (SM-TCR)
single-function, multi-target preimage resistance (SM-PRE)
single-function, multi-target decisional second preimage resistance (SM-DSPR)
single-function, multi-target undetectability (SM-UD)
• Hmsg が interleaved target subset resilience (ITSR) を満たすこと
• PRF, PRFmsg が擬似ランダム関数 (PRF) であること
ここでSM-TCR, SM-DSPR, ITSR はT , Hmsg の構成に用いられるハッシュ関数の第二原像攻撃に対する安全性
に基づく性質でありSM-PRE は原像攻撃に対する安全性に基づく性質である。一方SM-UD, PRF は,秘密鍵入力
を有するハッシュ関数が擬似ランダム関数であることを要求する。
Barbosa ら [3] はSPHINCS+ で用いられている XMSS について,コンピュータで検証された安全性証明を与えて
195
いる。
さらにNIST FIPS 205 [40] にはSLH-DSA の実装をサイドチャネル攻撃 [27] や故障攻撃 [1, 11, 19, 45] から保
護するための注意が払われなければならないことが記されている。
7.3.3.7 ハッシュ関数の実現法
SLH-DSA の 関 数 は す べ て SHAKE256SHA-2 の う ち の い ず れ か を 用 い て 構 成 さ れ る 。こ れ ら の 構 成 は
SPHINCS+ で simple な実現と呼ばれる構成であり7.2.4 節で述べられたビットマスクは用いられていない。
SHAKE256 を用いた構成は以下のとおりである。
Hmsg (R, PK.seed, PK.root, M ) := SHAKE256(RkPK.seedkPK.rootkM, 8m)
PRF(PK.seed, SK.seed, ADRS) := SHAKE256(PK.seedkADRSkSK.seed, 8n)
PRFmsg (SK.prf, opt rand , M ) := SHAKE256(SK.prfkopt rand kM, 8n)
F(PK.seed, ADRS, M1 ) := SHAKE256(PK.seedkADRSkM1 , 8n)
H(PK.seed, ADRS, M2 ) := SHAKE256(PK.seedkADRSkM2 , 8n)
T (PK.seed, ADRS, M ) := SHAKE256(PK.seedkADRSkM , 8n)
安全性レベル 1 に対する SHA-2 を用いた構成は以下のとおりである。
Hmsg (R, PK.seed, PK.root, M ) := MGF1-SHA-256(RkPK.seedkSHA-256(RkPK.seedkPK.rootkM, m))
PRF(PK.seed, SK.seed, ADRS) := Truncn (SHA-256(PK.seedk[0]64n kADRSc kSK.seed))
PRFmsg (SK.prf, opt rand , M ) := Truncn (HMAC-SHA-256(SK.prfkopt rand kM ))
F(PK.seed, ADRS, M1 ) := Truncn (SHA-256(PK.seedk[0]64n kADRSc kM1 ))
H(PK.seed, ADRS, M2 ) := Truncn (SHA-256(PK.seedk[0]64n kADRSc kM2 ))
T (PK.seed, ADRS, M ) := Truncn (SHA-256(PK.seedk[0]64n kADRSc kM ))
安全性レベル 3, 5 に対する SHA-2 を用いた構成は以下のとおりである。
Hmsg (R, PK.seed, PK.root, M ) := MGF1-SHA-512(RkPK.seedkSHA-512(RkPK.seedkPK.rootkM, m))
PRF(PK.seed, SK.seed, ADRS) := Truncn (SHA-256(PK.seedk[0]64n kADRSc kSK.seed))
PRFmsg (SK.prf, opt rand , M ) := Truncn (HMAC-SHA-512(SK.prfkopt rand kM ))
F(PK.seed, ADRS, M1 ) := Truncn (SHA-256(PK.seedk[0]64n kADRSc kM1 ))
H(PK.seed, ADRS, M2 ) := Truncn (SHA-512(PK.seedk[0]128n kADRSc kM2 ))
T (PK.seed, ADRS, M ) := Truncn (SHA-512(PK.seedk[0]128n kADRSc kM ))
ここでMGF1-SHA-256MGF1-SHA-512 は RFC 8017 [37] の Appendix B.2.1 に記載されている MGF1 であり,
HMAC-SHA-256HMAC-SHA-512 は FIPS 198-1 [41] の HMAC である。またTruncl (x) は byte 系列 x の左端か
ら l Bytes を出力する関数である。さらにADRSc は ADRS の layer addresstree addresstype をそれぞれ 1
Byte8 Bytes1 Byte に短縮した長さ 22 Bytes のアドレスである。
SPHINCS+ では当初SHA-2 を用いた実現で SHA-256 のみが用いられていたがSHA-256 を用いた実現では安
全性のレベル 5 が達成できないことを示す攻撃 [42] が示されたことからSPHINCS+ v.3.1 では,安全性レベル 3, 5
についてHmsg , PRFmsg , H, T が SHA-512 を用いて実現されることとなりSLH-DSA でもそれに従っている。
7.4 ハッシュ関数に基づく署名技術に関するまとめ
本章ではハッシュ関数に基づく署名技術としてLighton-Micali hash-based signatures, XMSS, SLH-DSA を取
り上げた。これらはいずれも 7.2 節で述べた代表的なハッシュ関数に基づく署名方式に基づく構造を有する。Lighton-
196
Micali hash-based signatures [33] と XMSS [21] は NIST の推奨アルゴリズムであり [12]SLH-DSA は NIST PQC
標準化プロジェクトで選出された SPHINCS+ [2] に基づく標準アルゴリズムである。
ハッシュ関数に基づく署名技術の安全性はハッシュ関数の第二原像攻撃に対する安全性に依存しているがXMSS,
SLH-DSA については,秘密鍵入力を有するハッシュ関数が擬似ランダム関数であることにも依存する。さらに,ビッ
トマスクの生成についてはハッシュ関数がランダムオラクルであることが仮定される。また,偽造攻撃の計算量は,
ハッシュ関数がランダムオラクルであることを仮定して見積もられている。
ハッシュ関数に基づく署名技術についてはstateful であること,すなわち,各メッセージの署名に用いられる 1
回署名の秘密鍵を 2 回以上使用することのないよう管理しなければならないことが問題であった。Lighton-Micali
hash-based signatures と XMSS はいずれもハッシュ関数に基づく stateful な署名方式であり,それらを推奨アルゴリ
ズムとする NIST SP 800-208 [12] には,ハッシュ関数に基づく stateful な署名方式は一般的な使用には適するもので
なく,近い将来に実装が必要であり,その実装が長期間の使用を予定されており,かつ,使用開始後に他の署名方式へ
の移行が実用的でないような応用での使用が意図されていると述べられている。
SLH-DSA は XMSS の設計で得られた知見に基づいて設計されておりHSS, XMSSM T と同様の構造を有するが,
各メッセージの署名に一つの秘密鍵で数回署名可能な FORS を用いることによって署名可能な回数を増加させること
によりstateless であることを達成している。
197
第 7 章の参照文献
[1] D. Amiet, L. Leuenberger, A. Curiger, P. Zbinden. FPGA-based SPHINCS+ Implementations: Mind the
Glitch. DSD. IEEE, 2020, pp. 229237.
[2] J.-P. Aumasson et al. SPHINCS+ Submission to the NIST post-quantum project, v.3.1. https://sphincs.
org/data/sphincs+-r3.1-specification.pdf. 2022-06. 2024-03-08 閲覧).
[3] M. Barbosa, F. Dupressoir, B. Grégoire, A. Hülsing, M. Meijers, P.-Y. Strub. Machine-Checked Security
for XMSS as in RFC 8391 and SPHINCS+ . CRYPTO (5). Vol. 14085. Lecture Notes in Computer Science.
Springer, 2023, pp. 421454.
[4] 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.
[5] 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 閲覧).
[6] D. J. Bernstein, A. Hülsing, S. Kölbl, R. Niederhagen, J. Rijneveld, P. Schwabe. The SPHINCS + Signature
Framework. CCS. ACM, 2019, pp. 21292146.
[7] D. J. Bernstein, A. Hülsing, S. Kölbl, R. Niederhagen, J. Rijneveld, P. Schwabe. The SPHINCS+ Signature
Framework. Cryptology ePrint Archive, Paper 2019/1086. 2019. https://eprint.iacr.org/2019/1086.
[8] D. J. Bernstein et al. SPHINCS: Practical Stateless Hash-Based Signatures. EUROCRYPT (1). Vol. 9056.
Lecture Notes in Computer Science. Springer, 2015, pp. 368397.
[9] G. Bertoni, J. Daemen, M. Peeters, G. Van Assche. Sponge functions. ECRYPT Hash Workshop. 2007.
[10] J. Buchmann, E. Dahmen, A. Hülsing. XMSS A Practical Forward Secure Signature Scheme Based
on Minimal Security Assumptions. PQCrypto. Vol. 7071. Lecture Notes in Computer Science. Springer,
2011, pp. 117129.
[11] L. Castelnovi, A. Martinelli, T. Prest. Grafting Trees: A Fault Attack Against the SPHINCS Framework.
PQCrypto. Vol. 10786. Lecture Notes in Computer Science. Springer, 2018, pp. 165184.
[12] D. Cooper, D. Apon, Q. Dang, M. Davidson, M. Dworkin, C. Miller. Recommendation for State-
ful Hash-Based Signature Schemes. NIST SP 800-208, https : / / nvlpubs . nist . gov / nistpubs /
SpecialPublications/NIST.SP.800-208.pdf. 2020-10.
[13] E. Dahmen, K. Okeya, T. Takagi, C. Vuillaume. Digital Signatures Out of Second-Preimage Resistant
Hash Functions. PQCrypto. Vol. 5299. Lecture Notes in Computer Science. Springer, 2008, pp. 109123.
[14] I. Damgård. A Design Principle for Hash Functions. CRYPTO. Vol. 435. Lecture Notes in Computer
Science. Springer, 1989, pp. 416427.
198
[15] W. Diffie, M. E. Hellman. New directions in cryptography. IEEE Trans. Inf. Theory. Vol. 22, Num. 6
(1976), pp. 644654.
[16] C. Dods, N. P. Smart, M. Stam. Hash Based Digital Signature Schemes. IMACC. Vol. 3796. Lecture
Notes in Computer Science. Springer, 2005, pp. 96115.
[17] E. Eaton. Leighton-Micali Hash-Based Signatures in the Quantum Random-Oracle Model. SAC. Vol.
10719. Lecture Notes in Computer Science. Springer, 2017, pp. 263280.
[18] S. Fluhrer. Further Analysis of a Proposed Hash-Based Signature Standard. Cryptology ePrint Archive,
Paper 2017/553. 2017. https://eprint.iacr.org/2017/553.
[19] A. Genêt. On Protecting SPHINCS+ Against Fault Attacks. IACR Trans. Cryptogr. Hardw. Embed.
Syst. Vol. 2023, Num. 2 (2023), pp. 80114.
[20] L. K. Grover. A fast quantum mechanical algorithm for database search. STOC. ACM, 1996, pp. 212219.
[21] A. Huelsing, D. Butin, S.-L. Gazdag, J. Rijneveld, A. Mohaisen. XMSS: eXtended Merkle Signature
Scheme. RFC 8391, https://www.rfc-editor.org/info/rfc8391. 2018-05.
[22] A. Hülsing. W-OTS+ Shorter Signatures for Hash-Based Signature Schemes. AFRICACRYPT. Vol.
7918. Lecture Notes in Computer Science. Springer, 2013, pp. 173188.
[23] A. Hülsing, M. A. Kudinov. Recovering the Tight Security Proof of SPHINCS + . ASIACRYPT (4). Vol.
13794. Lecture Notes in Computer Science. Springer, 2022, pp. 333.
[24] A. Hülsing, L. Rausch, J. Buchmann. Optimal Parameters for XMSS MT. CD-ARES Workshops. Vol.
8128. Lecture Notes in Computer Science. Springer, 2013, pp. 194208.
[25] A. Hülsing, J. Rijneveld, F. Song. Mitigating Multi-target Attacks in Hash-Based Signatures. Public Key
Cryptography (1). Vol. 9614. Lecture Notes in Computer Science. Springer, 2016, pp. 387416.
[26] P. Kampanakis, S. Fluhrer. LMS vs XMSS: Comparion of two Hash-Based Signature Standards. Cryptology
ePrint Archive, Paper 2017/349. 2017. https://eprint.iacr.org/2017/349.
[27] M. J. Kannwischer, A. Genêt, D. Butin, J. Krämer, J. Buchmann. Differential Power Analysis of XMSS
and SPHINCS. COSADE. Vol. 10815. Lecture Notes in Computer Science. Springer, 2018, pp. 168188.
[28] J. Katz. Analysis of a Proposed Hash-Based Signature Standard. SSR. Vol. 10074. Lecture Notes in
Computer Science. Springer, 2016, pp. 261273.
[29] J. Kelsey, B. Schneier. Second Preimages on n-Bit Hash Functions for Much Less than 2n Work. EURO-
CRYPT. Vol. 3494. Lecture Notes in Computer Science. Springer, 2005, pp. 474490.
[30] P. Lafrance, A. Menezes. On the security of the WOTS-PRF signature scheme. Adv. Math. Commun.
Vol. 13, Num. 1 (2019), pp. 185193.
[31] L. Lamport. Constructing digital signatures from a one-way function. SRI International Technical Report,
CSL-98. 1979-10.
[32] F. T. Leighton, S. Micali. Large provably fast and secure digital signature schemes based on secure hash
functions. 1995-07. US Patent 5,432,852.
[33] D. McGrew, M. Curcio, S. Fluhrer. Leighton-Micali Hash-Based Signatures. RFC 8554, https://www.rfc-
editor.org/info/rfc8554. 2019-04.
[34] R. Merkle. Secrecy, Authentication, and Public Key Systems. PhD thesis. Stanford University, 1979.
https://www.merkle.com/papers/Thesis1979.pdf.
[35] R. C. Merkle. A Certified Digital Signature. CRYPTO. Vol. 435. Lecture Notes in Computer Science.
Springer, 1989, pp. 218238.
199
[36] R. C. Merkle. One Way Hash Functions and DES. CRYPTO. Vol. 435. Lecture Notes in Computer
Science. Springer, 1989, pp. 428446.
[37] K. Moriarty, B. Kaliski, J. Jonsson, A. Rusch. PKCS #1: RSA Cryptography Specifications Version 2.2.
RFC 8017, https://www.rfc-editor.org/info/rfc8017. 2016-11.
[38] NIST. Secure Hash Standard (SHS). NIST FIPS 180-4, https://nvlpubs.nist.gov/nistpubs/FIPS/
NIST.FIPS.180-4.pdf. 2015-08.
[39] NIST. SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions. NIST FIPS 202,
https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf. 2015-08.
[40] NIST. Stateless Hash-Based Digital Signature Standard. NIST FIPS 205, https://nvlpubs.nist.gov/
nistpubs/FIPS/NIST.FIPS.205.pdf. 2024-08.
[41] NIST. The Keyed-Hash Message Authentication Code (HMAC). NIST FIPS 198-1, https://nvlpubs.
nist.gov/nistpubs/fips/nist.fips.198-1.pdf. 2008-07.
[42] R. A. Perlner, J. Kelsey, D. A. Cooper. Breaking Category Five SPHINCS+ with SHA-256. PQCrypto.
Vol. 13512. Lecture Notes in Computer Science. Springer, 2022, pp. 501522.
[43] L. Reyzin, N. Reyzin. Better than BiBa: Short One-Time Signatures with Fast Signing and Verifying.
ACISP. Vol. 2384. Lecture Notes in Computer Science. Springer, 2002, pp. 144153.
[44] 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.
[45] A. Wagner, V. Wesselkamp, F. Oberhansl, M. Schink, E. Strieder. Faulting Winternitz One-Time Signa-
tures to Forge LMS, XMSS, or SPHINCS+ Signatures. PQCrypto. Vol. 14154. Lecture Notes in Computer
Science. Springer, 2023, pp. 658687.
200
耐量子計算機暗号の研究動向調査報告書
[CRYPTREC TR-2001-2024]
不許複製 禁無断転載
発行日2025 年 3 月 31 日(第1版)
発行者
・〒184-8795
東京都小金井市貫井北町四丁目2番1号
国立研究開発法人情報通信研究機構
(サイバーセキュリティ研究所 セキュリティ基盤研究室)
NATIONAL INSTITUTE OF INFORMATION AND COMMUNICATIONS TECHNOLOGY
4-2-1 NUKUI-KITAMACHI, KOGANEI
TOKYO, 184-8795 JAPAN
・〒113-6591
東京都文京区本駒込二丁目28番8号
独立行政法人情報処理推進機構
(セキュリティセンター 技術評価部 暗号グループ)
INFORMATION-TECHNOLOGY PROMOTION AGENCY, JAPAN
2-28-8 HONKOMAGOME, BUNKYO-KU
TOKYO, 113-6591 JAPAN