В криптографии, Оптимальное заполнение асимметричного шифрования (OAEP ) - это схема заполнения, часто используемая вместе с шифрованием RSA. OAEP был введен Bellare и Rogaway и впоследствии стандартизован в 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. Виктор Шоуп предложил улучшенную схему (называемую OAEP +), которая работает с любой односторонней перестановкой лазейки, для решения этой проблемы. Более поздняя работа показала, что в стандартной модели (то есть, когда хеш-функции не моделируются как случайные оракулы) невозможно доказать безопасность IND-CCA2 RSA-OAEP при предполагаемой жесткости Проблема RSA.
На диаграмме
Для кодирования сообщения
Использование в RSA: закодированное сообщение затем может быть зашифровано с помощью RSA. Детерминированного свойства RSA теперь можно избежать, используя кодировку OAEP.
Для декодирования
Безопасность «все или ничего » основана на том факте, что для восстановления m необходимо восстановить весь X и весь Y; X требуется для восстановления r из Y, а r требуется для восстановления m из X. Поскольку любой измененный бит криптографического хеша полностью изменяет результат, весь X и весь Y должны быть полностью восстановлены.
В стандарте PKCS # 1 случайные оракулы G и H идентичны. Стандарт PKCS # 1 также требует, чтобы случайные оракулы были MGF1 с соответствующей хэш-функцией.