Patent ID: 7394407

Claim:
A method of encoding data from input data that is electronically stored into encoded data that is encoded according to a chain reaction code having systematic output symbols and non-systematic output symbols and that can be stored in machine-readable form and/or transmitted electronically, the method comprising: generating, from the input data, a set of input symbols comprising systematic output symbols; computing systematic keys for the input symbols in the set of input symbols including constructing a matrix having a dimension K and a dimension J, wherein K corresponds to the number of input symbols; generating, from the plurality of input symbols and corresponding systematic keys, a plurality of intermediate input symbols; and encoding the plurality of intermediate input symbols into one or more non-systematic output symbols, wherein one or more intermediate input symbols are selected from an alphabet of non-systematic output symbols and encoded into one non-systematic output symbol, with each non-systematic output symbol generated being a function of one or more of the plurality of intermediate symbols and being such that any subset of the set of input symbols is recoverable from (i) a predetermined number of non-systematic output symbols or (ii) a combination of (a) input symbols that are not included in the subset of input symbols that are to be recovered and (b) one or more of the non-systematic output symbols.