# Introduction

Cryptography (or more generally, cryptology) is the study of techniques for securing communication, as well as stored data. Ciphers have been used since ancient times to protect valuable information of all kinds: secret decrees and military orders to name but a few.

What did ciphers look like in medieval Venice and Europe in general? How and when were they used? Is it possible to reconstruct the encryption techniques that were created and employed by the first professional cryptographers like Giovanni Soro and Leon Battista Alberti? We attempt to answer these questions in our project.

# Methodology

## Mini wiki

Our first step was data collection, so we started gathering all kinds of information on everything related to code-cracking in Venice and related locations. This information includes biographies of famous cryptographers, inventors of various cryptographic algorithms or devices, cryptanalysis techniques, the general context in which ciphers were used, and other relevant information.

The wiki format is extremely convenient for its ability to show the links and relations between different people, objects and events. So we created a MediaWiki [1] resource to gather all the information we could find about cryptography in Venice and neighboring areas. The wiki also facilitates classifying the various collected data into different time periods, geographical regions and types of cryptographic algorithms. After setting up the wiki it was much simpler to browse through data and eventually create a timeline of all the cryptography-related events of the era in order to create a high-level overview in a convenient format.

Using a Wiki also enables community input after or even during the project, and will hopefully inspire a renewed interest in medieval cryptography, and specifically that of Venice.

## Devices and algorithms

Unfortunately, there was very little available information about actual devices that had been used by medieval cryptographers (in fact, eventually only one device was found that we could implement, the Alberti Cipher Disk [2]), so we decided to develop dynamic visual representations of cryptographic algorithms of that era instead, and demonstrate the evolution of polyalphabetic ciphers over time, from simple variations to derivatives that were considered unbreakable at the time. In modern cryptology and security applications these types of ciphers are not used (at least in their original form), but they represent important steps in the overall development of cryptology as a science, both theoretical and applied. For example, the Enigma machine, which was extensively used during World War II, was based on a sophisticated combination of several polyalphabetic ciphers, the basics of which date back to the cryptography covered in this project.

It was decided to provide a series of simple exercises alongside the implementations in order to put give users the opportunity to put newly acquired skills to the test. This allows users a unique hands-on experience with cryptographic algorithms of the era.

# Results

In the following sections we cover our results, mainly represented by web-based implementations.

The backend of the site is built with the CodeIgniter framework [3], a lightweight MVC (Model View Controller) framework for the PHP programming language, aimed at faster development due to the fact that a lot of useful features are readily available.

The frontend template is based on the Twitter Bootstrap framework [4], which allowed us to avoid tiresome HTML style declarations and simplified multiple tasks related to web-page layout. The algorithms are implemented directly at the client side using JavaScript and the jQuery library.

We used the described tools in order to take advantage of the wide availability of these technologies on a broad range of devices.

## Interactive cipher disk

We used the sketch that was made by Leon Battista Alberti himself, which dates back to 1467. We redrew the disk using this sketch, and took advantage of HTML5 canvas technology. The Raphaël JavaScript library was used to manipulate objects (such as images and geometrical primitives) on the canvas, making development much easier.

We tried to give a realistic feel to the device: one can use “drag and drop” for the outer disk in order to align it in the desired way with the inner one. Users are able to interact with the Alberti cipher disk from their computer, tablet or mobile phone, without any special platform porting being necessary.

## Interactive cryptographic algorithms

Not every enciphering technique had a corresponding mechanical device, however some of these algorithms played an important role. Since we were unable to find many physical cryptographic devices that implemented these algorithms, we decided to create visualizations of several polyalphabetic ciphers, providing a simple text-based interface for enciphering and deciphering.

We implemented the following polyalphabetic encryption techniques:

1. Cipher created by Leon Batista Alberti, which was one of the first ciphers created that used multiple alphabets.
2. Trithemius cipher, which used the idea of changing the alphabet from letter to letter.
3. Cipher developed by Giovan Batista Belaso, also known as the Vigenère cipher. The scheme was later misattributed to Blaise de Vigenère, hence its modern name.
4. Blaise de Vigenère autokey cipher, which incorporated the plaintext in a key.

We also implemented the Tabula Recta [5], a table that facilitates encryption with polyalphabetic ciphers. With an intuitive graphical interface a user is given an opportunity to choose the desired encryption scheme and then follow the encryption step by step.

## Exercises

Gamification techniques have proved to be useful in education contexts, so we decided to implement a module for exercises: after reading a description of an algorithm or device, the user is given the opportunity to solve simple (and not so simple) exercises to strengthen his or her understanding. The provided answer is then sent and checked on the server, after which the user is given feedback. AJAX technology is used, which allows retrieval of feedback from the server without reloading the page, providing a smooth user experience.

## Timeline

We integrated all significant events (like cipher publication dates) along with birth dates of famous cryptographers into a global interactive timeline, so that users can get a convenient visual representation of that era’s cryptographic algorithms and their creators.

We used TimelineJS [6] service to build our timeline. A part of the timeline is presented below.

# Conclusion

Major project goals, such as gathering information about the topic and presenting medieval cryptographic techniques and devices, were successfully achieved.

We hope that our implementations of Alberti cipher disk and polyalphabetic ciphers will prove to be useful and will aid other researchers interested in medieval cryptography, reviving interest in the topic, and bringing to light additional algorithms and devices used in this time period.

# References

[1] MediaWiki https://www.mediawiki.org/wiki/MediaWiki

[2] Alberti Cipher Disk https://en.wikipedia.org/wiki/Alberti_cipher_disk

[3] CodeIgniter framework http://ellislab.com/codeigniter