"Шифрование PKCS#1 v2.0 обычно называется шифрованием OAEP" Где я могу это подтвердить?

Я слышал, что "шифрование PKCS#1 v2.0 обычно называется шифрованием OAEP".

Мне понадобится какой-то "официальный" документ, который скажет это, прежде чем использовать его в моем проекте. Я пытаюсь найти это без успеха. Любая идея, где я могу найти это?

Спасибо!

(кстати, может ли кто-нибудь с более чем 1500 репутацией создать тег PKCS#1? Спасибо!)

2 ответа

Решение

PKCS#1, до версии 2.0, описал единую схему шифрования. Начиная с версии 2.0, заполнение OAEP было добавлено в PKCS#1, а предыдущая схема шифрования задним числом называлась "v1.5" (потому что это единственная схема, которая была описана в версии 1.5 PKCS#1). В самой PKCS#1 две схемы шифрования называются "RSAES-OAEP" и "RSAES-PKCS1-V1_5".

Заполнение OAEP теоретически может использоваться со многими другими схемами асимметричного шифрования, но RSA (безусловно) является наиболее широко используемой системой асимметричного шифрования.

Иными словами, шифрование RSA с заполнением OAEP часто называют "шифрованием PKCS#1 v2.0", поскольку более старая схема называется "шифрование PKCS#1 v1.5", но это не "официальное" имя. И OAEP, и v1.5 являются стандартными и поддерживаются последними версиями PKCS#1, поэтому v1.5 является не менее схемой "v2.0", чем OAEP. Как я уже говорил выше, официальное название (как определено в PKCS#1) - "RSAES-OAEP".

Может быть так, что другой автор сказал, что это "обычно называется шифрованием OAEP", потому что PKCS#1 v2.0 - это когда OAEP был введен в стандарт, в соответствии с историей, содержащейся в этом PDF-файле. (см. стр. 56). Я не знаю, действительно ли кто-то обращается к версии 2.0 как OAEP. Следует отметить, что я не очень вовлечен в использование этих стандартов, так что это может быть так, и я бы этого не знал.

(отредактировано для орфографических / грамматических ошибок)

Использовать источник

Это можно подтвердить, переходя к спецификации PKCS #1. PKCS #1 был опубликован в разных формах разными организациями. Легче всего найти (неофициальные) версии, опубликованные IETF.

  • RFC 2437 для PKCS #1: Спецификации криптографии RSA, версия 2.0

В PKCS #1 версии 1.5 не было OAEP. Поэтому его единственная схема шифрования впоследствии в версии 2.0 была названа "RSAES-PKCS1-V1_5". Официальное название второй схемы шифрования, представленной в версии 2.0, - "RSAES-OAEP" (схема шифрования RSA - оптимальное асимметричное заполнение шифрования).

  • RFC 2313 PKCS #1: шифрование RSA версии 1.5

Чтобы еще больше усложнить картину, в версии 2.1 было изменено определение RSAES-OAEP. Таким образом, RSAES-OAEP в PKCS #1 v2.0 несовместим с RSAES-OAEP в PKCS #1 v2.1 и v2.2.

  • RFC 3447 Стандарты криптографии с открытым ключом (PKCS) #1: Спецификации криптографии RSA, версия 2.1
  • RFC 8017 PKCS #1: Спецификации криптографии RSA, версия 2.2

Даже названия в разных версиях немного отличаются!

Делай или не делай, нет попытки

Лучше использовать официальный термин "РСАЭС-ОАЭП" вместе с номером версии.

Хотя "шифрование PKCS #1", вероятно, означает "шифрование OAEP", лучше не называть его так, потому что это неверно / неоднозначно:

  • PKCS #1 (v1.0) не имеет "OAEP".
  • PKCS #1 (v2.0 и выше) определяет несколько схем шифрования, из которых "OAEP" является только одной из них. Термин "шифрование PKCS #1" может технически означать схему шифрования RSAES-PKCS1-V1_5 (хотя такое использование редко).
  • PKCS #1 определяет примитив шифрования RSA (официально называемый "RSAEP"), поэтому термин имеет больше смысла в отношении этого. RSAES-OAEP состоит как из метода кодирования, так и из этого примитива шифрования.
  • Неясно, к какой из несовместимых версий RSAES-OAEP идет речь.

Кроме того, метод кодирования для RSAES-OAEP имеет параметры (какую хэш-функцию использовать и какую функцию генерации маски использовать). И помимо данных, зашифрованных RSAES-OAEP, могут быть еще "параметры кодирования". Так что для совместимости их тоже нужно четко указать.

Это ловушка!

Другие вопросы по тегам