Skip to content

Shamir's secret [image] sharing scheme capable of cheating detection. Final work for the Cryptography class @ITBA.

Notifications You must be signed in to change notification settings

EperezOk/shamir-secret-image-sharing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shamir's secret [image] sharing scheme capable of cheating detection

This implementation is based on the paper located in /docs/paper.pdf.

In a (k, n) threshold secret image sharing scheme, a secret image is encrypted into n image-shadows that satisfy the following: (1) any less than k image-shadows get no information on the image and (2) any k or more image-shadows can reconstruct the entire image. Cheating problem is an important issue in traditional secret sharing scheme. However, this issue has not been discussed sufficiently in the field of secret image sharing. In this paper, we consider the scenario of cheating behavior in secret image sharing scheme and construct a (k, n) threshold secret image sharing scheme which is capable of cheating detection. Our proposed scheme is able to detect the cheating behavior from up to k − 1 cheaters, and the size of image-shadow is almost same as the image-shadow in the original secret image sharing scheme.

Compile and run the program

To get started, open your terminal and run the following commands:

  1. Compile the project:
make

This will generate an ss executable in the root directory, which you can use to hide or recover a secret .bmp image.

  1. Distribute secret.bmp into 6 images located in the covers directory:
./ss d secret.bmp 6 covers
  1. Recover the secret into recovered.bmp from the 6 images located in the covers directory:
./ss r recovered.bmp 6 covers

If you followed the previous steps, you should see that secret.bmp and recovered.bmp are very similar (some white pixels might have turned black; see docs/report.pdf for more details on why this might happen).

Run tests

To run all the tests for the project, you first need to install the Criterion library.

For Ubuntu (>=21.04) and Debian (>=11), you can install it with:

apt install libcriterion-dev

Once you have installed the library, just run:

make test

Clean up

To clean up the generated binaries and objects, use:

make clean

About

Shamir's secret [image] sharing scheme capable of cheating detection. Final work for the Cryptography class @ITBA.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published