代码之家  ›  专栏  ›  技术社区  ›  Corey Trager

对于diffie-helman素数和生成器,我应该使用什么密钥长度?

  •  2
  • Corey Trager  · 技术社区  · 15 年前

    在下面的代码中,来自crypto++wiki的128是我真正应该使用的数字吗?

    CryptoPP::AutoSeededRandomPool arngA;
    CryptoPP::RandomNumberGenerator& rngA = *dynamic_cast<CryptoPP::RandomNumberGenerator *>(&arngA); 
    CryptoPP::DH dhA(rngA, 128);
    CryptoPP::Integer iPrime = dhA.GetGroupParameters().GetModulus();
    CryptoPP::Integer iGenerator = dhA.GetGroupParameters().GetSubgroupGenerator();
    
    1 回复  |  直到 15 年前
        1
  •  3
  •   abc    14 年前

    整数因式分解和z/(pz)上的离散对数几乎同样困难。因此diffie-hellman的模的大小应该与您为rsa模选择的大小大致相同。如果您对1024位RSA密钥感到满意,那么您也可以轻松地使用1024位Diffie-Hellman密钥。

    很难判断crypto++中的密钥大小是以位还是字节度量的。 正如塞巴斯蒂安指出的那样,dha(rnga,128)确实可能生成一个128位diffie-hellman密钥,这个密钥太小了。通过代码看起来确实是这样。

    发电机发电机的大小不影响Diffie Hellman的安全。(即,发电机=2可能非常好)