A watermarking system embeds a watermark into data values that may be
streamed. A data hash is calculated using data values and a hash key. The
data values are grouped. The groups include a first group and a second
group. A first group hash is calculated using data values in the first
group and a first group hash key. A second group hash is calculated using
data values in the second group and a second group hash key. A watermark
is constructed based on the first group hash and the second group hash.
The value of at least one of the data values in the first group is
modified using the watermark.