Elgamal-Encryption

ElGamal 和 Schnorr 組

  • January 24, 2015

據我所知,為 ElGamal 密鑰生成選擇循環組的正常做法是找到一個安全的素數 $ p $ 並使用具有模數的乘法循環群 $ p $ 並訂購 $ q = (p-1)/2 $ . 但是,生成大長度的安全素數可能非常耗時。使用Schnorr 組作為替代方案是否安全?

如果沒有安全的方法,我可以為安全的素數使用多大的最小尺寸,這樣它既安全又不會太長選擇?

注意顯而易見:對於Elgamal 簽名生成,您必須在使用者之間共享參數。如果我(重新)閱讀Elgamal 加密,那麼在我看來該參數 $ p $ 或者 $ q $ (安全素數)也需要提前共享。儘管安全素數的生成可能很耗時,但您不需要為每個簽名生成或解密都執行此操作 - 參數可能是靜態的。

至於密鑰大小,素數的密鑰大小必須與 RSA 和 DH 密鑰的大小一樣大。這是因為安全性與Diffie-Hellman 問題的難度有關。這意味著您可以在keylength.com之類的網站上查找尺寸,並查找“離散對數”或來源所需的尺寸,例如 NIST(美國)或 ECRYPT II(歐洲),它引用。

因此,沒有必要使用比 Elgamal 簽名生成或加密所需的具有額外屬性的素數。與加密/解密相比,任何一代大素數都將花費大量時間。如果您想要效率,那麼您可以共享(命名)參數。

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