В сентябре этого года британская разведслужба GCHQ объявила очередной конкурс в интернете. Всем предлагалось поломать голову над несколькими криптографическими задачами. А тех, кто удачно с ними справится, приглашали на собеседование в офис GCHQ.
Профессор информатики вниверситета Суррея Алан Вудворд опубликовал статью с решением этих головоломок. Любопытно глянуть, какого уровня задачи предлагают будущим британским разведчикам. Интересно также посмотреть на методы решения подобных задач.
Итак, первый тест.
Можешь найти это?
AWVLI QIQVT QOSQO ELGCV IIQWD LCUQE EOENN WWOAO
LTDNU QTGAW TSMDO QTLAO QSDCH PQQIQ DQQTQ OOTUD
BNIQH BHHTD UTEET FDUEA UMORE SQEQE MLTME TIREC
LICAI QATUN QRALT ENEIN RKG
В этой шифровке опытный глаз специалиста сразу обратит внимание на две детали: большое количество символов Q (в шифрах подстановки это часто означает, что данный символ используется в качестве пробела), а также необычное количество символов в полном тексте: 143 (произведение простых чисел 11 и 13). Если объединить все символы и разместить их в сетку 11 на 13, то получим следующую картину.
A W V L I Q I Q V T Q O S
Q O E L G C V I I Q W D L
C U Q E E O E N N W W O A
O L T D N U Q T G A W T S
M D O Q T L A O Q S D C H
P Q Q I Q D Q Q T Q O O T
U D B N I Q H B H H T D U
T E E T F D U E A U M O R
E S Q E Q E M L T M E T I
R E C L I C A I Q A T U N
Q R A L T E N E I N R K G
Если кто не догадался, читать надо по столбикам сверху вниз, Q действительно используется в качестве пробела.
A COMPUTER WOULD DESERVE TO BE CALLED INTELLIGENT IF IT COULD DECEIVE A HUMAN INTO BELIEVING THAT IT WAS HUMAN WWWDOTMETRODOTCODOTUKSLASHTURING
Прибыв по указанному адресу www.metro.co.uk/turing, нас поджидает новая загадка: файл comp1.key, доступный для скачивания.
Содержимое файла соответствует его расширению.
-----BEGIN RSA PRIVATE KEY-----
MIIC2gIBAAKBgDfABK8+joDLdbFTDJ+y3PTTzkqCi1L2qEjgxdg1iyZshJTeKUck
SYVyKBeOBtB3FwwqXVa6iNEHJeLFewFE6ulEOIcatVp11Zg0ibMfnqTivbd6t8/z
3KzqrFksg9xQiicMactmTqFkm8ro5ODc2NTQzMjEwLy4tLCslBOCOVHxAgMBAAEC
gYATW12FB2BtQbecmSxh6rWjYENZRZhgdvoZS8oF9xlYfwdNtRF5/RR1/BwFia++
BAuBktgTu/KzORsjcNPzrd0uTCbTG6hW8YPK2ROVOOeAMHek8Nl3+SW5wdePKuWw
MdjDDjqxXDns+ZC1d2Cpz5V+x+2znOYL0bsEKei0sWl7LQKBgDfABK8+joDLdbFT
DJ+y3PTTzkqCi1L2qEjgxdg1iyZshJTeKUckSYVyKBeOBtB3FwwqXVa6iNEHJeLF
ewFE6uhVSior5HGPArFhsOQ0v9ob1NCV7P8M99qN4XplmX/xs05HgQCVh9aMWtio
pKCcmJSQjIiEgHx4dHBsU9JB+TvkAkB3dy53aHRzaXNpbGd1b2VjdHNyZWhzcmku
ZW9jdS4va2xidGVoY2VsIHkgICAgICAgICAgICAgICAgICAgIAuPAkATpSSd/C5S
IEAbUPk+ZYAdt7OYVzay7ViAiaukhkt+/sJG+m8GmHnAKyLf9ohx3/aIcd/2iHHf
9ohx3/ayirJPAkAIefJYEpdAoRjJQCHPGUpOVjLiyQMyPcnsutG+ctAGGU8lZTDU
yUim9V7iwqTE4sKkxOLCpMTiwqTE4sKkxOFNAoGAFInzTsAOkauW3crd1XfxMhxi
tUkapdQqlwvFhZuouNIybfEOfW6WkjtghBDyqf50cEFWXMJ7Vk8mr6cwTosPvYKU
VXKUCblretLTeU95TlbkprizPky++5b7pQuSi3mpLMi+6VgvcjTthfXPYNg2JjJp
gmteC4felYL/2FTAmT8=
-----END RSA PRIVATE KEY-----
Это секретный ключ RSA из пары секретного и открытого ключа RSA. Вопрос в том, для расшифровки чего он должен применяться? На странице нет больше никаких файлов. Вероятно, ответ нужно искать в содержимом самого ключа. В таких случаях часто запускают hex-редактор и смотрят, что можно обнаружить. Но здесь это не помогло.
Затем профессор нашел один из онлайновых конвертеров Base64 и скопировал туда ключ. При перекодировке в UTF-8 удалось обнаружить что-то осмысленное.
ww.whtsisilguoectsrehsri.eocu./klbtehcel y
Можно предположить, что этот текст соответствует адресу http://www.thisisgloucestershire.co.uk/Bletchley. Так и есть: на указанной странице находим следующую головоломку.
Опять набор символов.
2910404C21CF8BF4CC93B7D4A518BABF34B42A8AB0047627998D633E653AF63A873C\
8FABBE8D095ED125D4539706932425E78C261E2AB9273D177578F20E38AFEF124E06\
8D230BA64AEB8FF80256EA015AA3BFF102FE652A4CBD33B4036F519E5899316A6250\
840D141B8535AB560BDCBDE8A67A09B7C97CB2FA308DFFBAD9F9
Разгадать ее может только тот, кто действительно разбирается в современных шифрах. По заголовку можно узнать формат PKCS#1. И можно понять, что к этому тексту следует применить найденный ранее ключ.
openssl.exe RSA –in comp1.key –text
На выходе имеем:
Теперь нужна какая-нибудь утилита для расшифровки RSA, например, эта. С ее помощью мы декодирем последовательность hex-значений.
20 20 20 20 20 20 20 20 77 77 2e 77 68 74 72 65 67 65 73 69 65
74 2e 72 6f 63 75 2e 2f 6b 6e 65 67 69 61 6d 30 32 33 31 20 20
20 20 20 20 20 20
В том же hex-редакторе видим следующую ссылку: www.theregister.co.uk/enigma2013.
Четвертое задание необычно, потому что это — картинка.
На вид comp3.jpg — стандартный jpeg-файл. Однако, если просмотреть весь файл в hex-редакторе, в самом конце можно обнаружить еще один заголовок jpeg-файла!
Картинка в картинке? Удаляем все, что предшествует второму заголовку, сохраняем файл на диск и открываем в графическом редакторе. Перед нами еще один URL.
Собственно, на этом квест и заканчивается, потому что пятая загадка содержит ответ непосредственно в вопросе.
По результатам можно сделать вывод: решенные головоломки всегда выглядят легко. Но это именно тот уровень, который позволяет претендовать на работу в одной из самых мощных разведывательных служб в мире.