7. 余因子の除去 (Clearing the Cofactor)
第 6 節の写像は常に楕円曲線上の点、すなわち位数 h * r の群(第 2.1 節)に属する点を出力します。G 内の点を得るには、一般に「余因子の除去」(clearing the cofactor) と呼ばれる最終的な演算が必要となる場合があります。この演算は、曲線上の任意の点を入力として受け取り、素数位数の(部分)群 G(第 2.1 節)内の点を出力として生成します。
余因子は常に h によるスカラー倍算によって除去できます。h = 1 である楕円曲線、すなわち点の個数が素数である曲線については、いかなる演算も不要です。これはたとえば NIST 曲線 P-256、P-384、および P-521 [FIPS186-4] に当てはまります。
場合によっては、h によるスカラー倍算よりも高速な方法で余因子を除去することが可能です。これらの方法は、その方法と曲線によって値が定まる何らかのスカラー h_eff による乗算と等価です(ただし通常はそれより高速です)。高速な余因子除去法の例には次のものが含まれます。
-
拡大体上の部分群 G2 を持つ、ある種のペアリングフレンドリー曲線について、Scott ら [SBCDK09] は効率的に計算可能な自己準同型を利用した高速な余因子除去法を記述しています。Fuentes-Castañeda ら [FKR11] は、場合によってより効率的な代替手法を提案しています。Budroni と Pintore [BP17] は、Barreto-Lynn-Scott ペアリングフレンドリー曲線 [BLS03] に対するこれらの手法の具体的な実体化を示しています。この手法は BLS12-381 という特定の場合について付録 G.3 で記述されています。
-
Wahby と Boneh([WB19]、第 5 節)は、h の素因数分解と楕円曲線群の構造がある種の条件を満たす任意の楕円曲線上で高速に余因子を除去する、Scott による技法を記述しています。
clear_cofactor 関数はスカラー h_eff によってパラメータ化されます。具体的には、
clear_cofactor(P) := h_eff * P
ここで * はスカラー倍算を表します。曲線が高速な余因子除去法をサポートしない場合、h_eff = h であり、余因子はスカラー倍算によって除去されなければなりません (MUST)。
曲線が高速な余因子除去法を許容する場合、clear_cofactor はその方法によって評価してもよく、あるいは等価な h_eff によるスカラー倍算によって評価してもかまいません (MAY)。これら 2 つの方法は同じ結果を与えます。この場合、余因子 h によるスカラー倍算は一般に高速な方法と同じ結果を与えず、使用してはならない (MUST NOT) ことに注意してください。