
Глава III: Криптография.
✦
8 декабря 2018 года.
Россия.
══ ⋆ ══
— Добрый вечер, дамы и господа, — вежливо начал вышедший из багрового занавеса молодой брюнет, что с улыбкой поприветствовал всех собравшихся. Под аплодисменты он подошёл к микрофону, пока кто-то из организаторов включил позади него проектор. — Меня зовут Евгений Афанасьевич, я студент Дальневосточного технического института. Сегодня мы поговорим о теме, которая, как мне кажется, становится всё более важной — приватность. Особенно в рамках современных коммуникаций и рыночных отношений. Он слегка поправил микрофон и продолжил уже увереннее: — Только за этот год российские и международные компании столкнулись с восемью крупными утечками данных. Ещё шестнадцать — средние по масштабу. Плюс двадцать четыре попытки взлома. И это только то, о чём сообщили официально... Сегодня я представляю алгоритм, который существует пока в двух формах: одна — упрощённая, рассчитана на защиту личной переписки, дневников или аналогичных бытовых нужд. Вторая — усиленная, с дополнительными уровнями защиты, подходит для закрытых донесений, например, между агентурными структурами или другими организациями, где критична конфиденциальность. Студент вздохнул, но улыбнулся. — Собственно, всё началось довольно банально. Сожитель моей подруги почему-то решил, что имеет право читать её дневник. Что, как минимум, неэтично. Разговоры не помогли. И вот тогда-то я задумался: а почему бы не создать что-то такое, что защищает информацию и притом не требует цифровых технологий? Он развернулся к экрану, на котором уже были видны простые, интуитивно понятные схемы. — Позвольте представить: NCR и NCR-S — Numerical Cipher with Randomization и его усиленная версия Special. Также возможны альтернативные наименования: Handwritten Numerical Steganography и Randomized Numerical Transcription и кодовое слово «Specter». Для русскоязычного варианта мы пока рассматриваем несколько сокращений... Но это позже. Он обернулся к аудитории, по-прежнему спокойный и собранный. — А сейчас позвольте кратко объяснить, как работает данный алгоритм. На экране появилась таблица с буквами и соответствующими им числовыми значениями. Рядом — фраза: «Привет, мир!», разбитая на символы. — Основная идея проста: каждый символ — это число. Но не просто замена по порядку, как в шифре Цезаря. Мы используем индивидуальную таблицу кодировки, которую составляют сами пользователи. Причём диапазон значений может быть произвольным — от одного до ста, двухсот, хоть тысячи, — всё зависит от цели. На экране подсветились строки:П = 11
Р = 19
И = 05
В = 09
Е = 32
Т = 41
, = 98
М = 07
! = 99
— Но это только основа. Главный элемент защиты — случайный шум, — подчеркнул он, — числа, которые вставляются между значимыми символами. Они не несут смысла, но нарушают структуру, делая невозможным частотный анализ. Даже зная, что это шифр, вы не сможете сказать, где буква, а где шум. Новый слайд.Исходная фраза: Привет, мир!
Кодировка: 11 19 05 09 32 41 98 07 05 19 99
Добавлен шум: 11 73 19 05 09 86 32 41 98 07 05 63 19 99
— Для человека, владеющего таблицей, расшифровка интуитивна: он просто отбрасывает шум — и всё. Но для постороннего — это числовой мусор без структуры. Евгений выдержал паузу. — Это, собственно, базовая версия NCR. Её можно использовать повсеместно: в личных дневниках, записках, передаче небольших сообщений. Всё, что нужно, — бумага, либо смартфон, ручка и таблица. Что в цифровом, что в аналоговом варианте — метод одинаково работает. Что может пригодиться для шифрования текста в инструментах, не поддерживающих стандартные алгоритмы, такие как «Кузнечик», «Магма» или «AES». За примером далеко ходить не надо — обычные заметки. Но в первую очередь, конечно, рекомендуется использовать в бумажном варианте. На экране появилось изображение страницы блокнота с написанным от руки шифром. — По сути, это аналоговая криптография. Простая, но эффективная. А теперь давайте рассмотрим, как эта система может быть усилена. Мы назвали данную модификацию NCR-S — «Special». Слайд сменился, и экран потемнел до почти чёрного фона с надписью «Модификации для спецназначения». — NCR-S — вариация для ситуаций, где утечка данных недопустима, — начал Евгений уже более серьёзным тоном. — Спецоперации, агентурные донесения, закрытая переписка между подразделениями. Тут важна не только приватность, но и защита от глубокого анализа, в том числе с использованием современных технологий. — Во-первых, — пояснил Евгений, — в NCR-S мы отказываемся от принципа «один символ — одно число». Буква может иметь несколько числовых отображений, выбираемых случайно при шифровании. Это увеличивает вариативность и делает частотный анализ бесполезным.Слайд:
А = 03, 56, 77
Б = 08, 44
В = 09, 22, 63
...
— Во-вторых, в отличие от простой вставки случайных чисел, NCR-S использует структурный шум — такие значения, которые при определённой интерпретации тоже могут быть приняты за смысловые. Это создаёт эффект ложного смысла. Перехватчик увидит не набор цифр, а якобы упорядоченное сообщение, которое на деле ничего не значит. Он показал следующий слайд:Фиктивная расшифровка — пример псевдосмысла, внедрённого в шифротекст.
— Третье — сегментация и динамический ключ. Сообщение разбивается на фрагменты, каждый из которых кодируется по отдельной мини-таблице, меняющейся от фрагмента к фрагменту. Это не просто обфускация, а симметричная многослойная схема.Появилась анимация:
Сообщение делится на 4 части
Каждая часть шифруется своей таблицей
Таблицы основаны на псевдослучайных сдвигах базовой кодировки
Расшифровка возможна только при знании начального ключа и порядка сегментации
Евгений сделал шаг в сторону и указал на экран. — Помимо прочего, замечу, что алгоритм является простым и гибким, а значит, при необходимости можно добавлять в стандартный NCR любые улучшения, в том числе и из NCR-S. — Весь алгоритм можно реализовать вручную, без компьютера. Это шифр не для интернета — а для бумаги, полевых условий, тетрадей, тюрем, командировок. Там, где надёжность важнее скорости, которая, кстати, не так уж сильно и страдает. Он перевёл взгляд в зал. — Вы можете записать сообщение, спрятать таблицу в обычном письме, оставить зашифрованную фразу даже на стене — и никто не догадается, что там. Также вы можете имитировать номера телефонов, координаты и многое другое. Последний слайд:Преимущества NCR:
Абсолютная независимость от цифровых средств
Иммунитет к частотному анализу
Отсутствие фиксированного алфавита
Возможность масштабировать уровень защиты
Простота использования (для подготовленного оператора)
Евгений улыбнулся. — А теперь... я с радостью отвечу на ваши вопросы. Из зала поднялась рука. — А насколько вообще это стойко? Ну, скажем, если кто-то решит перебрать все возможные комбинации вручную или с помощью какого-нибудь искусственного интеллекта? Парень на сцене усмехнулся. — Отличный вопрос, спасибо. Тут важно понимать масштаб. Возьмём базовую таблицу, где каждая буква заменяется на одно число из диапазона от 1 до 100. Русский алфавит без дополнительной буквы — это 32 символа. Получается, общее количество возможных таблиц — это 100 в 32-й степени, или проще: 100³². Он нажал на пульт — на экране вспыхнули цифры: 100³² ≈ 10⁶⁴ возможных таблиц. — Чтобы вы понимали: это число больше, чем количество атомов во всей наблюдаемой Вселенной. Даже если бы гипотетический суперкомпьютер проверял миллиард таблиц в секунду, ему бы всё равно понадобилось... ну, немножко больше, чем возраст нашей планеты, — с улыбкой отметил студент. В зале раздался смешок. — А если взять английский алфавит, там меньше букв — 26. Тогда получаем 100²⁶, что тоже немало. Конечно, при желании можно немного сузить таблицу, использовать диапазон от 1 до 50 — для простых пользователей это упрощает жизнь. Но даже тогда перебор займёт бессмысленно много времени. — А если кто-то попробует частотный анализ? — раздался следующий вопрос. Евгений кивнул. — Для этого и существует шум. Случайные числа, которые маскируют структуру текста. В NCR-S — ещё интереснее: символы повторяются с разными значениями, и один и тот же текст можно закодировать десятками способов. Частотный анализ в таких условиях становится абсолютно нерелевантным. Даже если вы отфильтруете шум — всё равно не узнаете, где «А», где «Я», и по какой таблице всё это зашифровано. Но даже обычный NCR вполне неплохо защищён. Он немного оживился: — По сути, единственный способ расшифровать сообщение — это либо иметь саму таблицу, либо догадаться о её структуре. Но с учётом возможных вариаций догадаться — это всё равно что попытаться открыть сейф, не зная ни одного символа кода. Да и сам сейф в другой комнате, а комната — в другой галактике. Вновь раздался смех. — Также отмечу, что NCR не заменяет цифровые алгоритмы, например «Кузнечик» или «Camellia», но прекрасно работает вместе с ними либо там, где они не поддерживаются, например во встроенных в систему приложениях. Или когда у вас нет доступа к компьютеру, но есть необходимость защитить информацию. И в этом контексте, поверьте, стойкость более чем достаточная. Он перевёл взгляд в зал. — Будут ещё вопросы? — А зачем шифровать заметки в приложениях, если операционная система сама всё шифрует? — А насколько эффективно? — уточнил студент. — Если так, тогда почему один вирус способен передать злоумышленникам любые пароли и данные? В зале наступила тишина. — Всё просто, — улыбаясь, развёл руками Евгений. — Система защищает, но плохо. Был случай, когда у человека украли iPhone, без лишнего труда вскрыли хорошо защищённую прошивку и похитили все его данные, в том числе от банковских приложений. А если вы бизнесмен, и у вас на компьютере или телефоне пароли, контакты, заметки и планы... Системная защита слишком слаба, но это не значит, что я предлагаю её отключить. Наоборот. Просто ей нужно помочь. Из глубины зала поднялась ещё одна рука. — А что будет, если таблица утеряна? Или человек забыл её? Шифр ведь становится нерешаемым даже для автора? Евгений кивнул. — Да, абсолютно верно. Таблица — это ключ. Без неё расшифровка невозможна. Это как с классическим сейфом: если вы потеряли комбинацию — вскрытие возможно только взломом, а в нашем случае взлом бессмысленно дорог. Поэтому NCR предполагает распределённое хранение ключей, либо шифровку самих таблиц отдельным способом. Например, в AES, если существует хоть небольшой доступ к технологиям. Пауза — Можно, кстати, запомнить не саму таблицу, а алгоритм её генерации, — добавил он, — например, привязанный к определённой дате, цитате или личному коду. Это позволяет восстановить таблицу даже при утрате записи. Главное — чтобы эта схема была известна только отправителю и получателю. Следующий вопрос прозвучал с другого конца зала. — А если человек ошибся при шифровке? Забыл вставить шум или использовал не то число? — О, — усмехнулся Евгений, — человеческий фактор никто не отменял. Даже в базовой версии это не так уж критично. Если вы вдруг ошиблись двумя буквами, понять о чём предложение будет проще, чем разобрать свой же почерк. Пожилой мужчина поднял руку. — А зачем вообще такая система, если есть цифровые шифры вроде AES? — Очень уместно, — согласился Евгений. — Только представьте себе ситуацию: вы — разведчик или российский журналист в стране с тотальной цензурой. Венесуэла. У вас отобрали телефон, вы не можете пользоваться VPN, интернет заблокирован. Но у вас есть карандаш, клочок бумаги и шифр, который может выглядеть как записная книжка с номерами телефонов. Даже если вас заставят прочитать написанное — это будет просто набор цифр. Но вас не заставят. Даже при наихудшем развитии событий, бумага легко прячется так, что не может быть обнаружена при проверки брюк. Он выдержал паузу. — AES — прекрасен. Но вы не напишете его вручную. А NCR — напишете. Даже на стене, даже ногтем на картоне. Это криптография, выживающая там, где техника бессильна. Последний вопрос был коротким: — А эффективно ли это использовать в сочетании с цифровыми методами? — Конечно, — Евгений поднял бровь. — Наоборот: это прекрасно сочетается. Например, можно использовать NCR как внешний слой маскировки поверх цифрового текста. Или зашифровать электронную таблицу вручную, а потом отправить по открытым каналам — никто не догадается, что внутри. Многослойная защита — всегда лучше. Блондинка вдруг приподнялась с кресла. — А скажите... Базовый NCR — это же можно использовать даже дома, да? Например, если я веду дневник и боюсь, что кто-то в семье его прочитает? Евгений с улыбкой кивнул: — Именно для того он и создавался. NCR в своей базовой версии — это такой «входной уровень» шифрования. Вы просто заменяете каждую букву на число по заранее придуманной таблице. Всё — шифр готов. Никаких сложных вычислений, только ручка и немного терпения. Таблицу можно составить самому. Просто пишете алфавит и напротив каждой буквы — число. Главное, чтобы числа шли не подряд, а в случайном порядке. И эту таблицу вы храните отдельно: в книге, в рисунке, в голове — как вам удобно. — А если кто-то найдёт мою таблицу? — Тогда да, шифр можно будет вскрыть, — честно признал Евгений. — Поэтому лучше или запоминать, или маскировать. Например, спрятать её внутри текста — как будто это список покупок или телефонных номеров. Также можно писать осмысленный текст. Например «В» имеет число 3, и это число можно вписать в первую клетку, т.е. на «А». Это уже чуть сложнее, но не критично. Кто-то из студентов поднял руку: — А сколько времени занимает зашифровать короткую записку? — Поначалу — минут пять-десять, — сказал Евгений. — Но через пару дней практики — пару минут. Затем как обычный текст. — А можно шифровать, например, просто пароли или имена? — Да, конечно! — ответил Евгений. — Имена, пароли, адреса — это вообще идеально для NCR. Вы шифруете, скажем, слово «Кот» и записываете в блокнот: 23 11 38. Даже если кто-то заглянет — ничего не поймёт. Он добавил, глядя в зал: — Главное преимущество NCR — это его доступность. Он не пугает сложностью, не требует техники, не вызывает паранойи. Это как тайный язык, который понятен только вам. Ещё один вопрос — от пожилого мужчины с планшетом: — А может ли обычный человек случайно выдать свой ключ? Ну, например, проговориться? — Конечно, всё зависит от человека. Но в NCR нет «секретного слова», которое легко выдать. Есть просто таблица — и даже если вы скажете «буква А — 47», это мало что даст. Потому как для дешифровки нужно знать всю таблицу, а лучше — ещё и порядок, и структуру, и знать, где шум, а где нет. Так что в целом, даже если вы случайно проговоритесь — злоумышленник всё равно вряд ли сможет собрать полную картину. Следующий вопрос от другого мужчины: — Почему вы уверены, что случайная таблица не может быть предсказана или взломана с использованием статистических методов? — Основная защита — это случайность, с которой формируется таблица, и добавление шумовых чисел, что затрудняет анализ. Даже если злоумышленник получит несколько зашифрованных сообщений, ему будет сложно понять, где шум, а где настоящие символы. Чтобы усилить безопасность, можно использовать уникальные ключи для каждого сообщения или менять таблицу. — А если злоумышленник получит несколько расшифрованных примеров, не сможет ли это стать достаточной информацией для восстановления таблицы? — Только если расшифрована большая часть из 32 букв. Но не стоит забывать, что существуют также и шумы, либо прочие ухищрения из NCR-S, которые нивелируют данную угрозу. В любом случае, желательно сохранить ключ втайне. — Хорошо. А как NCR защищён от атак через вектор временных характеристик? Например, через время выполнения шифрования? — В случае с NCR процесс кодировки одинаково быстрый для каждого символа. Время не зависит от длины сообщения, потому что речь идет о ручной замене букв на числа. Это примерно, как если бы вы писали обычный текст, может, совсем чуть-чуть медленнее. Время выполнения не даст злоумышленнику информацию для анализа, и мы можем использовать дополнительные методы маскировки, если потребуется. — Что вы думаете насчёт сравнения с блочными алгоритмами? — Я считаю его сравнимым по стойкости с AES, возможно, с некоторыми уступками. Данный метод активно применяет принцип «одноразового блокнота», почему использует не сложные вычисления и раунды, а обыкновенную... случайность, что существенно повышает энтропию при идеальной реализации. Более того, ошибки при кодировании действуют как преимущество: если вы ошиблись буквами, или пишете с орфографическими ошибками, это также повышает энтропию. В тихом зале многие были удивлены. — Это та причина, по которой я назвал данный алгоритм, — подвёл итоги студент. —... Спектр.◦ ❈ ◦
Студент вышел из двухэтажного просторного, но снаружи обшарпанного помещения, по замёрзшей, покрытой снегом земле шагая к остановке. В нескольких метрах над ним парил Рюк, что смотрел в одну и ту же точку, как, впрочем, и его новообретённый «шут». — Не боишься, что тебя могут заподозрить за то, что ты участвуешь в подобных... Как вы их называете? Увидев, что никого вокруг нет, студент тихо произнёс: — Да нет, всё в порядке. Это локальный проект. Зная пофигизм вышестоящих, пока до L дойдут слухи — пройдёт очень много лет.