2010-12-22 47 views
3

elgamal簽名方案如何找到生成器?是否有大多數優秀的生成器程序使用的值?還是有一種方法來找到一個發電機的一個主要價值?如果是這樣,怎麼樣?說一個素數有至少一個發生器是否是真的?找到elgamal的生成器

+0

這個問題更適合加密交換。問題標題還應提及「簽名」(因爲還存在Elgamal加密)。 – SquareRootOfTwentyThree 2012-04-19 06:38:13

回答

0

El Gamal可以看作是Diffie Hellman算法的一個變體,後者的參數可以用於前者。因此,例如,您可以使用RFC 2409中的IKE組1和2,以及更大的IKE組撒在其他RFC中。您也可以參考FIPS 186中的討論來生成DSA參數。另請參閱this discussion of primitive roots

編輯:
正如@abc所指出的,這對el gamal簽名是錯誤的。按照DSA鏈接(FIPS 186)。

+0

這是錯的。 OP詢問有關簽名方案而非加密。 – abc 2010-12-22 14:21:27

+1

@abc:哎呀,很好。 – 2010-12-22 23:17:00

1

使用DSA而不是ElGamal簽名方案。

實施ElGamal的錯誤太多了。其中一個錯誤是GregS提出的:使用IKE參數。這些參數是爲ElGamal加密生成的,而不是用於簽名方案。這兩種方案有不同的要求。特別是使用g = 2作爲生成器是加密的不錯選擇,但是對於簽名方案來說,這是一個非常糟糕的選擇。 (有關詳細信息,請參閱第11章中的「應用密碼學手冊」http://www.cacr.math.uwaterloo.ca/hac/注11.67)。正確的做法是隨機選擇發生器。但是再一次,如果您只是使用DSA,那麼您可以通過遵循標準來避免這些缺陷。

只需添加一點點:OpenPGP http://tools.ietf.org/html/rfc4880用於允許ElGamal簽名,但不久前已棄用它們。這種棄用是相當合理的,因爲DSA只有優勢:更高效,更安全和標準化。當然,你可以看看舊的PGP實現,但它不會告訴你這些實現是否在沒有閱讀文獻的情況下爲你提供合理的選擇。

1

elgamal簽名方案如何找到生成器? 是否有值被大多數好的生成器程序使用? 還是有一種方法來找到一個發電機的素數值?如果是這樣,怎麼樣?

您可以在Handbook of Applied Cryptography中使用通用的概率算法4.86。您仍然需要從這種算法的輸出中清除已知對Elgamal簽名不安全的值。至少有任何值除p-1(例如2)和任何其值相除的值p-1。請注意,這些是我知道今天的條件。對該主題發表的論文可能需要進行深入的研究。

個人而言,我不會相信現有程序中已經使用的域參數。作者可能沒有考慮到上述所有條件,加上研究可能會突出顯示新條件,因爲他們被選中。

說一個素數有至少一個生成器是否屬實?

絕對真實:有總是爲乘法羣至少一個發電機在所述整數模p(與p爲素數)。它實際上有很多種:phi(phi(p)),其中phitotient function。儘管如此,並不是所有的人都能安全的使用Elgamal簽名方案。