Implement secure communications between two parties

Assignment Help Computer Engineering
Reference no: EM132155883

Use C, C++, Java, or Python

1. Introduction:

In this assignment, you will implement secure communications between two parties, Alice and Bob.

For simplicity, the sending of a message from the sender to the receiver will be simulated through writing the message into a file by the sender and reading the message from the file by the receiver.

This assignment is designed to practice key distribution, encryption/decryption, and integrity protection with secret key cryptography and public key cryptography.

2. Task Description:

Communication scenario: Alice (as a Client) needs to send messages to Bob (as a Server). Alice and Bob each have a pair of <public key, private key> under the RSA cryptosystem (their key pairs are different), and they know each other's public key beforehand (the public keys can be hard coded into the program or read from a file).

Step 1: Set up a shared secret key: Alice and Bob set up a shared secret key using the following method: Alice generates a random key k, encrypts it using Bob's public key with the RSA algorithm, and sends the ciphertext to Bob. Bob receives the ciphertext and then decrypts it to get the key k.

Step 2: Message encryption and decryption: Alice sends a 25-byte message to Bob. This message is encrypted using AES with the key k distributed in Step 1. Bob decrypts the message using his copy of key k.

Step 3: HMAC-based Authentication: Alice sends a 30-byte message to Bob. This message is authenticated with an HMAC generated with key k (distributed in Step 1) using SHA-256 as the underlying hash algorithm. Bob verifies the HMAC to see if the message is from Alice and if it has been modified during transit.

Step 4: Digital Signature-based authentication: Alice sends a 40-byte message to Bob. This message is authenticated with a RSA signature computed over the hash of the message with the SHA-256 hash algorithm. Bob verifies the RSA signature to see if the message is from Alice and if it has been modified during transit.

To evaluate Step 1, your program needs to print the k at Alice and the k decrypted by Bob to see if they are the same.

To evaluate Step 2, your program needs to print the message at Alice and the message decrypted by Bob to see if they are the same.

To evaluate Step 3, your program needs to print the HMAC computed by Alice and the HMAC computed by Bob to see if they are the same.

To evaluate Step 4, the server's (Bob's) program needs to print the result of RSA signature verification operation over the received signature to see if it is the same as the message generated by Alice.

Reference no: EM132155883

Questions Cloud

What is the lower limit of the interval : Terrance want to find a 95% confidence interval for the true proportion of the population who favor the bill. What is the lower limit of the interval?
Write in pseudo-code the siftdown algorithm for a min-heap : A ternary max-heap is similar to the binary max-heap that we have discussed in class, but now non-leaf nodes can have 3 children instead of 2.
What are the indices of the parent and children of a node : A ternary max-heap can be represented using an array. What are the indices of the parent and children of a node at index i ?
Large degree of error variance in an experiment : A researcher finds a large degree of error variance in an experiment on children's ability to remember a passage they read as a function of the number of hours
Implement secure communications between two parties : In this assignment, you will implement secure communications between two parties, Alice and Bob.
Use the checksum to verify each of the following groups : Use the checksum to verify each of the following groups of 8-bit data elements All of the data is represented in hexadecimal.
Write a program using the above function to print the number : Write a program using the above function to print thr number of days from 1 Jan 2017 to a given date and the day of the week of the given date.
Write a program that reads in a series of lines : The integer value on the first line can be read with scanf(), but all of the following lines can only be read with getchar().
Create a header file employee : An Employee named Erica Winterbottom and her employee number is 00001.

Reviews

Write a Review

Computer Engineering Questions & Answers

  Explain why multi-byte nop instructions are needed

The NOP (no-op) instruction is an instruction that does nothing. In x86, a 1byte opcode 0x90 is designated as NOP instruction.

  Why is camera transmission not making it to security program

Why is the camera's transmission not making it to the security program? Below are several possible resolutions. Select the best one and explain your reasoning:

  Write a Cpp method to remove a node from an AVL tree

Write a C++ method to remove a node from an AVL tree, following the steps outlined in the text.

  Toshiba announces wipe technology for self-encrypting disk

Toshiba Announces Wipe Technology for Self-Encrypting Disk Drives

  1 complete the partial code provided with this lab that

1. complete the partial code provided with this lab that implements a simple group communication application using

  Discuss the heat transfer process

A 150-mm-diameter and 1-m-long rod is positioned horizontally and has water flowing across its outer surface at a velocity of 0.2 m/s.

  What are three routes types created

The next-hop can be identified by what factors. How the destination is specified creates one of the three following route types.

  Identifying and describing how specific system used in an

writenbspa 700- to 1050-word paper identifying and describing how specific system used in an organization has

  Questiona consider on how you would know if a computer were

questiona. consider on how you would know if a computer were thinking like a humanb. someone with very little knowledge

  Explain your thought process to the class

Explain your thought process to the class. Be sure to mention a reasonable due date and responsible party.

  Describe what java environment contain to pass an arraylist

Describe what Java environment contain to pass an ArrayList

  Modify the inventory program by adding a button to the gui

modify the inventory program by adding a button to the gui that allows the user to move to the first item the previous

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd