Инкапсуляция ключей - Key encapsulation
Механизмы инкапсуляции ключей (KEM) - это класс методов шифрования, предназначенных для защиты материала симметричного криптографического ключа для передачи с использованием асимметричных (с открытым ключом) алгоритмов. На практике системы с открытым ключом неудобно использовать при передаче длинных сообщений. Вместо этого они часто используются для обмена симметричными ключами, которые относительно короткие. Затем симметричный ключ используется для шифрования более длинного сообщения. Традиционный подход к отправке симметричного ключа с системами открытых ключей состоит в том, чтобы сначала сгенерировать случайный симметричный ключ, а затем зашифровать его с помощью выбранного алгоритма открытого ключа. Затем получатель расшифровывает сообщение с открытым ключом, чтобы восстановить симметричный ключ. Поскольку симметричный ключ обычно короткий, для полной безопасности требуется заполнение, а доказательства безопасности для схем заполнения часто неполны.[1] KEM упрощают процесс, генерируя случайный элемент в конечная группа лежащая в основе системы открытого ключа и получая симметричный ключ путем хеширования этого элемента, устраняя необходимость в заполнении.
Пример использования шифрования RSA
Используя те же обозначения, что и в ЮАР системная статья, скажем Алиса передала свой открытый ключ к Боб, сохраняя при этом свой закрытый ключ, как обычно. Затем Боб хочет отправить симметричный ключ M Алисе. M может быть, например, 128- или 256-битный ключ AES. Обратите внимание, что открытый ключ п обычно составляет 1024 бита или даже больше, поэтому намного больше, чем типичные симметричные ключи. Если е достаточно мал, чтобы , то шифрование можно быстро взломать, используя обычную целочисленную арифметику.[2]
Чтобы избежать такой потенциальной слабости, Боб сначала поворачивает M в большее целое число с помощью согласованного обратимого протокола, известного как схема заполнения, Такие как OAEP. Затем он вычисляет зашифрованный текст соответствует:
Алиса может поправиться из используя ее показатель закрытого ключа следующим расчетом:
Данный , она восстанавливает исходное сообщение M путем изменения схемы заполнения.
С KEM процесс упрощается следующим образом:[3]
Вместо генерации случайного симметричного ключа M, Боб сначала генерирует случайный м, . Он выводит свой симметричный ключ M к , куда KDF это ключевая деривационная функция, например криптографический хеш. Затем он вычисляет зашифрованный текст соответствующий м:
Затем Алиса выздоравливает из используя ее показатель закрытого ключа тем же способом, что и выше:
Данный , она может восстановить симметричный ключ M к .
KEM устраняет сложность схемы заполнения, и доказательства, необходимые для демонстрации безопасности заполнения.[1] п. 4 Обратите внимание, что пока M может быть вычислено из m в подходе KEM, обратное невозможно, если предполагается, что функция деривации ключа является односторонней. Злоумышленник, который каким-то образом выздоравливает M не могу получить открытый текст м. С подходом заполнения он может. Таким образом, говорят, что KEM инкапсулирует ключ.
Обратите внимание, что если то же самое м используется для инкапсуляции ключей для е или более получателей, и получатели имеют один и тот же показатель степени е, но разные р, д, и п, тогда можно поправиться м через Китайская теорема об остатках. Таким образом, если необходимо вычислить инкапсуляции ключей для нескольких получателей, независимые значения м должен быть использован.
Подобные методы доступны для Диффи-Хеллман шифрование и другие методы с открытым ключом.[4]
Рекомендации
- ^ а б Вариант OAEP с надежным подтверждением безопасности - Проект 1.0, Якоб Йонссон, 2002 г.
- ^ RSA (алгоритм) # Атаки на простой RSA
- ^ Инкапсуляция ключей: новая схема шифрования с открытым ключом Рабочая группа по безопасности XML F2F, май 2009 г.
- ^ ПЭК-КЭМ для ECC