A method of analysing a set of digital images each having been captured with a digital camera, the method comprising, using at least one processor: a) extracting a camera fingerprint from each image so as to form a set of camera fingerprints, each camera fingerprint being representative of the camera used to capture the image, and being of a first dimension; b) forming a set of dimensionally reduced camera fingerprints from each camera fingerprint, the dimensionally reduced camera fingerprint being of a second dimension smaller than the first dimension; c) forming a first subset of dimensionally reduced camera fingerprints and a second subset of dimensionally reduced camera fingerprints; d) determining a level of similarity between every pairing of the dimensionally reduced camera fingerprints of the first subset; e) determining a level of similarity between every pairing of the dimensionally reduced camera fingerprints of the second subset; f) determining a level of similarity between every pairing of, on the one hand, the dimensionally reduced fingerprints of the first set and, on the other hand, the dimensionally reduced fingerprints of the second subset; g) recording those pairings which indicate a level of similarity greater than a threshold; h) substituting for the contents of the first subset those dimensionally reduced camera fingerprints of the first and second subsets which have been recorded as part of a pairing showing a level of similarity greater than said threshold; i) substituting for the contents of the second subset a different subset of the set of the dimensionally reduced camera fingerprints; j) repeating steps (e) to (i), until all of the dimensionally reduced camera fingerprints have been processed; k) performing a clustering algorithm on all dimensionally reduced camera fingerprints based on the pairings having a level of similarity greater than a threshold to produce a plurality of first clusters each comprising a set of dimensionally reduced camera fingerprints; l) for each of the first clusters, determining a level of similarity between each of the camera fingerprints corresponding to the dimensionally reduced camera fingerprints of that cluster; and m) splitting and merging the first clusters dependent upon the similarities between the camera fingerprints to form a plurality of second clusters; in which each camera fingerprint is representative of the sensor pattern noise of the camera used to capture the image; and the step of substituting the contents of the first subset comprises determining which elements of the first and second subsets have been recorded less frequently and eliminating those elements from the first and second subsets, with the elements which have not been eliminated then forming the new first subset. a) extracting a camera fingerprint from each image so as to form a set of camera fingerprints, each camera fingerprint being representative of the camera used to capture the image, and being of a first dimension; b) forming a set of dimensionally reduced camera fingerprints from each camera fingerprint, the dimensionally reduced camera fingerprint being of a second dimension smaller than the first dimension; c) forming a first subset of dimensionally reduced camera fingerprints and a second subset of dimensionally reduced camera fingerprints; d) determining a level of similarity between every pairing of the dimensionally reduced camera fingerprints of the first subset; e) determining a level of similarity between every pairing of the dimensionally reduced camera fingerprints of the second subset; f) determining a level of similarity between every pairing of, on the one hand, the dimensionally reduced fingerprints of the first set and, on the other hand, the dimensionally reduced fingerprints of the second subset; g) recording those pairings which indicate a level of similarity greater than a threshold; h) substituting for the contents of the first subset those dimensionally reduced camera fingerprints of the first and second subsets which have been recorded as part of a pairing showing a level of similarity greater than said threshold; i) substituting for the contents of the second subset a different subset of the set of the dimensionally reduced camera fingerprints; j) repeating steps (e) to (i), until all of the dimensionally reduced camera fingerprints have been processed; k) performing a clustering algorithm on all dimensionally reduced camera fingerprints based on the pairings having a level of similarity greater than a threshold to produce a plurality of first clusters each comprising a set of dimensionally reduced camera fingerprints; l) for each of the first clusters, determining a level of similarity between each of the camera fingerprints corresponding to the dimensionally reduced camera fingerprints of that cluster; and m) splitting and merging the first clusters dependent upon the similarities between the camera fingerprints to form a plurality of second clusters;