Elliptic and Hyperelliptic Curve Cryptography