Узнать что за шифр

Узнать что за шифр

Шифр Виженера — метод полиалфавитного шифрования буквенного текста с использованием ключевого слова.

В шифре Цезаря каждая буква алфавита сдвигается на несколько позиций; например в шифре Цезаря при сдвиге +3, A стало бы D, B стало бы E и так далее.
Шифр Виженера состоит из последовательности нескольких шифров Цезаря с различными значениями сдвига. Для зашифровывания может использоваться таблица алфавитов, называемая tabula recta или квадрат (таблица) Виженера. Применительно к латинскому алфавиту таблица Виженера составляется из строк по 26 символов, причём каждая следующая строка сдвигается на несколько позиций. Таким образом, в таблице получается 26 различных шифров Цезаря. На каждом этапе шифрования используются различные алфавиты, выбираемые в зависимости от символа ключевого слова. Например, предположим, что исходный текст имеет такой вид:

Человек, посылающий сообщение, записывает ключевое слово («LEMON») циклически до тех пор, пока его длина не будет соответствовать длине исходного текста:

Первый символ исходного текста («A») зашифрован последовательностью L, которая является первым символом ключа. Первый символ зашифрованного текста («L») находится на пересечении строки L и столбца A в таблице Виженера. Точно так же для второго символа исходного текста используется второй символ ключа; то есть второй символ зашифрованного текста («X») получается на пересечении строки E и столбца T. Остальная часть исходного текста шифруется подобным способом.

Расшифровывание производится следующим образом: находим в таблице Виженера строку, соответствующую первому символу ключевого слова; в данной строке находим первый символ зашифрованного текста. Столбец, в котором находится данный символ, соответствует первому символу исходного текста. Следующие символы зашифрованного текста расшифровываются подобным образом.

Источник

Шифр Виженера

Калькулятор шифрует входной текст на русском языке шифром Виженера. Неалфавитные символы (пробелы, знаки препинания, цифры) — не преобразуются.

Так как Шифр Цезаря у нас уже есть, было бы логично дополнить его калькулятором, который шифрует/расшифровывает текст используя шифр Виженера.

Суть алгоритма шифрования проста. Шифр Виженера — это последовательность шифров Цезаря с различными значениями сдвига (ROTX — см. Шифр Цезаря). То есть к первой букве текста применяется преобразование, например, ROT5, ко второй, например, ROT17, и так далее. Последовательность применяемых преобразований определяется ключевой фразой, в которой каждая буква слова обозначает требуемый сдвиг, например, фраза ГДЕ ОН задает такую последовательность шифров Цезаря: ROT3-ROT4-ROT5-ROT15-ROT14, которая повторяется, пока не будет зашифрован весь текст сообщения.

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

Еще там можно прочитать про вариант шифра с бегущим ключом (running key), который был когда-то был невзламываемым. Этот вариант заключается в использовании в качестве ключа блока текста, равного по длине исходному тексту. Впрочем, и этот вариант, как оказалось, успешно поддается взлому. Проблема с бегущим ключом шифра Виженера состоит в том, что криптоаналитик имеет статистическую информацию о ключе (учитывая, что блок текста написан на известном языке) и эта информация будет отражаться в шифрованном тексте. Если ключ действительно случайный, его длина равна длине сообщения и он использовался единожды, то шифр Виженера теоретически будет невзламываемым, но такие системы уже относятся к классу систем одноразового кода, или одноразового шифр-блокнота (one-time pad). Они действительно не поддаются взлому, однако их практическое применение довольно затруднительно.

Источник

Взламываем шифры: криптография за 60 минут

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

Узнать что за шифр

Урок №1 Криптография: шифр Цезаря

Это, если хотите, школьная программа криптографии, первый класс. Шифр Цезаря научились вскрывать еще в IX веке, поэтому сегодня он почти бесполезен, но как база – урок просто отличный. Начинается терминологией и подробным объяснением того, что из себя представляет и как работает ключ. Далее затрагивается шифр Цезаря, принципы его работы, а также способ быстрой дешифровки.

Урок №2 Шифр простой замены

Этот урок тоже начинается короткой терминологией и объяснением разницы между закрытым текстом и шифром. Автор всегда ссылается на достоверные источники. Курс плавно перетекает в возможность шифровать цифрами и подробным описанием того, как это делается.

Если вы посмотрели оба урока, считайте, что основы криптографии вы уже поняли.

Урок №3 Атака по маске

А вот здесь начинается интересное. Автор не зацикливается только на шифровании, но и объясняет тонкости атак на подобные тексты. Он приводит много примеров, что хорошо сказывается на понимании. Затрагиваются преимущество перевода шифротекста в числа и умение анализировать полученную «картинку». Это полезно, если вы планируете разрабатывать приложения, рассчитанные на вскрытие шифротекста, ведь чтобы передать логическое решение будущей программе, сперва нужно самостоятельно к этому решению прийти.

Примеры уроков хорошо визуализированы, демонстрируется поэтапное выполнение, поэтому проблем с пониманием быть не должно.

Урок №4 Частотный анализ

Еще один способ анализа с применением диаграммы частоты по алфавиту. Перечисляются слабые и сильные стороны частотного анализа, рассказывается, в каких случаях он будет по-настоящему мощным инструментом, а в каких – бесполезным. Снова приводятся визуализированные примеры с применением метода, так что под конец урока вы обязательно поймете принцип работы частотного анализа.

Урок №5 Полиалфавитные шифры. Шифр Гронсфельда

Урок №6 Шифр Виженера

Здесь расписывается самый популярный полиалфавитные шифр – шифр Виженера. Разобравшись с ним, можете считать, что криптография вам далась, и можно смело переходить к реализации знаний в своих приложениях.

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

Урок №7 Криптоанализ Виженера. Метод индекса совпадений

Даже шифр Виженера не так «зубаст», как может показаться. Существует метод индекса совпадений, который работает не с самим зашифрованным словом, а именно с ключом, и от этого уже плавно двигается в сторону разгадки. Здесь уже применяются сложные формулы и вычисления, поэтому рекомендуем внимательно следить за решением задачи.

Урок №8 Криптоанализ Виженера часть 2. Автокорреляционный метод

Автокорреляционный метод более простой, но точно так же напичканный формулами, в которые придется вникнуть. В этом уроке объясняется лишь альтернативный поиск длины ключа, а все остальное, что касается вскрытия, – как и в предыдущем уроке.

Источник

Уроки криптографии. Основные шифры. часть 1

Архаичные шифраторы канули в Лету, чего нельзя сказать об алгоритмах шифрования. Операции сдвига, замены и перестановки до сих пор применяются в современных алгоритмах, однако с существенной поправкой в стойкости. За многие столетия, прошедшие со времен первого применения этих шифров, криптографы научились оценивать количество информации, энтропию и стойкость, однако так было не всегда. Рассмотрим подробнее, как работают самые популярные шифры в истории криптографии и в чем их недостатки.

Узнать что за шифр

В современном обществе, где почти каждый человек имеет электронный девайс (а то и не один), где каждую минуту совершаются операции с электронной валютой, пересылаются конфиденциальные email, подписываются электронные документы, криптография нужна как воздух. Нужна пользователям, чтобы защитить свою приватность. Нужна программистам, чтобы обеспечить безопасность проектируемых систем. Нужна хакерам, чтобы при аудите понимать уязвимые места в системах. Нужна админам, чтобы представлять, чем и как лучше защищать корпоративные данные. Мы не могли обойти стороной такую важную тему и начинаем цикл статей, посвященный введению в криптoграфию. Для новичков — самый простой путь познакомиться с криптой, для профи — хороший повод систематизировать свои знания. Шесть уроков, от самого простого к сложному. Вперед!

Термины

Для начала давай определимся с терминологией:

В мире криптографии путаться в этих словах — ужасный моветон.

Зачем мне знания о криптографии?

Предположим, криптография очень нужна, но пусть ей займутся дядьки с усами математики. Зачем же мне знания по криптографии?

Если ты обычный пользователь — то как минимум, чтобы обеспечить свою приватность. Сегодня крупным государствам и влиятельным организациям становятся доступны средства тотального надзора за миллионами людей. Поэтому криптография оказывается важнейшим инструментом, обеспечивающим конфиденциальность, доверие, целостность, авторизацию сообщений и электронных платежей. Повсеместное распространение криптографии останется одним из немногих способов защитить пользователя от угроз, нависающих над его конфиденциальной информацией. Зная, как работает тот или иной протокол или шифр, чем он хорош и где его слабые места, ты сможешь оcознанно выбирать инструменты для работы или просто общения в Сети.

Если ты программист или специалист по ИБ, то здесь вообще от криптографии никуда не скрыться. Любой крупный проект требует обеспечения безопасности информации. Неважно, что ты разрабатываешь: контентный сервис, почтовик, мессенджер, соцсеть или просто интернет-магазин, — везде есть критичные данные, которые надо защищать от перехвата или угона БД. Каждая операция должна быть защищена криптографическими протоколами. В этом случае криптография — подходящий инструмент. Если ты еще с ней не столкнулся, будь уверен — это на 100% лишь вопрос времени.

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

Зачем изучать старые шифры?

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

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

Зачем же нам знакомиться с такими древними и нестойкими шифрами, если можно сразу прочитать про DES и RSA — и вуаля, почти специалист? Изучение первых шифров поможет лучше понять, зачем нужна та или иная операция в современном алгоритме шифрования. Например, шифр перестановки, один из первых примитивных алгоритмов, не был забыт, и перестановка — одна из часто встречающихся операций в современном шифровании. Таким образом, чтобы лучше осознать, откуда на самом деле растут ноги у современных алгоритмов, нужно оглянуться на несколько тысяч лет назад.

Исторические шифры и первые шифраторы

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

Первым шифром, зародившимся в древних цивилизациях и актуальным, в некотором роде, и по сей день, можно считать шифр замены. Чуть позже был придуман шифр сдвига, который применялся Юлием Цезарем, почему и был назван в его честь.

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

Также ярким примером из мира древних шифраторов может стать диск Энея — диск с отверстиями по количеству букв в алфавите. Нитка протягивалась последовательно в те отверстия, которые соответствовали буквам сообщения. Получатель вытаскивал нитку, записывал последовательность букв и читал секретное послание. Однако этот шифратор обладал существенным недостатком — достать нитку и разгадать послание мог кто угодно.

Шифр сдвига

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

abcdefghijklmnopqrstuvwxyz
defghijklmnopqrstuvwxyzabc

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

Пример шифра

Исходный текст: Hi, Brut! How are you?
Шифрованный текст: Kl, Euxw! Krz duh brx?

Расшифрование

Криптоанализ

Легче всего такой шифр взломать простым перебором всех возможных значений ключа — их всего 25. Здесь все просто, и останавливаться смысла нет.

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

e 0,12702s 0,06327u 0,02758p 0,01929q 0,00095
t 0,09056h 0,06094m 0,02406b 0,01492z 0,00074
a 0,08167r 0,05987w 0,02360v 0,00978
o 0,07507d 0,04253f 0,02228k 0,00772
i 0,06966l 0,04025g 0,02015j 0,00153
n 0,06749c 0,02782y 0,01974x 0,00150

Что касается двухбуквенных сочетаний (биграмм), то можно заметить следующую тенденцию:

БиграммаПроцентное содержаниеБиграммаПроцентное содержание
th3,15he2,51
an1,72in1,69
er1,54re1,48
es1,45on1,45
ea1,31ti1,28
at1,24st1,21
en1,20nd1,18

Идея в том, что в зашифрованном тексте самой часто встречаемой буквой будет не эталонная e, а что-то другое. Соответственно, нам нужно найти самую часто встречаемую букву в нашем шифре. Это и будет зашифрованная е. А дальше нужно подсчитать ее сдвиг от е в таблице подстановок. Полученное значение и есть наш ключ!

Шифр замены

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

abcdefghijklmnopqrstuvwxyz
bexgwiqvloumpjrstnkhfyzadc

Пример шифра

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

Исходный текст: Hi, Brut! How are you?
Шифрованный текст: Vl, Enfh!Vrz bnw drf?

Расшифрование

Криптоанализ

Криптоанализ этого шифра также выполняется методом частотного анализа текста. Рассмотрим пример:

Частотный анализ букв этого шифра показывает следующее (читай построчно, буквы сортированы по частоте использования):

Вероятно, что W => e, так как это самая часто встречающаяся буква в шифре (смотри таблицу среднестатистических частот использования букв для английского языка в предыдущем шифре).

Дальше пробуем найти наиболее короткое слово, куда входит уже известная нам буква W => e. Видим, что сочетание HVW чаще всего встречается в шифре. Нетрудно догадаться, что, скорее всего, это триграмма the, то есть в тексте мы уже определили три символа. Если посмотреть на промежуточный результат, сомнений не остается:

Отлично, уже известны три буквы. Снова ищем наиболее короткие слова с новыми известными нам подстановками. Сочетание it является частоупотребляемым, и, поскольку буква t уже дешифрована (HVW => the), очевидно, что в нашем тексте L => i (LH => it). После этого обращаемся к поиску биграмм is и to, устанавливаем, что K => s, R => o. Затем обращаем внимание на триграммы

ing и and. Анализ текста показывает, что BJG, скорее всего, шифротекст от and. После замены всех наиболее часто встречающихся символов получаем текст:

Далее действуя аналогично или просто подбирая буквы по смыслу, находим исходный текст:

Как видишь, в этом криптоанализе нашим главным инструментом был статистический анализ частот. Идем дальше!

Шифр Рихарда Зорге

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

Давай разберем довольно известный шифр Рихарда Зорге — советского разведчика, который был направлен в Японию. Этот шифр продуман до мелочей. Шифрование ведется на английском языке. Первоначально нужно составить следующую таблицу:

SUBWAY
CDEFGH
IJKLMN
OPQRTV
XYZ./
0) SUBW5) AY
CD3) EFGH
1) IJKLM7) N
2) OPQ4) R6) TV
XYZ./

Саму таблицу мы строим по горизонтали, записывая буквы рядами, а нумеруем по вертикали, столбцами. Так улучшаются перемешивающие свойства.

Далее таблица преобразуется к следующему виду: сначала в строку по столбцам записываются наиболее часто встречаемые буквы в порядке нумерации (S, I, E, …). А затем записываются и все остальные буквы, также по столбцам в строки (С, X, U, D, J, …). Такая таблица обеспечит хорошие перемешивающие свойства и в то же время не «испортит» частотный анализ шифротекста:

0123456789
SIOERATN
8CXUDJPZBKQ
9.WFL/GMYHV

Таблица готова. Теперь можно зашифровать сообщение.

Пример шифра

Возьмем исходный текст:

Расставим слеши для разделения слов:

Разобьем текст на блоки по четыре символа (просто для удобства представления):

Теперь текст нужно зашифровать по нашей таблице. Алгоритм такой:

В итоге у нас получится такой шифротекст:

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

После перегруппировки у нас получится вот такой шифротекст:

Откуда брать гамму и как незаметно передать ее в штаб? Зорге выбирал гамму из «Немецкого статистического ежегодника». Такое издание не должно было вызвать удивление у японцев, так как Зорге приехал в страну под видом немецкого журналиста. Зорге указывал страницу и столбец, откуда начиналась последовательность, которая была наложена на шифротекст в этом послании. Например, 201-я страница и 43-й столбец. Эти данные он записывал добавочным числом 20143 перед шифротекстом, который, в свою очередь, уже шифровался гаммой.

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

Узнать что за шифр

Наш исходник для выбора гаммы. Ориджинал!

Предположим, мы выбрали 199-ю страницу и четвертую строку, четвертый столбец. Отсюда и начинается нужная гамма:

В этом случае, чтобы наложить гамму, нужно сделать:

В итоге полученный шифротекст будет:

Расшифрование

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

Полученный шифротекст анализировали согласно таблице. Благодаря конструкции таблицы каждое число имеет строго одно значение в буквах:

Получили исходный текст:

Криптоанализ

Шифр Зорге так и не был взломан вражескими криптоаналитиками. Множество раз японские спецслужбы перехватывали шифротекст, но он так и останется в виде колонок пятизначных чисел, которые подшивались в дела непойманных шпионов.

Шифр Вернама

Во время Первой мировой войны криптологами активно использовался одноразовый шифр-блокнот, или шифр Вернама. Доказано, что он теоретически абсолютно стойкий, однако ключ key должен быть той же длины, что и передаваемое сообщение. Абсолютная стойкость — это свойство, при котором зашифрованное сообщение не поддается криптоанализу, так как не дает злоумышленнику никакой информации об открытом тексте.

Cуть шифра Вернама крайне проста. Для этого нужно вспомнить операцию «исключающее или» или сложение по модулю 2. Итак, для сообщения plaintext шифротекст будет равен:

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

Во времена Первой мировой войны двоичные коды для символов задавались в Международном телеграфном алфавите № 2 (International Telegraph Alphabet No. 2, ITA2).

На самом деле, несмотря на свою криптостойкость, этот шифр имеет больше минусов, нежели плюсов:

Пример шифра

Исходный текст: HELLO
Ключ: AXHJB

Складываем побитово по модулю 2 и ищем, какой букве соответствует полученный код в телеграфном алфавите:

H⊕A = 10100⊕00011 = 10111 => Q
E⊕X = 00001⊕11101 = 11100 => M
L⊕H = 10010⊕10100 = 00110 => I
L⊕J = 10010⊕01011 = 11001 => B
O⊕B = 11000⊕11001 = 00001 => E

Шифрованный текст: QMIBE

Расшифрование

Расшифрование с помощью ключа выполняется аналогично шифровке:

Криптоанализ

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

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

Рассмотрим атаку, которая осуществима, если мы дважды при шифровании используем один и тот же ключ. Она называется атака вставки.

Предположим, нам удалось перехватить зашифрованное сообщение QMIVE. Мы пытаемся взломать шифр и убедили отправителя зашифровать свое сообщение еще раз, но при этом поставить первым символом 1 (конечно, отправитель должен быть безмерным простофилей, чтобы выполнить такое условие, но, предположим, мы умеем убеждать).

Тогда мы получаем шифротекст VDYBJY.

Нам известно, что первый символ 1. Я вычисляю первый символ секретного ключа key:

V⊕1 = 11110⊕11101 = 00011 => A

Далее. Нам известно, что первый шифротекст зашифрован этим же ключом. Тогда мы можем вычислить первый символ открытого текста:

Q⊕A = 10111⊕00011 = 10100 => H

Дальше нам нужно найти второй символ ключа. Для этого мы берем второй шифротекст, и, так как нам известен второй символ открытого текста, вычисляем второй символ ключа:

H⊕D = 10100⊕01001 = 11101 => X

Применяем его к первому тексту и получаем:

M⊕X = 11100⊕11101 = 00001 => E

Такая последовательность операций повторяется, пока не станут известны все символы открытого текста.

Шифровальные машины

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

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

Пример работы

Пусть начальное положение диска задает подстановку:

abcdefghijklmnopqrstuvwxyz
bexgwiqvloumpjrstnkhfyzadc

После того как первая буква исходного текста заменена, ротор поворачивается и подстановка сдвигается на один символ:

abcdefghijklmnopqrstuvwxyz
exgwiqvloumpjrstnkhfyzadcb

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

Энигма

Первой роторной машиной шифрования была «Энигма», состоявшая на вооружении Германии во время Второй мировой войны. Она имела три ротора, связанных между собой. При повороте первого ротора соединенное с ним кольцо попадает в паз второго диска и толкает его. Аналогично итерации третьего ротора контролируются вторым ротором. В итоге при каждом нажатии на клавишу машины одна и та же буква кодируется совершенно разными значениями.

При шифровании необходимо было учитывать начальное положение роторов, их порядок и положения колец. Для двойной замены букв используется штекерная панель. Рефлектор осуществляет завершающую подстановку для контроля соответствия между операциями зашифрования и расшифрования. Взгляни на конструкцию «Энигмы»:

Узнать что за шифр

Устройство шифровальной машины «Энигма»

На рисунке жирной линией выделено, как буква A вводится с клавиатуры, кодируется штекером, проходит через три ротора, заменяется на рефлекторе и выходит зашифрованной буквой D.

«Энигма» долгое время считалась неуязвимой. Немцы ежедневно меняли положение штекеров, диски и их компоновку и положение. Во время военных действий они ежедневно кодировали короткую последовательность букв, которая шифровалась дважды и передавалась в самом начале сообщения. Адресат дешифровал ключ и устанавливал настройки машины согласно этому ключу. Именно это многократное использование одного и того же ключа позволило аналитикам из Блетчли-Парка (главного шифровального подразделения Великобритании) взломать немецкий шифр.

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

Узнать что за шифр

Шифровальная машина «Энигма»

Сигаба

Спустя десять лет американскими военными была разработана роторная шифровальная машина «Сигаба», которая значительно превзошла по характеристикам свою прародительницу. «Сигаба» имеет три блока по пять роторов и печатающий механизм. Шифрование на этой машине использовалось американскими военными и военно-морским флотом вплоть до 1950-х годов, пока ее не сменила более новая модификация KL-7. Как известно, эта роторная машина так и не была взломана.

Узнать что за шифр

Шифровальная машина «Сигаба»

Purple

Говоря о знаменитых криптографических механизмах, нельзя не упомянуть о японской шифровальной машине Purplе, как ее назвали американцы. Шифрование в Purple также основывалось на движении четырех роторов, а секретный ключ задавался один раз в день. Текст вводился с клавиатуры, при помощи роторов заменялся на шифрованный и выводился напечатанным на бумаге. При расшифровании процесс последовательного прохождения через роторы повторялся в обратном порядке. Такая система является совершенно стойкой. Однако на практике ошибки при выборе ключей привели к тому, что Purple повторила судьбу немецкой «Энигмы». Она была взломана американским отделом криптоаналитиков.

Узнать что за шифр

Шифровальная машина Purple

Выводы

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

ссылки:

Это первый урок из цикла «Погружение в крипту». Все уроки цикла в хронологическом порядке:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *