A collection of non-classwork related projects!
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.
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.
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.
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.
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.
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.
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.
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.
The project includes matplotlib visualizations that demonstrate:
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.
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.
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:
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.
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.
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.
To ensure the integrity of the voting process, the system implements: