1. Trang chủ
  2. » Công Nghệ Thông Tin

vkladimirov a a wi fu phần 6 ppsx

47 226 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 47
Dung lượng 3,96 MB

Nội dung

СТРУКТУРА И РЕЖИМЫ РАБОТЫ СОВРЕМЕННЫ S ШИФРОВ 237 Функция РС-2 не реализует какой-то алгоритм, основанный на сдвиге или отбрасывании битов, а просто пользуется предопределенной таблицей, в которой хранятся номера битов. Новая позиция каждого бита берется прямо из этой таблицы. Например, в позиции 1 от нача- ла таблицы РС-2 находится число 14, значит, 14-й бит входных данных попадет на первую позицию в выходных. Таблица РС-2 опубликована во многих источниках (см. стр. 274 книги Шейера «Applied Cryptography» (Прикладная криптография)). После применения таблицы РС-2 мы получаем 48-битовый подключ Ьц, пригодный для выполнения XOR. Из-за того что сдвиги зависят от номера шага, для создания каждого подключа используются различные части исходного ключа. Схемы работы алгоритма в разделе, посвященном криптографии, на странице Джона Саварда (John Savard) по адресу http://home.ecn.ab.ca/~jsavard/crypto/entry.htm так хо- роши, что мы не устояли перед искушением позаимствовать их. Иногда взгляд на иллюст- рацию заменяет тысячи строка кода! На рис. 11.1 показано все, что мы только что описали, причем слева представлена вся итерация DES, а справа - один шаг. Правило Керчкоффа и секретность шифра Возможно, вы задаетесь вопросом, почему внутреннее устройство шифра, являющегося правительственным стандартом США, было опубликовано в открытой печати. Ответ таков: засекречивание шифра не сулит ничего хорошего ни ему самому, ни его разработчикам и пользователям. Еще в 1883 году Жан Гильямен Юбер Виктор Франсуа Александр Огюст Кер- чкофф фон Нивенхоф (есть же люди с такими длинными именами) писал, что использован- ный ключ и функция шифра - это две совершенно разных вещи, а секретность криптосис- темы должна зависеть исключительно от ключа, но не от алгоритма. Примерно 111 лет спустя неизвестный хакер опубликовал в Internet исходный текст патентованного нераз- глашаемого алгоритма RC4, поместив его в список рассылки Cypherpunks. Вскоре после раскрытия структуры RC4 были разработаны несколько атак против него (однако эти ата- ки не связаны со слабостями протокола WEP, основанного на шифре RC4). Заметим, что сотрудники компании RSA Data Security, Inc., разработавшей RC4, считаются отличными криптографами и создали целый спектр различных промышленных шифров! Что же гово- рить о мелких компаниях, заявляющих, будто они создали высокоэффективный и безопас- ный секретный алгоритм шифрования? Зачастую они не могут предложить ничего боль- шего, чем вариация на тему R0T13 с одним шагом XOR. Получается, что, когда речь заходит о безопасности, у раскрытия структуры шифра, как и у раскрытия исходных текстов прог- рамм, имеются свои преимущества, и одно из них - публичное исследование. Еще одно преимущество открытости DES состоит в том, что теперь вы получили возмож- ность узнать об S-блоках, подключах, расширяющих, сжимающих и чистых перестановках на классическом, но все еще применяемом (напомним о шифре 3DES и унаследованном криптографическом программном и аппаратном обеспечении) примере. Теперь будет го- раздо проще объяснить, как работают шифры, созданные после DES, так что мы сэкономим много места и времени. Введение в стандарт 802.1 И: один шифр в помощь другому В качестве уместного примера упомянем функцию перемешивания пакетного ключа в про- токоле TKIP. Это пример компактного шифра Фейстеля, который разработали Дуг Уайтинг 238 А ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ (Doug Whiting) и Рональд Райвест (Ronald Rivest). Цель этой функции состоит в том, чтобы выработать пакетный ключ из временного ключа и IV либо порядкового номера в TKIP (TKIP Sequence Number - TSC). Полученный пакетный ключ служит безопасным начальным значением для протокола WEP, за счет чего устраняется опасность атаки типа FMS. Началь- ное значение можно вычислить перед использованием, что положительно сказывается на производительности сети. Рассмотрим более детально функцию перемешивания пакетного ключа в том виде, как она описана в предварительном варианте стандарта 802.Hi, имеющемся на момент написания книги. В предыдущей главе уже было сказано, что работа функции перемешивания состоит из двух этапов. Оба они полагаются на S-блок, который подставляет одно 16-битовое значе- ние вместо другого. Функция подстановки нелинейна и реализована в виде таблицы. Табли- цу можно реализовать в виде линейного массива из 65536 элементов, индексируемого 16-битовым числом (всего требуется 128 Кб), или двух массивов по 256 элементов, каж- дый из которых индексируется 8-битовым числом (1024 байт для хранения обоих масси- вов). Если используются маленькие таблицы, то старший байт будет служить для выбора 16-битового числа из одной таблицы, а младший - для выбора из другой. В этом случае выхо- дом S-блока является результат XOR над двумя выбранными 16-битовыми значениями. Входные данные, подаваемые на вход первого этапа, - это 80 бит из 128-битового времен- ного сеансового ключа (ТК), МАС-адрес передатчика (ТА) и 32 бит вектора инициализации IV (TSC). На выходе первого этапа (ТТАК) получается 80 бит, представленных в виде масси- ва из пяти 16-битовых значений ТТАКО, ТТАК1, ТТАК2, ТТАКЗ и ТТАК4. В описании алго- ритма этапа 1 эти значения трактуются как 8-битовые массивы ТАО. . ТА5 и ТКб. . ТК12. В вычислениях на этапе 1 используются операции XOR, ADD и поразрядное AND. Также упоминаются счетчик цикла i и временная переменная j для хранения индекса. В проце- дуре вызывается единственная функция, названная Мк16, которая порождает 16-битовое значение из двух 8-битовых: Mkl6(X,Y) = 256*X+Y. Алгоритм этапа 1 состоит из двух шагов. На первом шаге ТТАК инициализируется на основе IV и МАС-адреса, но без участия временного ключа. На втором шаге используется вышеупомянутый S-блок для того, чтобы подмешать биты ключа в 80-разрядный ТТАК, а переменной PHASE1__L00P_C0UNT присваивается значение 8. СТРУКТУРА И РЕЖИМЫ РАБОТЫ СОВРЕМЕННЫХ ШИФРОВ 239 ТТАКЗ <= ТТАКЗ + S[TTAK2 л « Mkl6(TK13 + J,TK12 + j) ] ТТАК4 <= ТТАК4 + S[ТТАКЗ л » Mkl6(TKl+j,TKO+j)]+i end Входными данными для второго этапа функции перемешивания временного ключа яв- ляются результат работы первого этапа (ТТАК), тк и младшие 16 бит TSC. Созданное на- чальное значение для WEP обладает внутренней структурой, согласующейся с исходной спецификацией WEP. Первые 24 бит начального значения передаются открытым текстом так же, как IV в старом варианте WEP. В предыдущей главе мы говорили, что эти 24 бит служат для доставки младших 16 бит TSC от передатчика приемнику. Оставшиеся 32 бит доставляются в поле Extended IV (Eiv) в порядке big-endian (старший байт слева). На этапе 2 значения тк и ТТАК представляются так же, как на этапе 1. Вырабатываемое начальное значение для WEP является массивом из 8-битовых значений от SeedO до Seedl5. TSC трактуется как еще один массив, состоящий из 16-битовых значений TSC0-TSC2. Нако- нец, в псевдокоде, описывающем алгоритм этапа 2 функции перемешивания, упоминается счет- чик цикла i и переменная РРК. Длина этой переменной 128 бит, она представляет собой массив 16-битовых значений, обозначаемых РРКО, , РРК7. При отображении 16-бито- вых значений РРК на 8-битовые значения генерируемого начального значения явно предпо- лагается порядок little-endian (старший байт справа). Так сделано из соображений совмести- мости с архитектурой хранения целых чисел на большинстве процессов, применяемых для реализации протокола TKIP. В вычислениях, которые производятся на этапе 2, участвуют операции XOR, ADD, AND, OR и поразрядный сдвиг вправо (»). При этом используются четыре функции: о Lo8 выделяет младшие 8 бит из 16-битового входного значения; о Hi8 выделяет старшие 8 бит из 16-битового входного значения; о RotRl циклически сдвигает 16-битовый аргумент на один бит вправо; о Мк16 уже встречалась при описании этапа 1. Этап 2 состоит из трех шагов: о на шаге 1 копируется ТТАК и привносятся 16 бит TSC; о шаг 2 - это применение S-блока; о на шаге 3 привносятся оставшиеся биты тк и определяется 24-разрядное значение IV, участвующего в протоколе WEP. Вход: промежуточный ключ ТТАКО ТТАК4, ТК и порядковый номер TKIP (TSC) . Выход: WEPSeedO WEPSeedl5 PHASE2-KEY-MIXING(ТТАКО ТТАК4, ТК, TSC) 240 ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ end return WEPSeedO WEPSeedl5 На шаге З этапа 2 вычисляются значения всех трех октетов IV. Алгоритм спроектирован так, чтобы исключить появление известных слабых ключей. Принимающее устройство лег- ко может реконструировать младшие 16 бит TSC, использованных передатчиком, путем сцепления первого и третьего октетов IV (второй игнорируется). Оставшиеся 32 бит TSC извлекаются из поля EIV. Итак, вы только что познакомились с любопытным случаем, ког- да некоторый шифр специально был спроектирован и реализован с целью исправить недо- статок другого шифра. Шифр - это еще не все: что такое режимы работы шифра Понимания принципов работа DES (равно как и любого другого симметричного блочного шифра, не исключая только что описанную функцию TKIP и шифр AES, который будет при- меняться в окончательной редакции стандарта 802.Hi) еще недостаточно. Очень важно также разобраться в том, что такое режим работы шифра. DES позволяет зашифровать 64 бит открытого текста и получить эквивалентный объем шифртекста, но что если нужно зашиф- ровать лишь 50 бит? Или 128? Или 200? Или 31337? Очевидное решение - разбить длинную строку на блоки по 64 бит и дополнить короткий блок какой-то предсказуемой комбинацией нулей и единиц. Это самый простой ре>ким блоч- ного шифра. Он называется режимом электронной кодовой книги (Electronic Codebook Mode - ЕСВ). Иными словами, если х = х г х 2 х 3 , то q - e k (Xi). К числу достоинств режима ЕСВ следует отнести возможность параллельного шифрования и дешифрирования на многопроцессорных системах и тот факт, что ошибка в шифртексте затрагивает только один блок данных. На этом достоинства режима ЕСВ и заканчиваются. В достаточно длинной строке данных обычно встре- чаются повторяющиеся последовательности, и разбиение на 64-битовые блоки не скрывает повторов. Если на основе анализа таких последовательностей удастся сделать вывод о том, какой фрагмент открытого текста соответствует фрагменту шифртекста, то можно провести СТРУКТУРА И РЕЖИМЫ РАБОТЫ СОВРЕМЕННЫХ ШИФРОВ 241 атаку повтора сеанса. Например, мы можем установить, что зашифрованные сообщения - это электронные письма, а повторяющиеся последовательности - их заголовки. Тогда можно вос- произвести заголовок, чтобы отправить письмо конкретному адресату. Но вместо обычного любовного послания в нем будет содержаться, скажем, программа на языке Visual Basic Script. Другая проблема, характерная для режима ЕСВ, - это короткая длина блока. Мы обнару- жили, что на машинах, работающих под управлением американской версии Debian Linux (в которой из-за экспортных ограничений все еще используется DES в режиме ЕСВ для шифро- вания пароля) максимальная длина пароля не может превышать 8 символов, а любой символ сверх того никак не сказывается на зашифрованном значении (иными словами, система пу- стит вас с паролем password, даже если настоящий пароль password% /4 *&) ) @! #0x69). Таким образом, возрастают шансы на успешное завершение атаки по словарю или методом полного перебора. Если вспомнить, что размер блока равен 64 бит, а один ASCII-символ за- нимает один байт, то причина указанного явления становится очевидной. И все же большин- ство администраторов, которым мы сообщили о нашем открытии, были озадачены. Иногда знание теории оказывается полезнее, чем может показаться на первый взгляд. Подводя итог, скажем, что режим ЕСВ имеет смысл использовать для шифрования корот- ких строк, например PIN-кодов или записей базы данных (возможность параллельного шифрования и дешифрирования больших баз данных иногда оказывается весомым преиму- ществом). Но для шифрования сильных паролей или больших объемов данных на него полагаться не стоит. Чтобы решить проблему воспроизведения, нужно сцепить 64-битовые блоки данных так, чтобы они стали взаимозависимыми. Поэтому далее мы рассмотрим режим сцепления бло- ков шифртекста (Cipher Block Chaining - СВС). Идея в том, чтобы выполнить операцию XOR между блоком открытого текста и ранее полученным блоком шифртекста еще перед тем, как шифровать открытый текст. Но при шифровании самого первого блока еще нет никакого шифртекста, поэтому вводится новый параметр - вектор инициализации (IV). Это всего лишь блок случайных данных того же размера, что и используемый в шифре (64 бит для DES и многих других симметричных шифров). Это может быть временной штамп, зна- чение, полученное от «устройства» /dev/urandom, или еще что-нибудь. IV необязательно держать в секрете, можно его передавать в открытом виде. Считайте, что это фиктивный зашифрованный блок. Именно так и обстоит дело в протоколе WEP, где IV передаются в беспроводной сети в открытом виде. Дешифратор заталкивает IV в регистр обратной связи перед началом дешифрирования, а потом он уже не используется. Повторим схему режима СВС. Пусть х = х а х 2 х 3 х п . Тогда Из-за применения IV шифртексты, получающиеся из открытых текстов, первые несколь- ко байтов которых схожи (например, заголовки протоколов LLC SNAP или IP), будут суще- ственно различаться. У режима СВС есть два основных недостатка: о сцепление делает невозможным параллельное шифрование (хотя параллельное де- шифрирование реализуемо); о ошибка в одном блоке распространяется на все последующие (сцепленные с ним), что, скорее всего, приведет к необходимости повторной передачи. 242 А ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ Но мы по-прежнему шифруем блоки фиксированного размера, неважно, сцепляются они или нет. А если нужно шифровать меньшие блоки или осуществлять шифрование бит за битом, не дожидаясь, пока придет целый блок? Для некоторых приложений (например, удаленных командных оболочек) данные нужно шифровать сразу - символ за символом (то есть 8-битовые блоки). У этой проблемы есть два решения: режимы с обратной связью по шифртексту (Cipher Feedback - CFB) и с обратной связью по выходу (Output Feedback - OFB). В режиме CFB мы начинаем помещать блоки генерируемого шифртекста в зашифро- ванное значение IV, а не в открытый текст: z a -e k (IV) С а = Xj л = Z, z 2 = e k (с г ) c 2 - x 2 л = z 2 В отличие от режима СВС, режим CFB позволяет посылать зашифрованные данные как от- крытый текст, а к z применяется операция XOR. В режиме СВС q генерируется путем шифрова- ния, а не XOR с ранее зашифрованными данными, а это значит, что можно посылать только блоки того размера, который определен для шифра. Конечно, генерировать ъ, перед каждым выполнением XOR накладно с точки зрения быстродействия и пропускной способности. Есть оценка, согласно которой производительность шифрования в режиме CFB уменьшается в m/n раз, где m- это размер блока шифра, an- число битов, шифруемых за раз. Например, шифр с размером блока 64 бит, применяемый для шифрования ASCII-символов в режиме CFB, будет работать в 64 / 8 = 8 раз медленнее, чем тот же шифр, применяемый для шифрования 64-битовых блоков в режиме ЕСВ или СВС. Замечание о распараллеливании шифрования в ре- жиме СВС относится и к режиму CFB. Но ошибка в блоке шифртекста распространится только на соответствующий ему открытый текст и следующий полный блок. Наконец, в режиме OFB нет сцепления блоков, а значит, нет и распространения ошибок. С другой стороны, блоки данных перестают быть взаимозависимыми, поэтому необходима какая-то форма внешней синхронизации (например, что-то подобное алгоритму CSMA/CA в сетях 802.11). Чтобы избавиться от сцепления, в режиме OFB из IV генерируется поток констант Zi, и между ними и открытым текстом выполняется операция XOR для шифрова- ния данных; z { не зависят ни от открытого текста, ни от шифртекста: z, - e k (IV) z i = e k (z i _ 1 ) Q = Xi л = Zi Поскольку существует лишь один поток Zi для шифрования и дешифрирования, то распа- раллеливание невозможно ни в том, ни в другом случае. Следовательно, число процессоров на посылающем и принимающем хостах не влияет ни на скорость работы шифра в режиме OFB, ни на пропускную способность. Правило m/n применимо к режиму OFB в той же мере, что и к CFB. А что можно сказать относительно режима счетчика (ССМ), используемого в стандар- те 802.Hi для шифра AES (Advanced Encryption Standard)? Он аналогичен только что рас- смотренному режиму OFB. В режиме OFB очередное значение ъ х вычисляется из предыду- щего по формуле ^ = e k (Zi_ a ). В режиме ССМ все еще проще: значения IV, получающиеся Поскольку существует лишь один поток ъ, для шифрования и дешифрирования, то распа- раллеливание невозможно ни в том, ни в другом случае. Следовательно, число процессоров на посылающем и принимающем хостах не влияет ни на скорость работы шифра в режиме OFB, ни на пропускную способность. Правило m/n применимо к режиму OFB в той же мере, что и к CFB. А что можно сказать относительно режима счетчика (ССМ), используемого в стандар- те 802.Hi для шифра AES (Advanced Encryption Standard)? Он аналогичен только что рас- смотренному режиму OFB. В режиме OFB очередное значение Zj вычисляется из предыду- щего по формуле Zj = e k (z i _ 1 ). В режиме ССМ все еще проще: значения IV, получающиеся ПОТОКОВЫЕ ШИФРЫ И БЕЗОПАСНОСТЬ В БЕСПРОВОДНЫХ СЕТЯХ 243 из монотонно увеличивающегося счетчика, шифруются и объединяются посредством XOR с блоками открытого текста, в результате чего и получается шифртекст: % - е к (IV) Ci = Xl Л = г г Наличие параметра п призвано подчеркнуть тот факт, что начальное значение может быть произвольным, а увеличиваться он может на любую выбранную константу или по некоторо- му правилу. На практике предполагается, что IV инициализируется на основе случайной строки (попсе), которая изменяется для каждого сообщения. Таким образом решается про- блема повторяющихся блоков в режиме ЕСВ. Конечно, получатель должен знать и IV, и п, то есть способ получения п необходимо стандартизировать, а IV передавать (возможно, в неза- шифрованном виде) перед началом безопасного обмена данными. После того как приемник и передатчик синхронизовались, для дешифрирования приходящих данных на приемном конце нужно лишь выполнить XOR. Поэтому отпадает нужда в специальной схеме дешифри- рования AES, а процедуры шифрования и дешифрирования можно распараллелить. Важный момент заключается в том, чтобы избежать повторного использования IV (вспомните о про- блеме повторяющихся блоков в режиме ЕСВ и атаке FMS на протокол WEP). Но резервирова- ния 48 бит для IV, по идее, достаточно, чтобы эта проблема не возникала. Мы посчитали, что на полнодуплексном канале 100BaseT (размер пакета 1500 бит) для исчерпания всего про- странства 48-битовых IV потребуется 127 лет, а современные беспроводные каналы пока еще медленнее, чем 100BaseT, и размеры пакетов в них обычно больше. Потоковые шифры и безопасность в беспроводных сетях Потоковые алгоритмы были придуманы для того, чтобы избежать падения скорости и пропус- кной способности, неизбежного из-за особенностей реализации блочных шифров в режимах CFB и OFB, применяемых для побитового шифрования данных. Идея потоковых шифров состо- ит в том, чтобы генерировать идентичные гаммы на стороне шифратора и дешифратора. Для шифрования и дешифрирования над открытым текстом и гаммой выполняется операция XOR. Для порождения гаммы применяются генераторы псевдослучайных чисел (PRNG), поэтому потоковые алгоритмы находятся где-то посередине между легко взламываемым шифром на базе XOR с предопределенным ключом и невзламываемым, но трудно реализуемым одноразо- вым блокнотом. Генераторы псевдослучайных чисел строятся на базе алгоритмов, которые вырабатывают на первый взгляд случайные, но все же воспроизводимые числа. Поскольку выработанную последовательность можно воспроизвести, то она не является истинно случай- ной. Однако результаты работы генератора должны выдержать целый ряд специально спроек- тированных тестов на случайность. Хорошим источником информации по генераторам псев- дослучайных чисел, где можно найти исходные тексты, а также подробное описание тестов, является сайт http://random.mat.sbg.ac.at/. Предложения правительства США, стандарты и требования к случайности результатов работы генераторов, а также критерии их оценки опубликованы на странице http://csrc.nist.gov/encryption/ tkrng.html. Генератор получа- ет на входе некоторые данные (называемые начальным значением (seed)) и на их основе 244 А ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ вырабатывает числа, которые выглядят случайными. Если взять другое начальное значение, то будут вырабатываться другие числа. Если же начальные значения одинаковы, то совпада- ют и результаты. Если раз за разом подавать на вход одно и то же начальное значение, то криптосистема станет предсказуемой и ее можно будет вскрыть. Поэтому часто использует- ся начальное значение большого размера, чтобы максимизировать объем шифртекста, кото- рый придется собрать потенциальному противнику для выявления повторяющихся строк. Именно поэтому начальные значения потоковых шифров не используются в качестве клю- чей (как вам понравится ключ из 65535 бит?). Разумеется, гаммы на обоих концах необходимо синхронизировать, иначе криптосисте- ма работать не будет. Синхронизация может быть обеспечена самим алгоритмом шифра. Такие потоковые шифры называются самосинхронизирующимися. В самосинхронизирую- щемся шифре каждый бит гаммы зависит от фиксированного числа предыдущих битов шифртекста. Значит, самосинхронизирующиеся шифры очень похожи на работу блочных шифров в режиме CFB. Но можно обеспечить синхронизацию и внешними средствами, так что она не будет зависеть от потока шифртекста. Такие потоковые шифры называются син- хронными. Вероятно, вы догадались, что они работают примерно так же, как блочные шиф- ры в режимах OFB или ССМ (AES в сетях 802.Hi). На сегодня самым распространенным потоковым шифром является синхронный шифр RC4, о котором мы уже говорили при обсуждении принципа Керчкоффа. Этот шифр по умолчанию применяется в протоколах SSL и WEP. В RC4 используются ключи с длиной от 0 до 256 бит. Применяется S-блок размером 8x8 для выполнения перестановок чисел от 0 до 255. Перестановка является функцией ключа. Шифр RC4 работает очень быстро, примерно в 10 раз быстрее DES. Для получения максимальной производительности RC4 следует реа- лизовывать аппаратно, как сделано в карте Cisco Aironet и во многих других беспроводных клиентских картах для реализации WEP. Быстродействие и является одной из основных причин, почему RC4 так широко применяется в сетевых протоколах. А как же история с взломом WEP, которую мы поведали в главе 8? Следует отличать пороки самих шифров и их практической реализации. Слабость WEP обусловлена не недостатками шифра RC4 как такового. RC4 выступает в роли генератора псевдослучайных чисел. Начальным значением для него служит комбинация секретного ключа (который не меняется и одинаков для всех хостов в беспроводной сети) и вектора инициализации IV, который и делает начальное значение уникальным. В протоколе WEP вектор IV занимает всего 24 бит - для криптографии это очень мало. Неудивительно, что после передачи достаточно большого объема данных в загруженной сети IV начинают по- вторяться. Но ведь выбор начального значения слишком малого размера - это не проблема генератора. На самом деле, в протоколе SSL ключи RC4 порождаются для каждого сеанса, а не единожды, как в классическом статическом варианте WEP. Поэтому для вскрытия SSL взломщик не сможет накопить достаточный объем данных для атаки на RC4, по крайней мере теоретически. В технологии HomeRF, ныне уже почти не применяемой (FHSS вместо 802.11b), размер IV составляет 32 бит, что заметно повышает безопасность по сравнению с сетями на базе стандарта 802.11b. Вместо того чтобы увеличивать длину IV, можно пойти по пути SSL и реализовать сеансовые или даже пакетные ключи и автоматически ротировать их по исте- чении короткого промежутка времени. Сеансовые и ротируемые ключи лежали в основе пер- воначального проекта устройств Cisco SAFE, а в спецификации 802.11i/WPA применяются как увеличенного размера IV (48 бит), так и динамическая ротация ключей. Наконец, компания RSA Labs предложила довольно простое и элегантное решение проблемы слабых IV в прото- коле WEP (с его деталями можно познакомиться на странице http://www.rsasecurity.com/ ЗАПРОС НА РАЗРАБОТКУ СТАНДАРТА AES 245 rsalabs/ technotes/wep.html). Криптографы из RSA вычислили, что если бы в WEP можно было отбросить первые 256 байт, выработанных генератором гаммы, перед тем, как гамма начина- ет объединяться с открытым текстом посредством XOR, то в беспроводной сети не было бы слабых IV. К сожалению, эта методика, равно как и упомянутое раньше предложение RSA по быстрому изменению ключей в пакетах, несовместима со все еще широко распространенной реализацией WEP. Тем не менее IEEE вместе с производителями беспроводного оборудования и программного обеспечения постепенно исправляются, о чем свидетельствует появление 802.11/i/WPA, Cisco SAFE и Agere/Proxim WEPPlus. Запрос на разработку стандарта AES В отличие от только что рассказанной истории с WEP, шифру DES все же свойственны внут- ренние пороки. Хотя сам алгоритм достаточно безопасен, но размер ключа в нем составляет всего 56 бит. Возможно, в те времена, когда DES проектировался, этого хватало, но с 1974 года мощности вычислительных устройств неизмеримо выросли. Интересно, что проектировщи- ки DES, вероятно, предвидели такое развитие событий и с самого начала предложили ключ длиной 128 бит. Но Агентство национальной безопасности отвергло это предложение по причинам, которые не вполне ясны (а может быть, наоборот, совершенно очевидны) истин- ному поборнику безопасности, так что в стандарте остался DES с 56-битовым ключом. В ию- ле 1998 года был создан фонд Electronic Frontier Foundation (EFF, http://www.eff.org), ко- торый профинансировал проект создания машины для взлома DES стоимостью меньше 250 тыс. долл., а на сайте http://www.distributed.net стартовал проект создания массив- но-параллельного программного обеспечения для взлома DES методом полного перебора. 19 января было сообщено о взломе DES за 56 ч, при этом проверялось 88 млрд ключей в секунду. На этом был завершен конкурс по взлому DES, спонсированный компанией RSA Labs. На повестку дня был поставлен вопрос о новом улучшенном стандарте. Не дожидаясь, пока DES будет взломан, 2 января 1997 года Национальный институт стан- дартов и технологий (NIST, http://www.nist.gov/) объявил о начале разработки стандарта AES и опубликовал формальное предложение подавать заявки до 12 сентября 1997 года. В условиях было сказано, что AES должен быть несекретным, опубликованным в печати ал- горитмом шифрования, доступным без лицензионных отчислений во всем мире. Кроме того, алгоритм должен реализовывать блочный симметричный шифр и поддерживать бло- ки размером 128 бит, а ключи длиной 128,192 и 256 бит. Состязание началось. 20 августа 1998 года на Первой конференции кандидатов AES (AES1) NIST назвал 15 кандидатов на звание шифра AES, а именно: CAST-256, CRYPTON, DEAL, DFC, E2, FROG, HPC, LOKI 197, MAGENTA, MARS, RC6, Rijndael, SAFER+, Serpend и Twofish. После Второй конференции канди- датов AES (AES2), проходившей 22 и 23 марта 1999 года в Риме, осталось только пять кан- дидатов: MARS, RC6, Rijndael, Serpend и Twofish. Эти финалисты были признаны одинаково безопасными, но еще надо было представить эффективную, быструю и нетребовательную к ресурсам реализацию. Наконец, 2 октября 2000 года NIST объявил, что в качестве стан- дарта AES выбран шифр Rijndael. Ниже мы кратко оценим всех финалистов конкурса, а также шифры Blowfish, IDEA и 3DES, предоставив вам возможность выбрать для своего хоста, сети или программного обес- печения наиболее подходящий вариант. Делая выбор, следует учитывать производитель- ность, способ реализации, лицензионные ограничения, а также безопасность шифра. 246 А ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ Для фирмы, занимающей консалтингом в области сетевой безопасности (например, Arhont, http://www.arhont.com), любое ухудшение качества сети может означать разрыв контрак- та и утрату репутации. Руководители, которые приглашают внешних консультантов, не понимают разницы между DES, 3DES и AES. Но зато они прекрасно знают, что делать, когда в кабинет врывается толпа пользователей с криками: «Эти ребята тут нахимичили, и сеть стала работать безумно медленно!». Попробуйте угадать, что за этим последует. Имеет смысл составить список тех свойств выбранного шифра, которые могут повлиять на качество обслуживания: о шифрование данных занимает канал, уменьшают пропускную способность и мо- жет стать причиной увеличения числа потерянных пакетов. Вопрос в том, какой уровень потерь считать допустимым и как минимизировать побочные эффекты повышенной безопасности за счет правильного выбора криптосистемы для дан- ной сети. Хотя беспроводные сети и становятся все быстрее, но полоса пропус- кания и пропускная способность у них все же ниже, чем у проводных аналогов. Кроме того, в них используется разделяемый физический носитель. Таким обра- зом, выбирая VPN в качестве механизма обеспечения безопасности беспроводной сети, надо трижды подумать; о увеличение числа шагов в итерации хотя и повышает безопасность, но потребляет больше ресурсов процессора. Сможет ли процессор на шлюзе в беспроводную сеть справиться с повышенной нагрузкой? о команда умножения не является «родной» для процессоров ниже Pentium II и ориги- нальных (не ULTRA) Sparc. Маловероятно, что она будет реализована аппаратно на многих КПК. В процессорах Intel Itanium нет команды циклического сдвига на пере- менное число позиций, а умножение выполняется в устройстве FPU (с плавающей арифметикой), а не IU (с целочисленной арифметикой). Шифры, в которых применя- ются операции умножения, на таких процессорах будут работать медленно. В случае с Itanium не стоит выбирать шифры, использующие циклический сдвиг. Интересно от- метить, что даже в тех случаях, когда у процессора есть команда циклического сдвига, не все компиляторы ею пользуются, что вносит дополнительные сложности; о если при шифровании приходится манипулировать очень большими числами, то у тех процессоров, которые реализуют высокопроизводительные вычисления с целы- ми числами, будет преимущество перед процессорами, где оптимизированы вычис- ления с плавающей точкой; о все описываемые шифры были протестированы с 8-, 32- и 64-разрядными процессо- рами. Производительность, конечно, менялась, так что шифр, хорошо работающий на 32-разрядном ЦП, совсем необязательно будет так же хорошо работать на 8- или 64-разрядном; о скорости шифрования и дешифрирования тоже необязательно совпадают. Часто, хотя и не всегда, дешифрирование работает медленнее. Имейте это в виду, когда выбираете платформу для размещения служб шифрования и дешифрирования; о производительность различных шифров может меняться в зависимости от режима работы. Шифр, достаточно быстро работающий в режиме ЕСВ, может никуда не го- диться в режиме OFB, и наоборот; о скорость и эффективность шифра обычно оказываются выше, если он реализован на языке ассемблера, а не на С. При реализации на языках еще более высокого уровня быстродействие также падает. Хотя по традиции принято считать, что аппаратные [...]... энергопотреблением и хронометражем 2 6 0 ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ Шифр IDEA Международный алгоритм шифрования данных (International Data Encryption Algorithm IDEA) предложили Ксуя Лай (Xuejia Lai) и Джеймс Месси (James Massey) из Швейцарского технологического института В шифре IDEA используется ключ длиной 128 бит, из которого порождаются 52 16- битовых подключа По два подключа... хэширования (Secure Hashing Algorithm (SHA)), предложенного АНБ Полное описание стандарта SHA можно найти на сайте NIST по адресу http://www.itl.nist.gov/fipspubs/ fipl80-l.htm На самом деле существует четыре стандарта SHA: SHA-1 (хэш длиной 160 бит), SHA-2 56, SHA-384 и SHA-512; число в названии соответствует длине результата В главе 14 мы будем постоянно обращаться к стандарту SHA для защиты беспроводного... http://fp.gladman.plus.com/cryptography_technology/aes/) Однако его производительность на 8- и 64 -разрядных процессорах уже не так впечатляет Выбирая RC6, вы должны задуматься о масштабируемости, в частности о возможном переходе на 64 -разрядные процессоры или архитектуры типа UltraSPARC и Itanium, в которых нет аппаратной поддержки для умножения и сдвига на переменное число позиций Шифр RC6 потребляет... http://www.esat.lmleuven.ac.be/~rijmen/rijndael/ AES поддерживает 248л ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ следующие длины ключей и блоков открытого текста: 128,192и2 56 бит Одна из уникальных особенностей шифра Rijndael - зависимость числа шагов от длины ключа: R = К/32 + 6, то есть для ключей длиной 128,192 и 2 56 бит будет выполнено соответственно 10,12 и 14 шагов В шифре Rijndael используются... сети AES (Rijndael) Начнем с официального стандарта AES или шифра Rijndael который предложили бельгийские математики Винсент Риджмен (Vincent Rijmen) и Джоан Димен (Joan Daemen) Материалы конференции FIPS197, на которой был анонсирован и детально описан алгоритм AES, находятся на сайте NIST (http://csrc.nist.gov/publications/ fipsl97/fips-197.pdf) Адрес персонального сайта авторов шифра Rijndael -... похожа на работу SHA-1 Конечно, размеры сверток будут другими, a SHA-384 и SHA-512 оперируют 64 -, а не 32-битовыми блоками Значения начальных констант и констант для разных шагов во всех разновидностях алгоритма SHA совершенно различны Функции хэширования, их производительность и коды НМАС Среди других функций хэширования следует прежде всего назвать MD5, предложенную компанией RSA Data Security, Inc... инструмента MD5Crack, который доступен на странице http://www.checksum.org/download/MD5Crack (это версия, собранная для Windows; исходный текст для UNIX можно найти на сайте http://www.packetstormsecurity.org) Помимо SHA-1 и выше имеется немало других криптографически стойких функций хэширования, в том числе H V L (свертки переменной длины), RIPEMD и Tiger Функция AA RIPEMD из проекта ЕС Race Integrity... такого усовершенствования может служить код Michael (MIC) в протоколе TKIP, который заменил старый вектор контроля целостности (ICV), основанный на вычислении CRC-32, который применялся в WEP Michael - это не совсем односторонняя функция, она ближе к вычисляемым на базе хэширования кодам аутентификации сообщения (Hash-based Message Authentication Code - HMAC),, которые мы рассмотрим ниже Стойкая криптографическая... похожий на старомодный DES, и оказался вторым после Rijndael при подведении итогов голосования: Rijndael получил 86 голосов, Serpent - 59, Twofish - 31, RC6 - 23, a MARS - 13 Между DES и AES: шифры, распространенные в переходный период Что можно сказать о том периоде времени, когда слабость DES уже стала очевидной, а победитель в конкурсе на звание AES еще не был объявлен? Что, каналы связи оказались незащищенными?... самом конце В алгоритме IDEA 8 шагов Блок открытого текста разбивается на четыре равных части (XI - Х4) длиной 16 бит каждая В IDEA применяются три операции для объединения двух 16- битовых значений в один 16- битовый результат: сложение, XOR и умножение Самое лучшее краткое изложение IDEA, которое нам довелось встречать в литературе, - это глава 13 книги Шнейера «Applied Cryprography», Second Edition (Прикладная . 197, MAGENTA, MARS, RC6, Rijndael, SAFER+, Serpend и Twofish. После Второй конференции канди- датов AES (AES2), проходившей 22 и 23 марта 1999 года в Риме, осталось только пять кан- дидатов: MARS,. 128,192 и 2 56 бит. Состязание началось. 20 августа 1998 года на Первой конференции кандидатов AES (AES1) NIST назвал 15 кандидатов на звание шифра AES, а именно: CAST-2 56, CRYPTON, DEAL, DFC, E2,. алгоритм AES, находятся на сайте NIST (http://csrc.nist.gov/publications/ fipsl97/fips-197.pdf). Адрес персонального сайта авторов шифра Rijndael - http://www.esat.lmleuven.ac.be/~rijmen/rijndael/. AES

Ngày đăng: 13/08/2014, 12:21