Solving the cryptography riddles of an Airbus LinkedIn promotion

Andre Ferreira da Silva
5 min readJan 15, 2020

Few days before the Farnborough International Airshow (FIA) 2018, some followers noticed the intriguing post in the Airbus LinkedIn profile.

In the following days, they posted the challenges. I put the corresponding pictures all together below in case the reader is interested to solve them, before checking the solutions. We will also find the links in the Reference section below.

Riddles published in the Airbus LinkedIn profile few days before FIA18.

For each riddle, I wrote short Python scripts to solve them and they are all available at this Google Colab notebook.

Day 1: Easy-peasy

It is a typical movie scene: for whatever reason a secret communication is required, the heroes have means to transmit at least two symbols or just one signal with different durations; that could be a flash light, two distinct sounds or, simply dot and dash. That is correct: Morse code. And the IMDB website actually compiled a long list of movies and series honoring Mr Morse.

Let us code the international Morse Code. Using a Python dictionary to make the mapping of the symbols, we will have:

It is a weird decoded message, but in reverse order looks like an URL, so let us finish it:

Day 2: Still easy

Probably the very first substitution cipher which we are introduced to in a computer science course is the ASCII code. After that, whenever we see a riddle with a sequence of numbers, we certainly think about the ASCII code. But this sequence here got also letters. Hum… Any letters “greater” than F? No. So maybe the numbers are in hexadecimal notation. Let us work on these hypothesis then.

Hum… Looks like maps coordinates. Inserting them in the google maps, we have the Farnborough International Airshow coordinates: Lincoln Rd, Farnborough GU14 6BD, UK.;-) Next!

Day 3: Medium

At a first sight, this reminds me binary object representation in ASCII characters. Among the algorithms to do this, the most famous one is probably Base64, which we can use, for example, to embed an image (binary data) in an HTML document (pure text file).

There is a tricky part in transcripting the characters of the image because we are not sure which one is correspondent to the “vertical bar”. Would it be a lower case i (like the first letter of island) or upper case i? The number 1 (one)? A lower l (like the first letter of letter)? Trouble is that the base64 is very sensitive to a wrong character in the string. After some trial-and-error rounds, we found out the correct transcription.

Few comments about this one:

  • After the first decoding, we noticed that we still had a base64-encoded-like string, so we kept decoding it;
  • Python base64 function complains about the padding char = (which is just a character to pad the string to a multiple of four) such that for some iterations we completed with some ‘=’ in the end;
  • The algorithm converts a string to a binary data array such that is possible that we have some non-alphanumeric characters in the output. For these ones (even the new line character) we ignored for the next decoding iteration.

After five iterations, we cracked it!

Day 4: Hard

This one looks like our dear old fellow ASCII…

What about this? Would it be Base64 once again?

This last one, once again, looks like a substitution cipher. And to break these kind of cipher, we may start analyzing the most frequent letters or maybe words. Notice that the sequence gsv appeared twice such that we may consider searching on google for “gsv cipher”. And the first occurrence gives us the solution: Atbash cipher. Very simple substitution cipher in which each letter is replaced by the correspondent letter if you write the alphabet in the reverse order:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

ZYXWVUTSRQPONMLKJIHGFEDCBA

A is replaced by Z, B is replaced by Y and so on.

Day 5: Super hard

Once again it looks like a substitution cipher. Based on the previous challenge, we could think that this would be the Atbash cipher again but it is not the case. There is another very famous substitution cipher called Caesar cipher, which replaces a letter for its K-th successor letter in the alphabet. For example, applying a key K=2 we would replace A by C; B by D; C by E;…; Y by A; Z by B. There is also a more sophiscated way to use Caesar cipher, that is by using a different key K sequentially and repeatedly. For example, using the key “bus” (being each letter actually the number of its position in the alphabet) to cipher the message “this is a secret”.

B -> 2

U -> 21

S -> 19

  THIS IS A SECRET
+ BUSB US B USBUSB
= VCBU DL C NXEMXV

This is called Vigenère cipher. Maybe we should try a key like… AIRBUS? (and we should also consider that the sequence number starts from 0, such that A=0).

As promised…

Well, some days after sending them the solutions in a very short email message, I received this fancy gift in my house :-)

Remember that all the Python codes are available at the Jupyter notebook at https://colab.research.google.com/drive/1FURFXbAq1Ipum4ZtmYQtmSDCEbSn54Vs

References

Promotion post: https://www.linkedin.com/feed/update/urn:li:activity:6422813729355767808/

Day 1: https://twitter.com/airbuscareers/status/1017047122884087808

Day 2: https://www.linkedin.com/feed/update/urn:li:activity:6423178155338661888

Day 3: https://www.linkedin.com/feed/update/urn:li:activity:6424213552785162240

Day 4: https://www.linkedin.com/feed/update/urn:li:activity:6423582619564412928

Day 5: https://www.linkedin.com/feed/update/urn:li:activity:6423838636541902849

Movies using Morse code. https://www.imdb.com/search/keyword/?keywords=morse-code&sort=moviemeter,asc&mode=detail&page=1&ref_=kw_nxt

International Morse code. https://morsecode.world/international/morse2.html

Substitution cipher. https://en.wikipedia.org/wiki/Substitution_cipher

Hexadecimal notation. https://en.wikipedia.org/wiki/Hexadecimal

Vigenère cipher. https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher

--

--