Code base obscuration (for images) 1.0
It implements different obscuration methods on portable images (.pgm and .ppm)
Loading...
Searching...
No Matches
Code base obscuration (for images)

Welcome to Code base obscuration (for images) 👋

Version

‍ It implements different obscuration methods on portable images (.pgm and .ppm). Repository dedicated to an internship in the ICAR team at LIRMM.

📄 Documentation

Installation

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]

Usage

Obscuration

In progress...

AES

In progress...

Cryptosystem Paillier : Stat

In progress...

Cryptosystem Paillier : PGM

Encryption

$ ./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]

Decryption

$ ./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.

Options

P and Q
$ ./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.

Keys

-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]
Others

-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.

-optlsbr or -olsbr to specify that we want to use bit compression with encrypted through optimized r generation.

WARNING : You can't combine -distribution and -optlsbr, if you do that the priority is -optlsbr.

Progression

  • 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.

Author

👤 Katia Auxilien

Supervised by William PUECH

Based on Norman HUTTE's and Bianca JANSEN VAN RENSBURG's code

Show your support

Give a ⭐️ if this project helped you!

📝 License

Copyright © 2024 Katia Auxilien. This project is MIT licensed.


This README was generated with ❤️ by readme-md-generator