Visual Cryptography with Raspberry Pi 2
Visual Cryptography is a technique that allows information (images, text, diagrams …) to be encrypted using an encoding system that can be decrypted by the eyes.
(Extracted from Data Genetics)
This project started in November 2018 in Bauhaus Universität-Weimar, led by Professor Andreas Jakoby and developed by Liselot Ramirez and Anne Peter.
The goal is to include the fun of IoT with the goods of Computer Science's concepts, in this case, cryptography. The interactive application aims to provoke interest to those new and interested in this field.
- Desktop or Mobile device
- Connect to the LAN IP Address where the web front-end app will appear
- Send the image via the web app
- Raspberry Pi
- Python
- Web App
- Serve it over a Python server
- Desktop App
- Install the desktop version for the Raspberry (Linux)
- Open the app like any other system application
- Follow the steps in the desktop app
Basically, a mobile user will send an image to the desktop application in the Raspberry Pi. The RaspPi will get the image and then encrypt it into two separate .png
images. Later, using the desktop application in the Raspberry Pi, another user will put together the two encrypted images to reveal the original image, which was received from the mobile device.
You can use a mobile or desktop device, as long as the web app is running and both your device and Raspberry Pi are connected together via WiLAN.
Document | Author | Source |
---|---|---|
Visual cryptography for color images | Young-Chang Hou | |
Color visual cryptography schemes for black and white secret images | Roberto De Prisco, Alfredo De Santis | |
Python Implementation of Visual Secret Sharing Schemes | Ruxandra Olimid | Article |
This folder contains the core app for visual cryptography. The main program is made in python and the results are loaded in the front-end app (desktop or web).
Documentation. More about visual cryptography and the doc can be found here.
This folder contains the desktop app to be installed in the Raspberry Pi.
Vuido The app version made in Vuido. Pros: it's native and can compile for MacOS/Windows/Linux with their native styles. Cons: You cannot stylized anything (no css/scss allowed).
More about Vuido and the doc can be found here.
Vue/Electron (electron-vue) Same as Vuido: developed in Vue, compiled in Electron, and built for the three main OS (Mac/Windows/Linux).
More about electron-vue and the doc can be found here.
To run a new desktop app, do the following:
- Go to
desktop_app/
- Run:
# Install vue-cli and scaffold boilerplate npm install -g vue-cli vue init simulatedgreg/electron-vue my-project # Install dependencies and run your app cd my-project yarn # or npm install yarn run dev # or npm run dev
Example of electron-vue config
With npm run dev
or yarn run dev
the development has hot-reloading, so you can see what you're modifying while coding. It also has the development tools just like in Chrome, so you can test out some css and html in real time. Take a look at the example below.
If you prefer a PDF version of the documentation, the file is under res/electron-vue-en.pdf.
Inside this folder you have all the resources for this project, like documentation, books, and compiled applications. Feel free to browse around.
Here is the GUI compiler for the desktop application. With this app, you can make release for MacOS, Windows, and Linux. I (ZeroLiam/Lis) use MacOS, so the file here for now is the GUI that works in Mac; however, if you use any other OS feel free to go to the LaunchUI releases and download the one that suits you.
The pdf version of the electron-vue documentation. If you're like me and sometimes have to develop offline, or if you like to have the documentation handy, here is the book without going to the official docs.