Visual cryptography is a secret sharing scheme that allows for the encryption of written text or images in a perfectly secure way without any computation. It works by dividing the secret into multiple shares, where only when a sufficient number of shares are superimposed can the secret be revealed to the human visual system. For example, in a 2 by 2 scheme, a secret image is encoded into two shares such that individually the shares reveal no information, but when overlayed together the secret image is revealed, though with some loss of contrast and resolution. Visual cryptography has applications in security, watermarking, and remote voting.
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 - 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.
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 by 2 scheme (2 subpixels)
Partition for black and white pixels in 2 by 2
scheme.
8. 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
9. 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
15. 2 by 2 scheme with 4 sub pixels
Horizontal shares Vertical shares Diagonal shares
16. 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.
17. 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.
18. 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.
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
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
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
Random class is used to generate 0 or 1This prevents for eves dropper from guessing the original pixel