A method for embedding and detecting watermarks in digital data. Data is
analysed by an independent component analysis to derive a transform
matrix W encoding properties of the data. The data is encoded using this
transform matrix W, and a watermark is embedded into it. Then the inverse
of the transform matrix is applied to obtain watermarked data. The
presence of the watermark is found by applying the transform matrix
again, and examining the result for the presence of the watermark.