If you know the private key it is trivial to calculate the public key, but the reverse isn't true
I didn't believe this is true... In public/private key crypto there is no such thing as "private" and "public". They're just a key pair. You choose to make one public by sharing it and the other private by not sharing it.