Разработка блочного алгоритма шифрования

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

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 05.11.2015
Размер файла 241,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://allbest.ru

Тема

Разработка блочного алгоритма шифрования

Реферат

алгоритм шифрование криптостойкость

Пояснительная записка с., рисунка, источников.

Ключевые слова: АУТЕНТИФИКАЦИЯ, БЛОЧНЫЙ АЛГОРИТМ ШИФРОВАНИЯ, СЕТЬ ФЕЙСТЕЛЯ, АЛГОРИТМ ШИФРОВАНИЯ.

Тема работы: разработка блочного алгоритма шифрования.

Цель работы - разработать блочный алгоритм шифрования, оценить его криптостойкость, скорость работы.

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

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

Введение

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

В данной курсовой работе предложен блочный алгоритм шифрования, построенный на основе сети Фейстеля.

1.Сеть Фейстеля

1.1 Представление сети Фейстеля

Сеть Фейстеля (конструкция Фейстеля) -- один из методов построения блочных шифров. Сеть представляет собой определённую многократно повторяющуюся (итерированную) структуру, называющуюся ячейкой Фейстеля. При переходе от одной ячейки к другой меняется ключ, причём выбор ключа зависит от конкретного алгоритма. Операции шифрования и расшифрования на каждом этапе очень просты, и при определённой доработке совпадают, требуя только обратного порядка используемых ключей. Шифрование при помощи данной конструкции легко реализуется как на программном уровне, так и на аппаратном, что обеспечивает широкие возможности применения. Большинство современных блочных шифров используют сеть Фейстеля в качестве основы. Альтернативой сети Фейстеля является подстановочно-перестановочная сеть.

В 1971 году Хорст Фейстель (Horst Feistel), в стенах корпорации IBM, разработал два устройства, реализовавшие различные алгоритмы шифрования, названные затем общим название «Люцифер». В одной из этих устройств он использовал схему, которую впоследствии назвали Сетью Фейстеля. Эта сеть представляет собой определённую многократно итерированную (повторяющуюся) структуру, которою называют ячейкой Фейстеля.

Принцип работы сети достаточно прост:

1. Исходные данные разбиваются на блоки фиксированной длины (как правило кратно степени двойки -- 64 бит, 128 бит). В случае если длина блока исходных данных меньше длины разрядности шифра, то блок дополняется каким-либо заранее известным образом.

Рис.1 - Общий алгоритм построения сети Фейстеля

2. Блок делится на два равных подблока -- «левый» L0 и «правый» R0. В случае 64-битной разрядности -- на два блока с длиной 32 бита каждый.

3. «Левый подблок» L0 видоизменяется функцией итерации F(L0, P0) в зависимости от ключа P0, после чего он складывается по модулю 2 (XOR) с «правым подблоком» R0. XOR (обозначается с -- инволютивная операция. Преобразование одного числа с другим дважды, то мы опять искомое получим. Т.е. A сB сB == A. Отсюда следует, что можно выстраивать бесконечные цепочки A сB сC сD с и если мы преобразуем всё в обратном порядке, то получим A. Например, ((100 с200) с50) с150= 8. Отсюда 8 с150 с 50 с200 = 100.

4. Результат сложения присваивается новому левому подблоку L1, который становится левой половиной входных данных для следующего раунда, а «левый подблок» L0 присваивается без изменений новому правому подблоку R1, который становится правой половиной.

5. Эта операция повторяется n-1 раз, при этом при переходе от одного этапа к другому меняются раундовые ключи (P0, P1, P2 и т.д.), где n -- количество раундов для используемого алгоритма.

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

1.2 Исходные данные

Необходимо передать сообщение, состоящее из 8 букв: ФЕЙСТЕЛЬ. Для того, чтобы передать сообщение необходимо каждой букве слова задать определенное цифровое значение как представлено в таблице 1.

Таблица 1- таблица замены.

Ф

Е

Й

С

Т

Е

Л

Ь

4

6

2

3

5

6

7

8

После замены букв на символы наше сообщение будет иметь вид: 46235678. Разбивает наше сообщение на 2 равные части L и R => L= 4623, R=5678. Ключ K имеет значение 4 и меняется в зависимости от раунда : Kn=k+n, где n- номер раунда.

1.3 Операция шифрования

Рис.2 - Алгоритм шифрования

Имеется значение L=4623 и R=5678, ключ - Kn=k+n и F(L, Kn)= Rс(L+Kn)mod128, где mod - это остаток от деления.

Раунд 1 (n =1).

Берем R=5678 и производим функцией xor его с результатом функции F(L,K1), т.е. F=5678с((4623+5)mod128)=5690.

Ставим 5690 на место L, а на место R предыдущее значение L,R=4623, т.е. меняем местами R и результат xor R с функцией F.

Раунд 2 (n = 2).

Берем R=4623 и производим функцией xor его с результатом функции F(L,K2), т.е. F=4623с((5690+6)mod128)=4687.

Ставим 4687 на место L, а на место R предыдущее значение L,R=5690, т.е. меняем местами R и результат xor R с функцией F.

Раунд 3 (n = 3).

Берем R=4687 и производим функцией xor его с результатом функции F(L,K3), т.е. F=5690с((4687+7)mod128)=5740.

Ставим 5740 на место L, а на место R предыдущее значение L,R=4687, т.е. меняем местами R и результат xor R с функцией F.

Раунд 4 (n=4).

Берем R=4687 и производим функцией xor его с результатом функции F(L,K1), т.е. F=4687с((5740+8)mod128)=4667.

Ставим 4667 на место L, а на место R предыдущее значение L,R=5740, т.е. меняем местами R и результат xor R с функцией F.

Раунд 5 (n=5).

Берем R=4667 и производим функцией xor его с результатом функции F(L,K1), т.е. F=5740с((4667+9)mod128)=5672.

После шифрования L =4667, R = 5672.

После этого соединяем две части Lи R вместе и получается: 46675672 -- это наше зашифрованное сообщение.

1.4 Операция дешифрования

Рис.3 -- алгоритм дешифрования

Идем в обратном порядке, номера раундов идут с 5 и до 1.

Раунд 1 (n = 5).

L = 4667, R = 5672.

Выполняем действие F=5672с((4667+9)mod128)=5740.

Раунд 2 (n = 4).

L = 5740, R = 4667.

Выполняем действие F=4667с((5740+8+9)mod128)=4687.

Раунд 3 (n = 3).

L = 4687, R = 5740.

Выполняем действие F=5740с((4687+7)mod128)=5690.

Раунд 4 (n = 2).

L = 5690, R = 4687.

Выполняем действие F=4687с((5690+6)mod128)=4623.

Раунд 5 (n = 1).

L = 4623, R = 5690.

Выполняем действие F=5690с((4623+5)mod128)=5678.

В итоге получилось, что L=4623, R=5678. В результате дешифрации получили сообщение 46235678. По заданной таблице записываем каждое значение цифры соответствующую ей букву- ФЕЙСТЕЛЬ.

Данный алгоритм имеет несколько положительных качеств:

1) простая реализация на программном и аппаратном уровне;

2) минимальные затраты ресурсов вычислительной техники;

3) быстрота шифрования и расшифровывания.

Но так же и имеется ряд отрицательных качеств, а именно:

1) малая длинна ключей;

2) малое количество раундов.

2. Криптостойкость алгоритма шифрования

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

Говорят, что криптографическая схема вычислительно безопасна, если:

1) стоимость расшифровки сообщения превышает стоимость самого сообщения;

2) время, необходимое для расшифровки сообщения, больше срока жизни сообщения.

Криптостойкость ключа, который используется в данном алгоритме на основе сетей Фейстеля имеет вид:

K - число символов используемых в ключе (в данной работе использовал К=10) ;

P -- вероятность взлома ключа одного ключа с первого раза;

E -- число операций нужных для взлома с использованием всего лишь 1 раунда и 1 ключа.

Формула расчета времени взлома ключа человеком

Формула расчета времени взлома ключа ЭВМ:

Т -- время, которое понадобится злоумышленнику для взлома алгоритма с 1 раундом ( в секундах).

v -- скорость ввода символов человеком или ЭВМ ( для человека примерно 1символ в секунду, для ЭВМ -- 108 , так как скорость современных персональных компьютеров достигает сотни миллионов операций в секунду).

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

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

3.Пример криптографического протокола, используемым алгоритмом

В данном алгоритме для идентификации сторон будет использоваться протокол Фиата -- Шамира. Этот протокол с нулевым разглашением основывается на сложности вычисления квадратного корня числа по модулю большого числа с неизвестным разложением на простые множители. В протоколе предполагается, что обеим сторонам заранее известно некоторое число n = pq. При этом разложение числа n на простые множители считается неизвестным для всех участников протокола.

Принцип действия протокола:

Доказывающая сторона (Алиса) выбирает секретное число s (которое становится ее секретным ключом), взаимно простое с n, далее вычисляет значение v ? sІ mod n и публикует значение, объявляя его своим открытым ключом.

Далее следует выполнение протокола идентификации:

1) Алиса выбирает некоторое случайное число z, 1 < z < n - 1;

2) Алиса вычисляет число x ? zІ mod n и посылает его проверяющей стороне (Бобу);

3) Боб выбирает случайный бит b и пересылает его Алисе;

4) Алиса вычисляет число y: если b = 0, то y = z, иначе y ? zs mod n, и пересылает число y Бобу;

5) Боб проверяет, что yІ ? xvb mod n.

Если b = 0, то y = z, yІ = zІ, xvb = x, и проверка означает, что выражение x ? zІmod n верно. Аналогично, если b =1, то y ? zs mod n, yІ ? zІsІ mod n, xvb =xv ? xsІ mod n. И проверка также означает, что выражение zІsІ ? xsІ mod n.

Эти шаги образуют один цикл протокола, называемый аккредитацией. Алиса и Боб повторяют этот цикл t раз при разных случайных значениях z и b до тех пор, пока Боб не убедится, что Алиса знает значение s.

Число раундов должно быть достаточно большим, потому что злоумышленник может «угадать» случайный бит. При достаточно большом числе раундов угадать все значения становится практически невозможным.

Пример:

p=4; q=5; n=20,

s=9: v=92mod20=1,

z=17,

x=172mod20=9,

При b=1:

y=17*9mod20=13,

y2=9*11nod15=9,

y2=172*92mod20=10,

9*1=9*11mod20=9,

172*92mod15=9*92mod20=9.

При b=0:

y=17,

y2=9*10mod20=9,

y2=172=289,

9*10=9,

x=289mod20=9.

Заключение

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

В результате было выяснено, что:

1) Алгоритм имеет высокую скорость шифрования (5 раундов);

2) минимальные затраты ресурсов вычислительной техники;

3) высокая скорость шифровки и дешифровки;

4) простота в реализации.

Недостатки:

Данная система обладает низкой криптосойкостью, так как использовалось малое число ключей и число раундов, а также малая длина ключа, что соответствует быстрому подбору ключей.

Размещено на Allbest.ru


Подобные документы

  • Исследование системы распределения ключей на основе линейных преобразований. Описание компонентов сети конфиденциальной связи. Характеристика отечественного алгоритма шифрования данных. Обзор результатов расчетов криптостойкости алгоритма шифрования.

    контрольная работа [56,5 K], добавлен 26.09.2012

  • Исследование симметричных алгоритмов блочного шифрования. Минусы и плюсы алгоритма IDEA. Разработка программы аутентификации пользователя и сообщений на основе алгоритма IDEA. Выбор языка программирования. Тестирование и реализация программного средства.

    курсовая работа [314,2 K], добавлен 27.01.2015

  • Разработка программы кодирования текстового файла при помощи блочного алгоритма шифрования ТЕА типа "Сеть Фейштеля", который основан на битовых операциях с 64-битным блоком и имеет 128-битный ключ шифрования. Результаты кодирования и декодирования.

    лабораторная работа [299,9 K], добавлен 18.07.2013

  • Шифрование - широко используемый криптографический метод сохранения конфиденциальности информации. Описание схемы шифрования и расшифрования. Структура алгоритмов на основе сети Фейстеля. Скриншоты работающей программы. Скорость работы алгоритмов.

    курсовая работа [545,2 K], добавлен 29.11.2010

  • Разработка программы, реализующей процедуры шифрования и расшифрования текста по стандарту DES (Data Encryption Standard). Структура алгоритма шифрования, схема выработки ключевых элементов. Использование криптографического программного средства.

    курсовая работа [1,7 M], добавлен 15.06.2013

  • Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.

    курсовая работа [101,1 K], добавлен 09.03.2009

  • Симметричные криптосистемы как способ шифрования, в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ. Разбор и реализация шифрования алгоритма: простая и двойная перестановка, перестановка "магический квадрат".

    курсовая работа [3,3 M], добавлен 11.03.2013

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

    курсовая работа [129,6 K], добавлен 17.02.2011

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

    курсовая работа [301,9 K], добавлен 29.10.2017

  • Реализация алгоритма DES и режимов шифрования для любой длины сообщения и любой длины ключа. Шифрование сообщений различной длины и ключа с замериванием времени и скорости шифрования. Реализация алгоритма RSA. Сохранение зашифрованного файла на диск.

    курсовая работа [398,4 K], добавлен 26.01.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.