Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Базы данных и знаний. Управление базами и защита информации учебное п

.pdf
Скачиваний:
3
Добавлен:
15.11.2022
Размер:
1.29 Mб
Скачать

7. ОСНОВЫ КРИПТОГРАФИИ

Итак, ни у кого не вызывает сомнений, что секретные данные надо защищать. Самый простой способ сделать это – спрятать носитель с информацией в сейф за семью замками. Но что делать, если важное донесение надо переправить в другой конец страны? Здесь без шифровки не обойтись. Итак, шифрование есть процесс преобразования оригинального сообщения (часто именуемого открытым текстом) в кодированный текст, который представляется случайным набором символов. Прочитать зашифрованное сообщение сможет только тот, кто знает, как обратить его в исходное состояние (т.е. декодировать). Наука, изучающая основы и принципы шифрования, называется криптологией. В свою очередь, она делится на два течения – кодированием занимается криптография, а декодированием – криптоанализ.

К услугам криптографии прибегали еще в Древнем Риме. Так, Юлий Цезарь (100–44 гг. до н. э.) шифровал переписку с Цицероном и своими сенаторами. Шифр Цезаря, иначе шифр циклических подстановок, состоит в замене каждой буквы в сообщении буквой алфавита, отстоящей от нее на фиксированное число букв. Подобный криптографический алгоритм называется симметричным, ибо для кодирования/декодирования используется один и тот же секретный ключ.

Дешифрованию криптограмм (т.е. криптоанализу) на протяжении веков помогал анализ частоты появления отдельных символов и их сочетаний. Вероятности появления отдельных букв в тексте сильно разнятся (для русского языка, например, буква "а" встречается в 30–40 раз чаще буквы "ш"). Таким образом, достаточно найти в подстановочной шифровке наиболее часто употребляемые коды символов, чтобы с большой вероятностью утверждать, что они представляют распространенные

151

русскоязычные буквы "о", "а" или "е". Причиной такой легкой дешифровки является значительная избыточность (в информационном смысле) текста на естественном языке.

Бурное развитие криптографии началось с развитием вычислительной техники. И это вполне логично – с одной стороны, растущая мощность ЭВМ позволяла за считанные минуты взламывать шифры, которые ранее считались сверхнадежными, с другой – полным безумием можно считать отправку по Сети незашифрованного или слабо зашифрованного сообщения с важной информацией. Так, с середины 1970-х и по наши дни появилось множество криптоалгоритмов, значительная часть которых широко используется и сегодня.

Первоначально алгоритмы криптографии строились, скорее, на интуитивных методах, чем на строго научных. Однако в наши дни математика – ключевое звено любой хорошей криптографической системы. Фактически, криптография – это наука применения математики для защиты информации. Математические алгоритмы, в соответствии с которыми выполняется шифрование, именуются шифрами.

Первым трудом по криптографии принято считать работу архитектора Леона Баттиста Альберти (1404–1472 гг.). В 1949 г. статья Клода Шеннона "Теория связи в секретных системах" положила начало научной криптологии. В наши дни широко известны ученые Райвест (Rivest), Шамир (Shamir), Адлмэн

(Adleman), Эль-Гамаль (ElGamal), Меркль (Merkle), Диффи

(Diffie), Хеллман (Hellman) и другие, являющиеся изобретателями многих криптоалгоритмов, используемых сегодня.

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

152

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

ных криптоалгоритмов – DES (Data Encryption Standard), 3DES, AES, наш отечественный ГОСТ 28147-89.

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

Одна из проблем, которая осталась неразрешенной в традиционной криптографии, – распространение секретных ключей. Этого недостатка не имеет криптография с открытым ключом, отсчет которой ведут от появившейся в ноябре 1976 г. статьи Уитфилда Диффи и Марти E. Хеллмана "Новые направления в криптографии". Использование таких шифров подразумевает существование двух ключей: для шифрования данных используется открытый ключ, а для расшифровки – секретный, построенный в соответствии с той же математической моделью, что и первый.

Самыми распространенными алгоритмами асимметричного шифрования являются RSA (аббревиатура от имен его создателей Rivest, Shamir, Adleman) и ElGamal (назван по фамилии автора). Последний применяется в стандарте США на цифровую подпись DSS. На популярный RSA в течение 17 лет распространялся патент, который закончился лишь 20 сентября 2000 г. Эта дата символизировала собой начало "свободной" эры в криптографии.

153

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

При передаче информации в Интернете, как правило, необходимо обеспечить конфиденциальность и подлинность. Последнее понятие включает два компонента: во-первых, целостность (integrity) – сообщение должно быть защищено от случайного или умышленного изменения; во-вторых, идентификацию отправителя, т.е. получатель должен иметь возможность проверить, кем было отправлено сообщение. Криптография может обеспечить конфиденциальность и целостность.

Впроверке авторства важную роль играют так называемые сертификаты. Основное их назначение – предоставить собеседнику убедительные доказательства того, что он имеет дело именно с вашей персоной. Фактически, сертификаты – это пакеты данных, которые содержат в себе какие-либо сведения о его

предъявителе (обычно это идентифицирующая информация

иоткрытый ключ предъявителя). Данные в сертификате подписаны секретным ключом сертифицирующего агентства. В начале коммуникационной сессии стороны предъявляют друг другу сертификаты, тем самым сообщая свою "визитную карточку"

ипубличный ключ.

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

154

столько, насколько вы доверяете агентству, подписавшему сертификат Наиболее распространенный формат сертификатов – X.509. Обычно интернет-браузеры содержат в стандартной поставке корневые сертификаты большинства известных агентств сертификации.

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

Электронная подпись делается следующим образом. Отправитель письма вычисляет его цифровой отпечаток (message digest) и затем кодирует его своим секретным ключом. Это

иявляется "электронной подписью", которая посылается вместе

ссамим письмом. Далее получатель письма может сам вычислить цифровой отпечаток полученного письма и раскодировать электронную подпись открытым ключом отправителя. Если полученные два числа совпали, значит, это письмо получено от настоящего отправителя, т.к. только он знает секретный ключ.

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

Впопулярных операционных системах Windows 9x/NT 4.0 отсутствовали дополнительные средства защиты файловой системы. FAT16/32 вообще не была защищена, а специальные утилиты для чтения NTFS-разделов из Windows 9x не обращали никакого внимания на права доступа к файлам. В версии NTFS для Windows 2000 уже появилась система сильного шифрования, а в Windows XP/2003 она была значительно модифицирована. Называется она EFS (Encripted File System) и может при-

155

меняться как для целого раздела, так и для выбранного каталога или файла. В Windows 2000/XP по умолчанию используется алгоритм DESX (возможно также использование 3DES),

в Windows 2003 – AES с 256-битовым ключом.

Для того чтобы зашифровать файл или каталог, необходимо в Проводнике вывести Property (Свойства) этого объекта, далее нажать кнопку Advanced (Дополнительно) и в дополнительных атрибутах установить флажок Encript content to secure data. У шифрованного файла или каталога цвет заголовка в файловом менеджере становится зеленым. Больше для пользователя, который является владельцем объекта, ничего не меняется– операционная система обеспечивает полностью прозрачное кодирование/декодирование. Однако пользователь, который не является владельцем объекта, получить доступ к нему не сможет, утилиты для чтения NTFS-разделов также бессильны – ведь информация зашифрована.

Средствами шифрования документов обладают и продукты MS Office. Так, в MS Word и MS Excel можно задать пароль на открытие документов. Максимальная длина пароля – 15 символов, тем не менее эту защиту нельзя назвать серьезной. Вызывает удивление тот факт, что первая строка текста вообще никак не шифруется и может быть прочитана посредством любой утилиты для просмотра текста.

Также фактически любой современный архиватор позволяет "запечатать" архив при помощи пароля. Этого вполне достаточно, чтобы защититься от обнаружения заданных ключевых сигнатур в процессе отправки архива по электронной почте. Тем не менее программы силового взлома позволяют достаточно быстро подобрать пароль к защищенному архиву. Правда, WinZIP и WinRAR последних версий используют криптоалгоритм AES, взломать который, при достаточно длинном ключе, не так просто.

156

Немало криптографических программ можно скачать бесплатно из Интернета. Одной из них является утилита Criptofan 2 (cryptofan.nm.ru). Приложение поддерживает 39 алгоритмов шифрования и 28 hash-функций, имеется архивация тремя разными алгоритмами: ZIP, BZIP2 и SQX. Для каждого криптоалгоритма можно выбирать hash-функцию и режим шифрования: CBC, CFB, OFB и т.д. В современных ОС встроен пакет Crypto Api, находящийся в папках System<System32.

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

Неавторизованный доступ к информации.

Неавторизованное изменение информации.

Неавторизованный доступ к сетям и другим сервисам.

Другие сетевые атаки, такие как повтор перехваченных ранее транзакций и атаки типа "отказ в обслуживании".

Криптография – это наука об обеспечении безопасности данных. Она занимается поисками решений четырех важных проблем безопасности – конфиденциальности, аутентификации, целостности и контроля участников взаимодействия. Шифрование – это преобразование данных в нечитабельную форму при использовании ключей шифрования-расшифровки. Шифрование позволяет обеспечить конфиденциальность, сохраняя информацию в тайне от того, кому она не предназначена.

Криптосистема работает по определенной методологии (процедуре). Онасостоит из: одного илиболее алгоритмовшифрования (математических формул); ключей, используемых этими алгоритмами шифрования; системы управления ключами; незашифрованного текстаизашифрованного текста(шифртекста).

157

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

В этой методологии алгоритм шифрования объединяет ключ с текстом для создания шифртекста. Безопасность систем шифрования такого типа зависит от конфиденциальности ключа, используемого в алгоритме шифрования, а не от хранения в тайне самого алгоритма. Многие алгоритмы шифрования общедоступны и были хорошо проверены благодаря этому (например, DES).

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

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

Существуют две методологии с использованием ключей – симметричная (с секретным ключом) и асимметричная (с открытым ключом). Каждая методология использует свои собственные процедуры, свои способы распределения ключей, типы ключей и алгоритмы шифрования и расшифровки ключей.

158

7.1.Блочный симметричный алгоритм DES

Вначале 70-х гг. прошлого века Национальным бюро стандартов США был объявлен конкурс на федеральный стандарт шифрования данных. Результатом стал криптоалгоритм DES (Data Encryption Standard). При шифровании DES использует подстановку (замену одних блоков битов другими) и перестановку (т.е. переупорядочение битов). Данный криптоалгоритм стал одним из самых широко используемых шифров в мире. Однако у DES есть существенный недостаток – длина его ключа лишь 56 бит, что при нынешней мощности процессоров совершенно недостаточно. Ведь методом силового взлома необходимо перебрать 256 вариантов, а это сегодня вполне возможно.

Всвязи с этим был принят стандарт 3DES. Данный алгоритм – это эволюционное развитие DES-шифрования, когда для повышения стойкости блоки данных шифруют трижды разными ключами. Естественно, при этом требуется и значительно больше вычислений. Тем не менее в январе 1997 г. Национальный институт стандартизации США объявил о запуске программы по принятию нового криптостандарта AES (Advanced Encryption Standard). В данном шифре применяется 128-разрядный ключ, взломать который намного сложнее, чем DES. Кроме того, AES планируется построить на алгоритме Rijndael, который обладает важным достоинством – экономичным использованием памяти и ресурсов процессора.

Стандарт шифрования DES (Data Encryption Standard) был разработан в 1970-х гг., он базируется на алгоритме DEA. Исходные идеи алгоритма шифрования данных DEA (Data Encryption Algorithm) были предложены компанией IBM еще в 1960-х

гг. и базировались на идеях, описанных Клодом Шенноном в 1940-х гг. Первоначально эта методика шифрования называ-

159

лась Lucifer (разработчик Хорст Фейштель). Название DEA (см. http/:snoopy.falkor.gen.nz/~rae/des.html) она получила лишь в 1976 гг. Lucifer был первым блочным алгоритмом шифрования, он использовал блоки размером 128 бит и 128-битовый ключ. По существу, этот алгоритм являлся прототипом DEA. Входной блок данных, состоящий из 64 бит, преобразуется ввыходной блок идентичной длины. Ключ шифрования должен быть известен как отправляющей, так и принимающей стороне. В алгоритме широко используются перестановки битов текста. Вводится функция f, которая работает с 32-разрядными словами исходного текста (А) и использует в качестве параметра 48-разрядный ключ (J). Схема работы функции f показана на рис. 7.1. Сначала 32 входные разряда расширяются до 48, при этом некоторые разряды повторяются. Схема этого расширения показана ниже (номера соответствуют номерамбитисходного 32-разрядногокода).

Рис. 7.1. Алгоритм работы функции f

160