The Secured Socket Programming project aims to create a secure and private messaging system that allows users to send text messages and files while ensuring end-to-end encryption. This project provides secure communication, robust user authentication, and a user-friendly interface.
- Features
- Technologies Used
- System Architecture
- Algorithms
- Analysis
- Installation
- Usage
- Contributors
- License
- End-to-End Encryption: Ensures that only the intended recipient can decrypt the messages and files.
- User Authentication: Users must authenticate themselves with a valid phone number and password.
- File Transfer: Users can securely send and receive files.
- Message Retrieval: Clients can request and securely receive their communication history.
- User-Friendly Interface: Intuitive interface for easy navigation and usage.
- Secure Key Exchange: Utilizes Diffie-Hellman key exchange for secure communication.
- Programming Language: Python
- Cryptography Libraries: PyCryptodome
- Database: MongoDB
- Protocols: Diffie-Hellman key exchange
- Encryption Methods: XOR encryption
- User Authentication: Authenticates users by checking credentials against a MongoDB database.
- Key Generation: Generates large prime numbers for secure communication.
- Database Management: Stores user data, messages, and files in MongoDB.
- Message and File Handling: Manages receipt, storage, and retrieval of text messages and files.
- User Authentication: Sends phone number and password to the server for verification.
- Key Exchange: Generates encryption keys using server-provided prime numbers.
- Message and File Transfer: Securely sends and receives text messages and files.
- User Interface: Provides an intuitive interface for user interactions.
- Utilizes the
number.getPrime()function from PyCryptodome to generate large prime numbers.
- Uses XOR operations with a symmetric key for securing text and file transmissions.
- Establishes a shared secret key over an insecure communication channel using large prime numbers and modular arithmetic.
- Exponential Complexity Across Tables: Observes exponential growth in computational time with increasing bit length or number of iterations.
- Trade-off Between Security and Efficiency: Balances stronger security with larger bit lengths against computational efficiency.
- Clone the repository:
git clone https://github.com/ityashag/SOCKET_PROGRAMMING.git
- Navigate to the project directory:
cd SOCKET_PROGRAMMING
- Start the server:
python server.py
- Start the client:
python client.py
This project is licensed under the MIT License. See the LICENSE file for details.