Patent ID: 7426676

Claim:
A method of encoding data stored in a storage device comprising: generating a first polynomial whose roots comprise one or more powers of a primitive element of a Galois field; generating a second polynomial whose roots comprise one or more powers of a primitive element of said Galois field; generating a product of said first polynomial and said second polynomial; dividing a third polynomial by said product to generate an encoded codeword, said third polynomial used to represent a sector of data, said sector of data comprising a number of symbols; writing said encoded codeword onto a media of said storage device; and decoding data stored in said storage device comprising: reading said encoded codeword from said storage device; performing a first division of said encoded codeword by said first polynomial; determining whether a first remainder exists from said first division; first correcting said encoded codeword using said first remainder; performing a second division of said encoded codeword by said second polynomial; determining whether a second remainder exists from said second division; performing a third division of said encoded codeword by said product of said first and said second polynomials if said second remainder exists from said second division; determining a third remainder from said third division; and second correcting said encoded codeword using said third remainder.