Введение

Схема, часто используемая с шифрованием RSA

В криптографии оптимальное асимметричное заполнение (OAEP) — это схема заполнения, часто используемая совместно с шифрованием RSA. OAEP была предложена Белларе и Рогавеем и впоследствии стандартизирована в PKCS#1 v2 и RFC 2437. Алгоритм OAEP представляет собой форму сети Фейстеля, использующую пару случайных оракулов G и H для обработки открытого текста перед асимметричным шифрованием. В сочетании с любой безопасной односторонней функцией с секретным ключом эта обработка, доказано в модели случайного оракула, приводит к комбинированной схеме, семантически устойчивой к атаке с выбранным открытым текстом (IND CPA). При реализации с определенными односторонними функциями с секретным ключом (например, RSA), OAEP также доказано устойчива к атаке с выбранным шифротекстом. OAEP может быть использована для построения преобразования «все или ничего». OAEP удовлетворяет следующим двум целям:

Добавить элемент случайности, который можно использовать для преобразования детерминированной схемы шифрования (например, традиционной RSA) в вероятностную схему. Предотвратить частичное расшифрование шифротекстов (или утечку другой информации), гарантируя, что противник не сможет восстановить какую-либо часть открытого текста, не сумев обратить одностороннюю функцию с секретным ключом.

Оригинальная версия OAEP (Белларе/Рогавей, 1994) продемонстрировала форму «осведомленности об открытом тексте» (которая, по их утверждению, подразумевает устойчивость к атаке с выбранным шифротекстом) в модели случайного оракула при использовании OAEP с любой односторонней функцией с секретным ключом. Последующие результаты опровергли это утверждение, показав, что OAEP обеспечивает только устойчивость IND CCA1. Однако оригинальная схема была доказана в модели случайного оракула как устойчивая IND CCA2 при использовании OAEP с пермутацией RSA и стандартными степенями шифрования, как в случае RSA OAEP. Для решения этой проблемы Виктор Шоуп предложил улучшенную схему (называемую OAEP+), которая работает с любой односторонней функцией с секретным ключом. Более поздние исследования показали, что в стандартной модели (то есть, когда хеш-функции не моделируются как случайные оракулы) невозможно доказать устойчивость RSA OAEP IND CCA2, исходя из предполагаемой сложности задачи RSA.

Реализация

В стандарте PKCS#1 случайные оракулы тождественны. Стандарт PKCS#1 дополнительно требует, чтобы случайные оракулы представляли собой MGF1 с подходящей хеш-функцией.