С необходимостью сделать свои сообщения понятными только тем, кому они предназначены, сталкиваются не только шпионы и военные... Небольшая популярная экскурсия в мир кодов и шифров, не претендующая на всеобъемлющий характер.
Необходимость скрывать содержание важных сообщений существует уже тысячи лет. Со временем люди находили все более и более сложные способы кодирования сообщений, поскольку простые способы кодировки декодируются с большей легкостью. Коды и шифры не являются синонимами, как многие думают. Код - это когда каждое слово в сообщении заменяется кодовым словом или символом, в то время как шифр - это когда каждая буква в сообщении заменяется буквой или символом шифра. Так что, когда большинство людей говорят, «код», на самом деле они подразумевают «шифр». Древние письмена и языки были разгаданы с использованием декодирования и техники расшифровки. Наиболее известный из таких случаев - это древнеегипетский артефакт «Розеттский Камень». На самом деле, коды и шифры определяли политическую и военную историю человечества. На сегодня в мире насчитывается тысячи способов сокрытия сообщений, но в этом обзоре мы рассмотрим только десять из них. Некоторые вы сможете и сами протестировать.
Стеганография
Стеганография является более древней, чем коды и шифры, и обычно её называют тайнописью, искусством скрытой записи. Например, сообщение может быть написано на бумаге, покрытой воском, и гонец должен проглотить его и таким образом обеспечить скрытность, а в нужный момент, отрыгнуть, чтобы его можно было прочитать. Другим способом является татуировка сообщения на гладко выбритой голове посланника, затем надо подождать, когда волосы опять вырастут, чтобы скрыть сообщение. Лучший способ тайнописи - это использование обычных предметов для сокрытия сообщения. В Англии был популярен метод тайнописи, для которого использовали обычную газету с крошечными точками под буквами на первой странице, которые указывали, какие буквы следует читать, чтобы получить сообщение. Некоторые люди могли составить сообщение, используя первые буквы каждого слова в каком-либо тексте или используя невидимые чернила. Конкурирующие страны могут так уменьшить текст, что целая страница текста становится размером с пиксель, который будет незаметен для постороннего глаза. Стеганографию лучше всего использовать в сочетании с кодом или шифром, так как существует риск, что тайное послание может быть обнаружено.
ROT1
Этот шифр знаком многим детям. Ключ к шифру очень прост: каждая буква алфавита заменяется на последующую букву, поэтому А заменяется на Б, Б заменяется на В, и так далее. ROT1 буквально означает «вращать на 1 букву вперед по алфавиту». Фраза, «Я все знаю» превратиться в секретную фразу «А гтё кобя», в общем, ничего сложного. Этот шифр предназначен для развлечения, потому что его, легко понять и использовать, и столь же легко расшифровать, даже если ключ используется в обратном направлении. Данный алгоритм не подходит для серьезного использования, но может быть отличным развлечением для детей. Попробуйте расшифровать сообщение «Йнмудсъ б йнпнайд»( Вращение по алфавиту на одну букву назад.(обратное направление) - «Конфеты в коробке»).
Перестановка
В перестановочном шифре, буквы переставляются с использованием некоторых заданных правил или ключей. Например, слова могут быть записаны в обратном направлении, так что фраза «рад видеть вас» превращается во фразу «дар ьтедив сав». Другой перестановочный ключ заключается в перестановке каждой пары букв, так что предыдущее сообщение становится «ар вд ди те вь са». Такие шифры использовались для того, чтобы отправлять конфиденциальные сообщения во время Первой мировой войны и Гражданской войны в США. На первый взгляд, кажется, что сложные правила перестановки могут сделать эти шифры очень трудными. Однако, многие зашифрованные сообщения могут быть расшифрованы с использованием анаграмм или современных компьютерных алгоритмов, которые перебирают тысячи возможных ключей перестановки. Чтобы проверить себя, попробуйте расшифровать: THGINYMROTSDNAKRADASAWTI.
Код Морзе (Азбука Морзе)
Несмотря на свое название, код Морзе не является кодом - это шифр. Каждая буква алфавита, цифры от 0 до 9 и некоторые символы пунктуации, заменены на последовательность коротких и длинных звуковых сигналов, которые часто называют «точка и тире». А становится «• - », Б становится « - • • •» и так далее. В отличие от большинства других шифров, код Морзе не используется для сокрытия сообщений. Код Морзе начал широко применяться с изобретением телеграфа Сэмюэлем Морзе. Это было первое широко-используемое электрическое приспособление для передачи сообщений на дальние расстояния. Для этого требовалось прокладывать линии проводов между населенными пунктами. Для обеспечения работы был необходим электрический ток. Электрический ток мог быть принят приёмником за много километров, а точки и тире моделировались путем включения и выключения тока. Телеграф произвел революцию в средствах массовой информации, и позволял немедленно передавать сообщения о событиях, произошедшие в одной стране, по всему миру. Код Морзе изменил характер войны, позволяя обеспечивать мгновенную связь с войсками на большом расстоянии. Попробуйте прочитать это сообщение « -- --- ·-· --·· ·-·- -· -·- ·-».
Шифр Цезаря
Шифр Цезаря (сдвижной), называется так потому, что он использовался Юлием Цезарем. Шифр состоит на самом деле из 33 различных шифров (количество шифров меняется в зависимости от алфавита используемого языка), по одной на каждую букву алфавита. ROT1 является лишь одним из этих шифров. Человек должен был знать, какой шифр Цезаря использовать для того, чтобы расшифровать сообщение. Если используется шифр Ё, то А становится Ё, Б становится Ж, В становится З, и так далее по алфавиту. Если используется шифр Ю, то А становится Ю, Б становится Я, В становится А, и так далее. Данный алгоритм является основой для многих более сложных шифров, но сам по себе не обеспечивает надежную защиту тайны сообщений, поскольку проверка 33-х различных ключей шифра займет относительно небольшое время. Попробуйте расшифровать слово «Сткджф» (зашифрованное слово «Привет»).
Моноалфавитная замена
ROT1, шифр Цезаря и азбука Морзе относятся к одному и тому же типу - моноалфавитной замене, а это означает, что каждая буква алфавита заменяется в соответствии с ключом, другой буквой или символом. На самом деле их легко расшифровать, даже не зная ключа. Наиболее употребительной буквой в английском языке является буква Е. Таким образом, во многих моноалфавитных шифрах, наиболее употребительной буквой или символом также будет E (прим. переводчика. - в русском языке наиболее употребительная - это буква О). Вторая наиболее употребительная буква в английском языке - это T, и третьей является буква А, и поэтому эти две буквы также могут быть определены для дешифрования. С этой точки зрения, человек может расшифровать сообщение с использованием частотности английских букв, или он может искать почти полные слова, такие как T_E, которое наиболее вероятным образом является THE. К сожалению, это работает только для длинных сообщений, и не применимо к коротким сообщениям, так как они не имеют достаточного количества букв, чтобы показать, какие буквы являются наиболее употребительными. Мария, королева Шотландии, была кроме всего прочего известна использованием моноалфавитного шифра в нескольких вариантах, что было невероятно сложно, однако, когда он был окончательно взломан, рассекреченные сообщения позволили её врагам получить доказательства, достаточные чтобы приговорить её к смерти.
Шифр Виженера
Данный алгоритм является более сложным, чем моноалфавитныя замена. Его ключевыми словами являются, такие слова, как например CHAIR. Шифр Виженера похож на шифр Цезаря, за исключением изменения каждой буквы, в соответствии с ключевым словом. Первая буква сообщения с ключевым словом CHAIR будет закодирована с алфавитным шифром С, вторая буква с алфавитным шифром Н, и так продолжается до последней буквы ключевого слова. Ключевое слово состоит всего из пяти букв, так что для шестой буквы сообщения снова будет использоваться алфавитный шифр С. Длительное времени считалось, что шифр Виженера взломать невозможно. Чтобы его расшифровать, прежде всего, надо найти длину ключевого слова. Если ключевое слово состоит из пяти букв, то буквы с номерами 1, 6, 11, 16, 21, и т.д. будут соответствовать первой букве ключевого слова, и анализ частотности букв позволит расшифровать сообщение. Декодировщик затем переходит на буквы 2, 7, 12, 17, и так далее. Если ключевое слово, действительно состоит из пяти букв, то расшифровать сообщение будет не сложно. Если нет, то надо найти другое ключевое слово, и снова повторить процесс. Для развлечения попробуйте расшифровать следующую фразу Ka ia vczy. Только для тех, кто знает английский язык подсказка в тексте (В примере зашифрована фраза It is easy - ключевое слово CHAIR).
Подлинный код
В подлинном коде каждое слово заменено кодовым словом или номером в соответствии с ключом. Поскольку в сообщении может быть много слов, ключ, как правило, находится в книге кодов. Декодировщик может посмотреть английское слово и найти соответствующее кодовое слово, это немного отличается от работы со словарем. Поскольку короткие сообщения трудно расшифровать с помощью анализа частотности букв, код должен быть чрезвычайно длинным, в противном случае анализ частоты употребления слова становится полезным в декодировании. По этой причине коды труднее расшифровать, чем шифры. Многие страны используют такие варианты кода, в которых каждый день используется новый код, чтобы предотвратить декодирование с помощью частотного анализа слов. Для повседневной жизни, однако, использование кодов довольно утомительный процесс и книги кодов довольно громоздкие. Если книга кодов украдена, то код уже небезопасный, и необходимо составить новый код, а это требует огромного количество времени и усилий. Коды в основном полезны для богатых и влиятельных, которые могут делегировать эту работу другим.
Код Энигма
Код Энигма, который был очень сложным шифром, использовался немцами во время Второй Мировой войны. Для этого использовали машину Энигма, которая очень похожа на пишущую машинку, при нажатии на определенную букву на экране загоралась буква шифра. Машина имела несколько колес, которые были связаны с буквами проводами, для определения, какая буква шифра будет высвечиваться. Все машины Энигма были идентичны, и начальная конфигурация колес была ключом к шифрованию сообщений. Чтобы усложнить процесс, колесо должно было вращаться после того, как определённое количество букв было напечатано. Немецкое командование каждый день выдавало списки начальной конфигурации колес для использования в шифровании, так что все немецкие командиры использовали одну и ту же конфигурацию, и могли расшифровать сообщения друг друга. Даже когда союзники заполучили копию машины, они все равно не могли расшифровать сообщения, поскольку машина выдавала сотню триллионов возможных начальных конфигураций колес. Код Энигма был взломан польскими умельцами и окончательно расшифрован англичанами, которые использовали смекалку и компьютеры. Знание немецких коммуникационных систем дало союзникам значительное преимущество в ходе войны, а процесс взлома кода Энигма позволил создать первый прообраз компьютера.
Криптография с открытыми ключами
Это самый современный шифр, и он имеет несколько вариантов. Это шифр, который используется во всем мире, и имеет два ключа: один открытый и один личный. Открытый ключ - это большое число доступное всем. Ключ является таким сложным, потому что при делении можно получить только два целых числа (кроме 1 и самого числа). Эти два числа и есть личный ключ, и если их перемножить, получится открытый ключ. Например, открытый ключ может быть 1961, следовательно, личный ключ - это 37 и 53. Открытый ключ используется для шифрования сообщения, и сообщение невозможно расшифровать без личного ключа. При отправке личных данных в банк, или когда ваша банковская карта обрабатывается машиной, данные зашифрованы именно таким образом, и только банк со своим личным ключом может получить к ним доступ. Причина, почему этот способ является настолько безопасным, заключается в том, что математически очень трудно найти делители больших чисел. Для улучшения безопасности, до 2007 года, компания RSA Laboratories выплачивала деньги любому, кто сможет найти два делителя для чисел, которые она предлагала. Вот сравнительно легкий пример, который стоил 1000 долларов, вам предлагается найти два 50-значных делителя для числа 152260502792253336053561837813263742971806811496138068865790849458012296325895289765400350692006139 (перенесено).