數論:有效的模冪運算
如果:
$$ \begin{align} k &= a\cdot b\cdot c\ k_m &= k \bmod m\ a_m &= a \bmod m\ b_m &= b \bmod m\ c_m &= c \bmod m\ \end{align} $$ 然後是 $ B^{k_m} \bmod N $ 總是等同於:
$$ \left(\left(B^{a_m} \bmod N\right)^{b_m} \bmod N\right) ^ {c_m} \bmod N $$ 如果不是,反例是什麼?
如果不是,反例是什麼?
反例:
$ a = 2, b = 2, c = 2, m = 3, N = 5, B = 2 $
在這種情況下, $ k = 8 $ 和 $ k_m = 2 $ .
我們有 $ B^{k_m} \bmod N = 4 $ , 但 $ (((B^{a_m} \bmod N)^{b_m} \bmod N)^{c_m} \bmod N = 1 $
另一方面,如果 $ N $ 是素數,並且 $ m = N-1 $ ,那麼它總是正確的。
根據歐拉定理,這對於 $ m:= \phi(N) $ , 和 $ \phi $ 是歐拉的全部函式(在特殊情況下 $ N $ 是素數,你有 $ \phi(N)=N-1 $ , 如果 $ N $ 是兩個不同素數的乘積 $ p $ 和 $ q $ , 你有 $ \phi(N)=(p-1)(q-1) $ ), 如果 $ B_k $ 和 $ N $ 是互質的。一般來說,在計算模數時 $ N $ , 你可以計算指數模 $ \phi(N) $ , 所以你有了
$ k_m\equiv k=a\cdot b\cdot c\equiv a_m\cdot b_m\cdot c_m \mod \phi(N) $
因此
$ B^k_m\equiv B_m^{a_m\cdot b_m\cdot c_m} = (((B_m^{a_m})^{b_m})^{{c_m}})\mod N $ .
如果 $ m $ 是一個任意數(或 $ B_k $ 和 $ N $ 有一個公約數不是 $ 1 $ ),正如雨披所說,身份通常是假的。