В криптографии, то Мак - Элиса криптосистемы является асимметричное шифрование алгоритм, разработанный в 1978 году Робертом МакЭлиса. Это была первая такая схема, в которой в процессе шифрования использовалась рандомизация. Алгоритм никогда не получал большого признания в криптографическом сообществе, но является кандидатом на роль « постквантовой криптографии », поскольку он невосприимчив к атакам с использованием алгоритма Шора и, в более общем плане, к измерению состояний смежности с использованием выборки Фурье.
Алгоритм основан на сложности декодирования общего линейного кода (который известен как NP-сложный ). Для описания секретного ключа выбирается код исправления ошибок, для которого известен эффективный алгоритм декодирования и который может исправлять ошибки. Исходный алгоритм использует двоичные коды Гоппа ( коды подполей геометрических кодов Гоппа кривой рода 0 над конечными полями характеристики 2); эти коды могут быть эффективно декодированы благодаря алгоритму Паттерсона. Открытый ключ получается из закрытого ключа путем маскировки выбранного кода под общий линейный код. Для этого матрица генератора кода возмущается двумя случайно выбранными обратимыми матрицами и (см. Ниже).
Существуют варианты этой криптосистемы, использующие разные типы кодов. Большинство из них оказались менее безопасными; они были разбиты структурной расшифровкой.
МакЭлис с кодами Гоппа пока сопротивляется криптоанализу. Наиболее эффективные известные атаки используют алгоритмы декодирования информационного набора. В документе 2008 года описывается как атака, так и исправление. В другой статье показано, что для квантовых вычислений размеры ключей должны быть увеличены в четыре раза из-за улучшений в декодировании набора информации.
Криптосистема Мак-Элиса имеет некоторые преимущества перед, например, RSA. Шифрование и дешифрование выполняются быстрее. Долгое время считалось, что МакЭлис нельзя использовать для создания подписей. Однако схема подписи может быть построена на основе схемы Нидеррейтера, двойного варианта схемы Мак-Элиса. Одним из основных недостатков Мак-Элиса является то, что закрытый и открытый ключи представляют собой большие матрицы. Для стандартного набора параметров длина открытого ключа составляет 512 килобит.
Мак-Элис состоит из трех алгоритмов: вероятностного алгоритма генерации ключей, который производит открытый и закрытый ключи, вероятностного алгоритма шифрования и детерминированного алгоритма дешифрования.
Все пользователи в установочном ресурсе МакЭлиса набор общих параметров безопасности:.
Принцип состоит в том, что Алиса выбирает линейный код из некоторого семейства кодов, для которого она знает эффективный алгоритм декодирования, и делает это общедоступным, но сохраняет алгоритм декодирования в секрете. Такой алгоритм декодирования требует не просто знания в смысле знания произвольной матрицы генератора, но требует знания параметров, используемых при задании в выбранном семействе кодов. Например, для двоичных кодов Гоппы эта информация будет полиномом Гоппы и локаторами кода. Следовательно, Алиса может опубликовать надлежащим образом обфусцированную генераторную матрицу.
В частности, шаги следующие:
Предположим, Боб хочет отправить сообщение m Алисе, чей открытый ключ:
После получения Алиса выполняет следующие шаги для расшифровки сообщения:
Обратите внимание, что, и это матрица перестановок, поэтому имеет вес.
Код Goppa может исправлять с точностью до ошибок, а слово находится на расстоянии не более чем от. Таким образом получается правильное кодовое слово.
Умножение на обратное дает, то есть текстовое сообщение.
Первоначально МакЭлис предложил размер параметров безопасности равный, в результате чего размер открытого ключа составляет 524 * (1024-524) = 262000 бит. Недавний анализ предлагает размеры параметров для 80 битов безопасности при использовании стандартного алгебраического декодирования или при использовании декодирования списком для кода Гоппа, что приводит к размерам открытого ключа 520 047 и 460 647 битов соответственно. Для обеспечения устойчивости к квантовым компьютерам были предложены размеры с кодом Гоппа, что дает размер открытого ключа 8 373 911 бит. В своей 3 -м раунда подачи в NIST после квантовой стандартизации самого высокого уровня безопасности, уровень 5 даются для наборов параметров 6688128, 6960119 и 8192128. Этих параметров,, соответственно.
Атака состоит в том, что злоумышленник, который знает открытый ключ, но не знает закрытый ключ, извлекает открытый текст из некоторого перехваченного зашифрованного текста. Такие попытки должны быть невозможны.
У МакЭлиса есть два основных направления атак:
Злоумышленник знает, что является образующей матрицей кода, который комбинаторно способен исправлять ошибки. Злоумышленник может игнорировать тот факт, что на самом деле представляет собой обфускацию структурированного кода, выбранного из определенного семейства, и вместо этого просто использовать алгоритм для декодирования с любым линейным кодом. Существует несколько таких алгоритмов, таких как просмотр каждого кодового слова кода, синдромное декодирование или декодирование набора информации.
Однако известно, что декодирование общего линейного кода является NP-трудным, и все вышеупомянутые методы имеют экспоненциальное время выполнения.
В 2008 году Бернштейн, Ланге и Петерс описали практическую атаку на оригинальную криптосистему Мак-Элиса с использованием метода декодирования набора информации Стерна. Используя параметры, первоначально предложенные Мак-Элисом, атака могла быть проведена за 2 60,55- битных операций. Поскольку атака до неприличия параллельна (связь между узлами не требуется), она может быть проведена за несколько дней на скромных компьютерных кластерах.
Вместо этого злоумышленник может попытаться восстановить «структуру», тем самым восстанавливая эффективный алгоритм декодирования или другой достаточно сильный и эффективный алгоритм декодирования.
Семейство кодов, из которых выбирается, полностью определяет, возможно ли это для злоумышленника. Для Мак-Элиса было предложено множество семейств кодов, и большинство из них были полностью «сломаны» в том смысле, что были обнаружены атаки, восстанавливающие эффективный алгоритм декодирования, такие как коды Рида-Соломона.
Первоначально предложенные двоичные коды Гоппы остаются одним из немногих предложенных семейств кодов, которые в значительной степени сопротивлялись попыткам разработки структурных атак.
Вариант этого алгоритма в сочетании с NTS-KEM был выбран во втором раунде конкурса постквантового шифрования NIST.