CP2003 Assignment 3
A Secure Chat Room

We are probably all familiar with the concept of a chat room and most of us have been in one on the internet at one time or another. Basically a chat room consists of a number of clients connected to a single server and when one of the client users types something, that message appears on the console of all of the other clients. For example, the client/server applications might look like this:

Screen capture

The problem with this setup and most systems involving a network is that a message can be intercepted along the way so people can read your messages without you knowing. Fortunately however, as intrepid cp2003 students you have developed some encryption software that can be partly re-used to make your chatroom more secure. Basically, what you need to do is encrypt your message at the client end and send the cipher text to the server. The server then broadcasts that message to all of the other clients which decrypt the message and display the original text on their own consoles. Therefore, if someone was to intercept the message en route to or from the server, they would be unable to make any sense of it. The setup would be something like this:

Client-Server setup

Finally, in order for a system like this to work, an encryption key must be agreed upon beforehand. This is slightly inconvenient, but makes the message more difficult for an intruder to decrypt as they have no idea what length or what form the encryption has.

You are to write the client and server implementation of this software for assignment three. The program must provide the user with a text field to enter their username, a text field to enter their messages and a text area to display all messages received from the server (and miscellaneous buttons for sending messages, departing the chat etc). You should be able to re-use areas of your existing code or the provided solution to assignment two.

Bonus Marks

Bonus marks are available for the keen programmers. Areas which can be implemented to achieve these marks are:

Due Date

Friday of week 12 (this is an immovable deadline)

Submission Details

The usual submission details will apply - one copy of the code is to be submitted by email or on a working floppy disk bye the due date. As in assignment two, working in groups is permitted and you must inform your tutor by the tutorial in week 11. Finally, as usual a penalty of 10% of your assignment mark per day will apply for late submissions.

It is the students responsibility to ensure that their program is capable of running in Windows on H: drive in the tutorial room prior to submission.

Weighting

This assignment is worth 15% of your overall grade in this subject.

Marking Scheme

Execution
Program structure and design
Visual appearance
Exception checking/handeling
Comments
Formatting



Copyright 2000.  James Cook University, School of IT.