- •Министерство образования и науки российской федерации федеральное агентство по образованию
- •Захарова ю.Ф. Дискретная математика и ее приложения
- •Введение
- •Глава 1. Введение в теорию множеств.
- •1.1. Основные определения.
- •1.2. Задание множеств
- •1.3. Операции над множествами
- •1.4. Разбиения и покрытия
- •1.5. Представление множеств в эвм.
- •1.5.1. Включение множеств.
- •1.5.2. Объединение множеств.
- •1.5.3. Пересечение множеств.
- •Глава 2. Булева алгебра.
- •2.1. Основные элементарные функции.
- •2.2. Основные элементарные тождества.
- •2.3. Формы представления булевых функций.
- •2.4. Минимизация булевых функций.
- •2.4.1. Метод Куайна.
- •2.4.2. Метод Карно.
- •Глава 3. Исчисление высказываний и исчисление предикатов.
- •3.1. Исчисление высказываний.
- •3.2. Исчисление предикатов.
- •Глава 4. Теория сжатия текстовой информации.
- •4.1. Метод Хаффмена
- •4.1.1. Общие положения
- •4.1.2. Краткое описание метода Хаффмена.
- •4.1.3. Пример использования метода Хаффмена.
- •4.2. Метод Зива Лемпеля (lz-метод)
- •4.2.1. Основные определения
- •4.2.2. Краткое описание lz-метода
- •4.2.3. Пример lz-метода
- •4.3. Метод Зива-Лемпеля-Велча (lzw-метод)
- •4.3.1. Общие положения
- •4.3.2. Краткое описание lzw-метода
- •4.3.3. Пример lzw-метода.
- •4.4. Метод Барроуза-Уиллера.
- •4.4.1. Общие положения.
- •4.4.2. 1 Этап. Преобразование Барроуза-Уилера.
- •4.4.3. 2 Этап. Mtf–метод.
- •4.4.4. 3 Этап. Статистический кодер.
- •4.4.5. Модификации различных этапов.
- •4.4.6. Сравнение алгоритмов сжатия на базе bwt с другими методами.
- •Глава 5. Теория сжатия графической информации. Введение.
- •5.2. Волновой метод (wavelet-метод)
- •5.2.1. Описание метода
- •5.2.2. Пример волнового метода
- •5.3. Дискретное косинус-преобразование (дкп-метод).
- •5.3.1. Описание метода.
- •5.3.2. Пример дкп-метода.
- •5.4. Классический алгоритм jpg.
- •5.5. Фрактальный алгоритм.
- •Глава 6. Введение в криптографию. Введение.
- •6.1. Методы перестановки
- •6.1.1. Матрицы
- •6.1.2. Маршруты Гамильтона
- •6.1.3. Электрический монтаж
- •6.1.4. Особенности перестановки
- •6.2. Методы подстановки
- •6.2.1. Вектор замен
- •6.2.2. Таблицы Вижинера
- •6.3. Метод замены. Использование алгебры матриц.
- •6.4. Аддитивные методы
- •6.5. Стеганология
- •6.6. Ключ. Основные понятия, связанные с ключом и алгоритмом.
- •6.6.1. Основные понятия.
- •6.6.2. Ключ.
- •6.6.3. Случайные и псевдослучайные числа.
- •6.6.4. Действия по шифрованию информации.
- •6.7. Блочные и поточные шифры.
- •6.8. Алгоритмы des, Triple des и их заменяющие.
- •6.8.2. Алгоритм Triple des
- •6.8.3. Коммерческие алгоритмы, заменившие des
- •6.9. Системы с открытым ключом.
- •6.10. Электронная подпись.
- •6.11. Взлом защищенных файлов.
- •6.11.1. Атака на ключ
- •6.11.2. Атака на алгоритм.
- •6.11.3. Скомпрометированный пароль.
- •6.11.4. Подделка открытых ключей.
- •6.11.5. Не до конца удаленные файлы.
- •6.11.6. Вирусы и закладки.
- •6.11.7. Виртуальная память.
- •6.11.8. Нарушение режима физической безопасности. Радиоатака. Фальшивые даты подписи.
- •6.11.10. Утечка информации в многопользовательской среде.
- •Содержание
- •Глава 6. Введение в криптографию. 1
6.11.2. Атака на алгоритм.
Предположим, некто определил, что при использовании данного алгоритма каждый 14-й бит шифротекста совпадает с каждым 12-м битом соответствующего открытого текста. Другими словами, если 14-й бит шифротекста равен 1, 12-й бит открытого текста также буДет равен 1, если 28-й бит шифротекста равен 0, то 24-й бит открытого текста также будет равен 0, и т.д. При этом ключ не оказывает никакого влияния. Кроме того, атакующий видит, что если определенная комбинация битов присутствует в определенном месте шифротекста, соответствующая часть открытого текста должна иметь определенную структуру.
Если алгоритм имеет подобные слабые места, атакующий может взглянуть на шифротекст и расшифровать фрагменты открытого текста, даже не зная ключа. Такого знания может оказаться достаточно, чтобы дать возможность атакующему воссоздать достаточно большую часть исходного сообщения, чтобы нанести вред.
Вот другое возможное слабое место. Предположим, что атакующему известен некий открытый Текст и соответствующий ему шифротекст. Допустим, что атакующий способен вычислить ключ на основе этой информации. Но если атакующий знает открытый текст, зачем ему беспокоиться об отыскании ключа? Дело в том, что атакующий может знать или быть в состоянии предугадать только часть открытого текста. Вспомним записку, о которой мы говорили в начале главы. Атакующий может видеть шифротекст, сообразить, что он представляет собой документ Word, и сделать предположение о некоторых служебных символах в его начале. Кроме того, атакующий может догадаться, что документ является сообщением электронной почты, исходя из стандартных слов “ТО: (Кому:)”, “FROM: (От:)” и “RE: (Ответ:)”. Короче говоря, если кто-либо может вычислить ключ, исходя из фрагментов шифротекста и соответствующего открытого текста, он легко восстановит все сообщение. Такой метод называется атакой на основе известного открытого текста.
6.11.3. Скомпрометированный пароль.
Наверное, самую простую атаку можно осуществить, если вы оставите где-нибудь записанный пароль, защищающий ваш закрытый ключ. Если кто-нибудь получит его, а затем получит доступ к файлу с вашим закрытым ключом, он сможет читать адресованные вам зашифрованные сообщения и ставить от вашего имени цифровую подпись.
Некоторые рекомендации по защите пароля:
1. Нельзя использовать очевидные фразы, которые легко угадать, например, имена детей или супруги.
2. Надо использовать в пароле пробелы и комбинации цифр и букв. Если пароль будет состоять из одного слова, его очень просто отгадать, заставив компьютер перебрать все слова в словаре. Именно поэтому фраза в качестве пароля гораздо лучше, чем слово. Более изощренный злоумышленник может заставить свой компьютер в поисках пароля перебрать словарь известных цитат.
3. Надо использовать творческий подход, например придумать фразу, которую легко запомнить, но трудно угадать: такая фраза может быть составлена из бессмысленных выражений или очень редких литературных цитат.
6.11.4. Подделка открытых ключей.
Самое уязвимое место — это возможность подделки открытых ключей. Вероятно, это самое серьезное слабое место любой криптосистемы с открытыми ключами, в частности, потому, что большинство людей не в состоянии немедленно обнаружить такую подделку. О том, почему это важно и какие против этого следует предпринимать меры, подробно написано выше, в разделе "Как защитить открытые ключи от подделки".
При использовании чьего-то открытого ключа, надо удостовериться, что он не был подделан. Целостности нового чужого открытого ключа следует доверять, только если он получен непосредственно от его владельца или подписан кем-то, пользующимся доверием. Надо обеспечить невозможность подделки открытых ключей в связке. Также необходимо сохранять физический контроль как над связкой открытых ключей, так и над своим закрытым ключом, по возможности сохранять их на своем персональном компьютере, а не на удаленной системе с разделением доступа. Нужно сохранять резервную копию обеих связок.
