Skip to content

Latest commit

 

History

History
54 lines (41 loc) · 1.47 KB

File metadata and controls

54 lines (41 loc) · 1.47 KB

SSL PROJECT

By Aayush, Gary, Aidan

Workflow:

visualization

How To Run:

  1. Open two Linux Terminals
  2. In Terminal 1: python3 BankingServer.py
  3. In Terminal 2: python3 ATM.py

After the SSL Handshake finishes, you will be able to communicate with BankingServer.

Project Summary:

A Cryptography Project where we simulate the passing of Banking Operations from an ATM to a Bank.

We first use SSL Handshake Protocol to establish an authenticated and secure connection between ATM and Bank using:

  1. RSA Encryption Decryption Algorithm
  2. AES Encryption Decryption Algorithm

Then we us the AES Encryption Decryption Algorithm to pass encrypted Banking Operations between ATM and Bank to simulate Banking Queries that could theoretically be called in real world banking applications.

Banking Operations:

  1. w: 1000 -> withdraw $1000
  2. d: 1000 -> deposit $1000
  3. cb -> check balance

General Operations:

  1. e -> Exit

How To Call Crypto Algos:

RSA

# Public Key = (e, n), Private Key = (d, n)
e, n, d, n = generateKeys()

# To Encrypt
cipher = encrypt(msg, e, n)

# To Decrypt
plainTxt = decrypt(cipher, d, n)

AES

# This generates the IV in a format that works for the implementation.
IV = AES.genInitVec()

# To Encrypt
ciphertxt = AES.encryptMsg(plaintext, key, IV)

# To Decrypt
decrypted = AES.decryptMsg(ciphertxt, key, IV)