Skip to content

Repository dedicated to an internship in the ICAR team at LIRMM.

License

Notifications You must be signed in to change notification settings

KatiaAuxilien/code_base_obscuration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

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

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

About

Repository dedicated to an internship in the ICAR team at LIRMM.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published