Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alex-spataru/lsb-chat

Experimental implementation of a secure message/file exchange platform over a local network.
https://github.com/alex-spataru/lsb-chat

college-project data-exchange exchange-platform lsb networking steganography

Last synced: about 1 month ago
JSON representation

Experimental implementation of a secure message/file exchange platform over a local network.

Awesome Lists containing this project

README

        

# LSB Chat

Experimental implementation of a secure message/file exchange platform over a local network.

The data is encrypted and subsequently hidden with an LSB steganography algorithm within an image, which is sent to a group chat on the LAN. The image can self-generated by the program with random colored pixels, or it can be selected by the user.

In order to read the original data, the user who receives the data must know the encryption password. Otherwise, he or she will not be able to read the received data.

Note: the project is loosely based on the [Network Chat Example](https://doc.qt.io/qt-5/qtnetwork-network-chat-example.html) developed by Digia/Qt.

![Screenshot](doc/screenshot.png)

### Project structture

- `doc` contains project documentation and screenshots.
- `tests`contains the unit tests of the application.
- `util`contains code formatting scripts based on [astyle](http://astyle.sourceforge.net).
- `program/src` contains the C++ source code.
- `program/assets` contains images, icons and QML interface-description files.
- `program/deploy` contains files specific for each target operating system.

### What is LSB Steganography?

**Definition of Steganography**

According to [Vangie Beal](https://www.webopedia.com/TERM/S/steganography.html), Steganography is "the art and science of hiding information by embedding messages within other, seemingly harmless messages".

LSB steganography works by replacing the least significant bit with bits of different information. This hidden information can be just about anything. The goal of this project is to be able to share encrypted information over the LAN through images in a global chat room.

For example, here is an image that has been modified to indclude some hidden data:

![Screenshot](doc/LSB_Composite.png)

For more clarity, the program also generates an image with only the pixels that have been modified to acommodate data (check the diagonal line of the image):

![Screenshot](doc/LSB_Differential.png)

If you are interested in reading about the proposed architecture and how this software works, feel free to check the [project report PDF](doc/LSB-Chat-Report.pdf) (in Spanish).

### TODOs

- [x] Implement networking module
- [x] Implement LSB module
- [x] Implement crypto module
- [x] Implement C++/QML bridge class
- [x] Implement user interface elements
- [x] Software testing

### License

This project is released under the MIT licence, for more information, please click [here](LICENCE.md).