Введение

Советский/российский национальный стандартный блочный шифр

Блочный шифр ГОСТ (Magma), определённый в стандарте ГОСТ 28147-89 (RFC 5830), является советским и российским государственным стандартом симметричного шифрования с размером блока 64 бита. Исходный стандарт, опубликованный в 1989 году, не присваивал шифру какого-либо названия, но последняя редакция стандарта, ГОСТ Р 34.12-2015 (RFC 7801, RFC 8891), указывает, что его можно называть Magma. Таким образом, они очень похожи по структуре.

Криптоанализ ГОСТ

Последний криптоанализ ГОСТ показывает, что он безопасен в теоретическом плане. На практике вычислительная и памятью сложность лучших опубликованных атак достигла практически реализуемого уровня, в то время как временная сложность даже лучшей атаки всё ещё составляет 2<sup>192</sup> при наличии 2<sup>64</sup> данных. С 2007 года было разработано несколько атак против GOST с уменьшенным количеством раундов и/или слабых ключей. В 2011 году несколько авторов обнаружили более серьёзные недостатки в GOST, впервые получив возможность атаковать полный 32-раундовый GOST с использованием произвольных ключей. Николя Куртуа даже назвал его «глубоко дефектным шифром». Первоначальные атаки позволили снизить временную сложность с 2<sup>256</sup> до 2<sup>228</sup> за счёт огромных требований к памяти, а вскоре они были улучшены до временной сложности 2<sup>178</sup> (за счёт 2<sup>70</sup> памяти и 2<sup>64</sup> данных). В декабре 2012 года Куртуа, Гавинецки и Сонг улучшили атаки на GOST, вычислив всего 2<sup>101</sup> раундов GOST. Isobe уже опубликовал атаку на полный шифр GOST с использованием одного ключа, которую Динур, Дункельман и Шамир улучшили, достигнув временной сложности 2<sup>224</sup> для 2<sup>32</sup> данных и 2<sup>36</sup> памяти, и 2<sup>192</sup> временной сложности для 2<sup>64</sup> данных. Поскольку атаки снижают ожидаемую прочность с 2<sup>256</sup> (длина ключа) примерно до 2<sup>178</sup>, шифр можно считать взломанным. Однако эта атака нереализуема на практике, поскольку количество необходимых тестов 2<sup>178</sup> недостижимо. Следует отметить, что для любого блочного шифра с размером блока n бит максимальный объём открытого текста, который можно зашифровать до смены ключа, составляет 2<sup>n/2</sup> блоков из-за парадокса дней рождения, и ни одна из вышеупомянутых атак не требует менее 2<sup>32</sup> данных.