вспомнить детство

Dec 01, 2014 11:40



Илья впечатлился историей про пересылку шифрованных сообщений в мультсериале "Трансформеры" и стал писать "шифровки", "секретные досье" и т.п. Что интересного можно предложить почитать-поделать-посмотреть на эту тему?

Originally posted by sunely_tales at Криптография


Подозреваю, что криптография появилась практически одновременно с письменностью :-). Ведь мы пишем для того, чтобы фиксировать и передавать информацию, и далеко не всегда хотим, чтобы она попала в чужие руки. Официально история криптографии началась 4 тыс. лет назад. Первым известным применением криптографии принято считать использование специальных иероглифов около 4000 лет назад в Древнем Египте. На сегодняшний день самая широкая группа шифровальщиков высокой квалификации - врачи, я думаю, что многие встречались с их таинственной письменностью :-)

Сразу хотелось бы уточнить, что код и шифр - это вовсе не синонимы. Код - это когда каждое слово в сообщении заменяется кодовым словом, символом или рисунком, в то время как шифр - это когда каждая буква в сообщении заменяется буквой или символом шифра. В каком-то смысле, китайские иероглифы - это тоже код.

Скрывать послание можно не только с помощью шифра или кода, но и более экзотическими способами. Например, можно сделать татуировку на голове посланника, а потом просто подождать, пока вырастут волосы (естественно, это применялось в очень старые времена и, как правило, для этого использовались рабы).

Самые простые и старые способы шифрования - это замена букв алфавита на следующие за ними (код получил название ROT1, что означает вращение на один) или перестановка букв в словах. Более сложной модификацией ROT1 является шифр Цезаря, фактически это два круга с буквами, вращающиеся друг относительно друга. Таким образом, в русском языке можно с помощью одного приспособления создать 33 шифровальных кода. Как можно видеть по фотографии - сделать его легко и в домашних условиях :-)



Все эти примеры относятся к моноалфавитным заменам, это означает, что одна буква заменяется на другую или на символ. Они использовались с 3 тыс. лет до н.э вплоть до X века нашей эры - это первый период криптографии. К сожалению, подобные коды легко разгадываются, так как при этом не меняется  длина слов. Чтобы расшифровать, достаточно найти самые короткие слова, такие как однобуквенные союзы и предлоги, а далее вам нужно просто сопоставить увиденную букву с самими распространёнными союзами. Разгадав одни или две буквы, необходимо подставить их уже в двухбуквенные и так далее.

Другой способ - посчитать встречаемость разных букв и сопоставить с частотой в нашем языке (но для этого нужны дополнительные данные, поэтому я предпочитаю первый вариант) - этот подход называется частотный анализ и для каждого из языков получается своя собственная картинка. Как часто используются буквы русского и английского алфавитов можно увидеть на этих рисунках.
Русский:


Английский:


Конечно, есть программы, которые позволяют это сделать с зашифрованным посланием за доли секунд, но иногда приятно попотеть над этой задачкой самому. Собственно в школьные годы, мы развлекались тем, что присылали друг другу тексты, сохраненные в другой кодировке MS Word, чтобы потом их раскодировать - просто для развлечения.

Один из самых известных моноалфавитных шифров - это Азбука Морзе, правда, он используется не для кодировки, а для упрощения передачи данных.


Второй период криптографии начался в XI веке на Ближнем Востоке и достиг Европы лишь в XV веке. Он характеризуется полиалфавитными шифрами. Суть полиалфавитных шифров сводится к последовательному использованию моноалфавитных. Например, у вас есть 5 моноалфавитных шифров, первую букву вы кодируется первым шифров, вторую вторым и так далее, когда шифры заканчиваются нужно начинать с начала. Самое большое их преимущество - они не поддаются частотному анализу как моноалфавитные шифры. Сложность расшифровки заключается в определении количества моноалфавитных шифров, как только вы знаете их количество, достаточно выделить все буквы, относящиеся к одному шифру, и пременить алгоритмы для расшифровки моноалфавитных. Современные компьютеры перебирают такие комбинации очень быстро, поэтому для сокрытия очень важной информации они не подходят.

Классический пример такого шифра - шифр Виженера. Для создания сообщения нужно иметь таблицу с набором из классических шифром со сдвигом по алфавиту и словом-ключом:


Под текстом необходимо написать слово-ключ, повторяя его пока количество букв не станет равно количеству в тексте.
Предположим, что слово-ключ - это SUMMER, а мы хотим зашифровать слово WELCOME.


Теперь, чтобы определить первую букву, нужно найти в моноалфавитном шифре S (строка матрицы S), найти букву W (столбец W), это будет О.


И так далее, пока не зашифруем все буквы слова:


Есть еще один известный пример полиалфавитного шифра: шифр Плейфера, который был изобретен Чарльзом Уитстоном, но носит название Лорда Плейфера, который внедрил его в Государственные Службы Великобритании. Метод простой, хотя немного запутанный. Попробую объяснить по пунктам сразу с примером:

Для каждого языка вы составляете матрицу из букв - смысл в том, чтобы в матрице были все буквы алфавита. Поэтому для английского алфавита подходит матрица 5×5, а для русского - 8×4.
Вот наша пустая матрица:


Для составления используется кодовая фраза или слова. Она записывается в матрицу по заранее обговоренному правилу: например по спирали (повторяющиеся буквы не записываются). Далее в пустые ячейки вписываются еще неиспользованные буквы алфавита по порядку.

Для примера мы выберем фразу «Сейчас лето и мы купаемся каждый день». И заполним ячейки по порядку: сейчас лето и мы купаемся каждый день


И дописываем остальные буквы алфавита (БВГЗРФХЦШЩЭЮЯ) тоже по порядку:


Наша матрица готова.

Выбираем фразу, которую хотим зашифровать и разбиваем ее на пары букв. Если остается непарная буква, то к ней добавляется выбранный символ (для английского алфавита это X, так что остановимся на этом же для нашего примера)

Возьмем фразу «Солнечный день» и разобьем на пары: СО-ЛН-ЕЧ-НЫ-ЙД-ЕН-ЬХ

Берем первую пару и строим прямоугольник в нашей матрице с углами в этих буквах, далее заменяем их на буквы в других углах этого прямоугольника (один угол заменяется на другой в этой же строке). Продолжаем делать это для остальных пар.

Если буквы находятся в одной строке, то они заменяются на соседние справа. Если буква последняя в строке, то берем первую в следующей строке. Для пары СО, так как они в одной строчке, заменой будет   ЕИ.


Для пары ЛН по правилу прямоугольника заменяем на ЕГ.


Если пара в одном столбце, то заменяем на буквы в этом же столбце, но ниже на одну. Продолжая замены, мы получаем закодированное послание: ЕИ-ЕГ-ЙА-ЬМ-СЬ-МХ-НЦ

Эра полиалфавитных шифров закончилась в начале XX века, но полностью они не исчезли. Уже в начале XX для шифрования стали использоваться электромеханические приборы - это было начало третьей эры криптографии. За основу все также брались полиалфавитные шифры. Именно таким прибором и была шифровальная машина Энигма, широко используемая фашисткой Германией во времена Второй Мировой Войны.


С точки зрения современной криптографии шифр Энигмы очень слабый, однако в военные годы он создавал огромные проблемы антигитлеровской коалиции и только сверхсекретный захват неповрежденной машины с подводной лодки Великобританией позволило эффективно расшифровывать вражескую информацию. По некоторым версиям это был один из важный аспектов победы над фашизмом. Интересно, что со времен второй мировой войны оставались неразгаданными три сообщения. Проект M4 с помощью распределенных вычислений, смог в 2006 году, наконец, узнать, что было в них зашифровано.

В крайне упрощенном представлении машина Энигма представляет собой набор роторов (каждый ротор - это моноалфавитный шифр), соседние роторы при соединении замыкали электрическую цепь. При последовательном соединении нескольких роторов от образованной электрической цепи загоралась лампочка с зашифрованной буквой. При большом использовании роторов вариантов комбинации последовательности моноалфавитных замен становится очень много, что и делало этот шифр в те времена крайне эффективным. Причем комбинации роторов могут ежедневно меняться, что дополнительно усложняет работу криптографам. Общее число возможных комбинаций составляло порядка 2*10145, для сравнения, звезд в нашей галактике Млечный Путь, если не ошибась, всего около 2*1011.

Коммерческое производство машин Энигма началось еще в 20-е годы прошлого века. Немецкий военно-морской флот первым начал использовать их в передачи данных, однако, внося целый ряд модификаций для увеличения безопасности. Другие страны также использовали их, но, как правило, коммерческие образцы.

До 70-х годов прошлого века криптография, не смотря на постоянные усложнения, была еще классическим шифрованием с целью скрыть информацию от чужих глаз. Современная же криптография скорее является разделом математики и информатики, чем лингвистики. Мы сейчас широко применяем результаты этой новой дисциплины в электронном бумагобороте и электронных подписях, теперь это не только прерогатива государства, но и часть бизнеса и частной жизни. С помощью методов шифрования становится возможным, например, проверить подлинность сообщения или её адресата.

Но работа криптографов сводится не только к шпионским играм, есть, на мой взгляд, еще более романтическая составляющая - дешифровка древних и вымерших языков. Тут, конечно, нельзя не упомянуть «Розеттский Камень» (Rosetta Stone).


Он был найден в самом конце XVIII века в Египте, его огромная научная ценность была в том, что на нем красовались 3 идентичные надписи на трех языках: две из которых - это разные письменности древнеегипетского языка, а одна - на древнегреческом, который был хорошо известен на тот момент. Благодаря этой табличке удалось начать расшифровку древнеегипетских иероглифов. К сожалению, ни одна из трех надписей не является полной из-за повреждений камня, что, я предполагаю, усложнило работу криптографов‑лингвистов, но при этом сделала ее и интереснее.

У криптографии даже есть свои памятники - это статую Криптос, у офиса ЦРУ в США. Она представляет собой 4 страницы с 4 зашифрованными посланиями, которые сделал американский художник Джеймс Санборн. На сегодняшний момент расшифрованы только 3 из 4 посланий.


И конечно, как и любая наука, криптография не обошлась без великих тайн.


Об одной из них я уже писала - это Манускрипт Войнича, который оказался на столько крепким орешком, что большинство ученых криптографов уже было сошлось во мнение, что текст абсолютно бессмысленный, однако в этом году был совершен прорыв в расшифровке, о котором я также писала не так давно.

Еще один интересный пример загадочной книги - Codex Seraphinianus (Кодекс Серафини).


Хотя в отличие от Манускрипта Войнича известно, что это творение итальянского архитектора Луиджи Серафини, в котором он изображает таинственный мир, однако, немногочисленный текст этого кодекса до сих пор не расшифрован.

Таким образом, не смотря на помощь суперкомпьютеров, способных за доли секунды обсчитывать сложнейшие алгоритмы дешифровки, в этом деле без креативного подхода все еще не обойтись. Криптография до сих пор не утратила свой благородный налет романтичности.

И, конечно, благодарность magnolia1985 за интересную тему для поста :-)

Га?, малята

Previous post Next post
Up