- •394026 Воронеж, Московский просп., 14 Введение
 - •1.Обзор наиболее распространенных методов "взлома"
 - •1.1. Комплексный поиск возможных методов доступа
 - •1.2. Терминалы защищенной информационной системы
 - •1.3. Получение пароля на основе ошибок администратора и пользователей
 - •1.4. Получение пароля на основе ошибок в реализации
 - •1.5. Социальная психология и иные способы получения паролей
 - •2. Криптография
 - •2.1. Классификация криптоалгоритмов
 - •2.2. Симметричные криптоалгоритмы
 - •2.2.1 Скремблеры
 - •2.2.2. Блочные шифры
 - •2.2.2.1. Общие сведения о блочных шифрах
 - •2.2.2.2. Сеть Фейштеля
 - •2.2.2.3. Блочный шифр tea
 - •2.2.2.4. Aes : cтандарт блочных шифров сша
 - •2.2.2.4.1. Общие сведения о конкурсе aes
 - •2.2.2.4.2. Финалист aes – шифр mars
 - •2.2.2.4.3. Финалист aes – шифр rc6
 - •2.2.2.4.4. Финалист aes – шифр Serpent
 - •2.2.2.4.5. Финалист aes – шифр TwoFish
 - •2.2.2.4.6. Победитель aes – шифр Rijndael
 - •2.3. Симметричные криптосистемы
 - •2.3.1. Функции криптосистем
 - •2.3.2. Алгоритмы создания цепочек
 - •2.3.3. Методы рандомизации сообщений
 - •2.3.3.1. Обзор методик рандомизации сообщений
 - •2.3.3.2. Генераторы случайных и псевдослучайных последовательностей
 - •2.3.4. Архивация
 - •2.3.4.1. Общие принципы архивации. Классификация методов
 - •2.3.4.2. Алгоритм Хаффмана
 - •2.3.4.3. Алгоритм Лемпеля-Зива
 - •2.3.5. Хеширование паролей
 - •2.3.6. Транспортное кодирование
 - •2.4. Асимметричные криптоалгоритмы
 - •2.4.1. Общие сведения об асимметричных криптоалгоритмах
 - •2.4.2. Алгоритм rsa
 - •2.4.3. Технологии цифровых подписей
 - •2.4.4. Механизм распространения открытых ключей
 - •2.4.5. Обмен ключами по алгоритму Диффи-Хеллмана
 - •3. Сетевая безопасность
 - •3.1. Атакуемые сетевые компоненты
 - •3.1.1. Сервера
 - •3.1.2. Рабочие станции
 - •3.1.3. Среда передачи информации
 - •3.1.4. Узлы коммутации сетей
 - •3.2. Уровни сетевых атак согласно модели osi
 - •4. По и информационная безопасность
 - •4.1. Обзор современного по
 - •4.1.1. Операционные системы
 - •4.1.2. Прикладные программы
 - •4.2. Ошибки, приводящие к возможности атак на информацию
 - •4.3. Основные положения по разработке по
 - •5. Комплексная система безопасности
 - •5.1. Классификация информационных объектов
 - •5.1.1. Классификация по требуемой степени безотказности
 - •5.1.2. Классификация по уровню конфиденциальности
 - •5.1.3. Требования по работе с конфиденциальной информацией
 - •5.2. Политика ролей
 - •5.3. Создание политики информационной безопасности
 - •5.4. Методы обеспечения безотказности
 - •Заключение
 - •Оглавление
 
2.3.2. Алгоритмы создания цепочек
Первая задача, с которой мы столкнемся при шифровании данных криптоалгоритмом – это данные с длиной, неравной длине 1 блока криптоалгоритма. Эта ситуация будет иметь место практически всегда.
Первый вопрос: – Что можно сделать, если мы хотим зашифровать 24 байта текста, если используется криптоалгоритм с длиной блока 8 байт? – Последовательно зашифровать три раза по 8 байт и сложить их в выходной файл так, как они лежали в исходном. – А если данных много и некоторые блоки по 8 байт повторяются, это значит, что в выходном файле эти же блоки будут зашифрованы одинаково - это очень плохо.
Второй вопрос : – А что если данных не 24, а 21 байт. Не шифровать последние 5 байт или чем-то заполнять еще 3 байта, – а потом при дешифровании их выкидывать. – Первый вариант вообще никуда не годится, а второй применяется, но чем заполнять ?
Для решения этих проблем и были введены в криптосистемы алгоритмы создания цепочек (англ. chaining modes). Самый простой метод мы уже в принципе описали. Это метод ECB (Electronic Code Book). Шифруемый файл временно разделяется на блоки, равные блокам алгоритма, каждый из них шифруется независимо, а затем из зашифрованных пакетов данных компонуется в той же последовательности файл, который отныне надежно защищен криптоалгоритмом. Название алгоритм получил из-за того, что в силу своей простоты он широко применялся в простых портативных устройствах для шифрования – электронных шифрокнижках. Схема данного метода приведена на рис. 2.16
	
Рис.
	2.16
В том случае, когда длина пересылаемого пакета информации не кратна длине блока криптоалгоритма, возможно расширение последнего (неполного) блока байт до требуемой длины либо с помощью генератора псевдослучайных чисел, что не всегда безопасно в отношении криптостойкости, либо с помощью хеш-суммы передаваемого текста. Второй вариант более предпочтителен, так как хеш-сумма обладает лучшими статистическими показателями, а ее априорная известность стороннему лицу равносильна знанию им всего передаваемого текста.
Указанным выше недостатком этой схемы является то, что при повторе в исходном тексте одинаковых символов в течение более чем 2*N байт (где N – размер блока криптоалгоритма) в выходном файле будут присутствовать одинаковые зашифрованные блоки. Поэтому для более "мощной" защиты больших пакетов информации с помощью блочных шифров применяются несколько обратимых схем "создания цепочек". Все они почти равнозначны по криптостойкости, каждая имеет некоторые преимущества и недостатки, зависящие от вида исходного текста.
Все схемы создания цепочек основаны на идее зависимости результирующего зашифровываемого блока от предыдущих либо от позиции его в исходном файле. Это достигается с помощью блока "памяти" – пакета информации длины, равной длине блока алгоритма. Блок памяти (к нему применяют термин IV – англ. Initial Vector) вычисляется по определенному принципу из всех прошедших шифрование блоков, а затем накладывается с помощью какой-либо обратимой функции (обычно XOR) на обрабатываемый текст на одной из стадий шифрования. В процессе раскодирования на приемной стороне операция создания IV повторяется на основе принятого и расшифрованного текста, вследствие чего алгоритмы создания цепочек полностью обратимы.
Два наиболее распространенных алгоритма создания цепочек – CBC и CFB. Их структура приведена на рис. 2.17 и
рис. 2.18. Метод CBC получил название от английской аббревиатуры Cipher Block Chaining – объединение в цепочку блоков шифра, а метод CFB – от Cipher FeedBack – обратная связь по шифроблоку.
	
Рис.
	2.17
	
Рис.
	2.18
Еще один метод OFB (англ. Output FeedBack – обратная связь по выходу) имеет несколько иную структуру (она изображена на рис. 2.19) : в нем значение, накладываемое на шифруемый блок, не зависит от предыдущих блоков, а только от позиции шифруемого блока (в этом смысле он полностью соответствует скремблерам), и из-за этого он не распространяет помехи на последующие блоки. Очевидно, что все алгоритмы создания цепочек однозначно восстановимы. Практические алгоритмы создания и декодирования цепочек будут разработаны на практическом занятии.
	
Рис.
	2.19
Сравним характеристики методов в виде таблицы.
Метод  | 
				Шифрование блока зависит от  | 
				Искажение одного бита при передаче  | 
				Кодируется ли некратное блоку число байт без дополнения?  | 
				На выход криптосистемы поступает  | 
			
ECB  | 
				текущего блока  | 
				портит весь текущий блок  | 
				нет  | 
				выход криптоалгоритма  | 
			
CBC  | 
				всех предыдущих блоков  | 
				портит весь текущий и все последующие блоки  | 
				нет  | 
				выход криптоалгоритма  | 
			
CFB  | 
				всех предыдущих блоков  | 
				портит один бит текущего блока и все последующие блоки  | 
				да  | 
				XOR маска с исходным текстом  | 
			
OFB  | 
				позиции блока в файле  | 
				портит только один бит текущего блока  | 
				да  | 
				XOR маска с исходным текстом  | 
			
