Аннотация:Криптосистема Мак-Элиса – одна из старейших криптосистем с открытым ключом. Она была предложена в 1978 году Р. Дж. Мак-Элисом. Стойкость криптосистемы Мак-Элиса основывается на сложности декодирования линейного кода, не имеющего видимой комбинаторной или алгебраической структуры. Кодовые криптосистемы, к которым относится криптосистема Мак-Элиса, в силу ряда причин не получили широкого распространения на практике. Однако в криптографии всегда есть острая необходимость в разработке и исследовании других криптосистем с открытым ключом. Интерес к этим криптосистемам тем, что в 2017 году Национальный институт стандартов и технологий США объявил конкурс на перспективные криптографические примитивы постквантового мира. Более половины всех заявок, представленных на конкурс, строятся на основе кодов, исправляющих ошибки. Таким образом, появилась реальная потребность в исследовании кодовых криптосистем с точки зрения возможных уязвимостей, связанных с особенностями использования их в информационных системах.
Важным классом атак на криптографические примитивы являются атаки, использующие побочные каналы. Так зависимость времени работы алгоритмов шифрования и расшифрования в случае использования корректных и испорченных данных может привести к получению информации о ключе, на котором выполняются преобразования. Впервые атаки, использующие побочные каналы, были предложены в работах группы исследователей во главе с Ф. Стрежке.
В выпускной квалификационной работе А. П. Беспаловой рассматривается криптосистема Мак-Элиса, построенная на основе квазициклических кодов с ограниченной плотностью проверок на чётность, а также механизм инкапсуляции ключа KEM-QC, основанный на этой криптосистеме. Отметим, что механизм был представлен на конкурс NIST. А. П. Беспалова на основе идей Ф. Стрежке предлагает новую атаку на эту криптосистему и на механизм инкапсуляции ключа KEM-QC. Атака использует зависимость времени работы алгоритма декодирования квазициклических кодов от количества ошибок в декодируемом сообщении. Для демонстрации работоспособности атаки она была реализована на языке C++.