Основы информационной безопасности
(часть 2)
Ст.преподаватель кафедры
Информационной безопасности Ванюшина А.В.
Функции и механизмы
Криптографические системы и примитивы
|
|
|
|
|
|
|
|
|
|
|
|
"Бесключевые" |
|
|
|
Алгоритмы с |
|
|
|
Алгоритмы с |
|
|
|
|
|
|
секретным |
|
|
|
открытым |
|
|
|
|
|
|
ключом, |
|
|
|
ключом, |
|
|
|
|
|
|
(два или более объектов |
|
|
|
(секретный ключ знает |
|
|
"однонаправленные" |
|
|
|
делят один секретный |
|
|
|
только один объект, |
|
|
функции (прямая функция |
|
|
|
ключ) |
|
|
|
криптофункции |
|
|
считается легко, обратная, в |
|
|
|
|
|
|
|
выподняются при помощи |
|
|
идеале - бесконечно трудно) |
|
|
|
|
|
|
|
пары "свой" секретный + |
|
|
|
|
|
|
|
|
|
|
"чужой" открытый ключ) |
|
|
хэш-функции |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
симметричные шифры |
|
|
|
асимметричные шифры |
|
|
генераторы случайных |
|
|
|
|
|
|
|
|
|
|
чисел |
|
|
|
имитовставки (message |
|
|
|
электронно-цифровая |
|
|
|
|
|
|
authentication code) |
|
|
|
подпись |
|
|
математические примитивы |
|
|
|
|
|
|
|
|
|
|
для работы с большими |
|
|
|
псевдо-случайные |
|
|
|
криптографические |
|
|
простыми числами |
|
|
|
генераторы чисел |
|
|
|
протоколы |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
© 2003-2007 S-Terra CSP
Определения и концепции криптографии
Криптоанализ (cryptanalysis) – это наука, изучающая и взламывающая секреты шифровальных процессов, компрометирующая схемы аутентификации и выполняющая обратный инжиниринг алгоритмов и ключей. Криптоанализ является важной частью криптографии и криптологии. Криптоанализ, выполняемый хорошими парнями, предназначен для выявления недостатков и слабостей, заставляя разработчиков вернуться к чертежной доске и усовершенствовать компоненты. Также криптоанализ выполняется любопытными и мотивированными хакерами, для выявления тех же недостатков, но только с целью получения ключа шифрования для несанкционированного доступа с его помощью к конфиденциальной информации.
Шифрование – это метод преобразования читаемых данных, называемых открытым текстом (plaintext), в форму, которая выглядит случайнойи нечитаемой, она называется шифротекстом (chiphertext).
Открытый текст – это форма текста, понятная каждому человеку (документ) или компьютеру (исполняемый код). После того, как открытый текст будет преобразован в шифротекст, ни человек, ни машина не смогут правильно обработать его до выполнения расшифрования. Это позволяет передавать конфиденциальную информацию через незащищенные каналы, не опасаясь несанкционированного доступа к ней. При хранении данных на компьютере, они обычно защищаются логическими и физическими механизмами контроля доступа. Однако при передаче данных по сети, они больше не защищаются этими механизмами и находятся в более уязвимом состоянии.
Системы или продукты, которые предоставляют функции зашифрования и расшифрования, называются криптосистемами (cryptosystem), они могут создаваться в виде аппаратных компонентов или программного кода в приложениях. Криптосистемы используют алгоритмы шифрования (которые определяются как простые или сложные с точки зрения процесса шифрования), ключи, а также необходимые программные компоненты и протоколы. Большинство алгоритмов являются сложными математическими формулами, которые в определенной последовательности применяются к открытому тексту. Большинство методов шифрования используют секретное значение, называемое ключом (обычно ключ представляет собой длинную последовательность битов), который используется в процессе работы алгоритмом для зашифрования и расшифрования текста.
Определения и концепции криптографии
Алгоритм – это набор правил, также называемый шифром. Он определяет, как должно происходить зашифрование и расшифрование. Многие математические алгоритмы, используемые сегодня в компьютерных системах, являются публично доступными и широко известными – процесс шифрования не является секретом. Раз внутренние механизмы алгоритма не секретны, значит секретным должно быть что-то другое. Секретной частью общеизвестного алгоритма шифрования является ключ. Здесь можно провести аналогию с замком, чтобы проиллюстрировать это. Замок можно купить в любом магазине, множество людей используют замки одинакового производителя. Однако это вовсе не означает, что они могут открыть дверь друг друга и получить несанкционированный доступ в квартиру. Каждый замок имеет свой собственный ключ, который может открыть только соответствующий ему конкретный экземпляр замка.
В шифровании, ключ (криптопеременная) – это значение, которое состоит из длинной последовательности случайных битов. Но действительно ли это просто случайный набор битов, собранных вместе? На самом деле – нет. Алгоритм использует ключевое пространство (keyspace), являющееся диапазоном значений, которые могут использоваться для создания ключа. Когда алгоритму нужно сгенерировать новый ключ, он использует случайные значения из этого ключевого пространства. Чем шире ключевое пространство, тем больше доступных значений можно использовать для создания ключа, а чем больше случайных вариантов ключей, тем сложнее взломщику подобрать их. Например, если алгоритм позволяет использовать ключи длиной 2 бита, ключевое пространство для этого алгоритма составляет всего 4 возможных значения, это максимальное количество возможных вариантов различных ключей для этого алгоритма. Это очень узкое ключевое пространство, поэтому атакующему не потребуется много времени, чтобы найти правильный ключ и воспользоваться им.
Стойкость криптосистем
Криптосистемы могут предоставлять следующие сервисы:
•Конфиденциальность. Информация приводится в форму, нечитаемую для всех, кроме уполномоченных людей (или систем).
•Целостность. Данные не могут быть несанкционированно изменены в процессе их создания, передачи или хранения.
•Аутентификация. Проверка личности пользователя или системы, создавшей информацию.
•Авторизация. После идентификации человек вводит ключ или пароль, который позволяет получить доступ к определенному ресурсу.
•Неотказуемость (nonrepudiation). Обеспечивает невозможность отрицания отправителем факта отправки.
В качестве примера, иллюстрирующего работу этих сервисов, представим, что ваш начальник отправляет вам сообщение об увеличении вашей зарплаты вдвое. Сообщение зашифровано, поэтому вы можете быть уверены, что оно исходит от вашего начальника (аутентичность), что никто не изменил сообщение до момента его получения вашим компьютером (целостность), что никто не смог прочитать его в процессе передачи по сети (конфиденциальность), и что ваш начальник не сможет позднее сказать, что не отправлял вам это сообщение (неотказуемость).
Различные типы сообщений и транзакций в различной степени нуждаются в некоторых (или во всех) этих сервисах, обеспечиваемых криптографией. Военные и разведывательные агентства больше всего беспокоятся о сохранении своей информации в тайне, поэтому они выбирают механизмы шифрования, обеспечивающие высокий уровень секретности. Финансовые организации также заботятся о конфиденциальности, но еще важнее для них вопросы целостности данных при их передаче, поэтому выбираемые ими механизмы шифрования немного отличаются от механизмов шифрования, выбираемых военными. При передаче финансового сообщения, даже если в нем будет изменен всего один символ, это может привести к очень серьезным последствиям. Юридические фирмы в большей степени заботятся об аутентичности получаемых сообщений. Если полученная информация должна быть представлена в суде, ее аутентичность не должна вызывать никаких сомнений. Поэтому используемые этими фирмами методы шифрования должны обеспечивать аутентичность, подтверждающую личность отправителя информации.