Skip to content

Grace0Hud/CS4600_Final

Repository files navigation

CS 4600: Designing an Encryption Scheme

Group members: Cedar Hudgens, Andrew Chen, and Elias Mohn.
This project was created for CS 4600 at Cal Poly Pomona.

Requirements

  1. The two parties have each other’s RSA public key. Each of them holds his/her own RSA private key.
  2. Each party’s message (from a .txt file) is encrypted using AES before sending it to another party.
  3. 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).
  4. Message authentication code should be appended to data transmitted. You are free to choose the specific protocol of MAC.
  5. The receiver should be able to successfully authenticate, decrypt the message, and read the original message

Implementation

Abstract

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.

Sender

Sender flowchart

Receiver

Receiver flowchart

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages