Вроде не относится сей вопрос к навигации, но к играм относится однозначно. Особенно к навигационным 
Да и «Беседку» не хочется забивать. Кроме того, в ней уже два описания процесса кодирования (моё и от Эрих_Хартман) и оба они, на мой взгляд, содержат слишком большие допущения.
Решил набросать основы процедуры кодирования и декодирования при помощи «Энигмы» и сохранить где-нибудь отдельно.
Есть хороший сайт Enigma World Code Group
На нем выложен сам симулятор «Энигмы», генератор кодовых таблиц, обучающие материалы, ссылки и пр.
Собственно по нему и выполнено все то, что будет описано ниже.
Сначала рассматривается вариант трёх-барабанной «Энигмы» для Люфтваффе(ВВС) и Вермахта(сухопутные войска) в упрощённом виде (радиограмма из одного слова и без оформления заголовка). То есть чистое шифрование/дешифрование.
Далее описана процедура применявшаяся в Кригсмарине(ВМС) для «Энигмы» с четырьмя барабанами. Здесь уже составляется полноценная радиограмма. Также показано шифрование/дешифрование.
«Энигма» в Люфтваффе и Вермахте (продолжение в «Энигма» в Кригсмарине )
Кодовые таблицы для Энигмы составлялись обычно по месяцам, где на определённый день отводилась одна строка.
По данным этой строки, каждый шифровальщик настраивал свою «Энигму» на соответствующий день месяца.
Предположим, 25 мая 2014 года нам (в пункте А) приказали зашифровать и передать слово «HELLO«.
Ну а в пункте Б придётся принять и дешифровать.
Кодовую таблицу создадим при помощи программы с вышеупомянутого сайта.
Имя файла и дата роли не играют, так как программа вырабатывает коды независимо, при каждом запуске новые.![]()
Это нужная нам для 25 мая строчка
Сначала установим барабаны. В жизни одевали на ось, а затем устанавливали в Энигму.
В симуляторе нет разницы, поэтому начнём как в таблице — слева направо.
Первым идёт барабан «V«. Перед установкой не забываем провернуть на нём алфавитное кольцо.
Согласно таблице, сегодня нам нужно положение «H-08«
Следующий барабан (II).
И последний, третий (I).
Теперь дошла очередь до коммутационной панели.
Соответствующие переключения обведены в таблице белым.
В принципе, машина на день запрограммирована.
Проверяем на всякий случай соответствие таблицам.
Пора приступать к шифрованию слова «HELLO».
Для шифрования придумаем две случайных триады.
Например «ETS» и «HLE«
Выставим на барабанах первую триаду:
Вторую триаду наберём на клавиатуре и получим в результате третью триаду «MMC«
Запомним её, она будет использована в заголовке радиограммы.
Вторая, придуманная нами триада «HLE» является ключом ко всему сообщению.
Набираем её на барабанах
и кодируем сообщение, то бишь просто набираем на клавиатуре «HELLO» и получаем «TFXYL«
У нас результат отображается на «принтере», в реале же оператор нажимал на клавиши, а помощник записывал загорающиеся при этом буквы.
Осталось сформировать заголовок радиограммы.
В настоящей он конечно был полнее (указывалась дата, количество частей РД, номер самой части, количество букв и пр.), но мы пока изучаем принцип шифрования и использовать будем лишь те данные, которые потребуются для дешифровки.
А для этого нужны лишь первая, придуманная нами, триада «ETS» и триада «MMC«, выданная машиной. С их помощью мы скрываем от противника ключ к сообщению («HLE«)
Ещё в текст сообщения ставится группа, которую не дешифруют. Первые две буквы в ней случайне, а остальные берутся из таблицы. Эта группа предназначена для контроля числа месяца на случай возможных ошибок.
Берём, например, случайные буквы «JK«, а из таблицы, по числу месяца, выбираем триаду «PDR«.
Получаем группу «JKPDR«
За ней следуют группы закодированного текста. У нас она всего одна «TFXYL«
И так, текст «HELLO» зашифрован в вид «ETS MMC JKPDR TFXYL«
В таком виде её и отправляем.
…
А теперь представим себя «в пункте Б».
25 мая получена радиограмма (РД) следующего содержания:
«ETS MMC JKPDR TFXYL«
Программируем машину на 25-е (точно так же как делали это выше и точно по той же таблице)
и набираем на барабанах триаду «ETS«, прямо из заголовка РД
Затем набираем на клавиатуре вторую триаду заголовка «MMC«
и на выходе получаем ключ к сообщению: «HLE«
Выставляем полученный ключ на барабанах
и набираем на клавиатуре текст РД (первую группу не используем!).
На выходе искомое слово «HELLO«
Это простейший пример, лишь для понимания порядка шифрования и дешифрования.
Всё остальное можно прочесть на сайте Enigma World Code Group, да и в описании к самому симулятору достаточно необходимой информации.
Ну и, как говорилось, пример только для сухопутных войск и лётчиков, у моряков «игрушки» подороже, поэтому и коды сложнее.
Это всё в описании есть. Щелкать можно любой клавишей.
Ну всё, можно теперь шифровками обмениваться
«Энигма» в Кригсмарине
Было это, а может и не было
Впрочем, по частям, в разное время и в разных местах, конечно, было.
Поэтому сами понимаете, даты, типы кораблей, самолётов, шифровальных машин могут и не совпадать по времени, а имён и названий вовсе называть не буду.
Приступим.
В один из моментов Второй мировой войны, германский «карманный линкор» шёл экономичным ходом в 16 узлов на юго-запад из северной Атлантики. «Карманными», корабли этого типа стали из-за ограничений Версальского договора. Согласно ему послевоенная Германия не могла строить линкоры превышающие по водоизмещению 10 000 «длинных» тонн (английская тонна), а калибр их орудий ограничивался 280-мм. В результате были построены корабли, которые трудно было отнести к линкорам или крейсерам, они являли собой нечто среднее. Тогда в Великобритании и появился термин «Pocket battleship» — «карманный линкор».
Дежурный шифровальщик германского рейдера скучал на вахте, изредка поглядывая на настенные часы.
Дождавшись момента, когда все три стрелки настенных часов встали вертикально, он встал со стула и потянулся. Если Вы думаете, что у него закончилась вахта, то ошибаетесь. До окончания вахты ему было ещё рано, просто в ноль часов по Гринвичу меняются шифровальные коды.
Моряк подошёл к «Энигме» и снял крышку.
Вынув четыре барабана и аккуратно протерев их контакты спиртом, тщательно уложил на свои места в специальный ящичек:
Затем он подошёл к полке и открыл книгу.
Думаю что выглядела она приблизительно вот так:
Хотя утверждать не буду. Говорят, на подводных лодках малиновая бумага типа промокательной. Чтобы книга, брошенная в воду, уже не могла быть восстановлена противником. Как с этим обстояло на надводных рейдерах — не знаю.
Тем не менее, в движениях шифровальщика проглядывалось трепетное отношение к книге.
Ну ещё бы, вся документация в этой рубке была неразрывно связана с его жизнью. Если что-то случится, он не имеет права даже умереть, не уничтожив перед этим шифровальные книги. А уничтожив книги — не имеет права попасть к противнику живым.
Несомненно, такая ответственность давала и определённые привилегии. Поэтому шифровальщик гордился своей профессией. Да и что может случится с их «карманным линкором»? — раздумывал он, снимая крышку со своей «Энигмы»
— Уже месяц разоряем в Атлантике конвои, а противник так и не сумел нас обнаружить. И во многом это заслуга его «Энигмы». Ведь даже если противник узнает про принцип шифрования машины, взломать код не получится и за несколько лет.
Раскрыв книгу на «декабре», моряк выбрал строчку 12 по только что наступившему числу декабря.
Взглянув на цифры, первым он достал барабан Beta и провернул его алфавитное кольцо в положение F-06
Установив барабан Beta к рефлектору достал следующий, это был VI.
Согласно таблице его алфавитное кольцо было поставлено в положениие D-04
Ещё два барабана и «Энигма» заполнена.
Закрыв на ключ ящичек с оставшимися барабанами, шифровальшик зафиксировал его в специальных креплениях на стене рубки.
Теперь коммутационная панель.
Сняв все перемычки от прошлых суток, моряк подвинул поближе книгу.
Через пару-тройку минут коммутация была завершена.
Осталось ввести начальный код и машина готова к работе.
Моряк повернул барабаны и улыбнулся машине.
— Проверим
— Всё верно.
Уложив книгу в металлический ящик, шифровальщик вытянулся на стуле — теперь можно спокойно дожидаться окончания вахты.
Прошло лишь несколько минут, как его заставил вздрогнуть внезапно раздавшийся звук продуваемого по трубе воздуха и приближающееся металлическое бренчание. Так же внезапно шум прекратился. Открыв лючок пневмопочты, шифровальщик достал небольшой цилиндр с незакодированной пока радиограммой.
Развернув её, шифровальщик довольно хмыкнул, — похоже,
в полдень 16-го числа встреча с судном снабжения. Это всегда приятно. Почта, свежие продукты, что-то вроде увольнительной и встречи с родной Германией.
Улыбаясь, шифровальщик перевёл радиограмму в буквенный вид («Энигма» не работает с цифрами), добавил в необходимых местах знаки раздела и разбил сообщение на четырёхзначные группы, как принято на флоте.
Мы можем посмотреть эти правила в описании к симулятору «Энигмы». Оно вызывается нажатием клавиши «F1».
Передача цифр:
Спецсимволы:
Теперь само шифрование.
Нужно придумать любую триаду, например, EJT
Затем набираем её на клавишах «Энигмы» и запоминаем зажигающиеся лампы.
Наш шифровальщик уже вызвал помощника и тот стоит с карандашом наготове, а симулятор «Энигмы» запишет результат автоматически:
Вот он — KSU. Это машина выдала ключ к радиограмме.
Набираем его на правых трёх барабанах и можно приступать к шифрованию.
Шифровальщик «карманного линкора» с помощником будут делать это внимательно и не спеша.
Наша же симерская доля — делать всё в одиночку. Но можно воспользоваться режимом «Auto Typing»
Группы радиограммы сохраняем в буфере обмена и выбираем (через пиктограмму в правом верхнем углу симулятора) режим «Auto Typing»
Появляется соответствующее окно:
В него вставляется текст и нажимается кнопка «Start».
Как видим, можно даже задавать скорость. При «Normal» клавиши нажимаются приблизительно с той скоростью, с которой делалось это в реале. Не очень быстро, ведь любая ошибка вынуждает вернуться к началу.
Один оператор нажимает клавиши, второй следит за загорающимися буквами и записывает их.
У нас же, в симуляторе, машина делает это сама. Включаем режим «Normal» и смотрим, как нажимаются клавиши и загораются лампочки
Жаль, что на скринах не фиксируется нажатие и свечение. Звук ещё неплохо реализован.
Жмём «Start»
Начала печатать…
Печать продолжается, проворачиваются барабаны.
Осталось немного.
Шифрование закончено.
Щёлкаем по белому полю «принтера» и кнопкой «To Clipboard» отправляем результат в буфер обмена,
а оттуда в Блокнот:
Сообщение закодировано с ключом KSU, набранного от начального табличного кода на 12-е декабря PCZW
Там где примут нашу радиограмму, «Энигма» будет настроена точно так же. Им требуется лишь ключ к сообщению (KSU).
Закодируем теперь ключ.
Для этого вспомним нашу взятую с потолка триграмму EJT и придумаем вторую, например YSL
Записываем их со смещением:
Затем дописываем две произвольные буквы (например R и M), одну впереди первой триграммы, следующую позади второй:
После этого выписываем пары букв из получившихся столбиков:
Теперь нам потребуется Bigram Table.
По ней определяются пары букв, соответствующие нашим:
(кликабельно)
Запишем их:
Из получившихся пар букв формируются две группы, в которых зашифрован код текста радиограммы. Эти группы ставятся перед текстом зашифрованного сообщения и дублируются в конце радиограммы:
Осталось сформировать заголовок:
Первые три буквы произвольные, затем время по Гринвичу, число месяца, номер радиограммы (наверное
) и количество групп в радиограмме.
Всё! Вставляем вместо многоточия зашифрованный текст радиограммы и передаём её в радиорубку:
В это время, за тысячу миль от «карманного линкора,» пятиузловым ходом шло судно. Снаружи оно выглядело как гражданское. В общем-то оно и было гражданским и везло гражданский груз. Почту, продукты и топливо.
Но имелся и другой груз. Торпеды и снаряды различных калибров, запрятанные подальше от посторонних глаз. Недалеко от секретного груза находилась не менее секретная рубка шифровальщика точно с «Энигмой».
Коллега нашего шифровальщика, по тем же самым книгам перенастроил в 00:00 по Гринвичу «Энигму» и дремал в ожидании окончания вахты, мерно покачиваясь вместе с танкером.
Через несколько минут после описываемых выше событий он услышал условный стук по люку его рубки.
— Радиограмма.
Вызвав помощника, первым делом шифровальщик занялся извлечением кода радиограммы.
Он, как мы помним, извлекается из двух первых (или двух последних) групп.
Разделив их на пары букв, при помощи той же самой Bigram Table он получил пары букв, выбранные его коллегой с «карманного линкора»:
Переписав горизонтально вертикальные столбцы, шифровальщик получил две группы, записанные совсем недавно за тысячу миль от него.
Из этих двух групп нужна лишь одна триграмма.
Отбросив первую букву от первой группы, мы получаем искомое: EJT
Вводим эту триграмму в «Энигму» и получаем своего рода ключ (KSU) для сообщения.
Осталось выставить этот ключ на трёх правых барабанах и набрать текст радиограммы:
На выходе расшифрованная радиограмма:
Переносим её, как обычно, через буфер обмена в блокнот.
Вставляем знаки, убираем лишние пробелы и разбиваем по словам.
Слова переводим в цифры и получаем дату и место рандеву с «карманным линкором».
Прочитав текст радиограммы, шифровальщик судна обеспечения тяжело вздохнул — встреча с рейдером очень опасна, ведь за ним охотится целый флот.
«Война», — ещё раз вздохнул моряк и отправился к капитану.
Радиоволны имеют свойство распространяться в разные стороны. Именно поэтому коротенькая радиограмма «карманного линкора» была принята радистом английского патрульного самолёта и тут же передана через командование в небольшой особняк в графстве Бакингемшир (в центре Англии).
Место это называлось Блетчли-парк (Bletchley Park).
Там в режиме особой секретности работала другая машина под именем «Bombe». Она представляла что-то вроде нескольких «Энигм», соединённых в некое подобие сети:
Для взлома шифра портативной «Энигмы» потребовался механизм гораздо больший по весу и размерам. «Bombe» представляла собой шкаф весом около тонны с передней панелью 2×3 метра и 36 групп роторов, по три в каждой.
Постоянное накопление информации, полученной при помощи радиоперехвата, агентурной деятельности, захвата шифровального оборудования и фрагментов шифровальных книг, позволяло англичанам взламывать значительную часть германского радиообмена.
Это и произошло с нашей радиограммой через пару суток. Англичане поняли, что 16 декабря в точке 44*19′ северной широты, 30*05′ западной долготы что-то произойдёт.
14 декабря, сразу после дешифровки, в район был направлен крейсер и несколько эсминцев. А 16-го утром с авиабазы на Азорских островах взлетел самолёт-разведчик.
К полудню он заметил в заданном районе два судна.
При ближайшем рассмотрении оказалось, что германский рейдер, за которым два месяца безуспешно гонялся английский флот, наконец обнаружен.
По радиограмме самолёта-разведчика в район немедленно были направлены авианосец и два линкора с сопровождением.
Что было дальше — не знаю. Да может этого всего и не было.
Но «Энигмы» были!
Уффф… Закончил! Пол-третьего ночи уже
Бегу 
Коллеги, на работе утром просмотрел «Энигма» в Кригсмарине и нашёл ошибку.
В начале радиограммы номер судна снабжения задан как T-40.
При переводе цифр в слова это должно выглядеть так: TXXVIERNULL (Т знак раздела Четыре Ноль).
Я же перевёл как TXXDREINULL (Т знак раздела Три Ноль), то есть Т-30.
К сожалению, исправить это невозможно — всё уже на скриншотах. Поэтому приношу извинения и прошу читать везде «Т-40» как «Т-30«.
Кстати, передача цифр словами была одним из недостатков шифра «Энигмы», так как в сообщениях неизбежно присутствовали повторяющиеся слова вида NULL, EINZ, ZWO, DREI, VIER, FUNF, SEQS, SIEBEN, AQT, NEUN, CENTA. Это давало дополнительные подсказки британским криптографам при взломе шифра Энигмы. Впрочем, хватало и других повторов. Но всё же применяемый Германией шифр имел достаточно высокую степень защищённости для того времени.
Успех англичан объясняется в большей степени тем, что они постоянно собирали и систематизировали данные радиоперехвата, охотились за образцами машины и её составных частей, кодовыми таблицами и случаями небрежности шифровальщиков.
К слову говоря, в данном примере рассматривалась 4-х роторная «Энигма», которая вступила в строй в 1942 году. С этого момента Блетчли-парк не мог расшифровывать сообщения в течение полугода. До тех пор, пока противолодочный корабль Petard, ценой жизни двух моряков, не захватил новую модификацию «Энигмы» с подводной лодки U-559.
Недавно наткнулся на художественный фильм «Код Энигма«. Интересный фильм. Несмотря на некоторое несоответствие исторических событий, отражены многие реальные события, имевшие место в криптографической войне. Показаны дешифровальные машины «Bombe» настоящая «Энигма» и работа с ней. В том числе установка барабанов (там ось отдельная) и поворот алфавитных колец. Их оказывается поворачивали на уже установленных в машину барабанах. Ну и сами методы дешифровки довольно достоверно отражены. В общем рекомендую посмотреть.
P.S. Поковырялся в Интернет и нашёл книгу, по которой фильм снят — Роберт Харрис «Энигма»
Интересный момент — взлом кода по радиограммам, в которых подлодки сообщают своё местоположение и параметры движения конвоя. Местонахождение сообщают не координатами, а квадратами. И нужен ещё «Справочник сокращений».
Действие романа происходит на фоне реального исторического события. Приведенные в тексте донесения германских военно-морских сил являются подлинными. Однако персонажи целиком вымышлены.
Хочется найти формат передачи радиограммы.
Интересный момент из книги:
— Том, лейтенант Крамер спрашивает тебя, — потеряв терпение, объяснил Логи, — как мы одолели Акулу в прошлый раз.
— Что? — раздраженный тем, что прервали его мысли, переспросил Джерихо. Махнул рукой. — А-а, Деница произвели в адмиралы. Мы предположили, что в штабе подводного флота пляшут от восторга и на радостях слово в слово передадут официальное сообщение Гитлера на все подводные лодки.
— И передали?
— Да. Получилась хорошая шпаргалка. Мы запустили на нее шесть бомбочек. Но даже тогда нам потребовалось почти три недели, чтобы прочесть радиообмен за один тот день.
— С хорошей шпаргалкой? — пораженно переспросил Крамер. — Шестью машинами? И три недели?
— Это следствие четырехроторной Энигмы.
— Жаль, что Деница не повышают в звании каждый день, — пошутил Кингком.
O! Настоящая Bigram Table!
http://users.telenet.be/d.rijmenants/pics/bigram-fluss-b.jpg
И ещё одна. С литерой «A».
А вот и про Книгу сокращений (Kurzsignale or Short Signals)
http://users.telenet.be/d.rijmenants/en/kurzsignale.htm
Леша, а в Кригсмарине не использовали обычную в нашем понимании систему координат (долготы и широты), это я к сообщению о кодировке местоположения. Они использовали собственную систему координат — MARINEQUADRATKARTE — Морская карта квадратов. Система была основана на разделении водной поверхности на квадраты.
http://www.uboat.su/koord.html
Сначала на такие квадраты делили, буквенные.
Затем на такие.
И наконец на такие.
На ней Рейкьявик уже можно точно определить как AE4874.
http://uboat.net/maps/grid.html/
Андрей, опередил!
Такую систему немцы использовали еще в Первую Мировую. Была карта Северного моря, применявшаяся на дирижаблях, с такой сеткой.
Такая карта (тащемта обычная карта с нанесенной «улиткой») использовалась всеми и всегда. Но немцами, как обычно, была возведена до абсолюта
Андрей, спасибо! Где бы всю карту найти
Хотя бы для Атлантики.
И ещё. Читаю сейчас в романе «Энигма»: «Конвой в квадрате ВЕ9533 военно-морской сетки, курс 70, скорость 9 узлов…«
Странно, пишут что приведенные в тексте донесения германских военно-морских сил являются подлинными, но мне не верится что каждый раз повторялось «военно-морской сетки«, «курс«, «узлов«…
P.S. Ой! Второй вопрос снимается, там как дальше сказано: «Но эти данные, как и метеосводки, кодировались одной буквой алфавита, заменяющей целую единицу информации, а затем зашифровывались Акулой.» Надо Книгу сокращений искать.
Леша, может здесь что-то отыщешь. Сайт итальянский, а у них как я понял, то ли что-то со сканером, то ли с руками.
Может быть такая карта пригодится?
Да, спасибо! Сетка координатная есть. Но надо бы поточнее, где-то оригинальные вроде карты попадались, дома посмотрю.
Да, эта не шибко точная, из Silent Hunter 3.
Блин, вроде нашёл http://www.kartengruppe.it/index.php/download?id=69
Но они пароль на архив поставили:
А пароль из текстового файла (kartengruppe.it) не проходит.
Эт Вы, батенька, Энигмой заигрались. Все там нормально с паролями
Леша, скорее всего захватываешь лишний знак при копировании пароля.
На всякий случай.
И правда :blush: Я не дожидался открытия файла…