Discrete-Logarithm

展示計算以 a 為底的離散對數的有效算法如何用於高效計算以 b 為底的離散對數

  • December 19, 2020

我有一個練習,內容如下:

讓 $ p $ 是一個奇數素數,並且讓 $ a $ 和 $ b $ 成為發電機 $ \mathbb{Z}​_p^* $ . 假設我們有一個有效的算法 $ A $ 用於計算帶底的離散對數 $ a $ . 展示如何使用此算法有效地計算以基為底的離散對數 $ b $ .

考慮到基本規則的變化,我做了以下事情:

B(b,x):
   return A(x) / A(b)

這是正確的,練習結束了嗎?我會說是的,但與我目前正在解決的其他練習相比,這非常容易,所以我認為我錯過了一些東西……

這是正確的,練習結束了嗎?

我不能說你的教授希望你在多大程度上明確表達,但它基本上是正確的(如果我給它評分,我會接受它作為答案)。現在,您的教授可能希望您解釋(或提供證明)為什麼這是正確的。

對我來說,有些事情有點不正確或缺失:

  • 如果 $ B $ 是一種“計算帶基的離散對數”的算法 $ b $ ”,它不需要輸入 $ b $ (很像 $ A $ 沒有輸入 $ a $ ).
  • 操作的具體內容並沒有詳細說明/,這遠非微不足道。拿 $ p=2311 $ , $ a=53 $ , $ b=3 $ , $ x=5 $ . $ A(x)\mapsto322 $ , $ A(b)\mapsto989 $ . 我們究竟是如何發現的 $ B(x)\mapsto1988 $ 從 $ 322/989 $ ?
  • 如果 $ A $ 以足夠的機率工作(包括,總是),確實 $ B $ 以足夠的機率(或如果適用,總是)工作以匹配要求證明的內容?
  • 沒有告訴為什麼 $ B $ 是有效的。

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