RFC 9380
Internet Research Task Force (IRTF) A. Faz-Hernandez Request for Comments: 9380 Cloudflare, Inc. Category: Informational S. Scott ISSN: 2070-1721 Oso Security, Inc. N. Sullivan Cloudflare, Inc. R. S. Wahby Stanford University C. A. Wood Cloudflare, Inc. August 2023
楕円曲線へのハッシュ
概要
この文書は、細かな文字列を楕円曲線上の点にエンコードまたはハッシュするための多くのアルゴリズムを指定します。この文書は、IRTF の暗号フォーラム研究グループ (CFRG) の成果物です。
このメモのステータス
この文書はインターネット標準トラックの仕様ではありません。情報提供を目的として公開されています。
この文書はインターネットリサーチタスクフォース (IRTF) の成果物です。IRTF は、インターネットに関連する研究および開発活動の結果を公開しています。これらの結果はデプロイに適していない可能性があります。この RFC は、インターネットリサーチタスクフォース (IRTF) の暗号フォーラム研究グループのコンセンサスを代表するものです。IRSG によって公開が承認された文書は、いかなるレベルのインターネット標準の候補でもありません。RFC 7841 のセクション 2 を参照してください。
この文書の現在のステータス、正誤表、およびフィードバックの提供方法に関する情報は、https://www.rfc-editor.org/info/rfc9380 から入手できます。
著作権表示
Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.
目次
- はじめに 1.1. 要件表記
- 背景 2.1. 楕円曲線 2.2. 用語 2.2.1. マッピング 2.2.2. エンコーディング 2.2.3. ランダムオラクルエンコーディング 2.2.4. シリアル化 2.2.5. ドメイン分離
- バイト文字列の楕円曲線へのエンコード 3.1. ドメイン分離の要件
- ユーティリティ関数 4.1. sgn0 関数
- 有限体へのハッシュ 5.1. 拡大体における効率の考慮事項 5.2. hash_to_field の実装 5.3. expand_message 5.3.1. expand_message_xmd 5.3.2. expand_message_xof 5.3.3. 255バイトより長い DST の使用 5.3.4. 他の expand_message バリアントの定義
- 決定論的マッピング 6.1. マッピング関数の選択 6.2. インターフェース 6.3. 表記 6.4. 結果の点の符号 6.5. 例外的なケース 6.6. Weierstrass 曲線のマッピング 6.6.1. Shallue-van de Woestijne 法 6.6.2. 簡略化 Shallue-van de Woestijne-Ulas 法 6.6.3. AB == 0 の場合の簡略化 SWU
- 余因子の消去
- ハッシュスイート 8.1. hash-to-curve スイートの実装 8.2. NIST P-256 スイート 8.3. NIST P-384 スイート 8.4. NIST P-521 スイート 8.5. curve25519 および edwards25519 スイート 8.6. curve448 および edwards448 スイート 8.7. secp256k1 スイート 8.8. BLS12-381 スイート 8.8.1. BLS12-381 G1 8.8.2. BLS12-381 G2 8.9. 新しい hash-to-curve スイートの定義 8.10. スイート ID の命名規則
- IANA に関する考慮事項
- セキュリティに関する考慮事項 10.1. エンコーディングの属性 10.2. パスワードのハッシュ 10.3. 定数時間の要件 10.4. encode_to_curve: 出力分布と識別不能性 10.5. hash_to_field のセキュリティ 10.6. expand_message_xmd のセキュリティ 10.7. expand_message バリアントのドメイン分離 10.8. ターゲットセキュリティレベル
- 参考文献 11.1. 引用規格 11.2. 参考資料 付録 A. 関連研究 付録 B. ristretto255 へのハッシュ 付録 C. decaf448 へのハッシュ 付録 D. 有理写像 D.1. Montgomery 曲線から Twisted Edwards 曲線への汎用マッピング D.2. Weierstrass 曲線から Montgomery 曲線へのマッピング 付録 E. スイートの同源写像 E.1. secp256k1 の 3-Isogeny マップ E.2. BLS12-381 G1 の 11-Isogeny マップ E.3. BLS12-381 G2 の 3-Isogeny マップ 付録 F. 決定論的マッピングの直線実装 F.1. Shallue-van de Woestijne 法 F.2. 簡略化 SWU 法 F.2.1. sqrt_ratio サブルーチン F.3. Elligator 2 法 付録 G. 曲線固有の最適化されたサンプルコード G.1. インターフェースと射影座標系 G.2. Elligator 2 G.2.1. curve25519 (q = 5 (mod 8), K = 1) G.2.2. edwards25519 G.2.3. curve448 (q = 3 (mod 4), K = 1) G.2.4. edwards448 G.2.5. q = 3 (mod 4) の Montgomery 曲線 G.2.6. q = 5 (mod 8) の Montgomery 曲線 G.3. BLS12-381 G2 の余因子消去 付録 H. パラメータ生成スクリプト H.1. Shallue-van de Woestijne マップの Z の探索 H.2. 簡略化 SWU の Z の探索 H.3. Elligator 2 の Z の探索 付録 I. sqrt および is_square 関数 I.1. q = 3 (mod 4) の sqrt I.2. q = 5 (mod 8) の sqrt I.3. q = 9 (mod 16) の sqrt I.4. 定数時間 Tonelli-Shanks アルゴリズム I.5. F = GF(p^2) の is_square 付録 J. スイートテストベクトル J.1. NIST P-256 J.1.1. P256_XMD:SHA-256_SSWU_RO_ J.1.2. P256_XMD:SHA-256_SSWU_NU_ J.2. NIST P-384 J.2.1. P384_XMD:SHA-384_SSWU_RO_ J.2.2. P384_XMD:SHA-384_SSWU_NU_ J.3. NIST P-521 J.3.1. P521_XMD:SHA-512_SSWU_RO_ J.3.2. P521_XMD:SHA-512_SSWU_NU_ J.4. curve25519 J.4.1. curve25519_XMD:SHA-512_ELL2_RO_ J.4.2. curve25519_XMD:SHA-512_ELL2_NU_ J.5. edwards25519 J.5.1. edwards25519_XMD:SHA-512_ELL2_RO_ J.5.2. edwards25519_XMD:SHA-512_ELL2_NU_ J.6. curve448 J.6.1. curve448_XOF:SHAKE256_ELL2_RO_ J.6.2. curve448_XOF:SHAKE256_ELL2_NU_ J.7. edwards448 J.7.1. edwards448_XOF:SHAKE256_ELL2_RO_ J.7.2. edwards448_XOF:SHAKE256_ELL2_NU_ J.8. secp256k1 J.8.1. secp256k1_XMD:SHA-256_SSWU_RO_ J.8.2. secp256k1_XMD:SHA-256_SSWU_NU_ J.9. BLS12-381 G1 J.9.1. BLS12381G1_XMD:SHA-256_SSWU_RO_ J.9.2. BLS12381G1_XMD:SHA-256_SSWU_NU_ J.10. BLS12-381 G2 J.10.1. BLS12381G2_XMD:SHA-256_SSWU_RO_ J.11.2. BLS12381G2_XMD:SHA-256_SSWU_NU_ 付録 K. Expand テストベクトル K.1. expand_message_xmd(SHA-256) K.2. expand_message_xmd(SHA-256) (Long DST) K.3. expand_message_xmd(SHA-512) K.4. expand_message_xof(SHAKE128) K.5. expand_message_xof(SHAKE128) (Long DST) K.6. expand_message_xof(SHAKE256) 謝辞 貢献者 著者の住所