the authenticator tag is generated by arranging the
data in rows and columns. Then after XORing with
pseudorandom bits, the majority logic is used to
obtain the authentication tag. In AIMAC
(Graveman, Xe and Arce, 2000), which is a variation
of AMAC, the AMAC is adapted to image data,
such that it is tolerant to minor changes in the image
data but still able to differentiate intentional
forgeries. The results in the presence of image
modification scenarios including JPEG compression,
image forgery and additive Gaussian noise are given
in (Graveman, Xe and Arce, 2000).
The NTMAC algorithm is also tolerant to slight
modifications in data. The idea is based on splitting
the data into blocks, calculating standard MAC on
each block and retaining a portion of the whole
MAC for each block. This portion is used to detect
changes in the block. The concept of partitions is
used to introduce tolerance. Again certain variations
and improvements on NTMAC have been proposed
in literature. These include weighted noise tolerant
message authentication code (WNTMAC) (Ur-
Rehman, et al., 2011). WNTMAC is based on
NTMAC but introduces the concept of weights to
differentiate the relatively more important parts of
data from the lesser important parts. EC-WNTMAC
is an extension of WNTMAC, where the error
localization and correction capability is introduced
aside from error tolerance. However, all of the above
mentioned approaches are based on image data
authentication. They need to be used together with
image features for authentication of image content.
NTMAC was used for image content
authentication in (Ur-Rehman and Zivic, 2012).
Features of the image were generated based on
discrete cosine transform (DCT) and they were
protected using NTMAC. If error correction is
desired in addition to authentication, then error
correcting codes have been used together with
content authentication. This helps in error
localization and correction. In (Lee and Won, 2000),
Reed-Solomon (RS) codes are used to calculate
parity symbols for each row and column of an
image. These parity symbols are embedded as a
watermark in the two least significant bit (LSB)
planes of the image. RS decoder is used to “correct”
the modifications in the watermarked image. In
(Tabatabaei, et al., 2015), a two phase authentication
scheme is proposed which performs image
authentication in two stages. In one stage, the error
correcting codes are used to (partially) correct the
image and in the second stage, a tolerant
authentication is performed. The threshold is totally
flexible and can be adjusted to achieve the desired
level of flexibility.
Amongst the other interesting techniques, two
methods for self-embedding an image in itself were
proposed in (Fridrich and Goljan, 1999). This helps
in recovering those portions of the image which are
somehow damaged, e.g., through cropping, or
tampering. In the first method, the 8 × 8 blocks of an
image are transformed into frequency domain using
discrete cosine transform (DCT) and the coefficients
are embedded in the least significant bits of other
distant blocks. This method has a good quality of
reconstruction but it is very fragile. The second
method is based on the principle similar to
differential encoding where a circular shift of the
original image with decreased colour depth is
embedded into the original image.
3 BUILDING BLOCKS OF THE
PROPOSED WATERMARKING
SCHEME
3.1 Digital Watermarking
Digital watermarking is a technique of covertly
embedding digital data with secret information that
can be extracted by the recipient (Zivic, 2015). The
watermark should be unique, so that it can be later
used for authentication. Additionally, the watermark
should also be complex making it difficult for an
attacker to extract and damage or replace it. An ideal
watermark should be such that extracting it damages
the cover object. Applications of digital
watermarking include owner identification,
copyright protection and content authentication, to
name a few. Watermarks are typically based on
image features. The features of the cover image are
extracted at first as,
(1)
where Feature(·) is a feature extraction function,
applied on the cover image Image to obtain the
image feature f. The features uniquely identify the
cover image and two different images will have
completely different features. However, images with
the same content as the cover image will have more
or less the same features. The image feature, f, is
then used to generate a watermark, by protecting it
using a secret key, k, as,
, (2)