Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информационные_системы_и_сети_лекции.doc
Скачиваний:
5
Добавлен:
25.09.2019
Размер:
1.08 Mб
Скачать

Методы и способы обеспечения безопасности в сетевых кис Криптография

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

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

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

В основе шифрования лежат два основных понятия: алгоритм и ключ.

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

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

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

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

Количество возможных ключей для данного алгоритма зависит от числа бит в ключе. Например, 8-битный ключ допускает 256 комбинаций ключей. Чем больше возможных комбинаций ключей, тем труднее подобрать ключ, тем надёжнее зашифровано послание.

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

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

Наиболее просто выполнять шифрование на основе таблицы Вижинера. Поясним этот принцип шифрования на примере цифр от 0 до 9. Для цифр таблица Вижинера выглядит следующим образом:

0 1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 0

2 3 4 5 6 7 8 9 0 1

3 4 5 6 7 8 9 0 1 2

4 5 6 7 8 9 0 1 2 3

5 6 7 8 9 0 1 2 3 4

6 7 8 9 0 1 2 3 4 5

7 8 9 0 1 2 3 4 5 6

8 9 0 1 2 3 4 5 6 7

9 0 1 2 3 4 5 6 7 8

Как видно каждая последующая строка таблицы циклически сдвинута относительно предыдущей строки на единицу.

В качестве закрытого ключа возьмем, например, 538. Этим ключом зашифруем последовательность 6840326. Выбираем в строке первую цифру ключа 5, а в столбце первую цифру последовательности 6. На пересечении строки и столбца получаем цифру 1. Такое шифрование проводим для всех цифр последовательности с расширением ключа до числа цифр в кодируемой последовательности 5385385. В результате получаем зашифрованную последовательность 1125601.

При расшифровке необходимо в строке таблицы выбрать цифру ключа (5), в строке найти соответствующую цифру шифровки (1) и в первой строке получить исходный текст (6).

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

Одним из наилучших примеров криптоалгоритма, разработанного в соответствии с принципами рассеивания и перемешивания, может служить принятый в 1977 году Национальным бюро стандартов США стандарт шифрования данных DES. Несмотря на интенсивные и тщательные исследования алгоритма специалистами, пока не найдено уязвимых мест алгоритма, на основе которых можно было бы предложить метод криптоанализа, существенно лучший, чем полный перебор ключей. Общее мнение таково: DES — исключительно хороший шифр. В июле 1991 года введен в действие подобный отечественный криптоалгоритм ГОСТ 28147-89.

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

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

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

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

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

Исследование необратимых функций проводилось в основном по следующим направлениям: дискретное возведение в степень — алгоритм DH (Диффи-Хелман), умножение простых чисел — алгоритм RSA (Райвест, Шамир, Адлеман).

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

Надежность второго метода (RSA) находится в прямой зависимости от сложности разложения больших чисел на множители. Если множители имеют длину порядка 100 десятичных цифр, то в наилучшем из известных способов разложения на множители необходимо порядка 100 млн. лет машинного времени, шифрование же и дешифрование требует порядка 1–2 с на блок.

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

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

На пути к достижению высокого уровня секретности стоит проблема распространения ключа.

Идея использовать квантовые объекты для защиты информации от подделки и несанкционированного доступа впервые была высказана Стефаном Вейснером в 1970 г. Спустя 10 лет Беннет и Брассард, которые были знакомы с работой Вейснера, предложили использовать квантовые объекты для передачи секретного ключа. В 1984 г. они опубликовали статью, в которой описывался протокол квантового распространения ключа ВВ84.

Носителями информации в протоколе ВВ84 являются фотоны, поляризованные под углами 0, 45, 90, 135 градусов. В соответствии с законами квантовой физики, с помощью измерения можно различить лишь два ортогональных состояния: если известно, что фотон поляризован либо вертикально, либо горизонтально, то путем измерения, можно установить — как именно; то же самое можно утверждать относительно поляризации под углами 45 и 135 градусов. Однако с достоверностью отличить вертикально поляризованный фотон от фотона, поляризованного под углом 45º, невозможно.

Эти особенности поведения квантовых объектов легли в основу протокола квантового распространения ключа.