Establish a secure communication channel

Assignment Help Computer Network Security
Reference no: EM131018344

I need solution of this problem and code in the suggested files in Assignment description

Advanced Network Security

Assignment

Objectives

On completion of this assignment you should be able to:

- Understand some basic techniques for building a secure channel.
- Understand network programming.

Write (Java or C/C++) UDP programs allowing two parties to establish a secure communication channel. For simplicity, let us call the programs "Host" and "Client", which are executed by Alice and Bob, respectively.

Alice and Bob share a common password PW which contains 8 alphanumeric characters. They want to establish a secure communication channel that can provide data confidentiality and integrity. They aim to achieve this goal via the following steps: (1) use the password to establish a shared session key; (2) use the shared key to secure the communication.

Step 1 is done via the following key exchange protocol:

1: A → B: EPW(KA)
2: B → A: EPW (KB)

Alice and Bob then compute the shared key as K = Hash(KA||KB). KA and KB are both 128-bit random binary strings, and || denotes string concatenation. Alice and Bob decide to use AES as the encryption function, and MD5 as the Hash function.

After establishing the session key, step 2 is achieved as follows:

1. whenever Alice wants to send a message M to Bob, Alice first computes H = Hash(K||M), and then computes C = EK(M||H) and sends C to Bob.

2. upon receiving a ciphertext C, Bob first runs the decryption algorithm to obtain M||H = DK(C). After that, Bob computes H' = Hash(K||M) and checks if H = H'. If the equation holds, then Bob accepts M; otherwise, Bob rejects the ciphertext.

3. the same operations are performed when Bob sends a message to Alice.

Implementation guidelines

- Place Host and Client in two separate directories: Alice and Bob. The shared password is located in a file under each directory.

- Alice executes Host.

- Host is running and listening to the opened port (you need to select a port for your code).

- Bob executes Client.

- Client (Bob) sends a connection request to Host.

- Client is ready and listens to the port.

- Host generates a random KA, encrypts it using AES, and sends the ciphertext to Client.

- Upon receiving the message from the Host, Client decrypts the message to obtain KA, randomly chooses KB, encrypts it and sends the ciphertext to Host. Client then computes the shared key K based on KA and KB.

- Upon receiving the message from Client, Host performs the decryption to obtain KB and then computes the shared key K.

- Now, the secure channel is established.

- Either Alice or Bob can send a message encrypted and authenticated by the key K. They type the message on their own terminal. The message is processed by their code (Host or Client) according to the step 2 description given above.

- The received message is printed on the screen if decryption is successful. Otherwise, print "decryption error" on the screen.

- To quit the program, the client should type "exit".

Coding requirement:

You need to write two programs: Host and Client. You should name your programs: host.cpp or host.java and client.cpp or client.java.

You can choose to use some existing libraries or free source code to implement AES and MD5. You should cite the source if you use a downloaded code. Important: make sure your programs can be complied and executed in banshee (banshee.uow.edu.au).

How to run?

Your programs should run according to the protocol. Host and Client should be executed on different windows. For convenience of marking, please use the local IP: 127.0.0.1 for the submitted version. For simplicity, there is no GUI required in this assignment. That is, messages are simply typed on the window and printed on the receiver's window. The looping should continue until the moment the user types "exit" to exit.

Reference no: EM131018344

Questions Cloud

Write an equation for joe production possibility frontier : Suppose Joe has sixty hours of labor available to produce windows and doors. Write an equation for Joe's production possibility frontier for these two goods based on the above information. Write this equation in slope intercept form and measure wi..
Write udp programs to establish communication channel : Write UDP programs allowing two parties to establish a secure communication channel. For simplicity, let us call the programs "Host" and "Client", which are executed by Alice and Bob, respectively.
What should the organization do with regard to marketing : What can you tell about their business health? What should this organization do with regard to marketing? This is where all those years of education start to pay off.
Describe the appearance of red blood cells : 1. Describe the appearance of red blood cells (RBCs), white blood cells (WBCs),and platelets.2. Describe the function of RBCs, WBCs, and platelets.
Establish a secure communication channel : Understand some basic techniques for building a secure channel - Understand network programming and Write UDP programs allowing two parties to establish a secure communication channel.
Why is business ethics such an important topic : What makes the accounting profession different to the point that professional ethics becomes a defining characteristic?
Stanley developed diplopia : Following a car accident in which he hit the left side of his head on the car door, Stanley developed diplopia (double vision) and was unable to move his left eye laterally (abduct the left eye). Explain how this injury caused Stanley's symptoms
What is the internal rate of return on this new plant : Microwave Oven Programming, Inc is considering the construction of a new plant. The plant will have an initial cash outlay of $7.6 million (= -$7.6 million), and will produce cash flows of $3.7 million at the end of year 1, $4.1 million at the end of..
Identify three major themes that are distinct to the church : Identify three major themes that are distinct to the church figure, or for which he/she is widely known. For example, if writing on Martin Luther (who is a major figure and not an option for this assignment)

Reviews

Write a Review

Computer Network Security Questions & Answers

  How the database and web services can be protected

Study how the database and web services can be protected against unauthorized use while maintaining access for authorized users by using firewall and VPN techniques

  Discuss briefly the use of inheritance blocking and forcing

You are required to show evidence that you can prevent student phone numbers on the user information from being read by anyone other than Dorothy Liddleton and the appropriate section manager.

  What is computer security

Computer security is integral part of any organization, if any organization hasstarted working in, immediately it should start Computer security for its systemif they want to protect their system for future.

  How to demonstrate that the server is up and running

You have been asked to install an SVN repository on a server. The SVN will be remotely accessed using the svnserve daemon that is supplied with SVN (please note that this is not the most secure way to access an SVN repository)

  Increment value in one cell in excel

Discuss how to increment value in one cell in Excel if another cell is populated. or example, I have cell A that has values such as 1, 2, 3, 4 etc...

  Seven phases of the systems development life cycle

iscuss and explain each of the seven phases of the systems development life cycle. Make sure your descriptions make connections between the different phases

  Privacy and security of information

Privacy and security of information- Pat, a billing associate at a local hospital, was issued a laptop for work purposes. Her friend, however, has asked to borrow it for school to complete an online assignment

  Importance of maintaining the secure computing environment

Prepare a report providing categorical feature comparison for the three products in the chosen category and make recommendations about the products to assist purchasing decision.

  Explain rsa public-key encryption scheme

Consider the plain (i.e., non-padded) RSA public-key encryption scheme. Encrypt the message m = 12 using the public key pk = (N,e), where N = 35 and e = 3.

  Computer ethics

CHECK OUT COMPUTER ETHICS INSTITUTE'S ADVICE. The Computer Ethics Institutes Web site at www.cpsr.org/program/ethics/cei.html offers the "Ten Commandments of Computer Ethics" to guide you in the general direction of ethical computer use.

  Analyse potential attacks and give a method of prevention

Write a key exchange protocol for A and B to share a symmetric key. Analyse potential attacks and give a method of prevention and write a key exchange protocol for A and B to share a session key. Must consider mutual authentication, freshness, inte..

  Anti-virus applications

Should an organization's anti-virus policy specify that anti-virus applications will be configured to quarantine infected files instead of deleting them automatically? Why or why not?

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