Posts QIWI - Crypto 100_1
Post
Cancel

QIWI - Crypto 100_1

Inroduction

Qiwi-Infosec - Crypto 100_1 cipher text need to be decoded to read the secret message .

Description

We got a cipher text that was five lines long and consisted of underscores and numbers from 1 to 5.

Chipher Text

The following cipher was given:

1
2
3
4
5
6
7
 52112515_4535_331534
 442315_321144422453_231143_543445
 213431313452_442315_5223244415_411112122444
 2533341325_2533341325_331534
 442315_21311122_2443_442315_4423244214_31243315

Solution

By trying a lot of different decoders eventually found that this is a Polybius-Cipher , Using Cryptii Polybius square as web based decoding web or you can use pyhton script that i wrote

Python decoding funcation

The original square according to Wikipedia is as follows:

 12345
1abcde
2fghi/jk
3lmnop
4qrstu
5vwxyz

Each character is presented with two numbers. The first number shows the row and the second number shows the column of the character.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
ciphers = ['52112515_4535_331534',
'442315_321144422453_231143_543445',
'213431313452_442315_5223244415_411112122444',
'2533341325_2533341325_331534',
'442315_21311122_2443_442315_4423244214_31243315']

matrix = [['a', 'b', 'c', 'd', 'e'],
['f', 'g', 'h', 'i', 'k'],
['l', 'm', 'n', 'o', 'p'],
['q', 'r', 's', 't', 'u'],
['v', 'w', 'x', 'y', 'z']]

plain = []

for c in ciphers:
words = c.split('_')
for word in words:
for num in range(0, len(word), 2):
y = int(word[num])
x = int(word[num + 1])
plain.append(matrix[y - 1][x - 1])

plain.append('_')
plain[len(plain) - 1] = '\n'

print ''.join(plain)

Cypher Texg is

1
2
3
4
5
WAKE_UP_NEO
THE_MATRIX_HAS_YOU
FOLLOW_THE_WHITE_QABBIT
KNOCK_KNOCK_NEO
THE_FLAG_IS_THE_THIRD_LINE

Flag is Captured  » FOLLOW_THE_WHITE_QABBIT

This post is licensed under CC BY 4.0 by the author.