Discrete-Logarithm
展示計算以 a 為底的離散對數的有效算法如何用於高效計算以 b 為底的離散對數
我有一個練習,內容如下:
讓 $ 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 $ 是有效的。