-- Pallavi Khandekar
What is VC?
• Secret sharing scheme.

• Visual Cryptography (VC) was introduced by Moni
  Naor and Adi Shamir in Eurocrypt (1994).

• Used to encrypt written text/ pictures etc in a
  perfectly secure way.

• Decoding is done by human visual system,
  without any computation.
Secret Sharing Scheme
• Method of dividing a
  secret amongst a group
  of participants.           Share 1


• Each of the participants
  get a share of the         Share 2

  secret.
                             Share 1
• Sufficient number of          +
                             Share 2
  shares combined
  reveals the secret.
Example - k by n Scheme (k,n)

• Consider data D (text / image) divided into
   – n number of shares (D1, D2 …. Dn)
   – k or more shares when overlapped reveals
     information about the data
   – k-1 or fewer shares when overlapped reveal no
     information about the data


• If k = n then all participants are required to
  reconstruct the secret.
Preliminary Notations
• n = Group size

• k = Threshold

• m = number of pixels in a share. (loss in resolution
  from the original image to the recovered image)

• ɑ = the relative difference in the weight between the
  combined shares that come from a white pixel and a
  black pixel in the original image. Represents loss in
  contrast.
Preliminary Notations (contd..)
• C0 = Collection of n × m Boolean matrices for shares of
  white pixel.

• C1 = Collection of n × m Boolean matrices for shares of
  black pixel.

• V = ORed k rows.

• H(V) = Hamming weight.

• d = number in [1,m]
Example 2 by 2 scheme (2 subpixels)


Partition for black and white pixels in 2 by 2
scheme.
Example 2 by 2 scheme (2 subpixels)
This scheme can be explained by below values

• n=2                   • V1 = [1,1] or [1,1]


• m=2                   • H(V0 ) = 1


• k=2                   • H(V1) = 2


• V0 = [0,1] or [1,0]   • ɑ = H(V1) - H(V0 ) / m = 1/2
Implementation
• Platform: .Net Framework 3.5

• Language: C#

• Reason for selecting .Net:
   – Previous experience working on .Net.
   – It is optimal for developing and demonstrating application through UI.
   – .NET also has lot of support for image acquisition and manipulation.


• Other Platforms: Matlab, Python etc
DEMO
Technique Used
         White Pixel                Black Pixel



S0
                           S0


S1
                           S1




     0                 1        0                 1
Results for Text
Results for Image
Result for Image (contd..)
2 by 2 scheme with 4 sub pixels


Horizontal shares   Vertical shares   Diagonal shares
Results in 2 by 2 scheme (2 subpixels)
• The secret image I is encoded into Share1 & Share2 two
  shares.

• D is decoded by superimposing these two shares with 50%
  loss of contrast. (ɑ = ½)

• The decoded image is identified, although some contrast
  loss is observed.

• Due to pixel expansion the width of the decoded image is
  twice as that of the original image.
Advantages
• Simple to implement

• Decryption algorithm not required (Use a human Visual
  System). So a person unknown to cryptography can
  decrypt the message.

• We can send cipher text through FAX or E-MAIL.

• Lower computational cost since the secret message is
  recognized only by human eyes and not
  cryptographically computed.
Disadvantages
• The contrast of the reconstructed image is not
  maintained.

• Perfect alignment of the transparencies is troublesome.

• Due to pixel expansion the width of the decoded image
  is twice as that of the original image. Leads to loss of
  information due to change in aspect ratio.

• Additional processing is required for colored images.
Application
• Biometric security

• Watermarking

• Steganography

• Remote electronic voting

• Bank customer identification
   –   Bank sends customer a set of keys in advance
   –   Bank web site displays cipher
   –   Customer applies overlay, reads transaction key
   –   Customer enters transaction key
References
• http://en.wikipedia.org/wiki/File:Visual_crypto_animation_de
  mo.gif

• http://users.telenet.be/d.rijmenants/en/visualcrypto.htm

• http://www.cs.nccu.edu.tw/~raylin/UndergraduateCourse/Co
  mtenporaryCryptography/Spring2009/VisualCrypto.pdf
Thank you!

Questions?

Visual CryptoGraphy

  • 1.
  • 2.
    What is VC? •Secret sharing scheme. • Visual Cryptography (VC) was introduced by Moni Naor and Adi Shamir in Eurocrypt (1994). • Used to encrypt written text/ pictures etc in a perfectly secure way. • Decoding is done by human visual system, without any computation.
  • 3.
    Secret Sharing Scheme •Method of dividing a secret amongst a group of participants. Share 1 • Each of the participants get a share of the Share 2 secret. Share 1 • Sufficient number of + Share 2 shares combined reveals the secret.
  • 4.
    Example - kby n Scheme (k,n) • Consider data D (text / image) divided into – n number of shares (D1, D2 …. Dn) – k or more shares when overlapped reveals information about the data – k-1 or fewer shares when overlapped reveal no information about the data • If k = n then all participants are required to reconstruct the secret.
  • 5.
    Preliminary Notations • n= Group size • k = Threshold • m = number of pixels in a share. (loss in resolution from the original image to the recovered image) • ɑ = the relative difference in the weight between the combined shares that come from a white pixel and a black pixel in the original image. Represents loss in contrast.
  • 6.
    Preliminary Notations (contd..) •C0 = Collection of n × m Boolean matrices for shares of white pixel. • C1 = Collection of n × m Boolean matrices for shares of black pixel. • V = ORed k rows. • H(V) = Hamming weight. • d = number in [1,m]
  • 7.
    Example 2 by2 scheme (2 subpixels) Partition for black and white pixels in 2 by 2 scheme.
  • 8.
    Example 2 by2 scheme (2 subpixels) This scheme can be explained by below values • n=2 • V1 = [1,1] or [1,1] • m=2 • H(V0 ) = 1 • k=2 • H(V1) = 2 • V0 = [0,1] or [1,0] • ɑ = H(V1) - H(V0 ) / m = 1/2
  • 9.
    Implementation • Platform: .NetFramework 3.5 • Language: C# • Reason for selecting .Net: – Previous experience working on .Net. – It is optimal for developing and demonstrating application through UI. – .NET also has lot of support for image acquisition and manipulation. • Other Platforms: Matlab, Python etc
  • 10.
  • 11.
    Technique Used White Pixel Black Pixel S0 S0 S1 S1 0 1 0 1
  • 12.
  • 13.
  • 14.
  • 15.
    2 by 2scheme with 4 sub pixels Horizontal shares Vertical shares Diagonal shares
  • 16.
    Results in 2by 2 scheme (2 subpixels) • The secret image I is encoded into Share1 & Share2 two shares. • D is decoded by superimposing these two shares with 50% loss of contrast. (ɑ = ½) • The decoded image is identified, although some contrast loss is observed. • Due to pixel expansion the width of the decoded image is twice as that of the original image.
  • 17.
    Advantages • Simple toimplement • Decryption algorithm not required (Use a human Visual System). So a person unknown to cryptography can decrypt the message. • We can send cipher text through FAX or E-MAIL. • Lower computational cost since the secret message is recognized only by human eyes and not cryptographically computed.
  • 18.
    Disadvantages • The contrastof the reconstructed image is not maintained. • Perfect alignment of the transparencies is troublesome. • Due to pixel expansion the width of the decoded image is twice as that of the original image. Leads to loss of information due to change in aspect ratio. • Additional processing is required for colored images.
  • 19.
    Application • Biometric security •Watermarking • Steganography • Remote electronic voting • Bank customer identification – Bank sends customer a set of keys in advance – Bank web site displays cipher – Customer applies overlay, reads transaction key – Customer enters transaction key
  • 20.
    References • http://en.wikipedia.org/wiki/File:Visual_crypto_animation_de mo.gif • http://users.telenet.be/d.rijmenants/en/visualcrypto.htm • http://www.cs.nccu.edu.tw/~raylin/UndergraduateCourse/Co mtenporaryCryptography/Spring2009/VisualCrypto.pdf
  • 21.

Editor's Notes

  • #8 The way we choose patter in each share is random.Co : all matrices obtained by permuting the columns of mentioned C0C1 : all matrices obtained by permuting the columns of mentioned C1
  • #9 As a part of project I have implemented 2 by 2 scheme with (2 sub pixels).And as I explained notations to you here are notation graphed for it
  • #12 Random class is used to generate 0 or 1This prevents for eves dropper from guessing the original pixel