- •Министерство образования и науки российской федерации федеральное агентство по образованию
- •Захарова ю.Ф. Дискретная математика и ее приложения
- •Введение
- •Глава 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.6.2. Ключ.
Применение термина “ключ” обусловлено тем фактом, что выбранное вами секретное число действует так же, как и обычный ключ от двери. Чтобы защитить содержимое вашего дома, вы устанавливаете замок на дверь. Чтобы открыть замок, вы вставляете ключ и поворачиваете его. Цилиндры и другие механизмы замка взаимодействуют с ключом предписанным способом, чтобы препятствовать открывайте двери. Чтобы, отпереть дверь, вы вставляете ключ и поворачиваете его в противоположном направлении. Цилиндры и механизмы взаимодействуют с ключом, что дает возможность открыть дверь.
В криптографии для того, чтобы защитить содержимое файлов, нужно установить замок (программу шифрования)/на дверь (компьютер). Чтобы запереть замок (зашифровать данные), нужно вставить ключ (секретное число) и выполнить определенные действия (вместо поворота ключа нужно запустить программу двойным щелчком мыши или нажатием клавиши ENTER). Алгоритм выполняет действия, используя ключ для преобразования открытого текста в шифротекст. Чтобы “отпереть” зашифрованный файл, используется тот же самый ключ и те же действия. Алгоритм выполняет свою работу в обратном порядке и преобразует шифротекст в исходный открытый текст.
Точно так же, как только определенный ключ может открыть входную дверь, так и только правильный ключ шифра может расшифровать данные. В криптографии с симметричным ключом ключ, используемый для зашифрования данных, совпадает с ключом, используемым для их расшифрования. Термин “симметричный” означает “одинаковый в обе стороны”, т.е. один и тот же ключ используется как для зашифрования, так и эасшифрования данных.
Однако ключи не являются взаимозаменяемыми для различных алгоритмов. Например, предположим, что вы зашифровали данные с помощью алгоритма Triple DES (Digital Encryption Standard), о котором пойдет речь ниже. Если вы попытаетесь расшифровать данные с использованием Advanced Encryption Standard (AES), о котором также будет рассказано далее в этой главе, даже при использовании одного и того же ключа, корректный результат не будет получен.
Во всех операциях шифрования используются ключи. Для чего необходим ключ? Почему бы не создать алгоритм, которому ключ не нужен?
Если атакующий может распознать используемый алгоритм, он может получить секретные данные, просто его выполнив. Это можно сравнить с установкой засова на входной двери снаружи. Действительно, если засов задвинут, дверь нельзя открыть. Однако любой может открыть дверь, просто отодвинув засов.
Может показаться, что решение состоит в том, чтобы держать алгоритм в секрете, но при таком подходе имеется несколько проблем. Во-первых, атакующие рано или поздно взломают алгоритм. Предположим, что вы предпринимаете действия, чтобы сохранить алгоритм в секрете. Если только вы не являетесь специалистом по криптографии и не разработали собственный алгоритм, вам придется поверить, что компания, которая создала алгоритм, никогда не раскроет его случайно или предумышленно. Можно ли это гарантировать в корпоративной среде?
Вот реальный вопрос: кому вы больше доверяете при хранении секретов — алгоритму, который должен быть сохранен в секрете, или алгоритму, который может выполнять свою работу, хотя все на свете знают, как он работает? Здесь-то и возникает вопрос о необходимости использования ключа.
Ключ избавляет от необходимости беспокоиться об алгоритме, используемом при шифровании. Если данные защищаются с помощью ключа, нужно защитить только ключ, что гораздо легче, чем защитить алгоритм. В этой книге вы узнаете много полезного о защите ключей. Кроме того, при применении ключей для защиты секретов, можно использовать различные ключи для защиты различных секретов. Это означает, что если кто-либо взломает один из ключей, другие секреты останутся в сохранности. Если вы зависите от секретного алгоритма, атакующий, взломавший алгоритм, получит доступ ко всем вашим секретам.
В криптографических системах с симметричным ключом ключ может быть только числом. Это число может быть любым, поэтому его можно выбрать случайным образом. Когда в следующий раз потребуется новый ключ, можно выбрать случайным образом другое число. Вопрос состоит в том, как выбрать число случайным образом?
