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.
To get started, open your terminal and run the following commands:
- Compile the project:
makeThis will generate an ss executable in the root directory, which you can use to hide or recover a secret .bmp image.
- Distribute
secret.bmpinto6images located in thecoversdirectory:
./ss d secret.bmp 6 covers- Recover the secret into
recovered.bmpfrom the6images located in thecoversdirectory:
./ss r recovered.bmp 6 coversIf 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).
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
To clean up the generated binaries and objects, use:
make clean