This repository contains problems in cryptography that I'm attempting to solve to further my knowledge of the subject. All solutions are in Kotlin
, a programming language on the JVM with functional features. I previously solved some of these problems in OCaml
, a functional programming language; this earlier approach can be found in the archive folder.
All problems are solved without the use of third-party libraries; that is, only the standard Kotlin
and Java
libraries are used in the algorithms. This out-of-the-box approach means that anyone should be able to run the code with just a working Kotlin
and JDK installation.
My approach to cryptography is based on the Cryptopals cryptography questions, which in turn are based on the Matasano cryptography problems. I hope to get through Set 8 eventually. The topics that these problems broadly cover include, but are not limited to:
- Basics (XOR, conversions, etc.)
- Block cryptography
- Stream cryptography
- Randomness
- Diffie-Hellman and similar methods
- RSA and DSA
- Hashes
- Abstract algebra
Please let me know if you have any suggestions for the code structure for my personal improvement. I would love to know ways I can optimize my strategies or organize my functions better or even develop better style!
The code here is licensed under GNU General Public License v2.0.