It implements different obscuration methods on portable images (.pgm and .ppm). Repository dedicated to an internship in the ICAR team at LIRMM.
Firstly, you need to clone or download the project. Through your usage, we recommend to git pull
to update the project.
Then, install g++
version 11.
$ sudo apt install g++-11
You maybe need to install make
, so use the command :
$ sudo apt install make
In order that you can compile to each modification, they have at your proposal the make
programs in folders main
, use the command :
$ make -f [makefile]
In progress...
In progress...
In progress...
$ ./Paillier_pgm_main.out encryption [ARGUMENTS] [FILE.PGM]
$ ./Paillier_pgm_main.out encrypt [ARGUMENTS] [FILE.PGM]
$ ./Paillier_pgm_main.out enc [ARGUMENTS] [FILE.PGM]
$ ./Paillier_pgm_main.out e [ARGUMENTS] [FILE.PGM]
$ ./Paillier_pgm_main.out decryption [PRIVATE KEY FILE .BIN] [FILE.PGM] [ARGUMENTS]
$ ./Paillier_pgm_main.out decrypt [PRIVATE KEY FILE .BIN] [FILE.PGM] [ARGUMENTS]
$ ./Paillier_pgm_main.out dec [PRIVATE KEY FILE .BIN] [FILE.PGM] [ARGUMENTS]
$ ./Paillier_pgm_main.out d [PRIVATE KEY FILE .BIN] [FILE.PGM] [ARGUMENTS]
The image to encrypt or to decrypt can be specify after the key or the options, or at the end.
$ ./Paillier_pgm_main.out encryption [p] [q] [FILE.PGM]
Encryption mode where you specify p and q arguments. p and q are prime number where pgcd(p * q,p-1 * q-1) = 1.
-k
or -key
to specify usage of private or public key, followed by file.bin
, your key file.
Encryption mode where you specify your public key file with format .bin
.
$ ./Paillier_pgm_main.out encryption -k [PUBLIC KEY FILE .BIN] [FILE.PGM]
$ ./Paillier_pgm_main.out encryption -key [PUBLIC KEY FILE .BIN] [FILE.PGM]
Decryption mode where you specify your private key with format .bin
.
The option ``-k` is optional, because it's obligatory to specify private key at decryption.
$ ./Paillier_pgm_main.out decryption -k [PRIVATE KEY FILE .BIN] [FILE.PGM]
-distribution
or -distr
ou -d
to split encrypted pixel on two pixel.
-histogramexpansion
ou -hexp
to specify during encryption that we want to transform the histogram befor image encryption.
-optlsbr32
or -olsbr32
to specify that we want to use bit compression with encrypted through optimized r generation mod(32), so free 5 LSB.
-optlsbr16
or -olsbr16
to specify that we want to use bit compression with encrypted through optimized r generation mod(16), so free 4 LSB.
- Add a -help -h option to print user's guide.
- Generate documentation with dioxygen.
- Complete documentation.
- Implement LSB compression.
- Implement new solution for size encryption. (to make program usable with n > 256)
- Fix obscuration parts.
👤 Katia Auxilien
- Website: https://katiaauxilien.github.io/
- Github: @KatiaAuxilien
- LinkedIn: @katia-auxilien
Supervised by William PUECH
- Website: https://www.lirmm.fr/~wpuech/
Based on Norman HUTTE's and Bianca JANSEN VAN RENSBURG's code
Give a ⭐️ if this project helped you!
Copyright © 2024 Katia Auxilien. This project is MIT licensed.
This README was generated with ❤️ by readme-md-generator