Honours Projects: Annabelle McIver
Elliptic Curve Cryptography
The use of elliptic curves in Public Key Cryptography has been first suggested in 1985. From this date, elliptic curves have become increasingly popular mainly because the only algorithms that we know to solve the hard problem on which cryptography is based, namely the elliptic curve discrete logarithm problem, are of exponential complexity. This is in contrast with the existence of sub-exponential algorithms to solve the factorisation problem on which RSA is based. As a consequence, much shorter keys can be used in elliptic curve cryptography (ECC) to achieve the same level of security provided by RSA. For instance, a key of 160 bits in ECC is believed to be as secure as a 1024-bit RSA key.
The goal of this project is to research new fast and secure ways to perform arithmetic on elliptic curves and to implement a cryptosystem based on these curves.
Fair Automarking
In many areas of computer science, students needs to write programs and receive an appropriate feedback to improve their skills. At the same time, from an instructor point of view, it is clearly impossible to run and evaluate all these programs on an individual basis. A popular solution to this problem is to use an automarking scheme. This is usually a script able to compile each student's program and run it on predefined inputs. The corresponding outputs are then compared with the expected outputs generated by a correct program. This comparison is often done character by character, for instance using diff. Even if some improvements can be made (for instance by ignoring blank characters or letters case), every year a large proportion of students invariably complain that the automarking system is unfair: Despite their program being "mostly correct", they obtained a poor mark in return.
The aim of this project is to design an automarking system that can be executed by a student. This system should be able to display differences between the output generated by a student's program and the correct output. This will allow students to correct typos and small mistakes on the fly. When required, the system will be asked to generate a file containing enough information to identify a student and compute its mark. This file will later be electronically submitted by the student to a server gathering all the marks.
Cryptographic techniques will be essential in this project to authenticate students work in order to prevent plagiarism.
