MOFは符号付きバイナリ列の新しい標準的な表現で、右から左へだけでなく 左から右へも計算することもできる。
| 内容: |
| 動機: |
アーベル群のランダムな元に対する指数演算における最も共通な方法は 移動窓方式であり、これはいくつかの前計算を犠牲にしてバイナリ法の効率性を高めるものである。逆元計算が易しい(例えば、楕円曲線)群において、指数の符号付き表現は、必要となる前計算の量を減らすことができるので 意味がある。漸近的に最もよい符号付きの方法はw NAF(幅w の非隣接形式)である、なぜなら非零濃度がほぼ最適であるように前計算の試みが最小になっているからある。不運にも、幅w の非隣接形式は最下位ビットからしか計算することができない、すなわち右から左へしか計算することができない。しかしながら、メモリが抑制された機器との関連から左から右への記録方式は非常に貴重である。
整数d の表現はd=sum(di 2i) として表現し、ここで、di はT の元である。通常の2進表現としてT={0,1} を表し、この表現は一意的である。
もし、集合T が大きければ、すなわち負の数を許せば、一つの数に対して、いくつかの表現で表すことができる。
| 10進数 | 2進数 | T= | ||||||||||
| 181 | = | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | {0,1} | ||
| = | 1 | -1 | 1 | 0 | -1 | 1 | -1 | 1 | -1 | {-1,0,1} | ||
| = | 1 | 0 | -1 | 0 | -1 | 0 | 1 | 0 | 1 | {-1,0,1} | ||
ゴール
| 相互交代形式: |
定義(相互交代形式)
相互交代形式(Mutual Opposite Form(MOF))とは、以下の条件を満たす符号付きバイナリ列である:
例
互いに符号が交代している非零ビットの間にいくつかの0 ビットが挿入される。
MOFの例として、0 1 0 0 -1 0 1 0 0 0 -1 0 0 1 -1 0がある。
次に各バイナリ列は相互交代形式によって一意に表現することができることを証明する。
バイナリ列から相互交代形式への変換
n ビットのバイナリ列から(n+1) ビットの相互交代形式への単純かつ自由な変換を示す。
極めて重大なポイントは以下の点である。n ビットのバイナリ列d はmd = 2d - d を計算することによって変換できる、
ここで、- はビットの引き算とみなす。実はd を以下のように変形できる:
| 2d = | dn-1 | dn-2 | ... | di-1 | ... | d1 | d0 | |
| -d = | dn-1 | ... | di | ... | d2 | d1 | d0 | |
| md = | dn-1 | dn-2-dn-1 | ... | di-1-di | ... | d1-d2 | d0-d1 | -d0 |
アルゴリズム : バイナリ法から相互交代形式への左から右への変換
|
アルゴリズム: バイナリ法から相互交代形式への右から左への変換
|
定理
すべての非負整数d は幅w の相互交代形式としての表現を持ち、それは先頭の0 の個数を除いて一意的である。
| 幅wの非隣接形式 |
定義(幅w の非隣接形式)
符号付き桁の列は以下の3 つの条件を満たすとき、また、そのときに限り幅w の非隣接形式と呼ばれる:
アルゴリズム: 幅w の非隣接形式の生成
|
アルゴリズムは最下位ビットから幅w の非隣接形式を生成する、これは右から左への計算で生成される。 非零ビットの濃度の平均はn -> inftyのとき漸近的には、1/(w+1) であり、桁集合T={+ -1, + -3, ..., + - (2w-1-1)} は最小と思われる。
幅w の非隣接形式を左から右に計算することは不可能だと思われる。そこが、他の方法を探す動機である。
| 相互交代形式の窓法: |
このセクションでは、窓法を適用して相互交代形式の非零濃度をどのように減少させるかということを示す。
初めに右から左へ移り変わるように行われる幅w の非隣接形式の移動窓法を考える。以前から知られている生成方法とは対照的に、この新しい方法は桁上がりがない、すなわち各ステップですでに知られている多くともw+1 個の連続した入力されたビットについては十分である。
左から右へ行われる相互交代形式の幅w の移動窓法の類似の結果として、双対な新しいクラスである幅w の相互交代形式を定義する。
この変換は一般的な幅w に対する初めての左から右への記録方式である。
これらの関係は以下の図で示されている:

右から左で行なわれる場合: 幅w の非隣接形式
提案した方式を記述するために、幅w に対する変換のテーブルを必要とする。初めに、最初と最後のビットが0 でないような相互交代形式の長さl の幅への変換を定義する:


アルゴリズム: バイナリ法から幅wの非隣接形式への右から左への変換
|
左から右への計算の場合:幅w の相互交代形式
提案した方式を記述するために、幅w に対する変換表を必要とする。最初と最後のビットが0 でないようなMOFの長さl の幅への変換は右から左への計算の場合と同じ方法で
完全に定義される(前述のテーブルを見て、指定の場所をよく考えよ)。
幅w に対する完全なテーブルを生成するために、以下のように長さl=2, 3, ..., w に対するすべての変換を考えなければならない。
唯一の違いは、もし、l < w を満たせば、先頭の0 たちの代わりに中の0 たちでいっぱいになるところである。
そのような例として、幅4 に対する変換表Table4SWを構成する:

アルゴリズム:バイナリ法から幅w の相互交代形式への左から右への変換
|
Theorem
wMOFの非零濃度の平均は、n -> inftyのとき漸近的には、1/(w+1) である。
| ランダムな整数d (0 < d < 1024 )に対するMOF表現の計算: |
この変換器はランダムな整数d (0 < d < 1024 )に対するMOF表現の計算を行ない、その答えを出力します。その後、左から右もしくは右から左への移動窓法を適用することができます。