Group members: Cedar Hudgens, Andrew Chen, and Elias Mohn.
This project was created for CS 4600 at Cal Poly Pomona.
- The two parties have each other’s RSA public key. Each of them holds his/her own RSA private key.
- Each party’s message (from a .txt file) is encrypted using AES before sending it to another party.
- The AES key used in 2) is encrypted using the receiver’s RSA public key. The encrypted AES key is sent together with the encrypted message obtained from 2).
- Message authentication code should be appended to data transmitted. You are free to choose the specific protocol of MAC.
- The receiver should be able to successfully authenticate, decrypt the message, and read the original message
This project presents a secure communication system designed to ensure confidentiality, integrity, and authentication between two parties. The system uses a hybrid cryptographic approach, combining AES-256 in CBC mode for message encryption, RSA-2048 for key exchange, and HMAC-SHA256 for message authentication. An encrypt-then-MAC scheme is implemented to enhance security against tampering. The architecture is modular, with separate classes for sending, receiving, and managing encryption operations, and uses file-based transmission to simulate communication. Results demonstrate successful encryption, authentication, and decryption of messages, validating the effectiveness of the design.

