Skip to content
  • +254-729-010-973
  • support@benedictsol.com

Notice: Get Professional Academic Writing

Quick Links
  • Home
  • ORDER NOW
  • Blogs
  • Sign Up
  • Login
  • Contact Us

Homework Help

Premier write my essay and Homework help service

  • Home
  • ORDER NOW
  • Blogs
  • Sign Up
  • Login
  • Contact Us

Establish a secure communication channel

February 20, 2018August 12, 2017 admin
‘
‘
February 20, 2017

<'">
0

0

Services

Establish a secure communication channel

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.

Share this:

  • Click to share on Twitter (Opens in new window)
  • Click to share on Facebook (Opens in new window)
  • Click to share on Google+ (Opens in new window)

Related

Previous answers to this question


This is a preview of an assignment submitted on our website by a student. If you need help with this question or any assignment help, click on the order button below and get started. We guarantee authentic, quality, 100% plagiarism free work or your money back.

order uk best essays Get The Answer
Uncategorized

Post navigation

Impact of ethical and non-ethical judgement in accounting for management earning
Case study Human service

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Establish a secure communication channel

February 20, 2018August 12, 2017 admin
‘
‘
February 20, 2017

<'">
0

0

Services

Establish a secure communication channel

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.

Share this:

  • Click to share on Twitter (Opens in new window)
  • Click to share on Facebook (Opens in new window)
  • Click to share on Google+ (Opens in new window)

Related

Previous answers to this question


This is a preview of an assignment submitted on our website by a student. If you need help with this question or any assignment help, click on the order button below and get started. We guarantee authentic, quality, 100% plagiarism free work or your money back.

order uk best essays Get The Answer
Uncategorized

Post navigation

Impact of ethical and non-ethical judgement in accounting for management earning
Case study Human service

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Our Guarantees

  • 100% High Quality Writing
  • 100% Custom papers
  • 100% Privacy
  • 100% Money Back
  • On-time Delivery
  • Customer-friendly Support

Recent Posts

  • Topic: Sustainable solutions to address management for refugee resettlement in the United States of America: The case of refugee resettlement in San Diego, California
  • Written Assignment 8 – Ethics Paper Length: 2-4 pages (not including title page and references page) Due: By midnight (PT) on the 7th day of Week 10, Mod 5
  • Week 7 – Assignment: Critique the Effectiveness of Zero Tolerance Policies
  • LO1: Gain practice writing to participate in a larger discourse
  • Topic: Peer Review 2
  • Nursing Benchmark – Drafting a Literature Review
  • essay on Biomechanics: Joints Movement
  • Nursing # Case Study 1: ( 2 pages ), Chapter 46, Management of Patients With Oral and Esophageal Disorders
  • The best spinner-article writing prompts
  • essay on Budget Process (finance).
  • Home
  • ORDER NOW
  • Blogs
  • Sign Up
  • Login
  • Contact Us
Copyright. All rights reserved.
Proudly powered by WordPress | Education Hub by WEN Themes