Elliptic-Curves

從標量場元素中減去模數和減少模數有什麼區別?

  • January 15, 2019

在實現 Field 元素時,我們定義了對資料結構的必要操作。

我看到的一個功能是“標量減少”功能,它有效地減少了隨機標量,使其位於標量場中。

這和從這個數字中減去模數有什麼區別?

例子:

令 a 為隨機選擇的標量 令 q 為模數

我已經看到執行以下操作的程式碼:

if a > q{
 a = q-a
}

為什麼它不嘗試通過模數來減少 a?

我們有許多密碼學的數學運算$$ \neg, \ll, \gg , \oplus, + , \times, /, \operatorname{mod}, \operatorname{div}, \operatorname{exponential},\ldots $$而這樣的例子不勝列舉。眾所周知,時間就是金錢,所有的操作都有一定的成本。我們的目標是盡可能降低成本。

例如,我們更喜歡左移而不是乘以 2 的冪

$$ n \cdot 2^k = n \ll k $$

或右移到除以二的冪

$$ n / 2^k = n \gg k $$

按位和運算符的組合 ( $ \wedge $ ) 和 2 的冪減 1 到餘數

$$ n \mod 2^k = n \wedge (2^k-1). $$

乘法和除法的成本降低為移位運算的成本和余數的成本為 $ \wedge $ (模數 $ 2^k $ 相當於採取 $ k $ 最低有效位)。


在你的問題中,你寫了

if a > q{
 a = q-a
}

這應該是

if a >= q{
 a = a-q
}

正如@fgrieu 在評論中所指出的那樣,通過減法進行模組化減少。

在你的情況下,我們有一個素數 $ q $ 我們正在嘗試取模數。計算期間的一種方法是在最後減少模數。但是,這可能會增加操作數的大小,這將導致更大的操作成本。

我從您的程式碼中可以看出,他們通過減法來減少數字 $ q $ . 假設結果 $ r = a-q $ 總是在$$ 0 \leq r < q $$那麼我們可以說$$ q\leq a<2q, $$看到這個減法 $ q $ 從上面的等式;

$$ q-q \leq a-q <2q-q $$並得到

$$ 0 \leq a-q=r <q. $$

引用自:https://crypto.stackexchange.com/questions/66489