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