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

  Mathematics in computing

Binary search tree, and postorder and preorder traversal Determine the shortest path in Graph

  Ict governance

ICT is defined as the term of Information and communication technologies, it is diverse set of technical tools and resources used by the government agencies to communicate and produce, circulate, store, and manage all information.

  Implementation of memory management

Assignment covers the following eight topics and explore the implementation of memory management, processes and threads.

  Realize business and organizational data storage

Realize business and organizational data storage and fast access times are much more important than they have ever been. Compare and contrast magnetic tapes, magnetic disks, optical discs

  What is the protocol overhead

What are the advantages of using a compiled language over an interpreted one? Under what circumstances would you select to use an interpreted language?

  Implementation of memory management

Paper describes about memory management. How memory is used in executing programs and its critical support for applications.

  Define open and closed loop control systems

Define open and closed loop cotrol systems.Explain difference between time varying and time invariant control system wth suitable example.

  Prepare a proposal to deploy windows server

Prepare a proposal to deploy Windows Server onto an existing network based on the provided scenario.

  Security policy document project

Analyze security requirements and develop a security policy

  Write a procedure that produces independent stack objects

Write a procedure (make-stack) that produces independent stack objects, using a message-passing style, e.g.

  Define a suitable functional unit

Define a suitable functional unit for a comparative study between two different types of paint.

  Calculate yield to maturity and bond prices

Calculate yield to maturity (YTM) and bond prices

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