Gröbner Bases, Coding, and Cryptography