Improving Cryptographic Constructions Using Coding Theory