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:
make
This will generate an ss
executable in the root directory, which you can use to hide or recover a secret .bmp
image.
- Distribute
secret.bmp
into6
images located in thecovers
directory:
./ss d secret.bmp 6 covers
- Recover the secret into
recovered.bmp
from the6
images located in thecovers
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).
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