Article Preview
TopIntroduction
Visual cryptography, first formally defined by reference (Naor & Shamir, 1995), is a special method to implement secret sharing. In a (k, n) visual cryptography scheme ((k, n)-VCS), a secret image is divided into n share images in such a way that the stacking of any k share images can reveal the secret image, while any less than k share images provide no information about the secret image. The secret image is comprised of black or white pixels, in which a black pixel is denoted by 1 and a white pixel is denoted by 0. The stacking rule is summarized by the OR operation on the set of Boolean values {0, 1}: 0+0=0, 1+0=1, 0+1=1, 1+1=1. Only the stacking of two white pixels will result in a white pixel. All other cases will result in a black pixel.
For an intuitive idea about VCS, one can refer to Figure 1, where images (a) and (b) are the first and second share images respectively, and image (c) is the decoded image. Many studies (Ateniese et al., 1996; Blundo et al., 1999; Verheul & Tilborg, 1997; Blundo et al., 2001; Koga, 2002; Bose & Mukerjee, 2006; Bose & Mukerjee, 2010; Yang et al., 2017; Jia et al., 2016; Shen et al., 2017; Liu et al., 2010) tried to improve the contrast of the decoded image and make its size as small as possible.
Figure 1. The experimental results for (2, 2)-VCS, where (a) S1 is the first share image and (b) S2 is the second share image and (c) S1+ S2 is the stacking result of S1 and S2, all of image size 600600
Random grids (RG) is a more flexible way to implement VCS when compared to the above basis-matrix approach. The study of (2, 2)-RG was initiated in reference (Kafri & Keren, 1987), in which three similar algorithms were proposed to encrypt a binary image. Given a binary secret image S, these algorithms can produce two random grids R1 and R2 in such a way that the pixels in them are either white or black with equal probability. In general, R1 and R2 provide no information of S individually, but they reveal S when stacked together properly. In reference (Kafri & Keren, 1987), the most widely used algorithm is presented as Algorithm 1, where ∈r{0, 1} denotes the operation of randomly choosing a number from {0, 1} with equal probability and ¬ denotes the flipping operation (e.g. ¬0=1 and ¬1=0). In recent years, many studies (Machizaud & Fournel, 2012; Guo et al., 2013; Chen & Tsao, 2011; Lee & Chen, 2012; Wu & Sun, 2012; Shyu, 2009) were dedicated to implement VCSs by RG.