1. A method of fingerprinting, comprising: receiving a plurality of input datasets, each of said plurality of input datasets divided into a plurality of input segments, at least one of said plurality of input datasets uniquely marked; selecting at least one input segment from one of at least two different input datasets of said plurality of input datasets; and arranging said selected at least one input segment to produce an output dataset having a plurality of output segments, such that the number of output segments is equal to the number of input segments in each input dataset.