Зашифрование
Входными данными для процедур шифрования является строка (8-бит) с данными D, а также параметры алгоритма RSA (п, е). Строка D имеет длину в октетах не более, чем к - 11, где к - длина в октетах модуля п. Поскольку процесс шифрования не гарантирует контроля целостности данных, она обеспечивается за счет формата представления информации с вероятностью 2"16. Процесс шифрования состоит из следующих шагов :
1. Форматирование строки данных. Строка октетов D преобразуется в строку ЕВ путем дописывания служебной информации и имеет следующий формат: ЕВ = 00||BT||PS||00||D, где || - операция конкатенации строк. Значение ВТ указывает на тип строки ЕВ. В существующей версии стандарта ВТ может принимать значение 00, 01 или 02. Для операции с секретным ключом используются значения 00 и 01, а для операции с открытыми ключами - значение 02. PS являются дополнительными данными (набивка) длиной к - 3 - ||D|| (||D|| - длина D в октетах) и используются для того, чтобы длина ЕВ была эквивалентна к. В случае если ВТ = 00, то PS содержит значения 00; если ВТ = 01, то PS содержит ff; если ВТ = 02, то PS содержит псевдослучайные ненулевые значения. Использование значений 00 в ЕВ обеспечивает уверенность в том, что при преобразовании ЕВ в целое число полученное значение не будет больше п. Для значения ВТ = 00 строка D должна начинаться с ненулевого октета или иметь известную длину, чтобы обратное форматирование было произведено однозначно. Для типов блока 01 и 02 обратное форматирование тоже производится однозначно, поскольку PS не содержит нулевых октетов и к тому же отделен от D значением 00. При использовании ВТ = 02 псевдослучайное значение PS должно генерироваться для каждого сообщения отдельно. При ВТ = 02 необходимо, чтобы длина PS в октетах была меньше 8; данное требование обусловлено соображениями безопасности.
2. Перевод строки октетов в целочисленное значение осуществляется
в соответствии со следующим равенством: х - J^^EBj, где ЕВ', целочисленное значение i-ro октета.
3. RSA вычисления у = хе mod n.
4. Перевод целочисленного значения у в строку октетов. Полученная таким образом строка и будет результатом зашифрования сообщения D.