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

3 курс (заочка) / Лекции / Лекции ОИБ БСТ ч.2 заочн

.pdf
Скачиваний:
35
Добавлен:
15.02.2021
Размер:
1.32 Mб
Скачать

Основы информационной безопасности

(часть 2)

Ст.преподаватель кафедры

Информационной безопасности Ванюшина А.В.

Функции и механизмы

Криптографические системы и примитивы

 

 

 

 

 

 

 

 

 

 

 

 

"Бесключевые"

 

 

 

Алгоритмы с

 

 

 

Алгоритмы с

 

 

 

 

 

 

секретным

 

 

 

открытым

 

 

 

 

 

 

ключом,

 

 

 

ключом,

 

 

 

 

 

 

(два или более объектов

 

 

 

(секретный ключ знает

 

 

"однонаправленные"

 

 

 

делят один секретный

 

 

 

только один объект,

 

 

функции (прямая функция

 

 

 

ключ)

 

 

 

криптофункции

 

 

считается легко, обратная, в

 

 

 

 

 

 

 

выподняются при помощи

 

 

идеале - бесконечно трудно)

 

 

 

 

 

 

 

пары "свой" секретный +

 

 

 

 

 

 

 

 

 

 

"чужой" открытый ключ)

 

 

хэш-функции

 

 

 

 

 

 

 

 

 

 

 

 

 

 

симметричные шифры

 

 

 

асимметричные шифры

 

 

генераторы случайных

 

 

 

 

 

 

 

 

 

 

чисел

 

 

 

имитовставки (message

 

 

 

электронно-цифровая

 

 

 

 

 

 

authentication code)

 

 

 

подпись

 

 

математические примитивы

 

 

 

 

 

 

 

 

 

 

для работы с большими

 

 

 

псевдо-случайные

 

 

 

криптографические

 

 

простыми числами

 

 

 

генераторы чисел

 

 

 

протоколы

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

© 2003-2007 S-Terra CSP

Определения и концепции криптографии

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

Шифрование это метод преобразования читаемых данных, называемых открытым текстом (plaintext), в форму, которая выглядит случайнойи нечитаемой, она называется шифротекстом (chiphertext).

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

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

Определения и концепции криптографии

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

В шифровании, ключ (криптопеременная) это значение, которое состоит из длинной последовательности случайных битов. Но действительно ли это просто случайный набор битов, собранных вместе? На самом деле – нет. Алгоритм использует ключевое пространство (keyspace), являющееся диапазоном значений, которые могут использоваться для создания ключа. Когда алгоритму нужно сгенерировать новый ключ, он использует случайные значения из этого ключевого пространства. Чем шире ключевое пространство, тем больше доступных значений можно использовать для создания ключа, а чем больше случайных вариантов ключей, тем сложнее взломщику подобрать их. Например, если алгоритм позволяет использовать ключи длиной 2 бита, ключевое пространство для этого алгоритма составляет всего 4 возможных значения, это максимальное количество возможных вариантов различных ключей для этого алгоритма. Это очень узкое ключевое пространство, поэтому атакующему не потребуется много времени, чтобы найти правильный ключ и воспользоваться им.

Стойкость криптосистем

Криптосистемы могут предоставлять следующие сервисы:

Конфиденциальность. Информация приводится в форму, нечитаемую для всех, кроме уполномоченных людей (или систем).

Целостность. Данные не могут быть несанкционированно изменены в процессе их создания, передачи или хранения.

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

Авторизация. После идентификации человек вводит ключ или пароль, который позволяет получить доступ к определенному ресурсу.

Неотказуемость (nonrepudiation). Обеспечивает невозможность отрицания отправителем факта отправки.

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

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

Типы шифров

Симметричные шифры делятся на два основных типа: подстановки (substitution) и перестановки (transposition, permutation). Шифры подстановки заменяют биты, символы или блоки на другие биты, символы или блоки. Шифры перестановки не меняют исходный текст, вместо этого они перемещают исходные значения внутри исходного текста – они переставляют биты, символы или блоки символов для скрытия первоначального смысла.

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

заменялся символом, расположенным на три позиции дальше него в алфавите. Алгоритмом был алфавит, а ключом – инструкция «сдвигать на три символа».

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

Шифры перестановки

В шифре перестановки значение перемешивается (scrambled) или ставится в другом порядке. Ключ определяет позицию, на которую следует переместить значение. Это простейший пример шифра перестановки, он показывает только способ выполнения перестановки. Если применяются сложные математические функции, перестановка может стать достаточно сложной для взлома. Современные симметричные алгоритмы используют одновременно и длинные последовательности сложных подстановок и перестановок символов шифруемого сообщения. Алгоритм содержит возможные способы для процессов подстановки и перестановки (представленные в математических формулах). Ключ является инструкциями для алгоритма, точно указывая, как должна происходить обработка и в какой последовательности. Образно говоря, алгоритм создает различные ящики, каждый из которых имеет свой (отличный от других) набор математических формул, указывающих шаги подстановки и перестановки, которые должны быть совершены над попадающими в этот ящик битами. Для шифрования сообщения, значение каждого бита должно пройти через различные ящики. Однако если каждое наше сообщение будет проходить через один и тот же набор ящиков в одинаковой последовательности, злоумышленник легко сможет провести обратный инжиниринг этого процесса, взломать шифр и получить открытый текст нашего сообщения.

Симметричные алгоритмы

Криптографические алгоритмы делятся на симметричные алгоритмы, которые используют симметричные ключи (также называемые секретными ключами (secret key)), и асимметричные алгоритмы, которые используют асимметричные ключи (называемые также открытыми (public key) и закрытыми ключами (private key)).

Симметричная криптография

Вкриптосистеме, в которой применяется

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

Симметричные алгоритмы

Каждойпаре пользователеи,̆ для защищенного с помощью симметричнойкриптографии обмена данными, требуется два экземпляра одного и того же ключа. Например, если Боб и Алиса нужно обмениваться данными, им обоим нужно получить копию одного ключа. Если Боб хочет также с использованием симметричной криптографии взаимодействовать с Нормом и Дейвом, ему нужно иметь три отдельных ключа – по одному на каждого друга. Это не является большой проблемой, пока Бобу не потребуется взаимодействовать с сотней других людей за несколько месяцев и сохранять историю переписки. Ведь это потребует использования соответствующего ключа для переписки с каждым конкретным получателем. В таком случае это может стать сложнейшей задачей. Если десяти людям необходимо безопасно обмениваться данными друг с другом с использованием симметричной криптографии, им потребуется 45 ключей. Если же взаимодействовать нужно ста людям, им потребуется 4950 ключей. Формула для расчета необходимого количества симметричных ключей выглядит следующим образом:

Число ключей= N(N – 1)/2, где N – число абонентов

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

Известные симметричные криптосистемы : DES, AES.

DES: разработан фирмой IBM для правительства США. Национальный стандарт шифрования США в 1977-2000 годах.

AES: создан Дейманом и Рейманом в Бельгии. Национальный стандарт шифрования США с 2000 года.

Асимметричные алгоритмы

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

Всистемах с открытыми ключами, создается пара ключей, один из которых является закрытым, другой – открытым. Открытый ключ (public key) может быть известен всем, а закрытый ключ (private key) должен знать только его владелец. Часто открытые ключи хранятся в каталогах и базах данных адресов электронной почты, общедоступных всем желающим использовать

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

Асимметричные алгоритмы

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

ответить Бобу зашифрованным сообщением. Для этого ему нужно зашифровать свой ответ на

открытом ключе Боба, тогда Боб сможет расшифровать этот ответ с помощью своего закрытого ключа. При использовании асимметричного алгоритма, невозможно зашифровывать и расшифровывать сообщение одним и тем же ключом, эти ключи, хотя и связаны математически, они не совпадают (в отличие от симметричных алгоритмов). Боб может зашифровать данные на своем закрытом ключе, тогда получатель сможет расшифровать их на открытом ключе Боба. Расшифровывая сообщение на открытом ключе Боба, получатель может быть уверен, что

сообщение действительно исходит от Боба, ведь сообщение может быть расшифровано на

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

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

Соседние файлы в папке Лекции