NIST SP 800-186 離散対数ベースの暗号に関する推奨事項:楕円曲線ドメインパラメータ
こんにちは、丸山満彦です。
NISTが、SP 800-186 離散対数ベースの暗号に関する推奨事項:楕円曲線ドメインパラメータを公表していますね。。。前の記事「NIST FIPS 186-5デジタル署名標準(DSS)」とセットです...
● NIST - ITL
NIST Revises the Digital Signature Standard (DSS) and Publishes a Guideline for Elliptic Curve Domain Parameters | NIST、デジタル署名規格(DSS)を改訂し、楕円曲線ドメイン・パラメータのガイドラインを公開 |
Today, NIST is publishing Federal Information Processing Standard (FIPS) 186-5, Digital Signature Standard (DSS), along with NIST Special Publication (SP) 800-186, Recommendations for Discrete Logarithm-based Cryptography: Elliptic Curve Domain Parameters. | 本日、NISTは連邦情報処理規格(FIPS)186-5「デジタル署名標準(DSS)」と、NIST Special Publication(SP)800-186「NIST SP 800-186 離散対数ベースの暗号に関する推奨事項:楕円曲線ドメインパラメータ」を公開する。 |
FIPS 186-5 specifies three techniques for the generation and verification of digital signatures that can be used for the protection of data: | FIPS 186-5は、データ保護に使用できるデジタル署名の生成と検証のための3つの技術を規定している。 |
・Rivest-Shamir-Adleman (RSA) Algorithm | ・RSA (Rivest-Shamir-Adleman) アルゴリズム |
・Elliptic Curve Digital Signature Algorithm (ECDSA) | ・楕円曲線デジタル署名アルゴリズム(ECDSA) |
・Edwards Curve Digital Signature Algorithm (EdDSA) | ・エドワード曲線デジタル署名アルゴリズム(EdDSA) |
The Digital Signature Algorithm (DSA), which was specified in prior versions of FIPS 186, is retained only for the purposes of verifying existing signatures. | デジタル署名アルゴリズム(DSA)は、FIPS186の以前のバージョンで規定されていたが、既存の署名を検証する目的でのみ保持されている。 |
The companion document, NIST SP 800-186, specifies the set of recommended elliptic curves. In addition to the previously recommended Weierstrass curves, there are two newly specified Edwards curves included for use with the EdDSA algorithm. Edwards curves provide increased performance, side-channel resistance, and simpler implementation when compared to traditional curves. While NIST SP 800-186 includes the specifications for elliptic curves over binary fields, these curves are now deprecated, and the use of other (prime) curves is strongly recommended. | 関連文書である NIST SP 800-186 では、推奨される楕円曲線のセットが規定されている。 従来推奨されていたWeierstrass曲線に加えて、EdDSAアルゴリズムで使用するために新たに指定されたEdwards曲線が2つ含まれている。 Edwards曲線は、従来の曲線と比較して、性能の向上、サイドチャネル耐性、および実装の簡素化を実現している。 NIST SP 800-186には、2進数上の楕円曲線に関する仕様が含まれているが、これらの曲線は現在非推奨であり、他の素数曲線を使用することが強く推奨されている。 |
The algorithms in these standards are not expected to provide resistance to attacks from a large-scale quantum computer. Digital signature algorithms that will provide security from quantum computers will be specified in future NIST publications. For more information, see the Post-Quantum Cryptography Standardization project. | これらの標準に含まれるアルゴリズムは、大規模な量子コンピュータからの攻撃に対する耐性を提供することは期待できない。 量子コンピュータからの安全性を確保する電子署名アルゴリズムは、今後NISTの出版物で規定される予定である。詳細については、ポスト量子暗号標準化プロジェクトを参照のこと。 |
・2023.02.02 SP 800-186 Recommendations for Discrete Logarithm-based Cryptography: Elliptic Curve Domain Parameters
SP 800-186 Recommendations for Discrete Logarithm-based Cryptography: Elliptic Curve Domain Parameters | SP 800-186 離散対数ベースの暗号に関する推奨事項:楕円曲線ドメインパラメータ |
Abstract | 概要 |
This Recommendation specifies the set of elliptic curves recommended for U.S. Government use. In addition to the previously recommended Weierstrass curves defined over prime fields and binary fields, this Recommendation includes two newly specified Edwards curves, which provide increased performance, side-channel resistance, and simpler implementation when compared to traditional curves. This Recommendation also specifies alternative representations for these new curves to allow more implementation flexibility. The new curves are interoperable with those specified by the Crypto Forum Research Group (CFRG) of the Internet Engineering Task Force (IETF). | この推奨事項は、米国政府の使用に推奨される楕円曲線一式を規定するものである。素数体および2体に対して定義された従来から推奨されているWeierstrass 曲線に加え、この推奨事項では新たに2つのEdwards 曲線を指定し、従来の曲線と比較して性能、サイドチャネル耐性、および実装の簡素化を実現し ている。また、この推奨事項では、より柔軟な実装を可能にするために、これらの新しい曲線の代替表現も規定する。この新しい曲線は、インターネット技術タスクフォース(IETF)の暗号フォーラム研究グループ (CFRG)が規定する曲線と相互運用が可能である。 |
・[PDF]
エグゼクティブサマリー
Executive Summary | エグゼクティブサマリー |
This Recommendation specifies the set of elliptic curves recommended for U.S. Government use. It includes: | この推奨事項は、米国政府の使用に推奨される楕円曲線一式を規定するものである。これには以下が含まれる。 |
− Specification of elliptic curves previously specified in Federal Information Processing Standard (FIPS) 186-4, Digital Signature Schemes [FIPS_186-4]. This includes both elliptic curves defined over a prime field and curves defined over a binary field. Although the specifications for elliptic curves over binary fields are included, these curves are now deprecated. It is strongly recommended to use the other prime curves. | ・連邦情報処理標準(FIPS) 186-4「デジタル署名方式」[FIPS_186-4]に規定されていた楕円曲線 の仕様。これには、素数体上で定義された楕円曲線と2進数体上で定義された楕円曲線の両方が含まれる。2つ以上の楕円曲線も含まれているが、これらの楕円曲線は現在では非推奨である。他の素数曲線の利用を強く推奨する。 |
− Specification of new Montgomery and Edwards curves, which are detailed in Elliptic Curves for Security [RFC_7748]. | ・セキュリティのためのEllipti曲線 [RFC_7748]に詳述されている,新しいMontgomery曲線とEdwards曲線の仕様。 |
− A reference for the Brainpool curves specified in [RFC_5639]. These curves are allowed to be used for interoperability reasons (i.e., to accommodate inclusion in FIPS-validated products). | ・[RFC_5639]で指定されたBrainpool曲線のリファレンス。これらの曲線は、相互運用性の理由(すなわち、FIPS Validated製品に含めるため)で使用することが許されている。 |
− A reference for the curve secp256k1 specified in [SEC_2]. This curve is allowed to be used for blockchain-related applications. | ・[SEC_2]で指定された曲線secp256k1に対する参照。この曲線は、ブロックチェーン関連のアプリケーションに使用することが許可されている。 |
− Elliptic curves in FIPS 186-4 that do not meet the current bit security requirements put forward in NIST Special Publication (SP) 800-57, Part 1, Recommendation for Key Management: Part 1 – General [SP_800-57], are now legacy-use. They may be used to process already protected information (e.g., decrypt or verify) but not to apply protection to information (e.g., encrypt or sign). Also see NIST SP 800-131A, Transitions: | ・FIPS 186-4の楕円曲線で、NIST 特別出版物 (SP) 800-57, Part 1, 鍵管理のための推奨事項で提示された現在のビットセキュリティ要件を満たさないもの。Part 1 - General [SP_800-57]で提示された現在のビットセキュリティ要件を満たさないFIPS 186-4は、現在、レガシー使用となる。これらは、既に保護されている情報の処理(例:復号化、検証)には使用できるが、情報への保護適用(例:暗号化、署名)には使用できない。また、NIST SP 800-131A「移行」を参照。 |
Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths [SP_800-131A]. | 暗号アルゴリズムと鍵長の使用移行に関する推奨事項[SP_800-131A]も参照のこと。 |
This Recommendation provides details regarding the group operations for each of the specified elliptic curves and the relationship between the various curve models, allowing for flexibility regarding the use of curves most suitable in particular applications. It also gives cryptographic criteria for the selection of suitable elliptic curves and provides more details on finite field arithmetic and data representation than were available in FIPS 186-4. | この推奨事項では、特定のアプリケーションに最適な曲線を柔軟に使用できるように、指定された楕円曲線 のグループ操作に関する詳細と、さまざまな曲線モデル間の関係を示している。また、適切な楕円曲線を選択するための暗号学的な基準を示し、FIPS 186-4 で利用可能であったものより、有限体演算およびデータ表現に関する詳細を提供する。 |
目次...
Executive Summary | エグゼクティブサマリー |
1 Introduction | 1 序文 |
2 Overview of Elliptic Curves | 2 楕円曲線の概要 |
2.1. Non-binary Curves | 2.1. 非二値曲線 |
2.1.1. Curves in Short-Weierstrass Form | 2.1.1. Short-Weierstrass形式の曲線 |
2.1.2. Montgomery Curves | 2.1.2. モンゴメリー曲線 |
2.1.3. Twisted Edwards Curves | 2.1.3. ねじれたエドワーズ曲線 |
2.2. Binary Curves | 2.2. 二次曲線 |
2.2.1. Curves in Short-Weierstrass Form | 2.2.1. Short-Weierstrass 形式の曲線 |
3 Recommended Curves for U.S. Federal Government Use | 3 米国連邦政府が使用する推奨曲線 |
3.1 Choices of Key Lengths, Underlying Fields, Curves, and Base Points | 3.1 鍵長、基礎となるフィールド、曲線、および基点の選択 |
3.1.1. Choice of Key Lengths | 3.1.1. 鍵の長さの選択 |
3.1.2. Choice of Underlying Fields | 3.1.2. 基礎となるフィールドの選択 |
3.1.3. Choice of Basis for Binary Fields | 3.1.3. バイナリフィールドの基礎の選択 |
3.1.4. Choice of Curves | 3.1.4. 曲線の選択 |
3.2. Curves Over Prime Fields | 3.2. 素数体上の曲線 |
3.2.1. Weierstrass Curves | 3.2.1. ワイエルストラス曲線 |
3.2.2. Montgomery Curves | 3.2.2. モンゴメリー曲線 |
3.2.3. Twisted Edwards Curves | 3.2.3. ツイスト・エドワーズ曲線 |
3.3. Curves Over Binary Fields (Deprecated) | 3.3. バイナリフィールド上の曲線 (非推奨) |
3.3.1. Koblitz Curves | 3.3.1. Koblitz曲線 |
3.3.2. Pseudorandom Curves | 3.3.2. 擬似ランダム曲線 |
References | 参考文献 |
Appendix A. Details of Elliptic Curve Group Operations | 附属書A.楕円曲線群演算の詳細 |
A.1. Non-binary Curves | A.1. 非二値曲線 |
A.1.1. Group Law for Weierstrass Curves | A.1.1. Weierstrass曲線の群法 |
A.1.2. Group Law for Montgomery Curves | A.1.2. モンゴメリ曲線の群法則 |
A.1.3. Group Law for Twisted Edwards Curves | A.1.3. Twisted Edwards曲線に対する群法則 |
A.2. Binary Curves | A.2. 二次曲線 |
A.2.1. Group Law for Weierstrass Curves | A.2.1. Weierstrass曲線の群法 |
Appendix B. Relationships Between Curve Models | 附属書B. 曲線モデル間の関係 |
B.1. Mapping Between Twisted Edwards Curves and Montgomery Curves | B.1. Twisted Edwards曲線とMontgomery曲線の対応付け |
B.2. Mapping Between Montgomery Curves and Weierstrass Curves | B.2. モンゴメリ曲線とWeierstrass曲線の対応付け |
B.3. Mapping Between Twisted Edwards Curves and Weierstrass Curves | B.3. Twisted Edwards曲線とWeierstrass曲線の対応付け |
B.4. 4-Isogenous Mapping | B.4. 4-アイソジニアス・マッピング |
Appendix C. Generation Details for Recommended Elliptic Curves | 附属書C. 推奨楕円曲線の生成詳細 |
C.1. General Cryptographic Criteria | C.1. 一般的な暗号化基準 |
C.1.1. Implementation Security Criteria | C.1.1. 実装セキュリティ基準 |
C.2. Curve Generation Details | C.2. 曲線生成の詳細 |
C.2.1. Weierstrass Curves Over Prime Fields | C.2.1. 素数体上のWeierstrass曲線 |
C.2.2. Montgomery Curves | C.2.2. モンゴメリー曲線 |
C.2.3. Twisted Edwards Curves | C.2.3. ねじれたエドワーズ曲線 |
C.2.4. Weierstrass Curves over Binary Fields | C.2.4. バイナリフィールド上のWeierstrass曲線 |
C.3. Generation and Verification of Pseudorandom Curves | C.3. 擬似ランダム曲線の生成と検証 |
C.3.1. Generation of Pseudorandom Curves (Prime Case) | C.3.1. 擬似ランダム曲線の生成(素数の場合) |
C.3.2. Verification of Curve Generation (Prime Case) | C.3.2. 曲線生成の検証 (素数の場合) |
C.3.3. Generation of Pseudorandom Curves (Binary Case) | C.3.3. 擬似乱数曲線の生成(バイナリケース) |
C.3.4. Verification of Curve Generation (Binary Case) | C.3.4. 曲線生成の検証(バイナリの場合) |
Appendix D. Elliptic Curve Routines | 附属書D. 楕円曲線ルーチン |
D.1. Public Key Validation | D.1. 公開鍵の検証 |
D.1.1. Non-binary Curves in Short-Weierstrass Form | D.1.1. Short-Weierstrass形式の非二値曲線 |
D.1.2. Montgomery Curves | D.1.2. モンゴメリ曲線 |
D.1.3. Twisted Edwards Curves | D.1.3. ねじれたエドワーズ曲線 |
D.1.4. Binary Curves in Short-Weierstrass Form | D.1.4. Short-Weierstrass形式の2次曲線 |
D.2. Point Compression | D.2. 点の圧縮 |
D.2.1. Prime Curves in Short-Weierstrass Form | D.2.1. Short-Weierstrass形式の素数曲線 |
D.2.2. Binary Curves in Short-Weierstrass Form | D.2.2. Short-Weierstrass形式の二次曲線 |
Appendix E. Auxiliary Functions | 附属書E. 補助関数 |
E.1. Computing Square Roots in Binary Fields | E.1. 二項演算子における平方根の計算 |
E.2. Solving the Equation x2 + x = w in Binary Fields | E.2. 二項演算子で方程式x2 + x = wの解法 |
E.3. Computing Square Roots in Non-Binary Fields GF(q) | E.3. 非二項体GF(q)の平方根の計算 |
E.4. Computing Inverses in GF(q) | E.4. GF(q)における逆数の計算 |
Appendix F. Data Conversion | 附属書F. データ変換 |
F.1. Conversion of a Field Element to an Integer | F.1. フィールド要素から整数への変換 |
F.2. Conversion of an Integer to a Field Element | F.2. 整数からフィールド要素への変換 |
F.3. Conversion of an Integer to a Bit String | F.3. 整数からビット列への変換 |
F.4. Conversion of a Bit String to an Integer | F.4. ビット列から整数への変換 |
Appendix G. Implementation Aspects | 附属書G. 実装面 |
G.1. Implementation of Modular Arithmetic | G.1. モジュラー型算術演算の実装 |
G.1.1. Curve P-224 | G.1.1. 曲線P-224 |
G.1.2. Curve P-256 | G.1.2. 曲線P-256 |
G.1.3. Curve P-384 | G.1.3. 曲線P-384 |
G.1.4. Curve P-521 | G.1.4. 曲線P-521 |
G.1.5. Curve25519 | G.1.5. 曲線25519 |
G.1.6. Curve448 | G.1.6. 曲線448 |
G.2. Scalar Multiplication for Koblitz Curves | G.2. Koblitz曲線のスカラー倍算 |
G.3. Polynomial and Normal Bases for Binary Fields | G.3. バイナリフィールドの多項式基底と正規基底 |
G.3.1. Normal Bases | G.3.1. 正規基底 |
G.3.2. Polynomial Basis to Normal Basis Conversion | G.3.2. 多項式基底と正規基底の変換 |
G.3.3. Normal Basis to Polynomial Basis Conversion | G.3.3. 正規基底から多項式基底への変換 |
Appendix H. Other Allowed Elliptic Curves | 附属書H. その他の許容される楕円曲線 |
H.1. Brainpool Curves | H.1. ブレインプール曲線 |
H.2. The Curve secp256k1 | H.2. 曲線secp256k1 |
Appendix I. List of Symbols, Abbreviations, and Acronyms | 附属書I. 記号・略語・頭字語の一覧表 |
Appendix J. Glossary | 附属書J. 用語集 |
Comments