О новом украинском стандарте шифрования

12 июнь, 2015 - 10:29Роман Олейников

С первого июля в Украине вводится в действие национальный криптографический стандарт блочного симметричного преобразования ДСТУ 7624:2014, определяющий шифр «Калина» и режимы его работы для обеспечения конфиденциальности и целостности. В статье рассмотрены особенности нового преобразования и выполнено сравнение с зарубежными аналогами.

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

Симметричные блочные шифры являются одним из наиболее распространенных криптографических примитивов. Кроме обеспечения конфиденциальности (шифрования) основных объемов информации, передаваемых по сети или хранимых локально, они применяются как конструктивный элемент других примитивов (функций хэширования, кодов аутентификации сообщений, генераторов псевдослучайных последовательностей и пр.). Значение этого криптографического преобразования подчеркивает и ряд международных конкурсов, таких как AES, NESSIE, CRYPTREC, которые были ориентированы на разработку блочного шифра (как основной цели или в составе набора перспективных решений).

В Украине с 1990 г. в качестве основного шифра использовался ГОСТ 28147-89. Хотя он все еще обеспечивает практическую стойкость, для него уже известны теоретические методы криптоанализа, со сложностью существенно меньшей, чем полный перебор ключей. Этот стандарт уже выведен из действия в Беларуси и в текущем году планируется к модификации в России (в качестве основного там будет использоваться 128-битовый шифр «Кузнечик»). С точки зрения производительности, ГОСТ 28147-89 существенно уступает современным аналогам, таким, как AES, что приводит к усложнению и удорожанию средств криптографической защиты при прочих равных характеристиках.

В то же время, замена ГОСТ 28147-89 (ДСТУ ГОСТ 28147:2009) на международный стандарт AES не будет эффективным решением для Украины, поскольку мировые тенденции свидетельствуют про начало постепенного отказа от этого шифра, как на уровне выбора перспективных решений в международных криптографических конкурсах, так и в прикладных системах. В частности, некоторые компании, лидеры ИТ-индустрии, уже применяют новые алгоритмы вместо AES в криптографическом протоколе TLS: например, Google в 2014 г. внедрила шифр ChaCha20 для защиты каналов связи устройств на базе Android.

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

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

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

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

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

Особенности архитектуры

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

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

Высокоуровневая конструкция использует хорошо исследованную Square-подобную SPN-структуру, применяемую в алгоритмах AES/Rijndael, Whirlpool, «Стрибог», «Кузнечик» и многих других. Цикловое преобразование построено на базе таблиц подстановки (S-блоков) и умножения на МДР-матрицу над конечным полем, обеспечивая необходимые криптографические свойства. Применение именно такой конструкции позволяет обеспечить доказуемую стойкость к дифференциальному, линейному и др. видам криптоанализа, одновременно обеспечивая эффективную реализацию на широком спектре программных и программно-аппаратных платформ. При выборе размера МДР-матрицы был принят во внимание размер кэша L1 современных и перспективных процессоров, что позволило оптимизировать быстродействие программной реализации шифра.

Альтернативный вариант, который рассматривался при разработке цикловой функции, – ARX преобразования (Addition-Rotation-XOR). Этот подход реализован в шифре SPECK (разработан Агентством национальной безопасности США и передан в открытый доступ), в блочных алгоритмах, на основе которых построено семейство хэш-функций SHA-0,1,2 и др. Преимуществом похода является компактность и быстродействие преобразования. Но, в то же время, есть и существенный недостаток, связанный с отсутствием методов, позволяющих выполнить строгое аналитическое обоснование криптографической стойкости таких решений. Даже с мощнейшими в мире возможностями для анализа, США несколько раз были вынуждены модифицировать свои стандарты хэширования из-за найденных уязвимостей: с 1993 по 1995 гг. действовал SHA-0, с 1995 по 2001 гг. применялся SHA-1, с тех пор используется SHA-2. Из-за поднимаемых вопросов к стойкости и этой версии, в США с 2008 по 2012 гг. был проведен международный конкурс SHA-3. К настоящему времени разработан проект стандарта FIPS 202, описывающего новую криптографическую хэш-функцию.

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

При сравнении характеристик S-блоков и других симметричных преобразований, в т.ч. новых белорусских и российских стандартов, можно отметить, что именно национальный стандарт Украины обеспечивает наибольшую нелинейность булевых функций, что дает дополнительный запас стойкости к линейному криптоанализу. Еще большее значение нелинейности для взаимо-однозначной подстановки можно обеспечить, применяя, например, аффинно-эквивалентные степенные функции в конечном поле, но такие преобразования, использованные в AES, Camellia и др. алгоритмах, ставят шифр под угрозу реализации алгебраической атаки (этот метод криптоанализа был успешно применен против шифра Keeloq, используемого в системах автомобильной безопасности).

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

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

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

Количество циклов шифрования зависит от длины ключа: 10 циклов для 128-битового, 14 циклов для 256-битового и 18 циклов для 512-битового ключа шифрования.

По сравнению с другими алгоритмами на основе Square-подобной SPN-структуры, блочный шифр «Калина» имеет следующие существенные конструктивные отличия:

  • начальное и конечное забеливание с использованием модульного сложения (264) для повышения сложности криптоаналитических атак;
  • применение четырех различных S-блоков (вместо одного) со свойствами для защиты от алгебраических атак, и при сравнении характеристик с другими блочными и поточными шифрами обеспечивают наибольшую нелинейность булевых функций (104), что дает дополнительный запас стойкости преобразования;
  • увеличенный размер МДР-преобразования, что улучшает криптографические свойства и позволяет оптимизировать быстродействие на современных 64-битовых платформах;
  • новую однонаправленную схему формирования цикловых ключей, обеспечивающую защиту от атак, эффективность программной и программно-аппаратной реализации, вместе с дополнительной стойкостью к методам анализа специального вида.

Оценка криптографической стойкости к дифференциальному, линейному, алгебраическому, интегральному и другим методам анализа (практический критерий) показала, что шифр является стойким при 6 циклах для 128-битового блока, 7 циклах для 256-битового и 9 циклах для 512-битового (каждый дополнительный цикл обеспечивает экспоненциальный рост сложности криптоанализа). Таким образом, шифр, содержащий 10, 14 и 18 циклов для блока 128, 256 и 512 битов соответственно, обеспечивает защиту от рассмотренных видов анализа и имеет существенный запас стойкости.

Кроме блочного шифра, ДСТУ 7624:2014 определяет режимы работы, соответствующие как ISO 10116:2006, так и дополнительные, предназначенные для современных систем криптографической защиты IP-трафика, прозрачного шифрования носителей информации и др. В стандарте определены объемы сообщений, после обработки которых требуется обязательная смена ключа. Кроме того, приводятся рекомендации разработчикам, обращающие внимание на необходимость предотвращения атак с использованием особенностей реализации средств шифрования. В частности, учтены особенности, позволявшие организацию атак BEAST и CRIME/BREACH в протоколах SSL/TLS, повторный прием сообщения, восстановление конфиденциальных параметров на основе зависимости времени шифрования от обрабатываемых данных (из-за промахов кэша при табличной реализации) и др.

Детальнее со свойствами нового стандарта можно ознакомиться посредством презентации на SlideShare.

Дополнительно следует отметить, что новые национальные стандарты шифрования (ДСТУ 7624:2014) и хэширования (ДСТУ 7564:2014) имеют общий набор S-блоков и одинаковую МДР-матрицу, за счет чего получается компактная совместная реализация обоих преобразований.

Скорость шифрования

Тестирование производительности было ориентировано на моделирование особенностей работы средств криптографической защиты, которые требуют высокого быстродействия преобразований (защита IP-трафика и пр.). Сравнение производилось для блочного шифра «Калина» (все комбинации размера блока и длины ключа), AES-128, AES-256, ГОСТ 28147-89, СТБ 34.101.31-2011 («BelT», национальный стандарт Беларуси) и алгоритма «Кузнечик» (проект государственного стандарта РФ) в одинаковых условиях работы одного интерактивного процесса (исходные коды программной реализации доступны на GitHub). Результаты для разных 64-битовых платформ приведены на рисунках.

О новом украинском стандарте шифрования

Сравнение быстродействия оптимизированных версий программной реализации, Intel Core i5, Ubuntu Linux

О новом украинском стандарте шифрования

Сравнение быстродействия оптимизированных версий программной реализации, Intel Core i7, iMac 13.2

При программной реализации AES не использовался набор инструкций AES NI, доступный в ряде процессоров Intel. Учитывая материалы Эдварда Сноудена о наличии закладок Агентства национальной безопасности США в аппаратных криптографических решениях ряда ведущих мировых производителей, использование ускорителей даже в составе процессоров общего назначения недопустимо для приложений, действительно требующих высокого уровня безопасности. Выявление таких недокументированных особенностей практически невозможно с ресурсами, которые можно привлечь в Украине (в качестве примера можно привести следующий вариант: в ответ на достаточно длинную входную последовательность для расшифрования процессор может выдать используемый ключ вместо шифртекста, который и уйдет во внешний канал связи; вероятность сформировать такую последовательность в качестве тестовой практически равна нулю, т.е., фактически, процессор проходит любой приемлемый набор внешних проверок). Соответственно, использование аппаратных криптографических ускорителей, произведенных за пределами Украины, недопустимо для защиты критичной национальной информации.

Для оптимизированных версий программной реализации на использованных 64-битовых платформах:

  • для 128-битового ключа быстродействие «Калины» выше AES на 86-143 Мбит/с;
  • для 256-битового ключа быстродействие «Калины» зависит от платформы (на 128-битовом блоке медленнее на 10% на Core i5; быстрее на 4% на Core i7), на 256-битовом блоке выше на 24-126 Мбит/с;
  • быстродействие «Калины» выше, чем у ГОСТ 28147-89, до трех раз, и для соответствующей длины ключа существенно выше, чем у новых стандартов Беларуси и России;
  • версии «Калины» с 512-битовым ключом (для которых нет аналогов по уровню стойкости среди национальных и международных стандартов), имеют быстродействие гораздо выше, чем ГОСТ 28147-89, и в большинстве случаев превышают показатели региональных шифров соседних стран (с длиной ключа в 256 бит).

Дополнительно отметим, что «Калина» обеспечивает более высокий запас стойкости к криптоаналитическим атакам, чем AES.

Резюме

Блочные шифры являются одним из наиболее распространенных криптографических примитивов. В Украине с 1990 г. использовался ДСТУ ГОСТ 28147:2009 (ГОСТ 28147-89), который все еще обеспечивает практическую стойкость, но является менее эффективным по сравнению с современными решениями. Этот шифр выведен из действия в Беларуси и будет заменен в РФ в качестве основного. Замена ГОСТ 28147-89 на AES нельзя считать решением проблемы нового национального стандарта Украины: тенденции свидетельствуют про начало постепенного отказа от этого шифра со стороны мировых лидеров ИТ-индустрии. Проведенный в Украине открытый конкурс криптографических алгоритмов позволил определить перспективный блочный шифр, на основе которого и был разработан новый национальный криптографический стандарт блочного преобразования ДСТУ 7624:2014, учитывающий мировой опыт построения современных шифров. При разработке стандарта использовался прозрачный и консервативный подход, позволяющий обеспечить доказуемую стойкость к ряду методов криптоанализа. Сравнение свойств основных компонентов алгоритма с другими региональными и международными шифрами показывает преимущество именно национального стандарта Украины, обеспечивающего больший запас стойкости к основным методам криптоанализа. Производительность шифра сопоставима с AES или превосходит его на 64-битовых платформах (от 24 до 143 Мбит/с, в зависимости от процессора и параметров алгоритма). При программной реализации на современном оборудовании быстродействие национального стандарта Украины существенно выше, чем у ГОСТ 28147-89 и новых стандартов Беларуси и РФ. Принятый стандарт не ограничивает использование в Украине других шифров, в частности, AES, TripleDES и пр., в то же время позволяет создавать современные национальные высокопроизводительные и стойкие системы криптографической защиты.