В криптографии , Optimal Asymmetric Encryption Padding ( OAEP ) является схема набивки часто используется вместе с шифрованием RSA . УАМИАЭ был введен Bellare и Rogaway , [1] , а затем стандартизированы в PKCS # 1 v2 и RFC 2437.
Алгоритм OAEP - это разновидность сети Фейстеля, которая использует пару случайных оракулов G и H для обработки открытого текста перед асимметричным шифрованием . В сочетании с любой защищенной односторонней перестановкой лазейки эта обработка, как доказано в модели случайного оракула, приводит к комбинированной схеме, которая семантически безопасна при атаке с выбранным открытым текстом (IND-CPA) . При реализации с определенными перестановками лазейки (например, RSA) OAEP также оказывается защищенным от атаки с выбранным зашифрованным текстом . OAEP можно использовать для построения преобразования типа " все или ничего" .
OAEP выполняет две следующие задачи:
- Добавьте элемент случайности, который можно использовать для преобразования детерминированной схемы шифрования (например, традиционный RSA ) в вероятностную схему.
- Предотвратите частичное дешифрование зашифрованных текстов (или утечку другой информации), гарантируя, что злоумышленник не сможет восстановить какую-либо часть открытого текста, не имея возможности инвертировать одностороннюю перестановку лазейки .
Первоначальная версия OAEP (Bellare / Rogaway, 1994) продемонстрировала форму « осведомленности об открытом тексте » (которая, как они утверждали, подразумевает защиту от атаки с выбранным зашифрованным текстом ) в модели случайного оракула, когда OAEP используется с любой перестановкой лазейки. Последующие результаты противоречили этому утверждению, показывая, что OAEP защищен только IND-CCA1 . Однако исходная схема была доказана в модели случайного оракула как безопасная IND-CCA2, когда OAEP используется с перестановкой RSA с использованием стандартных показателей шифрования, как в случае RSA-OAEP. [2] Для решения этой проблемы Виктор Шуп предложил улучшенную схему (называемую OAEP +), которая работает с любыми односторонними перестановками с лазейками .[3] Более поздняя работа показала, что в стандартной модели (то есть, когда хеш-функции не моделируются как случайные оракулы) невозможно доказать безопасность IND-CCA2 RSA-OAEP при предполагаемой сложности проблемы RSA . [4] [5]
Алгоритм [ править ]
На диаграмме
- n - количество битов в модуле RSA.
- k 0 и k 1 - целые числа, зафиксированные протоколом.
- m - текстовое сообщение, ( n - k 0 - k 1 ) -битная строка
- G и H - случайные оракулы, такие как криптографические хеш-функции .
- ⊕ - операция xor.
Чтобы закодировать,
- сообщения дополняются k 1 нулями, чтобы иметь длину n - k 0 бит.
- r - это случайно сгенерированная k 0- битная строка
- G расширяет k 0 битов r до n - k 0 битов.
- X = m 00 ... 0 G ( г )
- H уменьшает n - k 0 битов X до k 0 битов.
- Y = г ⊕ H ( X )
- На выходе получается X || Y, где X показан на диаграмме как крайний левый блок, а Y как крайний правый блок.
Использование в RSA: закодированное сообщение можно затем зашифровать с помощью RSA. Детерминированного свойства RSA теперь можно избежать за счет кодирования OAEP.
Чтобы расшифровать,
- восстановить случайную строку как r = Y ⊕ H ( X )
- восстановить сообщение как m 00 ... 0 = X ⊕ G ( r )
Безопасность [ править ]
Безопасность " все или ничего " заключается в том, что для восстановления m необходимо восстановить весь X и весь Y ; Х требуется для восстановления г из Y , а т требуется восстановить м от X . Поскольку любой измененный бит криптографического хеша полностью изменяет результат, весь X и весь Y должны быть полностью восстановлены.
Реализация [ править ]
В стандарте PKCS # 1 случайные оракулы G и H идентичны. Стандарт PKCS # 1 также требует, чтобы случайные оракулы были MGF1 с соответствующей хэш-функцией. [6]
См. Также [ править ]
- Инкапсуляция ключей
Ссылки [ править ]
- ^ M. Bellare , P. Rogaway . Оптимальное асимметричное шифрование - как зашифровать с помощью RSA . Расширенная аннотация в журнале «Достижения в криптологии» -Труды Eurocrypt '94, Lecture Notes in Computer Science Vol. 950, изд. A. De Santis, Springer-Verlag , 1995. полная версия (pdf)
- ^ Eiichiro Фуджисаки, Tatsuaki Окамото, Дэвид Pointcheval, и Жак Стерн . RSA - OAEP безопасен в предположении RSA . В J. Kilian, ed., Advances in Cryptology - CRYPTO 2001, vol. 2139 конспектов лекций по информатике, SpringerVerlag, 2001. полная версия (pdf)
- ↑ Виктор Шоуп. Пересмотр OAEP . Исследовательская лаборатория IBM в Цюрихе, Saumerstr. 4, 8803 Рушликон, Швейцария. 18 сентября 2001 г. полная версия (pdf)
- ^ П. Пайе и Дж. Вильяр, Односторонняя торговля против безопасности выбранного зашифрованного текста при шифровании на основе факторинга , Достижения в криптологии - Asiacrypt 2006.
- ^ Д. Браун, Какие хэши делают RSA-OAEP безопасным? , IACR ePrint 2006/233.
- ^ Браун, Дэниел RL (2006). "Какие хэши делают RSA-OAEP безопасным?" (PDF) . IACR Cryptology ePrint Archive . Проверено 3 апреля 2019 .