7. 余因子の消去
第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] は、効率的に計算可能な自同型(endomorphism)を利用して高速に余因子を消去する方法を説明しています。Fuentes-Castañeda ら [FKR11] は、より効率的な場合がある代替方法を提案しました。Budroni と Pintore [BP17] は、Barreto-Lynn-Scott ペアリングフレンドリー曲線 [BLS03] に対するこれらの方法の具体的なインスタンス化を示しています。付録 G.3 では、BLS12-381 の特定の場合に対するこの方法を説明しています。
-
Wahby と Boneh ([WB19]、第5節) は、h の素因数分解と楕円曲線群の構造が特定の条件を満たす場合に、あらゆる楕円曲線で余因子を高速に消去するための Scott のテクニックを説明しています。
clear_cofactor 関数は、スカラー h_eff によってパラメータ化されます。具体的には、
clear_cofactor(P) := h_eff * P
ここで * はスカラー倍を表します。曲線が高速な余因子消去法をサポートしていない場合、h_eff = h であり、スカラー倍によって余因子を消去しなければなりません。
曲線が高速な余因子消去法を許可している場合、clear_cofactor はその方法、または同等の h_eff によるスカラー倍のいずれかによって評価できます。どちらの方法も同じ結果を与えます。注意点として、この場合、余因子 h によるスカラー倍は通常、高速な方法と同じ結果を与えないため、使用してはなりません(MUST NOT)。