EE6032 - ED5012 Assessment 2024
EE6032 - ED5012 Assessment 2024
EE6032 - ED5012 Assessment 2024
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
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)
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
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.