Данная схема является простой модификацией теоретической схемы, изложенной нами в начале раздела 10.1.1. Она включена в стандарт для совместимости со старыми версиями и на момент написания этого учебника не рекомендовалась к реализации в новых приложениях.
На вход алгоритма шифрования подаются следующие параметры.
Алгоритм 10.2 (Алгоритм зашифрования в схеме RSAES).
- 1. Вычислить случайную последовательность байт с*о,… 3.
- 2. Определить двоичный вектор (.s0,…, sn-i) длины п байт
- (So, • •. ,*"-i) = (0ж00||0т02|ЫЫ1 • • • ||ап_*_з||0*00||&|| • • • ||&-i)
- 3. Определить целое число s = ^Г=о' s"(256)
- 4. Определить вычет с = se (mod m) и представить его в виде вектора
с = (со, • •., с"_х), где Ci коэффициенты разложения с = с((256)'.
5. Определить в качестве шифртекста, соответствующего открытому тексту ?, последовательность байт (со,…, сп_х). ?
Как видно из приведенного алгоритма, схема шифрования RSAES отличается от теоретической схемы добавлением в сообщение псевдослучайного вектора а — (ад, • • -осп-к-з) — Длина данного вектора не менее восьми байт (64 бит). Это сделано для того, чтобы не допустить возможности появления алгебраических зависимостей между различными сообщениями и предотвращения атаки, описанной нами в разделе 10.1.1.9.
В качестве кода целостности, то есть информации, подтверждающей то, что сообщение было не изменено в ходе передачи по каналам связи, выступают два фиксированных байта ОтОО, 0ж02, расположенных в начале сообщения, значение которых не зависит от передаваемого сообщения. На взгляд разработчиков схемы, этого было явно недостаточно, что привело к появлению следующей модификации схемы.