Автор работы: Пользователь скрыл имя, 06 Июня 2013 в 13:04, дипломная работа
С массовым внедрением компьютеров во все сферы деятельности человека объем информации, хранимой в электронном виде вырос в тысячи раз. И теперь скопировать за полминуты и унести дискету с файлом, содержащим план выпуска продукции, намного проще, чем копировать или переписывать кипу бумаг. А с появлением компьютерных сетей даже отсутствие физического доступа к компьютеру перестало быть гарантией сохранности информации.
Каковы возможные последствия атак на информацию? В первую очередь, конечно, многих будут интересовать экономические потери:
Раскрытие коммерческой информации может привести к серьезным прямым убыткам на рынке;
Известие о краже большого объема информации обычно серьезно влияет на репутацию фирмы, приводя косвенно к потерям в объемах торговых операций;
ВВЕДЕНИЕ 4
1. ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ И МОДЕЛИ ЗАЩИТЫ ИНФОРМАЦИИ 7
1.1. Категории информационной безопасности 7
1.2. Абстрактные модели защиты информации 8
1.3. Обзор наиболее распространенных методов "взлома" 9
2. КРИПТОГРАФИЧЕСКИЕ МЕТОДЫ ЗАЩИТЫ ИНФОРМАЦИИ 19
2.1.Классификация криптоалгоритмов 19
2.2 Симметричные криптоалгоритмы 20
2.3. Блочный шифр DES 36
2.4. Разработка программы для алгоритма DES 48
3. КРИПТОСИСТЕМА 52
3.1. Функции криптосистем 52
3.2. Алгоритмы создания цепочек 53
3.3. Обзор методик рандомизации сообщений 56
3.4. Общие сведения об асимметричных криптоалгоритмах 59
3.5. Алгоритм RSA 61
ЗАКЛЮЧЕНИЕ 68
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 74
Асимметричные криптоалгоритмы. Алгоритм таков, что для зашифровки сообщения используется один ("открытый") ключ, известный всем желающим, а для расшифровки – другой ("закрытый"), существующий только у получателя.
В дальнейшем подробнее
рассмотрим криптографии с ключом,
так как большинство специалист
В зависимости от характера воздействий, производимых над данными, алгоритмы подразделяются на:
Блоки информации (байты, биты, более крупные единицы) не изменяются сами по себе, но изменяется их порядок следования, что делает информацию недоступной стороннему наблюдателю.
Сами блоки информации
изменяются по законам криптоалгоритма.
Подавляющее большинство
В зависимости от размера блока информации криптоалгоритмы делятся на:
Единицей кодирования является один бит. Результат кодирования не зависит от прошедшего ранее входного потока. Схема применяется в системах передачи потоков информации, то есть в тех случаях, когда передача информации начинается и заканчивается в произвольные моменты времени и может случайно прерываться. Наиболее распространенными предствателями поточных шифров являются скремблеры.
Единицей кодирования является блок из нескольких байтов (в настоящее время 4-32). Результат кодирования зависит от всех исходных байтов этого блока. Схема применяется при пакетной передаче информации и кодировании файлов[8,27].
2.2.1.Скремблеры
Скремблерами называются программные или аппаратные реализации алгоритма, позволяющего шифровать побитно непрерывные потоки информации. Сам скремблер представляет из себя набор бит, изменяющихся на каждом шаге по определенному алгоритму. После выполнения каждого очередного шага на его выходе появляется шифрующий бит – либо 0, либо 1, который накладывается на текущий бит информационного потока операцией XOR.
В последнее время сфера применения скремблирующих алгоритмов значительно сократилась. Это объясняется в первую очередь снижением объемов побитной последовательной передачи информации, для защиты которой были разработаны данные алгоритмы. Практически повсеместно в современных системах применяются сети с коммутацией пакетов, для поддержания конфиденциальности которой используются блочные шифры. А их криптостойкость превосходит, и порой довольно значительно, криптостойкость скремблеров.
Суть скремблирования
Генерация кодирующей последовательности бит производится циклически из небольшого начального объема информации – ключа по следующему алгоритму. Из текущего набора бит выбираются значения определенных разрядов и складываются по XOR между собой. Все разряды сдвигаются на 1 бит, а только что полученное значение ("0" или "1") помещается в освободившийся самый младший разряд. Значение, находившееся в самом старшем разряде до сдвига, добавляется в кодирующую последовательность, становясь очередным ее битом (см. рис.2.1).
Из теории передачи данных криптография заимствовала для записи подобных схем двоичную систему записи. По ней изображенный на рисунке скремблер записывается комбинацией "100112" – единицы соответствуют разрядам, с которых снимаются биты для формирования обратной связи.
Рассмотрим пример кодирования информационной последовательности 0101112 скремблером 1012 с начальным ключом 1102.
скремблер код.бит инф.бит рез-т
1 1 0 _
\ \ \_
1 1 1 _ \_
\ \ \_ 0 XOR 0 = 0
0 1 1 _ \_
\ \ \_ 1 XOR 1 = 0
1 0 1 \_
\ \ 1 XOR 0 = 1
и т.д.
Устройство скремблера предельно просто. Его реализация возможна как на электронной, так и на электрической базе, что и обеспечило его широкое применение в полевых условиях. Более того, тот факт, что каждый бит выходной последовательности зависит только от одного входного бита, еще более упрочило положение скремблеров в защите потоковой передачи данных. Это связано с неизбежно возникающими в канале передаче помехами, которые могут исказить в этом случае только те биты, на которые они приходятся, а не связанную с ними группу байт, как это имеет место в блочных шифрах[25].
Декодирование заскремблированных последовательностей происходит по той же самой схеме, что и кодирование. Именно для этого в алгоритмах применяется результирующее кодирование по "исключающему ИЛИ" – схема, однозначно восстановимая при раскодировании без каких-либо дополнительных вычислительных затрат. Произведем декодирование полученного фрагмента.
Главная проблема шифров на основе скремблеров - синхронизация передающего (кодирующего) и принимающего (декодирующего) устройств. При пропуске или ошибочном вставлении хотя бы одного бита вся передаваемая информация необратимо теряется. Поэтому, в системах шифрования на основе скремблеров очень большое внимание уделяется методам синхронизации. На практике для этих целей обычно применяется комбинация двух методов: а) добавление в поток информации синхронизирующих битов, заранее известных приемной стороне, что позволяет ей при ненахождении такого бита активно начать поиск синхронизации с отправителем, и б) использование высокоточных генераторов временных импульсов, что позволяет в моменты потери синхронизации производить декодирование принимаемых битов информации "по памяти" без синхронизации.
Число бит, охваченных обратной связью, то есть разрядность устройства памяти для порождающих кодирующую последовательность бит называется разрядностью скремблера.
Возможны различные типы графов состояния скремблера. На рисунке 2.2. приведены примерные варианты для 3-разрядного скремблера. В случае "А" кроме всегда присутствующего цикла "000">>"000" мы видим еще два цикла – с 3-мя состояниями и 4-мя. В случае "Б" мы видим цепочку, которая сходится к циклу из 3-х состояний и уже никогда оттуда не выходит. И наконец, в случае "В" все возможные состояния кроме нулевого, объединены в один замкнутый цикл. Очевидно, что именно в этом случае, когда все 2N-1 состояний системы образуют цикл, период повторения выходных комбинаций максимален, а корреляция между длиной цикла и начальным состоянием скремблера (ключом), которая привела бы к появлению более слабых ключей, отсутствует.
Например, в 8-битном скремблере, при охвате 0-го, 1-го, 6-го и 7-го разрядов действительно за время генерации 255 бит последовательно проходят все числа от 1 до 255, не повторяясь ни разу.
Схемы с выбранными по данному закону обратными связями называются генераторами последовательностей наибольшей длины (ПНД), и именно они используются в скремблирующей аппаратуре. Из множества генераторов ПНД заданной разрядности во времена, когда они реализовывались на электрической или минимальной электронной базе выбирались те, у которых число разрядов, участвующих в создании очередного бита, было минимальным. Обычно генератора ПНД удавалось достичь за 3 или 4 связи. Сама же разрядность скремблеров превышала 30 бит, что давало возможность передавать до 240 бит = 100 Мбайт информации без опасения начала повторения кодирующей последовательности.
ПНД неразрывно связаны с математической теорией неприводимых полиномов. Оказывается, достаточно чтобы полином степени N не был представим по модулю 2 в виде произведения никаких других полиномов, для того, чтобы скремблер, построенный на его основе, создавал ПНД. Например, единственным неприводимым полиномом степени 3 является x3+x+1, в двоичном виде он записывается как 10112 (единицы соответствуют присутствующим разрядам). Скремблеры на основе неприводимых полиномов образуются отбрасыванием самого старшего разряда (он всегда присутствует, а следовательно, несет информацию только о степени полинома), так на основе указанного полинома, мы можем создать скремблер 0112 с периодом зацикливания 7(=23-1). Естественно, что на практике применяются полиномы значительно более высоких порядков. А таблицы неприводимых полиномов любых порядков можно всегда найти в специализированных математических справочниках.
Существенным недостатком
скремблирующих алгоритмов является их
нестойкость к фальсификации[
Пример Криптоалгоритма на Паскале приведен в приложений 1. Схему криптоалгоритма смотрите в приложений 2.
2.2.2. Блочные шифры
На сегодняшний день разработано достаточно много стойких блочных шифров. Практически все алгоритмы используют для преобразований определенный набор биективных (обратимых) математических преобразований
Сетью Фейштеля называется метод обратимых преобразований текста, при котором значение, вычисленное от одной из частей текста, накладывается на другие части. Часто структура сети выполняется таким образом, что для шифрования и дешифрования используется один и тот же алгоритм – различие состоит только в порядке использования материала ключа.
Блочный алгоритм TEA приведен как пример одного из самых простых в реализации стойких криптоалгоритмов.
В 1998 году был объявлен открытый конкурс на криптостандарт США на несколько первых десятилетий XXI века. Победителем конкурса был признан бельгийский блочный шифр Rijndael. Он претендует на стандарт де-факто блочного шифрования во всем мире.
Характерной особенностью блочных криптоалгоритмов является тот факт, что в ходе своей работы они производят преобразование блока входной информации фиксированной длины и получают результирующий блок того же объема, но недоступный для прочтения сторонним лицам, не владеющим ключом. Таким образом, схему работы блочного шифра можно описать функциями Z=EnCrypt(X,Key) и X=DeCrypt(Z,Key)
Ключ Key является параметром
блочного криптоалгоритма и представляет
собой некоторый блок двоичной информации
фиксированного размера. Исходный (X) и
зашифрованный (Z) блоки данных также
имеют фиксированную разрядност
Блочные шифры являются основой, на которой реализованы практически все криптосистемы. Методика создания цепочек из зашифрованных блочными алгоритмами байт позволяет шифровать ими пакеты информации неограниченной длины. Такое свойство блочных шифров, как быстрота работы, используется асимметричными криптоалгоритмами, медлительными по своей природе. Отсутствие статистической корреляции между битами выходного потока блочного шифра используется для вычисления контрольных сумм пакетов данных и в хешировании паролей1.
Следующие разработки всемирно признаны стойкими алгоритмами и публикаций об универсальных методах их взлома в средствах массовой информации на момент создания материала не встречалось.
Криптоалгоритм именуется идеально стойким, если прочесть зашифрованный блок данных можно только перебрав все возможные ключи, до тех пор, пока сообщение не окажется осмысленным. Так как по теории вероятности искомый ключ будет найден с вероятностью 1/2 после перебора половины всех ключей, то на взлом идеально стойкого криптоалгоритма с ключом длины N потребуется в среднем 2N-1 проверок. Таким образом, в общем случае стойкость блочного шифра зависит только от длины ключа и возрастает экспоненциально с ее ростом. Даже предположив, что перебор ключей производится на специально созданной многопроцессорной системе, в которой благодаря диагональному параллелизму на проверку 1 ключа уходит только 1 такт, то на взлом 128 битного ключа современной технике потребуется не менее 1021 лет. Естественно, все сказанное относится только к идеально стойким шифрам, которыми, например, с большой долей уверенности являются приведенные в таблице выше алгоритмы.
Кроме этого условия к идеально стойким криптоалгоритмам применяется еще одно очень важное требование, которому они должны обязательно соответствовать. При известных исходном и зашифрованном значениях блока ключ, которым произведено это преобразование, можно узнать также только полным перебором. Ситуации, в которых постороннему наблюдателю известна часть исходного текста встречаются повсеместно. Это могут быть стандартные надписи в электронных бланках, фиксированные заголовки форматов файлов, довольно часто встречающиеся в тексте длинные слова или последовательности байт. В свете этой проблемы описанное выше требование не является ничем чрезмерным и также строго выполняется стойкими криптоалгоритмами, как и первое.
Таким образом, на функцию стойкого блочного шифра Z=EnCrypt(X,Key) накладываются следующие условия: