Современная криптология - Брассар Ж.
Скачать (прямая ссылка):
Режимы операций 41
блок с,- шифртекста вычисляется как с,- = т,- ®р», где через р,-обозначены t старших битов D?Sfc(c,-_1). Содержимое сдвигового регистра изменяется отбрасыванием t значений его старших разрядов и конкатенацией к ним справа с,-, согласно формуле S{ = (2*в,-_! + с,) mod 264. Аналогичным образом осуществляется и дешифрование: для г = 1,2, ..., п точно таким же способом вычисляются pi и Si, после чего т,- восстанавливаются как ш,- = с,- фpi. Отметим, что при этом самые младшие 64 — t битов каждого результата DES-шифрования отбрасываются.
В режиме обратной связи по выходу (OFB) также имеется блок переменного размера t и сдвиговый регистр, который инициализируется некоторым значением so- Однако на этот раз при каждом новом использовании системы должны применяться разные SO) и поэтому перед началом передачи шифртекста их необходимо пересылать в открытом виде (таким образом, секретной здесь является только 56-битовая часть ключа к самого алгоритма DES). Пусть га, как обычно, представляется в виде mi m2 ¦ ¦ . га„. Тогда для г = 1,2, ..., п блок с,- вычисляется точно так же, как и в режиме СРВ: с,- = га,- ф pi, где через pi обозначены t значений старших разрядов D?5fc(s,_i). Отличие от СРВ заключается в том, что меняется содержимое сдвигового регистра. Официально утвержденная в NBS версия режима OFB устанавливает, что s,- = (2{Si-i + Pi) mod 264, однако в [135, 226] описываются слабости, существующие в этой схеме. Таким образом, при получении р,- лучше всего использовать t ^ 8, хотя для обеспечения обратной связи предпочтительнее, тем не менее, использовать t — 64. Поэтому, чтобы совместить эти два противоречивых требования, надежнее всего будет использовать вариант, основанный на «официальной» версии OFB режима: pi и с,- должны вычисляться так, как это уже было указано выше (с небольшим значением t), но при этом необходимо просто заменять Si на DESk(si-i) — обратите внимание, что тогда нам уже не нужен сдвиговый регистр. В рассматриваемом режиме DES применяется для генерации псевдослучайной последовательности P1P2 ¦ ¦ - Рп, которая тем самым используется как одноразовый шифр для открытого текста (см. § 4.5). Поскольку эта последовательность не зависит от открытого текста, то всякий раз, когда к и so фиксированы, будет вырабатываться один и тот же шифр-текст. Вот почему Sq каждый раз необходимо менять. Проце-
42 Системы с секретным ключом
Глава 3
дура дешифрования должна быть очевидна. Хотя этот режим и не является самосинхронизирующимся, зашифрованный в нем с помощью DES открытый текст прекрасно восстанавливается, даже если какой-то из блоков соответствующего шифртекста был получен с ошибками.
Уитфилд Диффи предложил некоторую модификацию режима OFB: так называемый режим счетчика. Этот режим отличается от OFB только тем, что в нем вместо сдвигового регистра используется счетчик, а изменения задаются простой формулой Si = 1 + Si-ij гДе «+» обозначает обычное арифметическое сложение. Если DES действительно является хорошим алгоритмом шифрования, то режим счетчика должен быть ничуть не слабее, чем OFB. Более того, если при работе в таком режиме в DES возникает какая-нибудь случайная ошибка, то при этом неправильно расшифровывается только один блок.
Несмотря на свою слабость, использование режима ЕСВ скорее всего неизбежно в прикладных программах баз данных, когда требуется произвольный доступ для чтения/записи к различным полям. Тем не менее, если произвольным должен быть только доступ для чтения, то последовательно зашифрованный файл может создаваться либо в СВС, либо в CFB режиме. Однако никогда не следует использовать ни режим OFB, ни режим счетчика, если шифруемый файл восприимчив к изменениям посредством добавления или стирания записей — смотрите упражнение 3.1 в [142].
Отметим, что в режимах CFB и OFB, а также в режиме счетчика, криптографическая система, которая лежит в основе их обсуждения (в нашем случае — это криптосистема DES), используется только для шифрования. По этой причине, криптографические системы с открытым ключом (см. § 4.3) типа RSA (см. § 4.4) должны использоваться только в режиме СВС, при условии, что необходимость в произвольном доступе для чтения/записи не вынудит использовать их в режиме ЕСВ.
Глава 4
Системы с открытым ключом
§ 1. Однонаправленные функции
Два понятия — однонаправленной функции и однонаправленной функции с «потайным ходом», или «лазейкой» — являются центральными для всей криптографии с открытым ключом. Рассмотрим произвольные множества X и У, а также некоторую функцию f:X —>У. Обозначим через f[X] область значений /. Функция f называется однонаправленной, если ее значение f(x) может быть легко вычислено для каждого аргумента х ? X, тогда как почти для всех у ? f[X] нахождение такого х ? X, что f(x) = у, является трудновычислимым. Однонаправленные функции не следует путать с функциями, которые являются математически необратимыми из-за того, что они не взаимнооднозначны или не «на» (то есть из-за того, что либо существует несколько различных значений х, таких что f(x) = у, либо же их нет вовсе).