My Projects

A collection of non-classwork related projects!

Project Portfolio

Encrypted Chat Application

January 2025 - Present
Python, Tkinter, Cryptography
Full-Stack Development
End-to-End Encryption

Project Overview

A secure, real-time messaging application that prioritizes user privacy through strong encryption protocols. The application implements both symmetric (AES) and asymmetric (RSA) encryption to provide end-to-end encrypted communication between users.

Key Features

  • End-to-end encryption using hybrid RSA/AES encryption scheme
  • Secure key exchange protocol with Perfect Forward Secrecy
  • Real-time message delivery with socket programming
  • User-friendly GUI built with Tkinter
  • Encrypted file sharing capabilities
  • Message authentication to prevent tampering
  • Local encrypted message history

Technical Implementation

The application uses a client-server architecture powered by Python's socket library for real-time communication. For security, RSA keys (2048-bit) are used to exchange ephemeral AES-256 session keys, which are then used to encrypt the actual message content. Each message includes a HMAC signature to verify authenticity.

The GUI was designed with usability in mind while maintaining security best practices. All cryptographic operations utilize the Python cryptography library to ensure standards-compliant implementation of encryption algorithms.

Challenges & Solutions

One of the main challenges was balancing strong security with user experience. By implementing a hybrid encryption approach, the application maintains the security benefits of asymmetric encryption while achieving the performance benefits of symmetric encryption.

Another challenge was ensuring secure key exchange. This was solved by implementing ephemeral key pairs that are rotated regularly, providing forward secrecy for conversations.

Quantum-Resistant Encryption Tool

December 2024 - Present
Python, IonQ API
Quantum Computing
Post-Quantum Cryptography

Project Overview

A encryption tool built to be resistant to attacks from quantum computers. This project explores post-quantum cryptographic algorithms and implements the BB84 quantum key distribution protocol using IonQ's quantum hardware simulator.

Key Features

  • Implementation of BB84 quantum key distribution protocol
  • Integration with IonQ's quantum hardware simulator
  • Support for lattice-based encryption algorithms
  • Command-line interface with Python
  • Benchmarking tools to compare with classical encryption methods
  • Visualization of quantum state distribution

Technical Implementation

The tool was built using Python and interfaces with IonQ's quantum computing platform to simulate quantum key distribution. The BB84 protocol involves preparing qubits in different bases and measuring them to establish a shared secret key that can be verified to detect eavesdropping.

For post-quantum encryption, I implemented NTRU (N-th degree truncated polynomial ring units), a lattice-based cryptographic algorithm believed to be resistant to attacks from quantum computers using Shor's algorithm.

Challenges & Solutions

The primary challenge was working with quantum simulation within classical computing constraints. By utilizing IonQ's efficient simulators, I was able to model quantum key distribution effectively.

Another challenge was implementing lattice-based cryptography efficiently, as these algorithms tend to have larger key sizes and computational overhead compared to current public-key methods. This was addressed through optimization and benchmarking.

Shamir Secret Sharing & Distributed Key Generation

February 2025 - Present
Python, Matplotlib
Threshold Cryptography
Data Visualization

Project Overview

A cryptographic system that implements Shamir's Secret Sharing (SSS) and Distributed Key Generation (DKG) protocols, allowing sensitive information to be split among multiple parties such that only a threshold number of participants can reconstruct the original secret.

Key Features

  • Implementation of Shamir's Secret Sharing with configurable thresholds
  • Distributed Key Generation without a trusted dealer
  • Visual representation of polynomial interpolation
  • Support for various secret types (numbers, text, binary data)
  • Validation and verification mechanisms
  • Performance benchmarking for different threshold configurations

Technical Implementation

The implementation uses finite field arithmetic to create polynomials that encode the secret as the constant term. For a (k,n) threshold scheme, at least k shares out of n total shares are required to reconstruct the secret using Lagrange interpolation.

For Distributed Key Generation, the project implements a protocol where each participant generates a polynomial, distributes shares to other participants, and combines received shares to form their final key share, all without requiring a central trusted party.

Visualizations

The project includes matplotlib visualizations that demonstrate:

  • The original polynomial in the finite field
  • How different shares correspond to points on the polynomial
  • The process of polynomial reconstruction from shares
  • Verification that reconstruction works with k shares but fails with fewer

Wi-Fi Security Assessment Tool

March 2025 - Present
Python, Network Analysis
Network Security
Raspberry Pi, Windows, Linux

Project Overview

A portable, multi-platform tool designed to scan and analyze the security of nearby Wi-Fi networks. This tool performs comprehensive security assessments, identifies vulnerabilities in network configurations, and provides actionable recommendations for improving security posture.

Key Features

  • Cross-platform support for Windows, Linux, and Raspberry Pi systems
  • Detailed Wi-Fi scanning capabilities to detect SSIDs, encryption types, signal strength, and MAC addresses
  • Security risk assessment with vulnerability identification
  • Enhanced scanning capabilities using monitor mode on Linux/Raspberry Pi
  • Support for continuous scanning at specified intervals
  • Detailed reporting in both TXT and JSON formats with risk-based color coding
  • Customizable scanning parameters and reporting options

Technical Implementation

This project leverages platform-specific network scanning techniques, using the netsh command on Windows and iwlist/iw on Linux. For enhanced monitoring capabilities, the tool integrates with advanced wireless tools including aircrack-ng to enable monitor mode scanning on compatible hardware.

The codebase is structured modularly with a core scanner module that handles the platform detection and implements the appropriate scanning technique. The main interface provides a CLI with various options for customizing the scan behavior and output format.

Security Analysis

The tool evaluates network security based on encryption protocols, identifying networks using outdated or weak security mechanisms. It assigns risk levels ranging from "VERY LOW" (highly secure) to "HIGH" (significant vulnerabilities) and highlights specific security issues including:

  • Open networks with no encryption
  • WEP encryption (easily broken)
  • Outdated WPA encryption
  • WPA2 with TKIP instead of AES/CCMP
  • Enabled WPS vulnerable to brute-force attacks

Portable Deployment

A key aspect of this project is its portability, particularly when deployed on a Raspberry Pi. The system can be configured to run automatically at boot as a systemd service, conducting regular scans and generating reports for later analysis. This creates a portable security assessment platform that can be easily transported to different locations for field testing.

Blockchain-Based Voting System

September 2024 - Present
Solidity, JavaScript, MySQL
Blockchain
Secure Voting

Project Overview

A secure, transparent, and tamper-proof voting system built on Ethereum blockchain technology. The system ensures that votes cannot be altered once cast and provides a verifiable record of all voting activity while maintaining voter privacy.

Key Features

  • Ethereum smart contracts for vote recording and tallying
  • Secure voter authentication and registration
  • Prevention of double-voting through blockchain verification
  • Anonymous voting with cryptographic techniques
  • Real-time vote counting and results dashboard
  • Audit trail for election officials
  • Cross-platform web interface for voters

Technical Implementation

The system uses Solidity smart contracts deployed on an Ethereum test network to handle the voting logic. MySQL database handles user registration and authentication, while keeping sensitive user data off the blockchain for privacy.

The front-end is built with HTML, CSS, and JavaScript, with Web3.js integration to communicate with the Ethereum blockchain. MetaMask is used to handle transaction signing and user wallet management.

Security Measures

To ensure the integrity of the voting process, the system implements:

  • Zero-knowledge proofs to verify voter eligibility without revealing identity
  • Commit-reveal scheme to prevent last-minute strategic voting
  • Rate-limiting to defend against DoS attacks
  • Encrypted storage of voter information in the off-chain database