Таблица 4.6.2.15. Описание алгоритма OAEP
Шаг |
Действие |
1 |
Подготовить дополнительные данные, как это описано в формате сообщения |
2 |
Если используется оператор шифрования EH или EXH, вычислить хэш SHA-1 для данных подлежащих DES-шифрованию |
3 |
Сформировать новый случайный ключ для DES-шифрования регулярной части данных |
4 |
Объединить DES-ключ, хэш SHA-1 данных (HD) перед DES-шифрованием (если оно применяется) и любые дополнительные данные, чтобы сформировать действительный блок данных ADB (Actual Data Block). |
5 |
Взять байт, содержащий код 0х03 (тип блока – BT), семь байтов нулей (байты верификации – V) и байт блока содержимого (BC) и положить в ADB, тем самым формируя блок данных (DB). DB= BT|BC|V|ADB |
6 |
Сгенерировать случайную 16-битовую строку E-Salt и вычислить H1(E-Salt). H1 выдает лидирующие байты хэша SHA-1 |
7 |
Вычислить А=DB A H1(E-Salt) |
8 |
Осуществить присвоение B= E-Salt A H2(A). Сформировать PDB, объединив А и В. Н2 предоставляет завершающие байты хэша SHA-1 |
9 |
Присвоить I случайное значение, не равное 0х00 или 0х80 |
10 |
Зашифровать полученный блок R с помощью RSA |
Алгоритм работа OAEP показан на рисунке 4.6.2.9.
В DB присутствуют только информационные элементы типа атомик (в нотации ASN.1). Каждый элемент DB кодируется согласно требованиям DER, но без тэгов и октетов длины. При преобразовании из DER-формата в DB к концу блока данных могут добавляться нули (0х00). При обратном преобразовании такие заполнители удаляются.