In [this post from security SE][1], Tom Leek mentioned that, for diffie-hellman to be secure order of the group $g$ should have a prime factor at least $2k$ bits long, where $k$ is the security parameter. Why is it so? Order of $g$ has to be large, otherwise discrete log would be easy. But I couldn't see any other reason why the order of $g$ should have a large prime factor. And why should it be at least $2k$ bits long (instead of $k$ bits long)? It also says the private keys $a$ and $b$ should also be $2k$ bits long. They should be large, otherwise discrete log would be easy. But why should they be $2k$ bits long, instead of $k$ bits long? [1]: https://security.stackexchange.com/questions/54359/what-is-the-difference-between-diffie-hellman-generator-2-and-5/54367#54367