https://github.com/emrys-hong/sutd-pa2
Designing and Implementing security protocols for Computer System Design in SUTD Term5.
https://github.com/emrys-hong/sutd-pa2
Last synced: 3 months ago
JSON representation
Designing and Implementing security protocols for Computer System Design in SUTD Term5.
- Host: GitHub
- URL: https://github.com/emrys-hong/sutd-pa2
- Owner: Emrys-Hong
- Created: 2019-04-21T02:10:06.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-04-25T10:27:18.000Z (about 6 years ago)
- Last Synced: 2025-01-15T08:19:17.612Z (4 months ago)
- Language: HTML
- Size: 26.5 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
## Designing and Implementing security protocols for Computer System Design of SUTD Term5.
Author: $Gao Yunyi, Hong Pengfei$
# 50.005 Programming Assignment 2
This application implements a secure file upload application from a client to an Internet file server with the following requirements:
1. Before the upload, the identity of the file server is authenticated using public key cryptography.
2. During the upload, the data is encrypted. We implement two encryption strategies: the first using public key cryptography (RSA), and the second that uses a session key (AES). We compare and benchmark the two strategies.This program is written in Java and was tested in Java 8.
## Problem with Original Protocol
The issue with the original protocol is that it does not prevent a playback attack. In order to tackle this, we introduced a nonce into our system. The nonce is generated by the client and encrypted before beign sent to the server.
### AP

### CP-1

### CP-2

### Example of Successful Output
Upon a successful execution, the client will close its connection to the server and report the running time. The server will patiently await the next connection.
## Results

It is clear that the AES encryption standard is much quicker than using RSA for file transfer.
The data is plotted as following:

## ConclusionWe use public key authentication to perform a handshake between the client and server for file transfer. Additionally, we allow the server and client to specify the encryption policy used (public key encryption, or symmetric key encryption with AES). We benchmark the speed of both policies and conclude that symmetric key encryption is significantly faster.