Visual Cryptography (OR)  Reading Between the Lines Ecaterina Valică http://students.info.uaic.ro/~evalica/
Agenda Introduction k  out of  n   sharing problem Model General  k  out of  k  Scheme 2 out of n Scheme 2 out of 2 Scheme (2 subpixels) 2 out of 2 Scheme (4 subpixels) 3 out of 3 Scheme 2 out of 6 Scheme Extensions Applications References
Introduction Visual cryptography  (VC)  was introduced by  Moni  Naor  and  Adi  Shamir  at  EUROCRYPT  19 94 .  It is used to encrypt written material (printed text, handwritten notes, pictures, etc) in a perfectly secure way. The decoding is done by the human visual system directly ,  without any   computation  cost.
Introduction Divide image into  two  parts: Key:  a transparency Cipher:  a printed page Separately, they are random noise Combination reveals an image Simple example
Extended to  k  out of  n  sharing problem For a set P of  n  participants,  a secret image S is encoded into n shadow images called  shares  (shadows), where each participant in P receives one share.  The original message is visible if any  k  or more of them are stacked together, but totally invisible if fewer than k transparencies are stacked together (or analysed by any other method) k  out of  n   sharing problem
Model Assume the message consists of a collection of black and white pixels and each pixel is handled separately. Each share is a collection of  m  black and white subpixels. The resulting picture can be thought as a  [ n x m ]   Boolean matrix  S = [s i,j ]   s i,j  = 1 if the j-th subpixel in the i-th share is   black. s i,j  = 0 if the j-th subpixel in the i-th share is   white.
Model Pixels are split: Pixel Subpixels s i,j m n  shares  per pixel: m n Share   1 Share   2 Share  n
The grey level of the combined share is interpreted by the visual system: as black if  as white if  .  is some fixed threshold and  is the relative difference. H(V) is the hamming weight of the “ OR ” combined share vector of rows i 1 ,…i n  in S vector. Model
Stacking Model: Stacking & Contrast  m m :  V H(V) H(V)    m B H(V)    m W m W  < m B contrast = (m B -m W )/m
Model
General  k  out of  k  Scheme Matrix size =  k  x  2 k-1   S 0  : handles the white pixels All 2 k -1  columns have an  even  number of 1’s No two  k  rows are the same S 1  : handles the black pixels All 2 k -1  columns have an  odd  number of 1’s No two  k  rows are the same C 0 /C 1  : all the permutation of columns in S 0 /S 1
2 out of n Scheme m = n White pixel - a random column-permutation of: Black pixel - a random column-permutation of:
2 out of 2 Scheme (2 subpixels)  Black and white image: each pixel divided in  2 sub-pixels Randomly choose between black and white. If white, then randomly choose one of the two rows for white.
2 out of 2 Scheme (2 subpixels) If black, then randomly choose between one of the two rows for black.
2 out of 2 Scheme (2 subpixels)
2 out of 2 Scheme (2 subpixels) Example:
2 out of 2 Scheme (2 subpixels) + The two subpixels per pixel variant can  distort  the aspect ratio of the original image
2 out of 2 Scheme (4 subpixels) Each pixel encoded as a 2x2 cell in two  shares  (key and cipher) Each share has 2 black, 2 transparent subpixels  When stacked, shares combine to Solid black Half black (seen as gray)
6 ways to place two black subpixels in the 2 x 2 square  White pixel: two identical arrays Black pixel: two complementary arrays 2 out of 2 Scheme (4 subpixels)
Horizontal shares Vertical shares Diagonal shares 2 out of 2 Scheme (4 subpixels)
2 out of 2 Scheme (4 subpixels)
share1 share2 stack pixel random 0 1 2 3 4 5 0 1 2 3 4 5 4 1 0 5
3 out of 3 Scheme (4 subpixels) With same  2  x  2  array (4 subpixel) layout C 0 ={  24 matrices obtained by permuting the columns of   } C 1 ={  24 matrices obtained by permuting the columns of   } 0011  1100 0101  1010  0110 1001 horizontal shares     vertical shares   diagonal shares
3 out of 3 Scheme (4 subpixels) Original Share #1 Share #2 Share #3 Share #1+#2+#3 Share #1+#2 Share #2+#3 Share #1+ #3
2 out of 6 Scheme Any 2 or more shares out of the 6 produced C 0 ={  24 matrices obtained by permuting the columns of   } C 1 ={  24 matrices obtained by permuting the columns of   }
2 out of 6 Scheme Share#1 Share#2 Share#3 Share#4 Share#5 Share#6 2 shares 3 shares 4 shares 5 shares 6 shares
Extensions - Four Gray Levels Each pixel encoded as A 3x3 cell 3 black, 6 transparent Combine to 3, 4, 5, or 6 black
Pixel range from 0 (white) to 255 (black) Encode pixel with a half-circle  Extensions -  Grey Scale Encryption Share #1 Share #2 Stacked Color White Gray Black
Extensions - Continuous Gray level Each pixel encoded as 33% black circle Combine for any gray from 33% to 67% black
Ateniese et al., 2001 Send innocent looking transparencies, e.g. Send images a dog, a house, and get a spy message with no trace.  Extensions - Extended VC  
Extensions -  Color VC Verheul  and  van Tilborg ’s method For a C-color image, we expand each pixel to C subpixels on two images. For each subpixel, we divide it to C regions. One fixed region for one color. If the subpixel is assigned color C 1  , only the region belonged to C 1 will have the color. Other regions are left black.
Extensions -  Color VC Verheul  and  van Tilborg ’s method Four subpixels Four regions Combined One pixel on four- color image
Extensions -  Color VC Rijmen  and  Preneel ’s method Each pixel is divided into 4 subpixels, with the color red, green, blue and white. In any order, we can get 24 different combination of colors. We average the combination to present the color. To encode, choose the closest combination, select a random order on the first share. According to the combination, we can get the second share.
Extensions -  Color VC Rijmen  and  Preneel ’s method Pattern1  Pattern1  Pattern2 Pattern2 Combined Result Combined Result
Extensions -  Color VC
Applications Remote Electronic Voting Anti-Spam Bot Safeguard Banking Customer Identification Message Concealment Key Management
References Naor and Shamir, Visual Cryptography, in  A dvances in Cryptology - Eurocrypt ‘94 www.cacr.math.uwaterloo.ca/~dstinson/visual.html http://homes.esat.kuleuven.be/~fvercaut/talks/visual.pdf http:// www.cse.psu.edu/~rsharris/visualcryptography/viscrypt.ppt
References http://netlab.mgt.ncu.edu.tw/computersecurity/2002/ppt/%E5%BD%A9%E8%89%B2%E8%A6%96%E8%A6%BA%E5%AF%86%E7%A2%BC%E5%8F%8A%E5%85%B6%E6%87%89%E7%94%A8.ppt http://163.17.135.4/ imgra /PPT/200500022.ppt

Visual Cryptography

  • 1.
    Visual Cryptography (OR) Reading Between the Lines Ecaterina Valică http://students.info.uaic.ro/~evalica/
  • 2.
    Agenda Introduction k out of n sharing problem Model General k out of k Scheme 2 out of n Scheme 2 out of 2 Scheme (2 subpixels) 2 out of 2 Scheme (4 subpixels) 3 out of 3 Scheme 2 out of 6 Scheme Extensions Applications References
  • 3.
    Introduction Visual cryptography (VC) was introduced by Moni Naor and Adi Shamir at EUROCRYPT 19 94 . It is used to encrypt written material (printed text, handwritten notes, pictures, etc) in a perfectly secure way. The decoding is done by the human visual system directly , without any computation cost.
  • 4.
    Introduction Divide imageinto two parts: Key: a transparency Cipher: a printed page Separately, they are random noise Combination reveals an image Simple example
  • 5.
    Extended to k out of n sharing problem For a set P of n participants, a secret image S is encoded into n shadow images called shares (shadows), where each participant in P receives one share. The original message is visible if any k or more of them are stacked together, but totally invisible if fewer than k transparencies are stacked together (or analysed by any other method) k out of n sharing problem
  • 6.
    Model Assume themessage consists of a collection of black and white pixels and each pixel is handled separately. Each share is a collection of m black and white subpixels. The resulting picture can be thought as a [ n x m ] Boolean matrix S = [s i,j ] s i,j = 1 if the j-th subpixel in the i-th share is black. s i,j = 0 if the j-th subpixel in the i-th share is white.
  • 7.
    Model Pixels aresplit: Pixel Subpixels s i,j m n shares per pixel: m n Share 1 Share 2 Share n
  • 8.
    The grey levelof the combined share is interpreted by the visual system: as black if as white if . is some fixed threshold and is the relative difference. H(V) is the hamming weight of the “ OR ” combined share vector of rows i 1 ,…i n in S vector. Model
  • 9.
    Stacking Model: Stacking& Contrast m m : V H(V) H(V)  m B H(V)  m W m W < m B contrast = (m B -m W )/m
  • 10.
  • 11.
    General k out of k Scheme Matrix size = k x 2 k-1 S 0 : handles the white pixels All 2 k -1 columns have an even number of 1’s No two k rows are the same S 1 : handles the black pixels All 2 k -1 columns have an odd number of 1’s No two k rows are the same C 0 /C 1 : all the permutation of columns in S 0 /S 1
  • 12.
    2 out ofn Scheme m = n White pixel - a random column-permutation of: Black pixel - a random column-permutation of:
  • 13.
    2 out of2 Scheme (2 subpixels) Black and white image: each pixel divided in 2 sub-pixels Randomly choose between black and white. If white, then randomly choose one of the two rows for white.
  • 14.
    2 out of2 Scheme (2 subpixels) If black, then randomly choose between one of the two rows for black.
  • 15.
    2 out of2 Scheme (2 subpixels)
  • 16.
    2 out of2 Scheme (2 subpixels) Example:
  • 17.
    2 out of2 Scheme (2 subpixels) + The two subpixels per pixel variant can distort the aspect ratio of the original image
  • 18.
    2 out of2 Scheme (4 subpixels) Each pixel encoded as a 2x2 cell in two shares (key and cipher) Each share has 2 black, 2 transparent subpixels When stacked, shares combine to Solid black Half black (seen as gray)
  • 19.
    6 ways toplace two black subpixels in the 2 x 2 square White pixel: two identical arrays Black pixel: two complementary arrays 2 out of 2 Scheme (4 subpixels)
  • 20.
    Horizontal shares Verticalshares Diagonal shares 2 out of 2 Scheme (4 subpixels)
  • 21.
    2 out of2 Scheme (4 subpixels)
  • 22.
    share1 share2 stackpixel random 0 1 2 3 4 5 0 1 2 3 4 5 4 1 0 5
  • 23.
    3 out of3 Scheme (4 subpixels) With same 2 x 2 array (4 subpixel) layout C 0 ={ 24 matrices obtained by permuting the columns of } C 1 ={ 24 matrices obtained by permuting the columns of } 0011 1100 0101 1010 0110 1001 horizontal shares vertical shares diagonal shares
  • 24.
    3 out of3 Scheme (4 subpixels) Original Share #1 Share #2 Share #3 Share #1+#2+#3 Share #1+#2 Share #2+#3 Share #1+ #3
  • 25.
    2 out of6 Scheme Any 2 or more shares out of the 6 produced C 0 ={ 24 matrices obtained by permuting the columns of } C 1 ={ 24 matrices obtained by permuting the columns of }
  • 26.
    2 out of6 Scheme Share#1 Share#2 Share#3 Share#4 Share#5 Share#6 2 shares 3 shares 4 shares 5 shares 6 shares
  • 27.
    Extensions - FourGray Levels Each pixel encoded as A 3x3 cell 3 black, 6 transparent Combine to 3, 4, 5, or 6 black
  • 28.
    Pixel range from0 (white) to 255 (black) Encode pixel with a half-circle Extensions - Grey Scale Encryption Share #1 Share #2 Stacked Color White Gray Black
  • 29.
    Extensions - ContinuousGray level Each pixel encoded as 33% black circle Combine for any gray from 33% to 67% black
  • 30.
    Ateniese et al.,2001 Send innocent looking transparencies, e.g. Send images a dog, a house, and get a spy message with no trace. Extensions - Extended VC  
  • 31.
    Extensions - Color VC Verheul and van Tilborg ’s method For a C-color image, we expand each pixel to C subpixels on two images. For each subpixel, we divide it to C regions. One fixed region for one color. If the subpixel is assigned color C 1 , only the region belonged to C 1 will have the color. Other regions are left black.
  • 32.
    Extensions - Color VC Verheul and van Tilborg ’s method Four subpixels Four regions Combined One pixel on four- color image
  • 33.
    Extensions - Color VC Rijmen and Preneel ’s method Each pixel is divided into 4 subpixels, with the color red, green, blue and white. In any order, we can get 24 different combination of colors. We average the combination to present the color. To encode, choose the closest combination, select a random order on the first share. According to the combination, we can get the second share.
  • 34.
    Extensions - Color VC Rijmen and Preneel ’s method Pattern1 Pattern1 Pattern2 Pattern2 Combined Result Combined Result
  • 35.
    Extensions - Color VC
  • 36.
    Applications Remote ElectronicVoting Anti-Spam Bot Safeguard Banking Customer Identification Message Concealment Key Management
  • 37.
    References Naor andShamir, Visual Cryptography, in A dvances in Cryptology - Eurocrypt ‘94 www.cacr.math.uwaterloo.ca/~dstinson/visual.html http://homes.esat.kuleuven.be/~fvercaut/talks/visual.pdf http:// www.cse.psu.edu/~rsharris/visualcryptography/viscrypt.ppt
  • 38.