Developing a simplified version of the Signal Protocol, which provides forward secrecy and deniability. Provides insight for a practical cryptographic protocol, a variant of which is used in different applications such as WhatsApp
The Signal Protocol is a project designed to provide a secure messaging environment. It involves Public Key Registration and message encryption to ensure the confidentiality and integrity of communications between clients.
-
Phase I: Public Key Registration
- Develop software for registering public keys securely.
-
Phase II: Receiving Messages
- Develop software for receiving encrypted messages from other clients.
-
Phase III: Communication and Status Control
- Develop software to enable secure communication with other clients. Status control is also implemented in this phase.
More detailed explanation is given in the pdf file, also note that Receiver.py coded for Phase-3 to enable messaging between students
Follow these instructions to set up the Signal Protocol on your local machine.
- Python 3.x
- Required Python packages (listed in requirements.txt)
- Clone the repository:
git clone https://github.com/ecetsn/Implementing-Signal-Protocol.git
- Install dependencies:
pip install -r requirements.txt
To use the Signal Protocol, follow the guidelines provided in the documentation.
No additional configuration is required for basic usage. Advanced users can explore configuration options in the settings file.
I welcome contributions to enhance the Signal Protocol. If you have suggestions, bug reports, or code contributions, mail me.
This project is licensed under the MIT License.
This project was developed as part of the course requirements at Sabanci University.