EE6032 - ED5012 Assessment 2024

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

EE6032_ED5012 Assignment – Worth 50% of module

Note:
This assignment can be completed individually OR in groups (no more than four allowed
in a group).
Where a group project is submitted you must clearly state who did what in the project -
the tasks each member performed, in the submission document.
In addition a group project must use the Socket implementation option – see
implementation details on the next page.

Assignment Details:
Design a key establishment protocol that will allow a Mutually Agreed Session key (Kabc) to be established between
three entities A, B and C. This key can then be used to secure a chat between the three entities.
I want you to develop your own design based on the conditions below.
Note: The session key should NOT be known to the Chat Server (S) and the Chat Server (S) can only forward the
encrypted messages to A, B and C and S cannot read the messages,
i.e. End to end encryption/privacy is to be used between the chat parties A, B and C.
The secure chat between entities A, B and C must use the Chat Server (S) and session key Kabc as below:
i.e. A, B and C Do NOT communicate directly and must exchange messages through the Server S.

Chat
Server (S)
{M2}Kabc
{M1}Kabc {M3}Kabc
{M1}Kabc
{M2}Kabc {M3}Kabc
{M1}Kabc
{M3}Kabc
A {M2}Kabc B C

The following conditions apply to your protocol design.


1. A, B and C Never communicate directly.
2. Each entity (A, B, C and S) have a Public Key Certificate, ie. CA<<A>>, CA<<B>>, CA<<C>> and CA<<S>>.
3. The Chat Server, S, must have access to all Entity Certificates that use its service and can provide these
Certificate to its service users if requested to do so. Your design must set this up.
4. Each Entity must Authenticate itself to the Server S before it is allowed to use its service.
5. Each step in establishing the Session key (Kabc) must provide an Authenticated Integrity check of the data
transferred. You must show both sides of this in your protocol design and description, i.e. its generation and
how it is checked.
6. For each of the steps where you use any of CIA (Confidentiality, Integrity or Authentication) please state the
algorithm you used to perform that function. This is to be provided in the description you will provide for the
protocol and also to be listed in the implementation/program comments.
You must provide a legend to describe your notation and a full description of each step in the protocol that is used to
establish the shared key Kabc.
• Now implement the design above using a programming language of your choice. Your code must be
commented to show the individual parts of the design – points 1 to 6 above.
Grading Details – Total 50%
This will be graded as follows:

Design Document: 30%


A protocol diagram and a full description of each part and step in the key establishment protocol is required. This is
to include suitable notation and a text description of each step.
Your description and diagram must clearly show and describe where/how the following is provided for 20% of the
marks, as per the conditions 1 to 6.
Mutual Agreed Key setup: 10%
Integrity: 5%
Confidentiality/Authentication: 5%

A high quality and professionally structured document is allocated 10%


Quality of protocol, Steps, description: 5%
Quality/Structure of submitted Document: 5%

Sample Document layout


[1] 10 pages maximum in the document.
[2] To include,
1. Front page: EE6032/ED5012 Project and Name and ID (list all names/IDs if it’s a group project)
2. Index of report
3. Problem statement
4. Who did what if it’s a group project – name, ID and task carried out in the project.
5. Protocol diagram
6. Protocol description – Step by Step.
Include details where the above (key setup, integrity, conf/auth) are provided.
7. If code snippets are to be used please use an appendix.

Implementation: 20% - will be marked based on your live demo.


Using a programming language of your choice implement the protocol you have designed and develop a chat
application that allows it to be demonstrated.

This application can use either of the following approaches: (depending if project is individual or group)

1. Socket communication between users – can be demonstrated using three chat windows on a single PC using
socket communications and the local host IP of 127.0.0.1 (For Group projects)
2. Three user windows on a single PC – socket communication not necessary
(Option 2 can be used for an Individual project – if this option is used for Group project then maximum marks
that can be achieved is 4% for a working implementation-see below)

You can use suitable libraries in this implementation but you must clearly describe in the code (use
comments) where it meets the conditions 1 to 6 specified.
Working implementation: 14% (see points 1 and 2 above for this mark)

This is to be demonstrated using a live demo of the application working.

Professional look: 3%
Comments/code structure: 3%

Total: 20%
Live demo requirements to demonstrate project
operation (20%)
1. Show your implementation working and verbally describe the project.
Cover the following in your verbal description.
a. Did you use socket communications?
b. What libraries you used for encryption, hashing, communications etc?
c. What algorithms were used and for what purpose in your design?
2. Show where in the code (show on screen) the key establishment is performed. Explain how the mutual key is
established and how S cannot know it – go through the code to explain this.
3. Show the encrypted text/chat transfer in operation and the decryption of same text in your demonstration.
Show on screen what S can see and what the three entities, A, B and C, can see for this transfer. You may
need to use a communications monitoring tool like ‘wireshark’ for this.

What to Submit
In the submission through Brightspace you must submit the following:

1. Design document – (in Pdf format) – no longer than 10 pages max (Appendices can be extra).
2. Source code of your implementation with comments – no executable code to be submitted.

Important Dates:
Project start date: Week 3

Report submission/Live demo date: End of Week 11

Please Note: Any projects which are copied from the WEB, or are the
dd date date:
same as other students submission will receive a ZERO mark.
Important Note:
You must obtain 40% or greater in the final exam in order to retain your score in the project.
If you obtain less than 40% in the exam then your project will be down-marked accordingly.
EXAMPLE:

You obtain 40/50 for the project but only 10/30 for the final exam. 10/30 = 33% in final exam.
The max score you can achieve in the project will be: 50 * (33%) = 16.2 = your new project mark.

You might also like