子組生成:我們是否應該檢查 order 不是 2?還是g中的不會太小?
為了 $ p=2q+1 $ ,其中 p 和 q 是素數,我們有順序子群 $ p−1 $ , $ q $ , $ 2 $ 和 $ 1 $ . 尋找 $ G_q $ , 通常我們只檢查 $ g^q\bmod p=1 $ 就是這樣。
然而,這裡提到有一個機會(非常不可能,但仍然),一個滿足 $ g^q\bmod p=1 $ 是有序的 $ 1 $ 或者 $ 2 $ .
好的,假設我們開始檢查是否 $ g^q\bmod p $ 等於 $ 1 $ 從…開始 $ g=2 $ (消除 $ g=1 $ )。我看不出一個子組如何滿足 $ g^q\bmod p=1 $ 並且有秩序 $ 2 $ (所以 $ g^2\bmod p=1 $ 也)。似乎對於所有人來說 $ a $ 在 $ g^a\bmod p $ 結果是 $ 1 $ . 另一方面,由於 $ p $ 是一個素數並且 $ g^q\bmod p=1 $ 成立,那麼對於所有奇數 $ a $ 奇數等於 $ 1 $ 也。我看不到,除了 $ g =1 $ 可以滿足。我們是否需要檢查一下 $ g^2\bmod p $ 不是 $ 1 $ ?
附加問題,以從開始的遞增順序檢查所有整數是否是個好主意 $ g=2 $ ? 是否有任何與小型相關的安全問題 $ g $ ? 假設,在真正的 ElGamal 實現中 $ p $ 1024 位或 2048 位,我檢查所有 $ g $ 從 $ 2 $ 直到我找到 $ G_q $ 子群生成器。
我們是否需要檢查一下 $ g^2 \bmod p $ 不是 $ 1 $ ?
的唯一值 $ g $ 這是真的 $ g=1 $ 和 $ g=p-1 $ ; 避免這兩個值,你不需要那個檢查。
附加問題,以從開始的遞增順序檢查所有整數是否是個好主意 $ g=2 $ ?
好吧,沒有特定的安全理由說這是一個壞主意,但是有更簡單的方法:
- 如果我們選擇 $ p \equiv 7 \pmod 8 $ , 然後 $ g=2 $ 將永遠有序 $ q $
- $ g=4 $ 永遠有秩序 $ q $ (因為它始終是二次餘數)。
是否有任何與小型相關的安全問題 $ g $ ?
不,沒有問題。我們可以證明,解決 CDH 問題 $ g $ 並不比一般情況容易。