It shouldn't be so easy to derive a private key from the corresponding public key. Is the attack you're referring to working because most of the bits of the private key are already known or am I missing something else here?
What specifically are you calling "so easy"?
If we're talking about "2^(n/2)", I don't see the problem. Why shouldn't it be that?