# Cryptography and Romans

Cryptography is the practice and study of techniques used to protect information and communications from third parties who may attempt to read private messages. Multiple disciplines are involved in developing such techniques, including mathematics, physics, digital signal processing, and information security. In computer science, we use algorithms that employ mathematical concepts to transform messages in ways that are difficult to decipher.

Ancient civilisations already used classical cypher types to protect their communications. This early cryptography focused on message confidentiality, which means encrypting to transform them from a comprehensible form into an incomprehensible one, and then back again. The main classical cipher types are:

**Transposition ciphers**: rearranging the order of letters in a message (e.g., 'hello world' becomes 'ehlol owrdl')**Substitution ciphers**: replace letters with other letters.

The Caesar cipher is a type of substitution cipher that was reportedly used by Julius Caesar to communicate with his generals. This method involves replacing each letter in the plaintext with a letter that is a fixed number of positions further down the alphabet. Here, we used a shift of three to encode a famous quote by Oscar Wilde:

"Wkh wuxwk lv uduhob sxuh dqg qhyhu vlpsoh".

**Solution**

"The truth is rarely pure and never simple"

The previous examples all used monoalphabetic substitution ciphers, which employ only one cipher alphabet. It is also possible to use a polyalphabetic substitution cipher, which utilizes multiple cipher alphabets. Thanks to these algorithms, our message becomes much more difficult to decode, as a codebreaker must figure out multiple alphabets.

The Vigenère square is a more complex polyalphabetic substitution cipher. It uses 26 different cipher alphabets to encrypt text. Each cipher alphabet is a rightward shift of the original alphabet. This is what a Vigenère square looks like:

To use the Vigenère square to encrypt a message, choose a keyword and repeat it until it is the same length as the message to be encoded. Then use each letter of the repeated keyword to find what cipher (what row) to use for each letter of the message to be coded. For instance, the cipher alphabet on the second row substitutes A with B, B with C, etc. That is cipher alphabet 'B'. Each cipher alphabet is named by the first letter in it. For example, if the keyword is LEMON and the message to encode is ATTACKATDAWN, then the encoding is:

| ATTACKATDAWN |

| LEMONLEMONLE |

| LXFOPVEFRNHR |

Now, try to solve these puzzles we prepared for you using the Vigenère square !

“Uvhsbxb fl xkb lsxi hj zfm.” — ALiemdj Lldhxwsbtvh

Key: TEDX

**Solution**

“Brevity is the soul of wit.” — William Shakespeare

“Gmcgr gktrta atvyixg g goillvzya yoocugl nqzli.” — Ufate Hjfpvgtk

Key: CRYPTOGRAPHY

**Solution**

“Every secret creates a potential failure point.” — Bruce Schneier