Patent ID: 8256015

Claim:
A method for transmitting to a recipient, over a communications network, a plurality of data streams M (1) , . . . , M (k) where k is greater than one, wherein each data stream M (j) (j is from 1 to k inclusive) comprises a first sequence of data blocks M (j) 1 , . . . , M (j) n where n is greater than one, the method comprising: (A) for each data block M (j) i , determining, by a machine, a corresponding first-layer value which is either a hash of an input comprising the data block M (j) i or is equal to the data block M (j) i , wherein for at least one data block M (j) i , the corresponding first-layer value is the hash of an input comprising the data block M (j) i ; (B) obtaining, by the machine, an authentication value which comprises a digital signature or a message authentication code on a value h m which is the last value in a sequence of second-layer hash values h 1 , . . . , h m , wherein for each l from 1 and m inclusive, the corresponding second-layer hash value h l is associated with a set S l of one or more data blocks M (j) i and is a hash of one or more inputs comprising: (i) the first-layer value for each data block M (j) i in the associated set S l of one or more data blocks M (j) i ; and (ii) if l is greater than 1, then the one or more inputs comprise h l−1 , wherein for each data stream M (j) , the data stream M (j) comprises data blocks from at least two sets S l , and for any two sets S l 1 and S l 2 each of which has one or more blocks in M (j) and such that l 2 is greater than l 1 , each block in M (j) and S l 2 precedes each block in M (j) and S l 1 ; wherein each set S l comprises data blocks from different data streams; (C) for each set S l , selecting, from the set S l , zero or more data blocks (“selected data blocks”) to be transmitted to the recipient, wherein the remaining data blocks of the set S l are not to be transmitted to the recipient, and obtaining a corresponding value (“M′-value”) M′ l to be transmitted to the recipient, wherein the M′-value M′ l comprises each selected data block and also comprises, for each non-selected data block, a corresponding first-layer value which is a hash of an input comprising the non-selected data block; wherein at least one set S l comprises a selected block and an unselected block which belong to respective different streams, and each set S l comprises a non-selected block; (D) transmitting to the recipient over the communications network, by the machine, the authentication value and the values M′ l for all l from 1 to m inclusive.