Skip to content

Cryptography and Network Security - Spring Semester 2024 - Indian Institute of Technology Bombay

Notifications You must be signed in to change notification settings

rohankalbag/cryptography-signal-protocol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pythonic Implementation of Secure End-End Encrypted Messaging using Signal Protocol

This project presents a native implementation of the Signal Protocol for secure end-to-end messaging, using the cryptography library in Python. The project includes the development of a secure messaging application with a simple client-side GUI created using PySide6 and a web-socket based messaging system utilizing socketio. The server adheres to the Signal Protocol Specification, storing only credentials and public keys, receiving only ciphertext, and enabling multiple concurrent two-way communications. The client application allows users to select chat partners and locally persist chat messages, enabling local chat history. The cryptographic infrastructure developed can be found in client/utils.py

For the Signal Protocol implementation, the Extended Triple Diffie-Hellman (X3DH) key agreement protocol and the Double Ratchet Algorithm were employed. The X3DH protocol facilitates the establishment of a shared secret key between two parties using their respective public keys, ensuring forward secrecy and cryptographic deniability. The Double Ratchet Algorithm was implemented to provide secure and synchronized key exchanges for continued communication.

The server uses tinyDB to store client information and acts as a communication conduit between clients without retaining any messages. The client-side application features a user-friendly interface for authentication, logging in, selecting chat partners, and viewing chat history. This project demonstrates the practical application of secure messaging protocols and provides a robust foundation for further development in secure communication systems.

Link to Video Demonstration of the Implementation Link to Documentation and Implementation Report

Dependencies

pip install -r requirements.txt

Run Server

python3 server/server.py

Run Chat Interface for Client

python3 main.py

About

Cryptography and Network Security - Spring Semester 2024 - Indian Institute of Technology Bombay

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages