Gr?bner Bases, Coding, and Cryptography