Java based exploration of elliptic curve groups and how they can be used for elliptic curve cryptography