Skip to content

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

License

Notifications You must be signed in to change notification settings

alex-spataru/LSB-Chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 developed by Digia/Qt.

Screenshot

Project structture

  • doc contains project documentation and screenshots.
  • testscontains the unit tests of the application.
  • utilcontains code formatting scripts based on astyle.
  • 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, 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

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

If you are interested in reading about the proposed architecture and how this software works, feel free to check the project report PDF (in Spanish).

TODOs

  • Implement networking module
  • Implement LSB module
  • Implement crypto module
  • Implement C++/QML bridge class
  • Implement user interface elements
  • Software testing

License

This project is released under the MIT licence, for more information, please click here.