Перейти к содержимому

Гост 28147 89 заменен на какой гост

  • автор:

Извещение о порядке использования алгоритма блочного шифрования ГОСТ 28147-89

На основании проведенного анализа и в связи с вводом в действие межгосударственных стандартов ГОСТ 34.12-2018 и ГОСТ 34.13.2018 ФСБ России устанавливает следующий порядок использования алгоритма блочного шифрования ГОСТ 28147-89.

1. Средства криптографической защиты информации, предназначенные для защиты информации, не содержащей сведений, составляющих государственную тайну, реализующие, в том числе алгоритм ГОСТ 28147-89, не должны разрабатываться после 1 июня 2019 года, за исключением случаев, когда алгоритм ГОСТ 28147-89 в таких средствах предназначен для обеспечения совместимости с действующими средствами, реализующими этот алгоритм.

2. Использование алгоритма ГОСТ 28147-89 после 1 июня 2019 года для обеспечения совместимости с действующими криптографическими средствами должно быть обоснованно заказчиком и согласованно с Центром защиты информации и специальной связи ФСБ России.

3. В средствах криптографической защиты информации, предназначенных для защиты информации, не содержащей сведений, составляющих государственную тайну, техническое задание на разработку которых утверждено после 1 июня 2019 года, в случае необходимости использования блочного шифра для обеспечения конфиденциальности или целостности информации должна быть предусмотрена реализация алгоритма шифрования информации в соответствии с ГОСТ 34.12-2018 и ГОСТ 34.13-2018 хотя бы по одному из определяемых стандартами вариантов.

  • Справочная информация
    • Информация о способах связи с ФСБ России
    • Информация о способах связи с территориальными органами ФСБ России
    • Контактные данные Пограничной службы ФСБ России
    • Отделы по административным округам
    • Служба и учеба в ФСБ России
      • Порядок поступления на службу
      • Основания для отказа в зачислении
      • Нормативные требования
      • Перечень образовательных организаций. Порядок приема
      • Социальное обеспечение военнослужащих органов безопасности
      • Перечень изданий, на основе материалов Центрального архива ФСБ России
      • Нормативные правовые акты
      • Информационно-разъяснительные материалы
      • Сведения о признании судом недействующими нормативных правовых актов ФСБ России
      • Судебный и административный порядок обжалования нормативных правовых актов, решений, действий (бездействия) ФСБ России, её территориальных органов и их должностных лиц
      • Единый федеральный список организаций, в том числе иностранных и международных организаций, признанных в соответствии с законодательством Российской Федерации террористическими
      • Проекты ведомственных актов
      • Заявление участников XVIII Совещания руководителей спецслужб, органов безопасности и правоохранительных органов
      • Коммюнике XVIII Совещания руководителей спецслужб, органов безопасности и правоохранительных органов
      • Комиссия по сотрудничеству в сфере предварительного следствия при Совете руководителей органов безопасности и специальных служб государств — участников Содружества Независимых Государств
      • Комментарии официальных представителей ФСБ
      • Комментарии официальных представителей УФСБ
      • Выступления руководства
      • Интервью и публикации по истории отечественных органов безопасности
      • Средства массовой информации о ФСБ России
      • История создания
      • Краткие биографии руководителей
      • Дайджесты книг
      • Авторские публикации
      • Органы безопасности в годы Великой Отечественной войны
      • Юбилей Андропова
      • Проект ежемесячного публицистического и литературно-художественного журнала «Пограничник» — «Портрет ветерана Великой Отечественной войны»
      • Архивные материалы
        • ДИВЕРСИОННО-РАЗВЕДЫВАТЕЛЬНЫЕ ГРУППЫ УНКВД МУРМАНСКОЙ ОБЛАСТИ (1941–1942)
        • ДЕЯТЕЛЬНОСТЬ СОВЕТСКИХ ОРГАНОВ БЕЗОПАСНОСТИ ПО ДОКУМЕНТИРОВАНИЮ ПРЕСТУПЛЕНИЙ НЕМЕЦКО-ФАШИСТСКИХ ОККУПАНТОВ
        • «ВАРЯГИ» ФЮРЕРА
        • Докладная записка № 841/А начальника ГУКР «Смерш» НКО СССР в СНК СССР и НКВД СССР о зверствах японских оккупантов в отношении советских граждан
        • РАЗВЕДЫВАТЕЛЬНО-ДИВЕРСИОННАЯ ДЕЯТЕЛЬНОСТЬ УПРАВЛЕНИЯ НКВД СССР ПО ОРЛОВСКОЙ ОБЛАСТИ ЗА ЛИНИЕЙ ФРОНТА. СЕНТЯБРЬ–ОКТЯБРЬ 1941 ГОДА
        • Рассекреченные документы о преступлениях частей Вермахта против мирного населения СССР
        • ТАЙНЫ ЯПОНСКОЙ “БАРБАРОССЫ”
        • ДЕЯТЕЛЬНОСТЬ СОВЕТСКИХ ОРГАНОВ ГОСБЕЗОПАСНОСТИ ПО ДОКУМЕНТИРОВАНИЮ ПРЕСТУПЛЕНИЙ НЕМЕЦКО-ФАШИСТСКИХ ОККУПАНТОВ НА ТЕРРИТОРИИ КАЛИНИНСКОЙ ОБЛАСТИ, РОЗЫСКУ НАЦИСТСКИХ ПРЕСТУПНИКОВ И ИХ ПОСОБНИКОВ
        • РАЗВЕДЫВАТЕЛЬНО-ДИВЕРСИОННАЯ ДЕЯТЕЛЬНОСТЬ УПРАВЛЕНИЯ НКВД ПО ТУЛЬСКОЙ ОБЛАСТИ В ГОДЫ ВЕЛИКОЙ ОТЕЧЕСТВЕННОЙ ВОЙНЫ
        • О ЗАФРОНТОВОЙ ДЕЯТЕЛЬНОСТИ ОРГАНОВ НКВД – НКГБ СССР В ГОДЫ ВЕЛИКОЙ ОТЕЧЕСТВЕННОЙ ВОЙНЫ
        • СЛЕДСТВИЕМ ПО ДЕЛУ УСТАНОВЛЕНО.
        • «ФЕЙК» ИЗ ПРОШЛОГО – РАССЕКРЕЧЕННЫЙ АРХИВНЫЙ ДОКУМЕНТ 1945 ГОДА ОТРАЖАЕТ ЭПИЗОД НЕОБЪЯВЛЕННОЙ ИНФОРМАЦИОННОЙ ВОЙНЫ США ПРОТИВ СССР
        • ФСБ РОССИИ РАССЕКРЕТИЛА АРХИВНЫЕ ДОКУМЕНТЫ О ПОДВИГАХ ЗАФРОНТОВЫХ АГЕНТОВ ОРГАНОВ ВОЕННОЙ КОНТРРАЗВЕДКИ «СМЕРШ»
        • АРХИВНЫЕ ДОКУМЕНТЫ ОРГАНОВ КОНТРРАЗВЕДКИ «СМЕРШ» НКО СССР О ЗВЕРСТВАХ ПОСОБНИКОВ НЕМЕЦКО-ФАШИСТСКИХ ЗАХВАТЧИКОВ В ОРЛОВСКОЙ ОБЛАСТИ В 1942 ГОДУ
        • ФСБ РОССИИ РАССЕКРЕТИЛА ДОКУМЕНТЫ ИЗ СЛЕДСТВЕННОГО ДЕЛА НА ЛИЧНОГО ПИЛОТА ГИТЛЕРА ГАНСА БАУРА
        • «СМЕРШ»: ВКЛАД В ПОБЕДУ
        • ФСБ РОССИИ ПУБЛИКУЕТ ДОКУМЕНТЫ О ПРЕСТУПЛЕНИЯХ ЛАТВИЙСКИХ ПОСОБНИКОВ НАЦИСТСКОЙ ГЕРМАНИИ
        • ФСБ РОССИИ ОПУБЛИКОВАЛА АРХИВНЫЕ ДОКУМЕНТЫ О ПОСОБНИЧЕСТВЕ УКРАИНСКИХ НАЦИОНАЛИСТОВ СПЕЦСЛУЖБАМ ГИТЛЕРОВСКОЙ ГЕРМАНИИ
        • АРХИВНЫЕ ДОКУМЕНТЫ О БОМБАРДИРОВКАХ СТАЛИНГРАДА ЛЕТОМ И ОСЕНЬЮ 1942 ГОДА
        • ДОКУМЕНТЫ НАРКОМАТА ГОСБЕЗОПАСНОСТИ СССР О ГЕНОЦИДЕ ПОЛЯКОВ БАНДЕРОВСКИМИ БАНДАМИ НА ВОЛЫНЕ
        • АРХИВНЫЕ ДОКУМЕНТЫ ОБ УЧАСТИИ ОПЕРАТИВНЫХ ГРУПП 4-ГО (ЗАФРОНТОВОГО) УПРАВЛЕНИЯ НКГБ СССР В СЛОВАЦКОМ НАЦИОНАЛЬНОМ ВОССТАНИИ
        • КРОВАВЫЙ СЛЕД ПОЛЬСКИХ НАЦИОНАЛИСТОВ В ГОДЫ ВТОРОЙ МИРОВОЙ ВОЙНЫ
        • РАССЕКРЕЧЕННЫЕ АРХИВНЫЕ ДОКУМЕНТЫ О ПРЕСТУПЛЕНИЯХ БОЕВИКОВ ПОЛЬСКОЙ «АРМИИ КРАЙОВОЙ» ПРОТИВ МИРНОГО УКРАИНСКОГО НАСЕЛЕНИЯ НА ВОЛЫНИ В 1944–1945 ГОДАХ
        • ДЕЯТЕЛЬНОСТЬ СОВЕТСКИХ ОРГАНОВ ГОСБЕЗОПАСНОСТИ ПО ДОКУМЕНТИРОВАНИЮ ПРЕСТУПЛЕНИЙ НЕМЕЦКО-ФАШИСТСКИХ ОККУПАНТОВ НА ТЕРРИТОРИИ ВОЛОКОЛАМСКОГО РАЙОНА МОСКОВСКОЙ ОБЛАСТИ, РОЗЫСКУ НАЦИСТСКИХ ПРЕСТУПНИКОВ И ИХ ПОСОБНИКОВ
        • АРХИВНЫЕ МАТЕРИАЛЫ УПРАВЛЕНИЯ КОНТРРАЗВЕДКИ «СМЕРШ» 1-ГО УКРАИНСКОГО ФРОНТА, ВОСПОМИНАНИЯ УЗНИКА НЕМЕЦКОГО ЛАГЕРЯ СМЕРТИ «ОСВЕНЦИМ»
        • ДЕЯТЕЛЬНОСТЬ СОВЕТСКИХ ОРГАНОВ БЕЗОПАСНОСТИ ПО ДОКУМЕНТИРОВАНИЮ ПРЕСТУПЛЕНИЙ НЕМЕЦКО-ФАШИСТСКИХ ОККУПАНТОВ В ПЕРИОД СТАЛИНГРАДСКОЙ БИТВЫ
        • ДОКУМЕНТЫ ОБ УЧАСТИИ ЛИТОВСКИХ ПОСОБНИКОВ НАЦИСТСКОЙ ГЕРМАНИИ В МАССОВЫХ УБИЙСТВАХ МИРНОГО НАСЕЛЕНИЯ НА ОККУПИРОВАННОЙ ТЕРРИТОРИИ СССР.
        • Документы Главного управления контрразведки «СМЕРШ» НКО СССР о немецком пересыльном лагере военнопленных «Дулаг-205» у села Алексеевка под Сталинградом
        • ПОСТАНОВЛЕНИЕ СОВЕТА НАРОДНЫХ КОМИССАРОВ СССР О СОЗДАНИИ ГЛАВНОГО УПРАВЛЕНИЯ КОНТРРАЗВЕДКИ «СМЕРШ» НКО СССР И ПРИЛОЖЕНИЕ К НЕМУ ОБ ОРГАНИЗАЦИОННО-ШТАТНОЙ СТРУКТУРЕ
        • АРХИВНЫЕ МАТЕРИАЛЫ О ПОСЛЕДНИХ ДНЯХ ГИТЛЕРА В РЕЙХСКАНЦЕЛЯРИИ
        • АРХИВНЫЕ ДОКУМЕНТЫ О ЛИКВИДАЦИИ ОРГАНАМИ ГОСУДАРСТВЕННОЙ БЕЗОПАСНОСТИ НЕМЕЦКИХ ДИВЕРСАНТОВ ОСЕНЬЮ 1942 ГОДА
        • УНИКАЛЬНЫЕ ДОКУМЕНТЫ О СТАЛИНСКОМ СУДЕБНОМ ПРОЦЕССЕ НАД НЕМЕЦКО-ФАШИСТСКИМИ ПРЕСТУПНИКАМИ 1947 ГОДА
        • Показания свидетелей злодеяний над несовершеннолетними на предприятиях немецкого концерна Круппа
        • «Национал-социализм мог означать только войну. »
        • К 80-летию сражения на Курской дуге
        • Документы о деятельности органов безопасности по розыску на освобожденной территории Латвийской ССР пособников нацистской Германии — членов латышской националистической организации «Айзсарги», участвовавших в преступлениях против мирного населения
        • Преступления нацистов и их пособников в Сталино
        • Ф.Э. Дзержинский и органы Всероссийской чрезвычайной комиссии в борьбе с беспризорностью в советской России
        • Зайцев Федор Федорович
        • Коваленко Григорий Яковлевич
        • Конохов Сергей Андреевич
        • Афонин Александр Андреевич
        • Бирюков Леонид Петрович
        • Филиков Георгий Яковлевич
        • Сапунов Павел Михайлович
        • Смирнов Михаил Николаевич
        • Князев Валентин Иванович
        • Силаев Павел Михайлович
        • Субачев Василий Ефимович
        • Шелудченко Михаил Емельянович
        • Бабушкин Максим Петрович
        • Беляев Махмут Хайрутдинович
        • Кузнецов Сергей Александрович
        • Борисов Анатолий Дмитриевич
        • Полунин Михаил Павлович
        • Рюмин Георгий Иванович
        • Сафьянов Пётр Васильевич
        • Ткаченко Иван Антонович
        • Архив премий
        • 2008 год
        • 2009 год
        • 2010 год
        • 2011 год
        • 2012 год
        • 2013 год
        • 2014 год
        • 2015 год
        • 2016 год
        • 2017 год
        • 2018 год
        • 2019 — 2020 гг.
        • Видеоматериалы
        • Фотоматериалы
          • К 145-летию со дня рождения Ф.Э.Дзержинского
          • Подробная информация

          Телефон доверия:
          (495) 224-2222 (круглосуточно)

          107031, г.Москва,
          ул.Большая Лубянка, дом 1

          Версия для печати

          • Справочная информация
          • История
          • Советы профессионалов
          • Государственный контроль (надзор)
          • Премия ФСБ России
          • Официальная символика ФСБ России
          • ФСБ России комментирует
          • Нормативные правовые акты
          • Пограничная служба ФСБ России
          • Международное сотрудничество
          • Научно-техническое сотрудничество
          • СМИ, учреждённые ФСБ России
          • ФСБ России в зеркале прессы
          • Территориальные органы ФСБ России
          • Мультимедиа
          • Карта сайта

          © Федеральная служба безопасности Российской Федерации, 1999 — 2023 г. При использовании материалов ссылка на сайт ФСБ России обязательна.

          Анализ алгоритма ГОСТ 28147-89: поиск слабых блоков Текст научной статьи по специальности «Математика»

          СИММЕТРИЧНЫЕ АЛГОРИТМЫ ШИФРОВАНИЯ / АНАЛИЗ СТОЙКОСТИ / СЕТЬ ФЕЙСТЕЛЯ / ГОСТ 28147-89 / РАУНДОВЫЕ КЛЮЧИ ШИФРОВАНИЯ / БЛОК ЗАМЕНЫ / ЛИНЕЙНЫЙ КРИПТОАНАЛИЗ / GOST / S-BOX / SECRET KEY / LINEAR CRYPTANALYSIS / PROBABILITY

          Аннотация научной статьи по математике, автор научной работы — Бабенко Людмила Климентьевна, Ищукова Евгения Александровна

          Рассмотрено влияние S-блоков замены на устойчивость алгоритма шифрования ГОСТ 28147-89 (далее по тексту ГОСТ) к методу линейного криптоанализа . Представлен детальный, программно ориентированный универсальный алгоритм поиска слабых блоков замены по отношению к методу линейного криптоанализа . Показана возможность построения эффективных линейных статистических аналогов для упрощенной версии алгоритма ГОСТ, содержащего слабые S-блоки. Данное исследование направлено на предотвращение использования слабых блоков замены для тех алгоритмов блочного шифрования, в которых данные элементы не являются фиксированными. Работа разработанного алгоритма поиска слабых блоков была опробована на примере анализа блоков замены для алгоритма шифрования ГОСТ 28147-89 . Применение разработанного алгоритма позволяет без труда обнаружить большое число ослабленных блоков замены , использование которых может значительно ослабить стойкость используемого алгоритма шифрования. Использование данного алгоритма может быть полезно для тех, кто пользуется данным шифром, но не владеет навыками криптоанализа.

          i Надоели баннеры? Вы всегда можете отключить рекламу.

          Похожие темы научных работ по математике , автор научной работы — Бабенко Людмила Климентьевна, Ищукова Евгения Александровна

          Использование слабых блоков замены для линейного криптоанализа блочных шифров
          Алгоритмы оценки стойкости методами алгебраического анализа
          Разработка алгоритма построения узлов замен алгоритма шифрования
          Дифференциальный криптоанализ алгоритма ГОСТ 28147-89

          Применение дифференциального и линейного криптоалгоритмов для анализа стойкости криптографических систем

          i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
          i Надоели баннеры? Вы всегда можете отключить рекламу.

          ANALYSIS OF ALGORITHM GOST 28147-89: RESEARCH OF WEAK S-BOXES

          This work is devoted to finding the influence of S-Boxes to resistance of GOST 28147-89 algorithm ( GOST ) against linear cryptanalysis. The universal algorithm for searching particular layouts of S-Boxes, which are vulnerable to linear cryptanalysis is presented. The possibility of building of efficient linear statistical analogs for simplified GOST with weak S-Boxes has been shown. This research is aimed to ensuring that certain arbitrary S-Box layouts are not weak when they are not fixed. Applicability of the presented method was tested by analyzing S-Boxes used in GOST . Application of the designed method made it possible to discover a number of weak S-Boxes, which make the overall cryptographic strength of GOST much lower.

          Текст научной работы на тему «Анализ алгоритма ГОСТ 28147-89: поиск слабых блоков»

          Раздел IV. Методы и средства криптографии и стеганографии

          Л.К. Бабенко, Е.А. Ищукова АНАЛИЗ АЛГОРИТМА ГОСТ 28147-89: ПОИСК СЛАБЫХ БЛОКОВ*

          Рассмотрено влияние S-блоков замены на устойчивость алгоритма шифрования ГОСТ 28147-89 (далее по тексту ГОСТ) к методу линейного криптоанализа. Представлен детальный, программно ориентированный универсальный алгоритм поиска слабых блоков замены по отношению к методу линейного криптоанализа. Показана возможность построения эффективных линейных статистических аналогов для упрощенной версии алгоритма ГОСТ, содержащего слабые S-блоки. Данное исследование направлено на предотвращение использования слабых блоков замены для тех алгоритмов блочного шифрования, в которых данные элементы не являются фиксированными. Работа разработанного алгоритма поиска слабых блоков была опробована на примере анализа блоков замены для алгоритма шифрования ГОСТ 28147-89. Применение разработанного алгоритма позволяет без труда обнаружить большое число ослабленных блоков замены, использование которых может значительно ослабить стойкость используемого алгоритма шифрования. Использование данного алгоритма может быть полезно для тех, кто пользуется данным шифром, но не владеет навыками криптоанализа.

          Симметричные алгоритмы шифрования; анализ стойкости; сеть Фейстеля; ГОСТ 28147-89; раундовые ключи шифрования; блок замены; линейный криптоанализ.

          L.K. Babenko, E.A. Ischukova

          ANALYSIS OF ALGORITHM GOST 28147-89: RESEARCH OF WEAK S-BOXES

          This work is devoted to finding the influence of S-Boxes to resistance of GOST 28147-89 algorithm (GOST) against linear cryptanalysis. The universal algorithm for searching particular layouts of S-Boxes, which are vulnerable to linear cryptanalysis is presented. The possibility of building of efficient linear statistical analogs for simplified GOST with weak S-Boxes has been shown. This research is aimed to ensuring that certain arbitrary S-Box layouts are not weak when they are not fixed. Applicability of the presented method was tested by analyzing S-Boxes used in GOST. Application of the designed method made it possible to discover a number of weak S-Boxes, which make the overall cryptographic strength of GOST much lower.

          GOST; S-Box; secret key; linear cryptanalysis; probability.

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

          Работа выполнена при поддержке грантов РФФИ №12-07-33007_мол_а_вед, № 12-07-00037-а.

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

          Наше исследование направлено на изучение стойкости к методу линейного криптоанализа алгоритма ГОСТ, определенного в качестве государственного стандарта в Российской Федерации. До сих пор в открытой печати имеется сравнительно мало информации о возможных уязвимостях данного шифра. Отличительной чертой алгоритма ГОСТ является использование в его структуре нефиксированных блоков замены. Предполагается, что при любом заполнении S-блоков тридцати двух раундов шифрования будет достаточно для того, чтобы противостоять таким мощным методам анализа, как линейный и дифференциальный криптоанализ. Долгое время считалось, что если оставлять S-блоки в секрете, то их можно рассматривать как дополнительный ключевой материал [2]. Однако в работе [3] предложен метод, применение которого позволяет достаточно просто восстановить значения S-блоков, используемых для шифрования данных. В настоящей работе предлагается рассмотреть влияние блоков замены на устойчивость алгоритма ГОСТ к методу линейного криптоанализа. Для этого предлагается разработанный нами универсальный алгоритм поиска блоков, использование которых может значительно ослабить стойкость алгоритма ГОСТ. Исследование преследует две цели. Во-первых, необходимо получить инструмент для быстрого определения полного списка слабых блоков по отношению в линейному криптоанализу для исследования их влияния на стойкость ГОСТ. Во-вторых, при использовании нашего алгоритма можно легко получить полный список блоков, не рекомендованных к использованию для алгоритма ГОСТ, что может быть полезно для тех, кто пользуется данным шифром, но не владеет навыками криптоанализа.

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

          Метод линейного криптоанализа впервые предложен в начале 90-х годов XX века японским ученым М. Матсуи (Matsui). В работе [1] М. Матсуи показал, как можно осуществить атаку на алгоритм шифрования DES, сократив сложность анализа до 247. Существенным недостатком метода стала необходимость иметь в наличии большой объем данных, зашифрованных на одном и том же секретном ключе, что делало метод малопригодным для практического применения к вскрытию шифра. Однако, если предположить, что к аналитику в руки попал шифрованный текст, содержащий важные сведения, а также некий черный ящик (устройство или программа), который позволяет выполнить любое число текстов, зашифрованных с помощью известного алгоритма шифрования на секретном ключе, не раскрывая при этом самого ключа, то применение метода линейного криптоанализа становится вполне реальным. Многие алгоритмы шифрования, известные на момент опубликования работы [1], в последствии были проверены на устойчивость к этому методу и не все из них оказались достаточно стойкими и, как следствие, потребовали доработки.

          Любой алгоритм шифрования в самом общем виде можно представить как некоторую функцию E, зависящую от входного сообщения Х, секретного ключа К и возвращающую шифрованное сообщение Y:

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

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

          Так как уравнения, получаемые в ходе анализа криптоалгоритма, являются вероятностными, то их называют линейными статистическими аналогами. Линейным статистическим аналогом нелинейной функции шифрования (1) называется величина Р, равная сумме по модулю два скалярных произведений входного вектора Х, выходного вектора Y и вектора секретного ключа К соответственно с двоичными векторами а, в и у, имеющими хотя бы одну координату равную единице:

          в том случае, если вероятность того, что Р=0 отлична от 0,5 (Р(Р=0)^0,5).

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

          где р — вероятность, с которой выполняется линейный аналог.

          Отклонение определяет эффективность линейного статистического аналога. Чем отклонение больше, тем выше вероятность успешного проведения анализа. Фактически отклонение показывает насколько вероятность статистического аналога отдалена от значения р = 0,5.

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

          на одном и том же секретном ключе. Определить ключ (или некоторые биты ключа) путем анализа статистических данных с помощью линейных аналогов.

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

          Алгоритм. Пусть N — число всех открытых текстов и Т — число открытых текстов, для которых левая часть линейного статистического аналога равна 0. Рассмотрим два случая.

          1. Если Т> N/2, то в этом случае число открытых текстов, для которых левая часть аналога равна нулю, больше половины, то есть в большинстве случаев в левой части аналога появляется значение, равное нулю, то

          а) если вероятность этого линейного статистического аналога р >1/2, это говорит о том что в большинстве случаев правая и левая части аналога равны, а значит левая часть аналога, содержащая биты ключа, равна 0.

          а) если вероятность этого линейного статистического аналога р >1/2, это говорит о том что в большинстве случаев правая и левая части аналога равны, а значит левая часть аналога, содержащая биты ключа, равна 1.

          На сегодняшний день нет достаточно подробных исследований стойкости алгоритма шифрования ГОСТ к методу линенйого криптоанализа. Однако в книге Б. Шнайера [4] говорится о том, что за счет большого числа раундов шифрования линейный криптоанализ практически не применим к полнораундовому альгоритму ГОСТ.

          Описание алгоритма ГОСТ. Алгоритм шифрования ГОСТ 28147-89 является государственным стандартом Российской Федерации. Его использование обязательно для шифрования данных в государственных организациях РФ. Алгоритм ГОСТ является симметричным блочным шифром, построенным по схеме Фейсте-ля (Feistel). На вход алгоритма поступает 64-битовый блок данных, который под воздействием 256-битового ключа преобразуется в 64-битовый блок шифрованных данных. В каждом раунде правая часть шифруемого сообщения поступает на вход функции F, где преобразуется с использованием трех криптографических операций: сложения данных с раундовым подключом по модулю 232, замена данных с использованием S-блоков, циклический сдвиг влево на 11 позиций. Выход функции Б складывается по модулю 2 с левой частью шифруемого сообщения, после чего правая и левая части меняются местами. Алгоритм содержит 32 раунда, в последнем раунде шифрования правая и левая части местами не меняются. Структура алгоритма ГОСТ приведена на рис. 1.

          В алгоритме шифрования ГОСТ используется 8 S-блоков, которые преобразуют 4 бита на входе в S-блок в 4 бита на выходе. В отличие от большинства алгоритмов шифрования ГОСТ не имеет фиксированных блоков замены и может использовать любые варианты блоков.

          Секретный ключ шифрования содержит 256 битов и представляется в виде последовательности из восьми 32-битовых слов: К1, К2, К3, К4, К5, К6, К7, К8. В каждом раунде шифрования в качестве раундового подключа используется одно из этих 32-битовых слов. При определения раундового подключа руководствуются следующим принципом: с 1 по 24 раунды используются последовательно К1, К2, К3, К4, К5, К6, К7, К8, К1, К2 и т.д. С 25 по 32 раунды: К8, К7, К6, К5, К4, К3, К2, К1.

          Таким образом, получается, что в первом и последнем раундах используется один и тот же раундовый подключ К1.

          Несмотря на то, что алгоритм ГОСТ является «старичком» в криптографии и насчитывает более 20 лет, в настоящее время можно найти сравнительно мало литературы, посвященной вопросам анализа данного алгоритма шифрования. Отчасти это связано с тем, что первое время алгоритм был засекречен и стал доступен широкой общественности только после 1994 г. Кроме того, до появления работы [3] считалось, что S-блоки могут служить дополнительным ключом, что существенно затрудняло проведение анализа.

          Функция Р(раунд і ) Вход

          Секретный ключ, 256 битов:

          Рис. 1. Алгоритм шифрования ГОСТ

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

          Очень часто изучение слабых свойств алгоритма шифрования начинают с исследования его упрощенных моделей [5]. Для алгоритма ГОСТ помимо использования нефиксированных S-блоков выделяют еще два момента, которые затрудняют проведение анализа алгоритма: это использование операции целочисленного сложения по модулю 232, которая используется для сложения данных с секретным ключом, и использование раундовых подключей в обратном порядке для последних 8 раундов шифрования. В [5] приводятся результаты анализа упрощенной версии алгоритма ГОСТ. Для алгоритма GOST-H изменен порядок следования раун-довых подключей в последних 8 раундах, то есть они также используются последовательно с К1 по К8. Показано, что модифицированный алгоритм гораздо слабее исходного и обладает рядом слабых ключей. Вариант упрощенной версии алгоритма ГОСТ, в которой операция целочисленного сложения заменена на операцию сложения по модулю два и количество раундов сокращено до 20, рассмотрен известными специалистами в области криптографии А. Бирюковм и Д. Вагнером [7].

          Алгоритм поиска слабых блоков. Алгоритм ГОСТ содержит 8 S-блоков. При этом сами блоки не являются фиксированными. То есть теоретически считается, что могут быть использованы блоки замены, сформированные случайным образом. Криптографическую стойкость алгоритму должно обеспечить достаточно большое число раундов шифрования (32 раунда). Долгое время считалось, что если держать S-блоки в секрете, то можно рассматривать их как дополнительный ключевой материал. Однако в работе [5] было показано, что S-блоки, используемые в алгоритме шифрования, можно достаточно просто восстановить.

          В связи с этим разумно рассмотреть слабые 8-блоки для алгоритма ГОСТ и оценить степень сложности атаки на основе линейного криптоанализа при их использовании.

          Итак, какие же блоки необходимо считать слабыми и как их получить? Для того, чтобы ответить на этот вопрос, необходимо вспомнить о двух вещах. Во-первых, итоговая вероятность аналога будет получена, исходя из значения вероятностей для каждого S-блока, вовлеченного в процесс построения аналога. Так как в алгоритма ГОСТ используется 32 раунда шифрования, то для получения максимальной вероятности аналога желательно производить его построение так, чтобы в каждом раунде было задействовано минимальное количество S-блоков, в идеале это должен быть всего один S-блок. Во-вторых, необходимо вспомнить, что в качестве перемешивания битов в каждом раунде используется операция циклического сдвига влево на 11 позиций. Таким образом получается, что биты на выходе одного блока поступают входы двух блоков в следующем раунде. Кроме того, необходимо отметить, что слабые блоки могут быть организованы таким образом, что будут позволять конструировать линейные аналоги, вероятность которых равна нулю или единице. Таким образом, можно предположить, что слабыми блоками будут являться те блоки, которые будут позволять строить линейные аналоги для значений входов и выходов, содержащих минимальное количество единиц, то есть для значений 1, 2, 4, 8. Также слабыми будут являться те блоки, которые для любого входного значения позволят построить аналог, вероятность которого будет равна нулю или единице.

          Определив критерии для отбора слабых S-блоков, мы задумались о том, каким образом нам лучше всего попробовать получить эти самые блоки. Так как на вход S-блока алгоритма ГОСТ поступает 4 бита, которые заменяются также на 4 бита, то всего возможно 16! различных комбинаций таких блоков, что соответствует примерно 2442. Перебор такого количества блоков весьма трудоемок и длителен, даже при использовании распределенных многопроцессорных вычислений. Вариант случайной генерации блока и его последующей оценки нами также был отвергнут, как не позволяющий получить полный набор необходимых нам блоков за приемлемое время. Вместо этого нами был разработан новый универсальный алгоритм поиска слабых блоков по отношению к линейному анализу. Рассмотрим его более детально.

          Для начала вспомним, что для алгоритма ГОСТ на вход каждого блока замены поступает часть преобразованного входного сообщения Х, сложенная по модулю два с частью секретного ключа. Таким образом, получается, что биты сообщения Х и биты ключа К неразрывно связаны, а значит к ним всегда должен быть применен один и тот же вектор, например вектор а. В связи с этим мы можем преобразовать выражение (1) для линейного статистического аналога к виду:

          По определенным ранее условиям, нам необходимо, чтобы при составлении аналога было задействовано как можно меньше блоков. Поэтому, мы предлагаем рассматривать такой вариант, когда при составлении аналога будет задействован всего один бит входного сообщения X (и соответствующий ему бит ключа К. Далее мы будем опускать значение битов ключа К, полагая что оно неразрывно связано со значением используемого бита значения Х) и всего один бит сообщения Y. И дальше рассматривать все возможные комбинации Хі ©У] для і=1. 4 и для j=1. 4. Так как нам необходимо рассмотреть все возможные комбинации блоков замен, а мы заранее не знаем какая пара значений вход-выход позволит нам получить искомый результат, то для каждого входа мы составляем таблицу размерностью 16х24. Всего у нас будет 16 таких таблиц, по одной таблице для каждого входа. В каждую таблицу заносим биты одного входа, все возможные биты выхода, а также все рассматриваемые комбинации Хі © У] для значений і=1. 4; j=1. 4. В табл. 1 приведен пример построения такой таблицы для первого рассматриваемого входа Х = 0.

          После того как составлено 16 таблиц, можно приступить к их обработке. Мы будем оперировать следующими значениями.

          Nmin — значение, которое соответствует искомому минимальному количеству линейных аналогов, выполняемых с вероятностью 0 или 1.

          Combi — очередное возможные сочетание Nmin элементов из 16 возможных (взятое из ячеек в столбцах под номерами 9 — 24). Всего таких рассматриваемых сочетаний будет

          Qvalue — значение, которое отражает чему должно быть равно значение Q для каждой из позиции в сочетании Combi

          Для того, чтобы стало немного понятнее, рассмотрим как будут соотноситься эти три значения между собой на примере табл. 1. Пусть Nmin = 5; Qvalue = 12. Например, для первой строки табл. 1, соответствующей паре (X,Y)=(0000, 0000) ни одно из сочетаний ячеек не даст значения Qvalue = 01100. То же самое справедливо и для последней строки табл. 1, соответствующей паре (X,Y)=(1111, 1111). Для всех остальных таблиц возможно получить сочетания ячеек в строке такое, которое будет соответствовать значению Qvalue = 01100. На рис. 2 для примера представлен один из вариантов (но не единственно возможный. ) комбинаций ячеек для строк 2 и 8.

          Если во всех других таблицах сочетание данных ячеек таблицы совпадет со значением Qvalue, и при этом не произойдет перекрытие значений выходов, то значения X-Y соответствующей строки в каждой из 16 таблиц будут отражать работу искомого блока замены. Таким образом, для нахождения всех возможных вариантов заполнения блоков замены, отвечающих условиям слабого блока, необходимо для каждого значения Qvalue перебрать все возможные комбинации ячеек Comb.

          Nmin = б Qvalue=1210= 011002

          В общем виде вышеописанный алгоритм сводится к выполнению следующих шагов:

          1. Инициализация значения Nmin;

          3. Определение очередного значения Comfy;

          4. Определение строк в каждой из 16 таблиц, для которых ячейки комбинации строк совпадают со значением Qvalue;

          5. Если в каждой таблице есть строка, для которой Comb = Qvalue и при этом нет перекрытия значений выходов (то есть номера выбранных строк в каждой из 16 анализируемых таблиц разные), то искомая таблица найдена;

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

          Результаты экспериментов. Алгоритм, представленный выше, был реализован и опробован на практике. Полный анализ выполняется в течение нескольких минут (все исследования проводились на процессоре Intel Celeron M CPU 530 1.73 GHz, RAM 1007Mb). В ходе эксперимента варьировался критерий слабого блока по минимальному количеству экстремумов, которое необходимо найти. Результаты экспериментов представлены в табл. 2.

          Номер эксперимента Минимальное количество экстремумов Количество найденных слабых блоков

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

          я „ > р > ? © © © і © © з > © й © © * р © © й > © а © ©

          0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

          0 0 0 0 0 0 0 1 0 0 і [о! і; 0 0 м 1) 0 і , 11 0 0 0 1

          0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1

          0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

          0 0 0 0 0 1 0 I 0 0 ] 0 0 0 1 0 1

          0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 1 ] 0 ї 1

          0 0 0 0 0 1 1 0 1 1 SL 1 і а. ft,. 1 1 1 1

          0 0 0 0 0 1 1 1 0 1 1 1′ ,oJ J< ,0 ,1 і .°к 1 1 11 *0.! 1 1 1

          0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0

          0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 0 1

          0 0 0 0 1 0 1 1 0 1 1 0 1 0 І 0 1 1 0 1

          i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

          0 0 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

          0 0 0 0 1 L 1 I 1 1 0 0 І 1 1 1

          0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 І 1 1 1 1

          0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1

          0 0 0 0 1 1 1 ] ] I 1 1 1 ] 1 1 І І 1 ] 1 1 1 1

          Рис. 2. Анализ таблиц

          Для более наглядного примера, рассмотрим одну из таблиц замены (табл. 3), полученную в результате использования предложенного нами алгоритма анализа.

          Слабый блок замены, определенный в результате работы предложенного

          Вход 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

          Выход 15 7 11 3 13 5 9 1 14 6 10 2 12 4 8 0

          Блок замены в табл. 3 имеет таблицу анализа, отражающую возможность построения линейных аналогов для линейного криптоанализа, предствленную в табл. 4.

          Таблица анализа полученного S-блока

          1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

          1 8 8 8 8 8 8 8 0 8 8 8 8 8 8 8

          2 8 8 8 0 8 8 8 8 8 8 8 8 8 8 8

          3 8 8 8 8 8 8 8 8 8 8 8 16 8 8 8

          4 8 0 8 8 8 8 8 8 8 8 8 8 8 8 8

          5 8 8 8 8 8 8 8 8 8 16 8 8 8 8 8

          6 8 8 8 8 8 16 8 8 8 8 8 8 8 8 8

          7 8 8 8 8 8 8 8 8 8 8 8 8 8 0 8

          8 0 8 8 8 8 8 8 8 8 8 8 8 8 8 8

          9 8 8 8 8 8 8 8 8 16 8 8 8 8 8 8

          10 8 8 8 8 16 8 8 8 8 8 8 8 8 8 8

          11 8 8 8 8 8 8 8 8 8 8 8 8 0 8 8

          12 8 8 16 8 8 8 8 8 8 8 8 8 8 8 8

          13 8 8 8 8 8 8 8 8 8 8 0 8 8 8 8

          14 8 8 8 8 8 8 0 8 8 8 8 8 8 8 8

          15 8 8 8 8 8 8 8 8 8 8 8 8 8 8 16

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

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

          Дальнейшее исследование в данной области будет направлено на решение проблемы быстрого построения линейных аналога при использовании различных наборов S-блоков, на комплексную оценку устойчивости алгоритма шифрования ГОСТ и других блочных шифров, малоизученных по отношению к линейному криптоанализу.

          1. Matsui M. Linear Cryptanalysis Method for DES Cipher, Advances in Cryptology -EUROCRYPT’93, Springer-Verlag, 1998. — 386 p.

          2. Popov V., Kurepkin I., Leontiev S. Additional Cryptographic Algorithms for Use with GOST 28147-89, GOST R 34.Ю-94, GOST R 34.Ю-2оо1, and GOST R 34.11-94 Algorithms. — January 2ооб. — http://www.ietf.org/rfc/rfc4357.

          3. Saarien M.-J. A Chosen Key Attack Against the Secret S-boxes of GOST // http://www.rn.-js.com — Helsinki University of Technology, Finland.

          4. Schneier B. Applied Cryptography, Protocols, Algorithms and Source Code in C (Second Edition). John Wiley and Sons, Inc. 1996.

          5. Oreku G.S., Li J., Pazynyuk T., Mtenzi F.J. Modified S-box to Archive Accelerated GOST // http://paper.ijcsns.org, International Journal of Computer Science and Network Security. — June 2оо7. — Vol. 7, № 6.

          6. Biham E., Shamir A. Differential Cryptanalysis of DES-like Cryptosystems, Extended Abstract, Crypto^, Springer-Velgar, 1998. — P. 2.

          7. BirukovA., WagnerD. Advanced Slide Attacks // http://citeseer.ist.psu.edu.

          8. Babenko L.K., Ishchukova E.A., Maro E.A. Theory and Practice of Cryptography Solutions for Secure Information Sysmems. GOST Encryption Algorithm and Approaches to its Analysis. IGI Global book series Advances in Information Security, Privacy, and Ethics (AISPE) Book Series, USA, 2о13. — Р. 34-62.

          9. Babenko L.K., Ishchukova E.A., Maro E.A. Research about Strength of GOST 28147-89 Encryption Algorithm. — Proceedings of the 5th international conference on Security of information and networks (SIN 2о12). — ACM, New York, NY, USA, 2о12. — Р. 138-142.

          10. Babenko L.K., Ishchukova E.A. Differential Analysis of GOST Encryption Algorithm. — Proceedings of the 3rd International Conference of Security of Information and Networks (SIN 2оЮ). — ACM, New York, NY, USA, 2о1о. — P. 149-157.

          Статью рекомендовал к опубликованию д.т.н., профессор Я.Е. Ромм.

          Бабенко Людмила Климентьевна — Южный федеральный университет; e-mail: blk@fib.tsure.ru; 347928, г. Таганрог, ул. Чехова, 2, корпус «И»; тел.: 88634312018; кафедра безопасности информационных технологий; профессор.

          Ищукова Евгения Александровна — e-mail: jekky82@mail.ru; тел.: 88634371905; кафедра безопасности информационных технологий; доцент.

          Babenko Lyudmila Klimentevna — Southern Federal University; e-mail: blk@fib.tsure.ru; Block “I”, 2, Chehov street, Taganrog, 347928, Russia; phone: +78634312о18; the department of security of information technologies; professor.

          Ischukova Evgeniya Aleksandrovna — e-mail: jekky82@mail.ru; phone: +786343719о5; the department of security of information technologies; associate professor.

          Л.К. Бабенко, Е.А. Ищукова

          ИСПОЛЬЗОВАНИЕ СЛАБЫХ БЛОКОВ ЗАМЕНЫ ДЛЯ ЛИНЕЙНОГО КРИПТОАНАЛИЗА БЛОЧНЫХ ШИФРОВ*

          Работа является продолжением исследований влияния используемых слабых S-блоков на возможность проведения атаки с помощью метода линейного криптоанализа для алгоритма шифрования ГОСТ 28147-89. Ранее авторами статьи разработан универсальный алгоритм поиска блоков замены, ослабленных по отношению к методу линейного криптоа-

          Работа выполнена при поддержке грантов РФФИ №12-о7-31120_мол_а, №12-о7-33007_мол_а_вед, № 12-о7-ооо37-а.

          Российский стандарт шифрования данных ГОСТ 28147-89

          Алгоритм, о котором пойдет речь, был разработан в конце 1970-х годов группой советских криптографов во главе с И.А.Заботиным и первоначально предназначался для защиты совершенно секретной информации. В последующие годы гриф секретности снижался и, вскоре после регистрации в качестве государственного стандарта в 1989 году (ГОСТ 28147-89 «Система обработки информации. Защита криптографическая. Алгоритм криптографического преобразования»), шифр, будем называть его для краткости ГОСТ, стал общедоступным.

          ГОСТ является блочным шифром. Исходный двоичный текст разбивается на блоки длиной 64 бита. Первые 32 бита (младшие) шифруемого блока заносятся в регистр N1, оставшиеся 32 бита (старшие) – в регистр N2. После этого осуществляются 32 основных шага шифрования с помощью секретного ключа K. Ключ K имеет длину 256. Он разбивается на 8 последовательно идущих 32-разрядных подключей K0, K1. K7. Эти шаговые ключи размещаются в ключевом запоминающем устройстве (КЗУ). Для обслуживания 32 основных шифрошагов ключи (по одному на каждый шаг) три раза подаются в прямой последовательности K0 K1, . K7 и один раз – в обратной K7, K6, . K0.

          Основной шаг шифрования состоит в следующем:

          1. производится сложение по модулю 232 содержимого регистра N1 с очередным шаговым ключом из КЗУ;
          2. 32-разрядный результат сложения X разбивается на 8 последовательно идущих 4-разрядных блоков X0, X1, . , X7, каждый из которых преобразуется в новый 4-разрядный блок по таблице замены S, после чего выходные блоки последовательно объединяются в один 32- разрядный блок;
          3. полученный блок циклически сдвигается на 11 позиций в сторону старших разрядов (влево);
          4. результат сдвига поразрядно складывается по модулю 2 с содержимым регистра N2;
          5. полученная сумма заносится в регистр N1, содержимое которого одновременно перемещается в регистр N2. На последнем, 32-м, шаге сумма заносится в регистр N2, а содержимое регистра N1 сохраняется.

          После 32 шагов работы алгоритма содержимое регистров N1 и N2 объединяется в единый 64-разрядный блок криптограммы, соответствующий исходному блоку открытого текста.

          Одним из основных моментов, обеспечивающих стойкость шифра, наряду с длиной ключа K, является подстановочный шифратор – таблица замены S, состоящая из 8 строк и 16 столбцов. Строки S0, S1, . , S7 таблицы называются узлами замены и каждая из них представляет собой некоторую перестановку чисел от 0 до 15. Упомянутые 4-разрядные блоки X0, X1, . , X7 поступают каждый на вход своего узла замены, соответственно S0, S1. S7. Блок Xi рассматривается как двоичная запись некоторого целого числа от 0 до 15. Это число определяет конкретное место в узле замены (строке) Si соответствующем Xi. Стоящее на этом месте число, в 4-разрядной двоичной записи, подается на выход шифратора S.

          Например, пусть блок X5=1001 поступает на вход таблицы замены S. Она отправит его в узел замены S5: В двоичной записи 1001 – это число 9. На девятом месте (счет начинается с 0) в строке S5 стоит число 6. Его двоичная 4-разрядная запись 0110 идет на выход таблицы замены. Определите, какой входной блок будет заменен узлом S5 на 1001, на 1111.

          Заметим, что, в отличие от DES, где все S-боксы представлены в явном виде, узлы замены в документации алгоритма ГОСТ не описаны, и приводимые в разных публикациях их примеры восходят к неофициальным данным.

          4 11 10 0 7 2 1 13 3 6 8 5 9 12 15 14

          После введения в США стандарта шифрования AES естественно возник вопрос о дальнейшей судьбе шифра ГОСТ. Предпринятые с этой целью исследования показали, что удобства в эксплуатации, криптостойкость и эффективность алгоритмов ГОСТ и AES вполне сопоставимы и, следовательно, в настоящее время нет достаточных оснований для замены шифра ГОСТ на новый стандарт шифрования.

          Третье пришествие ГОСТ 28147-89 или «Русская рулетка»

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

          С появлением ЭВМ, математики полностью оккупировали тему криптографии, цифровое представление данных их вотчина.

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

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

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

          Примером такого подхода является алгоритм симметричного шифрования «Кузнечик», реализовать его эффективно в программных кодах х86-64 невозможно.

          Сделаем все наоборот и посмотрим, что получится…

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

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

          Будем действовать осторожно, по принципу «Лучшее-враг хорошему», возьмем за основу «хорошее» — ГОСТ 28147-89. Затем по врачебному принципу «Не навреди» усилим его методами многопоточных вычислений.

          Что значит «усилить» говорилось в статье «Многопоточные криптографические алгоритмы», вот что было сделано конкретно:

          — Увеличен размер ключа до 256байт.
          — Увеличен размер блока данных до 256байт.
          — Улучшены статистические параметры шифротекста.

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

          Статистические характеристики шифротекста в постквантовую эпоху становятся основными параметрами, определяющими криптостойкость.

          Любые нарушения случайности это скрытые закономерности, которые криптографы могут свести к линейным функциям. А линейные функции любой сложности вскрываются квантовыми методами. Поэтому статистике уделялось основное внимание при разработке многопоточного алгоритма шифрования на основе ГОСТ 28147-89.

          Было сделано следующее:

          — Нелинейная операция подстановки тетрад заменена нелинейной операцией перестановки байт в блоке данных. Всего используется 16 фиксированных перестановок
          — В линейном преобразовании циклического сдвига внедрена нелинейная операция инвертирования групп бит.
          — Сеть Фейстеля модифицирована в кольцевую сеть собственного изготовления с сохранением базовых преобразований ГОСТ 28147-89. Это сделано для устранения обратимости преобразования.
          — Ввод ключей выполнен в виде обратимого криптографического преобразования перестановки бит.

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

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

          Модифицированная сеть Фейстеля работает в режиме необратимого гаммирования. Это гарантирует, что даже зная ключи и некоторую последовательность блоков гаммы невозможно вычислить значения блоков гаммы за пределами этой известной последовательности блоков.
          Для вычислений значений блока гаммы за пределами известной последовательности требуется провести вычисление из начальной точки гаммирования.

          Практическая реализация

          Пока все это было «сказкой» и благими пожеланиями, пора превратить их в «быль», и вот как она выглядит:

          Сначала главное, статистические параметры:

          ------------------------------------------------------------------------------ RESULTS FOR THE UNIFORMITY OF P-VALUES AND THE PROPORTION OF PASSING SEQUENCES ------------------------------------------------------------------------------ generator is ------------------------------------------------------------------------------ C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 P-VALUE PROPORTION STATISTICAL TEST ------------------------------------------------------------------------------ 6 12 15 10 9 14 4 5 11 14 0.122325 100/100 Frequency 5 6 15 12 11 13 9 9 11 9 0.494392 98/100 BlockFrequency 5 12 12 14 10 7 11 10 9 10 0.739918 100/100 CumulativeSums 6 9 14 11 10 13 8 7 14 8 0.574903 100/100 CumulativeSums 11 10 7 10 6 9 20 8 11 8 0.137282 100/100 Runs 12 11 6 8 12 12 10 13 6 10 0.759756 100/100 LongestRun 10 12 7 7 9 14 13 8 12 8 0.739918 98/100 Rank 16 10 9 5 8 10 7 12 10 13 0.455937 99/100 FFT 7 15 8 10 6 14 10 9 11 10 0.616305 100/100 NonOverlappingTemplate 9 10 10 11 13 9 6 11 8 13 0.897763 99/100 NonOverlappingTemplate 6 11 8 12 9 11 12 13 9 9 0.897763 100/100 NonOverlappingTemplate 8 6 5 12 10 12 9 16 12 10 0.401199 98/100 NonOverlappingTemplate 10 8 5 8 12 15 6 13 15 8 0.236810 100/100 NonOverlappingTemplate 11 9 6 12 6 8 13 7 12 16 0.350485 98/100 NonOverlappingTemplate 10 6 7 9 11 8 7 13 15 14 0.437274 97/100 NonOverlappingTemplate 8 6 7 17 13 12 11 9 8 9 0.366918 100/100 NonOverlappingTemplate 10 7 9 9 10 11 5 12 17 10 0.437274 99/100 NonOverlappingTemplate 7 8 13 7 17 6 8 11 6 17 0.055361 98/100 NonOverlappingTemplate 13 12 5 11 16 7 9 8 8 11 0.401199 99/100 NonOverlappingTemplate 12 8 10 8 14 5 7 13 13 10 0.534146 100/100 NonOverlappingTemplate 13 5 14 9 13 6 8 9 11 12 0.474986 99/100 NonOverlappingTemplate 11 9 9 10 11 7 7 15 11 10 0.851383 97/100 NonOverlappingTemplate 15 9 8 12 9 10 7 11 8 11 0.834308 98/100 NonOverlappingTemplate 10 13 6 10 13 7 8 11 10 12 0.816537 99/100 NonOverlappingTemplate 9 8 13 7 12 16 10 9 6 10 0.534146 98/100 NonOverlappingTemplate 14 14 7 13 6 8 10 6 10 12 0.437274 99/100 NonOverlappingTemplate 14 7 17 12 6 11 6 13 6 8 0.122325 98/100 NonOverlappingTemplate 13 8 10 5 12 11 9 6 10 16 0.383827 99/100 NonOverlappingTemplate 7 14 8 6 16 13 13 7 7 9 0.224821 97/100 NonOverlappingTemplate 9 10 11 13 7 9 10 15 9 7 0.779188 98/100 NonOverlappingTemplate 13 11 12 8 13 12 7 11 7 6 0.678686 99/100 NonOverlappingTemplate 8 13 12 4 9 10 8 16 13 7 0.262249 98/100 NonOverlappingTemplate 8 8 7 13 13 7 12 7 11 14 0.595549 99/100 NonOverlappingTemplate 15 13 12 5 10 7 7 9 13 9 0.419021 99/100 NonOverlappingTemplate 6 10 18 15 6 12 9 7 9 8 0.122325 100/100 NonOverlappingTemplate 11 12 10 10 8 9 7 11 10 12 0.983453 99/100 NonOverlappingTemplate 11 8 12 9 10 7 15 11 9 8 0.834308 100/100 NonOverlappingTemplate 12 7 10 6 10 13 4 10 18 10 0.129620 99/100 NonOverlappingTemplate 17 11 11 13 10 4 9 9 10 6 0.249284 98/100 NonOverlappingTemplate 9 7 14 16 12 10 9 7 7 9 0.474986 100/100 NonOverlappingTemplate 13 6 8 13 13 10 12 11 5 9 0.554420 100/100 NonOverlappingTemplate 8 12 11 8 12 14 8 11 8 8 0.867692 99/100 NonOverlappingTemplate 12 13 11 6 11 9 8 9 12 9 0.897763 99/100 NonOverlappingTemplate 10 10 13 10 5 8 10 8 10 16 0.554420 99/100 NonOverlappingTemplate 6 8 7 11 8 7 13 12 10 18 0.213309 100/100 NonOverlappingTemplate 12 9 12 9 11 6 11 11 12 7 0.897763 97/100 NonOverlappingTemplate 12 11 11 9 6 6 10 7 10 18 0.262249 99/100 NonOverlappingTemplate 6 9 12 8 7 13 10 12 11 12 0.816537 100/100 NonOverlappingTemplate 9 8 11 15 4 8 16 5 11 13 0.115387 100/100 NonOverlappingTemplate 12 6 8 14 7 16 9 10 8 10 0.437274 98/100 NonOverlappingTemplate 14 10 10 7 5 14 8 11 8 13 0.494392 98/100 NonOverlappingTemplate 14 6 7 11 10 10 14 9 7 12 0.616305 98/100 NonOverlappingTemplate 10 9 13 12 11 7 12 10 5 11 0.798139 100/100 NonOverlappingTemplate 17 10 15 7 9 8 6 12 11 5 0.145326 98/100 NonOverlappingTemplate 13 10 9 7 6 18 14 11 6 6 0.096578 97/100 NonOverlappingTemplate 11 8 7 10 7 13 15 12 7 10 0.637119 99/100 NonOverlappingTemplate 9 7 12 7 16 8 13 8 10 10 0.574903 97/100 NonOverlappingTemplate 9 12 14 13 4 8 7 11 11 11 0.514124 99/100 NonOverlappingTemplate 9 8 6 3 11 10 17 16 11 9 0.071177 100/100 NonOverlappingTemplate 6 11 9 12 14 9 5 13 11 10 0.595549 100/100 NonOverlappingTemplate 8 11 14 11 12 9 8 8 11 8 0.911413 99/100 NonOverlappingTemplate 15 10 10 10 5 9 10 12 9 10 0.779188 99/100 NonOverlappingTemplate 13 11 12 11 8 9 9 10 9 8 0.978072 99/100 NonOverlappingTemplate 9 12 11 8 11 9 9 11 13 7 0.955835 99/100 NonOverlappingTemplate 14 13 11 14 4 10 10 8 8 8 0.437274 99/100 NonOverlappingTemplate 10 9 17 15 9 6 12 11 4 7 0.115387 99/100 NonOverlappingTemplate 8 8 15 10 9 9 11 10 10 10 0.935716 99/100 NonOverlappingTemplate 8 8 13 11 10 3 9 7 14 17 0.115387 100/100 NonOverlappingTemplate 10 8 10 8 6 13 9 15 10 11 0.739918 99/100 NonOverlappingTemplate 10 11 8 5 8 5 13 11 12 17 0.202268 99/100 NonOverlappingTemplate 12 8 19 6 16 8 6 7 10 8 0.042808 96/100 NonOverlappingTemplate 3 11 12 13 6 7 16 12 11 9 0.162606 100/100 NonOverlappingTemplate 15 11 7 10 12 8 8 5 14 10 0.455937 98/100 NonOverlappingTemplate 5 11 12 10 11 13 13 12 8 5 0.514124 100/100 NonOverlappingTemplate 12 9 10 4 10 7 7 14 14 13 0.350485 99/100 NonOverlappingTemplate 10 7 11 15 10 6 11 9 12 9 0.759756 99/100 NonOverlappingTemplate 9 17 6 13 6 13 10 12 5 9 0.162606 100/100 NonOverlappingTemplate 11 10 4 13 7 7 15 17 10 6 0.080519 97/100 NonOverlappingTemplate 13 11 15 7 9 8 11 10 4 12 0.437274 100/100 NonOverlappingTemplate 9 13 10 10 4 9 13 11 13 8 0.637119 100/100 NonOverlappingTemplate 14 7 6 7 8 10 11 10 14 13 0.534146 100/100 NonOverlappingTemplate 11 13 10 6 10 11 11 7 12 9 0.897763 99/100 NonOverlappingTemplate 7 15 8 10 6 14 10 9 11 10 0.616305 100/100 NonOverlappingTemplate 11 9 9 6 13 10 8 7 12 15 0.637119 98/100 NonOverlappingTemplate 16 13 7 9 8 8 14 3 8 14 0.096578 99/100 NonOverlappingTemplate 7 9 9 14 6 9 11 15 6 14 0.334538 100/100 NonOverlappingTemplate 14 8 13 12 12 11 5 8 5 12 0.383827 99/100 NonOverlappingTemplate 12 6 11 5 11 13 11 11 9 11 0.739918 100/100 NonOverlappingTemplate 13 10 7 10 1 3 13 16 14 13 0.009535 98/100 NonOverlappingTemplate 6 6 15 10 13 6 3 16 16 9 0.015598 99/100 NonOverlappingTemplate 12 17 13 11 6 8 9 6 11 7 0.275709 100/100 NonOverlappingTemplate 11 10 7 8 13 8 12 15 8 8 0.699313 100/100 NonOverlappingTemplate 13 9 15 11 9 7 16 4 6 10 0.145326 99/100 NonOverlappingTemplate 6 13 14 8 6 9 12 10 14 8 0.474986 100/100 NonOverlappingTemplate 13 13 15 9 9 8 9 5 10 9 0.574903 100/100 NonOverlappingTemplate 13 10 16 7 6 9 13 7 8 11 0.401199 99/100 NonOverlappingTemplate 6 14 12 10 12 10 9 8 8 11 0.834308 100/100 NonOverlappingTemplate 14 13 6 8 10 5 15 10 7 12 0.289667 99/100 NonOverlappingTemplate 9 6 11 14 14 8 6 12 10 10 0.595549 100/100 NonOverlappingTemplate 12 13 12 13 9 12 6 3 9 11 0.366918 99/100 NonOverlappingTemplate 7 11 7 12 6 10 10 8 12 17 0.383827 100/100 NonOverlappingTemplate 11 8 9 11 18 7 9 5 9 13 0.236810 99/100 NonOverlappingTemplate 12 11 12 9 12 3 7 10 15 9 0.366918 100/100 NonOverlappingTemplate 15 8 8 8 10 11 9 11 8 12 0.851383 97/100 NonOverlappingTemplate 10 13 9 7 10 11 10 12 10 8 0.971699 100/100 NonOverlappingTemplate 10 9 10 12 11 9 15 6 12 6 0.657933 99/100 NonOverlappingTemplate 13 15 10 11 15 6 8 7 7 8 0.334538 100/100 NonOverlappingTemplate 7 13 16 7 9 9 11 6 14 8 0.334538 99/100 NonOverlappingTemplate 9 4 11 9 13 9 7 12 11 15 0.455937 100/100 NonOverlappingTemplate 16 7 12 7 9 12 13 7 6 11 0.366918 97/100 NonOverlappingTemplate 13 15 12 8 6 8 9 7 10 12 0.574903 98/100 NonOverlappingTemplate 10 8 14 9 14 5 14 10 8 8 0.474986 99/100 NonOverlappingTemplate 10 12 9 6 9 14 14 9 7 10 0.699313 99/100 NonOverlappingTemplate 11 7 7 9 13 4 13 13 17 6 0.096578 99/100 NonOverlappingTemplate 14 9 8 8 10 7 11 13 12 8 0.816537 98/100 NonOverlappingTemplate 8 8 8 8 13 8 11 14 14 8 0.678686 99/100 NonOverlappingTemplate 14 10 13 11 8 9 11 9 8 7 0.867692 98/100 NonOverlappingTemplate 10 8 11 12 8 12 15 11 5 8 0.616305 97/100 NonOverlappingTemplate 10 13 7 10 10 12 9 10 13 6 0.851383 99/100 NonOverlappingTemplate 10 11 10 8 7 8 11 9 15 11 0.867692 99/100 NonOverlappingTemplate 11 10 8 15 9 4 8 9 16 10 0.289667 98/100 NonOverlappingTemplate 8 18 10 8 11 10 9 7 12 7 0.383827 98/100 NonOverlappingTemplate 4 21 14 10 10 7 6 8 9 11 0.015598 100/100 NonOverlappingTemplate 10 7 9 10 8 9 11 16 10 10 0.816537 99/100 NonOverlappingTemplate 7 11 18 9 5 9 7 10 7 17 0.051942 100/100 NonOverlappingTemplate 16 9 11 6 8 6 7 13 11 13 0.334538 98/100 NonOverlappingTemplate 4 11 9 17 9 8 10 11 10 11 0.401199 100/100 NonOverlappingTemplate 10 5 18 15 13 9 11 9 6 4 0.037566 98/100 NonOverlappingTemplate 12 6 13 13 10 12 9 10 4 11 0.534146 99/100 NonOverlappingTemplate 13 8 9 5 4 15 13 13 8 12 0.181557 100/100 NonOverlappingTemplate 17 9 9 7 9 14 8 12 9 6 0.334538 97/100 NonOverlappingTemplate 7 11 14 5 9 15 10 10 14 5 0.224821 100/100 NonOverlappingTemplate 12 9 15 9 10 7 10 10 8 10 0.883171 99/100 NonOverlappingTemplate 10 13 8 7 8 6 12 10 17 9 0.383827 98/100 NonOverlappingTemplate 6 15 9 15 5 10 13 9 5 13 0.137282 100/100 NonOverlappingTemplate 11 12 8 9 8 15 10 10 7 10 0.851383 99/100 NonOverlappingTemplate 7 9 8 6 7 17 13 11 11 11 0.350485 100/100 NonOverlappingTemplate 13 7 8 12 10 9 8 10 7 16 0.574903 97/100 NonOverlappingTemplate 12 6 9 9 6 10 11 14 12 11 0.739918 100/100 NonOverlappingTemplate 8 10 16 12 9 5 11 10 7 12 0.494392 100/100 NonOverlappingTemplate 10 8 13 7 6 9 12 6 16 13 0.319084 99/100 NonOverlappingTemplate 9 14 12 9 6 5 10 10 10 15 0.455937 99/100 NonOverlappingTemplate 14 7 9 15 12 7 9 4 9 14 0.224821 99/100 NonOverlappingTemplate 11 13 11 6 12 7 14 10 9 7 0.678686 100/100 NonOverlappingTemplate 15 5 9 6 6 8 13 7 10 21 0.007160 98/100 NonOverlappingTemplate 10 12 12 6 9 7 13 11 6 14 0.574903 100/100 NonOverlappingTemplate 14 8 14 7 10 13 9 4 10 11 0.419021 98/100 NonOverlappingTemplate 7 8 12 8 6 12 14 11 9 13 0.657933 98/100 NonOverlappingTemplate 10 13 13 10 9 8 6 7 12 12 0.779188 99/100 NonOverlappingTemplate 9 13 9 8 11 14 7 9 9 11 0.883171 100/100 NonOverlappingTemplate 14 4 6 17 9 11 9 9 11 10 0.202268 99/100 NonOverlappingTemplate 9 9 11 7 10 13 11 13 6 11 0.851383 99/100 NonOverlappingTemplate 10 11 6 7 18 11 10 7 16 4 0.045675 99/100 NonOverlappingTemplate 7 7 8 15 9 8 11 13 7 15 0.383827 99/100 NonOverlappingTemplate 7 14 12 11 5 11 11 12 6 11 0.554420 99/100 NonOverlappingTemplate 11 13 10 6 10 12 10 7 12 9 0.883171 99/100 NonOverlappingTemplate 6 7 7 10 9 17 12 14 5 13 0.129620 99/100 OverlappingTemplate 8 15 14 11 9 9 11 9 7 7 0.657933 98/100 Universal 20 8 8 8 9 5 7 10 15 10 0.045675 99/100 ApproximateEntropy 4 6 4 9 3 10 10 7 7 6 0.350485 66/66 RandomExcursions 11 10 5 2 6 9 6 3 6 8 0.148094 64/66 RandomExcursions 7 13 3 5 7 5 6 6 11 3 0.066882 66/66 RandomExcursions 3 9 5 8 12 7 7 5 4 6 0.275709 66/66 RandomExcursions 11 7 8 7 9 6 4 3 8 3 0.275709 63/66 RandomExcursions 7 6 15 5 9 3 5 2 4 10 0.006196 66/66 RandomExcursions 3 6 4 12 7 7 6 6 9 6 0.350485 66/66 RandomExcursions 8 2 9 5 8 9 2 11 5 7 0.110952 66/66 RandomExcursions 8 2 6 8 8 7 8 6 7 6 0.772760 65/66 RandomExcursionsVariant 7 5 8 3 5 10 5 6 11 6 0.378138 65/66 RandomExcursionsVariant 4 10 5 4 8 9 3 9 10 4 0.178278 65/66 RandomExcursionsVariant 7 7 3 4 9 10 8 6 6 6 0.602458 66/66 RandomExcursionsVariant 4 5 6 9 7 4 6 9 10 6 0.602458 66/66 RandomExcursionsVariant 8 2 7 6 7 6 8 9 8 5 0.671779 65/66 RandomExcursionsVariant 6 5 7 3 5 9 7 10 6 8 0.637119 65/66 RandomExcursionsVariant 6 5 7 4 5 8 8 8 9 6 0.862344 66/66 RandomExcursionsVariant 9 8 6 8 12 4 2 4 8 5 0.134686 64/66 RandomExcursionsVariant 8 6 5 5 8 6 7 7 7 7 0.985035 65/66 RandomExcursionsVariant 6 6 6 7 5 5 9 8 8 6 0.949602 65/66 RandomExcursionsVariant 5 8 6 7 5 2 13 4 5 11 0.048716 66/66 RandomExcursionsVariant 5 6 7 7 2 5 9 11 9 5 0.299251 66/66 RandomExcursionsVariant 6 6 5 3 5 6 13 7 7 8 0.275709 66/66 RandomExcursionsVariant 7 3 5 5 5 10 8 8 6 9 0.568055 65/66 RandomExcursionsVariant 5 5 6 1 9 7 11 8 9 5 0.178278 66/66 RandomExcursionsVariant 5 3 6 3 6 7 11 5 11 9 0.148094 66/66 RandomExcursionsVariant 5 4 2 4 8 12 4 7 11 9 0.043745 65/66 RandomExcursionsVariant 11 13 8 9 5 10 13 14 9 8 0.637119 100/100 Serial 11 13 5 9 11 14 8 8 9 12 0.678686 100/100 Serial 9 8 12 14 6 9 10 8 11 13 0.779188 98/100 LinearComplexity - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The minimum pass rate for each statistical test with the exception of the random excursion (variant) test is approximately = 96 for a sample size = 100 binary sequences. The minimum pass rate for the random excursion (variant) test is approximately = 62 for a sample size = 66 binary sequences. For further guidelines construct a probability table using the MAPLE program provided in the addendum section of the documentation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

          Это типичный результат тестов NIST нового криптопреобразования на основе ГОСТ 28147-89. Результаты тестов на любых случайных ключах и первоначальных заполнениях всегда укладываются в статистические параметры случайной последовательности.

          Для сокращения времени тестирования, применялась упрощенная методика. Сначала проводился эксперимент на ста блоках длиной один миллион бит в гамме длинной 24мегабайт (используется первая половина гаммы).

          В случае неуспешного эксперимента (выпадения из диапазона допустимых пропорций), та же гамма, уже в полном объеме, тестировалась на ста блоках длиной два миллиона бит. Для таких экспериментов все запуски теста были успешными (в серии из 100 экспериментов).

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

          Эти статистические параметры гаммы гораздо лучше гаммы вырабатываемой классическим ГОСТ, в нем часто встречаются ключи, на которых тесты NIST не проходят в принципе. Шифр AES, в аналогичных экспериментах не сильно отличается от традиционного ГОСТ.

          Полученные в экспериментах по нормам 8 байтного блочного шифра статистические параметры для блочного шифра с размером блока 256 байт это фантастика.

          Это все равно что, к примеру, подбросив монетку 12 раз и получив равное выпадение «орла» и «орешки», требовать, чтобы кубик, тоже брошенный 12 раз, выпал на каждую грань обязательно по два раза…

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

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

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

          Теперь про скорость

          image

          Это скриншот реализации многопоточного криптопреобразования на основе ГОСТ 28147-89 в программе FastSecurityBoxes, тестирование проводилось по методике описанной в статье «Второе пришествие ГОСТ».

          Как видно на скриншоте скорость копирования достигла предела для тестовых SSD дисков и составляет 453мБайт/сек. при загрузке процессора всего 6 процентов.

          Теоретически, в тестах чистой криптографии, скорость шифрования для режима гаммирования составляет 12 ГигаБайт/сек. на одно физическое ядро процессора (моделей Skylake и выше) работающее на частоте от 3гГерц и выше.

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

          Русская Рулетка, 2017 и его будущее применение

          В последнее время, с легкой руки ФСБ, шифры у нас стали получать звучные названия, типа «Магма», «Кузнечик», продолжим эту традицию.

          Будем называть этот блочный шифр «Русская рулетка».

          Почему «Русская», надеюсь всем понятно. А «рулетка», потому как шифр построен на вращениях (кольцевых сдвигах) бинарных последовательностей. Таких сдвигов там только в явном виде 192 штуки за один раунд.

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

          Барабан с одной/пятью пулями из шести становится несбалансированным, и всегда стремиться встать пустым патронником напротив ствола.

          Так что случайностью была только возможности заклинивания барабана от разных соринок/волосинок, попадание на пустой патронник было «псевдослучайным» и имело строгий, прогнозируемый результат.

          Ранее, при внедрении параллельного метода реализации ГОСТ 28147-89 пришлось его полностью описать, поскольку он проходил официальную сертификацию ФСБ.

          Сейчас ситуация другая, никакого официоза не предполагается. Поэтому подробного описания алгоритма «Русская рулетка» не будет, это своеобразная копирайт защита. Если интересно станет профессионалам, пускай обращаются к своим коллегам, — реверс программистам. Вот кому придется поломать голову…

          Короче говоря, алгоритм Русской рулетки будет проприетарным и скоро появится вот это: Русская Рулетка, 2017.

          Закрытый от исследования алгоритм шифрования,- это конечно нонсенс, поскольку отсутствует доверие к надежности шифрования.

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

          Самодельная циклическая сеть Фейстеля идеально удовлетворяет требованиям «турбокода» для исправления ошибок, я это не специально, «он сам пришел»…

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

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

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

          В дальнейшем же предстоит сделать то, что не удалось сделать Крылову. С помощью Русской рулетки запряжем в «телегу» ответственного архивирования трех персонажей его басни,- «лебедя» приватности, «рака» достоверности и «щуку» надежности. При этом, заставим их тянуть «телегу» с бешеной скоростью…

          Сложная задача, но решаемая.

          Практическая реализация криптофункции

          Алгоритм «Русская рулетка» встроен в демонстрационную версию программы FastSecurityBoxes в частично обрезанном виде. Пока, для тестирования, реализовано только базовое преобразование работающее в режиме гаммирования. Используется один раунд, этого достаточно для надежного прохождения тестов NIST и криптостойкости на уровне 2256*8 (вариант прямой атаки методом перебора).

          Ключи пересчитываются после выдачи 64килобайт гаммы.

          Сам алгоритм реализован на AVX командах с использованием YMM регистров, поэтому эффективно этот алгоритм может работать только на самых последних процессорах Интел (Skylake и выше).
          На процессорах AMD, даже самых новых, алгоритм Русской рулетки будет работать медленно, поскольку операции использующие YMM регистры реализованы в них микропрограмно а не аппаратно.

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

          Выбор прикладной задачи обусловлен с одной стороны актуальностью темы, а с другой стороны наглядностью результата. Создание резервных копий дисков естественно было «заточено» под скоростные SSD диски, которые уже сегодня на интерфейсе NVMe могут работать со скоростью 2-3 Гигабайта в секунду. На таких скоростях шифровать данные до сих пор никто не умел, но теперь это уже реальность.

          Помимо нового, пока экзотического многопоточного алгоритма, FastSecurityBoxes реализует шифрование по классическому ГОСТ 28147-89 в 8 параллельных потоков (для старых процессоров) и 16 параллельных потоков (для «скайлейка» и выше). Эти паралельные методы шифрования сертифицированы ФСБ.

          Шифрование в 8 и 16 потоков включены в состав программы для предметного сравнения результатов, чтоб чувствовалась разница…

          Видимо я запутал читателей терминами «многопоточный» и «параллельный», поэтому поясню.
          Параллельный метод реализации ГОСТ 28147-89 это сертифицированный ФСБ метод. Параллельность предполагает выполнение стандартных криптопроцедур одновременно на 4-8-16 независимых физических устройствах. При этом ключи шифрования, блоки замен везде одинаковые, но входные и выходные данные разные. Ускорение работы достигается за счет одновременной работы нескольких независимых друг от друга физических устройств.

          Термин «независимое физическое устройство» применительно к процессору это понятие условное, в реальности у процессора имеется набор регистров, на которых одновременно (одной командой процессора) выполняются одинаковые преобразования. Но для простоты понимания будем считать их независимыми физическими устройствами, работающими строго параллельно и синхронно.

          Многопоточный метод реализованный в алгоритме «Русская рулетка» существенно отличается от параллельного, вот его главные отличия:

          1. Имеется единственный блочный раундовый преобразователь.
          2. Длина блока (пока) 256байт и может масштабироваться.
          3. Фрагменты блока (по два байта) обрабатываются в независимых потоках.
          4. Объединение фрагментов производится в дополнительном преобразовании.

          Многопоточный метод позволяет увеличить размер ключевых данных и размер входного блока данных. При этом изменение любого из 2048 бит входного блока приводит к гарантированному изменению всех 2048 выходных бит после десяти раундов преобразования.

          Сейчас шифр содержит 128 потоков, когда появятся процессора с набором команд AVX-512, можно будет увеличить количество потоков до 512 (блок данных будет иметь размер 1Кбайт) и в два раза поднять скорость.

          А пока, в сухом остатке..

          Скорость на уровне 12 ГигаБайт в секунду для процессора с частотой 3гГерц, не с чем сравнивать. Скорость реализации алгоритма «Русская рулетка» в режиме гаммирования «несравненная». Это самый скоростной генератор псевдослучайных последовательностей из известных, удовлетворяющий требованиям тестов NIST.

          Математическая сложность криптоанализа базового преобразования «Русская рулетка» определяется размерностью ключа, в нашем случае она равна 2256*8.

          Алгоритмическая сложность криптоанализа с учетом известных методов взлома для базового преобразования «Русская рулетка» как минимум не меньше родительского преобразования ГОСТ 28147-89.

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

          Скачать программу FastSecurityBoxes можно здесь.

          Для тестирования в ней предусмотрена функция выдачи «чистой» гамммы. В этом режиме создаются тестовые псевдослучайные файлы для преобразований по ГОСТ 28147-89 и «Русской рулетки».

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

          Скоростные параметры FastSecurityBoxes уже приводились в статье «Второе пришествие ГОСТ», посмотрим в качестве примера, что может сделать Акронис в тех же режимах работы, на той же самой аппаратной платформе.

          Вот как он создает посекторный дамп без шифрования и сжатия:

          image

          Программа выполняет посекторное копирование на скорости 368 МБ/сек… Видимо используется синхронный однопоточный ввод-вывод с циклами ожидания окончания операции ввода/вывода. Иначе не объяснить слишком большой загрузки процессора на операциях ввода/вывода, составляющей 20%. Явно устаревшее решение из прошлого тысячелетия.

          На этой же конфигурации оборудования тестовая программа FastSecurityBoxes обеспечивала скорость дампирования 450 МБ/сек. при загрузке процессора на уровне 6 процентов.

          Вот что Acronis выдает на посекторном копировании (без сжатия) с шифрованием дампа по ГОСТ 28147-89:

          image

          Скорость снизилась почти в десять раз, до 42 МБ/сек. используя 17 процентов вычислительных ресурсов процессора, FastSecurityBoxes обеспечивала в этом режиме скорость 330 МБ/сек, при этом используя 10 процентов вычислительных ресурсов, думаю комментарии излишни…

          А вывод очевиден, Acronis использует устаревшую классическую реализацию ГОСТ 28147-89 на РОН регистрах процессора, поэтому такая низкая скорость.

          Вот что получается у Acronis с шифрованием дампа по самому «легкому» алгоритму AES -128, опять без сжатия. Этот алгоритм по криптостойкости хуже ГОСТ 28147-89, но реализация его самая скоростная из-за сокращенного количества раундов.

          image

          Скорость возросла до 80 МБ/сек, но все равно это катастрофически мало, BitLocker обеспечивал в этом режиме скорость около 360 МБ/сек. Очевидно используется устаревшая криптобиблиотека без поддержки аппаратного криптоускорителя Intel.

          Как то все это бледно смотрится на фоне современных технологий…

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

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