Systems and methods for interleaving codes includes a processor that acts on a data frame received and stored in a memory. The processor separates portions of the data frame and permutes the portions, achieving maximum data scattering by using equations based on number theory.