1. A method for generating an error correcting code, comprising: developing data bits to be encoded; generating a non-binary group of values; and using a computer processor to generate the error correcting code that is a linear code from the non-binary group of values and the data bits, wherein said linear code is a code that includes the sum of all vectors in the code, wherein the error correcting code is associated with an asymmetrical channel and configured to identify an error of a first type when a syndrome value comprises a value of a parity matrix and to identify an error of a second type when the syndrome value comprises a difference between a modulo value associated with the code and a value of the parity matrix.