?
Применение статистических тестов NIST для анализа выходных последовательностей блочных шифров
Современные итеративные блочные шифры являются одним из наиболее востребованных средств обеспечения защищенного обмена информацией в высокоскоростных сетях передачи данных. Широкое применение данной технологии и развитие вычислительных мощностей порождают целый перечень угроз криптоанализа шифров. Обеспечение криптографической стойкости является в данном случае одним из ключевых аспектов криптографического алгоритма, однако криптографическая стойкость невозможна без обеспечения удовлетворительных статистических свойств, так как ряд атак на блочные шифры основан как раз на статистических уязвимостях выходной последовательности. Дизайнеры используемых на сегодняшний день криптографических алгоритмов установили определенный запас при выборе характеристик работы шифров, тогда как выходная последовательность многих алгоритмов становится неотличима от случайной за меньшее, чем полное, число раундов шифрования. Некоторое сокращение такого параметра блочного шифра, как число раундов, позволит обеспечить удовлетворительные статистические свойства, при этом увеличив скорость работы алгоритма. Для проверки статистических свойств шифра проводится статистический анализ с помощью специализированных тестов, который, как правило, сопряжен с рядом сложностей. В настоящей статье рассматривается задача анализа выходных последовательностей блочных шифров с целью поиска оптимального (минимального) числа раундов шифрования, при котором шифртекст неотличим от случайного. Изложены основные принципы работы статистических тестов. Описана технология обеспечения взаимодействия реализаций статистических тестов и криптоалгоритмов, которая предложена и реализована автором средствами языков программирования. Продемонстрированы новые, полученные в результате экспериментов характеристики работы для алгоритмов из библиотеки CPPCRYPTO.