Last semester I had the opportunity to do an independent research project at Chalmers. Abstract and link to the repository as well as the final report are below.
Title: Cryptographic Block Ciphers in Functional Programming: A Case Study on Feldspar and AES
Supervisor: Michal Palka
Examiner: Mary Sheeran
Cryptographic block ciphers are defined as mathematical functions, and thus a prime candidate for implementation in functional programming languages. We implement the block cipher Rijndael, which was selected as the block cipher used for the Advanced Encryption Standard (AES), in Cryptol, Haskell, Feldspar, and C. We analyze how well Feldspar, a language originally designed for digital signal processing, is suited to this task. We highlight relative strengths and weaknesses of Feldspar for implementing cryptographic block ciphers, and suggest possible improvements to this language.