Tag Archives: javascript

Venetian Cryptographies: Progress Report 2

As we described in the previous progress report, we set up a wiki for everything related to medieval cryptography. Currently we have filled it with a decent amount of information about cryptologists, cryptographic algorithms and analysis techniques. The main purpose of this wiki is to gather all the information we can find about the topic for a given period.

We made advancements in implementing a cryptographic device we have chosen, namely the Alberti cipher disk, which significantly simplifies encoding messages with the Alberti cipher. We make use of HTML5 canvas technology, as well as the Raphaël JavaScript library that helps to manipulate objects (such as images and geometrical primitives) on canvas, making the development much easier, since originally the canvas is an array of pixels which knows nothing about the superposed primitives.

We also utilize the jQuery library to simplify interaction with the user and to perform AJAX requests, which allow to fetch data from the server without page reloading, achieving a smoother user experience.

A demonstration of our current Alberti cipher disk implementation can be seen below. We used the sketch that was made by Leon Battista Alberti himself, which dates back to 1467.

Our objective is to show the evolution of polyalphabetic ciphers over time, from simple variations to changes that were considered unbreakable at the time. Since we haven’t found many actual cryptographic devices that implemented these algorithms, we have decided to create visualizations of several polyalphabetic ciphers. In modern cryptology and security applications these types of ciphers are not used (at least in thir original form), but are an important step 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 complex combination of several polyalphabetic ciphers. With our project, we would like to emphasize on the origin of the modern encryption methods that are so widely used recently.

We are currently implementing the following polyalphabetic ciphers alongside the device:

  1. Cipher created by Leon Batista Alberti, which was one of the first ciphers that used multiple alphabets
  2. Trithemius cipher, which used the idea of changing the used alphabet from letter to letter
  3. Cipher developed by Giovan Batista Belaso and some of its variants, the most popular of them being known as the Vigenère cipher
  4. Blaise de Vigenère autokey cipher (not to be confused with the Vigenère cipher, the approach between the two differs)

We will present these ciphers with the corresponding notes about cryptanalysis and give the users the opportunity to test out the cryptographic techniques themselves.

Our current plans include finalizing the implementation and proper visualization of  the described ciphers, as well as adding gamification elements. Also, we will continue filling our cryptographic wiki and consider other possible data representations. Alongside the implementation of the above mentioned cipher algorithms we want to add an extra dimension to the experience by providing a visual interface that would make the algorithm both easier to understand and more appealing to the users.


Up to this point, we have managed to meet the milestones set during the previous semester. However, we still face problems with finding information sources with sufficient detail.  In order to thoroughly understand and be able to implement ciphers used in the past, better sources of information are essential. However, we believe that even with the lack of sources, and the general lack of documented cryptographers from Venice during the relevant time-frame, we will be able to deliver an interesting take on medieval European cryptography and its development.