Modular-Arithmetic

在 mod 欄位中查找指數的底

  • April 21, 2019

我有以下等式:

$$ base^{exp} = number \pmod n : base,exp \in \mathbb{N} $$另一個已知的事實是:

$$ gcd(base, number) = 1 $$

$$ n = 2^{2048} $$基地=

數字=

我知道底數和數字,我該如何計算指數?這與密碼學有關,因為我正在嘗試解碼消息。

求解離散對數模 $ 2^n $ 簡單。

你依賴這個:

如果我們有(對於奇數 $ e $ )$$ (n 2^{k+1} + 2^k + 1)^e = b \pmod{2^\lambda} $$

然後要麼:

$$ (n 2^{k+1} + 2^k + 1)^e = b \pmod{2^{\lambda+1}} $$

或者

$$ (n 2^{k+1} + 2^k + 1)^{e + 2^{\lambda-k}} = b \pmod{2^{\lambda+1}} $$

這可以證明是因為 $ (n 2^{k+1} + 2^k + 1)^{2^{\lambda-k}} \equiv 1 + 2^\lambda \pmod {2^{\lambda+1}} $ (二項式定理),等等 $ (n 2^{k+1} + 2^k + 1)^{e + 2^{\lambda-k}} \equiv (n 2^{k+1} + 2^k + 1)^e \cdot (1 + 2^\lambda) \equiv $ $ (n 2^{k+1} + 2^k + 1)^e + 2^\lambda \pmod{ 2^{\lambda+1} } $

所以,你可以從底部開始找到你的指數, $ 9^1 = 9 \bmod 16 $ ,然後擴展它以增加 $ \lambda $ , 直到你擊中 $ \lambda = 2048 $

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