Here are some projects by Dr Nicolas Courtois proposed to final year CS students (MEng and MSc Information Security):
1. Cold War Cryptography and Modern Block Ciphers.
Description: We will study how to break various historical ciphers such as East-German T-310, DES, Russian GOST cipher etc. We will exploit invariant attacks where a certain set of constraints remains unchaged after one round of encryption. Main reference: https://eprint.iacr.org/2018/1242
Prerequisites: COMP0058 and project T, COMP0025. Block ciphers, symmetric crypto, hash functions, scientific programming skills, mathematical proofs, polynomials, finite fields, modular arithmetic, abstract algebra.
2. Backdoors in Classical Crypto
We will look how a malicious choice of a rotor will make a WW2 encryption machine like Enigma vulnerable to modern space partitioning attacks, for example is there a set of 13 letters which maps to another set of 13 letters after encryption with Enigma. The answer is that yes.
Prerequisites: COMP0058, basic crypto, some bits in maths like modular arithmetic and linear algebra. Some code breaking skills like language-based cryptanalysis, cribbing, stats, biases, bigrams etc.
3. Algebraic Polynomial Invariants and Codes Defined Over Elliptic Curves
Description: We will look for results such as Theorem D73 deep inside https://eprint.iacr.org/2017/440
We will look at special cases, singular points where the result is not true, and study special elliptic curves where more such results are true.
Prerequisites: COMP0058 and project D73, COMP0025. SAGE, scientific programming skills, mathematical proofs, polynomials, finite fields, modular arithmetic, abstract algebra.
4. Stealth Address, Ring Signatures, ZK, Anonymous Staking
We will study the privacy techniques in Monero, ShadowCash, SpectreCoin, ZeroCash and recent research on these topics..
Prerequisites: COMP0058, COMP0025, COMP0061, COMP0143. Also COMP0054. Experience with crypto protocols and crypto source code and implementations. Some provable security. Advanced PK crypto: ZK proofs, ring signatures, multi signatures, etc.
5. Recovery of Private Keys for Bitcoin Wallets
We will develop and implement an attack which consist of discovering a private key of a bitcoin wallets due to a mathematical theorem.
Prerequisites: COMP0058, COMP0025, COMP0061, COMP0143. Also COMP0054. Basic crypto, good programming skills, engineering background, maths, modular arithmetic, linear algebra, elliptic curves (project D73). Write simple mathematical theorems with proofs.
6. ZCash Sapling, Stealth Address and Attacks on ZeroCash
This projest is very hard. Done with industrial partner, Clearmatics based in London. Difficult project for very best of our students. Potentially 2 students. A few days ago, the ZCash team disclosed and patched a vulnerability in an older version of
their software. This mistake was a result of a cryptographic flaw in the BCTV14 paper, which introduces a zkSNARK construct. Despite the paper being publicly accessible, this vulnerability is believed to have escaped years of review from the community, and has been translated into a bug in the Zcash software. While this counterfeiting vulnerability has now been fixed in the new release of Zcash (Sapling Oct 2018), this discovery clearly shows that not enough people have spent time reviewing the BCTV14 paper, and that security proofs are fundamental. In this project, we aim to review of the Zcash Sapling protocol, and study the various constructs that have been introduced in this new version of the project. Info about recent attack on ZeroCash: https://z.cash/blog/zcash-counterfeiting-vulnerability-successfully-remediated.
Prerequisites: COMP0058, COMP0025, COMP0061, COMP0143. Also COMP0054. Experience with crypto protocols and crypto source code and implementations, maybe some provable security. Zero-knowledge proofs, polynomials over finite fields.
7. Carlitz Rank and Cryptanalysis
We will develop methods to approximate arbitrary permutations by linear fractional transformations. This is related to cryptanalysis with AES S-box and Enigma WW2 crypto.
Prerequisites: COMP0058, COMP0025, COMP0061, COMP0143. Basic crypto, semi strong on maths, modular arithmetic, linear algebra Simple mathematical theorems with proofs.