Автор работы: Пользователь скрыл имя, 11 Мая 2013 в 20:43, курс лекций
Информационная безопасность. Тема 10. Лекция 16.
Информационная безопасность. Лекция 6. Административный уровень обеспечения ИБ
Информационная безопасность. Тема 5-1. Лекция 7. Введение в криптографию
Информационная безопасность. Тема 5-2. Лекция 8. Симметричные алгоритмы шифрования. Алгоритм DES
Информационная безопасность. Тема 5-1. Лекция 7.
Введение в криптографию
Криптография - это дисциплина, изучающая способы защиты процессов информационного взаимодействия от целенаправленных попыток отклонить их от условий нормального протекания, основанные на криптографических преобразованиях, то есть преобразованиях данных по секретным алгоритмам. Важнейшей задачей криптографии является защита передаваемых по каналам связи или хранящихся в системах обработки информации данных от несанкционированного ознакомления с ними и от преднамеренного их искажения. Криптография решает указанную задачу посредством шифрования защищаемых данных, что предполагает использование двух следующих взаимно обратных преобразований - зашифрования и расшифрования.
На рисунке 1 приведена схема преобразования данных при шифровании:
Рис.1. Схема преобразования данных при шифровании.
Шифром называется пара алгоритмов, реализующих каждое из указанных преобразований. Секретность второго из них делает данные недоступными для несанкционированного ознакомления, а секретность первого делает невозможным навязывание ложных данных. Получение открытых данных по зашифрованным без знания алгоритма расшифрования называется дешифрованием.
Так как эти условия выполняются далеко не всегда, то в общем случае шифрование не является средством защиты от навязывания ложных данных. Процедура расшифрования должна всегда восстанавливать открытое сообщение в его исходном виде, т.е. для каждого допустимого сообщения T преобразования зашифрования и расшифрования должны удовлетворять следующему свойству:
T = D(E(T))
Второе условие, которому должен удовлетворять шифр, следующее: он должен шифровать данные, то есть делать их непонятными для непосвященного.
Другими словами, не должно существовать легко прослеживаемых связей между исходными и зашифрованными данными. Кроме того, шифр должен быть криптостойким, то есть устойчивым к попыткам дешифрования сообщений.
Конфузия: зашифрованный текст должен зависеть от ключа сложным и запутанным способом.
Диффузия: каждый бит незашифрованного текста должен влиять на каждый бит зашифрованного текста. Распространение одного незашифрованного бита на большое количество зашифрованных битов скрывает статистическую структуру незашифрованного текста. Определить, как статистические характеристики зашифрованного текста зависят от статистических характеристик незашифрованного текста, должно быть непросто.
Несмотря на почтенный возраст криптографии, до сих пор не разработано единой четкой классификационной схемы, в которую бы укладывались все существующие на сегодняшний день алгоритмы. Существует три схемы классификации, основанные на различных характерных признаках, поэтому один и тот же алгоритм входит сразу в три группы.
По принципу действия все криптоалгоритмы делятся на три большие группы.
Рис. 2. Схема работы симметричного криптоалгоритма.
Для целей конфиденциальности схема обмена информацией такова:
Рис. 3. Схема работы асимметричного криптоалгоритма для целей конфиденциальности.
Сравнение cимметричных и аcимметричных алгоритмов шифрования
В асимметричных системах необходимо
применять длинные ключи (512 битов и больше).
Длинный ключ резко увеличивает время
шифрования. Кроме того, генерация ключей
весьма длительна. Зато распределять ключи
можно по незащищенным каналам.
В симметричных алгоритмах используют
более короткие ключи, т. е. шифрование
происходит быстрее. Но в таких системах
имеется сложность распределения ключей,
поэтому при проектировании защищенной
системы часто применяют и cимметричные,
и аcимметричные алгоритмы. Так как система
с открытыми ключами позволяет распределять
ключи и в симметричных системах, можно
объединить в системе передачи защищенной
информации асимметричный и симметричный
алгоритмы шифрования. С помощью первого
рассылать ключи, вторым - шифровать передаваемую
информацию.
Обмен информацией можно осуществлять следующим образом:
В правительственных и военных системах связи используют лишь симметричные алгоритмы, так как нет строго математического обоснования стойкости систем с открытыми ключами, как, впрочем, не доказано и обратное.
По характеру воздействия на шифруемую информацию криптоалгоритмы делятся также на три группы.
Проще всего криптографические алгоритмы классифицируются по размеру обрабатываемых блоков в процессе шифрования. Согласно этой схеме, все системы разделяются всего на две группы: поточные и блочные.
Поточные криптоалгоритмы
В потоковых шифрах, т. е. при шифровании потока данных, каждый бит исходной информации шифруется независимо от других с помощью гаммирования, т.е. наложения на открытые данные гаммы шифра (случайной или псевдослучайной последовательности единиц и нулей) по определенному правилу. Обычно используется "исключающее ИЛИ", называемое также сложением по модулю 2 и реализуемое в ассемблерных программах командой XOR. Для расшифровывания та же гамма накладывается на зашифрованные данные.
При однократном
использовании случайной гаммы
одинакового размера с
В некоторых
потоковых шифрах ключ короче сообщения.
Обмен ключами размером с шифруемую
информацию не всегда уместен. Поэтому
чаще используют гамму, получаемую с
помощью генератора псевдослучайных чисел
(ПСЧ). В этом случае ключ - порождающее число
(начальное значение, вектор инициализации)
для запуска генератора ПСЧ. Каждый генератор
ПСЧ имеет период, после которого генерируемая
последовательность повторяется. Очевидно,
что период псевдослучайной гаммы должен
превышать длину шифруемой информации.
Генератор ПСЧ считается корректным,
если наблюдение фрагментов его выхода
не позволяет восстановить пропущенные
части или всю последовательность при
известном алгоритме, но неизвестном начальном
значении. При использовании генератора
ПСЧ возможны несколько вариантов:
Блочные шифры.
В них единицей обрабатываемой информации является целый блок данных. Его размер кратен 8. Результат шифрования зависит от всего исходного блока и это сильно осложняет криптоанализ, поскольку каждой букве после шифрования будет соответствовать множество различных символов. Таким образом, блочные алгоритмы считаются более надежными, нежели поточные. Их применение ограничивается шифрованием файлов и пакетной передачей данных.
Блочное шифрование можно осуществлять двояко:
Генератор ПСЧ может применяться и при блочном шифровании с аналогичными вариантами.
Блочный алгоритм преобразовывает n-битный блок незашифрованного текста в n-битный блок зашифрованного текста. Количество вариантов блоков длины n равно 2n. Для того чтобы преобразование было обратимым, каждый из таких блоков должен преобразовываться в свой уникальный блок зашифрованного текста. При маленькой длине блока такая подстановка плохо скрывает статистические особенности незашифрованного текста. Если блок имеет длину 64 бита, то он уже хорошо скрывает статистические особенности исходного текста. Но в данном случае преобразование текста не может быть произвольным в силу того, что ключом будет являться само преобразование, что исключает эффективную как программную, так и аппаратную реализации.
Наиболее широкое распространение получили сети Фейстеля, так как, с одной стороны, они удовлетворяют всем требованиям к алгоритмам симметричного шифрования, а с другой стороны, достаточно просты и компактны.
Сеть Фейстеля имеет следующую структуру. Входной блок делится на несколько подблоков равной длины, называемых ветвями. В случае, если блок имеет длину 64 бита, используются две ветви по 32 бита каждая. Каждая ветвь обрабатывается независимо от другой, после чего осуществляется циклический сдвиг всех ветвей влево. Такое преобразование выполняется несколько циклов или раундов. В случае двух ветвей каждый раунд имеет структуру, показанную на рисунке: