Patent ID: 7206994

Claim:
A computer-implemented method of verifying a data block using a checksum for the data block calculated by reduction, the method comprising the steps of: (a) receiving the data block; (b) partitioning the data block into N segments of a data matrix, N being an integer greater than one; (c) comparing N to a number of segments processed by each of at least two reduction stages, the at least two reduction stages arranged in a tree structure; (d) If N is less than or equal to the number of segments processed by a highest level reduction stage, then: (1) processing the data matrix with a lowest level reduction stage that is configured to process the entire data matrix to generate a new data matrix, and (2) repeating step (d)(1) for each subsequent new data matrix until two data segments remain; otherwise, if N is greater than the number of segments processed by the highest-level reduction stage, then: (3) dividing the data matrix into one or more portions; (4) processing one matrix portion with the highest-level reduction stage that is configured to process the matrix portion to generate a new data matrix, (5) repeating steps (d)(1) and (d)(2) for each subsequent new data matrix of the one matrix portion until two data segments corresponding to the one matrix portion remain, (6) appending another portion of the data matrix to the two data segments corresponding to the one matrix portion, and (7) repeating step (d) until no matrix portions remain; (e) combining the remaining two data segments to provide a checksum result; and (f) verifying the integrity of the received data block based on the checksum result.