Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[52]

связей DES [1143], избегайте их.

Режим OFB выполняет XOR над потоком ключей и текстом. Этот поток ключей со временем повторяется. Важно, чтобы он не повторялся для того же ключа, в противном случае нарушается безопасность . Когда размер обратной связи равен размеру блока, блочный шифр переставляет m-битовые значения (где m - это размер блока), и средняя длина цикла составляет 2™ -1. При длине блока 64 бита это очень большое число. Когда размер обратной связи n меньше длины блока, средняя длина цикла падает до приблизительно 2"*. Для 64-битного шифра это только * - что явно недостаточно.

Потоковые шифры в режиме OFB

Потоковые шифры также могут работать в режиме OFB. В этом случае ключ влияет на функцию следующ его состояния (см. -4-й). Функция выхода не зависит от ключа, очень часто она является чем-то простым, напр и-мер, одним битом внутреннего состояния или результатом XOR нескольких битов внутреннего состояния. Криптографически сложной является функция следующего состояния, которая зависит от ключа . Этот метод также называется внутренней обратной связью [291], потому что механизм обратной связи является вложенным по отношению к алгоритму генерации ключей .

Рис. 9-13. Генератор потока ключей в режиме с выходной обратной связью.

В одном из вариантов этого режима ключ определяет только начальное состояние генератора потока ключей . После того, как ключ определит внутреннее состояние генератора, генератор работает, не подвергаясь воздейс т-виям извне.

9.9 Режим счетчика

Блочные шифры в режиме счетчика используют в качестве входов алгоритма последовательные номера [824, 498, 715]. Для заполнения регистра используется счетчик, а не выход алгоритма шифрования . После шифрования каждого блока счетчик инкрементируется на определенную константу, обычно единицу . Для этого режима свойства синхронизации и распространения ошибки такие же, как и для OFB. Режим счетчика решает проблему n-битового выхода режима OFB, где n меньше длины блока.

К счетчику не предъявляется никаких особых требований, он не должен проходить по порядку все возмо ж-ные значения. В качестве входа блочного алгоритма можно использовать генераторы случайных чисел, описа н-ные в главах 16 и 17, независимо от того, являются ли они криптографически безопасными или нет .

Потоковые шифры в режиме счетчика

У потоковых шифров в режиме счетчика простые функции следующего состояния и сложные функции вых ода, зависящие от ключа. Этот метод, показанный на -5-й, был предложен в [498, 715]. Функция следующего состояния может быть чем-то простым, например, счетчиком, добавляющим единицу к предыдущему состо я-нию.

Рис. 9-14. Генератор потока ключей в режиме счетчика.

Потоковый шифр в режиме счетчика может генерировать i-ый бит, ki, без выдачи всех предшествующих ключевых битов. Просто установите счетчик вручную в i-ое внутреннее состояние и генерируйте бит. Это полезно для закрытия файлов данных с произвольным доступом, можно расшифровать конкретный блок данных не расшифровывая целый файл.

9.10 Другие режимы блочных шифров

Режим сцепления блоков

Для использования блочного алгоритма в режиме сцепления блоков (block chaining, BC), просто выполните XOR входа блочного шифра и результата XOR всех предыдущих блоков шифротекста. Как и для CBC используется IV. Математически это выглядит как:

C, = Ek(P, Q F*; F, I = F, © C, P, = F, © *(C,); Fi* I = F, © Ci

Как и CBC, обратная связь процесса BC приводит к распространению ошибки в открытом тексте . Главная


проблема BC заключается в том, что из-за того, что дешифрирование блока шифротекста зависит от всех пр е-дыдущих блоков шифротекста, единственная ошибка шифротекста приведет к неправильной расшифровке всех последующих блоков шифротекста.

Режим распространяющегося сцепления блоков шифра

Режим распространяющегося сцепления блоков шифра (propagating cipher block chaining, PCBC) [1080] похож на режим CBC за исключением того, что и предыдущий блок открытого текста, и предыдущий блок шифротекста подвергаются операции XOR с текущим блоком открытого текста перед шифрованием (или после шифрования) (см. -6-й).

Ci = E*P, © Ci I © P, I) P* = Cj I © Pi I © a*,)

PCBC используется в Kerberos версии 4 (см. раздел 24.5) для выполнения за один проход и шифрования, и проверки целостности. В режиме PCBC ошибка шифротекста приводит к неправильному дешифрированию всех последующих блоков. Это означает, что проверка стандартного блока в конце сообщения обеспечивает целос т-ность всего сообщения.

Рис. 9-15. Режим распространяющегося сцепления блоков шифра.

К несчастью в этом режиме существует одна проблема [875]. Перестановка двух блоков шифротекста приводит к неправильной расшифровке двух соответствующих блоков открытого текста , но из-за природы операции XOR над открытым текстом и шифротекстом, дальнейшие ошибки компенсируются. Поэтому, если при проверке целостности проверяются только несколько последних блоков расшифрованного открытого текста, можно получить частично испорченное сообщение. Хотя никто до сих пор не додумался, как воспользоваться этой сл а-бостью, Kerberos версии 5 после обнаружения ошибки переключается в режим CBC.

Сцепление блоков шифра с контрольной суммой

Сцепление блоков шифра с контрольной суммой (cipher block chaining with checksum, CBCC) представляет собой вариант CBC [1618]. Сохраняйте значение XOR всех уже зашифрованных блоков открытого текста, выполняя для каждого текущего блока открытого текста перед его шифрованием XOR с сохраняемым значением. CBCC обеспечивает, что любое изменение любого блока шифротекста изменит результат дешифровки п о-следнего блока. Если последний блок содержит какую-нибудь константу или служит для проверки целостности , то целостность расшифрованного открытого текста может быть проверена с минимальными дополнительными накладными расходами.

Выходная обратная связь с нелинейной функцией

Выходная обратная связь с нелинейной функцией (output feedback with a nonlinear function, OFBNLF) [777] представляет собой вариант и OFB, и ECB, где ключ изменяется с каждым блоком :

C, = Ek*P*, K* = Edit, ,1 P, = a*,); Ki = E*K, I)

Ошибка одного бита шифротекста распространяется только на один блок открытого текста . Однако, если бит теряется или добавляется, то ошибка распространяется до бесконечности . С блочным алгоритмом, использующим сложный алгоритм планирования ключей, этот режим работает медленно . Я не знаю, как выполнять криптоанализ этого режима.

Прочие режимы

Возможны и другие режимы, хотя они используются нечасто . Сцепление блоков открытого текста (plaintext block chaining, PBC) похоже на CBC за исключением того, что операция XOR выполняется для с блока открытого текста и для предыдущего блока открытого текста, а не блока шифротекста . Обратная связь по открытому тексту (plaintext feedback, PFB) похожа на CFB за исключением того, что для обратной связи используется не шифротекст, а открытый текст. Существует также сцепление блоков шифротекста по различиям открытого те к-ста (cipher block chaining of plaintext difference , CBCPD). Я уверен, что можно найти еще таинственнее .

Если у криптоаналитика есть машина для поиска ключей грубой силой, то он сможет раскрыть ключ, если угадает один из блоков открытого текста. Некоторые из упомянутых странных режимов, по сути, являются д о-полнительным шифрованием перед использованием алгоритма шифрования : например, XOR текста и фиксированной секретной строки или перестановка текста . Почти все отклонения от стандартов помешают подобному криптоанализу.


9.11 Выбор режима шифра

Если вашей основной заботой являются скорость и простота , то ECB является самым простым и самым б ы-стрым способом использовать блочный шифр . Помимо уязвимости к вскрытию повтором , алгоритм в режиме ECB проще всего криптоанализировать. Я не советую использовать ECB для шифрования сообщений.

ECB хорошо использовать для шифрования случайных данных, например, других ключей . Так как данные невелики по размеру и случайны, недостатки ECB не существенны для такого применения.

Для обычного открытого текста используйте CBC, CFB или OFB. Конкретный режим зависит от ваших требований. В приведены безопасность и эффективность различных режимов .

Для шифрования файлов лучше всего подходит CBC. Значительно увеличивается безопасность, и при поя в-лении ошибок в хранимых данных почти никогда не бывает сбоев синхронизации . Если ваше приложение -программное, то CBC почти всегда будет лучшим выбором.

Табл. 9-1.

Краткий обзор режимов работы блочных шифров

Security:

-Plaintext patterns are not concealed.

-Input to the block cipher Is not randomlzed; It Is the same as the plaintext. + More than one message can be encrypted with the same

-plaintext Is easy to manipulate; blocks can be removed, repeated, or Interchanged.

Efficiency: + Speed is the same as the block cipher.

-Clphertext Is up to one block longer than the plaintext, due to padding.

-No preprocessing is possible. *Processing is paraUelizable. Fault-tolerance:

-A ciphertext error affects one full block of plaintext.

-Synchronization error is unrecoverable. CFB:

Security:

+ Plaintext patterns are concealed. + Input to the block cipher is randomized. + More than one message can be encrypted with the same key, provided that a different IV is used. +/- Plaintext is somewhat difficult to manipulate; blocks call be removed from the beginning and end of the message, bits of the first block can be changed, and repetition allows some controlled changes.

Efficiency: + Speed is the same as the block cipher.

-Ciphertext is the same size as the plaintext, not counting the IV.

+/- Encryption is not paraUelizable; decryption is paral- Idizable and has a random-access property.

-Some preprocessing is possible before a block is seen; the Previous ciphertext block can be encrypted. +/- Encryption is not parallelizable; decry p-tion is paral- felizable and has a random-access property.

Fauh-toterance:

-A ciphertext error affects the corresponding bit of plaintext and the next full block.

+ Synchronization errors of full block sizes are recoverable. I. -bit CFB can recover from the addition or loss of single bits.

Security:

+ Plaintext patterns are concealed by XORing with previous ciphertext block.

+ Input to the block cipher is randomized by XORing with the previous ciphertext block.

+ More than one message can be encrypted with the same key.

+/- Plaintext is somewhat difficult to manipulate; blocks can be removed from the beginning and end of the message, bits of the first block can be changed, and repetition allows some controlled changes.

Efficiency: + Speed is the same as the block cipher.

-Ciphertext is up to one block longer than the plaintext, not counting the IV.

-No preprocessing is possible.

+/- Encryption is not paraUelizable; decryption is paral- lelizable and has a random-access property. Wau*-toterance:

-A ciphertext error affects one full block of plaintext and the corresponding bit in the next block.



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120] [стр.121] [стр.122] [стр.123] [стр.124] [стр.125] [стр.126] [стр.127] [стр.128] [стр.129] [стр.130] [стр.131] [стр.132] [стр.133] [стр.134] [стр.135] [стр.136] [стр.137] [стр.138] [стр.139] [стр.140] [стр.141] [стр.142] [стр.143] [стр.144] [стр.145] [стр.146] [стр.147] [стр.148] [стр.149] [стр.150] [стр.151] [стр.152] [стр.153] [стр.154] [стр.155] [стр.156] [стр.157] [стр.158] [стр.159] [стр.160] [стр.161] [стр.162] [стр.163] [стр.164] [стр.165] [стр.166] [стр.167] [стр.168] [стр.169] [стр.170] [стр.171] [стр.172] [стр.173] [стр.174] [стр.175] [стр.176] [стр.177] [стр.178] [стр.179] [стр.180] [стр.181] [стр.182] [стр.183] [стр.184] [стр.185] [стр.186] [стр.187] [стр.188] [стр.189] [стр.190] [стр.191] [стр.192] [стр.193] [стр.194] [стр.195] [стр.196] [стр.197] [стр.198] [стр.199] [стр.200] [стр.201] [стр.202] [стр.203]