Master Thesis Projects

Anonymity Attacks on Monero and SDC

We will study what and how the attacker can learn about the transaction history in anonymous crypto currencies such as Monero and SDC. We will built software attacks, explore and visualize large data sets. We will study primarily Stealth Address techniques
and ring signatures. Substantially less attention will be paid to ZK proofs-based anonymity techniques.

Prerequisites: COMPGA18 or COMPGA12 ECC labs, cryptography, programming, visualization, working with large databases

Cryptanalysis of a Real-Life Stream Cipher

We will study the T-310 stream cipher used by Eastern German government during the Cold War. It encrypts 5 bits at a time using a 230-bit key and 61-bit IV. We will study the applicability of classical attacks on block and stream ciphers studied in GA18 in particular correlation attacks ElimLin+ and SAT solver attacks, and differential attacks.

Prerequisites: COMPGA18, good maths, matrix multiplication, polynomials, Boolean functions, ANF.

ElimLin+ Attacks on Simon Block Cipher

We will study the modern lightweight block cipher  Simon  and we will look at the existence of binary linear and non-linear equations which relate internal data inside several encryptions. We will try to predict when and how many such equations exist, or/and prove that they exist. We will experiment with various known and chosen plaintext attacks and with guess-then-determine attacks. We will execute and run full key recovery attacks such as  here. We will explore the internal connections and topology of the cipher and try to construct a subset of key bits which maximizes the chances of such attack working.
Then we will try to evolve similar but better properties/attacks by computer simulations.

Prerequisites: GA18 Cryptanalysis, cryptography, maths, multivariate polynomials and Algebraic Normal Form (ANF), programming.

Side Channel Attacks on Mobile Phones

Development of side channel attacks on mobile phones. DPA/CPA/template attacks. This project will be done in collaboration with a security evaluation company based in Basingstoke, UK. It is expected that the student will be paid.

Prerequisites: COMPGA18 and COMPGA12, basic crypto, good programming skills, engineering background, statistics, signal processing, knowledge about Linux and Android.

Recovery of Private Keys for Bitcoin Wallets

We will develop and implement an attack which consist of discovering a private key of a bitcoin wallet by a side channel attack on a standard PC/laptop or on a smart card. We will exploit any of power consumption, acoustic and/or electromagnetic emanations,
cache, RAM, or/and CPU vulnerabilities. Several companies offered paid internships AFTER the completion of this project.

Prerequisites: COMPGA18 and COMPGA12, basic crypto, good programming skills, engineering background, statistics, operating systems, computer security.

Efficient Algebraic Coding of ECC Problems

We will study some selected topics covered in this
paper such as D73 Theorem page 61. The main problem is given a set of solutions defined by ECC relations and constraints what is the most efficient method to encode them as low degree polynomial equations
mod P? Another problem is, can such systems of equations be solved by software at a reasonable cost? A key problem is how the complexity of algebraic coding can be reduced by using redundant expansions on the set of variables. We dispose of a ready
suite of software solutions which allows one to explore these problems.

Prerequisites: COMPGA12 ECC labs, COMPGA18 Cryptanalysis, maths/algebra, scientific programming with polynomials in C/C++ or SAGE maths.

Algebraic Cryptanalysis and ECC Point Splitting


We will solve systems of polynomial equations with algebra software and SAT solvers. We will implement a simple algorithm by Courtois from here. Then we will program more complex software attacks.


Programming, experimentation, maths/algebra from either COMPGA12 OpenSSL+ECC labs or from COMPGA18, but not more, no additional maths required, no need to prove theorems, just implementation, good grades, patience, C or C++ programming.

Side Channel Attacks on Bitcoin and/or TLS


We will implement an attack which consist of discovering a private key of a bitcoin wallet or a web server by a side channel attack on a standard PC or laptop. We will exploit cache RAM and CPU vulnerabilities.


COMPGA18 code breaking competition or/and COMPGA12 OpenSSL+ECC labs, basic maths and crypto, no need to understand elliptic curve maths, no need to prove theorems, operating systems and computer hardware and windows/linux system programming, lots of patience, C or C++ or Java or JavaScript or Python or GoLang programming[any of these].

Cryptographic Standards in Blockchain or Bitcoin


We will study many different standards: specific solutions within ring signatures, ZK proofs, zerocash, ECDSA, secp256k1, BIP32, BIP70 and many other crypto standards implemented or which could be implemented in crypto currency or/and blockchain technologies. We will look at best attacks, implementation costs, security proofs, key generation etc. The student will develop strong expertise which could be a starting point for a career as crypto developer, security architect or security consultant for new finance and blockchain companies.


Good grades in Cryptography

Digital Signatures, Key Management and Bitcoin


We will study the following question: can one build a digital signature scheme in which public keys can derived in bulk from private keys in such a way that there is no attacks in which certain keys allow the attacker to compromise all the other keys?

We will study BIP032 which is a bitcoin key management standard and possibly also many other industrial standards in the area of managing keys in public key cryptography.


Cryptography Discrete logarithm problem, DSA/ECDSA digital signatures, introduction to Cryptography, COMPGA12, COMPGA18 cryptanalysis.

Bitcoin Crime Forensics and Study of Related randoms in SSL/TLS/X.509/PGP/TOR/Windows and Bitcoin and other crypto currencies


We are going to mine data from TLS web commerce web sites and bticoin blockchain etc etc and create large databases of DSA and ECDSA digital signatures. Then we are going to try to detect events such that two random numbers are related (new) and not identical (old). We are also going to monitor and analyse bitcoin thefts. In 2014 at least 100,000 dollars were stolen due to such attacks. Several previous UCL students and the supervisor have already developed some software and some ready databases for this project.


Not obligatory: C++ or Java programming, databases, some maths (discrete logarithm problem), DSA/ECDSA digital signatures, introduction to Cryptography, COMPGA12, COMPGA18 cryptanalysis, Computer Security.

Cold War Cryptography and Modern Block Ciphers


We will study how some historical ciphers were broken since 1930s, Alan Turing attacks on Enigma, and apply the same very basic Theorems and principles in cryptanalysis to some modern block block ciphers such as KeeLoq, Khazad, Anubis, Russian GOST cipher. We will exploit self-similarity, fixed points, involutions, reflection attacks etc.


Maths, good grade in all cryptography modules, maybe some programming.