I haven't looked into how to do this in Ruby, but at least with the
> command-line stuff from OpenSSL it seems to be trivial.  (That's quite
> contrary to my initial assumptions.  I was all set to tell you "no,
> the whole point is that you can't derive one from the other", and was
> fact-checking.  Apparently asymmetrical crypto is even more
> asymmetrical than I thought!)  Check out the answers to this question
> on SO:
>
>
> http://stackoverflow.com/questions/696472/given-a-private-key-is-it-possible-to-derive-its-public-key
>

Well, this is about RSA, not Elliptic Curve crypto (ECDSA), but the
main thing is all the same:  it should be easy to calculate the public
key from the private key, but it must be virtually impossible to do it
the other way.  The private key is just a huge random number that is
kept secret, and the public key is calculated from it somehow -- we
actually don't need to know how, that's something OpenSSL does
internally.

I think the Ruby API just misses a very important piece here. :(