Algebra Geometry and Cryptography