tanenbaum_seti_all.pages (525408), страница 225
Текст из файла (страница 225)
Переход на 168 разрядов повлечет лишь дополнительные расходы по хранению и транспортировке дополнительного ключа, а реальной пользы принесет мало. Использование последовательности шифрования, дешифрации и снова шифрования объясняется обратной совместимостью с существующими РЕЯ-системами с одним ключом. Обе функции, шифрования и дешифрации, устанавливают соответствия между наборами 64-разрядных чисел. С точки зрения криптографии обе функции одинаково надежны, Однако использование ЕЭЕ вместо ЕЕЕ позволяет компьютеру, применяющему тройное шифрование, общаться с компьютером, применяющим обычное одиночное шифрование, просто установив К, = Кг Таким образом, тройное шифрование можно легко включать в виде дополнительного режима работы, что не представляет интереса для ученых криптографов, но довольно важно для корпорации 1ВМ и ее клиентов.
Улучшенный стандарт шифрования АЕЗ В какой-то момент стало понятно, что ресурс 0ЕБ (даже с тройным шифрованием) уже приближается к концу. Тогда Национальный институт стандартов и технологий (Х1БТ) — агентство Министерства торговли, занимающееся разработкой стандартов для Федерального правительства США, — решило, что правительству нужен новый криптографический стандарт для несекретных данных. МБТ ясно осознавал все противоречия, связанные с ОЕБ, и прекрасно понимал, что как только булет объявлено о создании нового стандарта, все, кто хоть что-то смыслит в криптографической политике, по умолчанию будут предполагать, что и здесь имеется лазейка, с помощью которой Агентство национальной безопасности с легкостью сможет расшифровывать любую информацию. На таких условиях вряд ли кто-то согласится применять у себя новую технологию, и она, скорее всего, так и умрет в безвестности.
Исходя из этих предпосылок, институт стандартов и технологий применил неожиданный для правительственного бюрократического аппарата подход: он решил просто спонсировать криптографический конкурс. В январе 1997 гола ученые со всего мира были приглашены для представления своих разработок, касающихся нового стандарта, который назвали АЕБ (Адтапсед Елсгурс(оп Ягапг(агав улучшенный стандарт шифрования).
Требования, предъявляемые к разработкам, были таковы: 1. Алгоритм должен испольэовать симметричный блочный шифр. 2. Все детали разработки должны быть общедоступны. 3. Должны поддерживаться длины ключей 128, 192 и 256 бит. 838 Глава 8. Безопасность в свтях 4. Должна быть возможна как программная, так и аппаратная реализация. 5. Алгоритм должен быть общедоступным или базирующимся на нс дискредитировавших себя понятиях. Было рассмотрено 15 серьезных предложений. На общедоступных конференциях разработчики представляли свои проекты, а оппоненты должны были приложить максимум усилий для поиска возможных недостатков в каждом из проектов. В августе 1998 года Институтом стандартов и технологий были выбраны пятеро финалистов.
Выбор основывался в основном на таких аспектах, как обеспечиваемая безопасность, эффективность, простота, гибкость, а также требования к памяти (это важно для встроенных систем). Был проведен еше ряд конференций, на которых было высказано множество критических замечаний. На последней конференции было проведено независимое голосование. Его результаты выглядели следующим образом: 1.
К1)прае! (Джон Домен ()оЬп 1)аешеп) и Винсент Раймен (%пеев! К!)щеп), 86 голосов). 2. Бегрепс (Росс Андерсон (Коза Апбегзоп), Эли Бихам (Е!! В!Ьащ) и Ларс Кнудсен (1лгз Кппбзеп), 59 голосов). 3. ТтчойзЬ (команда, возглавляемая Брюсом Шнайером (Вгпсе ЯсЬпе1ег), 31 голос). 4. КС6 (компания КБА 1 аЬогагог!ез, 23 голоса). 5.
МАКБ (корпорация 1ВМ, 13 голосов). В октябре 2000 года Х15Т объявил о том, что он также голосует за К!)пбае1, и уже в ноябре 2001 года К!)пс!ае! становится стандартом правительства США, опубликованным как Федеральный стандарт обработки информации, Р1Р3 197. Благодаря полной открытости конкурса, а также благодаря техническим возможностям К!)прае! и тому факту, что выигравшая конкурс команда состояла из двух молодых бельгийских шифровальщиков (которые вряд ли стали бы сотрудничать с ЫБА, предоставляя какие-то лазейки), ожидается, что К!)пс!ае! станет доминирующим мировым криптографическим стандартом, по крайней мере, на ближайшее десятилетие.
Название К!1пдае! (произносится примерно как Райндол) представляет собой сокращение фамилий авторов: Раймен + Домен. КЬ!прае! поддерживает длины ключей и размеры блоков от 128 до 256 бнт с шагом в 32 бита. Длины ключей и блоков могут выбираться независимо друг от друга. Тем не менее, стандарт АЕБ говорит о том, что размер блока должен быть р~вен 128 битам, а длина ключа — 128, 192 или 256 бит. Однако вряд ли кто-то будет использовать 192-битные ключи, поэтому фактически АЕ5 применяется в лвух вариантах; со 128-битными блоками и 128-битными ключами, а также со 128-битными блоками и 256-битными ключами.
Далее приводится описание алгоритма, и там мы рассматриваем только один случай — 128/128, поскольку именно это, скорее всего, станет нормой для коммерческих приложений. 128-битный ключ означает, что размер пространства его значений равен 2'" м 3 10". Даже если Агентству национальной безопасности удастся собрать машину на миллионе параллельных процессоров, каждый из ко- Алгоритмы с симметричным криптографическим ключом 839 торых будет способен вычислять один ключ в пикосекунду, на перебор всех значений потребуется около 10'влет.
К тому времени Солнце уже давно потухнет, и нашим далеким потомкам придется читать распечатку со значением ключа при свете свечи. НЦпдае! С математической точки зрения, метод К!)п((ае! основывается на теории полей Галуа, благодаря чему можно строго доказать некоторые его свойства, касающиеся секретности. Тем не менее, можно рассматривать его и с точки зрения кода программы на языке С, не вдаваясь в математические подробности.
Как и в [)ЕЯ, в К!)пс(ае! применяются замены и перестановки. И там, и там используются несколько итераций, их число зависит от размера ключа и блока и равно 10 для 128-разрядного ключа и 128-битных блоков; для максимального размера ключа и блоков число итераций равно 14. Однако, в отличие от РЕЯ, все операции выполняются над целыми байтами, что позволяет создавать эффективные реализации как в аппаратном, так и в программном исполнении.
Схематичный алгоритм метода В))п((ае! приведен в листинге 8.1. Листинг 8.1. Схематичный алгоритм метода (и!)пбае! ()бет!пе СЕИОТН 16/* Число байтов в блоке данных или ключе */ (тает!пе ййОН5 4/* Число стран в пассиве зсасе */ ебет1пе ИСОС5 4/* Число столбцов в пассиве всасе */ ()бе[тле ЙООИ05 10/* Число итераций */ Суребет цпв10пеб сиаг ЬуСе/8-разрядное целое без знаиа */ г!)абае)(бусе р)а1псехС[СЕИВТН). Ьусе с!рйегСехС[СЕИОТН]. Ьусе Кеу[СЕИБТН]) ( 1пС г:/* Счетчик цикла */ ЬуСе всасе[ИЙОН5)[ИСО[5):/* Текущее состояние */ всгцсС(Ьусе к[ИЙОН5)[ИСОС5);) гк[ЙООИ05 + 1):/* Ключи итерации */ ехрапб Сеу(йеу,ги):/* Сфориировать ключи итерации */ сору рТатпсехС Со Сехс(зСасе. р)а!пСехС):/* Инициализация текущего состояния */ хог гоцпбкеу тйсо всасе(зсасе, гс[О));/* сложи~ь по надулю 2 нлюч с текущим состоянием «/ Гог(г-1: г -ЙООИ05: г++) ( вцЬвС1Сцте(вСасе):/* Пропустить каждый байт через 5-блок */ гоСаСе гоня(всасе);/* Повернут~ строку т на т байт */ 1т(г < ЙООИ05) щ1х со)цюпв(всасе);/* Снещивающая функция */ хог гоцпбкеу 1псо вСасе(всасе, гМ[г));/* Сложить по модулю 2 ключ с текущим состоянием */ ) сару всасе са с1рйегсехс(стрпегсехс, всасе):/* Вернуть результат */ У функции г!]абае] три аргумента: р)а!птехс — массив размером 16 байт, содержащий входные данные, с1рпегсехС вЂ” массив размером 16 байт, в который будет возвращен шифр, а также Меу — 16-разрядный ключ.
В процессе вычислений текущее состояние данных сохраняется в байтовом массиве всасе, размер которо- 840 Глава 8. Безопасность е сетях го равен КкО[6 х КОО[.5, Для 128-битных блоков данных размер этого массива равен 4х4 байта. В 16 байтах целиком уместится один блок. Массив згз1е изначально содержит открытый текст и модифицируется на каждом этапе вычислений. На некоторых этапах выполняется побайтоэая подстановка На других этапах — перестановка байтов внутри массива.
Могут выполняться и другие преобразования. В конечном итоге солержимое згзге представляет собой зашифрованный текст, который и возвращается в качестве результата функции. Алгоритм начинается с распространения ключа по 11 массивам одинакового размера, представляющим состояние (з1аге). Эти массивы хранятся в гх — массиве структур, содержащих массивы состояний. Одна из этих структур будет использована в начале вычислений, а остальные 10 — во время 10 итераций (по одной на итерацию).
Вычисление ключа для каждой итерации производится довольно сложным образом, и мы не будем рассматривать детали этого процесса. Достаточно сказать, что для этого осуществляются циклические повороты и суммирования по модулю 2 различных групп разрядов ключа.
Подробности можно узнать в (Паешеп и Кфпеп, 2002). Следующий шаг состоит в копировании открытого текста в массив згасе для того, чтобы его можно было обрабатывать во время последующих итераций. Копируется текст в колонки по 4 байта: первые 4 байта попадают в колонку О, вторые — в колонку 1 и т, д, И колонки, и строки нумеруются с нуля, а итерации— с единицы. Процесс создания 12 байтовых массивов размером 4н4 показан иа рис.