An interleaver employs a generalized method of generating a mapping. The
mapping is generated for interleaving bits of a data block and associated
error detection/correction information. The data block is of length N,
and the length of the error detection/correction information is P. An
(N+P).times.(N+P) square matrix is formed and divided into sub-blocks,
where one portion of the matrix is associated with error
detection/correction information and another portion is associated with
data of the data block. New positions in the matrix are generated in a
time sequence on a sub-block by sub-block basis based on a generator seed
pair and an original position seed pair. The time sequence also
corresponds to positions in an output interleaved block. Once the new
position sequence is generated, the matrix is populated with data and
error detection/correction information based on the corresponding time
sequence. A de-interleaver performs the inverse mapping of the
interleaver.