Алгоритмы шифрования данных

Автор работы: Пользователь скрыл имя, 28 Ноября 2012 в 22:31, реферат

Краткое описание

Появление новых мощных компьютеров, технологий сетевых и нейтронных вычислений, сделало возможным дискредитацию криптографических систем, еще недавно считавшимися не раскрываемыми.
Все это постоянно подталкивает исследователей на создание новых криптосистем и тщательный анализ уже существующих.
Актуальность и важность проблемы обеспечения информационной безопасности обусловлена следующими факторами:
Современные уровни и темпы развития средств информационной безопасности значительно отстают от уровней и темпов развития информационных технологий.
Высокие темпы роста парка персональных компьютеров, применяемых в разнообразных сферах человеческой деятельности.

Содержание работы

Введение………………………………………………………………………………...3
1. Назначение и структура алгоритмов шифрования………………………………...5
1.1 Обзор криптографических методов…………………………………………….…6
2. Алгоритм симметричного шифрования……………...………………………….…7
2.1 Структура алгоритмов шифрования…………..…………………………………11
3. Применение симметричного алгоритма шифрования………..……………….…16
4. Обзор программ шифрования……………………………………………………..18
Заключение………………….………………………………………………………...30
Список литературы………………………….………………………………

Содержимое работы - 1 файл

методы шифрования данных.docx

— 572.23 Кб (Скачать файл)

Симметричное шифрование бывает двух видов:

  • Блочное шифрование - информация разбивается на блоки фиксированной длины (например, 64 или 128 бит), после чего эти блоки поочередно шифруются. Причем, в различных алгоритмах шифрования или даже в разных режимах работы одного и того же алгоритма блоки могут шифроваться независимо друг от друга или "со сцеплением" - когда результат зашифрования текущего блока данных зависит от значения предыдущего блока или от результата зашифрования предыдущего блока.
  • Поточное шифрование - необходимо, прежде всего, в тех случаях, когда информацию невозможно разбить на блоки - скажем, некий поток данных, каждый символ которых должен быть зашифрован и отправлен куда-либо, не дожидаясь остальных данных, достаточных для формирования блока. Поэтому алгоритмы поточного шифрования шифруют данные побитно или посимвольно. Хотя стоит сказать, что некоторые классификации не разделяют блочное и поточное шифрование, считая, что поточное шифрование - это шифрование блоков единичной длины.

Рассмотрим, как выглядят изнутри алгоритмы блочного симметричного  шифрования.

2.1 СТРУКТУРА АЛГОРИТМОВ  ШИФРОВАНИЯ

 

Подавляющее большинство  современных алгоритмов шифрования работают весьма схожим образом: над  шифруемым текстом выполняется  некое преобразование с участием ключа шифрования, которое повторяется  определенное число раз (раундов). При  этом, по виду повторяющегося преобразования алгоритмы шифрования принято делить на несколько категорий. Здесь также  существуют различные классификации, приведу одну из них. Итак, по своей  структуре алгоритмы шифрования классифицируются следующим образом:

  1. Алгоритмы на основе сети Фейстеля.

Сеть Фейстеля подразумевает  разбиение обрабатываемого блока  данных на несколько субблоков (чаще всего - на два), один из которых обрабатывается некоей функцией f() и накладывается на один или несколько остальных субблоков. На рис. 2 приведена наиболее часто встречающаяся структура алгоритмов на основе сети Фейстеля.

Рис. 2. Структура алгоритмов на основе сети Фейстеля.

Дополнительный аргумент функции f(), обозначенный на рис. 2 как Ki, называется ключом раунда. Ключ раунда является результатом обработки ключа шифрования процедурой расширения ключа, задача которой - получение необходимого количества ключей Ki из исходного ключа шифрования относительно небольшого размера (в настоящее время достаточным для ключа симметричного шифрования считается размер 128 бит). В простейших случаях процедура расширения ключа просто разбивает ключ на несколько фрагментов, которые поочередно используются в раундах шифрования; существенно чаще процедура расширения ключа является достаточно сложной, а ключи Ki зависят от значений большинства бит исходного ключа шифрования.

Наложение обработанного  субблока на необработанный чаще всего  выполняется с помощью логической операции "исключающее или" - XOR (как показано на рис. 2). Достаточно часто вместо XOR здесь используется сложение по модулю 2n, где n - размер субблока в битах. После наложения субблоки меняются местами, то есть в следующем раунде алгоритма обрабатывается уже другой субблок данных.

Такая структура алгоритмов шифрования получила свое название по имени Хорста Фейстеля (Horst Feistel) - одного из разработчиков алгоритма шифрования Lucifer и разработанного на его основе алгоритма DES (Data Encryption Standard) - бывшего (но до сих пор широко используемого) стандарта шифрования США. Оба этих алгоритма имеют структуру, аналогичную  показанной на рис. 2. Среди других алгоритмов, основанных на сети Фейстеля, можно  привести в пример отечественный  стандарт шифрования ГОСТ 28147-89, а также  другие весьма известные алгоритмы: RC5, Blowfish, TEA, CAST-128 и т.д.

На сети Фейстеля основано большинство современных алгоритмов шифрования - благодаря множеству  преимуществ подобной структуры, среди  которых стоит отметить следующие:

    • Алгоритмы на основе сети Фейстеля могут быть сконструированы таким образом, что для зашифрования и расшифрования могут использоваться один и тот же код алгоритма - разница между этими операциями может состоять лишь в порядке применения ключей Ki; такое свойство алгоритма наиболее полезно при его аппаратной реализации или на платформах с ограниченными ресурсами; в качестве примера такого алгоритма можно привести ГОСТ 28147-89.
    • Алгоритмы на основе сети Фейстеля являются наиболее изученными - таким алгоритмам посвящено огромное количество криптоаналитических исследований, что является несомненным преимуществом как при разработке алгоритма, так и при его анализе.

Существует и более  сложная структура сети Фейстеля, пример которой приведен на рис. 3.

Рис. 3. Структура сети Фейстеля.

Такая структура называется обобщенной или расширенной сетью Фейстеля и используется существенно реже традиционной сети Фейстеля. Примером такой сети Фейстеля может служить алгоритм RC6.

  1. Алгоритмы на основе подстановочно-перестановочных сетей (SP-сеть - Substitution-permutation network).

В отличие от сети Фейстеля, SP-сети обрабатывают за один раунд целиком  шифруемый блок. Обработка данных сводится, в основном, к заменам (когда, например, фрагмент входного значения заменяется другим фрагментом в соответствии с таблицей замен, которая может  зависеть от значения ключа Ki) и перестановкам, зависящим от ключа Ki (упрощенная схема показана на рис. 4).

Рис. 4. Подстановочно-перестановочная  сеть.

Впрочем, такие операции характерны и для других видов  алгоритмов шифрования, поэтому, на мой  взгляд, название "подстановочно-перестановочная  сеть" является достаточно условным.

SP-сети распространены  существенно реже, чем сети Фейстеля; в качестве примера SP-сетей  можно привести алгоритмы Serpent или SAFER+.

  1. Алгоритмы со структурой "квадрат" (Square).

Для структуры "квадрат" характерно представление шифруемого блока данных в виде двумерного байтового  массива. Криптографические преобразования могут выполняться над отдельными байтами массива, а также над  его строками или столбцами.

Структура алгоритма получила свое название от алгоритма Square, который  был разработан в 1996 году Винсентом  Риджменом (Vincent Rijmen) и Джоан Деймен (Joan Daemen) - будущими авторами алгоритма Rijndael, ставшего новым стандартом шифрования США AES после победы на открытом конкурсе. Алгоритм Rijndael также имеет Square-подобную структуру; также в качестве примера  можно привести алгоритмы Shark (более  ранняя разработка Риджмена и Деймен) и Crypton. Недостатком алгоритмов со структурой "квадрат" является их недостаточная  изученность, что не помешало алгоритму Rijndael стать новым стандартом США.

Рис. 5. Алгоритм Rijndael.

На рис. 5 приведен пример операции над блоком данных, выполняемой  алгоритмом Rijndael.

  1. Алгоритмы с нестандартной структурой, то есть те алгоритмы, которые невозможно причислить ни к одному из перечисленных типов. Ясно, что изобретательность может быть безгранична, поэтому классифицировать все возможные варианты алгоритмов шифрования представляется сложным. В качестве примера алгоритма с нестандартной структурой можно привести уникальный по своей структуре алгоритм FROG, в каждом раунде которого по достаточно сложным правилам выполняется модификация двух байт шифруемых данных (см. рис. 6).

Рис. 6. Модификация двух байт шифруемых данных.

Строгие границы между  описанными выше структурами не определены, поэтому достаточно часто встречаются  алгоритмы, причисляемые различными экспертами к разным типам структур. Например, алгоритм CAST-256 относится его автором  к SP-сети, а многими экспертами называется расширенной сетью Фейстеля. Другой пример - алгоритм HPC, называемый его автором сетью Фейстеля, но относимый экспертами к алгоритмам с нестандартной структурой.

 

 

 

3. ПРИМЕНЕНИЕ СИММЕТРИЧНОГО  АЛГОРИТМА ШИФРОВАНИЯ

 

Симметричные методы шифрования удобны тем, что для обеспечения  высокого уровня безопасности передачи данных не требуется создания ключей большой длины. Это позволяет  быстро шифровать и дешифровать  большие объемы информации. Вместе с тем, и отправитель, и получатель информации владеют одним и тем  же ключом, что делает невозможным  аутентификацию отправителя. Кроме  того, для начала работы с применением  симметричного алгоритма сторонам необходимо безопасно обменяться секретным  ключом, что легко сделать при  личной встрече, но весьма затруднительно при необходимости передать ключ через какие-либо средства связи.

Схема работы с применением  симметричного алгоритма шифрования состоит из следующих этапов:

  1. Стороны устанавливают на своих компьютерах программное обеспечение, обеспечивающее шифрование и расшифровку данных и первичную генерацию секретных ключей;
  2. Генерируется секретный ключ и распространяется между участниками информационного обмена. Иногда генерируется список одноразовых ключей. В этом случае для каждого сеанса передачи информации используется уникальный ключ. При этом в начале каждого сеанса отправитель извещает получателя о порядковом номере ключа, который он применил в данном сообщении;
  3. Отправитель шифрует информацию при помощи установленного программного обеспечения, реализующего симметричный алгоритм шифрования;
  4. Зашифрованная информация передается получателю по каналам связи;
  5. Получатель дешифрует информацию, используя тот же ключ, что и отправитель.

Ниже приведен обзор некоторых  алгоритмов симметричного шифрования:

  1. DES (Data Encryption Standard). Разработан фирмой IBM и широко используется с 1977 года. В настоящее время несколько устарел, поскольку применяемая в нем длина ключа недостаточна для обеспечения устойчивости к вскрытию методом полного перебора всех возможных значений ключа. Вскрытие этого алгоритма стало возможным благодаря быстрому развитию вычислительной техники, сделавшему с 1977 года огромный скачок;
  2. Triple DES. Это усовершенствованный вариант DES, применяющий для шифрования алгоритм DES три раза с разными ключами. Он значительно устойчивее к взлому, чем DES;
  3. Rijndael. Алгоритм разработан в Бельгии. Работает с ключами длиной 128, 192 и 256 бит. На данный момент к нему нет претензий у специалистов по криптографии;
  4. Skipjack. Алгоритм создан и используется Агентством национальной безопасности США. Длина ключа 80 бит. Шифрование и дешифрование информации производится циклически (32 цикла);
  5. IDEA. Алгоритм запатентован в США и ряде европейских стран. Держатель патента компания Ascom-Tech. Алгоритм использует циклическую обработку информации (8 циклов) путем применения к ней ряда математических операций;
  6. RC4. Алгоритм специально разработан для быстрого шифрования больших объемов информации. Он использует ключ переменной длины (в зависимости от необходимой степени защиты информации) и работает значительно быстрее других алгоритмов. RC4 относится к так называемым потоковым шифрам.
  7. В соответствии с законодательством США (соглашение International Traffic in Arms Peguiation), криптографические устройства , включая программное обеспечение , относится к системам вооружения .
  8. Поэтому при экспорте программной продукции , в которой используется криптография , требуется разрешение Госдепартамента. Фактически экспорт криптографической продукции контролирует NSA (National Security Agency). правительство США очень неохотно выдаёт подобные лицензии , поскольку это может нанести ущерб национальной безопасности США. Вместе с тем совсем недавно компании Hewlett-Packard выдано разрешение на экспорт её криптографического комплекса Ver Secure в Великобританию , Германию, Францию , Данию и Австралию. Теперь НР может эксплуатировать в эти страны системы, использующие 128-битный криптостандарт Triple DES ,который считается абсолютно надёжным.

 

 

  1. ОБЗОР ПРОГРАММ ШИФРОВАНИЯ

 

Принцип современной  криптозащиты заключается не в создании шифровки, которую невозможно прочесть (такое практически невозможно), а в повышении затрат криптоанализа. То есть зная сам алгоритм шифрования, но не знаю ключа, взломщик должен потратить  миллионы лет на расшифровку. Ну или  столько, сколько понадобится, пока x-files не потеряют актуальность. При  этом сложность вступает в противоречии с лёгкостью использования: данные должны шифроваться и расшифровываться достаточно быстро при использовании  ключа. Программы, которые мы рассмотрим, в целом удовлетворяют двум названным критериям: они достаточно просты в эксплуатации, при этом используют в меру стойкие алгоритмы.

DriveCrypt

 

Начнём  мы с проги, которая сама по себе достойна отдельной статьи или цикла  статей. Уже при установке присутствует дополнительня возможность создания ложной операционной системы. Сразу же после завершения общения с мастером установки ДрайвКрипт предложил создать хранилище ключей. Хранилищем может быть выбран любой файл: файл, рисунок, mp3. После того как путь к хранилищу указан, вбиваем пароли, коих у нас целых два типа: master & user. Отличаются они доступом к настройкам DCPP - пользователь не имеет возможности что-то изменить, он может лишь просматривать заданные настройки. Каждый тип может состоять из двух и боле паролей. Собственно доступ к установке защиты может быть представлен как по паролю мастера, так и по паролю пользователя. 

Перед тем, как шифровать любые диски, нужно проверить корректность установки  защиты загрузки. Будьте внимательны, если не проверить корректность работы защиты загрузки и сразу же зашифровать  диск, то восстановить его содержимое будет невозможно. После проверки можно переходить к шифрованию диска  или раздела. Чтобы зашифровать  диск или раздел, следует выбрать Disk Drives и нажать Encrypt. Мастер шифрования диска откроет окно, в котором  будет предложено выбрать ключ из хранилища. Диск будет зашифрован этим ключом и этот же ключ потребуется  для дальнейшей работы с диском. После того, как ключ выбран, будет  запущен процесс шифровки диска. Процесс достаточно долгий: в зависимости  от объема шифруемого диска или раздела  он может занимать до нескольких часов. 

В общем всё это достаточно просто и стандартно. Гораздо интереснее поработать с ложной осью. Отформатируем  раздал на жёстком диске обязательно  в FAT32, поставим Windows, установим DriveCrypt. Создаваемая  ложная операционная система должна выглядеть как рабочая, постоянно  используемая. После того, как скрытая  операционная система будет создана, загружаться и работать с ложной ОС крайне опасно, поскольку есть вероятность  разрушить данные скрытой операционной системы. Накидав в систему всякий мусор, создаём новое хранилище, авторизуемся в DCPP, переключаемся на вкладку Drives, выделяем раздел, где установлена ложная операционная система и фтыкаем HiddenOS. Откроется окно настроек. Здесь всё просто: указываем путь к только что созданному хранилищу, пароли, метку скрытого диска, его файловую систему и количество свободного места, которое будет отделять ложную операционную систему от скрытой. После фтыкания кнопки Create Hidden OS будет запущен процесс создания скрытого раздела и всё содержимое системного раздела будет скопировано на скрытый раздел. Прога создаст скрытый раздел, начало которого будет находиться через указанный при создании скрытого раздела промежуток свободного места от окончания ложного раздела. Перезагружаемся и авторизуемся вводом паролей, которые были указаны при создании скрытого раздела. Содержимое ложной операционной системы не будет видно при работе в скрытой ОС, и наоборот: при работе в ложной операционной системе не будет видно скрытой ОС. Таким образом, только введённый пароль при включении компьютера определяет то, какая операционная система будет загружена. После окончания создания скрытой операционной системы в неё нужно войти и зашифровать системный раздел. 

Информация о работе Алгоритмы шифрования данных