- Python version 3.x
- PIL package. To install use -
pip3 install Pillow
./owner/img_input.png
printed on console and ./user/img_recovered.png
python3 owner.pypython3 server.pypython3 user.py
- python3 owner.py
- takes input image at ./owner/img_input.png
- creates intermediate ./owner/img_no_rearrangement.png and ./owner/img_rearranged.png
- creates output ./owner/img_encrypted.png
Owner takes an input image and embeds data and encrypts it before sending it to server
- python3 server.py
- takes input image at ./owner/encrypted.png
- creates output ./server/img_output.png
Server takes encrypted image from owner and embeds its own data and sends it to user
- python3 user.py
- takes input image at ./server/img_output.png
- creates output ./user/img_recovered.png
Users extracts data and decrypts image and recovers the original image back
- owner.py, server.py and user.py must have same block size variables
- Steps must be executed in order because output of one file is input to other
- Our input image is ./owner directory/img_input.png inside which we want to embed data
- All other images are created during execution of program
- Owner's message can be changed in owner.py with variable "message"
- Server's message can be changed in server.py with variable "data"
Reversible Data Hiding in Encrypted Images With Dual Data Embedding https://ieeexplore.ieee.org/document/8968332