Российский ГОСударственный социальный университет
факультет: Автоматизации и информационных технологий
Кафедра: математики
специальность: Автоматизированные системы обработки информации и управления
КУРСОВАЯ РАБОТА
по дисциплине: «Методы и средства защиты информации»
на тему: «Шифрование по методу UUE»
Выполнили студенты 4 курса, дневного отделения
_____________
подпись
Руководитель Касьян Владимир Николаевич
_____________
подпись
Курсовой проект (работа) защищена с оценкой
_________________
«____» ____________________ 2004 г.
________________
подпись
АНАПА
2004 Содержание
Содержание.. 2
ВВЕДЕНИЕ.. 3
ОПИСАНИЕ МЕТОДА ХАФФМАНА.. 5
Метод Хаффмана.. 5
Статистический и адаптивный (динамический) алгоритм сжатия. 10
анализ алгоритма сжатия по методу Хаффмана.. 11
Описание работы программы. 11
Практическое применение программы. 11
Различия статической и динамической моделей. 12
Заключение.. 15
Используемая литература: 16
Приложение 1. Листинг программы. 17
ВВЕДЕНИЕ
Актуальностью
проблемы шифрования данных в сфере криптографии является то, что использование систем шифрования в сфере защиты информации велико и на сегодня существует множество различных алгоритмов позволяющих осуществлять шифрование. Главным критерием каждого метода является его криптостойкость.
Объектом исследования
в данной курсовой взят метод шифрования данных по алгоритму UUE. Данный метод используется в большинстве распространенных в настоящее время операционных систем на основе ядра UNIX (Solaris, FreeBSD, RedHat и др).
Целью проекта
ставится рассмотрение и изучение алгоритма шифрования данных по методу UUE, анализ его эффективности.
Далее в курсовой будут рассмотрена модель шифрования данных по алгоритму UUE.
Любая информационная система должна обеспечивать выполнение следующих основных функций: прием, шифрование, дешифрование и выдача информации.
Шифровальные алгоритмы, как например, шифровальный алгоритм IDEA, который использован в PGP, применяют единственную сложную функцию к открытому тексту для того, чтобы производить шифрование текста. С тех пор как алгоритм становится известным это означает, что даже если поток данных в алгоритме неизвестный, операции приложенные к этому потоку данных известны. Любой такой шифровальный алгоритм теоретически может быть взломан. Например, мы можем быть уверены, что есть много людей с дорогостоящим оборудованием, пытающихся, взломать шифр IDEA прямо сейчас, фактически это возможно уже произошло. Если обычно используемый шифровальный алгоритм уже перехвачен некоторым агентством, мы можем быть уверены, в том что это агентство продаст его другим организациям, что может повлечь за собой крах и большие потери для многих организаций.
ОПИСАНИЕ МЕТОДА
ШИФРОВАНИЯ UUE
Метод
шифрования UUE
Описание алгоритма
Алгоритм UUE основан на идее Фила Карна.
Берётся открытый текст 2N байтов и разделяется на две половины T1 и T2, каждый из N байтов. Также ключ шифрования делиться на две половины K1 и K2. Теперь находится функцию хэша пути S и это используется, чтобы смешивать K1 и T1 для того, чтобы получить блок из N байтов, затем производится второй этап шифрования открытого текста T2 при помощи алгоритма шифрования XOR; в результате получаем блок C2 состоящий из N байтов - это вторая половина зашифрованного текста:
S( K1, T1 ) xor T2 -> C2
Аналогичным способом шифруем другую половину текста, чтобы получить C1 - это первая половина зашифрованного текста:
S( K2, C2 ) xor T1 -> C1
Полный зашифрованный текст - сочетание блоков C1 и C2.
Для того, чтобы дешифровать зашифрованный текст, необходимо повторить операцию в обратном порядке:
S( K2, C2 ) xor C1 -> T1
S( K1, T1 ) xor C2 -> T2
Преимущество данной идеи в том, что безопасность основана в качестве скремблера S. Если Вы можете создать хороший скремблер, тогда Вы можете создать хороший шифровальный алгоритм.
Сердцем алгоритма UUE является параметрический скремблер (GSSCRAMBLE). Скремблер состоит из 7 простых скремблеров (SCRAMBLE0.. SCRAMBLE6). Также используются 32 функции хэша (HASH0.. HASH31).
Алгоритм UUE основан на вышеописанном методе, но он отличается от него.
- Первое отличие – производится деление ключа на четыре равных части: K1s, K1t, K2s, K2t. Компонент K1t используется как первая половина ключа шифрования, компонент K1s используется, чтобы выбирать из большого числа скремблеров - один, чтобы использовать его в дальнейшем для кодировки первой половины открытого текста T1:
S ( K1t, T1 ) xor T2 -> C2 K1s
Аналогичном способом использованы K2t и K2s, чтобы кодировать вторую часть зашифрованного текста, чтобы получить первую половину зашифрованного текста:
S ( K2t, C2 ) xor T1 -> C1 K2s
Для того, чтобы дешифровать зашифрованный текст (C1,C2)необходимо повторить эти же операции в обратном порядке:
S ( K2t, C2 ) xor C1 -> T1 K2s
S ( K1t, T1 ) xor C2 -> T2 K1s
Как Вы можете видеть, K1t и K2t использованы, чтобы модифицировать данные, которые нужно смешиваться, и подключи K1s и K2s использованы, чтобы выбирать скремблер, который определяет как данные будут смешаны. Поскольку UUE использует ключ в 256 байтов, который делится на четыре равные части, каждая длиной в 64 байт (512 битов).
Второе отличие предназначено для устранения слабости в алгоритме Фила Карна. Это можно проиллюстрировать следующим образом: предположим, что мы знаем открытый текст (A,B) и мы знаем, что это производит зашифрованный текст (X,Y), и мы также знаем, что открытый текст (A,C) - в котором мы знаем первую половину сообщения, но не знаем вторую половину - производит зашифрованный текст (W,Z). Затем мы можем вычислить неизвестный открытый текст C следующим образом:
S( K1, A ) xor B -> Y; следовательно S( K1, A ) = B xor Y
S( K1, A ) xor C -> W; следовательно C = S( K1, A) xor W
Объединение эти два результата дает мне величину C в форме:
C = ( B xor Y ) xor W
UUE свободен от этой слабости
Чтобы закодировать сообщение:
S( K1, T1 xor T2 ) xor T2 -> C2 S( K2, C2 ) xor ( T1 xor T2 ) -> C1
Чтобы декодировать сообщение
S( K2, C2 ) xor C1 -> (T1 xor T2 ) S( K1, T1 xor T2 ) xor C2 -> T2 ( T1 xor T2 ) xor T2 -> T1
Третье отличие – предназначено для защиты против словарной атаки, когда нападающий пытается определять ключ шифрования тестируя величины в словаре потенциальных ключей. Словарная атака основана на том, что люди не любят делать большие и сложные ключи. Независимо от того, насколько хорош алгоритм шифрования, если нападающий подбирает несколько миллион вариаций и таким образом может обнаружить ключ шифрования пользователя тогда безопасность целой организации может попасть в опасность. В алгоритме UUE имеется защита от такого рода взлома.
Алгоритм использует отмычку для генерации ключа шифрования. Используется следующая процедура: перед кодированием или декодированием текста, сначала UUE использует XOR отмычку с реальной произвольной последовательностью символов, которая - включается в код UUE, для того, чтобы стирать любые "статистические характеристики"; затем это объединяет результат с ключом пользователя; и наконец, это смешивает результат, чтобы получить "реальный" ключ, который впоследствии используется, для кодирования или декодирования блока данных.
Вот подробное описание двух циклов UUE:
Чтобы кодировать:
process( master-key, user-password ) -> K1t, K1s, K2t, K2s, Ksep, Kuni
separate( T ) -> T1, T2
Ksep
S ( K1t, T1 xor T2 ) xor T2 -> C2
K1s
S ( K2t, C2 ) xor ( T1 xor T2 ) -> C1
K2s
unite ( C1, C2 ) -> C
Kuni
Чтобы декодировать:
process( master-key, user-password ) -> K1t, K1s, K2t, K2s, Ksep, Kuni
separate( C ) -> C1, C2
Kuni
S ( K2t, C2 ) xor C1 -> ( T1 xor T2 )
K2s
S ( K1t, T1 xor T2 ) xor C2 -> T2
K1s
( T1 xor T2 ) xor T2 -> T1
unite ( T1, T2 ) -> T
Ksep
анализ алгоритма сжатия по методу Хаффмана
Описание работы программы.
Заключение
Основываясь на полученных данных можно сказать, что шифрование по методу UUE наиболее эффективно будет использоваться для шифрования больших текстовых файлов.
Используемая литература:
1. http://program.rin.ru/razdel/html/949.html /UUE-кодирование
2. Метод Хаффмана: Методические указания к лабораторной работе/ О. Е. Александров, Попков В.И. Екатеринбург: УГТУ, 2000.
3. Чарльз Сейтер, Сжатие данных,Мир ПК,N2 1991
4. Шеннон К. Работы по теории информации и кибернетике. - М.: ИЛ, 1963.
5. Huffman, D.A. A method for the construction of minimum-redundancy codes. Proc. Inst. Electr. Radio Eng. 40, 9 (Sept. 1952),
Приложение
1. Листинг программы.
|