1. A method of signing a data string, comprising the steps of: (a) hashing the data string and a seed value to generate a hash value; (b) encoding into an image point the hash value, the seed value, and a given portion of the data string; and (c) applying a given decryption primitive to the image point to obtain a digital signature of the data string.