Мордовский государственный университет им. Н.П. Огарева
Факультет электронной техники
Кафедра «Автоматизированные системы обработки информации и управления»
МЕТОДЫ И СРЕДСТВА ЗАЩИТЫ КОМПЬЮТЕРНОЙ ИНФОРМАЦИИ
Конспект лекций по курсу «Методы и средства защиты компьютерной информации» для студентов специальности «Автоматизированные системы обработки информации и управления»
Составил Сидоров Д.П., доцент кафедры АСОИУ
Саранск, 2007
СОДЕРЖАНИЕ
1. Основные виды и источники атак на информацию
1.1. Актуальность защиты систем обработки информации
1.2. Угрозы безопасности компьютерных систем
1.3. Наиболее распространенные методы взлома компьютерных систем
1.3.1. Комплексный поиск возможных методов взлома
1.3.2. Терминалы защищенной информационной системы
1.3.3. Получение пароля на основе ошибок администратора
и пользователей
1.3.4. Получение пароля на основе ошибок в реализации
1.3.5. Социальная психология и иные способы получения паролей
2. Защита информации криптографическими методами
2.1. Задачи, решаемые криптографическими методами
2.2. Классическая и «современная» криптография
2.3. Классификация криптоалгоритмов
2.4. Краткие сведения о криптоанализе
3. Симметричные криптосистемы
3.1. Основные понятия и определения
3.2. Мера стойкости шифра
3.3. Необходимое условие абсолютной стойкости шифра
3.4. Принцип Кирхгофа построения шифров
3.5. Шифры с секретным ключом
3.6. Базовая идея блочного шифра
3.7. Шифр простой замены
3.8. Недостатки режима простой замены
3.9. Гаммирование
3.10. Гаммирование с обратной связью
3.11. Имитозащита
4. Элементы теории чисел
4.1. Сравнения и их свойства
4.2. Вычисление степеней, возведение сравнений в степень
4.3. Сравнения с одним неизвестным
4.4. Наибольший общий делитель
4.5. Простые числа
4.6. Теоремы Эйлера и Ферма
5. Криптосистемы с открытым ключом
5.1. Однонаправленные функции
5.2. Алгоритм RSA
5.3. Практическое использование алгоритма RSA
5.4. Открытое распределение ключей
5.5. Электронная подпись
ГЛАВА 1
ОСНОВНЫЕ ВИДЫ И ИСТОЧНИКИ
АТАК НА ИНФОРМАЦИЮ
ГЛАВА 2
ЗАЩИТА ИНФОРМАЦИИ
КРИПТОГРАФИЧЕСКИМИ МЕТОДАМИ
Классификация криптоалгоритмов
В отношении криптоалгоритмов существует несколько схем классификации, каждая из которых основана на группе характерных признаков. Таким образом, один и тот же алгоритм «проходит» сразу по нескольким схемам, оказываясь в каждой из них в какой-либо из подгрупп.
Основной схемой классификации всех криптоалгоритмов является следующая:
1. Тайнопись. Отправитель и получатель производят над сообщением преобразования, известные только им двоим. Сторонним лицам неизвестен сам алгоритм шифрования. Некоторые специалисты считают, что тайнопись не является криптографией вообще.
2. Криптография с ключом. Алгоритм воздействия на передаваемые данные известен всем сторонним лицам, но он зависит от некоторого параметра – «ключа», которым обладают только отправитель и получатель.
· Симметричные криптоалгоритмы. Для зашифровки и расшифровки сообщения используется один и тот же блок информации (ключ).
· Асимметричные криптоалгоритмы. Алгоритм таков, что для зашифровки сообщения используется один (открытый) ключ, известный всем желающим, а для расшифровки – другой (закрытый), существующий только у получателя.
Весь дальнейший материал будет посвящен криптографии с ключом, так как большинство специалистов именно по отношению к этим криптоалгоритмам используют термин криптография, что вполне оправдано. Так, например, любой криптоалгоритм с ключом можно превратить в тайнопись, просто «зашив» в исходном коде программы некоторый фиксированный ключ. Обратное же преобразование практически невозможно.
В зависимости от характера воздействий, производимых над данными, алгоритмы подразделяются на:
1. Перестановочные. Блоки информации (байты, биты, более крупные единицы) не изменяются сами по себе, но изменяется их порядок следования, что делает информацию недоступной стороннему наблюдателю.
2. Подстановочные. Сами блоки информации изменяются по законам криптоалгоритма. Подавляющее большинство современных алгоритмов принадлежит этой группе.
Заметьте, любые криптографические преобразования не увеличивают объем информации, а лишь изменяют ее представление. Поэтому, если программа шифрования значительно (более, чем на длину заголовка) увеличивает объем выходного файла, то в ее основе лежит неоптимальный, а возможно и вообще некорректный криптоалгоритм. Уменьшение объема закодированного файла возможно только при наличии встроенного алгоритма архивации в криптосистеме и при условии сжимаемости информации (так, например, архивы, музыкальные файлы формата mp3, изображения формата jpeg сжиматься более чем на 2-4% не будут).
В зависимости от размера блока информации криптоалгоритмы делятся на:
1. Потоковые шифры. Единицей кодирования является один бит. Результат кодирования не зависит от прошедшего ранее входного потока. Схема применяется в системах передачи потоков информации, то есть в тех случаях, когда передача информации начинается и заканчивается в произвольные моменты времени и может случайно прерываться. Наиболее распространенными предствателями поточных шифров являются скремблеры. Скремблерами – называются программные или аппаратные реализации алгоритма, позволяющего шифровать побитно непрерывные потоки информации. Сам скремблер представляет из себя набор бит, изменяющихся на каждом шаге по определенному алгоритму. После выполнения каждого очередного шага на его выходе появляется шифрующий бит – либо 0, либо 1, который накладывается на текущий бит информационного потока операцией XOR.
2. Блочные шифры. Единицей шифрования является блок из нескольких байтов (в настоящее время 4-32). Результат шифрования зависит от всех исходных байтов этого блока. Схема применяется при пакетной передаче информации и шифровании файлов.
ГЛАВА 3
СИММЕТРИЧНЫЕ КРИПТОСИСТЕМЫ
Основные понятия и определения
В качестве информации, подлежащей шифрованию и расшифрованию, будут рассматриваться тексты, построенные на некотором алфавите. Под этими терминами понимается следующее.
Алфавит – конечное множество используемых для кодирования информации знаков.
Текст – упорядоченный набор из элементов алфавита.
Шифрование – процесс преобразования исходного текста, который носит также название открытого текста, в шифрованный текст (или шифротекст).
Расшифрование – процесс, обратный шифрованию. На основе ключа шифротекст преобразуется в исходный.
Ключ – информация, необходимая для беспрепятственного шифрования и расшифрования текстов.
Под симметричными криптографическими системами понимаются такие криптосистемы, в которых для шифрования и расшифрования используется один и тот же ключ. Для пользователей это означает, что прежде чем начать использовать систему, необходимо получить общий секретный ключ так, чтобы исключить к нему доступ потенциального злоумышленника.
Итак, пусть две стороны, которые мы назовем законными участниками обмена информацией, пытаются наладить секретную связь. Из них один является отправителем, а другой – получателем сообщения, хотя, конечно, в реальных ситуациях эти роли не закреплены за участниками жестко и каждому из них приходится быть как отправителем, так и получателем. Задача отправителя заключается в том, чтобы сформировать и отправить получателю сообщение T. Задача получателя заключается в том, чтобы посланное сообщение получить и понять его содержание. Чтобы один только получатель мог ознакомиться с содержанием сообщения, отправителю необходимо преобразовать его согласно некоторому алгоритму E таким образом, что бы никто, за исключением законного получателя и, быть может, самого отправителя, не мог восстановить его в прежнем виде. Это преобразование называется зашифрованием сообщения T, а то, что получается в результате этой процедуры, называется шифротекстом C. Связь между исходным текстом T, шифротекстом C и алгоритмом зашифрования E может быть символически выражена с помощью следующей формулы:
C = E(T).
Шифрованное сообщение C передается отправителем получателю по каналу связи. Чтобы законный получатель мог ознакомиться с содержимым полученного сообщения, он должен предварительно его расшифровать, то есть применить к шифротексту C алгоритм расшифрования D, в результате чего будет восстановлено исходное сообщение T. Таким образом, расшифрование данных осуществляется согласно уравнению
T = D(C).
Чтобы обеспечить секретность связи, алгоритм расшифрования не должен быть известен посторонним лицам, так как его секретность определяет секретность организованной таким образом связи.
В нашей ситуации присутствует третья сторона, называемая согласно сложившейся традиции злоумышленником, которая желает воспрепятствовать осуществлению намерений законных участников обмена. В наиболее общем случае во исполнение своих намерений злоумышленник может перехватывать шифрованные сообщения и посылать сфабрикованные им самим сообщения одной из сторон от имени другой. Конечно, он не владеет алгоритмом расшифрования – в этом случае все было бы предельно просто для него. Круг задач, которые может попытаться решить криптоаналитик, шире чем просто дешифрование сообщения – перечислим эти задачи, именуемые в криптографии угрозами:
· дешифровать сообщение C, то есть получить соответствующий ему открытый текст T полностью или частично, или хотя бы сделать некоторые заключения о содержании перехваченного сообщения, опираясь на обнаруженные в нем закономерности;
· сформировать на основе имеющихся у него данных сообщение , которое законный получатель принял бы за подлинное. При этом вовсе не обязательно, хотя, конечно, весьма желательно для злоумышленника, чтобы он сам мог понимать смысл составленного сообщения или даже мог сфабриковать любое выбранное им по своему усмотрению сообщение.
Под раскрытием шифра понимают успешную реализацию хотя бы одной из указанных угроз. Первая угроза, если будет осуществлена, нарушит секретность сообщения, а вторая нарушит его подлинность.
Степень успеха в реализации перечисленных выше угроз также может быть различной. Если исключить случайную удачу, то успешная реализация угрозы секретности данных означает овладение злоумышленником алгоритмом расшифрования D, или построение функционально эквивалентного ему алгоритма , позволяющего для любого зашифрованного сообщения C, или хотя бы для шифротекстов из некоторого класса, получить соответствующее открытое сообщение T.
Аналогично, успешная реализация угрозы целостности данных означает овладение злоумышленником алгоритмом зашифрования E, или построение функционально эквивалентного ему алгоритма , позволяющего для любого открытого сообщения T, или хотя бы для сообщений из некоторого класса, получить соответствующее зашифрованное сообщение C, или, в наименее успешном для него случае, создание алгоритма позволяющего создать такое зашифрованное сообщение , которое законный получатель принял бы за подлинное.
Для осуществления своих угроз злоумышленнику требуется выполнить некоторую достаточно интеллектуальную работу с перехваченными данными, в этом ему может помочь криптоаналитик. Нетрудно догадаться, что в задачу последнего входит криптоанализ, то есть анализ перехваченных сообщений с целью осуществления одной из перечисленных выше угроз. При этом аналитик может располагать следующей информацией:
· дешифруемый текст C, также могут иметься перехваченные ранее шифрованные сообщения (C1, C2, ..., Cn), зашифрованные с использованием того же самого алгоритма, что и C;
· открытые сообщения, соответствующие некоторым ранее перехваченным шифровкам: (T1 ,T2 , ..., Tm), , i = 1, ..., m, где m £ n;
· возможность получить для произвольного выбранного злоумышленником открытого сообщения T соответствующий шифротекст C = E(T);
· возможность получить для произвольного выбранного злоумышленником шифрованного сообщения C соответствующий открытый текст T = D(C).
Соответственно этим четырем возможностям различают следующие основные виды криптоанализа:
· анализ на основе только шифротекста;
· анализ на основе невыбранного открытого текста;
· анализ на основе выбранного открытого текста;
· анализ на основе выбранного шифротекста.
Первая возможность есть в распоряжении аналитика практически всегда. Вторая возможность также вполне реальна: например, разведке через агентуру удалось достать расшифровку одного из секретных сообщений. Более того, эта возможность весьма типична в тех сферах, где срок жизни секретной информации весьма мал, и она быстро предается огласке – при передаче рекламных материалов, различных репортажей, публикуемых впоследствии средствами массовой информации и т. д., словом везде, где надо опередить конкурентов всего на несколько часов или дней. Третья и четвертая возможности, хотя и кажутся экзотическими, тем не менее также могут иметь место – если сотрудник организации, работающий на другую сторону, имеет доступ к общим шифровальным средствам. Конечно, третий случай имеет смысл применительно к задаче дешифрования, а четвертый – навязывания ложных данных. Первые два актуальны для обеих угроз.
В рассматриваемой нами жизненной ситуации присутствует еще одна сторона, роль которой попытаемся выполнить мы сами. Это криптограф, в задачу которого входит снабдить законных участников обмена такими алгоритмами за- и расшифрования, чтобы злоумышленник не смог выполнить ни одну из своих угроз даже в самой благоприятной для него ситуации, то есть при возможности криптоанализа на основе произвольно выбранного открытого текста. Иными словами, задачей криптографа является разработка секретной и аутентичной системы передачи данных. Вообще говоря, это различные, хотя порой и связанные довольно тесно в конкретных шифрах свойства криптосистем. Поясним их смысл:
· Аутентичность есть защищенность криптографической системы от навязывания ложных данных.
· Секретность есть защищенность криптографической системы от несанкционированного ознакомления с содержимым закрываемых системой данных.
ГЛАВА 4
ЭЛЕМЕНТЫ ТЕОРИИ ЧИСЕЛ
ГЛАВА 5
КРИПТОСИСТЕМЫ С ОТКРЫТЫМ КЛЮЧОМ