Hyper-Elliptic Curve Cryptography