Lattices: Algorithms, Complexity, and Cryptography Reunion