gittech. site

for different kinds of informations and explorations.

Encrypt Images Without a Key (Visual Cryptography)

Published at
4 days ago

VisualCrypto

A toolkit for image-based secret sharing

Python 3.8+ Documentation Available Contributions Welcome License

Overview

VisualCrypto is an open-source Python-based toolkit with a web interface designed for Visual Secret Sharing (VSS), a cryptographic technique that splits a secret image into multiple shares. Each share appears as random noise and reveals no information on its own, but when combined, they reconstruct the original image.

This repository primarily focuses on (2,2)-VSS schemes, where a secret image is split into two shares, both of which are required to reveal the hidden content.

📌 For more details on VisualCrypto, visit the Project's Documentation.


Features

  • Support for Visual Cryptography (VC) & Random Grid (RG) techniques
  • Web-based & script-based execution for ease of use
  • Easily extendable to incorporate new cryptographic schemes
  • Reference-based implementation, ensuring that any scientific work derived from this repository maintains appropriate citations.

Getting Started

Installation

Clone the repository and install dependencies:

git clone https://github.com/coduri/VisualCrypto.git
cd VisualCrypto
pip install -r requirements.txt

Usage

You can interact with the toolkit in two ways:

  1. Running Python scripts
  2. Using the Web Interface

📌 For a step-by-step guide, check out the User Guide.


Web Interface

Below are sample screenshots of the web-based interface of VisualCrypto:

Web App Encryption 1 Web App Encryption 2
Web App Decryption 1 Web App Decryption 2

Contributing

Contributions are welcome!

If you’d like to implement a new Visual Secret Sharing algorithm or improve existing features, please check out our Contribution Guide.

Before submitting a pull request, ensure that:

  • Your algorithm follows the required structure.
  • You’ve tested both encryption & decryption.
  • The web interface is correctly updated.

Thank you for helping improve VisualCrypto! 🚀


Main References

  • Visual Cryptography: Naor, Moni, and Adi Shamir. "Visual cryptography." Advances in Cryptology—EUROCRYPT'94. Springer, 1995. DOI
  • Random Grid: Kafri, Oded, and Eliezer Keren. "Encryption of pictures and shapes by random grids." Optics Letters 12.6 (1987): 377-379. DOI

Citation

If you find this project useful for your research, please consider citing:

@misc{Coduri2025VisualCrypto,
   author = {Christian Coduri},
   title = {VisualCrypto: A Python-based toolkit for image-based secret sharing},
   year = {2025},
   publisher = {GitHub},
   url = {https://github.com/coduri/VisualCrypto},
   note = {GitHub repository}
}

License

This project is licensed under the MIT License. See the LICENSE file for details.