Криптографические алгоритмы защиты информации Blowfish

Автор: Пользователь скрыл имя, 08 Декабря 2011 в 19:45, курсовая работа

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

Стремительное развитие средств вычислительной техники и открытых сетей передачи данных обусловило их широкое распространение в повседневной жизни и предпринимательской деятельности. Мощные вычислительные возможности и оперативность передачи информации не только оказали большое влияние на принципы ведения бизнеса, сложившиеся в большинстве традиционных отраслей, но и открыли новые направления развития предпринимательской деятельности. В современных условиях автоматизация банковской деятельности и управления предприятиями является «modus vivendi», а такие слова, как «Internet-banking», «e-commerce» и «smart-cards», уже не вызывают всеобщего удивления и жарких дебатов.
Однако последние достижения человеческой мысли в области компьютерных технологий связаны с появлением не только персональных компьютеров, сетей передачи данных и электронных денег, но и таких понятий, как хакер, информационное оружие, компьютерные вирусы и т.п. Оказывается, что под информационной безопасностью подразумевается одно из ведущих направлений развития информационных технологий - круг задач, решаемых в этой области, постоянно расширяется как в количественном, так и в качественном отношении.

Оглавление

Введение 4
1 Алгоритм Blowfish 29
1.1 Сеть Фейстеля 30
1.2 Описание алгоритма 33
1.3 Стойкость алгоритма 36
2 Криптографические системы 6
2.1 Основные понятия 6
2.2 Требования к криптографическим системам 7
2.3 Симметричные криптосистемы 9
2.4 Ассиметричные криптосистемы 11
2.5 Математические основы 15
3 Выбор оптимального блочного алгоритма шифрования 19
3.1 Сравнительная характеристика алгоритмов 19
3.2 Криптостойкость рассмотренных алгоритмов 25
4 Описание работы программы 38
Заключение 41
Список используемых источников 42
Приложение А Исходный код алгоритма Blowfish 43

Файлы: 1 файл

курсовая blowfish.docx

— 446.14 Кб (Скачать)

     Имя      f(имя_пароль)

     АЛИСА    РОМАШКА

     БОБ     НАРЦИСС

     Вход  в систему теперь выглядит так:

     Имя:  АЛИСА

     Пароль:  ГЛАДИОЛУС

     Когда Алиса вводит «секретный» пароль, компьютер проверяет, даёт или нет  функция, применяемая к ГЛАДИОЛУС, правильный результат РОМАШКА, хранящийся на диске компьютера. Стоит изменить хотя бы одну букву в имени или в пароле, и результат функции будет совершенно другим. «Секретный» пароль не хранится в компьютере ни в каком виде. Файл паролей может быть теперь просмотрен другими пользователями без потери секретности, так как функция практически необратимая.

     Преимущества:

  • Преимущество асимметричных шифров перед симметричными шифрами состоит в отсутствии необходимости предварительной передачи секретного ключа по надёжному каналу.
  • В симметричной криптографии ключ держится в секрете для обеих сторон, а в асимметричной криптосистеме только один секретный.
  • При симметричном шифровании необходимо обновлять ключ после каждого факта передачи, тогда как в асимметричных криптосистемах пару (E,D) можно не менять значительное время.
  • В больших сетях число ключей в асимметричной криптосистеме значительно меньше, чем в симметричной.

     Недостатки:

  • Преимущество алгоритма симметричного шифрования над несимметричным заключается в том, что в первый относительно легко внести изменения.
  • Хотя сообщения надежно шифруются, но «засвечиваются» получатель и отправитель самим фактом пересылки шифрованного сообщения.
  • Несимметричные алгоритмы используют более длинные ключи, чем симметричные. Ниже приведена таблица 1, сопоставляющая длину ключа симметричного алгоритма с длиной ключа несимметричного алгоритма с аналогичной криптостойкостью:

Таблица 1 – Сравнение длин ключей с аналогичной криптостойкостью

        Длина симметричного

        ключа, бит

        Длина несимметричного

        ключа, бит

        56         384
        64         512
        80         768
        112         1792
        128         2304
 
 
     
  •  Процесс шифрования - расшифрования с использованием пары ключей проходит на два-три порядка медленнее, чем шифрование - расшифрование того же текста симметричным алгоритмом.
  • В чистом виде асимметричные криптосистемы требуют существенно больших вычислительных ресурсов, потому на практике используются в сочетании с другими алгоритмами.
  1. Для ЭЦП сообщение предварительно подвергается хешированию, а с помощью асимметричного ключа подписывается лишь относительно небольшой результат хеш-функции.
  1. Для шифрования они используются в форме гибридных криптосистем, где большие объёмы данных шифруются симметричным шифром на сеансовом ключе, а с помощью асимметричного шифра передаётся только сам сеансовый ключ [7].

   2.5 Математические основы

     Теория  информации определяет количество информации в сообщении как минимальное количество бит, необходимое для кодирования всех возможных значений сообщения, считая все сообщения равновероятными.

     Формально, количество информации в сообщении  М измеряется энтропией сообщения, обозначаемое как Н(М). Энтропия сообщения, определяющего пол, составляет 1 бит, а энтропия сообщения, определяющего день недели, немного меньше, чем 3 бита. В общем случае энтропия сообщения, измеряемая в битах, равна log2n, где n - это количество возможных значений. При этом предполагается, что все значения равновероятны.

     Энтропия  сообщения также является мерой  его неопределенности. Это количество битов открытого текста, которое нужно раскрыть в шифротексте сообщения, чтобы узнать весь открытый текст. Например, если блок шифротекста "QHP*5M " означает либо "МУЖЧИНА", либо "ЖЕНЩИНА", то неопределенность сообщения равна 1. Криптоаналитику нужно узнать только один правильно выбранный бит, чтобы раскрыть сообщение [4].

     Для данного языка норма языка равна

     r = H(M)/N

     где N - это длина сообщения. При больших N норма обычного английского языка принимает различные значения от 1.0 бит/буква до 1.5 бит/буква. Шеннон утверждал, что энтропия зависит от длины текста. Конкретно он показал, что норма для 8-буквенных блоков равна 2.3 бит/буква, но ее значение падает и находится между 1.3 и 1.5 для 16-буквенных блоков. Томас Кавер (Thomas Cover) использовал игровую методику оценки и обнаружил, что энтропия равна 1.3 бит/символ. Абсолютная норма языка равна максимальному количеству битов, которое может быть передано каждым символом при условии, что все последовательности символов равновероятны. Если в языке L символов, то абсолютная норма равна:

     R = log2 L

     Это максимум энтропии отдельных символов.

     Для английского языка с 26 буквами  абсолютная норма равна log226, или около 4.7 бит/буква. Не должно удивлять то, что действительная норма английского языка намного меньше, чем абсолютная - естественные языки обладают высокой избыточностью. Избыточность языка, обозначаемая D, определяется как:

     D=R - r

     Считая, что норма английского языка  равна 1.3, избыточность составит 3.4 бит/буква. Это означает, что каждая английская буква содержит 3.4 бита избыточной информации.

     У сообщения ASCII, состоящего только из английских букв, количество информации на каждый байт составляет 1.3 бита. Значит, в каждом байте содержится 6.7 бита избыточной информации, что дает общую избыточность 0.84 бита информации на бит ASCII-текста и энтропию 0.16 бита информации на бит ASCII-текста.

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

     Энтропия  криптосистемы является мерой размера  пространства ключей, К. Она приблизительно равна логарифму числа ключей по основанию 2:

     Н(К) = log2 К

    Энтропия  криптосистемы с 64-битовым ключом равна 64 битам, энтропия криптосистемы  с 56-битовым ключом равна 56 битам. В  общем случае чем больше энтропия, тем тяжелее взломать криптосистему [4].

      Для сообщения длиной n число различных ключей, которые расшифруют шифротекст сообщения в какой-то осмысленный открытый текст на языке оригинального открытого текста (например, английском), определяется следующей формулой:

   2H(K)-nD-1

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

     Для большинства симметричных криптосистем расстояние уникальности определяется как энтропия криптосистемы деленная на избыточность языка.

     U = H(K)/D

     Расстояние  уникальности является не точным, а  вероятностным значением. Оно позволяет  оценить минимальное количество шифротекста, при вскрытии которого грубой силой имеется, вероятно, только один разумный способ дешифрирования. Обычно чем больше расстояние уникальности, тем лучше криптосистема. Для DES с 56-битовым ключом и англоязычного сообщения, записанного символами ASCII, расстояние уникальности приблизительно равно 8.2 символа ASCII или 66 бит [4].

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

Таблица 2 - Расстояния уникальности текста ASCII, зашифрованного алгоритмами с различной длиной ключа

Длина ключа (в битах) Расстояние  уникальности

(в символах)

40 5,9
56 8,2
64 9,4
80 11,8
128 18,8
256 37,6

 

      3 Выбор оптимального блочного алгоритма шифрования

   3.1 Сравнительная характеристика алгоритмов

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

     Проведем анализ основных симметричных блочных шифров. Криптосистема должна удовлетворять следующим требованиям [8]:

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

     Параметры выбранных алгоритмов сведены в таблицу 3.

     Краткая характеристика  выбранных алгоритмов:

  • DES (Data Encryption Standard). Федеральный стандарт шифрования США.

    Параметры алгоритма: размер блока 64 бита размер ключа 56 бит (64 бита, 8 из которых не используются) число раундов 16. Широкое использование  битовых перестановок в DESе делает алгоритм неудобным для программных реализаций на универсальных процессорах, а сами такие реализации крайне неэффективными. По сравнению с Российским стандартом шифрования DES содержит вдвое меньше раундов, однако его оптимальная реализация для процессоров линии Intel x86 уступает реализации Российского стандарта, по скорости в 3-10 раз в зависимости от марки процессора, эта разница увеличивается от младших моделей к старшим. Кроме того, по единодушному мнению криптографов начальная и конечная битовые перестановки являются не более чем "украшениями" алгоритма, т.е. бесполезны с криптографической точки зрения, а размера ключа в 56 бит явно недостаточно для обеспечения приемлемой стойкости, что регулярно демонстрируется успехами во вскрытии шифровок DES путем подбора ключа методом прямого перебора с помощью распределенной сети или спецпроцессора.

Информация о работе Криптографические алгоритмы защиты информации Blowfish