I would be interested in supervising any projects in the areas of programming language
implementation, parallel programming or crpytography. The types of projects I would be
interested in supervising are as follows:
- Implementing your own programming language.
- Analysing and/or optimising programs.
- Parallel implementations of programs.
- Novel applications of cryptographic techniques.
- Use of recent developments in cryptography.
I would be interested in supervising any projects in the areas of cryptography and formal methods.
Some suggestions for specific projects are as follows:
- Perform a detailed cryptanalysis of a block cipher which has not been studied in depth before.
- Investigate more recent approaches to cryptography such as quantum cryptography and lattice-based
- The paper Distillation: Extracting the Essence of Programs [Hamilton, 2007] defines a
transformation technique which can be used to automate certain aspects of formal methods. Some possible
projects in this area (which would be using a minimal programming language) are:
- Develop a tool which will support the formal derivation of programs by performing a lot of the
mechanical steps automatically in the background using distillation.
- Develop a tool which can be used to verify program properties by making use of distillation.
- Develop a tool which can be used to optimise programs by making use of distillation.