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

6385 lines
501 KiB
Plaintext
Raw 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 暗号技術ガイドライン
耐量子計算機暗号2024 年度版
2025 年 3 月
CRYPTREC
暗号技術調査ワーキンググループ(耐量子計算機暗号)
目次
第1章 はじめに 1
1.1 暗号の安全性に影響のある量子コンピュータの開発状況 . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 量子コンピュータの分類 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 ハードウェアの進展とロードマップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 耐量子計算機暗号PQC の必要性について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 量子コンピュータの影響による現代暗号の危殆化予測 . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 量子コンピュータによる素因数分解・離散対数問題計算の現状 . . . . . . . . . . . . . . . . . 5
1.3 PQC の研究及び標準化等に関する動向 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1 米国 NIST における標準化の動向 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2 米国以外での動向 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 本調査で対象とした PQC の種類 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 耐量子計算機暗号調査報告書執筆者リスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
第2章 PQC の活用方法 21
2.1 公開鍵暗号の利用形態 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.1 署名用途での公開鍵暗号の利用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.2 守秘用途での公開鍵暗号の利用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.3 鍵共有用途での公開鍵暗号の利用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2 PQC の導入における課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.1 署名用途での課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.2 守秘用途での課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.3 鍵共有用途での課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3 PQC 導入へのアプローチ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.1 プライオリティ設定の重要性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.2 クリプトグラフィック・アジリティの重要性 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.3 既存暗号方式とのハイブリッド構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.4 署名用途固有の対策 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.5 守秘及び鍵共有用途固有の対策 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4 PQC の活用にむけて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
第3章 格子に基づく暗号技術 33
3.1 格子に基づく暗号技術の安全性の根拠となる問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
i
3.1.1 LWE 問題の紹介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.2 NTRU 問題の紹介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.3 格子問題の公開チャレンジの求解状況 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2 格子に基づく代表的な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.1 Hash-and-Sign に基づく署名方式の格子問題への拡張 . . . . . . . . . . . . . . . . . . . . . . 35
3.2.2 Fiat-Shamir 署名方式の格子問題への拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3 格子に基づく主要な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.1 FIPS 203Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM) . 37
3.3.1.1 ML-KEM における数論変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.1.2 ML-KEM の基本構成と処理概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3.1.3 暗号パラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.2 FIPS 204: Module-Lattice-Based Digital Signature StandardML-DSA . . . . . . . . . 42
3.3.2.1 ML-DSA における数論変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.3.2.2 ML-DSA の構成と処理概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.3.2.3 暗号パラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.3.2.4 CRYSTALS-Dilithium との違い . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.3.3 FALCON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.4 格子に基づく暗号技術に関するまとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
第4章 符号に基づく暗号技術 61
4.1 符号に基づく暗号技術の安全性の根拠となる問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.1.1 SD 問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.1.2 SD 問題に対する評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.1.3 LPN 問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.1.4 LPN 問題に対する評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.2 符号に基づく代表的な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.2.1 McEliece 公開鍵暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2.2 Niederreiter 公開鍵暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.3 符号に基づく主要な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3.1 Classic McEliece . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3.2 BIKE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.3.3 HQC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.4 符号に基づく暗号技術に関するまとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
第5章 多変数多項式に基づく暗号技術 77
5.1 多変数多項式に基づく暗号技術の安全性の根拠となる問題 . . . . . . . . . . . . . . . . . . . . . . . . 77
5.1.1 MP 問題MQ 問題) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.1.2 MinRank 問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.1.3 IP 問題EIP 問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.2 多変数多項式に基づく代表的な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
ii
5.2.1 双極型システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.2 署名方式 UOV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.2.2.1 UOV の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.2.2.2 UOV の公開鍵長の削減 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2.3 MPC-in-the-Head による署名方式の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.2.3.1 秘匿マルチパーティ計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.2.3.2 ゼロ知識証明への変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.3 多変数多項式に基づく主要な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.3.1 署名方式 UOV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.3.1.1 UOV の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.3.1.2 UOV のパラメータ選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.3.2 署名方式 QR-UOV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.3.2.1 QR-UOV の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.3.2.2 QR-UOV のパラメータ選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3.3 署名方式 MAYO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.3.3.1 MAYO の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.3.3.2 MAYO のパラメータ選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.3.4 署名方式 MQOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.3.4.1 MQOM の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.3.4.2 MQOM のパラメータ選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.3.5 署名方式 MiRitH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.3.5.1 MiRitH の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.3.5.2 MiRitH のパラメータ選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.4 多変数多項式に基づく暗号技術に関するまとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
第6章 同種写像に基づく暗号技術 99
6.1 同種写像に基づく暗号技術の安全性の根拠となる問題 . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.1.1 同種写像問題の一般形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.1.2 自己準同型環計算問題と SQIsign 署名方式の安全性に関する計算問題 . . . . . . . . . . . . . . 101
6.1.2.1 自己準同型環計算問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.1.2.2 SQIsign 署名方式の安全性に関する計算問題 . . . . . . . . . . . . . . . . . . . . . . 102
6.2 同種写像に基づく代表的な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.2.1 GPS 署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.3 同種写像に基づく主要な暗号方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.3.1 SQIsign 署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.3.1.1 KLPT アルゴリズムに基づく SQIsign 署名方式 . . . . . . . . . . . . . . . . . . . . 105
6.3.1.2 SQIsign2D 署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.4 同種写像に基づく暗号技術に関するまとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
第7章 ハッシュ関数に基づく署名技術 113
iii
7.1 ハッシュ関数に基づく署名技術の安全性の根拠となる問題 . . . . . . . . . . . . . . . . . . . . . . . . 113
7.2 ハッシュ関数に基づく代表的な署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.2.1 Winternitz One-Time Signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.2.2 マークル木を用いた署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.2.3 マークル木の階層構造による署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.2.4 プレフィクスとビットマスク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.3 ハッシュ関数に基づく主要な署名方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.3.1 XMSS: eXtended Merkle Signature Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . 117
7.3.1.1 WOTS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
7.3.1.2 XMSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.3.1.3 XMSSM T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
7.3.1.4 パラメータの設定と安全性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
7.3.2 SLH-DSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.3.2.1 WOTS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.3.2.2 XMSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.3.2.3 Hypertree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.3.2.4 FORS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.3.2.5 SLH-DSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.3.2.6 パラメータの設定と安全性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
7.3.2.7 ハッシュ関数の実現法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.4 ハッシュ関数に基づく署名技術に関するまとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
iv
第1章
はじめに
暗号は情報を保護するための基礎的な手段である。基本的な暗号の分類として共通鍵暗号と公開鍵暗号があり,さら
に公開鍵暗号の下位分類として通信相手の認証などを目的とした署名方式,情報の守秘を目的とした公開鍵暗号方式*1
秘密鍵の共有を目的とした鍵共有が存在する*2 。これらを含めた基本的な暗号方式を部品(プリミティブ)とした高
機能暗号 [6] が数多く提案されている。2025 年現在,署名目的で DSAECDSA 等,情報の守秘目的で RSA-OAEP
等,秘密鍵共有の目的では DHECDH 等*3 が国際的な標準暗号方式 [72] として用いられており,日本においても電
子政府推奨暗号 [110] とされている。
これらの暗号方式の安全性と深く関わる計算問題として,素因数分解問題や楕円曲線上の離散対数問題があり,古
典コンピュータ*4 を用いる限りでは効率的に解くことが困難であると信じられている。このことからRSA 暗号や
ECDSA 署名はある程度の大きさの鍵長 [109] を用いることで安全性が保てると考えられている。一方でShor の量
子アルゴリズム [92, 93] はこれらの計算問題を効率的に解くため,量子コンピュータの高性能化が情報セキュリティに
影響を及ぼすとされている。古典コンピュータ上での効率的な実装が可能であり,かつ古典・量子双方のコンピュータ
を用いた攻撃に対しても安全性を確保できる暗号方式が必要とされている。
量子コンピュータによる攻撃への耐性は耐量子計算機性と呼ばれ,耐量子計算機性を持つ一連の暗号が耐量子計算機
暗号Post-Quantum Cryptography: PQCと呼ばれる。耐量子計算機性の定式化はそれぞれの暗号技術の定式化を
踏まえて行われており,一義的な意味で用いられる単語ではないことに注意が必要である。共通するのは古典計算機に
よる実装が可能であるという点であり,これを以て,情報を量子状態に乗せて伝達することで安全性を保証する量子暗
号・量子鍵共有と分別される(例えば [62, p. 3] を参照)。
本ガイドライン内では特に断りのない場合耐量子計算機暗号PQCの言葉を古典アルゴリズムの組み合わせ
により定式化され,かつ耐量子計算機性を持つことが安全性証明や計算量評価のように技術的に判断可能な暗号方式と
する。
なお,公開鍵暗号以外の方式でも Grover の量子検索アルゴリズム [44] を用いることで共通鍵暗号方式の安全性の低
下 [21] や暗号学的ハッシュ関数の衝突発見の高速化 [22] が知られており,これらのトピックに関しても多くの調査報
告書が出版されている。例えば近年の量子コンピュータによる共通鍵暗号方式の安全性への影響を調査した報告書とし
CRYPTREC による [114],日本銀行金融研究所による [121] が存在する。Grover アルゴリズムの最適性 [107] か
*1 本報告書の中では公開鍵暗号を Public-Key Cryptography の意味で用い,その下位分類としての Public-Key Encryption を公開鍵暗号
方式と表記する。
*2 基本的な暗号方式の定義と性質に関しては,例えば教科書 [115, 1.3 節] などを参照。
*3 これらの方式には多くの解説記事があるがDHDSA に関しては例えば [130] をECDHECDSA に関しては [113] がある。
*4 理論的には決定的チューリングマシンを物理的に実装した計算機で,狭義においては CMOS 半導体を用いた論理回路による計算機を指す。
現在普及しているコンピュータとほぼ同義である。
1
図 1.1: 2024 年度 CRYPTREC 体制図
ら,量子コンピュータによる共通鍵暗号方式,暗号学的ハッシュ関数の攻撃計算量は鍵長の指数関数であり,公開鍵暗
号と比べて影響は限定的と考えられている [114, 37]。
本報告書の背景および調査内容 近年の世界的な量子コンピュータの開発と商用マシンの普及と並行してPQC に関
する研究及びその標準化に向けた活動も世界各国の組織で進んでおり1.3 節を参照)
,国内でも PQC の研究動向を把
握する必要性がある。2020 年度第 2 回暗号技術検討会において2021 年度から暗号技術評価委員会の活動計画として
2 年をかけて PQC の研究動向を調査し,ガイドラインを作成することが決定された。暗号技術評価委員会は暗号技術
調査ワーキンググループ(耐量子計算機暗号)を設置し,ワーキンググループにおいて 2022 年 9 月 30 日までの調査結
果をガイドライン [5] と調査報告書 [3] としてまとめ出版した。その後2022 年度第 2 回暗号技術検討会において,
さらに 2 年間の研究動向調査活動を継続し新たなガイドラインと調査報告書を作成することが決定され,暗号技術評価
委員会は暗号技術調査ワーキンググループ(耐量子計算機暗号)を設置した(図 1.1)。
本ワーキンググループでは PQC の代表的な候補である 5 種類の分類(格子に基づく暗号技術,符号に基づく暗号技
術,多変数多項式に基づく暗号技術,同種写像に基づく暗号技術,ハッシュ関数に基づく署名技術)について調査し,
原則 2024 年 9 月 30 日までの調査結果をガイドラインと調査報告書にまとめた。本ガイドラインの中で「現在」と表
記する場合,特に断りがなければ 2024 年 9 月 30 日時点での情報を指すものとする。
ガイドラインは暗号初学者を対象としており,調査報告書は暗号についての知見のある技術者や専門家を対象として
いる。第 1 章ではガイドラインと調査報告書の概要PQC を必要とする背景,研究及び標準化に関する動向,調査対
象とした PQC の種類についてまとめている。第 2 章では PQC の活用方法と移行に関する内容,特に守秘・鍵共有・
署名のための PQC の利用などについて記載している。第 3 章以降では暗号技術に携わる研究者及び技術者を読者と
して想定しPQC の代表的な候補である 5 種類の分類をまとめた。ただし,これらの章ではガイドラインの記載内容
は調査報告書の簡略版となっており,ガイドラインでは専門的な内容を省略し,暗号初学者が代表的な PQC 方式を把
握するために最小限の内容のみを記載した。
2
1.1 暗号の安全性に影響のある量子コンピュータの開発状況
1.1.1 量子コンピュータの分類
量子コンピュータは重ね合わせ・エンタングルメント等の量子的な物理現象を用いて計算を行うコンピュータの総称
である([117, 第 2 章][116] 等を参照)。基本的な計算操作と物理的操作の対応関係を表すモデルにより,量子回路型
計算,測定型量子計算,断熱型量子計算,アナログ量子シミュレーション,トポロジカル量子計算,ホロノミック量子
計算等に分類できる*5 。
量子回路型および測定型量子計算モデルで計算を行う量子コンピュータは超伝導量子ビット,冷却原子(中性原子),
イオントラップシリコン量子光量子カラーセンター等多くの種類の物理的実装で開発が進められている。Shor の
アルゴリズムをはじめとする暗号に影響のある主要なアルゴリズムは量子回路を用いて記述されていることから,この
タイプのコンピュータの大規模化が現代暗号に大きな影響を与えると考えられる。1.2.2 節に述べるように,多くの素
因数分解実験が量子回路型計算のフレームワークで行われている。
断熱型量子計算と量子アニーリング 断熱型量子計算の下位分類である量子アニーリングQuantum Annealing:
QA*6 はクラウドサービスを通じた商用コンピュータが提供されていることから注目を集めている。量子アニーリン
グを用いた素因数分解実験も数多く行われている。
量子回路型計算を超伝導量子ビット,イオントラップにより実現したコンピュータ,断熱型量子計算の中でも量子ア
ニーリングを超伝導磁束量子ビットにより実現したコンピュータは物理的なハードウェアの進化とプログラミング環境
の進化により商用利用が進んでいる。これらは量子ハードウェアを専門としない技術者でもクラウドを通じて容易に利
用可能であることから注目を集めていることを踏まえ,量子回路型コンピュータと量子アニーリング型コンピュータを
指してそれぞれ量子ゲート型と量子アニーリング型という名称で分類し対比することもある [117, 第 2 章, p. 11]。
アナログ量子シミュレータ 近年,中性原子や光格子を用いた様々な実装が急速に進展している計算フレームワークで
ある。人工的な量子系を用いて別の量子系をシミュレーションするコンピュータの総称であり [127],古典コンピュー
タを用いて量子回路や量子アニーリングの出力をシミュレーションする技術とは異なる。リュードベリ原子を用いたア
ナログ量子シミュレータによる素因数分解実験が報告されている。
規模と性能による分類 NISQNoisy Intermediate-Scale Quantumデバイス [51] は,搭載される物理量子ビット
が数十から数百程度で,実行時のノイズが大きい量子デバイスを指す。量子誤り訂正や大規模な計算を行うには不十
分な性能とされる。2025 年現在,全ての量子コンピュータは NISQ デバイスであると考えられる。反対にFTQC
Fault-Tolerant Quantum Computationデバイスはイズやデコヒーレンスの影響を量子誤り訂正等を用いて低
減し,大規模かつ長時間の計算を可能としたデバイスを指す。実際の暗号に用いられる大きさの素因数分解問題,離散
対数問題の計算を行うためにはこの規模のコンピュータが必要と考えられている。
実際には NISQ から FTQC への発展途上でも有用な計算が可能となると期待されており,中間的な性能を指す様々な
概念が提案されている。特に暗号に関係する概念として CRQCCryptographically Relevant Quantum Computer
があり,古典コンピュータでは解くことが困難な暗号学的問題を解くことのできる量子コンピュータとして定義されて
いる [9]。
*5 分類に関しては [116, 103, 39] および [52, Sect 1.6] を参照。
*6 断熱型量子計算は基底状態が簡単に用意できる初期ハミルトニアンから,組み合わせ最適化問題の解が基底状態に対応するようなハミルトニ
アンへとゆっくりと変化させることで解を得る計算フレームワーク [13, Def. 1] である。量子アニーリングはこの条件を開放系,有限時間に
緩め,ハミルトニアンをイジングモデルに制限した計算フレームワークを指すものと見なされている [123, § 3]。
3
1.1.2 ハードウェアの進展とロードマップ
前節の量子コンピュータの分類を踏まえ現在の量子コンピュータの開発状況と各組織のロードマップを概観する。よ
り詳細な記述は調査報告書 [4] を参照。以下では,物理量子 bit は搭載されている物理的な量子ビット数を表し,論理
量子 bit は量子誤り訂正などを行った後の論理レベルでの量子 bit 数を表すものとする。
量子回路型コンピュータの開発は米国の民間企業を中心に 2010 年代以降急速に発展しており,特に超伝導量子ビッ
トによる実装 [40] と中性原子による実装 [30] が 1000 物理量子 bit を超えるプロセッサを実現している。日本国内で
は 2023 年 3 月に富士通と理化学研究所を中心としたチームが超伝導量子ビットを用いた 64 物理量子 bit の量子コン
ピュータ叡を開発,現在までに 3 台がリリースされクラウドを通じて利用されている [122, 128]。
量子アニーリングマシンの開発も超伝導磁束量子ビット型を中心に進んでおり2020 年 9 月にリリースされた
D-Wave Advantage は約 5000 物理量子 bit を搭載していた [59]。2024 年 6 月に発表された D-Wave Advantage 2 プ
ロトタイプは約 1200 物理量子 bit を搭載 [33],将来的に 7000 物理量子 bit 規模のアニーリングマシンを提供する予定
であるとしている [32]。
しかしながら,調査の範囲で確認された量子コンピュータは総じて NISQ デバイスに留まっており,現在の暗号に対
して影響を及ぼす CRQC レベルのものは確認されていない。一方で,量子回路型計算において数年前までは誤り訂正
処理を行うことで逆にイズが蓄積しエラーレートが悪化する状態であったものが2023 年には誤り訂正後のエラー
レートが下回るという結果が報告されており [94, 71, 108, 29]FTQC に向け安定な論理量子ビットの構築が進んでい
る。また,近年では多くのコンピュータが実験室レベルではなく,商用として開発されクラウドサービスを通じて公開
されている [47, 14, 99]。
世界的に FTQC の開発を目指して研究が進められており,大きな枠組みでは例えば以下の目標が掲げられている。
2020 年 1 月に決定された日本のムーンショット目標 6 では様々な実装による量子コンピュータの開発を行い2050
年までの FTQC 実現を目指している [118]。欧州の European Quantum Flagship が 2024 年 2 月に公表したロード
マップでは2020 年代後半に様々な実装での 1000 物理量子 bit2030 年までに 99% 以上の忠実度*7 をもつ 1000 論理
量子 bit デバイスの実現を目標として掲げている [39]。
IBM は 2023 年 12 月にロードマップを発表し2029 年までに実行可能ゲート数を 1 億に増やし2033 年には実行可
能ゲート数 10 億,論理量子ビットを 1000 まで上げるとしている [48]。富士通では 2024 年 5 月にロードマップ [119]
を公開し2025 年中に 256 物理量子ビットを実現し2026 年度以降に 1000 物理量子ビットを達成するとしている。
なお,量子コンピュータの性能を十分に引き出す強力なアルゴリズムを実現するためには量子ビット数の増加のみで
はなく,ゲート操作の忠実度の向上,コヒーレント時間の向上などの課題を克服し,量子誤り訂正,量子ランダムアク
セスメモリ等の 2025 年現在では完全には実用化されていない技術を用いる必要がある。それらの開発スピードの予測
困難性が,量子コンピュータが暗号に与える影響の将来予測を困難なものとしている。
1.2 耐量子計算機暗号PQC の必要性について
本節では,量子コンピュータによる現代暗号への影響と PQC の必要性についてまとめる。調査の範囲では既存の量
子コンピュータの性能が古典コンピュータの暗号解読性能を超えたという報告,および実社会で用いられている大きさ
のパラメータを持つ暗号方式が解かれたという報告は知られておらず,現代暗号に対する量子コンピュータの直接的な
*7 ここでは量子ゲート操作の忠実度gate fidelityを指す。厳密な定義は決まっていないものの大まかに量子デバイスの出力が理想的な計
算結果とどの程度一致しているかを測る指標である。
4
脅威は現時点では生じていないと考えられる。
一方で,各機関が発表しているロードマップが予定通りに達成されると仮定すると,今後数十年で RSAECDSA を
はじめとする素因数分解問題や離散対数問題の計算困難性に基づいた暗号の解読を可能とする規模の量子計算を実行可
能な量子コンピュータが開発される。暗号方式の提案から社会的な普及までは RSA 暗号・楕円曲線暗号で 20 年ほど
の期間が必要とされたことからPQC の場合でも同程度の期間が必要と想定されるため,長期間の移行スケジュール
を策定し,準備を行う必要がある。
なお2048bits の合成数を公開鍵に用いた RSA 暗号以下RSA-2048 と表記)は古典で 112-bit 安全性を持つと
されており [109],暗号に影響のある量子コンピュータの開発が仮に実現しなかった場合でも,古典コンピュータの性
能の伸びにより長期的には危殆化すると考えられている。このことから,将来的な鍵長の変更もしくは新たな暗号方式
への移行は量子コンピュータの大規模化とは独立した課題として準備を進める必要があることは長年議論されてきた
[109, 18, 90] ことを指摘しておく。
1.2.1 量子コンピュータの影響による現代暗号の危殆化予測
Shor による素因数分解問題と離散対数問題に対する量子多項式時間アルゴリズム [93] が発表されて以降RSA-2048
を危殆化させる量子コンピュータの規模の見積もり [41, 43, 126, 42] と実現時期の予測 [23, 16, 56, 66, 67] に関する研
究が進められている。
量子コンピュータによる RSA-2048 の危殆化時期に関して,様々な予測が存在する。定量的な予測に基づいたもの
では 2039 年以降 [23]2050 年前後 [16] と少なくとも 20 年程度は実現に時間がかかるとされている。
セキュリティ・量子分野の専門家の予測ではMariantoni が PQCrypto2014 の招待講演 [56] で調査に 5 年,開発
に 10 年程度で 15 年後2029 年としたものMosca が Workshop on Cybersecurity in a Post-Quantum World
2015 年開催)で 2026 年から 2031 年 [66] と予測したものが有名である。近年では国際会議 RSA Conference 2023
内で開かれた暗号専門家によるパネルディスカッションの中でShamir が RSADHECDH に影響を及ぼす 30 年
か 40 年で開発される可能性があると発言している [98]。
個人ではなく,多くの専門家へのアンケートを集計した結果が 2019 年から毎年 Global Risk Institute により
Quantum Threat Timeline として発行されている。2023 年に行われたアンケートを基にした予測レポート [67] では
24 時間で RSA-2048 を解読可能な量子コンピュータが 15 年以内に出現する可能性が 33% から 54% 程度であると分
析している。日本国内の専門家へのアンケート調査では2019 年に行われた文部科学省科学技術・学術政策研究所
NISTEPによる科学技術予測調査 [124, (II-4)p. 48, 52] がある。この中ではある程度コヒーレンス時間の長い数百
物理量子 bit 規模の量子回路コンピュータの登場を 2033 年頃と予測しているため,現代暗号に対して脅威となる量子
コンピュータが出現するのはそれ以降と解釈できる。
ムーンショット目標 6 では 2050 年頃までに FTQC を実現するとしている [118] ことから,予測が実現されるのであ
れば現代暗号の量子コンピュータによる危殆化もその付近で起こると考えられる。
1.2.2 量子コンピュータによる素因数分解・離散対数問題計算の現状
Shor のアルゴリズムの実機実験 量子回路型コンピュータ実機を用いた実験はCRYPTREC 外部調査報告書「Shor
のアルゴリズム実装動向調査」[120] に挙げられているもの及びその後の [97, 95, 104] を含めて 152135 の素因数分
解実験および離散対数問題 2z ≡ 1mod 3の離散対数の計算実験を行ったもののみしか知られていない。[101, 102]
をはじめとする Shor のアルゴリズムを用いた初期の報告は N = 15 の素因数分解回路の量子フーリエ変換部分を除い
5
た部分回路を実装する予備実験的なもの,位数や N の情報を用いて過度な簡略化を行ったものが多かった。しかし,
その後 2020 年前後 IBM Quantum を用いて教科書的な簡略回路ではあるがほぼ完全な実装による実験報告 [60] や離
散対数問題の実装実験報告 [16] が出版されるなど,実際に問題のインスタンスサイズには表れない量子回路規模の拡
大は着実に続いていると考えられる。
Shor のアルゴリズムに関する理論の進展 1.1.2 節に紹介した量子コンピュータの性能進化がターゲットとなる数の
目に見える伸びに繋がらない理由が量子コンピュータ実機の性能と Shor のアルゴリズムの性質双方の観点から検証さ
れ,明らかになりつつある。
Ichikawa らによる量子コンピュータ実機実験に関するサーベイ論文 [49] によると,実験に用いられた量子ビット数
の中央値が 2016 年から 2022 年の間に 5 から 6 に増えたのみでありほぼ横ばいとなっている。量子ノイズ,デコヒー
レンス等の影響により,デバイスに搭載されている物理量子ビット数と,実際に安定して動作し測定可能な物理量子
ビット数の間には大きな差があり実際に動作する回路サイズが伸び悩んでいることがわかる。また2024 年には Cai
により Shor のアルゴリズムが量子ノイズに弱い事の理論的な証明 [24] が与えられている。より大きな規模で Shor の
アルゴリズムを実行するためには量子ビット数の増加だけではなく,量子ノイズの影響を下げる必要があることが理論
的に示された形となる。
以上をまとめると,より大きな数の素因数分解を Shor のアルゴリズムを用いて行うためには十分にノイズが小さく,
安定に動作する量子ビットを搭載した量子コンピュータが必要であると考えられる。またShor のアルゴリズムを用
いて現在より大きな数の素因数分解を行うためには,これまでの実験のように入力インスタンスに合わせ簡略化した量
子回路ではなく,汎用の剰余加算・乗算回路による構成を行う必要があるが最低でも数万ゲートの操作を必要とすると
いう山口らの評価 [126] から,現在の量子コンピュータでは実行不可能であると考えられる。
一方2023 年 8 月に Regev[85] により Shor のアルゴリズムよりも量子ビット数が多い代わりに量子ゲート数の少
ないアルゴリズムが提案された。多くのフォロー論文 [84, 36] が発表されているものの,量子コンピュータ実機を用い
た実験は確認されていない。
量子アニーリングによる実験 Shor のアルゴリズム以外の素因数分解の計算手法のうち代表的なものとして2 進数乗
算の筆算形式で式展開したものを組み合わせ最適化問題Quadratic Unconstrained Binary Optimization: QUBO
として定式化したものがある。QUBO とイジングモデルは自明な変換が知られていることから,量子アニーリングを
中心とした断熱量子型計算を用いた実験が多数報告されている。
2000 年代後半の初期の実験 [82] ではハミルトニアンに合わせて有機化合物を合成し,最適化問題の変数に対応する
原子のスピンを核磁気共鳴Nuclear Magnetic Resonance: NMRを用いた分析により結果を取り出すという手法で
計算を行っていたためスケーリングが困難であったがD-Wave 社の量子アニーリングマシンがオンライン上で比較
的手軽に利用可能になって以降は実験報告が相次いでいる [125, 105]。素因数分解のターゲットとなる数は着実に大型
化しており,現時点での最大は 2023 年に D-wave Advantage 4.1 を用いた 23 ビットの 8219999=32749×251 [35] で
ある。
その他の素因数分解手法 Shor のアルゴリズム,量子アニーリング以外の手法でも様々な素因数分解の実験が行われて
いる。アニーリングと同様の QUBO を Quantum Approximate Optimization Algorithm QAOAを用いて解く
実験 [83]143291311 を分解Variational Quantum Eigensolver VQEを用いて解く実験 [96]251 を分解),
Digitized adiabatic quantum computation を用いて解く実験 [45]2479 を分解)の報告がある。これらの実験はい
ずれも IBM Quantum を用いて行われている。
量子回路型コンピュータ上で QAOA を用いた素因数分解問題へのアプローチとしてSchnorr アルゴリズム [89] の
部分的な量子化の研究が存在する。Schnorr アルゴリズムは数体篩法の関係探索を係数制限付きの近似最近ベクトル問
6
題に変換して行うが,[106] ではこれをさらに最適化問題に落とし込みQAOA を 10 量子ビット回路上で実行するこ
とで 48bits の数の素因数分解実験結果を報告している。
また,中性原子による実装の一種として,リュードベリ原子によるアナログ量子シミュレータを用いてグラフの最
大独立集合問題を解くための枠組みが整理されており,これを用いた素因数分解の実験も行われている。[81] では
6,15,35 の素因数分解のインスタンスを SAT を経由して最大独立集合問題に変換して実験を行っている。
1.3 PQC の研究及び標準化等に関する動向
現在 PQC として扱われている暗号のほとんどは 1994 年に Shor のアルゴリズム [92] が発表される以前から効率性
および理論的側面から研究が行われており [58, 54, 57]2000 年代以降に耐量子計算機性が注目されたものである。
現在PQC に関する研究成果は暗号の国際会議で主に発表されている。特に CryptoEurocryptAsiacrypt 等の
暗号全般を扱う会議で取り扱われることも多いが,その他 PQC を専門に扱う国際会議として PQCrypto が 2006 年か
ら開催され2024 年までに 15 回が開催されている。
以下各国における標準化の動向を述べる。米国立標準技術研究所NISTは PQC の標準化活動を初期から大規
模に行っており世界への影響力が大きいため,まず米国の状況について述べてその後に各国の状況について述べる。
1.3.1 米国 NIST における標準化の動向
2015 年 8 月国家安全保障局NSAが PQC への移行計画 [8] を発表したことを受け,標準化活動が NIST により開
始された。2016 年 2 月には福岡で開催された国際会議 PQCrypto 2016 において NIST の Moody により NIST PQC
標準化プロジェクトに関する講演 [63] が行われ,選定基準に関する意見募集を経て 12 月に Call for Proposals [77]
が正式公開された。
2017 年 11 月 30 日の公募締め切りまでに世界中から耐量子計算機暗号の候補 82 方式が提案され,公募条件を満
たした 69 方式が標準化プロジェクト第 1 ラウンド候補として公開されたが5 方式は公開後に取り下げられている。
2019 年 1 月 30 日には,第 2 ラウンドへ進む 26 方式が発表され,その後 2020 年 7 月 22 日には,第 3 ラウンドへ進
む Finalists の 7 方式と Alternate Candidates の 8 方式が発表された [65]。
2022 年 7 月 5 日に NIST から標準化方式として公開鍵暗号 1 方式と電子署名 3 方式が発表された [12]。これら 4 方
式のうち,格子に基づく公開鍵暗号方式 CRYSTALS-Kyber は FIPS 203 ML-KEM[74] として,格子に基づく署
名方式 CRYSTALS-Dilithium は FIPS 204 ML-DSA[73] として,ハッシュ関数に基づく署名方式 SPHINCS+ は
FIPS 205 SLH-DSA[76] として 2024 年 8 月にそれぞれ標準化されている。また,格子に基づく署名方式 FALCON
についてもアルゴリズムの微修正を経た後に FIPS 206 FN-DSAとして標準化される予定である [20]。
標準化の 4 方式が決定されると同時に,第 3 ラウンド候補の中から第 4 ラウンドへと進む公開鍵暗号方式の 4 方式が
発表され,さらに追加の署名方式が再公募されることが周知された [88]。第 4 ラウンドに進んだ 4 方式のうちBIKE
Classic McElieceHQC の 3 方式が符号に基づく公開鍵暗号方式SIKE が同種写像に基づく公開鍵暗号方式であっ
た*8 。2022 年 8 月に SIKE に対する古典多項式時間による鍵復元攻撃が発表され [25],致命的であることが確認され
たことから提案チームにより候補から取り下げられた。
署名方式の追加公募 第 4 ラウンドの発表と並行してNIST は 2022 年 9 月から正式に追加の NIST PQC 標準化
プロジェクト追加署名Additional Digital Signature Schemesの募集を開始した。締切の 2023 年 6 月 1 日までに
*8 2025 年 3 月に HQC が標準化方式として選ばれたことが発表されている [91]。
7
50 方式の応募があり,翌 7 月に公募条件を満たした 40 方式が発表された。公募の事前情報として2022 年 7 月に
pqc-forum に投稿された文書 [61] では NIST が署名長と検証時間の小さい方式を求めているとし,一例として多変数
多項式に基づく署名方式の一種である UOV 方式が挙げられている。またModule 格子のような構造化格子に基づく
署名方式は既に CRYSTALS-Dilithium と FALCON が標準化に決まっていることから,構造化格子に基づく手法以
外が望ましいとしており,後半の内容は募集要項にも明記された [75, p. 2]。結果として格子に基づく署名は 7 方式,
UOV 型の多変数多項式に基づく署名では 7 方式の応募があった。
2022 年の署名方式公募後NIST は選考の第 1 ラウンド候補を分類ごとに発表したが,その中に 2016 年の標準化に
は存在しなかったカテゴリ MPC-in-the-Head が新たに登場している。これはマルチパーティ計算から構成したゼロ知
識証明プロトコルに Fiat-Shamir 変換を適用することで署名方式を得る構成フレームワークであり,格子,符号のよう
に安全性の根拠となる計算問題の種類を表すものではない。MPC-in-the-Head に分類されているそれぞれの方式の安
全性は実際には符号問題,多変数方程式問題,共通鍵暗号方式の平文復元問題の困難性などに帰着されている。
2024 年 10 月には第 2 ラウンドの候補となる 14 方式 [87] が発表された。格子に基づく署名方式は格子同型性判定問
題を安全性の根拠とした HAWK の 1 方式,多変数多項式に基づく UOV 型署名が 4 方式MPC-in-the-Head 型の構
成を行った署名が 5 方式であった。選定に関わるレポートは [11] で公開されている。
PQC への移行 2015 年に Mosca の提案した暗号の危殆化に関わる不等式 [66] ではX (情報を保護する期間)+Y
(システム移行期間)と Z CRQC 開発までの期間)の大小関係によりシステム移行の準備期間を設定する必要がある
としている。一方で,暗号化データを保存し,将来的にコンピュータの性能が上がってから解読するハーベスト攻撃
2.2.2 節も参照を想定するとCRQC 開発までの年数によらず,現在の暗号利用にはリスクがあるとも考えられてい
る(例えば [64, Sec. 1] を参照。
以上の背景のもと2022 年 5 月公表された国家安全保障覚書 NSM-10[68] では 2035
年を目処に暗号システムで使用する暗号を PQC に移行することを目標としている。同様に2022 年 9 月に発表され
た商用国家安全保障アルゴリズムのリスト 2.0[7] では 2035 年までにシステムに耐量子計算機性をもたせることを目標
としたタイムラインを掲載している。
現在使われている暗号から PQC への移行を推進するためNIST 内の NCCoENational Cybersecurity Center of
Excellenceを中心にコンソーシアムが設立された [38]。組織における暗号のユースケース,相互運用性やリスク評価
を含めた移行計画の策定に関する包括的な技術文書が NIST SP 1800-38A から 38C として発行される予定であり,現
在は Initial Preliminary Draft[70] が公開されている。
安全性レベル 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 で与えられる [75]。古典コンピュータによる攻撃者に対しては古典論理回路のゲート数が,量子コンピュー
タを利用可能な攻撃者に対しては量子回路のゲート数と最大深さの積が与えられている。計算量評価において,公開鍵
暗号方式ではIND-CCA2 安全性を考える際には 264 個以下の選択暗号文を復号オラクルに古典的にクエリできると
署名方式ではEUF-CMA 安全性を考える際には 264 個以下のメッセージを署名オラクルに古典的にクエリでき
るとしている。
また,レベル 1,3,5 の量子回路計算量で 2157 , 2221 , 2285 とされている部分は 2016 年の Call for proposals[77, 4.A.5 節
] では 2170 , 2233 , 2298 であった。つまり2016 年の PQC 候補でレベル 1,3,5 とされているものは 2022 年の定義で
もレベル 1,3,5 の基準を満たすことになる。この更新は AES を解読する量子回路の改良により,量子計算量が改善さ
8
れたことによる。
表 1.1: 2022 年に公表された NIST PQC 標準化プロジェクト追加署名 Call for proposals [77] における安全性レベル
と計算量の対応表。各レベルは古典,量子のどちらか一方の基準を満たすものとして定義されている。
レベル 量子回路の(最大深さ)×(ゲート数) *9 古典論理ゲート数
157
レベル 1 2 2143
レベル 2 2146
レベル 3 2221 2207
レベル 4 2210
レベル 5 2285 2272
1.3.2 米国以外での動向
米国以外でも世界各国の機関が調査活動を行い,調査レポートの出版 [17, 69],各国における PQC 標準方式または
推奨暗号の選定 [7, 27, 15, 90, 26, 28, 78, 100] を進めている。国際的な機関では ISO/IEC[50]IETF[46] 等で移行,
標準化の議論が進められている。
各国の政府機関から PQC の標準暗号リスト,推奨暗号リストが公表されている。代表的なものを表 1.2 にまとめ
る。多くの国が NIST PQC の標準化方式を用いているがFrodoKEM のように NIST PQC 標準化プロジェクトの第
3 ラウンド以降の選考に漏れた方式Classic McEliece のように第 4 ラウンド選考中の状態で選ばれた例も存在する。
また,多くの機関が NIST 標準方式の単独利用ではなく古典的安全性がよく知られている RSA や ECDSA とのハイブ
リッドを推奨していること,レベル 3 以上のパラメータ利用を推奨していることも特徴的である。国家による標準暗号
以外でも Streamlined NTRU Prime[19] のように OpenSSH の実装 [80] を通じて実用化されている方式も存在する。
韓国では量子耐性暗号研究団の主催する KpqC プロジェクト [129] が耐量子計算機性を持つ公開鍵暗号方式と署名方
式の公募を 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 の公募を行っている [111]。2018 年 6 月の募集要項に従い 2019
年 2 月の締切までに公開鍵暗号 38 方式と共通鍵暗号 22 方式が応募されている。2019 年 9 月の第 2 ラウンドの時点で
公開鍵暗号 14 方式と共通鍵暗号 10 方式に絞られ,最終的には 2020 年 1 月に一等,二等,三等としてランク付けが発
表された [112]。一等として公開鍵暗号方式 LAC.PKEAigis-enc署名 Aigis-sig共通鍵暗号方式 uBlockBallet
が挙げられている。
日本では CRYPTREC の暗号技術調査ワーキンググループにおいて 2014 年度に PQC の代表的な候補である格子
に基づく暗号技術について調査を行い,報告書「格子問題等の困難性に関する調査」を公開している [1]。さらに 2017
年度から 2018 年度にかけてPQC の代表的な候補である 4 種類の分類(格子に基づく暗号技術,符号に基づく暗号
技術,多変数多項式に基づく暗号技術,同種写像に基づく暗号技術)について調査し,報告書にまとめた [2]。また,
2021 年度から 2022 年度にかけて,ハッシュ関数に基づく署名技術を加えた 5 種類の技術について調査を行い,報告書
[3] およびガイドライン [5] としてまとめている。
9
表 1.2: 世界各国の標準暗号,推奨暗号リストの状況。表中の勧告,推奨,許容等はそれぞれのレポートからの翻訳で
あるため,厳密に同じ意味ではない。許容されているバージョン,安全性レベルなど,詳細は引用先のレポートを参照
のこと。
NIST PQC CNSA 2.0 NCSC ANSSI BSI NCSC NÚKIB TRAFICOM
方式の名称 (米) (米) (英) (仏) (独) (蘭) (チェコ)(フィンランド)
[7] [27] [15] [90] [26, 28] [78] [100]
a c d ef h
ML-KEM 標準化 勧告 推奨 許容 推奨 推奨 推奨 暗号要件 k
CRYSTALS-Kyber FIPS 203 [74]
FrodoKEM Round 3 許容 d 推奨 e 許容 許容 i
Classic McEliece Round 4 推奨 e 許容 許容 i
ML-DSA 標準化 勧告 a 推奨 c 許容 d 推奨 ef 推奨/許容 g 推奨 h 暗号要件 k
CRYSTALS-Dilithium FIPS 204 [73]
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 [76]
注釈一覧
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 を公開鍵と
している。鍵復元の困難性と素因数分解問題の困難性は確率的多項式時間等価であるため [86]RSA 暗号の鍵復元の
安全性は素因数分解問題の困難性に基づくものと考えることができ,素因数分解に基づく暗号に分類できる。同様に,
楕円曲線暗号の場合も例えば楕円曲線上の ElGamal 暗号のように安全性が楕円曲線上の離散対数問題の困難性に基づ
くため,離散対数問題に基づく暗号に分類できる。
本ガイドライン・報告書で扱う代表的な 5 種類の PQC (格子に基づく暗号技術,符号に基づく暗号技術,多変数多
10
項式に基づく暗号技術, 同種写像に基づく暗号技術,ハッシュ関数に基づく署名技術) も RSA 暗号等と同様に,暗号
の安全性がそれぞれ格子問題の困難性,符号復号問題の困難性,多変数代数方程式の求解困難性,同種写像上の計算問
題の困難性,ハッシュ関数の衝突発見困難性に基づいている。そして,これらの問題を量子コンピュータを利用して効
率よく解くアルゴリズムはまだ発見されていないことから,上に示した暗号技術は PQC であると期待されている。暗
号方式と数学的な計算問題の具体的な関係は各章の第 1 節に記載されている。
これらの 5 種類を選んだ理由は主に研究期間の長さ,研究コミュニティの大きさによる。より細かい歴史的な背景は
各章の第 4 節に記載されている。
格子に基づく暗号技術は 1997 年の Ajtai と Dwork による論文 [10] から 25 年以上の歴史を持ち,解読技術である
格子アルゴリズムに関しても 50 年の歴史を持つ [34, 53, 55]。符号に基づく暗号技術は McEliece による 1978 年の論
文 [58] から 40 年以上の歴史を持ち,解読技術は通信における符号の復号技術であり符号理論として 70 年以上研究
が行われている。多変数多項式に基づく暗号技術は Ong と Schnorr による 1983 年の論文 [79] を源流*10 とし1988
年の Matsumoto-Imai 暗号 [57] を経て 40 年以上の研究が続けられている。同種写像の計算問題に基づく暗号技術
も Couveignes による 1997 年の提案 [31] から 25 年以上研究が続けられている。ハッシュ関数に基づく署名方式は
Lamport による 1979 年の論文 [54] から 40 年以上の研究が行われている。
*10 ただし Ong と Schnorr による方式の安全性は素因数分解問題に基づくため耐量子計算機性を持たないことに注意。
11
1.5 耐量子計算機暗号調査報告書執筆者リスト
主査 國廣 昇 筑波大学
委員 青木 和麻呂 文教大学
委員 伊藤 忠彦 セコム株式会社
委員 下山 武司 国立情報学研究所
委員 高木 剛 東京大学
委員 高島 克幸 早稲田大学
委員 成定 真太郎 KDDI 総合研究所
委員 廣瀬 勝一 福井大学
委員 安田 貴徳 岡山理科大学
委員 安田 雅哉 立教大学
事務局 篠原 直行 情報通信研究機構
事務局 五十部 孝典 情報通信研究機構
事務局 伊藤 竜馬 情報通信研究機構
事務局 大久保 美也子 情報通信研究機構
事務局 大東 俊博 情報通信研究機構
事務局 小川 一人 情報通信研究機構
事務局 金森 祥子 情報通信研究機構
事務局 黒川 貴司 情報通信研究機構
事務局 高安 敦 情報通信研究機構
事務局 横山 和弘 情報通信研究機構
事務局 吉田 真紀 情報通信研究機構
事務局 青野 良範 情報通信研究機構
12
第 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 TR-2001-2024, https://www.cryptrec.go.jp/report/cryptrec-tr-2001-2024.pdf.
2025-03.
[5] CRYPTREC 暗号技術調査 WG (耐量子計算機暗号). CRYPTREC 暗号技術ガイドライン (耐量子計算機暗
号). CRYPTREC GL-2004-2022, https://www.cryptrec.go.jp/report/cryptrec-gl-2004-2022.pdf.
2023-03.
[6] CRYPTREC 暗号技術調査 WG (高機能暗号). CRYPTREC 暗号技術ガイドライン (高機能暗号). CRYP-
TREC GL-2005-2022, https://www.cryptrec.go.jp/report/cryptrec-gl-2005-2022.pdf. 2023-03.
[7] 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 閲覧).
[8] 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 版を確認).
[9] 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 閲覧).
[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.
13
[12] 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.
[13] T. Albash, D. A. Lidar. Adiabatic quantum computation. Rev. Mod. Phys. Vol. 90, Iss. 1 (2018),
p. 015002.
[14] Amazon Braket 量子コンピュータ. https://aws.amazon.com/jp/braket/quantum-computers/.
[15] 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 閲覧).
[16] 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.
[17] 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 閲覧).
[18] 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.
[19] D. J. Bernstein et al. NTRU Prime. https://ntruprime.cr.yp.to/. (2024-12-06 閲覧).
[20] 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 閲覧).
[21] G. Brassard. Searching a Quantum Phone Book. Science. Vol. 275, Num. 5300 (1997), pp. 627628.
[22] 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.
[23] J. Sevilla and C. J. Riedel. Forecasting timelines of quantum computing. (2020). arXiv: 2009.05045.
[24] 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).
[25] W. Castryck, T. Decru. An Efficient Key Recovery Attack on SIDH. EUROCRYPT (5). Vol. 14008.
Lecture Notes in Computer Science. Springer, 2023, pp. 423447.
[26] 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 閲
覧).
[27] 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 閲覧).
[28] 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 閲覧).
14
[29] Google Quantum AI and Collaborators. Quantum error correction below the surface code threshold.
Nature. Vol. 616, Num. 7955 (2024).
[30] 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 閲覧).
[31] J.-M. Couveignes. Hard Homogeneous Spaces. Cryptology ePrint Archive, Paper 2006/291. 2006. https:
//eprint.iacr.org/2006/291.
[32] 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 閲覧).
[33] D-Wave. The Most Connected and Powerful Quantum Computer Built for Business. https : / / www .
dwavesys.com/solutions-and-products/systems/. (2024-12-01 閲覧).
[34] U. Dieter. How to calculate shortest vectors in a lattice. Mathematics of Computation. Vol. 29 (1975),
pp. 827833.
[35] J. Ding, G. Spallitta, R. Sebastiani. Experimenting with D-Wave quantum annealers on prime factorization
problems. Frontiers Comput. Sci. Vol. 6 (2024).
[36] 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.
[37] 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 閲覧).
[38] National Cybersecurity Center of Excellence. Migration to Post-Quantum Cryptography. https://www.
nccoe . nist . gov / crypto - agility - considerations - migrating - post - quantum - cryptographic -
algorithms.
[39] European Quantum Flagship. Strategic Research and Industry Agenda. https://qt.eu/media/pdf/
Strategic-Reseach-and-Industry-Agenda-2030.pdf. 2024-02.
[40] 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 閲覧).
[41] 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.
[42] É. 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.
[43] É. 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.
[44] L. K. Grover. A fast quantum mechanical algorithm for database search. STOC. ACM, 1996, pp. 212219.
[45] 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.
15
[46] P. E. Hoffman, S. Celi. Post-Quantum Use In Protocols (pquip). https://datatracker.ietf.org/wg/
pquip/about/. (2024-12-06 閲覧).
[47] IBM Quantum Platform. https://quantum.ibm.com/.
[48] 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 閲覧).
[49] T. Ichikawa et al. Current numbers of qubits and their uses. Nature Reviews Physics. Vol. 6, Num. 6
(2024), pp. 345347.
[50] ISO. PQCRYPTO Post-quantum cryptography for long-term security. https : / / www . iso . org /
organization/5984715.html. (2024-12-06 閲覧).
[51] P. John. Quantum Computing in the NISQ era and beyond. Quantum. Vol. 2 (2018), p. 79.
[52] S. P. Jordan. Quantum Computation Beyond the Circuit Model. 2008. arXiv: 0809.2307.
[53] R. Kannan. Improved Algorithms for Integer Programming and Related Lattice Problems. STOC. ACM,
1983, pp. 193206.
[54] L. Lamport. Constructing digital signatures from a one-way function. SRI International Technical Report,
CSL-98. 1979-10.
[55] A. K. Lenstra, H. W. Lenstra, L. Lovász. Factoring polynomials with rational coefficients. Mathematische
Annalen. Vol. 261, Num. 4 (1982), pp. 515534.
[56] 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 で述べられている.
[57] 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.
[58] R. J. McEliece. A Public-Key Cryptosystem Based On Algebraic Coding Theory. Deep Space Network
Progress Report. Vol. 44 (1978), pp. 114116.
[59] 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
閲覧).
[60] 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.
[61] 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 閲覧).
[62] 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 閲覧).
[63] D. Moody. Post-Quantum Cryptography: NISTs Plan for the Future. https://pqcrypto2016.jp/data/
pqc2016_nist_announcement.pdf. 2016-02. (2024-12-06 閲覧).
16
[64] 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 閲覧).
[65] 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.
[66] 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 閲覧).
[67] M. Mosca, M. Piani. 2023 Quantum Threat Timeline Report. https://globalriskinstitute.org/
publication/2023-quantum-threat-timeline-report/. 2023-12. (2024-12-02 閲覧).
[68] 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 閲覧).
[69] 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 閲覧).
[70] 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 閲覧).
[71] Z. Ni et al. Beating the break-even point with a discrete-variable-encoded logical qubit. Nature. Vol.
616, Num. 7955 (2023), pp. 5660.
[72] NIST. Digital Signature Standard (DSS). NIST FIPS 186-5, https://nvlpubs.nist.gov/nistpubs/
FIPS/NIST.FIPS.186-5.pdf. 2023-02.
[73] NIST. Module-Lattice-Based Digital Signature Standard. NIST FIPS 204, https://nvlpubs.nist.gov/
nistpubs/FIPS/NIST.FIPS.204.pdf. 2024-08.
[74] NIST. Module-Lattice-Based Key-Encapsulation Mechanism Standard. NIST FIPS 203, https : / /
nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf. 2024-08.
[75] 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 閲覧).
[76] NIST. Stateless Hash-Based Digital Signature Standard. NIST FIPS 205, https://nvlpubs.nist.gov/
nistpubs/FIPS/NIST.FIPS.205.pdf. 2024-08.
[77] 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 閲覧).
[78] 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 閲覧).
17
[79] H. Ong, C. P. Schnorr. Signatures through Approximate Representation by Quadratic Forms. CRYPTO.
Plenum Press, New York, 1983, pp. 117131.
[80] 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 か
らはデフォルトで利用される仕様となっている.
[81] J. Park et al. Rydberg-atom experiment for the integer factorization problem. Physical Review Research.
Vol. 6, Iss. 2 (2024), p. 023241.
[82] 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.
[83] 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.
[84] S. Ragavan, V. Vaikuntanathan. Space-Efficient and Noise-Robust Quantum Factoring. CRYPTO (6).
Vol. 14925. Lecture Notes in Computer Science. Springer, 2024, pp. 107140.
[85] O. Regev. An Efficient Quantum Factoring Algorithm. arXiv: 2308.06572.
[86] 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.
[87] Round 2 Additional Signatures. https : / / csrc . nist . gov / projects / pqc - dig - sig / round - 2 -
additional-signatures. 2024-10. (2024-12-06 閲覧).
[88] Round 4 Submissions. https://csrc.nist.gov/Projects/post- quantum- cryptography/round- 4-
submissions. 2022-07. (2024-12-06 閲覧).
[89] C. P. Schnorr. Fast Factoring Integers by SVP Algorithms, corrected. Cryptology ePrint Archive, Paper
2021/933. 2021. https://eprint.iacr.org/2021/933.
[90] 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 閲覧).
[91] Selected Algorithms. 2025-03. https : / / csrc . nist . gov / Projects / post - quantum - cryptography /
selected-algorithms. 2025-03-30 閲覧).
[92] P. W. Shor. Algorithms for Quantum Computation: Discrete Logarithms and Factoring. FOCS. IEEE
Computer Society, 1994, pp. 124134.
[93] 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.
[94] V. V. Sivak et al. Real-time quantum error correction beyond break-even. Nature. Vol. 616, Num. 7955
(2023), pp. 5055.
[95] U. Skosana, M. Tame. Demonstration of Shors factoring algorithm for N = 21 on IBM quantum processors.
Scientific Reports. Vol. 11, Num. 16599 (2021).
[96] 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.
[97] 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.
18
[98] The Cryptographers Panel. https://www.rsaconference.com/library/presentation/usa/2023/the%
20cryptographers%20panel. 2023-04. RSA Conference 2023 (2024-12-05 閲覧).
[99] The Leap quantum cloud service. https : / / www . dwavesys . com / solutions - and - products / cloud -
platform/.
[100] 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 閲覧).
[101] 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.
[102] 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.
[103] D.-S. Wang. A comparative study of universal quantum computing models: Toward a physical unification.
Quantum Eng. Vol. 3, Num. 4 (2021).
[104] 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).
[105] 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.
[106] B. Yan et al. Factoring integers with sublinear resources on a superconducting quantum processor. arXiv:
2212.12372.
[107] C. Zalka. Grovers quantum searching algorithm is optimal. Phys. Rev. A. Vol. 60, Iss. 4 (1999), pp. 2746
2751.
[108] 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 閲覧).
[109] デジタル庁, 総務省, 経済産業省. 暗号強度要件(アルゴリズム及び鍵長選択)に関する設定基準. CRYPTREC
LS-0003-2022r1, https://www.cryptrec.go.jp/list/cryptrec-ls-0003-2022r1.pdf. 2022-03.
[110] デジタル庁, 総務省, 経済産業省. 電子政府における調達のために参照すべき暗号のリストCRYPTREC 暗
号リスト). CRYPTREC LS-0001-2022r1, https://www.cryptrec.go.jp/list/cryptrec- ls- 0001-
2022r1.pdf. 2024-05.
[111] 中国密码学会. 全国密码算法设计竞赛通知. https://sfjs.cacrnet.org.cn/site/content/309.html.
2018-06. (2025-01-11 閲覧).
[112] 中国密码学会. 关于全国密码算法设计竞赛算法评选结果的公示. https://sfjs.cacrnet.org.cn/site/
content/854.html. 2020-01. (2025-01-11 閲覧).
[113] 宮地 充子. 楕円曲線の理論的及び実用的可能性. IEICE FUNDAMENTALS REVIEW. Vol. 14, Num. 4
(2021), pp. 329336.
19
[114] 細山田 光倫. 量子コンピュータが共通鍵暗号の安全性に及ぼす影響の調査及び評価. CRYPTREC EX-2901-
2019, https://www.cryptrec.go.jp/exreport/cryptrec-ex-2901-2019.pdf. 2020-01.
[115] 縫田 光司. 耐量子計算機暗号. 森北出版, 2020.
[116] 伊藤 公平. 量子計算. 2010-02. https://www.ieice- hbkb.org/files/ad_base/view_pdf.html?p=
/files/S2/S2gun_05hen_03.pdf. 電子情報通信学会 知識ベース 知識の森 S2 群・量子・バイオ5 編
量子通信と量子計算3 章.
[117] 国立国会図書館調査及び立法考査局. 量子情報技術:科学技術に関する調査プロジェクト報告書. 2022-03.
https://www.ndl.go.jp/jp/diet/publication/document/2022/index.html.
[118] 国立研究開発法人科学技術振興機構. 目標 6 2050 年までに、経済・産業・安全保障を飛躍的に発展させる誤
り耐性型汎用量子コンピュータを実現. https://www.jst.go.jp/moonshot/program/goal6/index.html.
(2024-12-01 閲覧).
[119] 富士通. 量子コンピュータの誤り耐性量子計算を解説!エラー訂正とエラー緩和の最新トレンドを紐解
く. https : / / activate . fujitsu / ja / key - technologies - article / ta - fault - tolerant - quantum -
computation-20240515. 2024-05. (2024-12-01 閲覧).
[120] 高安 敦. Shor のアルゴリズム実装動向調査. CRYPTREC EX-2005-2020, https://www.cryptrec.go.jp/
exreport/cryptrec-ex-3005-2020.pdf. 2021-06.
[121] 清藤 武暢, 四方 順司. 量子コンピュータが共通鍵暗号の安全性に与える影響. 金融研究. Vol. 38, Num. 1
(2019), pp. 4572. https://cir.nii.ac.jp/crid/1523106604811659392.
[122] 理化学研究所. 量子コンピュータを利用できる「量子計算クラウドサービス」開始 -国産超伝導量子コンピュー
タ初号機の公開-. https://www.riken.jp/pr/news/2023/20230324_1/. 2023-03. (2024-12-01 閲覧).
[123] 大関 真之. 量子アニーリングが拓く機械学習と計算技術の新時代 (量子システム推定の数理). 数理解析研究所
講究録. Vol. 2059 (2017), pp. 1323. https://cir.nii.ac.jp/crid/1050564288163922560.
[124] 文部科学省 科学技術・学術政策研究所科学技術予測センター. 第 11 回科学技術予測調査 デルファイ調査.
https://nistep.repo.nii.ac.jp/?action=repository_uri&item_id=6692&file_id=13&file_no=3.
2020-06. (2024-12-05 閲覧).
[125] 山口 純平, 伊豆 哲也. イジング計算を用いた暗号解析について. オペレーションズ・リサーチ:経営の科学.
Vol. 67, Num. 6 (2022), pp. 290296. https://cir.nii.ac.jp/crid/1520011030559130112.
[126] 山口 純平, 伊豆 哲也, 國廣 昇. 素因数分解問題に対する Shor アルゴリズムの実装と量子計算機シミュレータ
を用いた実験. 暗号と情報セキュリティシンポジウム (SCIS 2023). 2023-01, 4A23.
[127] 大塩 耕平. アナログ量子シミュレータの開発動向と応用. https://www.mizuho-rt.co.jp/publication/
others/pdf/mhrt003_01.pdf. 2024-03. (2024-12-06 閲覧).
[128] 大阪大学 量子情報・量子生命研究センター. 【プレスリリース】大阪大学に設置した超伝導量子コンピュータ国
産3号機の クラウドサービスを開始. https://qiqb.osaka-u.ac.jp/20231220pr/. 2023-12. (2024-12-01
閲覧).
[129] 量子耐性暗号研究団. KpqC. https://kpqc.or.kr/. (2024-12-06 閲覧).
[130] 満保 雅浩. 公開鍵暗号. 映像情報メディア学会誌. Vol. 69, Num. 9 (2015), pp. 714720.
20
第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
本章では,情報システムの規模(ステークホルダ数,利用者数,処理量等)が増減した場合でも,その情報システムが消費するリソース(計
算量,通信量,人の手間等)が極端に増加しない,又は,減少させることができる能力の意味で利用する。
21
表 2.1: 公開鍵暗号による暗号化(守秘・鍵共有)を行う情報システムに対して耐量子計算機性を持たせるためのアプ
ローチ
アプローチ 概要
1. 削除・匿名化 情報システムが,漏洩しても問題ない情報以外は保管しない/扱わないようにする。又は,保
管する/扱う情報を加工することによって,漏洩しても問題ないように変形する。この方式
は,スケーラビリティが最も高いが,可用性が大きく低下することが考えられ,選択できな
いことも多い。
2. 耐量子計算機 最も一般的な解決策であり,スケーラビリティを確保できる。現代暗号の利点を維持するア
性を持つ公開 プローチである。
鍵暗号の採用
3. 公開鍵暗号を 公開鍵暗号を利用している情報システムを,公開鍵暗号を利用しない仕組み(例えば,物理
用いない鍵共 的に通信相手全員に IC カードを配布することで,共通鍵の事前共有を行うなど)に置き換え
有手段の導入 ることで,耐量子計算機性を持たせる。暗号技術の観点からは,公開鍵暗号が登場する以前
の思想で再設計することになる。スケーラビリティが低く,不特定多数が利用するシステム
では採用が困難と考えられる。また,通信当事者の捕捉が容易となることも考えられ,匿名
性の確保やプライバシ保護に関する再設計も併せて必要になる可能性がある。
4. 物理アクセス 13 のアプローチが採用できない場合にも採用可能である。暗号技術の観点からは,暗号技
制御 術が発展する以前の思想で再設計することになる。実装コスト及び運用コストが非常に高く
なることが予想される。
ラビリティが期待できるデータ削除や匿名化といった手法は,そのデータが削除や匿名化が可能であるか否かを検討し
た後に実施する必要があり,運用上のスケーラビリティは高いものの,導入前の検討のために時間を必要とし,情報シ
ステムの可用性が低下するおそれもある。また,法令やポリシー等で削除・匿名化が許容されていない場合には,実施
できないおそれもある。
これらの事情より,耐量子計算機性を持たせるための最も汎用的かつ根本的な対応は,既存の公開鍵暗号方式を耐量
子計算機性を持つ公開鍵暗号方式に置き換えることであると考えられる。
ただし,情報システムで利用されている公開鍵暗号方式を,耐量子計算機性を持つ公開鍵暗号方式に置き換えること
は容易ではない。それは単に実装を切り替えただけでは完了せず,公開鍵暗号がどのように利用されているのかについ
て認識した上で,運用やデータ管理に係る様々な処理も併せて実施することが要求される(以降,暗号方式の置き換え
に加えて,これらの処理を行うことを「暗号移行」と呼ぶ)。そこで本章では,公開鍵暗号のいくつかの利用形態を念
頭に,耐量子計算機性を持つ公開鍵暗号方式への暗号移行について紹介する。まず,現行の公開鍵暗号の利用形態を紹
介した上で,各利用形態における CRQC による脅威及びその対策について,システム運用やデータ管理処理の観点を
踏まえて概説する。また,脅威を評価する上で重要となる,保護対象となるデータの保護期間について記載した上で,
利用形態や保護対象を踏まえた対応についても概説する。
22
2.1 公開鍵暗号の利用形態
既存の公開鍵暗号方式を,耐量子計算機性を持つ方式へと暗号移行するに際しては,その公開鍵暗号方式の利用形態
ごとに,暗号移行のプロセスが大きく異なることが予想される。そこで,本節で公開鍵暗号の利用形態について概説し
た上で,次節以降で各利用形態における暗号移行のプロセスについて述べる。公開鍵暗号にはいくつかの利用形態が存
在するが,本章では「電子政府における調達のために参照すべき暗号のリスト」[24] 以下「CRYPTREC 暗号リス
ト」と呼ぶ。
)に合わせて,公開鍵暗号を署名・守秘・鍵共有に分類し,以降その分類に沿って概説する。また,本節で
は,署名用途/守秘用途/鍵共有用途の耐量子計算機性を持つ公開鍵暗号方式を,それぞれ署名用途/守秘用途/鍵共
有用途の PQC と表記する。
2.1.1 署名用途での公開鍵暗号の利用
本節では,署名を付与する行為を「デジタル署名処理」と呼び,付与される署名データを「デジタル署名」と呼ぶ。
デジタル署名が付与されたコンテンツを改竄すると,その改竄を検知することができる。このため,署名用途の公開鍵
暗号を用い,コンテンツにデジタル署名を付与することで,コンテンツの改竄によりもたらされる被害を防止すること
,動画等の情報であることもあれば,暗号鍵の鍵情報*2
ができる。コンテンツは,人が読む文章(ドキュメントデータ)
であることもある。また,デジタル署名処理に用いられる秘密鍵が,対応する公開鍵を含む電子証明書によって所定の
人物/組織/装置等と紐づいている場合では,コンテンツの生成人物/組織/装置を確認(認証)することもできる。
このように署名用途の公開鍵暗号は,コンテンツの改竄防止,署名者の認証,データ元の認証等に利用される。
具体的な署名用途の公開鍵暗号の利用例としてはTLS 通信 [18] におけるクライアント認証(利用者の認証)やサー
バ認証(サービス提供者の認証)
OS のコードサインの確認(バイナリデータが改竄されていないことの確認)等に広
く利用されている。また公開鍵の配布手段の一種である公開鍵暗号基盤PKIの構成においても公開鍵暗号は広
く利用されており [4],コンテンツに対して署名が付与された時刻を確認可能なタイムスタンプ署名方式 [23] 等も存在
する。CRYPTREC 暗号リストにはDSAECDSAEdDSARSA-PSS及び RSASSA-PKCS1-v1 5 が署名用途
の公開鍵暗号として記載されている。
2.1.2 守秘用途での公開鍵暗号の利用
守秘用途の公開鍵暗号によって暗号化された暗号文は,対応する秘密鍵なしに復号することは困難となる。このた
め,守秘用途の公開鍵暗号は,意図した相手だけにデータを提示するために利用することができる。暗号化処理による
保護は,ドキュメントデータ,動画等の情報に対して行われることもあれば,暗号鍵の鍵情報*3 に対して行われること
もある。保護が鍵情報に対して行われるユースケースとしては,鍵情報を通信当事者間で共有する場合や,暗号鍵所有
者がその鍵情報をバックアップする場合等が該当する。
守秘用途及び鍵共有用途の公開鍵暗号の一般的な実装形態として,公開鍵暗号方式により別の暗号鍵を保護し,その
暗号鍵を利用した共通鍵暗号方式によりコンテンツの秘匿性や完全性を保護するというアプローチが存在する。このア
プローチでは,共通鍵暗号方式の暗号鍵(以下,単に共通鍵と呼ぶ)は送信者により作成され,配送される。したがっ
て,ある時点で共通鍵が漏洩した場合には,過去にその秘密鍵を持つ利用者に対して配送された共通鍵が漏洩するお
*2 鍵情報には暗号鍵やメタデータが含まれ [5],公開鍵暗号の鍵のみではなく共通鍵暗号の鍵に関する情報も含む概念となる。
*3 秘密鍵,共通鍵,鍵導出鍵及びそれらの鍵のメタデータを含む。
23
それがある。また,受信者は共通鍵の生成に関わることがないため,送信者が別の通信相手と共通鍵を使い回してい
ても察知することができない。このため,昨今の 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な鍵を用いる
暗号スイート*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 による攻撃の脅威にさらされることになる。すなわち,
*4 ある時点における鍵が漏洩した場合でも,漏洩した鍵とは異なる鍵を使用していた過去の暗号文の復号はできない性質。
*5 守秘用途の RSAES-PKCS1-v1 5 は,運用監視暗号リストに記載されており,互換性維持以外での利用は推奨されていない。
*6 複数の暗号アルゴリズムの組合せ
*7 共通鍵暗号の共通鍵,鍵導出機能の鍵やパラメータ等
24
CRQC 実現までの期間Zが非常に長く遠い将来であったとしてもその情報システムの X や Y の値が大きけれ
何らかの対応が求められる。なお本章において特記しない限り以降ではXYZ は図 2.1 における XYZ
を示す。
もっともCRQC の実現時期は未だ不透明でありZ を予想することは困難である。またX は,暗号方式のみなら
ず,保護対象となるデータの性質等によっても大きく異なる。特に,保護対象となるデータに対して,保護期間が設定
されていない場合などはX を導出すること自体が新たな課題となる。同様にY も,暗号方式の実装形態によって大
きく変化する。さらにX 及び Y は,情報システムの運用を通して,将来において変動することもありうる。
このようにある公開鍵暗号アプリケーションが利用されている際にCRQC による脅威について備える必要性が
あるか否かを判断しようとした場合Z は不確定でありX や Y も変動しうるため,判断が難しいという課題がある
[25]。ここで保護対象となるデータに保護期間が設定されていない場合においては判断に先駆けてX 導出のため
に)データの保護期間を決定することとなり,場合によってはその判断を行うための情報収集に相当の期間を必要と
する。
PQC の導入においては,その情報システムに耐量子計算機性を持たせることが必要なのか,また,いつまでにそれ
を行う必要があるのか,を判断すること自体が課題となる。
2.2.1 署名用途での課題
署名用途の公開鍵暗号は,コンテンツの改竄防止,認証等に利用されるが,ユースケースによって脅威の性質は大き
く異なる。例えばTLS 通信 [18] におけるクライアント認証やサーバ認証においては,認証用に付与されたデジタル
署名の検証を行うのは基本的にその場限りとなるためX の値は小さくなる。またWeb ブラウザが信用するサーバ認
証用の証明書の有効期間は,ごく一部の例外を除いて 1 年程度であり,それほど長い期間利用されることはない。その
ためX の値は,守秘用途や他の認証用途に比べて非常に小さくなる [25]。さらに,ブラウザのアップデートやルート
認証局の入れ替えをより迅速に実施できる体制を整備しておりY の値も守秘用途や他の認証用途に比べて小さい。
他方で,電子データに対するドキュメント署名や,バイナリデータに対するコードサインであれば,署名対象のデー
タを利用する人が存在する限り(数十年に渡り)デジタル署名が検証されることもある。特に,コードサインにおいて
は,仮に電子証明書に有効期間が記載されていたとしても,その有効期間満了後にも検証されることが十分に考えられ
る。そのためX の値は,守秘用途や他の認証用途に比べて非常に大きくなる。
このように署名用途においてはX の値は大きくなりうるものであり,個々のアプリケーションごとに判断する必
要がある。また,公開鍵の配布のために PKI を利用した場合トラストアンカーの置き換え等に時間を要するためY
が 10 年以上となることも珍しくない。
2.2.2 守秘用途での課題
守秘用途の公開鍵暗号においては,攻撃者が事前に暗号技術で保護されたデータを収集して保存しておき,後からそ
のデータに対して攻撃を行う攻撃であるHarvest Now Decrypt Later 攻撃(以下, *8 の脅
「ハーベスト攻撃」と呼ぶ)
威が指摘されている。
ハーベスト攻撃においては,保護対象となるデータの保護期間,すなわち X の値が大きくなるほど,攻撃者が攻撃
可能な期間が長くなる。これは,攻撃者が CRQC の開発を待たずに攻撃(保護された情報の収集)を開始できるため
である。一方,防御側は,攻撃者に情報が収集される前に,情報システムに耐量子計算機性を付与することが求められ
*8 Record Now Decrypt Later 攻撃Store Now Decrypt Later 攻撃等とも呼ばれる。
25
る。保護対象となる情報の保護期間が長くなるほど,この不均衡は大きくなり,攻撃者の攻撃可能期間が長くなる。
守秘用途の公開鍵暗号では,保護対象となるコンテンツや鍵情報の保護期間が非常に長期となることが想定されてい
る場合や,無期限で保護することが想定されている場合も存在する。例えば,患者を特定又は推測可能な形態で保管さ
れた遺伝性疾患に関する医療情報や,外交関係の機微な情報,さらには,それらの情報の暗号化に利用される鍵などは
長い保護期間を持つ傾向にある。また,ドキュメントの生成時において,無期限に守秘することを前提としており,公
開することを想定していない情報も存在する。
これらの情報においては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 の性質を持たなくなるおそれがあり,それによ
りデータ保護及び運用ポリシー策定時に想定していなかった経路からの情報漏洩等が発生する懸念が生じる。
他方で2の選択において既存の鍵交換及び守秘用途の PQC の両方のハイブリッド構成を用いることによって
対応するアプローチも存在する*9 。ハイブリッド構成を用いることで,既存のアルゴリズムでしか防げない攻撃に対し
ても,新たなアルゴリズムでしか防げない攻撃に対しても,安全な構成とすることができる [22]。
もっとも,鍵共有処理を複数回行うことに起因し,処理量及びデータ転送量が増加するため,その増加に対応できる
ように情報システムや通信プロトコルの修正が必要となりうることには注意が必要である。
2.3 PQC 導入へのアプローチ
2.2 節でも記載したようにCRQC の実現時期(又は実現までの期間 Zは不透明ながらX や Y の値が大きな情報
システムにおいては,何らかの対応を取ることが望ましい。また,本章冒頭で記載したように,情報システムに耐量子
計算機性を持たせる手段は,耐量子計算機性を持つ公開鍵暗号方式の導入だけではないものの,スケーラビリティを考
慮すると耐量子計算機性を持つ公開鍵暗号方式の利用が有望である。本節では,耐量子計算機性を持つ公開鍵暗号方式
への暗号移行を念頭に,その暗号移行を円滑に行う上での考慮事項について概説する。
*9 TLS における [13, 22]CMS における [16] 等が当該アプローチとして挙げられる。
26
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 を利用する攻撃を行うための前提条件の難易度(攻撃対象である暗号化データ取得の難易度や,そのデータを
利用した攻撃の難易度)等の把握が有用である。
この優先順位付けに先駆けて,過剰な保護期間が設定されている情報の保管期間短縮,不要な情報の消去,公開可能
な情報の公開等を併せて実施する事も望ましい。このような処理によりX の短縮が期待でき,暗号移行の対象となる
システムを削減する効果が期待される。
暗号移行に際しては,速やかに PQC に暗号移行するというアプローチと,あらかじめクリプトグラフィック・アジ
リティ [12]*10 を向上させつつ,ある程度以上のクリプトグラフィック・アジリティを達成した上で暗号移行するとい
うアプローチが存在する。
クリプトグラフィック・アジリティが向上するとY や X の値が小さくなる。このため例えばPQC の評価が十
分にされておらず,暗号移行開始の妨げとなっている期間においては,当面の間はクリプトグラフィック・アジリティ
向上に努めるというアプローチも一定の合理性があるものと考えられる [26]。
*10 暗号方式を変更可能とする性質。2.3.2 節参照。
27
2.3.2 クリプトグラフィック・アジリティの重要性
クリプトグラフィック・アジリティは,文脈によって捕捉範囲が異なり,それに伴って異なる意味合いを持つことが
ある [2]。しかしながら,それらに通底している性質として,暗号アルゴリズムや暗号プロトコルをより迅速に変更で
きる点が挙げられる。
暗号移行においては,暗号移行の対象となる情報システムの暗号部分が,情報システムにハードコードされている場
合には,暗号アルゴリズムの変更が困難である。このような状態は「クリプトグラフィック・アジリティを持たない」
と表現することができる。
他方で,標準プロトコルを採用する情報システム,暗号モジュールにも標準プロトコルを利用している情報システ
ム,その API が適切に定義されている情報システム,相互運用性が確保されている情報システム,及び暗号回路を含
むファームウェアアップデートをオンラインで実施できるように設計されている情報システム等では,その暗号移行に
要する時間は比較的短くなりX Y > Z となる可能性も低くなる。X 及び Y の値が十分に低く,所定の目標期間以
内に暗号移行が可能なシステムは,「クリプトグラフィック・アジリティを持つ」と表現することができる [2, 25]。
クリプトグラフィック・アジリティを持たせるための対応はPQC の実装とは独立して実施することが可能である
[3]。またより短い期間での暗号移行を行うことが可能となれば移行プロセスを開始するまでの猶予期間Z X Y
をより長くすることが期待される。
PQC への暗号移行を実施するにあたっては,まずは暗号移行を長期化する要素を排除することを試み,情報システ
ムにおける暗号プロトコルの変更をより迅速にできるようにシフトさせていく対策,すなわちクリプトグラフィック・
アジリティを確保する対策を併せて実施することが効果的である [2, 3, 25]。
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 の短縮
28
が期待できる [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 の短縮,情報システムの
暗号処理の実装の置き換えに要する期間 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]。
29
第 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 閲覧).
30
[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 閲覧).
[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
閲覧).
31
第3章
格子に基づく暗号技術
本章では格子に基づく暗号技術についてまとめる。格子に基づく暗号技術の安全性はLWE (Learning with Errors)
問題LWR (Learning with Rounding) 問題NTRU 問題,およびそれらの変種等を含む,格子理論に関係する問題
を解く計算の困難性に依存している。
3.1 格子に基づく暗号技術の安全性の根拠となる問題
3.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)
が与えられたとする。(この数値例は [89] から引用した。) ただし,各線形方程式の値は近似値であり,その誤差はこ
の例では ±1 以内と仮定する。このとき,この連立線形近似方程式の解 s を求めるのが LWE 問題である。ここに示し
た数値例では s = (0, 13, 9, 11) ∈ Z417 が解となる。LWE 問題で注意すべきことは, 連立線形近似方程式に誤差がない
場合はGauss の消去法により効率的に解を求めることができる点である。逆に言うと,連立線形近似方程式で与えら
れる誤差の大きさが LWE 問題の求解を困難にする。
3.1.2 NTRU 問題の紹介
ここではNTRU 問題を紹介する。
定義 3.1 (NTRU 問題 [56]) 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 問題という。
33
X
n1
NTRU 問題における多項式 ϕ の選び方として,ϕ = xn ± 1, xn x 1, xn xn/2 + 1, xi などがある [6, Table
i=0
1]。(最後の ϕ のみ,次数は n 1 である。) また,多項式 f (または g) の選び方として,{1, 0, 1} などの小さい係数
を持つ多項式や,小さい素数 p と係数が小さい多項式 F に対し f = pF または f = pF + 1 と選ぶことが多い。
3.1.3 格子問題の公開チャレンジの求解状況
SVP や LWE に対する求解アルゴリズムをテストする目的でドイツ・ダルムシュタット工科大学によって「SVP
チャレンジ」・「LWE チャレンジ」と呼ばれる求解コンテストがインターネット上で開催されている [32]。2018 年に,
ふるい
篩 をベースとした高速な格子アルゴリズム群である General Sieve Kernel (G6K)[8] が提案されSVP チャレンジ・
LWE チャレンジの求解記録が飛躍的に更新された。具体的にはSVP チャレンジにおいてはG6K 内の篩アルゴリ
ズムを GPU 実装することで180 次元の SVP インスタンスが 4 基の NVIDIA Turing GPU と 1.5TBytes の RAM
を搭載した計算機を用いて 51.6 日で求解されたと 2021 年 2 月に報告されている [41]。
(ただし,本報告では Gaussian
Heuristic で期待される最短ベクトル長に対する近似因子が 1.04002 なので,今回見つかった格子ベクトルは 180 次元
SVP インスタンスの厳密解ではなく近似解である。)また 2023 年 7 月に186 次元の SVP インスタンスに対して,次
のスペックを持つ計算機システムで約 50 日程度で近似因子が 1.01405 の非常に短い格子ベクトルを見つけることに成
功している計算時間の内訳はProgressive pnj-BKZ による基底簡約に 12.3 日Sieving に短い格子ベクトルの探索
に 38 日かかったと報告されている)[33]。
• 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 時間で求解されている [104]
• CPUAMD EPYC 7002 Series 128@2.6GHz
• RAM1.5TB
• 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 を搭載している。
34
3.2 格子に基づく代表的な暗号方式
3.2.1 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 らによって提案されている [53]。以下にその方式を示す。次のパラメータを準備
する。
• m, n : 正の整数 (セキュリティパラメータ)
• hash(M ): 暗号学的ハッシュ関数
• q : 素数
• L = m1+ϵ , (ϵ > 0) : 秘密鍵の Euclide ノルムの上限
以下に具体的な署名方式を示す。
鍵生成 一様ランダムに A ← Zn×m
q を生成する。[53] のサンプリング手法を用いて,Λ⊥
q (A) から短いベクトル S を生
成する。具体的には ||S|| < L かつ SAT ≡ 0 mod q を満たす。秘密鍵を S ,公開鍵を A とする。
署名生成 メッセージ M のハッシュ値 H = hash(M ) を乱数のシードとして DZm ,s からサンプリングを行う。その
値を u とする。tA = u mod q を満たす t を任意に求める。秘密鍵 S を用いてt に近い格子 Λ⊥
q (A) 上の点
v を求め,σ = v + t とする。σ を署名として出力する。
署名検証 メッセージ M にハッシュ関数を作用させた値 h = hash(M ) を DZm ,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) 安全であることが示されている。
3.2.2 Fiat-Shamir 署名方式の格子問題への拡張
Fiat-Shamir 変換 [49] に基づく署名方式を総称して Fiat-Shamir 署名と呼ばれており,現在までさまざまな方式が
提案されている。以下に基本となる方式の一つである素因数分解問題をベースとする方式を記す。合成数 n = pq (p, q
は素数) を法とするべき乗剰余演算 g(x) = g x mod n を一方向性関数として利用し,秘密鍵 s公開鍵 a = g(s) を
35
準備する。
• M : メッセージ
• h = hash(M ): 暗号学的ハッシュ関数
• r : ランダムな値
• (z, y) = (g(r)h + s, g(r)) : 署名
• g(z) = ar y が成り立つかを確認 : 署名検証
Lyubashevsky [68] によって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 の困難性と等価であることが示されている。
3.3 格子に基づく主要な暗号方式
本節では,格子に基づく主要な暗号方式として,表 3.1 に挙げる公開鍵暗号と 2 つの署名を取り上げ,その概要と設
計原理を説明する。
格子を用いた主な公開鍵暗号の構成として,最初期の Ajtai-Dwork 型 [3]GGH 型 [54] から近年の [88] による LWE
型 (Regev 型)[53, 65] に代表される dual-LWE 型,[56] に代表される NTRU 型が存在する。格子を用いた署名の構
成としては主に GGH/NTRUSign 型 [54, 56]Fiat-Shamir with abort 型 [68, 69]Hash-and-Sign 型 [53, Sect. 6]
36
Plantard-Susilo-Win 型 [84] 等が知られている*1 。
また安全性の根拠となる計算問題に関しても最短ベクトル問題に直接還元するものLWE 問題SIS 問題LWR
問題およびそれらの Module 版Ring 版へと還元するものNTRU 問題に還元するものへと分類できる。
表 3.1: 格子に基づく暗号の分類
文献 暗号化 鍵交換 署名
ML-KEM (FIPS 203) [80] ○ ○
ML-DSA (FIPS 204) [79] ○
FALCON [52] ○
• ML-KEM は CRYSTALS-Kyber に基づく dual-LWE 型の公開鍵暗号であり,安全性の根拠に xn + 1, n = 2k
の形の多項式により定義される環上の Module-LWE 問題の困難性を置いている。NIST により FIPS 標準アル
ゴリズムとして制定されたことから,取り上げる。
• ML-DSA は CRYSTALS-Dilithium に基づく Fiat-Shamir 型の署名方式でありx256 + 1 を定義多項式とする
環上の Module-LWE 問題の計算困難性を安全性の根拠としている。環の性質を用いた数論変換による高速処理
とサイズの圧縮が可能であり,公開鍵サイズと署名サイズの和を最小化することを目的としてパラメータ設計を
行っている。NIST により FIPS 標準アルゴリズムとして制定されたことから,取り上げる。
• FALCON は Hash-and-Sign 型の署名方式でありxn + 1 を定義多項式とする NTRU 格子上の SIS 問題の困
難性を安全性の根拠としている。格子上の高速フーリエサンプリングを用いた高速な署名生成を特徴とし,方式
提案後も数多くの改良が提案されていることから取り上げる。
3.3.1 FIPS 203Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM)
KEM とは公開されたチャンネル上で 2 者が秘密を共有するアルゴリズム群である。KEM で安全に生成された
共有の秘密は共通鍵暗号で用いられ暗号や認証などの安全なやり取りの中で重要な役割を果たす。ML-KEM [80]
は 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
*1 この分類に関しては例えば [58, Sect. 3][47, Sect. 5.5] 等を参照。
37
の暗号パラメータについては,後述の 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
ただし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
 b     
 f2   fe (ζ 3 )  
 f2 
   fb3    
fo (ζ 3 )
 
 f3
 b     
 f4  =  fe (ζ )  = B  5 
 f4  ,  fb5 =  
fo (ζ 5 )
 = B 
 f5
    
 ..   
.. 
 .. 
  ..    ..  ..
 .  . .   .   .  .
2N 1 2N 1
fb2N 2 fe (ζ ) f2N 2 fb2N 1 fo (ζ ) f2N 1
38
が成り立つ。つまりf ∈ Rq の偶数と奇数の次数の係数ベクトルはそれぞれ B による線形変換(つまり,離散フーリ
エ変換)で fb ∈ Tq の偶数と奇数の添え字番号のベクトルに写る。B の逆行列は C := N
1
A(ζ 1 ) なので,式 (3.1) の
NTT 写像の逆写像 NTT1 は行列 C を用いて計算可能である(つまり,逆離散フーリエ変換から計算可能)。
■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
g2i + gb2i+1 X)i=0 ∈ Tq の積を
, gb = (b
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 b ◦b
s+b
k1 b
t=A e= j=0 A[i, j] ◦ b
s[j] + b
e[i] ∈ Tqk NTT 空間上で LWE 関係式を生成
  0≤i<k
8. ekPKE = bt, ρ , dkPKE = b
s公開鍵行列 A b は ρ から復元可能であることに注意)
9. (ekPKE , dkPKE ) を出力
39
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 で生成した σ を乱数シードとし,以下の順序で実行される。
(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 + e1 = 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の情報が洩れない。また
40
テップ 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)) を出力
 多項式表現の 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 はハッシュ関数
41
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))
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.2 FIPS 204: Module-Lattice-Based Digital Signature StandardML-DSA
ML-DSA [79] は 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 の構成と処理概要について説明する。
42
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 問題を解くのは計算量的に非常に困難である。
43
■ML-DSA 署名生成 署名生成アルゴリズムFIPS 204, Algorithm 7では秘密鍵 sk と平文 M を入力として,
平文に対応する署名 σ を次のように出力する。
• 入力:秘密鍵 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 のハッシュ値
44
3. µ = H(trkM ):秘密鍵の一部 tr と平文 M から定まるハッシュ値
4. c = SampleInBall(c̃)
 ∈ Rq :各係数を {1, 0, 1} からサンプルする 
1 b
5. wApprox = NTT A ◦ NTT(z) NTT(c ) ◦ NTT(t1 · 2d ) = Az c t1 · 2d ∈ R q
ただしd は上位と下位ビットを分割する閾値)
6. w1 = UseHint(h, wApprox
):署名生成時のコミットメントを復元
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 のランダム列としてサンプリ
45
ングされる。一方ML-DSA では,ρ′ は署名者の秘密鍵,メッセージ,と Approved RBG*2 から生成された
256bits の文字列 rnd から生成される。またML-DSA 標準ではrnd が 256bits の定数文字列である optional
deteministic version を許可している。
3.3.3 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 名を開発者として提出された [51]。その後修正が加えられ,現在の最新版は 2020 年 10
月に公開された v1.2[52] である。以下の記述はこの仕様書に従う。
参照 URL: 開発者による公式ページ https://falcon-sign.info/ を参照した。
設計原理: FALCON は多項式 xn + 1, n = 2k により定義される NTRU 格子上の SIS 問題の困難性を安全性の根拠と
した格子ベースの署名方式であり,形式的には Gentry ら [53] の Hash-and-Sign 型の格子ベース署名をひな型として
いる。高速フーリエサンプリングを用いるため,定義多項式の次数を 2k の形としていることからパラメータ選択の自
由度に制限がありNIST PQC 標準化プロジェクトの提案方式では安全性レベル 1 および 5 のパラメータセットのみ
が提案されている。
アルゴリズムの詳細: 表 3.43.53.6 にGentry ら [53] の 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 で定義する*3 。ただしζk := exp((2k + 1)πi/n)。逆演算を invFFT : Rn → R[x]/(ϕ) で
示す。変換,逆変換ともに標準的な高速フーリエ変換の手法が利用可能である。コンピュータ上での計算には浮
動小数点演算を用いるため,実行環境ごとに差が出ないように IEEE754 で規定される浮動小数点の表現と演算
を用いることが指定されている。
多項式を成分とするベクトル,行列に対しても FFT は成分ごとのフーリエ変換と定義しinvFFT も適切な切り
分けにより実数成分の行列,ベクトルから多項式成分の行列,ベクトルへ変換するものとする。
また,演算 FFT(f ) FFT(g) を成分ごとの積と定義する。FFT 表現での多項式の積 FFT(f g) の計算に対応
する。
• HashToPoint(str, q, n): ビット列 str を多項式 c ∈ Zq [x]/(ϕ) に SHAKE256 ハッシュ関数を用いて写像する。
• Compress, Decompress: 多項式 s ∈ Z[x] を文字列に変換する関数とその逆関数とする。
*2 NIST SP 800-90 シリーズ [13, 97, 14] で規定されたランダムビット生成器 (Random Bit Generator: RBG) を指す。
*3 数式上は差が無いが高速フーリエ変換による実装を行ったサブルーチンも同じ記号で示すためFast Fourier の意味で FFT と名づけられて
いる。
46
• NTRUGen(ϕ, q): 計算が行われる環 Zq [x]/(ϕ) を指定するパラメータを入力とし,秘密鍵 B̂ の元となる多項式
f, g, F, G を出力する。このときf, g は係数が離散 Gauss 分布の n 次多項式F, G は f G gF ≡ q mod ϕ
を満たすように計算される。
表 3.4: Hash-and-Sign 型格子ベース署名および FALCON における鍵生成関数の比較
Gentry らの格子ベース署名 [53, Sect. 7.1] FALCON[52, 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 フレームワーク [53] における行列 A, B と捉
えると,    
1 g f
A= , B= (3.4)
h G F
と表現することができる。このとき,行列 A は多項式 h の情報のみで表現可能であるためpk = h となる。
また,署名の生成には sA ≡ H(m) を満たす短いベクトル s を生成する必要があり,効率化のため Ducas-Prest[40]
の高速フーリエサンプリングを用いる。サンプリングアルゴリズムに必要な情報が B の FFT 表現
 
FFT(g) FFT(f )
FFT(B) = (3.5)
FFT(G) FFT(F )
およびそれを元にした LDL 木と呼ばれる木構造 T である。木の中には B̂ のグラム行列 G = B̂ × B̂ ⋆ の*4 LDL 分解
における L の情報が格納され,それを用いて Babai の最近平面アルゴリズムの高速化および離散 Gauss 分布の高速
なサンプリングが可能となる。サンプリングを行うための付加情報として,木の全ての葉にある値を leaf.value から
σ/ leaf.value に書き換えることで鍵生成が完了する。
表 3.5 の署名生成関数の説明を記述する。平文にランダムビット r を結合した後HashToPoint 関数で多項式
c ∈ Zq /(ϕ) を出力する。関係式 (3.3), (3.4) より,ベクトル t̂ は (FFT(c), FFT(0))B̂ 1 と等しい事がわかる。これら
の情報を用いて,署名ベクトルのサンプリングを行う。
*4 B ⋆ は体 Q[x]/(ϕ) におけるエルミート共役。詳細は [52, p. 23]
47
表 3.5: Hash-and-Sign 型格子ベース署名および FALCON における署名生成関数の比較
Gentry らの格子ベース署名 [53, Sect. 7.1] FALCON[52, 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)
関数 ffSamplingn は,離散 Gauss 分布のサンプリングを行いFFT 表現で出力するサブルーチンである。具体的に
は,整数ベクトル z ∈ Z2n をt = [c, 0]B 1 を中心として exp(k(z t)Bk2 /2σ 2 ) に比例した確率でサンプリング
を行う。実装の効率化のため,実際には近似を行っている [52, 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.6 の署名検証関数の説明を記述する。平文,ハッシュ関数のシード値,署名文字列から各要素を復元し,
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 分
布の大きさを指定するパラメータで,大きくとることで安全性が上がるがエラー率が上がる。β は署名ベクトルの長さ
の上限を指定するパラメータで,大きくとることで署名生成時のやり直し回数が下がるが,安全性が低下する。
48
表 3.6: Hash-and-Sign 型格子ベース署名および FALCON における署名検証関数の比較
Gentry らの格子ベース署名 [53, Sect. 7.1] FALCON[52, 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.7: FALCON のパラメータ [52, Table 3.3], [4, Table 8] 公開鍵,秘密鍵,署名サイズの単位はそれぞれ Byte であ
る。
(n, q, σ, bβ 2 c) 安全性レベル 公開鍵サイズ 秘密鍵サイズ *5 署名サイズ
( 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[50]Gauss 分布の代わりに中心二項分布とした Peregrine [93],実装が複雑な高
速フーリエサンプリングを環上の CVP アルゴリズムをベースとしたより単純なものに置き換えた Mitaka [44] などが
存在する。Peregrine は韓国の耐量子計算機暗号公募 KpqC[106] へと提出されているものの,同じ秘密鍵から生成し
た署名に対する統計的攻撃法による実時間での鍵復元手法が知られている [64]。
またFALCON では環の定義多項式が ϕ(x) = xn + 1, n = 2k の形に制限されていることから安全性レベル 1,5 の
パラメータのみが提案されていたがNTRU 格子をモジュール格子とすることでパラメータ設定の多様性を確保した
Mod Falcon [26] も存在する。
Mitaka 内で用いられる離散 Gauss 分布生成アルゴリズムは実装が比較的単純である反面,生成された鍵および署名
ベクトルのノルムが大きく鍵長と署名長が長いという欠点があった。近年では Antrag[78] が両者の中間的な手法とし
FFT 表現でのサンプリングを通じて鍵生成における離散 Gauss 分布のノルムを下げ鍵長と署名長を短くする戦略
を取っている。またSOLMAE[60] も同様のサンプリング手法を用いた上で,エラーベクトルの圧縮表現などを用い
*5 秘密鍵サイズは仕様書には掲載されていないがNIST の第 3 ラウンド報告レポート [4, Sect. D] を参照した。
49
て署名長を短縮する技術 [46] と組み合わせ KpqC へと提案されている。
補足情報: 2022 年に NIST より標準化がアナウンスされ,将来的に NIST FIPS 206 (FN-DSA) として出版される予
定であるが,他の格子暗号方式 (FIPS 203 および 204) と比較して発表が遅れている。これは基準となる仕様書版 [52]
からの修正箇所 [86] が多いことが原因であると考えられる。
鍵生成および署名生成アルゴリズムの中で浮動小数点演算が用いられているため実行環境ごとの結果の不安定性,定
数時間での実装が難しいことによるタイミング攻撃の可能性がある。対策として固定小数点を用いた実装への変更が検
討されている [86, p. 13]。
またML-DSA と比較して beyond unforgeability [30] の性質を完全には持たないことから,署名生成におけるハッ
シュ値の計算方法の変更が検討されている([86, p. 15] および [43] を参照)。
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 として公開されている [80, 79]。またCRYSTALS-Kyber
と CRYSTALS-Dilithium は 2022 年 9 月に米国国家安全保障局の Commercial National Security Algorithm Suite
2.0 (CNSA2.0) にも選定されている [1]。NIST PQC 標準化プロジェクトの選考プロセスから漏れた方式の中でも,
米国以外の公的機関において推奨暗号とされているものが存在する。一例としてFrodoKEM が 2020 年 8 月よりド
イツ情報セキュリティ庁 (BSI) の推奨暗号に [92]2022 年 1 月にはオランダ通信・安全委員会 (NLNCSA) により最
も安全な暗号の例として推奨されている [10]。Google 社の Chrome ブラウザにはTLS レイヤーの性能試験目的で搭
載された耐量子計算機暗号プロトコル CECPQ1[21] および CECPQ2[87] にそれぞれ NewHope の USENIX 発表バー
ジョン [9] と NTRU が実装されていたが2023 年 1 月現在ではともに削除されている。IBM 製テープドライブのプロ
トタイプとしてCRYSTALS-Kyber と CRYSTALS-Dilithium の組み合わせにより暗号化を行うものが制作されて
いる [63]。DNS サーバの一種である PowerDNS において,耐量子計算機性を実現する署名として FALCON のテスト
用の実装が行われている [55]。オープンソースライブラリへの導入としてWireGuard VPN protocol への SABER
の実装 [59]WolfSSL への CRYSTALS-KyberFALCON の実装 [102]OpenSSH への Streamlined NTRU Prime
の実装 [81] などが存在する他Open Quantum Safe (OQS) プロジェクトによる liboqs ライブラリには暗号化・鍵交
換の方式として CRYSTALS-KyberNTRUSABERFALCONFrodoKEMNTRU-Prime が,署名方式として
CRYSTALS-Dilithium と FALCON が実装されている [91]。このように格子に基づく暗号技術の社会実装が徐々に進
みつつある。特に,標準化が先行する CRYSTALS-KyberCRYSTALS-Dilithium に対するサイドチャネル攻撃とそ
の対策としてマスキング実装が検討されている [94, 99, 27]。
格子に基づく暗号技術の安全性の根拠となる問題としては,先に挙げた LWE 問題Ring-LWE 問題NTRU 問題
以外にも Compact LWE 問題Module-LWE 問題LWR 問題BDD 問題SIS 問題他,多くのバリエーションが
存在している。一般的な格子問題を解く手法としてはLLL アルゴリズムBKZ アルゴリズムなどの基底簡約アルゴ
リズムや,篩型のアルゴリズムが集中的に研究されている。格子に関する計算問題の間数多くの帰着関係が知られてお
それらを用いて計算問題の困難性評価が行われている。SVP や LWE/NTRU などの格子問題の解析やそれらの求
50
解アルゴリズムに関する最新研究については [20, 16, 48, 66, 90, 75, 31, 96, 34, 76, 85, 23, 64, 18, 29] を参照。近年,
新しい格子問題として格子同型問題 [42] が提案された。(格子同型問題の性質については [15] を参照。)また,格子同
型問題の困難性を安全性の根拠とする署名方式 HAWK[39] はNIST PQC 標準化プロジェクトにおける署名方式の追
加公募において,格子に基づく方式の中で第 2 ラウンドにおいて進むことが許された方式である2024 年 10 月時点)
さらに,量子紛失 LWE サンプリング [35] や,格子問題に対する量子アルゴリズムに関する研究 [25, 28] も近年進展し
ている。
格子問題の困難性をベースとした暗号方式で最初のものはAjtai[2] により 1996 年に行われたSIS 問題が格子問
題の最悪時と同等かそれ以上に困難であることの証明およびそれを用いた暗号学的ハッシュ関数の構成である。また,
1997 年には Ajtai と Dwork[3] によりunique SVP の最悪困難性を安全性の根拠とした公開鍵暗号が提案されてい
る。この公開鍵暗号方式は翌年Nguyen らによる解読実験 [77] により必要なパラメータが長大となり実用的でないこ
とが明らかにされたものの,その後の格子に基づく暗号構成の基礎となっている。
1996 年に Hoffstein らによって提案された NTRU 暗号 [56]*6 は,発表当初安全性証明が付けられておらず,攻撃と
修正が繰り返されていたが2011 年 Stehlé ら [95] によりIND-CPA 安全性が Ring-LWE 問題に帰着可能な方式が
示された。一方で2016 年には subfield attack[5] のような体の構造を使って格子の次元を圧縮する攻撃も提案されて
おり暗号の構成のためには次元や法の大きさだけでなく環・体の構造にも注意を払う必要がある。NTRU 格子上
の署名方式のサイズ改良 [46]・トラップドア生成 [45] やNTRU に対する鍵ミスマッチ攻撃の改良 [67]・NTRU 格子
の簡約 [12] に関する最新の研究がある。
2005 年に Regev[88] により提案された LWE 問題は,論文発表と同時にそれを暗号の安全性根拠として保障する重
要な三つの性質が示された。一つは問題の average-case to worst case reductionつまりパラメータを固定した際
題の (秘密ベクトル s に関する) 平均的な計算量が,最悪計算量 (難しいインスタンスを生成するような s の集合に対
する計算量) と多項式倍の違いしか無いことであり,残りの二つは判定 LWE と探索 LWE の等価性,および量子アル
ゴリズムによる困難な格子問題への還元である。これらの定理を組み合わせることによりRegev 自身により提案され
た公開鍵暗号を解読することが平均的に難しいことが示され,その後の様々な LWE ベース暗号の構成の基礎なった。
LWE 格子問題への還元に関して2013 年には古典計算機による還元も示されている [22]。
LWE 問題の欠点である鍵サイズの大きさを改善するため2010 年には Lyubashevsky ら [70, 71] により Ring-LWE
問題が2015 年には Langlois ら [62] により Module-LWE 問題が公開鍵暗号と同時に提案されLWE 問題におけ
る関係と類似の,解読の平均的な困難さが証明されている。一方で,これらの変種とオリジナルの LWE 問題との関
係性は自明ではなく,同程度の難しさを持つかどうかは未解決問題である。一般的に Ring(Module)-LWE 問題のイ
ンスタンスは LWE 問題のインスタンスとして書きなおすことができるためLWE 問題は Ring(Module)-LWE 問
題よりも困難であるという関係は自明であるが,逆の関係は知られていない。法 q が大きい場合にはRing-LWE は
Module-LWE よりも困難であることが知られている [7]。Ring/Module LWE 問題の理論解析の最新研究について
[100] を参照。)
実装時の問題として,離散 Gauss 分布を正確に生成することは難しいことが挙げられる。ノイズをある整数区間か
ら一様分布として取った場合でも,格子問題へと量子帰着が可能であることが 2013 年に Döttling ら [38] により示さ
れた。この方向性の研究としてBai ら [11] により提案された,理想的な Gauss 分布を用いた暗号方式とそれを近似
的な分布に置き換えた方式の間での安全性の低下を Rényi エントロピーを用いて議論するものがある。
格子に基づく暗号技術は,耐量子計算機暗号としてだけでなく,完全準同型暗号や多重署名などの高機能な暗号方式
に応用する研究も数多くある [17, 19, 83, 101, 37, 105, 82, 72, 24, 61, 36, 57, 73, 74]。
*6 文献上は 1998 年の国際会議 ANTS だが,初出は CRYPTO1996 の Rump Session である。
51
また格子問題の計算機による具体的な求解に関して2016 年より暗号解読コンテスト LWE Challenge[32] が開催
されている。3.1 節に2024 年 11 月現在の状況について記載した。特に 3.3 節で示された各暗号方式のパラメータか
ら見ると,解が得られている値からは,大きな隔たりがみられる。格子に基づく暗号技術は,各方式毎にパラメータ設
定手法に対する制約が異なっていることから,解読コンテストのサイズに基づく解読到達レベルを,具体的な暗号方式
の安全性の根拠とすることは,難しいところではあるものの,古典計算機での解読困難性を測る上での検討の一つに値
すると考えられる。(最新の BKZ の改良や LWE の解読計算量見積もりについては [98, 103] を参照)
格子に基づく暗号技術の安全性の根拠となる問題は,古典計算機・量子計算機のいずれにおいても現時点で効率的な
解読手法は見つかっていないが,格子に基づく暗号技術は未だ研究途上にあり,今後も研究の進捗を注視する必要が
ある。
52
第 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. 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.
[6] 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.
[7] M. R. Albrecht, A. Deo. Large Modulus Ring-LWE ≥ Module-LWE. ASIACRYPT (1). Vol. 10624. Lecture
Notes in Computer Science. Springer, 2017, pp. 267296.
[8] 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.
[9] E. Alkim, L. Ducas, T. Pöppelmann, P. Schwabe. Post-quantum Key Exchange - A New Hope. USENIX
Security Symposium. USENIX Association, 2016, pp. 327343.
[10] 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 閲覧).
[11] 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.
[12] 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.
53
[13] 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.
[14] 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 閲覧).
[15] 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.
[16] 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.
[17] 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.
[18] 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.
[19] 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.
[20] 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.
[21] M. Braithwaite. Experimenting with post-quantum cryptography. https://security.googleblog.com/
2016/07/experimenting-with-post-quantum.html. 2023-04. 2024-03-04 閲覧).
[22] Z. Brakerski, A. Langlois, C. Peikert, O. Regev, D. Stehlé. Classical hardness of learning with errors.
STOC. ACM, 2013, pp. 575584.
[23] 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.
[24] 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.
[25] 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.
[26] C. Chuengsatiansup, T. Prest, D. Stehlé, A. Wallet, K. Xagawa. ModFalcon: Compact Signatures Based
On Module-NTRU Lattices. AsiaCCS. ACM, 2020, pp. 853866.
[27] 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.
[28] 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.
[29] 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.
54
[30] 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.
[31] 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.
[32] TU Darmstadt, UC San Diego. LWE Challenge. https://www.latticechallenge.org/lwe_challenge/
challenge.php. 2024-03-04 閲覧).
[33] TU Darmstadt, UC San Diego. SVP Challenge, Hall Of Fame. https://www.latticechallenge.org/svp-
challenge/halloffame.php. 2024-03-04 閲覧).
[34] 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.
[35] T. Debris-Alazard, P. Fallahpour, D. Stehlé. Quantum Oblivious LWE Sampling and Insecurity of Standard
Model Lattice-Based SNARKs. STOC. ACM, 2024, pp. 423434.
[36] 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.
[37] 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.
[38] 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.
[39] 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.
[40] L. Ducas, T. Prest. Fast Fourier Orthogonalization. ISSAC. ACM, 2016, pp. 191198.
[41] 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.
[42] 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.
[43] S. Düzlü, R. Fiedler, M. Fischlin. BUFFing FALCON without Increasing the Signature Size. IACR
Cryptol. ePrint Arch. (2024), p. 710.
[44] 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.
[45] 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.
[46] 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.
55
[47] 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 閲覧).
[48] 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.
[49] 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.
[50] 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 閲覧).
[51] 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 閲覧).
[52] 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 閲覧).
[53] 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.
[54] 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.
[55] 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 閲覧).
[56] 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.
[57] 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.
[58] 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.
[59] A. Hülsing, K.-C. Ning, P. S., F. Weber, P. R. Zimmermann. Post-quantum WireGuard. SP. IEEE, 2021,
pp. 304321.
[60] 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 閲覧).
[61] R. W. F. Lai, G. Malavolta. Lattice-Based Timed Cryptography. CRYPTO (5). Vol. 14085. Lecture Notes
in Computer Science. Springer, 2023, pp. 782804.
[62] A. Langlois, D. Stehlé. Worst-case to average-case reductions for module lattices. Des. Codes Cryptogr.
Vol. 75, Num. 3 (2015), pp. 565599.
[63] M. Lantz. Worlds first quantum computing safe tape drive. https://www.ibm.com/blogs/research/
2019/08/crystals/. 2019-08. 2024-03-04 閲覧).
[64] 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.
[65] 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.
56
[66] 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.
[67] 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.
[68] 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.
[69] V. Lyubashevsky. Lattice Signatures without Trapdoors. EUROCRYPT. Vol. 7237. Lecture Notes in
Computer Science. Springer, 2012, pp. 738755.
[70] 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.
[71] 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.
[72] 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.
[73] 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.
[74] 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.
[75] 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.
[76] 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.
[77] P. Q. Nguyen, J. Stern. Cryptanalysis of the Ajtai-Dwork Cryptosystem. CRYPTO. Vol. 1462. Lecture
Notes in Computer Science. Springer, 1998, pp. 223242.
[78] 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 閲覧).
[79] NIST. Module-Lattice-Based Digital Signature Standard. NIST FIPS 204, https://nvlpubs.nist.gov/
nistpubs/FIPS/NIST.FIPS.204.pdf. 2024-08.
[80] NIST. Module-Lattice-Based Key-Encapsulation Mechanism Standard. NIST FIPS 203, https : / /
nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf. 2024-08.
[81] OpenSSH 8.9 was released on 2022-02-23. https://www.openssh.com/txt/release-8.9. 2024-03-04
閲覧).
[82] 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.
57
[83] 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.
[84] 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.
[85] A. Pouly, Y. Shen. Provable Dual Attacks on Learning with Errors. EUROCRYPT (6). Vol. 14656.
Lecture Notes in Computer Science. Springer, 2024, pp. 256285.
[86] 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 閲覧).
[87] The Chromium Projects. CECPQ2. https://www.chromium.org/cecpq2/. 2024-03-04 閲覧).
[88] O. Regev. On lattices, learning with errors, random linear codes, and cryptography. STOC. ACM, 2005,
pp. 8493.
[89] O. Regev. The Learning with Errors Problem (Invited Survey). CCC. IEEE Computer Society, 2010,
pp. 191204.
[90] K. Ryan, N. Heninger. Fast Practical Lattice Reduction Through Iterated Compression. CRYPTO (3).
Vol. 14083. Lecture Notes in Computer Science. Springer, 2023, pp. 336.
[91] Open Quantum Safe. Algorithms in liboq. https : / / openquantumsafe . org / liboqs / algorithms/.
2024-03-04 閲覧)
.
[92] 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
閲覧).
[93] 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.
[94] 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.
[95] 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.
[96] M. J. Steiner. The Complexity of Algebraic Algorithms for LWE. EUROCRYPT (3). Vol. 14653. Lecture
Notes in Computer Science. Springer, 2024, pp. 375403.
[97] 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.
[98] L. Wang. Analyzing Pump and Jump BKZ Algorithm Using Dynamical Systems. PQCrypto (1). Vol.
14771. Lecture Notes in Computer Science. Springer, 2024, pp. 406432.
[99] 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.
58
[100] 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.
[101] 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.
[102] 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 閲覧).
[103] 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.
[104] 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.
[105] 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.
[106] 量子耐性暗号研究団. KpqC. https://kpqc.or.kr/. (2024-12-06 閲覧).
59
第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 を得る。受信者
61
がハミング重み t までの誤り e を一意に訂正できるとき,符号の訂正能力が t であるという。一般にt ≤ b(d 1)/2c
が成り立つ。復号アルゴリズムには,符号の構造を用いる方式や,パリティ検査行列を用いる方式がある。後者の場
合,受信語 y に対して s = yH を計算する。s はシンドロームと呼ばれる。s = eH となることからs 6= 0 であ
れば,誤りを検出・訂正できる。
本稿では具体的な線形符号リード・ソロモン符号リード・マラー符号Goppa 符号)の詳細については扱わな
い。符号理論の教科書や,電子情報通信学会 知識の森 「1 群 2 編 符号理論」 [45] などを参照されたい。
4.1 符号に基づく暗号技術の安全性の根拠となる問題
本節ではSD 問題と LPN 問題およびその困難性について報告する。
4.1.1 SD 問題
SD 問題とは解のハミング重みが指定された条件のもとでF2 上の線形方程式を解けるかどうかという問題であ
る。また,[n, k]2 -線形符号において,パリティ検査行列とシンドローム,受信語に乗ったエラーのハミング重みが与
えられたときに,エラーを求める問題とみなすことができる。本問題は符号暗号の安全性の根拠として非常に重要であ
る。実際に, 4.3 節で説明する NIST PQC 標準化プロジェクトの第 4 ラウンドの 3 種類の符号暗号いずれの方式にお
いても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.2 SD 問題に対する評価
SD 問題の計算の困難性に関してBerlekampMcEliecevan Tilborg [6] によって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 問題の解読チャレンジを通して実時
間での計算量解析が進展している。
■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 を列挙すればよい。そのため,時間計算
*1 ここで H(p) = plog(p) (1 p)log(1 p)。
62
表 4.1: 確率 1/2 以上で SD 問題を解く場合の漸近計算量Full Distance Decoding の場合)
log(Time)/n log(Space)/n 備考
Pra62Lee-Brickel 0.121 [41, 27]
Stern89 0.117 0.0135 [43]
MMT11 0.112 0.0530 [31]; [21] によって空間計算量が改良された
BJMM12 0.102 0.0769 [5]
MO15 0.0967 0.0890 [32]
BM17 0.0953 0.0910 [11]; MO15 を最適化したもの
BM18 0.0951 0.0760 [10]; [12, 16] によって時間・空間計算量が修正された
Sieving ISD 0.101 0.0636 [15]
 
n
量は O となる。より効率的な手法としてPrange は Information Set Decoding と呼ばれる手法 [41] を提
w
案した。基本アイデアは以下である:
(nk)×n
1. 一様ランダムに H ∈ F2 の列ベクトルを入れ替えH̃ = HP とする。P ∈ Fn×n
2 は置換行列。)
(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
n nk
となる。期待計算量は poly(n, k) · O / となり,先ほどの列挙法よりも速くなる。
w w
Stern [43] 以降,空間計算量を犠牲にすることで時間計算量を引き下げる ISD の改良アルゴリズムが多数提案されて
いる。Both と May [10] による時間計算量の表を,表 4.1 に示す。この表は,時間計算量を最小化した場合の符号化
レート k/n の最悪時1/2 の少し下)の漸近計算量についてまとめられている。したがって,問題のパラメータによっ
ては,表の数値よりも速く解くことが可能となる。
近年は,漸近計算量のみならず,具体的なパラメータに対する SDn,k,w 問題を求解するために必要なビット計算量を
見積もる研究もなされている。EsserVerbelZweydingerBellini [20] はCryptographicEstimators と呼称する
符号暗号や多変数多項式暗号のビット計算量を推定するソフトウェアを開発した。Narisada ら [36] はBecker らの
ISD [5] の実用的な改良方式を提案しNIST PQC 標準化プロジェクト第 4 ラウンドの 3 種類の符号暗号のビット計
算量と実時間の計算量を算出した。
■量子アルゴリズム 現在のところ多項式時間で SD 問題を解く量子アルゴリズムは提案されていない。しかし,量子
アルゴリズムを利用して,いくつかの古典 ISD を高速化する方法を Kachigar と Tillich [24] が提案している*2 。2024
年現在最良の漸近計算量が得られているのはBJMM 法 [5] の量子アルゴリズムである量子 BJMM 法であり,時間
*2 Kirshanova [26] が Kachigar と Tillich の結果 [24] の改良を提案していたが誤りがあったことが報告されている。そのため2024 年時
点でのベストな量子アルゴリズムは Kachigar と Tillich [24] であると考えられる。
63
計算量が 20.0587n ,空間計算量が 20.0188n となっている。
量子回路設計の研究に関しては,量子 Prange 法に対してPerrielloBarenghiPelosi [39] がグローバーのアルゴ
リズムを用いた量子回路を提案した。Esser ら [19] は,量子 Prange 法に対して,一部の演算を古典コンピュータ上で
行う量子と古典のハイブリッド法を提案した。PerrielloBarenghiPelosi [40] は,量子 Prange におけるガウスの消
去法の量子回路を改良しNIST PQC 標準化プロジェクト第 4 ラウンドの 3 種類の符号暗号の解読に必要な量子回路
の深さを最大で 230 削減した。ChevignardFouqueSchrottenloher [14] は,量子 Prange 法に対して,量子回路の
深さを犠牲にすることで量子ビット数を削減する深さと幅のトレードオフ手法を提案した。Stern の ISD [43] 以降に
提案されたリスト探索を伴う ISD については,グローバーのアルゴリズムと量子ウォーク探索を組み合わせた複雑な量
子回路が必要になると考えられている [24]。現在のところ,これらの量子 ISD に対する量子回路は提案されていない。
■現状の進展 格子の場合と同様に “Decoding Challenge”https://decodingchallenge.org/)というウェブサ
イトが作成された。実時間での計算量解析を通じて,符号に基づく暗号技術の信頼性を向上させることが目的である。
現在,以下 5 つのカテゴリが用意されている。
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 [35] を4 の結果についてはNarisada ら [36] を参照され
たい。235 についての詳細はDecoding Challenge 上に掲載されている各記録の詳細を参照されたい。
4.1.3 LPN 問題
LPN 問題とはF2 上の誤差付きの線形方程式を解けるかどうかという問題である。また,[n, k]2 -線形符号におい
生成行列と受信語が与えられたときにメッセージを復号する問題とみなすことができる。1993 年にBlum
FurstKearnsLipton [7] が困難と思われる問題として挙げ,定式化を行った。第 3.1.1 章において,この問題を Fq
に一般化した LWE 問題を既に扱っている。Berτ でパラメータ τ のベルヌーイ分布を表す。(確率 τ で 1確率 1 τ
で 0 となる F2 上の分布である。)また,自然数 k ≥ 1 についてBerkτ でBerτ から独立に k 個サンプルを取ったと
きの Fk2 上の分布を表す。
定義 4.2 (LPN 問題) Fk2 から一様ランダムに選ばれた秘密鍵 s およびエラー比 τ ∈ [0, 1/2) に対して,以下の LPN サ
ンプルを出力する LPN オラクルを考える。
(a, b) = (a, s · a + e),
64
ここで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.4 LPN 問題に対する評価
LPN 問題の計算の困難性に関してサンプル数を固定した場合NP 困難になることが BerlekampMcEliecevan
Tilborg [6] によって示されている*3 。またHåstad [23] により近似版 LPN 問題*4 の NP 困難性も示されている。し
かし,平均時の困難性についてはよく分かっていない。
LPN 問題の古典求解手法として,現在,大別して以下の 5 つのアルゴリズムが知られている。
1. ガウスの消去法に基づく手法 [13]
2. SD 問題における Information Set Decoding に基づく手法 [18]
3. BlumKalaiWasserman [8] の BKW アルゴリズムに基づく手法
4. AroraGe [4] の「再線形化」アルゴリズム
5. 2. と 3. を組み合わせたハイブリッド法 [18]
このうち,漸近的に時間計算量が最も小さい手法は BKW アルゴリズムであり,実用上最も高速な手法はハイブリッ
ド法である。以降で各手法の概要を説明する。
■ガウスの消去法に基づく手法 ガウスの消去法に基づく手法は2008 年に CarrijoTonicelliImaiNascimento
[13] によって初めて提案された LPN 問題に対する多項式空間・指数時間アルゴリズムである。この手法は指数回数の
LPN オラクルの呼び出しが必要であるがk 個の LPN サンプルを格納するメモリがあれば良いので,必要な計算資源
が少なく,実装が容易である。本手法の計算量は,時間計算量が poly(k) · O(2k ),空間計算量が O(k 2 ),サンプル数が
n = O(2k ) である。
■Information Set Decoding に基づく手法 LPNk,τ は任意のサンプル数 n に対して SD 問題SDn,k,τ n )に変換で
きるためLPN 問題は SD 問題の効率的な求解手法である Information Set Decoding を用いて解くことができる。
EsserKüblerMay [18] によって提案された実用的なアルゴリズムは,ガウスの消去法に基づく手法を拡張したもの
である。基本アイデアとして,ガウスの消去法に基づく手法は k 個の LPN サンプルのエラーが全て 0 の場合を考える
が,その拡張として n 個の LPN サンプルのうち k 個の LPN サンプルのエラーが全て 0 となる組み合わせを考える。
n = O(k 2 ) に設定することで,高い確率でこのような組み合わせが存在する。ガウスの消去法に基づく手法と比較し
LPN サンプルの数を O(2k ) から O(k 2 ) まで減らせる点が利点である。
*3 Ab自然数 w が与えられたときに,線形方程式 sa = bi を満たすハミング重み w 以下の s が存在するかどうかを判定する問題。
i
*4 A および b を与えられたときに,線形方程式 sa = bi を近似度×最大値以上満たす s を探索する問題。
i
65
アルゴリズムの概要はLPNn
k,τ 問題に対してSDn,k,τ n 問題を考えInformation Set Decoding (ISD) を用いて
SDn,k,τ n 問題を解くと言うものである [18]。ISD には様々な手法があるが, [18] においてMMT 法が実用上最適で
あることが示されている。本手法の計算量はISD の手法によって異なる関数 c(τ ) に対して,時間計算量が 2c(τ )k ,空
間計算量が O(k 3 ),サンプル数が O(k 2 ) である。
■BKW アルゴリズムに基づく手法 KW アルゴリズム [8] はLPN 問題に対する最も著名な手法である。基本アイデ
アは以下である。オラクルからのサンプル (a, b) が a = (1, 0, . . . , 0) という形であればb = s1 + e となる。このよ
うなサンプルを大量に集めればs1 を多数決法で求めることが出来る。一般に uj を j 番目の単位ベクトルとして,
(uj , b) という形のサンプルを集めれば sj を多数決法で求められる。そこでLPN オラクルからのサンプルを用いて,
このようなサンプルを生成することを目指す。BKW アルゴリズムはLPN サンプル同士の加算を実施することに起
因してノイズが増加する欠点がある。
BKW アルゴリズムの計算量は,時間計算量・空間計算量・サンプル数いずれも 2O(k/logk) である。よって,大きな
次元の LPN 問題に対してはメモリ量の増加が課題となる。その後Levieil と Fouque [28]Kirchner [25]Guo
JohanssonLöndahl [22]ZhangJiaoWang [44]Bogos と Vaudenay [9]EsserKüblerMay [18]Esser
HeuerKüblerMaySohler [17] などで改良やメモリと時間のトレードオフの議論がおこなわれている。
■AroraGe アルゴリズム Arora と Ge [4] は多変数多項式問題で古くから用いられている再線形化と呼ばれる手法を
用いてLPN 問題を解くアルゴリズムを提案した。このアルゴリズムをサンプル数 n の LPNk,τ 問題に用いた場合,
w = τ n としてpoly(k w ) 時間で解くことができる。poly(k w ) = 2O(τ nlogk) であるから,τ = o(k/(nlog2 k)) のよう
にエラーが疎であればBKW アルゴリズムよりも効率が良い。実際の符号暗号のパラメータ設定では,エラーをこの
ように疎に設定することはないため,暗号の攻撃アルゴリズムとして用いるには重要度が低い。
■Information Set Decoding と BKW を組み合わせたハイブリッド法 EsserKüblerMay [18] はBKW アルゴ
リズムと Information Set Decoding を組み合わせた実用上高速な手法を提案した。本手法の計算量はInformation
Set Decoding に基づく手法の計算量と BKW アルゴリズムに基づく手法の計算量との中間である。報告によれば,
k = 135, τ = 1/4 の LPN 問題に対して16 コアの CPU および 256GB の RAM を搭載したサーバ 1 台を用いて,
5.69 日での求解に成功した。またk = 243, τ = 1/8 の LPN 問題に対して,同じサーバ 1 台を用いて15.07 日で
の求解に成功した。また,暗号設計に用いられるパラメータを持つ LPN 問題に対して,空間計算量を現実的な値にセ
キュリティマージンを加えたものに制限260 bit = 128PBytes および 280 bit = 128ZBytesした時のビット計算量が
推定された。報告によればk = 512, τ = 1/8 の LPN 問題に対するハイブリッド法のビット計算量は 2102 であり,
k = 512, τ = 1/4 の LPN 問題に対するビット計算量は 2151 である。一方で,この空間計算量の範囲では BKW アル
ゴリズム [22] は動作しないと報告されている。
■量子アルゴリズム 現在のところ,多項式時間で LPN 問題を解く量子アルゴリズムは提案されていない。Esser
KüblerMay [18] は,上述する ISD に基づく手法やハイブリッド法に対して,グローバーのアルゴリズムや量子ウォー
ク探索を用いることで高速化できる点を指摘している。k = 512, τ = 1/8 の LPN 問題に対する量子ハイブリッド法の
ビット計算量は 269 でありk = 512, τ = 1/4 の LPN 問題に対するビット計算量は 2112 と推定されている。
4.2 符号に基づく代表的な暗号方式
本節では符号に基づく代表的な暗号方式の説明を行う。以下ではGLk (Fq ) で k 次の Fq 要素正則行列全体がな
す群を表す。またSn で n 次対称群を表す。Sn の要素である置換を GLn (Fq ) 中の置換行列と同一視する。
66
4.2.1 McEliece 公開鍵暗号方式
McEliece [33] が提案した古典的な暗号方式である。以下では 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 [37] が 1986 年に提案した。のちに McEliece 暗号と安全性が等価であることが示された。詳しくは
[29] を参照のこと。以下では q = 2 とする。
• k : 安全性パラメータ
• n : サンプルの個数
• t : 線形符号の誤り訂正能力
(nk)×n
鍵生成: 誤り訂正能力が t である [n, k]2 -線形符号のパリティ検査行列 H ∈ F2 を生成する。T ← GLnk (F2 )
を一様ランダムに選ぶ。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 以
67
表 4.2: 符号に基づく暗号の分類
文献 暗号化 鍵交換 署名
Classic McEliece [2]
BIKE [3]
HQC [34]
下であれば線形符号の復号によりe = eQ を得る。よって,高い確率で復号に成功する。平文 e およびパリティ
検査行列 H̃ が一様ランダムであれば,暗号文 d ∈ Fnk
2 はランダムな n k 次元のベクトルと見分けが付かないと考
えられている。またH̃ が一様ランダムであり,適切な t が選択されていれば,暗号文は統計的にランダムなベクト
ルと見分けが付かないとされている。一方で,オリジナルの Niederreiter 暗号は適応的選択暗号文攻撃CCAに対
して安全ではないため,次節で示すより安全な方式が提案されている。
4.3 符号に基づく主要な暗号方式
本稿では以下の暗号方式を取り上げる。いずれも NIST PQC 標準化プロジェクトにおいて第 4 ラウンドに進んだ
ものである。
1. Classic McEliece: Niederreiter 暗号を採用し,符号の構成が非常に保守的という観点からこれを取り上げる。
2. BIKE: Niederreiter 暗号を採用しQC-MDPC 符号を用いて鍵を圧縮している,という観点からこれを取り上
げる。
3. HQC: 符号版の LPR 暗号LyubashevskyPeikertRegev が 2010 年に提案した Ring-LWE 問題に基づく暗
号方式 [30] を LPN 問題に基づく方式に変更したものを採用Quasi-Cyclic 符号を用いて鍵を圧縮している,
という特徴からこれを取り上げる。
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 を考える。
68
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 [38] の暗号文サイズよりも小さい。例えば,[38, Table 3] によればML-KEM のレベル 1 の
公開鍵長は 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 である [38]。なお,いずれも Haswell
CPU 搭載のサーバ上で AVX 命令を使用した C 言語実装を動作させた時の記録である。他のパラメータに関しては,
仕様書を参照されたい。
4.3.2 BIKE
• 提案者: AragonBarretoBettaiebBidouxBlazyDeneuvilleGaboritGueronGüneysuAguilar
MelchorMisoczkiPersichettiSendrierTillichZémorVasseurGhoshRichter-Brokmann
• 基本方式の説明: Niederreiter 暗号方式に基づいている。基本となる符号に QC-MDPC 符号を採用し,公開鍵
サイズを圧縮している。そのため,鍵や暗号化は格子暗号の一種の NTRU 暗号と非常に近い形をしている点
が特徴である。具体的な符号化および復号の方法については提案方式の仕様書 [3] を参照のこと。以下では,
69
表 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
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) である。
鍵カプセル化:
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 を安全に共有することができる。
70
表 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.4 に鍵カプセル化方式のパラメータ鍵長暗号文長および復号エラー率をまとめた。3 つのパラメータセット
がそれぞれレベル 135 相当として提案された。BIKE-Level1 の速度に関しては,鍵生成が 589, 000 Cycle鍵カプ
セル化が 97, 000 Cycleデカプセル化が 1, 135, 000 Cycle であるSkylake CPU 搭載のサーバAVX 命令を使用)。
他のパラメータに関しては,仕様書を参照されたい。
4.3.3 HQC
• 提案者: Aguilar MelchorAragonBettaiebBidouxBlazyDeneuvilleGaboritPersichettiZémor
BosDionLacanRobertVeron
• 基本方式の説明: 符号版の LPR 暗号に基づき,公開鍵暗号を構成している。
R = F2 [X]/(X n 1) とする。n = n1 n2 とし,[n , k] 線形符号 C を採用する。具体的な符号化および復号の方
法については提案方式の仕様書 [34] を参照のこと。線形符号 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) を出力する。
• 鍵カプセル化方式: 基本方式を乱択な公開鍵暗号とみなし,藤崎–岡本変換の変種を適用したものとみなせる。
以下ではハッシュ関数 H, H : {0, 1} → {0, 1}256 を用いる。またXOF *5 として 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 を出力する。
*5 eXtendable-Output Function の略。SHAKE128 や SHAKE256 が例として知られている。
71
表 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
デカプセル化:
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 暗号方式 [33] はMcEliece により 40 年以上前に提案されており,パラメータは改訂されてい
るもののいまだに破られていない。Classic McEliece などのように,公開鍵や秘密鍵は長いものの,暗号文は短い方
式が多い。LPN 問題は学習理論や符号理論から派生した問題でありSD 問題は LPN 問題の特殊な場合である。誤り
確率 τ が十分大きい場合の LPN 問題や,重み w が一定の大きさの SD 問題を確率的多項式時間で効率的に解くこと
は,量子コンピュータを用いても困難であると予想されている。
共通鍵暗号や公開鍵暗号の分野で多くの方式が LPN 問題や SD 問題に基づいて提案されている。LWE 問題と比較
した場合,利点としては,
• F2 およびその拡大体を基に構成するため,ハードウェア構成との相性が良い点
• 誤差分布としてベルヌーイ分布やその一般化した分布を用いるため,誤差のサンプリングが容易である点
が挙げられる。一方,欠点として,
• 鍵や暗号文のサイズが大きくなりやすい点
• 符号の復号アルゴリズムが複雑になりがちな点
• 完全準同型暗号といった発展的な応用が少ない点
が挙げられる。暗号方式のパラメータ設定の際には4.1 節で挙げたさまざまなアルゴリズムを考慮する必要がある。
アルゴリズムの高速化について盛んに研究されており,動向を注視する必要がある。また,符号に基づく暗号技術の信
72
頼性を向上させるためには,理論面における研究だけではなく,実時間の計算量に関する研究も重要である。公開鍵や
秘密鍵を圧縮しようと特殊な符号を採用したり,距離の定義を変える提案も多くある。これらは解読攻撃を受けること
も多く,評価が確定していない暗号・署名方式については注視が必要である。
本報告書は 2024 年 9 月 30 日時点の情報に基づいているが2025 年 3 月に NIST からHQC が標準化方式として
選ばれたことが発表された [42]。
73
第 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] 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 閲覧).
[4] 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.
[5] 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.
[6] 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.
[7] 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.
[8] 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.
[9] S. Bogos, S. Vaudenay. Optimization of LPN Solving Algorithms. ASIACRYPT (1). Vol. 10031. Lecture
Notes in Computer Science. 2016, pp. 703728.
[10] 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.
[11] 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.
[12] 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.
74
[13] 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.
[14] 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.
[15] 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.
[16] A. Esser. Revisiting Nearest-Neighbor-Based Information Set Decoding. IMACC. Vol. 14421. Lecture
Notes in Computer Science. Springer, 2023, pp. 3454.
[17] 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.
[18] A. Esser, R. Kübler, A. May. LPN Decoded. CRYPTO (2). Vol. 10402. Lecture Notes in Computer
Science. Springer, 2017, pp. 486514.
[19] 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.
[20] A. Esser, J. A. Verbel, F. Zweydinger, E. Bellini. SoK: CryptographicEstimators a Software Library for
Cryptographic Hardness Estimation. AsiaCCS. ACM, 2024.
[21] 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.
[22] Q. Guo, T. Johansson, C. Löndahl. Solving LPN Using Covering Codes. J. Cryptol. Vol. 33, Num. 1
(2020), pp. 133.
[23] J. Håstad. Some optimal inapproximability results. J. ACM. Vol. 48, Num. 4 (2001), pp. 798859.
[24] G. Kachigar, J.-P. Tillich. Quantum Information Set Decoding Algorithms. PQCrypto. Vol. 10346. Lecture
Notes in Computer Science. Springer, 2017, pp. 6989.
[25] P. Kirchner. Improved Generalized Birthday Attack. Cryptology ePrint Archive, Paper 2011/377. 2011.
https://eprint.iacr.org/2011/377.
[26] E. Kirshanova. Improved Quantum Information Set Decoding. PQCrypto. Vol. 10786. Lecture Notes in
Computer Science. Springer, 2018, pp. 507527.
[27] 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.
[28] É. Levieil, P.-A. Fouque. An Improved LPN Algorithm. SCN. Vol. 4116. Lecture Notes in Computer
Science. Springer, 2006, pp. 348359.
[29] 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.
[30] 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.
[31] 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.
75
[32] 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.
[33] R. J. McEliece. A Public-Key Cryptosystem Based On Algebraic Coding Theory. Deep Space Network
Progress Report. Vol. 44 (1978), pp. 114116.
[34] 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 閲覧).
[35] 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.
[36] 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.
[37] 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.
[38] NIST. Module-Lattice-Based Key-Encapsulation Mechanism Standard. NIST FIPS 203, https : / /
nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf. 2024-08.
[39] S. Perriello, A. Barenghi, G. Pelosi. A Complete Quantum Circuit to Solve the Information Set Decoding
Problem. QCE. IEEE, 2021, pp. 366377.
[40] 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.
[41] E. Prange. The use of information sets in decoding cyclic codes. IRE Trans. Inf. Theory. Vol. 8, Num. 5
(1962), pp. 59.
[42] Selected Algorithms. 2025-03. https : / / csrc . nist . gov / Projects / post - quantum - cryptography /
selected-algorithms. 2025-03-30 閲覧).
[43] 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.
[44] B. Zhang, L. Jiao, M. Wang. Faster Algorithms for Solving LPN. EUROCRYPT (1). Vol. 9665. Lecture
Notes in Computer Science. Springer, 2016, pp. 168195.
[45] 電子情報通信学会. 知識ベース 知識の森 1 群 (信号・システム) 2 編 (符号理論). https : / / www . ieice -
hbkb.org/portal/01-2/01_02/. 2024-03-05 閲覧).
76
第5章
多変数多項式に基づく暗号技術
多変数公開鍵暗号Multivariate Public Key Cryptosystemsにおける暗号方式の特徴は有限体上の多変数多項
式を用いた連立方程式
 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 問題は単に線形方程
77
式を解く問題となり,ガウスの消去法などで m, n に関し多項式時間で求解することが可能である。よってMP 問題
を考える場合は通常,各 pi (x) の次数は 2 以上であると仮定する。特にpi (x) の次数が全て 2 となるときMP 問題
は MQ 問題と呼ばれる。Fq = F2 の場合MQ 問題は NP 完全であることが知られている [15, p. 251, AN9]。
MQ 問題を解くコンテストとして Fukuoka MQ challenge が知られている。扱われている 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 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 問題は MP 問題に帰着できることが知られている [19, 11, 3]。またMinRank 問題を解く計算の困難性を
ベースとした署名方式などがいくつか提案されている [9, 4, 23, 1]。
5.1.3 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問題は以下
のように定義される。
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 なるものを見つけよ。
78
C = {P (x)} に関する EIP 問題が通常の IP 問題であるからEIP 問題は IP 問題の拡張である。5.2 節で述べるよう
EIP 問題は双極型システムで構成される公開鍵暗号方式署名方式の鍵復元攻撃に対する安全性に関わる。EIP 問
題を解く方法はクラス C の取り方(あるいは方式)に依存する。
5.2 多変数多項式に基づく代表的な暗号方式
5.2.1 双極型システム
IP 問題ベース [22] や MinRank 問題ベース [9, 1, 4, 23] の方式も存在するが,多変数公開鍵暗号の多くの方式が MP
問題をベースとして構成されている。中でも双極型システム [10] と呼ばれる構成方法が多く利用されているため,こ
の構成方法について説明する。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 を見つけ固定する。(例
G(x) ∈ Ccent と Fqn , Fqm 上のアフィン同型写像 S, T をそ
えばCcent として三角型多変数多項式系の集合を取れる。
れぞれ任意にとり,これらを合成した多変数多項式系 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 次の多変数多項式系で構成されることが多い。
これは,公開鍵長(や秘密鍵長)を出来るだけ小さくするためである。双極型システムは公開鍵暗号方式,署名方式両
方の構成に用いることができる。
公開鍵暗号方式の暗号化・復号は次のように行う。
暗号化 平文 M ∈ Fqn に対しC = F (M ) を計算する。C が暗号文となる。
復号 暗号文 C ∈ Fqm に対し,(1) B1 = T 1 (C), (2) G(B2 ) = B1 なる B2 を計算, (3) M = S 1 (B2 ) の順に計算
79
する。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 問題は効率的に解けることが知られている [16]。
5.2.2 署名方式 UOV
5.2.2.1 UOV の概要
UOV [18, 8] は双極型システムを用いた署名方式である。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.2)
となることがUOV 多項式写像の特徴である。x1 , . . . , xv を vinegar 変数xv+1 , . . . , xn を oil 変数と呼ぶ。G(x) の
vinegar 変数に(ランダムな)値を代入すると,(5.2) により 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 次式をそれぞれ
80
ḡ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.2) により f˜i (o) = 0 (i = 1, . . . , m, o ∈ O) を満たす。このような性質を持つ部分空間を oil 空間とい
う。逆に,多変数 2 次多項式系 H(x) が o 次元の oil 空間 O (⊂ Fqn ) を持ちo ≥ m を満たすならばH(x) は UOV
の公開鍵として使用できる。
5.2.2.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
81
すると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.3)
これよりFi,1 は任意の上三角行列, Fi,2 は任意の行列で選べることが分かる。そこでFi,1 , Fi,2 の成分すべてを公開
鍵として記述する代わりにFi,1 , Fi,2 を疑似乱数生成器を用いて構成することにして,そのシードのみを公開鍵とし
て記述することにより公開鍵長を削減できる。このようにしてUOV の公開鍵の 2 次多項式部分は,シードと (5.3)
で求められた Fi,3 (i = 1, . . . , m) だけで記述できる。
一般に,双極型システムの公開鍵長は n, m に関してO(mn2 ) の増大度を持ち大きくなりやすい。UOV では,
上の公開鍵の記述方法を使うことにより,公開鍵長の増大度は O(m3 ) となりUOV のパラメータが 2m < n で選ば
れることを踏まえると,一般の双極型システムの公開鍵の記述方法よりも,公開鍵長を削減できる。この削減方法は,
5.3 節で記述するUOV の変種であるQR-UOV や MAYO にも利用されている。
5.2.3 MPC-in-the-Head による署名方式の構成
5.2.3.1 秘匿マルチパーティ計算
Ishai らによって導入された MPC-in-the-Head [17] は,秘匿マルチパーティ計算からゼロ知識証明を構成し,さら
に 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.4)
 .
x Am x + x b m = ym
ここでA1 , . . . , Am ∈ Fqn×n , b1 , . . . , bm ∈ Fqn である。この場合のMQOM [12] で利用されている)秘匿マルチ
パーティ計算 fMQ の入力は,この MQ 問題の解 x の分散 Jx K である。η を正の整数とする。正の整数 n1 , n2 を
n1 n2 ≥ n なるように選んでおく。またu1 , . . . , un2 ∈ Fq を相異なる元として固定しておく。このときfMQ の計算
手順は以下の通りである。
秘匿マルチパーティ計算 fMQ
82
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. 乱数生成オラクル OR により 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.4) の解であることを確認する代わりに,
X
m
γi (yi x Ai x x b
i )=0
i=1
であることを確認している。x が (5.4) の解でなくても,この等式は 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
*1 Randomness Oracle で,安全性証明に用いられるランダムオラクルとは異なる。
83
Pm
となる。よってz = i=1 γi (yi x b
i ) とおくならばz = hx , wi を確かめればよい。これは,
X
n1 X
n2 X
n1
z= X (ui )W̃ (ui ) = Q(ui ) (5.5)
i=1 =1 i=1
と同値である。v = 0 であればSchwartz-Zippel の補題により,高い確率で (5.5) が満たされることになる。η を大
きくすることで,この確率を 1 に近づけることができる。
5.2.3.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 [12] が構成できる。MQOM ついては5.3.4
節で詳しく述べる。また5.3.5 節で詳しく述べる MiRitH は MinRank 問題に付随する秘匿マルチパーティ計算から
構成される署名方式である。
84
5.3 多変数多項式に基づく主要な暗号方式
多変数公開鍵暗号で標準化が有力視されるのは効率的な検証と短い署名長を持つ署名方式の UOV である。但し,
UOV は公開鍵長が大きくなりやすいという性質を持つため,公開鍵長の削減手法を取り入れている UOV の変種であ
る QR-UOV と MAYO も標準化の有力候補である。
またMPC-in-the-Head ではMQ 問題に関するマルチパーティ計算に基づく署名方式 MQOM とMinRank 問
題に関するマルチパーティ計算に基づく署名方式 MiRitH が注目されている。
表 5.2: 多変数多項式に基づく暗号の分類
文献 暗号化 鍵交換 署名
UOV [18, 8] ○
QR-UOV [13, 14] ○
MAYO [5, 6] ○
MQOM [12] ○
MiRitH [2] ○
5.3.1 署名方式 UOV
5.3.1.1 UOV の概要
5.2.2.1 節で UOV の基本アルゴリズムは述べたためこの節でのアルゴリズムの記述は割愛する。NIST PQC 標準
化プロジェクト追加署名第 1 ラウンドに提出された UOV [8] のアルゴリズムにはさらに5.2.2.2 節で述べた公開鍵
長の削減手法が取り入れられている。
5.3.1.2 UOV のパラメータ選択
UOV の設計に必要なパラメータはq, m, n である。NIST PQC 標準化プロジェクト追加署名第 1 ラウンドに提出
されたドキュメント [8] では,以下のように 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
85
5.3.2 署名方式 QR-UOV
5.3.2.1 QR-UOV の概要
QR-UOV [13, 14] は 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
になることが知られている [13, 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.2.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.2.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) を計算する。
86
公開鍵は 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 ∈ 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 Im
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 ラウン
ドに提出されたドキュメント [14] では,以下のように QR-UOV のパラメータ見積もりが公開されている。
87
表 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 [5, 6] は 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.2.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.6)
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.6) によりP (x) だけから構成できる。公開鍵を P (x) の係数集合だけで記述することで,公開鍵のサイズを小さく
88
した UOV が MAYO である。さらに5.2.2.2 節で述べた UOV に対して適用できる公開鍵長削減手法はMAYO に
対しても適用可能である。
安全性パラメータを λ とし,以下の行列,関数を用意する。
• 正則行列 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) が署名となる。最後に検証である。
89
検証
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) を得る。
!
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 の情報を発信しているウェブサイトで掲載さ
れているドキュメント [7] では,以下のように 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 [12] は5.2.3.1 節で説明した MQ 問題に関する秘匿マルチパーティ計算 fMQ から MPC-in-the-Head
で構成された署名方式である。5.2.3.2 節で述べたようにfMQ はゼロ知識証明に変換することができる。さらに,
Fiat-Shamir 変換により署名方式が構成できる。以下では5.2.3.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) を計算する。
90
公開鍵は pk = (seedpk , y = (y1 , . . . , ym )),秘密鍵は sk = seedsk である。次に,署名生成である。メッセージを
M ∈ {0, 1} とする。
署名生成
1. pk から (seedpk , y) を取り出す。
2. sk から seedsk を取り出す。
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]
PN 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]
σ が署名となる。最後に検証である。
91
検証
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 } を得る。
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 ラウンドに提出されたドキュメント [12] ではさらに効率性向上のテクニックhypercube optimizationseed
tree など)が追加されており,それを踏まえて以下のように MQOM のパラメータの見積もりが公開されている。署
名中の view[e] に含まれる要素数が署名生成ごとに異なるため,署名長は平均値が与えられている。
92
表 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 [2] はMinRank 問題に関する秘匿マルチパーティ計算から MPC-in-the-Head で構成された署名方式であ
る。MinRank 問題は 5.1.2 節でも述べたが,次のように表現することもできる。
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.7)
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.7) は
m×r
α = Mα · K と同値である。そこで,
ML (秘匿マルチパーティ計算において設定される関係 R の)命題を MinRank
R
93
問題のインスタンスとし,その証拠を α, K としておけば,α が MinRank 問題の解であることがMα のランク
を直接計算をせずとも)効率的に検証できる。以下の検証プロトコルでは,ランダム行列 R ∈ Fqs×m を用意し,
α Mα · K) とおきV = 0s×(nr) となることで (5.7) を確認する。(5.7) が成り立つときは V = 0s×(nr)
V = R (ML R
が必ず成り立つが,(5.7) が成り立たないときに 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 を計算する。
94
PN
8-3. S[e] = j=1 JS Kj を計算する。
[e]
L [e]
8-4. JV[e] K = S[e] JK[e] K R[e] JMα K JC[e] K を計算する。
P N
8-5. V[e] = j=1 JV[e] Kj を計算する。
8-6. Jbroad K = (JS K, JV K), broad
[e] [e] [e] [e] [e] [e]
= (S , V ) とおく。
9. h2 = H2 (M, salt, h1 , Jbroad K, · · · , Jbroad[τ ] K) を計算する。
[1]
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 を計算する。
6-7. JS[e] Kj = R[e] JMα Kj + JA[e] Kj (j ∈ {1, . . . , N }\{i }) を計算する。
R [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 ラウンドに提出されたドキュメント [2] ではさらに効率性向上のテクニックhypercube optimizationseed tree
95
など)が追加されており,それを踏まえて以下のように MiRitH のパラメータの見積もりが公開されている。署名中の
view[e] に含まれる要素数が署名生成ごとに異なるため,署名長は平均値が与えられている。
表 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 次多項式を利用した署名方式 [21] を提案した。したがって,多変数多項式を
利用した暗号技術は,既に 40 年以上の歴史を持つことになる。Ong と Schnorr の署名方式は,合成数を法とする剰余
環を係数としており合成数の素因数分解ができないことを安全性の仮定としていたが1988 年に,松本と今井によ
り,初めて有限体を係数とした多変数多項式を利用した公開鍵暗号方式 [20] が提案された*2 。これ以降MQ 問題の解
読困難性を安全性の仮定とする方式が数多く提案されており,現在に至る。
多変数多項式に基づく公開鍵暗号方式,および,署名方式の多くは双極型システムを用いて構成されている。双極型
システムは,暗号化や検証が効率的に実行できるという特徴を持つ。双極型システムを用いて構成されている署名方
式 UOV も,この特徴を持ち,さらに,署名長が短いという特徴も持っている。一方で,双極型システムは公開鍵長
が大きくなりやすいという課題もある。UOV に対しては,公開鍵長を削減する改良を加えた変種として QR-UOV や
MAYO が提案されている。
一方でMQ 問題や MinRank 問題に付随する秘匿マルチパーティ計算から MPC-in-the-Head の枠組みを利用して
署名方式を構成することができる。こちらは方式が提案されてからまだ数年しかたっていないということもあり,今後
の研究動向を見守る必要がある。
*2 かつて国内では「多次多変数暗号」と呼ばれていた
96
第 5 章の参照文献
[1] 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.
[2] 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.
[3] 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.
[4] E. Bellini, A. Esser, C. Sanna, J. Verbel. MR-DSS Smaller MinRank-based (Ring-)Signatures. (2022).
https://eprint.iacr.org/2022/973.
[5] W. Beullens. MAYO: Practical Post-quantum Signatures from Oil-and-Vinegar Maps. SAC. Vol. 13203.
Lecture Notes in Computer Science. Springer, 2021, pp. 355376.
[6] 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.
[7] 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.
[8] 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.
[9] 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.
[10] J. Ding, J. E. Gower, D. S. Schmidt. Multivariate Public Key Cryptosystems. Vol. 25. Advances in
Information Security. Springer, 2006.
[11] 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.
[12] 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.
97
[13] 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.
[14] 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.
[15] M. R. Garay, D. S. Johnson. A Guide to the Theory of NP-Completeness. In Computers and Intractability.
W.H. Freeman, 1979.
[16] L. Goubin, N.T. Courtois. Cryptanalysis of the TTM Cryptosystem. ASIACRYPT. Vol. 1976. Lecture
Notes in Computer Science. Springer, 2000, pp. 4457.
[17] Y. Ishai, E. Kushilevitz, R. Ostrovsky, A. Sahai. Zero-knowledge from secure multiparty computation.
STOC. ACM, 2007, pp. 2130.
[18] A. Kipnis, L. Patarin, L. Goubin. Unbalanced Oil and Vinegar Signature Schemes. EUROCRYPT. Vol.
1592. Lecture Notes in Computer Science. Springer, 1999, pp. 206222.
[19] 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.
[20] 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.
[21] H. Ong, C.-P. Schnorr. Signatures through Approximate Representation by Quadratic Forms. CRYPTO.
Plenum Press, New York, 1983, pp. 117131.
[22] 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.
[23] B. Santoso, Y. Ikematsu, S. Nakamura, T. Yasuda. Three-Pass Identification Scheme Based on MinRank
Problem with Half Cheating Probability. arXiv: 2205.03255.
98
第6章
同種写像に基づく暗号技術
本章では同種写像に基づく暗号技術についてまとめる。同種写像に基づく暗号技術の安全性は,同種写像問題を解く
計算の困難性及び(それと同値な)自己準同型環計算問題の困難性に依存しており,同種写像暗号に関する研究はこれ
まで継続して進められている。特に,本報告書の 2022 年度版と比べて,高次元同種写像計算を利用した鍵共有・署名
構成に進展が見られている6.3.1.2 節及び 6.4 節参照)。
6.1 節では,安全性の根拠となる問題として,同種写像問題の一般形を述べた後,自己準同型環計算問題及び SQIsign
Short Quaternion and Isogeny Signature署名方式 [23] の安全性に関する計算問題の順に,その概要を記述してい
く。6.2 節では,代表的な暗号方式として,自己準同型環計算問題に基づく GPSGalbraithPetitSilva署名方式
[27] を取り上げる。6.3 節では主要な暗号方式としてGPS 署名方式を改良した SQIsign 署名方式を解説する。
本章では,超特異楕円曲線を用いた暗号技術を主に扱う。しかし,通常楕円曲線に基づく CRS Couveignes
RostovtsevStolbunov鍵共有法 [14, 49] を改良した De Feo らの方式 [22] は,それ自体は実用的な性能にはまだ遠
いが,調査報告書に記載した CSIDH 鍵共有の原型を与えているという点で重要である。また,群作用暗号を量子マ
ネーへ応用した [58, 41] では,通常楕円曲線が用いられている。
同種写像の数学的詳細についてはDe Feo の概説記事 [21] や Washington の楕円曲線の教科書 [56] を参照の
こと。和書では,相川らによる概説書 [59] において,同種写像暗号に必要な数学も詳しく説明されている。また,
GalbraithVercauteren による同種写像関連問題のサーベイ [28] も参照する。
■記法 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 の代数閉包を
表す。
6.1 同種写像に基づく暗号技術の安全性の根拠となる問題
6.1.1 節で同種写像問題の一般形を述べた後,自己準同型環計算問題と SQIsign 署名方式の安全性に関する計算問題
6.1.2 節)の概要及びそれら問題に対する解析状況について記述していく。
99
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 によって与えられている [54]。
(モンゴメリ型楕円曲線に対する Vélu の公式に関しては,[46] を参照のこと。) 特に核の位数 #C が小素数になる同
種写像の計算を同種写像基本演算として,それらの合成が同種写像暗号での基本的な暗号演算を与えることになる。そ
して,その合成における基本演算の組み合わせ方法が,秘密鍵情報を与える。
つまり,同種な楕円曲線の間の同種写像を計算することを要求する次の同種写像問題が,具体的な暗号方式の安全性
を根拠づける次節以降の諸問題の基本形となる。(超特異同種写像問題と自己準同型環計算問題との計算量的同値性に
関しては 6.1.2 節で触れる。
定義 6.1 (一般形同種写像問題 [28]) 2 つの同種な楕円曲線 E, E に対して,同種写像 φ を計算せよ。(φ のコンパク
トな表現を与えよ。)
Y
ここで,
「φ のコンパクトな表現」とは様々な表現方法が考えられる。例えばdeg(φ) が小素数 i によって ei i
i
となっている場合には,この分解に沿って φ を分解した各 i 次同種写像の像に現れる値域楕円曲線(又は j 不変量)
の列挙で与えることができる。またSIDH 同種写像問題の設定では,核の生成点が,同種写像のコンパクトな表現
を与える。またCSIDH 鍵共有では虚 2 次整環(オーダー)のイデアル類によって同種写像が表現される。そして,
SIDH 鍵共有に対する攻撃法は,楕円曲線同種写像に対する新しい表現法を与えた [48]。最近の高次元同種写像を用い
た同種写像暗号の進展は,この新しい同種写像表現法に基づいて行われている。これらに関しては,調査報告書を参照
のこと。
定義 6.1 において,φ の次数が多項式サイズであれば,この問題は簡単に解けるので,φ の次数は指数サイズとする。
またCSIDH 鍵共有では Fp -有理な楕円曲線のみを対象とするのでFp -同型であるが Fp -同型でないツイスト曲線を
判別する必要性がある。しかしながら,ツイスト曲線は j 不変量では判別できない。この理由からGalbraith ら [28]
は j 不変量を使って同種写像問題を定式化しているが上ではあえてより素朴な形を採用して2 つの同種な楕円曲
線 E, E を使って同種写像問題を提示した。
同種写像問題の初期の考察には,自己準同型環計算を扱った Kohel の博士論文 [34] や Galbraith による同種写像問
題に関する研究 [26] 及び Couveignes と RostovtsevStolbunov による初期の暗号応用への提案 [14, 49] がある。その
Charles らによる同種写像に基づいたハッシュ関数の提案 [9] は,同種写像一方向性関数を一方向性の観点からだ
けでなく,衝突困難性の観点からも見直すことになり,初期の同種写像暗号の研究では重要な役割を果たした。特に,
同種写像グラフがエクスパンダーグラフであることに着目して暗号に応用した意義は大きい。
■超特異同種写像問題と通常同種写像問題 標数 p の有限体上の楕円曲線 E の p-ねじれ部分群 E[p] がE[p] = {OE }
の時E を超特異楕円曲線といいそうでない時E を通常楕円曲線という。超特異楕円曲線の j 不変量はFp2 の要
素である。つまり,超特異 j 不変量の個数は,有限個であり,具体的に bp/12c + ϵ(但し ϵ ∈ {0, 1, 2})で与えられる。
超特異,通常という楕円曲線の性質は,同種写像によって保存されるため,同種写像問題も,この 2 つの性質によって,
100
超特異同種写像問題と通常同種写像問題という 2 つの問題に分類される。
■超特異同種写像問題の計算困難性 超特異同種写像問題は,調査報告書で述べられる CSIDH 鍵共有や CSI-FiSh 署
名方式の安全性に関する計算問題の一般形であり,その計算困難性を評価することは重要である。また,自己準同型環
計算問題との関係性については 6.1.2 節を参照のこと。
√ √
超特異同種写像問題の古典計算機による解読時間は Õ( p),量子計算機による解読時間は Õ( 4 p) と見積もられて
いる。Kohel [34] による超特異同種写像グラフ上のアルゴリズム解析に基づいて,現在最良の古典解読アルゴリズムは
DelfsGalbraith [16] によるもの及びその改良 [51] で,解読時間は Õ( p) である。DelfsGalbraith アルゴリズムでは
Fp 上の超特異楕円曲線からなる部分グラフが利用されている。量子解読アルゴリズムは Biasse ら [5] によって時間計
算量が Õ( 4 p) の量子アルゴリズムが知られている。これはFp 上の超特異楕円曲線の同種写像問題に対する準指数時
間量子アルゴリズム [11] と Grover アルゴリズムに基づく Õ( 4 p) の道探索アルゴリズムを結合したものである。
またCostello ら [13]Longa ら [38] による報告UdovenkoVitto [53] による$IKEp182 Challenge [12] 解読報
JaquesSchanck [31] による同種写像問題に対する(量子)安全性評価報告は,いずれも SIDH 鍵共有(及び SIKE
暗号方式 [30])法への攻撃として提案されているが,多くの部分は一般的な超特異同種写像問題に関する知見としても
有効であることに注意する。更に固定次数の同種写像を計算する問題に対してCRYPTO 2024 において Benčina
ら [4] により改善された古典/量子アルゴリズムが提案されている。
6.1.2 自己準同型環計算問題と SQIsign 署名方式の安全性に関する計算問題
6.1.2.1 自己準同型環計算問題
同種写像暗号はKohel [34]Galbraith [26]Couveignes [14] らの先駆的研究にその起源をもつが特にKohel
は有限体上の楕円曲線の自己準同型環を計算するアルゴリズムを探求しており,そのために楕円曲線の同種写像からな
る「同種写像グラフ」の性質を見極めることから始めて,目的とする自己準同型環計算を同種写像グラフ上のアルゴリ
ズム構成に帰着していく。その後KohelLauterPetitTignol [35] は,この「同種写像計算」と「自己準同型環計算」
を並置しながら考察する視点を,「構成的 Deuring 対応」として計算論的観点から捉え直した(表 6.1 参照)。そこで
は,四元数環側での -同種写像道探索問題を解く KLPT アルゴリズムが鍵となるアルゴリズムである([33, 20] 参照)
そして,この構成的 Deuring 対応に基づき「同種写像計算」と「自己準同型環計算」の等価性が示されており [18, 19,
57],現在,自己準同型環計算問題の困難性に基づいた暗号構成の研究が進められている [27, 23, 24]。
■自己準同型環計算問題とその超特異同種写像計算問題との同値性 以下の記述に関しては,例えば [36] を参照。ま
た,四元数環については Voight の教科書 [55] に詳しい説明がある。有理数体 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)
(四元数環の)整環とは Z
は E の自己準同型環と呼ばれてEnd(E) は Bp,∞ の極大整環 O になっている*1 。ここで,
上階数 4 の加群でありかつ環であるものであり,極大整環とは,そのような整環の中で包含関係に関して極大になって
いるものを指す。この自己準同型環 End(E) を計算する以下の問題が基本である。
定義 6.2 (自己準同型環計算問題 [34]) 超特異楕円曲線 E が与えられてE の自己準同型環 End(E) を計算せよ。
*1 自己準同型写像は英語で endomorphism であるので,その全体を End(E) で表す。
101
Eisenträger らの研究 [18, 19] により,超特異同種写像計算問題と(超特異)自己準同型環計算問題の間に多項式時間
帰着による計算問題としての同値性が示された。そこではヒューリスティックな仮定が使われていたがWesolowski
[57] は,一般化されたリーマン予想に基づいて,その同値性に対して厳密な証明を与えた。また,[45, 40] においては,
非スカラー自己準同型写像を計算する問題One Endomorphism Problemと自己準同型環計算問題の等価性も示さ
れている。
6.1.1 節で,超特異同種写像問題の古典計算機による現在最速の解読時間は Õ( p) と見積もられていたので,この同
値性により,自己準同型環計算問題も同等の計算時間であるが,直接に,自己準同型環計算問題を解く研究も進められ
ており,[19] においてÕ( p) 時間の自己準同型環計算(古典)アルゴリズムが報告されており,その後 [25] により
改良されている。またKambe ら [32] によって10 から 30 bits の素数 p に対する自己準同型環計算の実装報告がな
されている。
■Deuring 対応 自己準同型環計算問題で与えられる楕円曲線 E から極大整環 O への対応は,表 6.1 に掲げたよ
うに,楕円曲線に関する様々な概念から四元数環に関する概念への対応に拡張される。その詳細に関しては,例
えば [36, 第 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.2)は Deuring 対応
に基づいた問題であり,楕円曲線側の超特異 j 不変量 j(E) から対応する四元数環側の極大整環 O = End(E) を計算
する問題となっている。そして,この Deuring 対応は6.2.1 節及び 6.3.1 節での暗号構成を理解する際にも重要な鍵
となっている。
表 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.1.2.2 SQIsign 署名方式の安全性に関する計算問題
次にSQIsign 署名方式 [23, 10] の安全性を示すために必要な計算問題を述べる。近年進展が著しい SQIsign2D 署
名方式の安全性に関しては [3, 44] などを参照のこと。
102
■SQIsign 署名方式の健全性に関する計算問題 まずはSQIsign 署名方式の健全性(偽造不可能性)を示すための計
算問題である超特異平滑自己準同型写像計算問題Supersingular Smooth Endomorphism Problemを定義する。以
下では,核が巡回群となる自己準同型写像を巡回自己準同型写像と呼ぶ。
定義 6.3 (超特異平滑自己準同型写像計算問題 [23, 10]) 超特異楕円曲線 E が与えられて,平滑な整数を次数にもつ
E 上の(非自明な)巡回自己準同型写像を見つけよ。
この問題で問うているような非自明な自己準同型写像が計算できれば,[19] で見るように,自己準同型環 End(E)
全体も計算できることが知られているので,この問題は,本質的に自己準同型環計算問題と同値である [23]。よって,
Õ( p) 時間での古典アルゴリズム [19] が現状最速と見積もられる。
■特殊極値的楕円曲線 次に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, 1y), π : (x, y) 7→ (xp , y p ) により End(E0 ) = Z + Zι + Z ι
2 +Z 2
1+ιπ
で与えられる。
標数 p と ∞ のみで分岐する四元数環 Bp,∞ := Q[i, j] における極大整環 O0 ⊂ Bp,∞ は,最小判別式の 2 次整環で
ある O ⊂ O0 ∩ Q[i] による O + jO ⊂ O0 が部分整環であり O ⊂ (jO)⊥ と直交分解しているとき*2 ,特殊極値的
special extremalであるという。詳細は [23, 36] を参照。p = 7 mod 12 の時,上述の E0 に対して End(E0 ) は特殊
極値的でありこの時E0 は特殊極値的曲線と呼ばれる。特殊極値的曲線 E0 は,その自己準同型環の構造が簡単で
計算上扱いやすいため GPS 署名方式 及び SQIsign 署名方式の公開パラメータの一部として必要である。
■SQIsign 署名方式のゼロ知識性に関する計算問題 SQIsign 署名方式では,右図
SQIsign 同種写像図式
の同種写像 τ が秘密鍵で,超特異楕円曲線 EA が公開鍵(の主要な一部)である。
署名生成では,同種写像 ψ, φ を適切に生成して得られた合成写像 φ ◦ ψ ◦ τ̂ を「ラン E0
ψ
/ E1
ダム化」した同種写像 σ を署名とする*5 。その詳細は 6.3.1.1 節を参照。[23, 24] に τ φ
おいて定義された E0 を始点とする同種写像から成るある集合 PNτ を τ によって  
EA
σ / E2
EA を始点とした同種写像に移した集合 [τ ] PNτ PNτ の τ による pushforward
を考える。正しく生成された署名同種写像 σ は [τ ] PNτ に属するのであるが,それ CSI-FiShGPS 図式と同
が EA を始点とした 2 べき次数 D (= 2e ) の巡回同種写像全体 IsoD,j(EA ) から一様 様に可換図式ではない。
ランダムにサンプリングしたのと区別が付くかという問題が以下でありSQIsign
署名方式のゼロ知識性を示すために必要である。
定義 6.4 (SQIsign 署名方式のランダム識別問題 [23, 10]) τ : E0 → EA を秘密同種写像として,楕円曲線 E0 を含
む SQIsign 署名方式の公開パラメータ ppsqisign (詳しくは 6.3.1 節参照)と公開鍵 EA が入力として与えられると共
に,[τ ] PNτ から一様サンプリングして返すオラクル Oτ への多項式回のアクセスが許される時にEA を始点とする
同種写像 σ が与えられて σ が IsoD,j(EA ) から一様ランダムに選ばれたか,[τ ] PNτ から一様ランダムに選ばれたかを
判定せよ。
SQIsign 署名方式の提案者によると現在のところSQIsign 署名方式のランダム識別問題を解くのにE0 と EA の
*2 Bp,∞ における内積は α, β ∈ Bp,∞ に対して 1 tr(αβ̄) で与えられてここはその内積に関する直交分解であるBp,∞ 内のトレース,共
2
役の定義は,例えば [36] を参照のこと)。
*5 τ̂ は τ の双対同種写像である。表 6.1 も参照のこと。
103
情報から τ を暴く攻撃法より効率の良い攻撃法はまだ知られていないとのことである [23, 36]。つまりÕ( p) 時間
を必要とすると見積もられている。また,上述の SQIsign 署名方式に関する計算問題は,どちらも補助点を問題に含ま
ないことにより,最近の SIDH 同種写像問題に対する攻撃法が適用できないことに注意する。
6.2 同種写像に基づく代表的な暗号方式
6.2.1 GPS 署名方式
GalbraithPetitSilvaGPS[27] によって始めて自己準同型環の知識証明に基づく署名方式が提案された。GPS
署名方式は 1 bit チャレンジ空間のゼロ知識証明プロトコルに基づいているため実際に利用するのは困難であろうと思
われているが現在GPS 署名方式はSQIsign 署名方式の原型を与えているという点で重要である。6.1.2 節で述べ
た Deuring 対応と KLPT アルゴリズム [35] が GPS 署名方式の理論的基礎を与える。
右図において E0 は 6.1.2.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 署名方式である。ここでは [27, 第 4 章] と [36, 5.1.2 節] に基づいて GPS 署名方式を記
述する。また,[27, 第 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 に対して検証が成功すれば受理を出力して,そうでなければ,
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 は互いに異なるものとする。
104
棄却とする。
GPS 署名方式は,超特異楕円曲線同種写像計算問題またはそれと同値な自己準同型環計算問題(定義 6.2)の困難性
を仮定すればランダムオラクルモデルの下で EUF-CMA 安全であることが示されている [27, 定理 10]。GPS 署名方
式では1 bit のチャレンジを用いた Σ-プロトコルに基づいているため,署名サイズが大きくなるのが欠点である。ま
た,署名生成で使われた KLPT アルゴリズムの計算時間改善も課題であった [36, 5.1.2 節]。以上GPS 署名方式には
(1) 署名サイズ 及び (2) KLPT アルゴリズム計算時間 に関する 2 つの課題が存在する。
6.3 同種写像に基づく主要な暗号方式
本節では,公開鍵と署名サイズが小さいことを特長にもつ SQIsign 署名方式について述べる(表 6.2 参照)。
表 6.2: 同種写像に基づく暗号の分類
文献 暗号化 鍵交換 署名
SQIsign [23, 10, 3] ○
6.3.1 SQIsign 署名方式
以下,自己準同型環計算問題(定義 6.2)の困難性に安全性の根拠を置く SQIsign 署名方式を概説する。SQIsign 署
名方式は公開鍵と署名を合わせたサイズが小さい方式として注目されている。また2024 年 10 月にSQIsign 署名方
式が NIST PQC 標準化プロジェクト追加署名第 2 ラウンドに進むことが発表された [2]。以下ではKLPT アルゴリ
ズムに基づいた SQIsign 署名方式 [23, 10] のアルゴリズムとパラメータを述べた後,最新の改良版である SQIsign2D
署名方式 [3] について報告する。
6.3.1.1 KLPT アルゴリズムに基づく SQIsign 署名方式
6.2.1 節で述べた GPS 署名方式を基にして改良を加えた署名方式が SQIsign 署名方式でありAsiacrypt 2020 で
De FeoKohelLerouxPetitWesolowski [23] により提案された。6.2.1 節末尾に付した GPS 署名方式の 2 つの課題
を克服している。チャレンジ空間に同種写像の空間を用いることで,そのサイズをセキュリティパラメータ λ まで大き
くして,Σ-プロトコルを 1 度適用するだけで十分な FiatShamir 署名構成とした。これで署名サイズが格段に小さく
なった。またGPS 署名生成においては,表 6.1 の Deuring 対応に基づいて,同種写像のイデアル表現(表 6.1 の四
元数環側)をねじれ点を使った表現(表 6.1 の楕円曲線側に変換する部分で時間が費やされていたがSQIsign 署名
方式ではその処理を速度改善したサブルーチンIdealToIsogenyに置き換えるのに成功して現実的な演算効率を達成
した(詳細は [23, 24] を参照)
また,安全性に関しては,健全性は超特異平滑自己準同型写像計算問題(定義 6.3)の困難性に基づき,ゼロ知識性
は定義 6.4 で述べた SQIsign 署名方式のランダム識別問題の困難性に基づいている。初期提案 [23] では,ノルム方程
式を解くサブルーチンに不備があり,生成される署名同種写像 σ に偏りが生じていたことが [24] において指摘された。
そして,更に [24] でその不備を除去したアルゴリズム提案が行われた。
105
■SQIsign 署名アルゴリズム SQIsign 署名方式では,右図の同種写像 τ が秘密鍵 SQIsign 同種写像図式
で,超特異楕円曲線 EA が公開鍵(の主要な一部)である。署名生成では,コミッ
E0
ψ
/ E1
トメント同種写像 ψ とチャレンジ同種写像 φ を適切に生成して得られた合成写像
φ ◦ ψ ◦ τ̂ を一般化された KLPT アルゴリズムに基づいてランダム化した同種写像 τ φ
 
σ を署名(Σ-プロトコルのレスポンス)とする。一般化 KLPT アルゴリズムに関 EA
σ / E2
しては [10, 2.5.2.2 節] を参照。チャレンジ φ によりセキュリティパラメータ分の
ランダムネスを与えることができるので1 度の Σ-プロトコル適用で十分な安全
性が達成できる。よってGPS 署名方式と比べて格段に短い署名サイズが実現で
きる。
鍵生成: 既知の特殊極値的自己準同型環 O0 をもつ超特異楕円曲線 E0 ,λ bits の平滑な奇数 Dcλ はセキュリティパ
ラメータ),超特異 2-同種写像グラフの直径より大きな e による D := 2e を生成してppsqisign := (E0 , Dc , D)
を公開パラメータとする。さらにE0 を始点とするランダムな同種写像 τ : E0 → EA を計算してppsqisign と
EA を公開鍵として,τ を秘密鍵とする。
署名生成: 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.3)の困難性と,定義
6.4 で述べた SQIsign 署名 σ のランダム識別問題の困難性に基づいている。またSantosEriksenMeyerReijnders
[52] は有限拡大体を活用して署名検証を高速に行う方法を提案している。
■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+ϵ [6] では例えば 0.02 < ϵ < 0.1 とする)に対して 2f · T | p2 1 となる素数 p を探索する必要
がある。SQIsign 素数の選択基準として,署名検証の効率化には f をできるだけ大きくして,署名生成の効率性にとっ
ては B/f をできるだけ小さくするのが望ましい [24]。
6.3.1.2 SQIsign2D 署名方式
Dartois ら [15] により高次元同種写像を用いて改善を図った SQIsignHD 署名方式が提案された。さらに 2 次元
同種写像によってデータサイズ,演算時間,安全性に関して改善された複数の方式が相次いで発表されている [3,
44, 17, 7]。以下ではそれらの中で特にSQIsign2D-West 署名方式 [3] に関して,[3] で述べられたパラメータ,
データサイズ及び性能報告に関して述べる。SQIsign 署名方式を 2 次元同種写像を用いて改善することができたのは
NakagawaOnuki [43, 44] の貢献が大きい。
106
特筆すべきは,素数 p の選択である。上に述べたように,従来の SQIsign 署名方式では B-平滑な T を適切に設定す
る必要があるなど素数 p の選択には限界が伴っていた。しかしSQIsign2D-West では,できるだけ小さな c により
p + 1 = c × 2e となる素数 p を用いるため,セキュリティレベルに応じて柔軟なパラメータ選択がしやすい。また,一
般化メルセンヌ素数 p = c × 2e 1 を用いることで高速実装も可能になり,表 6.3 に示すように,鍵生成・署名生成・
署名検証において実用的な実行時間が達成できることが報告されている [3]。
そして,表 6.3 に示されているように,セキュリティパラメータ λ ( 12 log2 p) に対して公開鍵サイズを 4λ + 16
bits署名サイズを 9λ + 16 + 2log2 (2λ) bits と小さく抑えることができるのも特長である。
表 6.3: SQIsign2D-West 素数パラメータ p 及び公開鍵・署名サイズBytesIntel Xeon Gold 6338Ice Lake
2GHz上での鍵生成・署名生成・署名検証の実行時間ms[3]
NIST 安全性レベル 1 3 5
素数 p 5·2
248
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
6.4 同種写像に基づく暗号技術に関するまとめ
本章では同種写像に基づいた暗号技術をまとめた。NIST PQC 標準化プロジェクト追加署名第 2 ラウンドに進ん
だ SQIsign 署名方式についてまとめてきた。また,高次元同種写像の暗号応用に関しても調査結果を報告した。
[14] によるとCouveignes は1997 年の École Normale Supérieure でのセミナーで既に同種写像に基づく暗号技
術を提案しており,ほぼ同時期に Kohel [34] や Galbraith [26] も,同種写像問題に関する研究を始めていた。つまり,
同種写像暗号技術の研究は既に 27 年の歴史をもつ。そして,最近になり,耐量子計算機暗号の必要性が高まること
同種写像暗号技術は注目されて研究が進みNIST PQC 標準化プロジェクト第 4 ラウンドにも選ばれた SIKE
暗号方式及びその基本形である SIDH 鍵共有は最近まで堅調に安全性評価を積み重ねてきた。しかし2022 年の
CastryckDecru の攻撃法 [8] を始めとする一連の攻撃法 [39, 47] は SIDH 鍵共有に対して決定的な結果をもたらした。
一方本章においても随所に見られるようにKani の補題に基づいて楕円曲線同種写像を高次元同種写像に埋め
込むことで次数が平滑でない同種写像も暗号演算に取り込むことが可能になるなどSIDH 攻撃法に端を発した全
く新しい同種写像暗号研究が現在展開されつつある。例えばSIDH 攻撃の発案者である Castryck は“An Attack
Became a Tool: Isogeny-based Cryptography 2.0” と題する Eurocrypt 2024 の招待講演において,同種写像暗号研
究が今新しい転換点に差し掛かっており,その技術的な核となるのが高次元同種写像の利用であると述べている。更
に,調査報告書で示したレベル構造付き同種写像問題などの新たな安全性解析の枠組みに関しても研究が進んでおり,
そのような理論的基盤に基づいて,新しい方式提案も含む活発な研究活動が引き続いて行われている。
現在,特に,公開鍵と署名を合わせたサイズが小さい SQIsign 署名方式が注目されていると共に,調査報告書で述べ
たようにCSIDH ベースの一方向性群作用に関する研究も注目されており,種々の暗号プロトコルへの応用も視野に
入れた研究も進んでいる。それらも含めて,今後,特に注意すべきこと数点について以下にまとめておく。
107
• SQIsign 署名方式は,公開鍵と署名のサイズの小ささ,補助点なしの署名構成,そして短署名に対する強い社会
的ニーズなどを踏まえると,現在有望な同種写像暗号技術と思われる。その一方,ゼロ知識性に関する計算問題
(定義 6.4)の安全性検討などに関して,まだ安全性評価が不十分であり,その安全性評価は今後の重要な課題の
一つである。さらに,今後は,実装研究を進める必要もあり,特にさまざまなプラットフォームでの実装結果
を蓄えていく必要がある。またSQIsign2D-West 論文 [3]Asiacrypt 2024の副題は “The Fast, the Small,
and the Safer” となっており2 次元同種写像の利用により演算速度,データサイズ,安全性と多方面での改善
が図られており,この方向性での今後の研究進展に注目していく必要がある。
• SQIsign 署名方式は NIST PQC 標準化プロジェクト追加署名第 2 ラウンドに進むことが決定しており [2]
SQIsign及び SQIsign2D署名パラメータに対して
(一般的な)超特異同種写像問題及びそれと同値な自己準
同型環計算問題に対する古典・量子アルゴリズムの詳細な解析・見積もりを行うことが今後の重要な課題である。
• 鍵共有方式として,レベル構造付き同種写像問題に基づく M-SIDH 鍵共有,(Q)FESTA 鍵共有binSIDH 鍵
共有を調査報告書で取り上げた。群作用ベースの鍵共有には例えばCSIDHSCALLOPSiGamal などが
あるが,他にも POKEIS-CUBELIT-SiGamal など新たな鍵共有・暗号方式が提案されてきており,これか
らも同種写像に基づく鍵共有・暗号方式の安全性解析と方式改良(及び新規提案)は大変重要な課題である。
• 調査報告書で述べたリング署名・グループ署名の他にもパスワード認証鍵共有PAKE[1, 29] や紛失疑似ラン
ダム関数OPRF[50] などといった一方向性群作用の暗号応用に関する研究が進められており,耐量子計算機
性をもつ方式として注目する必要がある。更に,近年では量子マネーなどの新しい応用研究 [37, 58, 41, 42] も
進んでおり,一方向性群作用の新たな暗号応用を探ることも今後の重要な課題の一つである。
• 上で述べたように高次元同種写像を利用した暗号・署名構成,及び安全性解析は,現在も研究が進展し続けてい
る。全体に,同種写像暗号技術は,まだまだ研究の余地があり,鍵・暗号文・署名サイズの小ささの点で他の耐
量子計算機暗号にない特長があるので,さまざまな利用用途を見据えて今後も継続的な研究が望まれる。
108
第 6 章の参照文献
[1] 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.
[2] 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.
[3] 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.
[4] 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.
[5] 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.
[6] 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.
[7] 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 [44].
[8] W. Castryck, T. Decru. An Efficient Key Recovery Attack on SIDH. EUROCRYPT (5). Vol. 14008.
Lecture Notes in Computer Science. Springer, 2023, pp. 423447.
[9] D. X. Charles, K. E. Lauter, E. Z. Goren. Cryptographic Hash Functions from Expander Graphs. J.
Cryptol. Vol. 22, Num. 1 (2009), pp. 93113.
[10] J. Chavez-Saab et al. SQIsign: Algorithm specifications and supporting documentation. submission to
the NISTs PQC standardization. (2023).
[11] 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.
[12] 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.
109
[13] 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.
[14] J.-M. Couveignes. Hard Homogeneous Spaces. Cryptology ePrint Archive, Paper 2006/291. 2006. https:
//eprint.iacr.org/2006/291.
[15] 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.
[16] C. Delfs, S. D. Galbraith. Computing isogenies between supersingular elliptic curves over Fp . Des. Codes
Cryptogr. Vol. 78, Num. 2 (2016), pp. 425440.
[17] M. Duparc, T. B. Fouotsa. SQIPrime: A Dimension 2 Variant of SQISignHD with Non-smooth Challenge
Isogenies. 2024.
[18] 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.
[19] 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.
[20] 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.
[21] L. De Feo. Mathematics of Isogeny Based Cryptography. 2017. arXiv: 1711.04062.
[22] 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.
[23] 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.
[24] 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.
[25] J. Fuselier, A. Iezzi, M. Kozek, T. Morrison, C. Namoijam. Computing supersingular endomorphism rings
using inseparable endomorphisms. 2023. arXiv: 2306.03051.
[26] S. D. Galbraith. Constructing Isogenies between Elliptic Curves Over Finite Fields. LMS Journal of
Computation and Mathematics. Vol. 2 (1999), pp. 118138.
[27] 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.
[28] S. D. Galbraith, F. Vercauteren. Computational problems in supersingular elliptic curve isogenies. Quan-
tum Inf. Process. Vol. 17, Num. 10 (2018), p. 265.
[29] R. Ishibashi, K. Yoneyama. Compact Password Authenticated Key Exchange from Group Actions. ACISP.
Vol. 13915. Lecture Notes in Computer Science. Springer, 2023, pp. 220247.
110
[30] D. Jao et al. Supersingular Isogeny Key Encapsulation. https://sike.org/files/SIDH- spec.pdf.
2022-09. 2024-11-12 閲覧).
[31] 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.
[32] 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.
[33] 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.
[34] D. Kohel. Endomorphism rings of elliptic curves over finite fields. PhD thesis. University of California at
Berkeley, 1996.
[35] 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.
[36] A. Leroux. Quaternion algebras and isogeny-based cryptography. PhD thesis. Ecole Polytechnique, 2022.
[37] 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.
[38] 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.
[39] 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.
[40] 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.
[41] H. Montgomery, S. Sharif. Quantum Money from Class Group Actions on Elliptic Curves. 2024.
[42] S. Mutreja, M. Zhandry. Quantum State Group Actions. Cryptology ePrint Archive, Paper 2024/1636.
2024. https://eprint.iacr.org/2024/1636.
[43] 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.
[44] 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 [7].
[45] 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.
111
[46] 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.
[47] D. Robert. Breaking SIDH in Polynomial Time. EUROCRYPT (5). Vol. 14008. Lecture Notes in Computer
Science. Springer, 2023, pp. 472503.
[48] D. Robert. On the efficient representation of isogenies (a survey). Cryptology ePrint Archive, Paper
2024/1071. 2024. https://eprint.iacr.org/2024/1071.
[49] A. Rostovtsev, A. Stolbunov. Public-key cryptosystem based on isogenies. Cryptology ePrint Archive,
Paper 2006/145. 2006. https://eprint.iacr.org/2006/145.
[50] 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.
[51] 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.
[52] 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.
[53] 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.
[54] J. Vélu. Isogénies entre courbes elliptiques. C. R. Acad. Sci. Paris, Sér. A. Vol. 273 (1971), pp. 305347.
[55] J. Voight. Quaternion algebras. Springer International Publishing, 2021-06.
[56] L. C. Washington. Elliptic curves : number theory and cryptography. 2nd ed. Discrete mathematics and
its applications. Chapman & Hall/CRC, 2008.
[57] B. Wesolowski. The supersingular isogeny path and endomorphism ring problems are equivalent. FOCS.
IEEE, 2021, pp. 11001111.
[58] M. Zhandry. Quantum Money from Abelian Group Actions. ITCS. Vol. 287. LIPIcs. 2024, 101:1101:23.
[59] 相川 勇輔, 神戸 祐太, 工藤 桃成, 高島 克幸, 安田 雅哉. 代数曲線の計算理論と暗号への応用. 数学メモアール
10. 日本数学会, 2024.
112
第7章
ハッシュ関数に基づく署名技術
本章ではハッシュ関数に基づく署名技術についてまとめる。ハッシュ関数に基づく署名技術の安全性はハッシュ関数
の第二原像攻撃に対する安全性に依存している。
ハッシュ関数に基づく署名技術は,最初に Lamport により one-time signature として提案された [15, 26]。また,
この方式を改良した Winternitz one-time signature が Merkle [30] により述べられている。これらの方式は一組の公
開鍵と秘密鍵を用いて一つのメッセージに署名を行う 1 回署名方式である。1 回署名方式とマークル木とを用いて複数
回署名を行うことを可能とする方式が Merkle [29, 30] により述べられている。
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 の探索アルゴリズム [18] を用いることにより,第二
p
原像の計算時間は Θ( |R|) となる。
本章で取り上げるハッシュ関数に基づく署名技術では,米国 NIST の指定する標準ハッシュ関数族である SHA-2 [33],
SHA-3 [34] のうちのいくつかのハッシュ関数を用いることが想定されている。
SHA-2 は固定長入出力の圧縮関数からなる Merkle-Damgård 構造 [14, 31] を有するハッシュ関数の族でありSecure
Hash Standard [33] のうち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 長を表す。
SHAKE128, SHAKE256 については,出力長は任意に設定できる。
本章で使用する記号・用語を以下にまとめる。
• {0, 1} 系列 α, β の連接を αkβ と表記する。
 は左論理シフトを表す。
113
• 整数 ν について [ν]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 [30] は,一組の公開鍵と秘密鍵を用いて一つのメッセージに署名を行う 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
■署名アルゴリズム メッセージのハッシュ値 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 [25] によりまとめられている。
7.2.2 マークル木を用いた署名方式
1 回署名方式を用いて複数のメッセージに署名を行う場合,メッセージの個数と同じ個数の公開鍵と秘密鍵の組が必
要となる。マークル木を用いることにより,このような複数回署名方式の公開鍵の大きさを削減できる [29]。
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 ) とする。
114
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 のマークル木を構成することは,所要計算時間の観点から非実用
的である。このような多数のメッセージに署名を行う際には,マークル木を用いた署名方式の階層構造による署名方式
が提案されている [22]。
この署名方式で構成されるマークル木を用いた署名方式の階層構造の階層数を 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 個のメッセージの署名に使用
される。
この署名方式では,一つのメッセージの署名の際に,各層についてそれぞれ一つのマークル木を生成しておけば十分
である。各メッセージの署名は,そのメッセージに対する第 0 層のマークル木による署名と0 < i ≤ L 1 について,
そのメッセージの署名の際に使用された第 i 層のマークル木による第 (i 1) 層のマークル木の根の署名からなる。こ
の署名方式について,階層数 L = 3各階層のマークル木の高さ h0 = h1 = h2 = 3 の模式図を図 7.1 に示す。灰色の
節点は認証パスをなす節点である。
7.2.4 プレフィクスとビットマスク
プレフィクスは,ハッシュ関数に基づく署名方式の処理において,すべてのハッシュ関数の計算がそれぞれ異なる
入力に対して行われるよう入力に付加される系列である。プレフィクスはLighton と Micali [27] によりsecurity
string という名称で,ハッシュ関数に基づく署名方式の安全性をハッシュ関数の第二原像攻撃に対する安全性にタイト
に帰着するために導入された。なお,プレフィクスは,ハッシュ関数の用途とそれが用いられる位置(例えば,どの 1
回署名方式か,どのマークル木のどの節点か)により自然に定義できることから,現在は通常,アドレスと呼ばれる。
ビットマスクはDahmen ら [13] により,ハッシュ関数に基づく署名方式の安全性をハッシュ関数の第二原像攻撃
に対する安全性に帰着するために導入された。ビットマスクは乱数系列であり,ハッシュ関数への入力をランダム化す
るためにbit ごとの排他的論理和により入力に加えられる。
7.3 ハッシュ関数に基づく主要な署名方式
本章で取り上げるハッシュ関数に基づく署名方式を表 7.1 に示す。
115
message
図 7.1: マークル木の階層構造による署名方式
表 7.1: ハッシュ関数に基づく署名方式
文献 暗号化 鍵交換 署 名
eXtended Merkle Signature Scheme (XMSS) [19, 12] ○
Stateless Hash-Based Digital Signature Algorithm (SLH-DSA) [35] ○
NIST SP 800-208 [12] は,以下のハッシュ関数に基づく stateful な署名方式を規定している。
• Lighton-Micali Signatures (LMS), Hierarchical Signature System (HSS) [28]
• eXtended Merkle Signature Scheme (XMSS), multi-tree XMSS (XMSS M T ) [19]
LMS は Lighton と Micali による署名方式 [27] に基づく。HSS, XMSSM T はそれぞれ7.2.3 節で述べられたような,
LMS, XMSS の階層構造による署名方式である。ハッシュ関数に基づく stateful な署名方式では,同一の秘密鍵が複
数のメッセージの署名に使用されることがないように秘密鍵を管理することが必須である。LMS と HSS は調査報告書
で取り上げられている。
NIST FIPS 205 [35] はハッシュ関数に基づく 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 となった。
以下ではXMSSSLH-DSA についてそれぞれ 7.3.1 節7.3.2 節で述べられるが,どちらを先に読んでも差し支え
ない。
116
7.3.1 XMSS: eXtended Merkle Signature Scheme
XMSS は [10, 22] で提案された方式の改良版 [23] に基づく署名方式でありWOTS+ と呼ばれる Winternitz
one-time signature に基づく 1 回署名方式 [20] を用いる*1 。
XMSS では三つの鍵付きハッシュ関数 F, H, Hmsg と擬似ランダム関数 R が用いられる。いずれも出力の byte 長は
等しく,これを n とする。F の入力は byte 長 n の鍵と byte 長 n の系列である。H の入力は byte 長 n の鍵と byte
長 2n の系列である。Hmsg の入力は byte 長 3n の鍵と任意 byte 長の系列である。R の入力は byte 長 n の鍵と byte
長 32 の系列である。これらの関数は SHA-2 [33] または SHA-3 [34] を用いて定義される。例えば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.2 に示す。
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.2: アドレスの構造
7.3.1.1 WOTS+
w ∈ {4, 16} は Winternitz パラメータと呼ばれる。ℓ := 1 + 2 は公開鍵,秘密鍵,署名を構成する byte 長 n の要
素の個数を表す。ここで,
1 := d8n/log2 we, 2 := blog2 (1 (w 1))/log2 wc + 1
である。
*1 7.3.2 節の SLH-DSA で用いられる 1 回署名方式とマークル木を用いた署名方式もそれぞれ WOTS+ XMSS と呼ばれるが,アルゴリズム
には相違点が存在する。
117
■チェイニング関数 チェイニング関数 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.2a の ADRS の
hash address, keyAndMask の値をそれぞれ,[i + s 1]4 , [0]4 とすることを表している。
■鍵生成アルゴリズム 入力は 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.3 に示す。この図で
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.3: 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)
とする。
118
メッセージ M に対する署名は sig 0 , sig 1 , . . . , sig 1 である。
■検証アルゴリズム 鍵生成と署名のアルゴリズムより容易に導出される。詳細は [19] を参照のこと。
7.3.1.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 )
である。なおADRS は ADRS の上位 28 Bytes であり例えばADRS k[0]4 は ADRS の図 7.2 の 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 が付される。
119
■署名アルゴリズム メッセージ 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 により更新される。
■検証アルゴリズム 鍵生成と署名のアルゴリズムより容易に導出される。詳細は [19] を参照のこと。
7.3.1.3 XMSSM T
XMSSM T は7.2.3 節のマークル木の階層構造による署名方式に相当する。XMSSM T 木はハイパー木と呼ばれd
層の XMSS 木からなる。ここでXMSS 木は 7.3.1.2 節の鍵生成アルゴリズムで生成される L 木とマークル木から
なる木を表す。第 (d 1) 層と第 0 層はそれぞれXMSSM T 木の根と葉に相当する。すべての XMSS 木の高さは等
しくWinternitz パラメータもすべて同じ値が用いられる。第 x 層の左から y 番目の XMSS 木の構成で使用される
OTS ハッシュアドレスL 木アドレス,ハッシュ木アドレスの layer address と tree address は,それぞれ [x]4 [y]4
である。
XMSSM T の鍵生成,署名,検証の各アルゴリズムについての詳細は [19] を参照のこと。
7.3.1.4 パラメータの設定と安全性
Hülsing [23] らは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 [19] では,上述の XMSS の安全性に関する結果に基づいてn = 32, 64 のときそれぞれ256
bit 安全性512 bit 安全性が提供されると記されている。また量子計算機を用いた攻撃に対してはそれぞれ128 bit
安全性256 bit 安全性が提供されると記されている。
IRTF RFC 8391 [19] では,ハッシュ関数として 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 [19] の両方に掲載されている SHA-256 を用いる場合の WOTS+ , XMSS, XMSSM T のパラメータセット
の値の一覧をそれぞれ表 7.2, 7.3, 7.4 に示す。
120
表 7.2: WOTS+ のパラメータセット 表 7.3: 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.4: 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
7.3.2 SLH-DSA
SLH-DSA [35] は 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)
と呼ばれるハッシュ関数に基づく数回 (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 [35] ではPK.seed, SK.seed, SK.prf の生成
に SP 800-90A [4]SP 800-90B [39]SP 800-90C [5] で規定されているランダム bit 生成器を使用することが求めら
れている。WOTS+ と FORS のすべての秘密鍵はSK.seed を用いて擬似ランダム関数により生成される。SK.prf
は,メッセージダイジェストの計算に使用される乱数系列の生成に使用される。
SLH-DSA の署名では,メッセージダイジェストはこれらの乱数系列を用いたランダム化されたハッシュ関数により
*2 これらの名称は 7.3.1 節の XMSS の対応する署名方式の名称と同一であるが,アルゴリズムには相違点が存在する。
121
生成され,そのメッセージダイジェストの一部を用いてメッセージの署名に用いる 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.4 に示す 7 種のアドレスが用いられる。どのアドレスも長さは 32 Bytes である。各アドレス
の layer address と tree address は XMSS 木の階層構造で,ハッシュ関数がどの XMSS 木で用いられるかを表す。こ
れに基づきFORS 木アドレスFORS 木根圧縮アドレスFORS 鍵生成アドレスの layer address の値はすべて 0 と
定められている。
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.4: アドレスの構造
122
7.3.2.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 を返す。
■鍵生成アルゴリズム 入力は 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)
123
とする。なお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 [35] を参照のこと。
7.3.2.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 である。
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 [35] では,鍵生成アルゴリズムは明示
されておらず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 [35] では,検証に必須の,メッセージと署名の組から対応する公開鍵の候補を
計算するアルゴリズムが示されている。このアルゴリズムは鍵生成と署名のアルゴリズムより容易に導出される。詳細
は NIST FIPS 205 [35] を参照のこと。
7.3.2.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 である。
124
hypertree の公開鍵は第 (d 1) 層の XMSS の公開鍵である。hypertree の署名,検証の各アルゴリズムについての
詳細は NIST FIPS 205 [35] を参照のこと。
7.3.2.4 FORS
FORS は,数回署名方式 HORS [38] に基づく 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 である。
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 [35] を参照のこと。
■検証アルゴリズム NIST FIPS 205 [35] では,検証に必須の,メッセージと署名の組から対応する公開鍵の候補を
計算するアルゴリズムが示されている。詳細は NIST FIPS 205 [35] を参照のこと。
7.3.2.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
125
■鍵 生 成 ア ル ゴ リ ズ ム 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 [35]
を参照のこと。
■検証アルゴリズム 署名アルゴリズムより容易に導出されるので,詳細については NIST FIPS 205 [35] を参照の
こと。
7.3.2.6 パラメータの設定と安全性
SLH-DSA については,表 7.5 の 12 個のパラメータセットが示されている。この表の最左欄の名称は,使用される
ハッシュ関数とセキュリティパラメータ n の bit 長を単位とした値を示している。さらにs と f はそれぞれ,署名サ
イズ,計算時間が小さくなるよう定められたパラメータセットであることを示している。また,安全性レベルは NIST
PQC 標準化プロジェクトの Call for Proposals に記された安全性強度のカテゴリである。これらのパラメータセット
は,一組の公開鍵と秘密鍵により高々 264 個のメッセージが署名される場合の EUF-CMA 安全性を考慮して定められ
ている。
Hülsing と Kudinov [21] は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)
126
表 7.5: 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
• 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 について,コンピュータで検証された安全性証明を与えて
いる。
さらにNIST FIPS 205 [35] にはSLH-DSA の実装をサイドチャネル攻撃 [24] や故障攻撃 [1, 11, 17, 40] から保
護するための注意が払われなければならないことが記されている。
7.3.2.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)
127
安全性レベル 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 [32] の Appendix B.2.1 に記載されている MGF1 であり,
HMAC-SHA-256HMAC-SHA-512 は FIPS 198-1 [36] の 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 が達成できないことを示す攻撃 [37] が示されたことからSPHINCS+ v.3.1 では,安全性レベル 3, 5
についてHmsg , PRFmsg , H, T が SHA-512 を用いて実現されることとなりSLH-DSA でもそれに従っている。
7.4 ハッシュ関数に基づく署名技術に関するまとめ
本章ではハッシュ関数に基づく署名技術としてXMSS と SLH-DSA を取り上げた。これらはいずれも 7.2 節で述
べた代表的なハッシュ関数に基づく署名方式に基づく構造を有する。XMSS [19] は NIST の推奨アルゴリズムであり
[12]SLH-DSA は NIST PQC 標準化プロジェクトで選出された SPHINCS+ [2] に基づく標準アルゴリズムである。
ハッシュ関数に基づく署名技術の安全性はハッシュ関数の第二原像攻撃に対する安全性に依存しているがXMSS,
SLH-DSA については,秘密鍵入力を有するハッシュ関数が擬似ランダム関数であることにも依存する。また,偽造攻
撃の計算量はハッシュ関数がランダムオラクルであることを仮定して見積もられている。なおXMSS で用いられ
るビットマスクの生成についてもハッシュ関数がランダムオラクルであることが仮定される。
ハッシュ関数に基づく署名技術についてはstateful であること,すなわち,各メッセージの署名に用いられる 1 回
署名の秘密鍵を 2 回以上使用することのないよう管理しなければならないことが問題であった。XMSS は stateful な
署名方式であり,それを推奨アルゴリズムとする NIST SP 800-208 [12] には,ハッシュ関数に基づく stateful な署名
方式は一般的な使用には適するものでなく,近い将来に実装が必要であり,その実装が長期間の使用を予定されており,
かつ,使用開始後に他の署名方式への移行が実用的でないような応用での使用が意図されていると述べられている。
SLH-DSA は XMSS の設計で得られた知見に基づいて設計されておりXMSSM T と同様の構造を有するが,各メッ
セージの署名に一つの秘密鍵で数回署名可能な FORS を用いることによって署名可能な回数を増加させることにより,
stateless であることを達成している。
128
第 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.
129
[14] I. Damgård. A Design Principle for Hash Functions. CRYPTO. Vol. 435. Lecture Notes in Computer
Science. Springer, 1989, pp. 416427.
[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] A. Genêt. On Protecting SPHINCS+ Against Fault Attacks. IACR Trans. Cryptogr. Hardw. Embed.
Syst. Vol. 2023, Num. 2 (2023), pp. 80114.
[18] L. K. Grover. A fast quantum mechanical algorithm for database search. STOC. ACM, 1996, pp. 212219.
[19] 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.
[20] A. Hülsing. W-OTS+ Shorter Signatures for Hash-Based Signature Schemes. AFRICACRYPT. Vol.
7918. Lecture Notes in Computer Science. Springer, 2013, pp. 173188.
[21] 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.
[22] 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.
[23] 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.
[24] 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.
[25] P. Lafrance, A. Menezes. On the security of the WOTS-PRF signature scheme. Adv. Math. Commun.
Vol. 13, Num. 1 (2019), pp. 185193.
[26] L. Lamport. Constructing digital signatures from a one-way function. SRI International Technical Report,
CSL-98. 1979-10.
[27] 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.
[28] D. McGrew, M. Curcio, S. Fluhrer. Leighton-Micali Hash-Based Signatures. RFC 8554, https://www.rfc-
editor.org/info/rfc8554. 2019-04.
[29] R. Merkle. Secrecy, Authentication, and Public Key Systems. PhD thesis. Stanford University, 1979. url:
https://www.merkle.com/papers/Thesis1979.pdf.
[30] R. C. Merkle. A Certified Digital Signature. CRYPTO. Vol. 435. Lecture Notes in Computer Science.
Springer, 1989, pp. 218238.
[31] R. C. Merkle. One Way Hash Functions and DES. CRYPTO. Vol. 435. Lecture Notes in Computer
Science. Springer, 1989, pp. 428446.
[32] 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.
[33] NIST. Secure Hash Standard (SHS). NIST FIPS 180-4, https://nvlpubs.nist.gov/nistpubs/FIPS/
NIST.FIPS.180-4.pdf. 2015-08.
130
[34] 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.
[35] NIST. Stateless Hash-Based Digital Signature Standard. NIST FIPS 205, https://nvlpubs.nist.gov/
nistpubs/FIPS/NIST.FIPS.205.pdf. 2024-08.
[36] 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.
[37] 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.
[38] 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.
[39] 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.
[40] 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.
131
CRYPTREC 暗号技術ガイドライン(耐量子計算機暗号) 2024 年度版
[CRYPTREC GL-2007-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