The Applications of Nature-Inspired Optimization Alogorithms in Coding Theory and Cryptography