Оптимальное асимметричное заполнение шифрования - Optimal asymmetric encryption padding
В криптография, Оптимальное заполнение асимметричным шифрованием (OAEP) это схема заполнения часто используется вместе с Шифрование RSA. OAEP был представлен Белларе и Rogaway,[1] и впоследствии стандартизированы в PKCS # 1 v2 и RFC 2437.
Алгоритм OAEP представляет собой форму Сеть Фейстеля который использует пару случайные оракулы G и H для обработки открытого текста до асимметричное шифрование. В сочетании с любым безопасным односторонняя перестановка люка , эта обработка доказана в случайная модель оракула получить комбинированную схему, которая семантически безопасный под атака по выбранному открытому тексту (IND-CPA). При реализации с определенными перестановками лазейки (например, RSA) OAEP также оказывается защищенным от атака по выбранному зашифрованному тексту. OAEP можно использовать для создания преобразование по принципу "все или ничего".
OAEP выполняет две следующие задачи:
- Добавьте элемент случайности, который можно использовать для преобразования детерминированное шифрование схема (например, традиционная ЮАР ) в вероятностный схема.
- Предотвратить частичное дешифрование зашифрованных текстов (или утечку другой информации), гарантируя, что злоумышленник не сможет восстановить какую-либо часть открытого текста, не имея возможности инвертировать односторонняя перестановка люка .
Первоначальная версия OAEP (Bellare / Rogaway, 1994) показывала форму "понимание открытого текста "(что, по их утверждению, подразумевает защиту от атака по выбранному зашифрованному тексту ) в модели случайного оракула, когда OAEP используется с любой перестановкой лазейки. Последующие результаты противоречили этому утверждению, показывая, что OAEP только IND-CCA1 безопасный. Однако оригинальная схема была доказана в случайная модель оракула быть IND-CCA2 безопасен, когда OAEP используется с перестановкой RSA с использованием стандартных показателей шифрования, как в случае RSA-OAEP.[2]Улучшенная схема (называемая OAEP +), которая работает с любой односторонней перестановкой лазейки, была предложена компанией Виктор Шуп чтобы решить эту проблему.[3]Более поздние исследования показали, что в стандартная модель (то есть, когда хеш-функции не моделируются как случайные оракулы), невозможно доказать безопасность IND-CCA2 RSA-OAEP при предполагаемой жесткости Проблема RSA.[4][5]
Алгоритм
На диаграмме
- п - количество битов в модуле RSA.
- k0 и k1 - целые числа, зафиксированные протоколом.
- м это сообщение в виде открытого текста, (п − k0 − k1 ) -битовая строка
- г и ЧАС находятся случайные оракулы такие как криптографические хеш-функции.
- ⊕ - операция xor.
Чтобы закодировать,
- сообщения дополняются k1 нули быть п − k0 бит в длину.
- р это случайно сгенерированный k0-битовая строка
- г расширяет k0 кусочки р к п − k0 биты.
- Икс = м00...0 ⊕ г(р)
- ЧАС уменьшает п − k0 кусочки Икс к k0 биты.
- Y = р ⊕ ЧАС(Икс)
- На выходе Икс || Y где Икс показан на схеме как крайний левый блок и Y как крайний правый блок.
Использование в RSA: закодированное сообщение затем можно зашифровать с помощью RSA. Детерминированного свойства RSA теперь можно избежать за счет кодирования OAEP.
Чтобы расшифровать,
- восстановить случайную строку как р = Y ⊕ ЧАС(Икс)
- восстановить сообщение как м00...0 = Икс ⊕ г(р)
Безопасность
"все или ничего "безопасность заключается в том, что для восстановления м, нужно восстановить весь Икс и весь Y; Икс требуется для восстановления р от Y, и р требуется для восстановления м от Икс. Поскольку любой измененный бит криптографического хеша полностью меняет результат, весь Икс, и весь Y оба должны быть полностью восстановлены.
Реализация
В стандарте PKCS # 1 случайные оракулы г и ЧАС идентичны. Стандарт PKCS # 1 также требует, чтобы случайные оракулы были MGF1 с соответствующей хеш-функцией.[6]
Смотрите также
использованная литература
- ^ М. Белларе, П. Рогавей. Оптимальное асимметричное шифрование - как зашифровать с помощью RSA. Расширенный реферат в достижениях в криптологии - Еврокрипт '94 Труды, Конспект лекций по информатике Vol. 950, изд. A. De Santis, Springer-Verlag, 1995. полная версия (pdf)
- ^ Эйитиро Фудзисаки, Тацуаки Окамото, Дэвид Пойнтшеваль и Жак Стерн. RSA - OAEP безопасен в предположении RSA. В Дж. Килиан, ред., Достижения в криптологии - КРИПТО 2001, т. 2139 конспектов лекций по информатике, SpringerVerlag, 2001. полная версия (pdf)
- ^ Виктор Шоуп. OAEP пересмотрен. Исследовательская лаборатория IBM в Цюрихе, Saumerstr. 4, 8803 Рушликон, Швейцария. 18 сентября 2001 г. полная версия (pdf)
- ^ П. Пайе и Ж. Вильяр, Односторонняя торговля против безопасности выбранного зашифрованного текста при шифровании на основе факторинга, Достижения в криптологии - Asiacrypt 2006.
- ^ Д. Браун, Какие хэши делают RSA-OAEP безопасным?, IACR ePrint 2006/233.
- ^ Браун, Дэниел Р. Л. (2006). «Какие хэши делают RSA-OAEP безопасным?» (PDF). IACR Cryptology ePrint Archive. Получено 2019-04-03.