Одноразовый шифроблокнот, будучи идеальным шифром, который никто и никогда не сможет взломать — это очень хорошо, но весьма трудоемко и в докомпьютерную эпоху крайне избыточно. Однако чем его заменить?
Напомню, что если вам в голову пришла идея придумать свой шифр и вы не являетесь профессиональным криптографом, то это плохая идея. Вашу гениальную шифровку с большой вероятностью вскроет какой-нибудь клерк из «черных кабинетов» или средневековый математик (напомню, частотный анализ текста в реальной истории — это 9 век). Вдобавок большинство известных и популярных шифров из категории «карандаш и бумага» не менее трудоемки, чем тот же одноразовый шифроблокнот…
Однако шифр, удовлетворяющий одновременно требованиям и к стойкости в докомпьютерную эпоху и к простоте использования существует. Во время второй мировой войны он стал большой проблемой для союзников. Шифр, который вскрывался с большим трудом и только при наличии не менее 40 символов уже известного текста в шифровке. Шифр, требовавший всего лишь заполнить клетки специальной таблицы по горизонтали и прочитать по вертикали, без каких либо расчетов. Знакомьтесь: Rasterschlüssel 44.
Да, кстати, на всякий случай. Если вы сейчас захотите написать «да это ж говно, это ж поворотная решетка!», можете не трудиться. Данный шифр из совсем другой весовой категории.
Во-первых, имеется решетка из белых и черных квадратов, 24 строки на 25 колонок. В каждой строке в случайном порядке расположены 10 белых квадратов и 15 черных. Колонки и строки решетки обозначаются случайными и уникальными для каждой строки и колонки двухсимвольными обозначениями: aa, ab, ac, ad, ae, ba, bb и т.д., кроме того, колонки пронумерованы в случайном порядке:
Во-вторых, к каждой решетке прилагается небольшая таблица для кодирования/декодирования этих обозначений, тоже из случайных наборов букв:
Цифры и пунктуация записываются словами. Сообщение должно быть не короче 60 символов и не длиннее 200. Если оно длиннее, то его надо разбить на две шифровки. Если сообщение короче 60 символов, то до него и после надо добавить случайных слов. Чтобы отличить случайные слова от шифровки, надо повторить последние две буквы в «заголовке» и первые две в «хвосте». Например: «поведениеторговлляяотступлениеввосемнадцатьнольнольллиимонад».
Берем тонкий лист бумаги и накладываем на решетку. Черные квадраты просвечивают сквозь бумагу, так, что видно, где надо писать. Вначале надо выбрать стартовую колонку и строку, ее надо выбрать случайным образом, после чего зачеркнуть на решетке (не на верхнем листе бумаги) их обозначения одной чертой наискосок. Если она зачеркнута один раз, то можно второй раз по другой диагонали, если колонка или строка зачеркнута уже крестиком, то ее использовать в качестве начальной НЕЛЬЗЯ. Далее надо
случайно выбрать колонку, с которой начнется шифровка, ее надо зачеркнуть крестиком, использовать ее потом в качестве начальной тоже НЕЛЬЗЯ.
В начале шифровки необходимо указать время шифрования, потом номер решетки, потом начальную строку и колонку, с которой начинается текст, затем колонку, с которой начинается шифровка (последнее — упрощенный вариант, действовавший с октября 44го, я описываю именно его). Для этого берется таблица кодирования начальных позиций и с ее помощью кодируются двухсимвольные обозначения колонок и строк.
Если мы начинаем писать открытый текст начиная с колонки bb и строки ae, то закодировать их данной таблицей можно например так: tuzd (два разных символа выбрали из колонки «b», один из колонки «a», один из колонки «e». Шифровать по вертикали мы начнем с колонки ee, это можно закодировать например как ny. Время 17:21, используется таблица номер 64: «1721-64-tuzd-ny». Это начало шифровки.
Далее все просто: текст заполняется в белых клетках слева направо, начиная с выбранной начальной позиции. Если текст доходит до конца листа, то продолжается с самого начала решетки сверху.
Затем списывается шифровка по вертикали, следуя нумерации колонок (если мы начали списывать шифр с колонки 23, то следующая колонка шифра 24, потом 25, потом 1,2 и т.д.). Используя решетку на иллюстрации списываем по вертикали начиная с 19 колонки dian, далее с 20й колонки m, с 21й колонки rq, с 22 tvfn и т.п.:
1721-64-tuzd-ny
dianm rqtvf nnris …
Расшифровка происходит обратным образном: вначале определяется начальная клетка. Затем отсчитывается по белым квадратам количество символов в шифровке и отчеркивается все остальное неиспользованное сообщением пространство снизу и сверху, записывается по вертикали шифровка в соответствии с нумерацией колонок, а затем горизонтально читается сообщение. Все.
Любопытно, что данный шифр нельзя взять в лоб даже современными вычислительными мощностями. Он конечно не годится в качестве серьезного шифра на сегодняшний день, т.к. у него имеются определенные слабости, которые в принципе можно использовать — при наличии компьютера. Ну или при наличии 40 символов уже известного текста. Или если немцы сделают типичную ошибку, когда текст не удастся расшифровать, а передающая сторона тот же самый текст зашифрует еще раз той же решеткой. А решетку полагалось менять каждый день, ага. Как следствие, союзники расшифровывали только радиообмен полиции Берлина, чтобы понимать происходящее в самом конце войны.
А теперь самое интересное: в применении шифра немцы сильно налажали. Они сделали всего лишь 36 штампов для строк и просто их переставляли местами… Но даже в таком кастрированном варианте шифр оказался значительно более стоек, чем применявшиеся для серьезной переписки Энигма и Лоренц. Дело в том, что немцы еще до войны в борьбе за расово чистую математику фактически уничтожили свою математическую школу. Кто-то сбежал, кто-то попал в лагеря, кто-то просто перестал работать и у них не осталось серьезных математиков, способных указать на ошибки, не говоря уже о том, чтобы придумать что-либо свое — ведь даже этот шифр немцы получили в качестве трофея!
История же появления этого шифра у немцев не менее интересна и поучительна — шифр изобрел британский криптограф Джон Тилтман (впоследствии взломавший шифр немецкой машины Lorenz SZ, что позволило читать общение Гитлера с его генералами). Шифр был внедрен под названием «Cysquare» и британцы его попытались использовать. Все было бы замечательно, но исполнение подкачало. Вместо тонкой, полупрозрачной бумаги предлагалось писать карандашом сразу на решетке, а потом стирать ластиком и так много, много раз. В полевых условиях в Африке белые клетки быстро становились черными и шифровальщики наотрез отказались пользоваться этим шифром. А потом Роммель захватил вместе с трофеями и шифровки с инструкциями, в результате чего у немцев появился серьезный шифр. Который они так и не оценили по большому счету, да и внедрили к самому концу обеда.
Неплохо.
// А решетку полагалось менять каждый день, ага.
Ну это шифрокнига нужна. Хорошо бы иметь проверенный алгоритм генерации решетки по ключу. Хотя попаданцу наверно и самопальный сойдет.
// до него и после надо добавить случайных слов
«The world wonders» 🙂
https://en.wikipedia.org/wiki/The_world_wonders
Ну это шифрокнига нужна. Хорошо бы иметь проверенный алгоритм генерации решетки по ключу. Хотя попаданцу наверно и самопальный сойдет.
Ну, для докомпьютерной эпохи наверное можно придумать какой-нибудь генератор фибоначчи с запаздыванием… самопрореживающийся :-E Потом тупо записать всю последовательность в пустую решетку и закрасить все четные или все нечетные.
алгоритм генерации решетки по ключу
Вот из головы примитивный НЕ проверенный алгоритм (НЕ использовать всерьез — или хотя бы сгенерировать приличный объем данных и прогнать их через dieharder):
Берем алфавит, нумеруем с А до Я, сопоставляя каждой букве одну цифру:
абвгдеёжзийклмнопрстуфхцчшщъыьэюя
012345678901234567890123456789012
Запоминаем два кодовых слова, скажем ЧЕБУРЕК и МОРМЫШКА. Теперь из них можно однозначно получить два начальных числа, заменив буквы цифрами (а лучше взять две длинных фразы, но для наглядности пусть будут два слова):
4510751
35738510
Теперь превращаем оба числа в последовательности. Берем первые две цифры, складываем, отбрасываем десяток если он есть, добавляем цифру в конец. Например первые две цифры первого числа 4 и 5, сумма 9. Дописываем 9. Затем сдвигаемся на один знак от начала и опять берем две цифры, это 5 и 1, сумма 6. Получаем 451075196. И т.п.:
45107519617260578986525774177241584965632351195
357385108201361802149798235366705889237536715028
Теперь берем верхнюю последовательность и вычеркиваем цифру, если в той же позиции в нижней последовательности находится четная:
4510 51 26 5 8 525 417 4 5 9 5632 511
357385108201361802149798235366705889237536715028
Опускаем первые 7 цифр первой строки (длина первого ключевого слова или фразы). Вот эту последовательность — 6585254174595632511 и записываем в клетки пустой решетки, по одной цифре на клетку. Потом закрашиваем все четные или все нечетные клетки. Обе последовательности надо соответственно нагенерить достаточной длины, чтобы хватило на все 24 строки решетки, причем вторая будет примерно в два раза длиннее первой.
Можно усложнить алгоритм, добавив еще отводов. Или например прореживать иногда и нижнюю последовательность по какому-нибудь принципу. Или пустить четыре потока. Но оно и так получается слишком трудоемко для ручного вычисления…
А зачем? Как Вы собираетесь передать ключ? В открытом письме? Надо как то добиться, чтоб адресат понял, где в письме ключ, а посторонние — нет. Как? Достаточно долго большинство населения не в состоянии не то что частотный анализ провести, а даже в уме зашифровать что либо скиталой, или шифром Цезаря. Даже после того, как попаданец обучит экс-крестьян грамоте как таковой. При личной встрече? Ну так проще передать готовую решётку. А тогда генерация может быть истинно случайной. Казиношная рулетка с изменённым количеством секторов, решётки просто заполняются сразу парами. И ни каких гвоздёв. Какие номера выпали, на пересечении с теми столбцами красим клетки, потом переходим к следующей строке. И любой алгоритм генерации будет или сложен для понимания аборигенами и ручной реализации ими же, или плох именно из-за своей простоты, так как отдельные хорошие математики уже с девятого века всё таки были, в том числе у противника.
Сложности, сложности… А попроще? Берётся сравнительно простой шифр и два узбека грамотных, каждый со своего конца, скажем, радиоканала. Донесение переводится на узбекский, но с искажениями, орфографическими ошибками, шифруется. Даже если фрицы перехватят — дешифровывать будут до второго пришествия.
Вот так и проебывают войну. Приходит такой умник и говорит что он умный, а остальные идиоты и не поймут его гениальности.
Очень интересно, большое спасибо!
Блеск статья! Завтра сам попробую что-нибудь так зашифровать.
Проверять на невскрываемость не берусь. Но хочу понять, насколько это легко пишется и читается, если знаешь ключ. Проверю. Сэнкс.
По своей сути этот шифр — последовательность случайных цифр, которая используется для перемешивания текста. Если не переиспользовать решётку вообще, то он почти настолько же стойкий, как и шифроблокнот.
Соответственно, анализ заключается в поиске этой случайной последовательности.
Если не переиспользовать решётку вообще, то он почти настолько же стойкий, как и шифроблокнот.
Нет, с шифроблокнотом нельзя сравнивать, даже если решетку использовать однократно. Там есть много закономерностей, например маловероятно, что две буквы подряд из шифровки будут идти подряд в чистом тексте. Или то, что белых клеток именно 10 на каждую строку и т.п. Но без компа или без особнячка а-ля Блетчли-парк со всей начинкой дохлый номер.
Да и жопа это на самом деле — немцам надо было каждый месяц распространять по всем фронтам и всем подразделениям 30 тонн (!) этих шифрокниг, и то при условии что сгорает одна страница в день. А одна решетка на сообщение… не потянули бы.
Соответственно, анализ заключается в поиске этой случайной последовательности.
Нет, анализ заключается в поиске слабостей шифра и использовании их.
Усилить его по идее можно, скажем по аналогии с DES. Если DES давно ломается, то 3DES насколько я помню пока еще нет. Если так же использовать три решетки (шифровка-расшифровка-шифровка), то шифр станет значительно более стойким. Но тогда трудоемкость возрастет очень сильно. И так немецкие шифровальщики постоянно лажали, что как правило и приводило к взлому, а тут еще хуже будет, в три раза.
Мне кажется что такие методы шифрования излишни до изобретения радио. По моему если сообщение передается по почте то легче сделать шифр зафязаный на 2/3/5 сообщений.
Диванный криптограф mode on:
Можно взять оригинальное сообщение и слегка закодировать его например двоичным кодом или азбукой морзе. Чтобы получив такое сообщение средневековым криптоаналитикам пришлось поломать голову над тем что это за последовательность кружков и палочек. После этого берем шаблон (в виде куска картона с прорезями или листа с закрашенными квадратами) и другой текст аналогичного объема. Это может быть просто случайный набор цифр, кусок из какой нибудь книги или другое сообщение (ну а для совсем ленивых просто половина оригинального) закодированного тем же/не тем же способом (главное чтобы выглядело так же)после чего заменяем куски текста из одного сообщения на куски текста из другого. Желательно чтобы шаблон был достаточно частый чтобы после раскодировки те кто перехватил сообщение получили неведомый фарш из случайных букв. Можно сделать не 2 сообщения а 3/5/10 чтобы кое кому пришлось поиграть в занимательную игру «собери их все».
Для расшифровки переобуется об куска сообщения и такой же шаблон как использовался при кодировании. Не имея хоть одного куска пазла сообщение превращается в тыкву. Для расшифровки достаточно наложить шаблон на первое соотношения в вписать в нужные места куски второго. Ну и опять же количество элементов можно увеличивать в большую сторону.
Единственная проблема что если одни из кусков сообщения не дойдет до адресата то он тоже нифига не расшифрует.
// если одни из кусков сообщения не дойдет до адресата то он тоже нифига не расшифрует.
Отличная идея для срочной связи.
// Можно взять оригинальное сообщение и слегка закодировать его например двоичным кодом или азбукой морзе.
Достаточно сложный шифр нельзя раскрыть вручную пока о нем ничего неизвесно. Security by obscurity не такая плохая штука в этом плане. Но стоит кому-нибудь проболтаться хотя бы о некоторых деталях… Беда в том что с шифрованием плохая обратная связь — если вы чтото сделали неправильно и шифровки читают, вы об этом узнаете не сразу … скорее всего слишком поздно.
—
Поэтому идеал — простой шифр, которому можно обучить всех своих, раскрытия алгоритма которого можно не бояться, который не требует 5 курьеров на одно сообщение, и который даже в худших условиях — противник обладает большими ресурсами, знает алгоритм, ключи и тексты нескольких старых шифровок — обеспечит безопасность. Нет смысла отвлекаться на поделки если есть что-то простое и надежное — шифр это средство, а не цель.
>Отличная идея для срочной связи.
А о какой срочной связи может идти речь до изобретения радио/телеграфа? Если их уже изобрели то можно попытаться сделать механическую шифровальную машину на подобие энигмы. И хрен ты это без компьютера расшифруешь. Или для радио схему с псевдослучайной сменой частот. 5 слов на одной частоте, 3 на другой… Без кучи радиоприемников и операторов это невозможно расшифровать.
>Но стоит кому-нибудь проболтаться хотя бы о некоторых деталях…
Ну и? Пусть ищут все 5 писем плюс шаблон.
>Поэтому идеал — простой шифр
Ну так я и не притененную на создание идеального, даже хорошего шифра. Это идея которая пришла мне в голову и я ей решил поделится и почитать критику.
// А о какой срочной связи может идти речь до изобретения радио/телеграфа?
Связь между двумя колоннами наполеоновских времен? С несколькими курьерами затраты на связь растут линейно, скорость доставки равна самому медленному, ну и вероятность потери хоть одного растет грубо говоря тоже линейно. Защищенность сообщения то это распараллеливание повышает, но если есть другой способ то выберут его.
Аммм… Я не предполагал этот шифр для военного использования. Да и требования там нужны совсем другие. Там не важно сделать шифр способный продержатся хотя бы несколько дней, с легко сменяемым колючем/алгоритмом шифрования. Потом приказ и депеши потеряют свое значение. Можно использовать несколько нетрудоемких алгоритмов шифрования последовательно которые превращали бы текст в кашу. Да это расшифровывается без каких либо сложностей но это занимает слишком много времени. Плюя с собой за войсками Блетчли-парк не потаскаешь и расшифровкой сообщений будут заниматься несколко криптоаналитика при штабе.
Я предполагал использовать мой шифр для деловой переписки и документации. Там нет большой проблемы сколко курьеров отправлять 1 или 2 а вот какая у этого шифра будет стойкость я хотел узнать у вас.
// какая у этого шифра будет стойкость я хотел узнать у вас.
Я имею не бог весть какой опыт в этом деле, но имхо при разделении больше чем на 2 части это сделает мало мальски сложный шифр практически неуязвимым для ручного анализа. Если считать что никогда не перехватят больше одного сообщения, что довольно сильное предположение.
Я предполагал использовать мой шифр для деловой переписки и документации. Там нет большой проблемы сколко курьеров отправлять 1 или 2 а вот какая у этого шифра будет стойкость я хотел узнать у вас.
Мне сразу вспоминается история, рассказанная Брюсом Шнаером — к одному его коллеге приставал дилетант-криптограф со всякой дурью. Все это легко ломалось, но отделаться от приставучего дилетанта не получалось. В конце концов специалист в ответ на очередное изобретательство достал четыре запечатанных конверта и сказал «вот здесь в четырех конвертах лежат запечатанные четыре самых простых способа взломать ваш шифр. когда сможете придумать хотя бы один из них, то будем разговаривать дальше». Дилетант пропал…
Прежде говорить о стойкости своего шифра, вы хотя бы вначале потрудитесь его формально описать. Не на словах «а ну вот одно смешать с другим», а приведите полное описание, с примером. Тогда будет о чем говорить.
Мне кажется что такие методы шифрования излишни до изобретения радио.
Читайте Кана до просветления. Начиная с кардинала Ришелье черные кабинеты регулярно вскрывали примитивные шифры. Азбука Морзе мало чем отличается от замены букв пляшущими человечками, я уже говорил, что частотный анализ текста — это 9 век.
Собственно, ваше предложение ничем не отличается от сотен других предложений новичков в криптографии, все идут одним и тем же стандартным путем, и во многом этот путь прошли еще в 17-18 веках. Если вы не профессиональный криптограф, то вы легко наделаете в своем самопальном алгоритме зияющих дыр, в которые легко проедет на лошади средневековый математик.
Я уж не говорю о том, что если вы допускаете ОДНОГО попадана — себя, то почему параллельно не допускаете ВТОРОГО попадана? Или десяти? Или целого американского города? Все на уровне одного и того же допущения. Гораздо спокойнее сразу использовать хорошую криптографию.
Диванный криптограф mode on:
А теперь встаньте с дивана и попробуйте предложенное вами на бумаге. Не пару символов, а хоть сколько-нибудь приличный текст. Трудоемкость еще больше, чем у одноразового шифроблокнота, а выхлоп фиговат, мягко говоря.
Сравните это с RS44, где надо всего лишь записать открытый текст по горизонтали и прочитать шифр по вертикали. Я не просто так взял этот шифр, он реально совмещает в себе минимум ручного труда (и минимум ошибок) и высокую стойкость. Мало других шифров, которые настолько же просты в применении на бумаге.
Можно сделать не 2 сообщения а 3/5/10 чтобы кое кому пришлось поиграть в занимательную игру «собери их все».
1. Письма доставляются редко и с большой вероятностью они все поплывут на одном корабле (если скажем брать дипломатическую переписку), либо, если отсылать реже, чем идут корабли, то будет ходить одно письмо в год.
2. Письма идущие по официальной почте до начала 20 века перлюстрировались все подряд, а уж отследить все письма от одного источника или на один источник — с этим справится один клерк.
3. Надежность доставки писем тогда была очень плохая, если у нас письмо доставляется с верояностью 0.9 это терпимо, если для расшифровки надо 5 писем, получаем 0.9*0.9*0.9*0.9*0.9 = 0.57. Т.е. практически половина шифровок нельзя будет прочитать. Вы продолжаете считать, что это хорошая идея?
Я так думаю, подойдет что-нибудь из https://www.cryptolux.org/index.php/Lightweight_Block_Ciphers (с маленьким block size, для минимизации вычислений на бумаге). Нужна таблица XOR (запомнить сложно, но можно), ну и какая-нибудь известная последовательность цифр (число Пи, e…), одинаковая на обоих сторонах. Бумаги для шифровки/расшифровки понадобится, конечно, много. Зато хрен взломаешь без компьютеров (а кое-что и с компьютерами — не взломать). Короче, надо сначала организовать производство бумаги и карандашей. 🙂
Там все шифры заточены под исполнение в электронном исполнении, на бумаге такое вычислять — я посмотрел и аж заколдобился. Что-то из них в электромеханическом варианте вполне может пойти вместо Энигмы, но это отдельный разговор.
Но даже если применить получится, зачем?!
Бешеная трудоемкость, как следствие большая вероятность ошибок, куча вытекающих из этого проблем, и все равно при наличии компа это все ковыряется. Если мы предполагаем противника с компом, а у нас компа нет, то значит что и альтернативы одноразовому шифроблокноту все равно нет. А если все без компа, то RS44 в порядки легче использовать, и даже хотя бы просто обучить персонал.
[шизофрения]
Grue: 2. Письма идущие по официальной почте до начала 20 века перлюстрировались все подряд,
Спасибо за интересную статью!
В связи с тотальной перлюстрацией, хотелось бы спросить ваше мнение насчет возможностей стеганографии (условно говоря в средние века)в принципе.
Все те произведения искусства, живопись в особенности: то символизирует это, а вот так расположенное это — символизирует вот то итп.
P.S. меня безусловно интересует развитие технологий и совершенно не интересует «попаданчество».
P.P.S. Походя упомянутый софт для расшифровки и тестирования — подкиньте дельных статей пожалуйста.
Спасибо!
В связи с тотальной перлюстрацией, хотелось бы спросить ваше мнение насчет возможностей стеганографии (условно говоря в средние века)в принципе.
Все те произведения искусства, живопись в особенности: то символизирует это, а вот так расположенное это — символизирует вот то итп.
Вряд-ли.
1. Нарисовать любую картину это дофига труда — и все для того, чтобы зашифровать 10 знаков? Потому что если зашифровать хотя бы 200-300 букв (это всего лишь пара предложений), то получаем уже не картину, а сплошной забор из одинаковых «тех» и «этих». В лучшем случае совсем повторяющийся узор по всей «картине». Уже слабо тянет на произведение искусства и вряд-ли осталось бы незамеченным и нерасшифрованным в нынешние времена.
2. Мало людей, способных хоть сколько нибудь хорошо рисовать, доступно очень немногим, причем как правило тем, кому нечего шифровать, за очень-очень редким исключением типа Леонардо.
3. А если заказывать рисунок с такой фигней, то это уже не секрет. Любые художники это богема, доверять им (а как еще объяснить что и как нарисовать) это верх глупости. Опять же, на выходе будет забор.
Может Леонардо чего и зашифровал в завитушках, но вряд-ли это было хоть сколько нибудь популярным методом.
P.P.S. Походя упомянутый софт для расшифровки и тестирования — подкиньте дельных статей пожалуйста.
Я вообще-то писал про софт для тестирования псевдослучайных последовательностей на неслучайность. Это немного другое. В принципе dieharder лежит в репозиториях популярных линухов, не знаю как для винды. Остальное все в сети валяется в виде кучи коряво компилирующихся исходников, регулярно валящихся в кору. Опять же, эти тесты не дают никаких гарантий, что ваш генератор случайных чисел реально непредсказуем, это так, баловство по большому счету.
Волшебной программы, чтобы скормил на вход любой шифр, а на выходе получил взломанный текст нету.
Стеганография известна с античности.
Начиная с истории с бритым рабом.
Основной и самый удобный способ- невидимые чернила. Пишем на тексте с невинным письмом второй слой невидимыми чернилами и посылаем обычной почтой.
Вариантов чернил/проявителей масса.
Второй простой способ — проколы иголкой у нужных букв или даже просто наколоть перфокарту которую потом можно расшифровать. Плохо то что данный способ давно известен и посмотреть письмо на свет догадаются даже в средневековье. Впрочем пометить нужные буквы в письме можно и другими способами, например нестандартным начертанием или псевдослучайными кляксами.
Картины с символикой это не стеганография, это просто один из видов искусства, второй слой сообщения для понимающих. Работает только в контексте и основано на знании некоторых канонов. Грубо говоря посадив генерала в определенную позу (или снабдив атрибутами) характерную для Ареса мы намекаем на его немерянную крутизну в военных делах.
Есть еще и общепринятые соглашения. Например поднятая нога у конной статуи означает что человек умер от ран полученных в бою.
Искать же зашифрованные сообщения в картинах — это чистый СПГС. Можно наткнутся разве что на шутку художника.
Добавил в инструкцию про нумерацию колонок, она там не просто так.
Хорошая книга — Брюс Шнайер «Прикладная криптография». Для ознакомления пойдет. Совершенно невскрываемые шифротексты существуют. Ими пользовался еще Рудольф Абель (да и до него еще тоже). И любой попаданец, знающий хотя бы основы криптографии, может ими пользоваться. Но менять действительно надо каждый день и не пользоватся одной и той же шифртаблицей дважды, на чем и горели многие провалившиеся шпионы.
Статья понравилась.
>Однако шифр, удовлетворяющий одновременно требованиям и к стойкости в докомпьютерную эпоху и к простоте использования существует. Во время второй мировой войны он стал большой проблемой для союзников. Шифр, который вскрывался с большим трудом и только при наличии не менее 40 символов уже известного текста в шифровке. Шифр, требовавший всего лишь заполнить клетки специальной таблицы по горизонтали и прочитать по вертикали, без каких либо расчетов. Знакомьтесь: Rasterschlüssel 44.
Вообще то скитала — первый известный в истории шифр. Ломался уже в древности подбором диаметра цилиндра, на который в ту пору вместо таблицы наматывалась лента и текст просто писался поперёк. Собственно алфавитные шифры из-за этого и появились, а кодовые слова к ним — для борьбы с частотным анализом.
Причём, всё дальнейшее описание шифра к письму по строкам и чтению по столбцам не имеет ни какого отношения.
А как же не взламываемый шифр всех времён и народов? Имеются две одинаковые книги у собеседников, текст шифруется следующим образом: номер страницы, номер строки, номер символа в строке. Типа: 21-14-42. Значения не повторяются.
Расшифровывается наличием у третьей стороны такой же книги?
Собственно это более чем взламываемый шифр. Число книг достаточно ограничено, во всяком случае оно намного меньше чем число вариаций даже 6 буквенного пароля.
Кроме того личность шифровальщика существенно ограничивает выбор, например если это переписка резидента значит книга (чтобы не палиться) на языке страны в которой он живет.
Такой перебор выглядит невозможным для одиночки, но для государственной структуры перебрать пару десятков тысяч книг плевое дело.
Опять же, если есть возможность побывать в месте жительства или осмотреть вещи которые человек возит с собой…
У этого мифа про невзламываемость подобного «шифра» ноги растут откуда-то из времен СССР, не первый раз натыкаюсь на подобную убежденность у людей на пустом месте. Наверное в каком-то научпопе было что-то такое написано. Наверное специально, чтобы за доморощенными подпольщиками было проще приглядывать…
Любая генерация чего либо по ключу страдает тем, что как только противнику станет известен алгоритм генерации, сложность шифра будет определяться разнообразием ключей. А до простых алгоритмов додумаются даже аборигены. С другой стороны, зачем нужен именно блокнот? Да за тем, чтоб иметь сразу большой запас того, чем шифруешь. Если генерить по ключу, то почему бы по ключу не сгенерить решётку/шифротаблицу/заменяющий алфавит или что угодно ещё для одной конкретной шифровки? Когда позарез нужен именно большой запас? Да когда агент берет его при инфильтрации, или у связного. Ну так готовьте шифроблокноты методом монте-карло каждый в двух экземплярах.
Не туда.
Интересный пост на оверстеке http://security.stackexchange.com/questions/150168/one-time-password-algorithm-for-humans
+ http://crypto.stackexchange.com/questions/844/is-there-a-secure-cryptosystem-that-can-be-performed-mentally — one could probably carry out the RC4 algorithm fairly easily using 256 numbered pieces of paper
Blum’s HCMU
http://scilogs.spektrum.de/hlf/mental-cryptography-and-good-passwords/
Blum — Towards Human Computable passwords https://arxiv.org/pdf/1404.0024v4.pdf
Хм, а почему бы не использовать сразу несколько видов криптографии для сообщений разной важности/секретности. Например:
1. Плейфер/Уитмор для наименее критичных сообщений. Плюсы: прост в освоении до отупения, переносить буквы по простому алгоритму в алфавитном квадрате можно и макаку научить (уж если ваш покорный слуга это успешно освоил в 6-7 классе средней школы, то средний грамотный человек эпохи возрождения/позднего Средневековья сможет легко). Относительно криптостоек (в зависимости от эпохи, ИРЛ его стабильно научились ломать в ПМВ-ВМВ в зависимости от варианта, думаю, если не палить его сильно, то пытаться ломать его будут очень долго). Минусы: есть мнение, что возможности криптоанализа того времени вполне себе позволяли его взломать. Если попаданец кого-то сильно разозлит этими шифрами, вполне возможно создание «средневекового Блетчли-парка», где куча монахов и профессоров математики скорее рано чем поздно найдут как его взломать, это вопрос средств и целеполагания, а не принципиальной возможности).
2. Тот же Растер для сообщений «средней важности/секретности».
3. Ну и для максимально критичных сообщений — шифроблокноты.
В любом случае было бы неплохо еще уяснить несколько моментов:
Даже без возможности взломать шифр, само наличие секретной связи и частота передачи данных позволяет сделать кое-какие выводы о планах попаданца. Не столь критично для военной связи, смертельно для шпионства и прочих дворцовых интриг с переворотами. Придется осваивать стеганографию и методы скрытия самого факта сообщения, ложные шифрограммы, и так далее.
Самое слабое звено было, есть и будет — человек-оператор. Накосячил с шифровкой — раскрыли. Проболтался агентам — узнали и коды, и явки-пароли. И я что-то очень сомневаюсь что средневековые люди были более лояльны своим работодателям чем сотрудники Контор настоящего времени. Тут уж надо выстраивать целую разведслужбу, с скрупулезной подготовкой, проверками лояльности, контрразведкой и индоктринацией сотрудников на «смерть лучше захвата в плен». Под силу ли это попаданцу? Не знаю, мне кажется что нормальную сталь научиться лить и электрифицировать столицу местного королевства, возможно, попроще будет. Все-таки законы электричества — величина неизменная, а что у людей в головах творится, поди узнай…
почему бы не использовать сразу несколько видов криптографии для сообщений разной важности/секретности
Зачем?
переносить буквы по простому алгоритму в алфавитном квадрате можно и макаку научить
Это значительно сложнее, дольше и ошибкоемче, чем записать в решетке по горизонтали и прочитать по вертикали. RS44 тут значительно проще. Зачем усложнять себе жизнь?
Самое слабое звено было, есть и будет — человек-оператор. Накосячил с шифровкой — раскрыли.
Вот именно. И накосячить в каком нибудь плейфейре в разы легче, чем в RS44. Зачем?
Проболтался агентам — узнали и коды, и явки-пароли
И мы сразу озвращаемся к принципу Керкгоффса — «враг знает систему». В вашем случае, враг, знающий плейфейр (благодаря проболтавшемуся), имеет намного больше шансов его поломать, чем RS44. В случае RS44 понадобятся ресурсы целой страны середины 20 века. Опять, зачем?
Тут уж надо выстраивать целую разведслужбу, с скрупулезной подготовкой, проверками лояльности, контрразведкой и индоктринацией сотрудников на «смерть лучше захвата в плен». Под силу ли это попаданцу?
Ну и зачем, зная о слабости человеческой стороны вопроса, заведомо ослаблять его еще и с технической?
Кстати, а как такая и идея по стеганографии, что попаданец изобел станок для ковроткачества, и открыл мануфактуру по изготовлению ковров, ну и лавку по торговле ими? А один-два ковра ткутся на отдельной машине в кабинете, и отправляются кому-то … ну например знакомому купцу в другой части мира.
Да, односторонне, но скрытность хорошая.
Фантастически трудоемко и бессмысленно.
Лучше уж послать кому то купленные в соседней лаке книги, наколов нужные буквы на некой условленной странице. Скрытность одинаковая, а трудоемкость даже не в разы, на порядки проще…
Кроме того, вариант с коврами крайне медлителен и малоинформативен, если объем передаваемых данных невелик проще использовать кодовую книгу, т.е. составить список фраз которые могут быть переданы и для каждой из них определить некий товар/сочетание товаров. т.е. послал пяток серебряных кубков- значит войско готовится к походу, ну а золотое блюдо — болезнь правителя…
Главное чтобы предметы никак логически/алегорически не пересекались со смыслом сообщения а то расшифруют и такое…
Кстати, к вопросу о шифровании через книгу.
В произведении Еськова, Боря-Робин-Гуд был отличный пример невскрываемого шифра для одноразовой передачи данных.
Обычный шифр по книге. Вот только в качестве исходного текста использовалось заученное наизусть стихотворение сочиненное когда-то самими адресатами.
т.е. его нигде нет. Ни в одной книге. Оно в только в головах адресатов. При необходимости использовать оно по памяти пишется на листочке бумаги и потом вперед,
номер строчки /номер буквы… Не слишком длинное послание можно зашифровать с гарантией что его никак не вскроют.
Правда вещь одноразовая…
Это можно было использовать для общения между Отвернувшимися в романе Лю Цысиня «Темный лес»
По поводу генерации решетки для RS44, можно воспользоваться QR кодом, который содержит клетки черного и белого цвета. Считывать клетки можно как угодно, например, начиная с первой строки и до 20-го столбца, потом переходим на следующую строку кода. Таким образом сформируется решетка шириной в 20 клеток. Сам же QR код можно генерировать на основании ключевого слова. Можно всячески преобразовывать этот QR перед считыванием решетки. Короче, как кому нравится. Кстати, вручную QR код тоже можно создать, как и прочитать его, правда, это очень хлопотно.