Lattice cryptography