Secure File Transfer

This project implements a secure client–server file transfer system designed to enforce confidentiality, integrity, and authentication over an untrusted network. The system establishes a secure session using RSA public key cryptography to exchange a symmetric session key, which is then used to protect all communication. User authentication is handled using the Secure Remote Password protocol, ensuring passwords are never transmitted or stored in plaintext. Files are encrypted end to end using authenticated encryption with keys derived via PBKDF2. The project emphasizes practical cryptographic protocol design, secure key management, and real-world attack resistance.

Overview

Implementation

Results

What I Learned

Built With:

Python, RSA, SRP, AES-CCM, PBKDF2, Sockets, Cryptography