如何为精英签名方案找到生成器?大多数程序是好的生成器,会使用哪些值?还是有找到找到素数生成器的方法?如果是这样,怎么办?可以说一个质数至少有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实现,但是如果不先阅读文献,它们不会告诉您这些实现是否为您提供了合理的选择。