This project implements a secure client-server communication model using Lattice-based cryptography, specifically the Learning with Errors (LWE) problem. The system operates through a terminal-based interface.
- Secure Communication: Utilizes LWE for encryption and decryption.
- Client-Server Model: The server listens for connections while the client sends and receives encrypted messages.
- Python Implementation: Written in Python with additional libraries.
- Clone the repository:
git clone https://github.com/devashishdubal/Lattice-Based_Cryptography.git cd Lattice-Based Cryptography - Install dependencies:
pip install numpy # if windows is being used pip install windows-curses
Ensure you have the following Python libraries installed:
numpycurses(Linux/MacOS),windows-curses(Windows)
Run the server script to begin listening for client connections:
On Windows
python final_server.pyOn Linux/MacOS
python3 final_server.pyRun the client script to connect to the server and exchange encrypted messages:
On Windows
python final_client.pyOn Linux/MacOS
python3 final_client.pyfinal_server.py- Implements the server logicfinal_client.py- Implements the client logic
- Inspired by research in post-quantum cryptography.
- Based on concepts from Lattice-based cryptography and Learning with Errors (LWE).
- https://en.wikipedia.org/wiki/Lattice-based_cryptography
- On Lattices, Learning with Errors, Random Linear Codes, and Cryptography - Oded Regev - https://arxiv.org/abs/2401.03703