Cryptography is the study of secured communications. In a sens cryptography could be considered as a branch of mathematics where we focus on algorithm strength and complexity. To do so we are using Number Theory, which gives us the basis (prime numbers, big numbers, Euler's totient, Fermat's theorem...) in order to create strong mechanisms that are fast to encode data and fast to decode them. During my last year of studies I had to develop a Java (GUI) application to increase my knowledge of Cryptography. The aim was first to implement the part of the Number Theory that is used in Cryptography. In a second time I had to attack some weak securities to learn what a programmer should and should not do when implementing a security service.The GUI is very simple and look like the following:
Part of this GUI is multi-threaded because some attacks could take a huge time. This software is of course not a hacking software because security weakness are hard-coded in the sources. For example the next picture is the result of an attack of a Cipher text encoded with a patterned key.
As usual the sources are available. And I would like to thank Tom Dowling (teacher) for this great introduction to Cryptography.














