Технологии туннелирования
Покупка
Новинка
Тематика:
Криптография
Издательство:
ИНТУИТ
Год издания: 2016
Кол-во страниц: 429
Дополнительно
Основное внимание уделяется изучению наиболее важных сервисов и механизмов защиты информации в сети интернет, а именно, криптографических алгоритмов и протоколов, в которых используются эти алгоритмы.
Курс содержит описание четырнадцати лабораторных работ на реальном сетевом оборудовании компании D-Link. Курс предназначен для студентов и аспирантов высших учебных заведений, обучающихся по специальностям 010400 «Прикладная математика и информатика» и 010300 «Фундаментальная информатика и информационные технологии», для сетевых администраторов, которые хотят получить более глубокие теоретические знания в области информационной безопасности и приобрести практические навыки работы на сетевом оборудовании ведущего производителя, а также для всех, кто интересуется данной проблематикой.
Тематика:
ББК:
УДК:
ОКСО:
- 00.00.00: ОБЩИЕ ДИСЦИПЛИНЫ ДЛЯ ВСЕХ СПЕЦИАЛЬНОСТЕЙ
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 10.03.01: Информационная безопасность
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Технологии туннелирования 2-е издание, исправленное Национальный Открытый Университет “ИНТУИТ” 2016 2
Технологии туннелирования/ - М.: Национальный Открытый Университет “ИНТУИТ”, 2016 Основное внимание уделяется изучению наиболее важных сервисов и механизмов защиты информации в сети интернет, а именно, криптографических алгоритмов и протоколов, в которых используются эти алгоритмы. Курс содержит описание четырнадцати лабораторных работ на реальном сетевом оборудовании компании D-Link. Курс предназначен для студентов и аспирантов высших учебных заведений, обучающихся по специальностям 010400 «Прикладная математика и информатика» и 010300 «Фундаментальная информатика и информационные технологии», для сетевых администраторов, которые хотят получить более глубокие теоретические знания в области информационной безопасности и приобрести практические навыки работы на сетевом оборудовании ведущего производителя, а также для всех, кто интересуется данной проблематикой. (c) ООО “ИНТУИТ.РУ”, 2014-2016 (c) 2014-2016 3
Алгоритмы симметричного шифрования Основные понятия Рассмотрим общую схему симметричной, или традиционной, криптографии. Рис. 1.1. Общая схема симметричного шифрования Процесс шифрования состоит в использовании определенного алго-ритма, на вход которому подаются исходное незашифрованное сообщение, называемое также plaintext, и ключ. Выходом алгоритма является зашифрованное сообщение, называемое также ciphertext. Ключ является значени-ем, не зависящим от шифруемого сообщения. Изменение ключа должно приводить к изменению зашифрованного сообщения. Зашифрованное сообщение передается получателю. Получатель преобразует зашифрованное сообщение в исходное незашифрованное сообщение с помощью алгоритма расшифрования и того же самого ключа, который использовался при шифровании. Незашифрованное сообщение будем обозначать P или M, от слов plaintext и message. Зашифрованное сообщение будем обозначать С, от слова chiphertext. Безопасность, обеспечиваемая традиционной криптографией, зависит от нескольких факторов. Во-первых, криптографический алгоритм должен быть достаточно сильным, чтобы передаваемое зашифрованное сообщение невозможно было расшифровать без ключа, используя только различные статистические закономерности зашифрованного сообщения или какие-либо другие способы его анализа. Во-вторых, безопасность передаваемого сообщения должна зависеть от секретности ключа, но не от секретности алгоритма. Алгоритм должен быть проанализирован специалистами, чтобы исключить наличие слабых мест, при которых плохо скрыта взаимосвязь между незашифрованным и зашифрованным сообщениями. К тому же при выполнении этого условия производители могут создавать дешевые аппаратные чипы и свободно рас-пространяемые программы, реализующие данный алгоритм шифрования. В-третьих, алгоритм должен быть таким, чтобы нельзя было узнать ключ, даже зная достаточно много пар (зашифрованное сообщение, неза-шифрованное сообщение), полученных при шифровании с использованием данного ключа. 4
Клод Шеннон ввел понятия диффузии и конфузии для описания стойкости алгоритма шифрования. Диффузия – это рассеяние статистических особенностей и закономерностей незашифрованного текста в широком диапазоне статистических особенностей и закономерностей зашифрованного текста. Это достигается тем, что каждый бит или группа битов незашифрованного сообщения влияет на значения многих битов зашифрованного сообщения или, что то же самое, любой бит зашифрованного сообщения зависит от многих битов незашифрованного сообщения. Конфузия – это уничтожение статистической взаимосвязи между зашифрованным текстом и ключом. Если P – это исходное сообщение и K – криптографический ключ, то зашифрованный передаваемый текст можно записать в виде C = EK[P], где EK – алгоритм шифрования. Получатель, используя тот же ключ, расшифровывает сообщение P = DK[C], где DK – алгоритм расшифрования Противник, не имея доступа к K и P, должен попытаться узнать P, K или и то, и другое. Алгоритмы симметричного шифрования различаются способом, кото-рым обрабатывается исходное сообщение. Возможно шифрование блоками или шифрование потоком. Блок сообщения рассматривается как неотрицательное целое число, либо как несколько независимых неотрицательных целых чисел. Длина блока всегда выбирается равной степени двойки. В большинстве блочных алгоритмов симметричного шифрования используются следующие опера-ции: Табличная подстановка, при которой одна группа битов пре-образуется в другую группу битов. Это так называемые S-box. Если преобразуется i бит в j бит, то говорят, что размерностьS-box ixj. Перемешивание, часто обозначаемое Р (Permutation), при ко-тором биты сообщения переупорядочиваются. Операция сложения по модулю 2, обозначаемая XOR или . Операция сложения по модулю 232 или по модулю 216. Циклический сдвиг на некоторое число битов. Эти операции циклически повторяются в алгоритме, образуя так назы-ваемые раунды. Входом каждого раунда является выход предыдущего ра-унда и ключ, который получен по определенному алгоритму из ключа шифрования K. Ключ раунда называется подключом. Каждый алгоритм шифрования может быть представлен следующим образом: 5
Рис. 1.2. Структура алгоритма симметричного шифрования Области применения Необходимо, чтобы алгоритм симметричного шифрования мог приме-няться в следующих областях: Шифрование данных. Алгоритм должен быть эффективен при шифровании как небольших файлов и блоков данных, так и большого потока данных. Создание случайных чисел. Алгоритм должен быть эффекти-вен для создания любого количества случайных битов. Хэширование. Алгоритм должен эффективно преобразовы-ваться в одностороннюю хэш-функцию. Платформы 6
Стандартный алгоритм шифрования должен быть реализован на раз-личных платформах, которые, имеют разные характеристики. Специальная аппаратура. Алгоритм должен эффективно реализовы-ваться на специализированной аппаратуре, предназначенной для выполне-ния шифрования / расшифрования. Большие процессоры. Хотя в приложениях, требующих максимальной скорости, всегда используется специальная аппаратура, программные реа-лизации применяются чаще. Алгоритм должен допускать эффективную программную реализацию на 32-битных процессорах. Процессоры среднего размера. Алгоритм должен работать на микро-контроллерах и других процессорах среднего размера. Малые процессоры. Должна существовать возможность реализации алгоритма на смарт-картах, с учетом жестких ограничений на используемую память. Дополнительные требования Алгоритм шифрования должен, по возможности, удовлетворять неко-торым дополнительным требованиям. Алгоритм должен быть простым с точки зрения написания кода, чтобы минимизировать вероятность программных ошибок. Алгоритм должен иметь плоское пространство ключей, т.е. допускать любую случайную строку битов нужной длины в качестве возможного ключа. Наличие слабых ключей нежелательно. Алгоритм должен легко модифицироваться для различных уровней безопасности и удовлетворять как минимальным, так и максимальным требованиям. Все операции с данными должны осуществляться над блоками, кратными байту или 32-битному слову. Сеть Фейштеля Блочный алгоритм преобразовывает n-битный блок незашифрованного сообщения в nбитный блок зашифрованного сообщения. Число блоков длины n равно 2n. Для того чтобы преобразование было обратимым, каждый из таких блоков должен преобразовываться в свой уникальный блок зашифрованного сообщения. Если длина блока будет маленькой, то такая перестановка плохо скрывает статистические особенности и закономерности незашифрованного сообщения. Если блок имеет длину 64 бита, то он уже хорошо скрывает статистические особенности и закономерности исходного сообщения. В любом случае преобразование сообщения не может быть произвольным в силу того, что ключом при этом будет являться само преобразование, что исключает эффективную как программную, так и аппаратную реализации. Наиболее широкое распространение получили сети Фейштеля, так как, с одной 7
стороны, на их основе можно разработать алгоритм, удовлетворя-ющий всем требованиям к алгоритмам симметричного шифрования, а с другой стороны, реализация такого алгоритма достаточно проста и ком-пактна. Сеть Фейштеля имеет следующую структуру. Входной блок делится на несколько равной длины подблоков, называемых ветвями. В случае, если блок имеет длину 64 бита, используются две ветви по 32 бита каждая. Каж-дая ветвь обрабатывается независимо от другой, после чего осуществляется циклический сдвиг всех ветвей влево. Такое преобразование выполняется циклически. В случае двух ветвей каждый раунд имеет структуру, показанную на рисунке: Рис. 1.3. I-ый раунд сети Фейштеля Функция F называется образующей. Каждый раунд состоит из вычис-ления функции F для одной ветви и побитового выполнения операции XOR результата F с другой ветвью. После этого ветви меняются местами. Считается, что оптимальное число раундов должно быть от 8 до 32. Важно то, что увеличение количества раундов значительно увеличивает криптостой-кость алгоритма. Возможно эта особенность и повлияла на столь активное распространение сети Фейштеля, так как для большей криптостойкости достаточно просто увеличить количество раундов, не изменяя сам алго-ритм. В последнее время количество раундов не фиксируется, а лишь указываются допустимые пределы. Сеть Фейштеля является обратимой даже в том случае, если функция F не является таковой, так как для расшифрования не требуется вычислять F-1. Для расшифрования используется тот же алгоритм, но на вход подается зашифрованное сообщение, и ключи используются в обратном порядке. В настоящее время все чаще используются различные разновидности сети Фейштеля для 128-битного блока с четырьмя ветвями. Увеличение количества ветвей, а не размерности каждой ветви связано с тем, что наиболее популярными до сих пор остаются процессоры с 32-разрядными словами, следовательно, оперировать 32разрядными словами эффективнее, чем с 64-разрядными. 8
Основной характеристикой алгоритма, построенного на основе сети Фейштеля, является функция F. Различные варианты касаются также начального и конечного преобразований. Подобные преобразования, назы-ваемые забеливанием (whitening),осуществляются для того, чтобы выпол-нить начальную рандомизацию входного текста. Криптоанализ Процесс, при котором предпринимается попытка узнать P, K или и то, и другое, называется криптоанализом. Одной из возможных атак на алго-ритм шифрования является “лобовая атака”, называемая также “атакой грубой силы” - “brute force атака”. Данная атака состоит в простом переборе всех возможных ключей. Если множество ключей достаточно большое, то подобрать ключ нереально. При длине ключа n бит количество возмож-ных ключей равно2n. Таким образом, чем длиннее ключ, тем более стойким считается алгоритм для лобовой атаки. Существуют различные типы атак, основанные на том, что противнику известно определенное количество пар незашифрованное сообщение – за-шифрованное сообщение. При анализе зашифрованного сообщения про-тивник часто применяет статистические методы анализа текста. При этом он может иметь общее представление о типе сообщения, например, англий-ский или русский текст, выполняемый файл конкретной ОС, исходный текст на некотором языке программирования и т.д. Во многих случаях криптоаналитик имеет достаточно много информации об исходном тексте. Криптоаналитик может иметь возможность перехвата одного или несколь-ких незашифрованных сообщений вместе с их зашифрованным видом. Или криптоаналитик может знать основной формат или основные характери-стики сообщения. Говорят, что криптографическая схема абсолютно безопасна, если зашифрованное сообщение не содержит никакой информации об исходном сообщении. Говорят, что криптографическая схема вычислительно безопасна, если: Цена расшифровки сообщения больше цены самого сообще-ния. Время, необходимое для расшифровки сообщения, больше срока жизни сообщения. Используемые критерии при разработке алгоритмов Принимая во внимание перечисленные требования, обычно считается, что алгоритм симметричного шифрования должен: Иметь размер блока 64 или 128 бит. Иметь масштабируемый ключ до 256 бит. Использовать простые операции, которые эффективны на микропроцессорах, т.е. исключающее или, сложение, табличные подстановки, умножение по модулю. Не должно использовать-ся сдвигов переменной длины, побитовых перестановок или условных переходов. Должна быть возможность реализации алгоритма на 8-битном процессоре с 9
минимальными требованиями к памяти. Использовать заранее вычисленные подключи. На системах с большим количеством памяти эти подключи могут быть зара-нее вычислены для ускорения работы. В случае невозможно-сти заблаговременного вычисления подключей должно произойти только замедление выполнения. Всегда должна быть возможность шифрования данных без каких-либо предварительных вычислений. Число итераций может варьироваться. Для приложений с маленькой длиной ключа нецелесообразно применять большое число итераций для противостояния дифференциальным и другим атакам. Следовательно, должна быть возможность уменьшить число итераций без существенной потери безопас-ности (не более чем на уменьшенный размер ключа). По возможности не иметь слабых ключей. Если это невозможно, то количество слабых ключей должно быть минимальным, чтобы уменьшить вероятность случайного выбора одного из них. Все слабые ключи должны быть заранее известны, чтобы их можно было отбраковать в процессе создания ключа. Алгоритм DES Принципы разработки Самым распространенным и наиболее известным алгоритмом симмет-ричного шифрования является DES (Data Encryption Standard). Алгоритм был разработан в 1977 году, в 1980 году был принят NIST (National Institute of Standards and Technolody США) в качестве стандарта (FIPS PUB 46). DES является классической сетью Фейштеля с двумя ветвями. Данные шифруются 64битными блоками, используя 56-битный ключ. Процесс шифрования состоит из четырех этапов. На первом из них выполняется начальная перестановка (Initial Permutation - IP) 64-битного исходного сообщения, так называемое забеливание, во время которой биты переупорядочиваются в соответствии со стандартной таблицей. Следующий этап состоит из 16 раундов одной и той же функции, которая использует операции сдвига и подстановки. На третьем этапе левая и правая половины выхода последней (16-й) итерации меняются местами. Наконец, на четвертом этапе выполняется перестановка IP-1 результата, полученного на третьем этапе. Перестановка IP-1 инверсна начальной перестановке. 10