Методы шифрования информации

Автор работы: Пользователь скрыл имя, 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

Вложенные файлы: 1 файл

Айдос_ДИПлом.doc

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

 

Чтобы завершить описание алгоритма шифрования данных, осталось привести алгоритм получение ключей K(i), i=1,2,...,16, размерностью в 48 бит. Ключи K(i) определяются по 64-битовому ключу шифра как это показано.

В начале над ключом шифра  выполняется операция B, которая сводится к выбору определенных бит и их перестановке, как это показано выше. Причем, первые четыре строки определяют, как выбираются биты последовательности C(0) (первым битом C(0) будет бит 57 бит ключа шифра, затем бит 49 и т.д., а последними битами биты 44 и 36 ключа шифра), а следующие четыре строки - как выбираются биты последовательности D(0) (т.е. последовательность D(0) будем стоять из битов 63,55,...,12, 4 ключа шифра).

 

Рис.2.12

"Функция перестановки  и выбора последовательности B"(ключа)

57

49

41

33

25

17

9

1

58

50

42

34

26

18

10

2

59

51

43

35

27

19

11

3

60

52

44

36

63

55

47

39

31

23

15

7

62

54

46

38

30

22

14

6

61

53

45

37

29

21

13

5

28

20

12

4


Как видно из таблицы, для генерации последовательностей C(0) и D(0) не используются биты 8,16,25,32,40,48,56 и 64 ключа шифра. Эти биты не влияют на шифрование и могут служить для других целей (например, для контроля по четности). Таким образом, в действительности ключ шифра является 56-битовым. После определения C(0) и D(0) рекурсивно определяются C(i) и D(i), i=1,2,...,16. Для этого применяются операции сдвига влево на один или два бита в зависимости от номера шага итерации, как это показано в таблицей 7. Операции сдвига выполняются для последовательностей C(i) и D(i) независимо. Например, последовательность C(3) получается, посредством сдвига влево на две позиции последовательности C(2), а последовательность D(3) - посредством сдвига влево на две позиции последовательности D(2). Следует иметь в виду, что выполняется циклический сдвиг влево. Например, единичный сдвиг влево последовательности C(i) приведет к тому, что первый бит C(i) станет последним и последовательность бит будет следующая: 2,3,..., 28,1. 

"Функция сдвига Si"

Этап

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Число

1

1

2

2

2

2

2

2

1

2

2

2

2

2

2

1


 

Ключ K(i), определяемый на каждом шаге итерации, есть результат  выбора определенных бит из 56-битовой последовательности C(i)D(i) и их перестановки. Другими словами, K(i) = K(C(i)D(i)), где функция K определяется данными, приведенными в таблице.

"Функция перестановки  и выбора K"(перестановка со  сжатием)

После сдвига выбирается 48 из 56. Так как при этом не только выбирается подмножество битов, но и изменяется их порядок, эта операция называется перестановка со сжатием. Её результатом является набор из 48 битов.

 

14

17

11

24

1

5

3

28

15

6

21

10

23

19

12

4

26

8

16

7

27

20

13

2

41

52

31

37

47

55

30

40

51

45

33

48

44

49

39

56

34

53

46

42

50

36

29

32


Как следует из таблицы  первый бит K(i) - это бит 14 последовательности C(i)D(i), второй - бит 17, последний - бит 32.

2.4. Разработка программы для алгоритма DES

 

Для разработки приложения “Шифратор” используется среда визуального  программирования Delphi. Проект программы содержит два окна:

1. Form1 – Главное окно программы.

2. AboutBox – окно справки программы.

Для написания программы  я использовал дополнительные компоненты “DynamicSkinForm”, которые были разработаны для создания более красочных приложений. 

Интерфейс программы  состоит из одного, главного окна. В  верхней части находится поле в которое необходимо ввести пароль. Пароль обязательно должен состоять из 8 символов (особенность алгоритма DES).

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

 

 

 

 




                                Рис.2.13   Главное окно программы.

 

Компонент Form1

Свойства:

Сaption – “Шифратор”;

Border – bsSingle;

BiSystemMenu – false;

1– компонент spSkinSpeedButton

Свойства:

Hint – Открыть;

События: открывает текстовый  документ.

2- компонент spSkinSpeedButton

Свойства:

Hint – Сохранить;

События: сохраняет результат  в виде текстового файла.

3- компонент spSkinSpeedButton

Свойства:

Hint – Очистить;

События: очищает текстовое  поле.

4- компонент spSkinSpeedButton

Свойства:

Hint – Подтвердить;

События: шифрует и  дешифрует сообщение.

5- компонент spSkinSpeedButton

Свойства:

Hint – О программе;

События: выводит сообщение  о программе.

6 - spSkinComboBoxEx1

Font – Arial, 12, черный;

7-10 - компонент spSkinShadowLabel1

Font – Arial, 12, черный;

11 – компонент spSkinMemo1

Font – Arial, 12, черный;

12 – компонент spSkinMemo2

Font – Arial, 12, черный;

13 – компонент spSkinMemo3

Font – Arial, 12, синий;

14 – компонент spSkinMemo4

Font – Arial, 12, синий;

15 - компонент spSkinSaveDialog1

Title - Save file;

 

16 - компонент  spSkinOpenPreviewDialog1

Title - Open file;

17 - компонент spSkinEdit1

Font – Arial, 12, черный;

18 - компонент spPNGImageList1

PNGHeight – 32;

19 - компонент spSkinImagesMenu1

SkinData - spSkinData1;

CompressedStoreSkin - spCompressedStoredSkin1;

20 – компонент spSkinData1

21 – компонент spCompressedStoredSkin1

CompressedFileName - office2007_Remix.skn;

22 – компонент spPngImageList2

PNGHeight – 64;

23 – компонент spPNGImageList3

PNGHeight – 128;

24 – компонент spDynamicSkinForm1

SkinData - spSkinData1;

SkinHint - spSkinHint1;

25 – компонент spSkinHint1

SkinData - spSkinData1;

 

 

 

 

3. КРИПТОСИСТЕМА

 

Все исследования, которые проводились в предыдущей главе, касались только криптоалгоритмов, то есть методов преобразования небольшого блока данных (от 4 до 32 байт) в закодированный вид в зависимости от заданного двоичного ключа. Криптоалгоритмы несомненно являются "сердцем" криптографических систем, но их непосредственное применение без каких-либо модификаций для кодирования больших объемов данных на самом деле не очень приемлемо.  Все недостатки непосредственного применения криптоалгоритмов устраняются в криптосистемах[24,25].

3.1. Функции криптосистем

Криптосистема работает по определенной методологии (процедуре). Она состоит из :

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

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

  • усиление защищенности данных,
  • облегчение работы с криптоалгоритмом со стороны человека,
  • обеспечение совместимости потока данных с другим программным обеспечением.

Конкретная программная  реализация криптосистемы называется криптопакетом.

3.2. Алгоритмы создания  цепочек

 

Первая задача при шифровании данных криптоалгоритмом – это данные с длиной, неравной длине 1 блока криптоалгоритма. Эта ситуация будет иметь место практически всегда. Для решения этих проблем и были введены в криптосистемы алгоритмы создания цепочек (англ. chaining modes). Самый простой метод - это метод ECB (Electronic Code Book). Шифруемый файл временно разделяется на блоки, равные блокам алгоритма, каждый из них шифруется независимо, а затем из зашифрованных пакетов данных компонуется в той же последовательности файл, который отныне надежно защищен криптоалгоритмом. Название алгоритм получил из-за того, что в силу своей простоты он широко применялся в простых портативных устройствах для шифрования – электронных шифрокнижках. Схема данного метода приведена на рис.3.1.

 
Рис.3.1. Схема электронных шифрокнижек

.

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

Указанным выше недостатком  этой схемы является то, что при  повторе в исходном тексте одинаковых символов в течение более, чем 2*N байт (где N – размер блока криптоалгоритма), в выходном файле будут присутствовать одинаковые зашифрованные блоки. Поэтому, для более "мощной" защиты больших пакетов информации с помощью блочных шифров применяются несколько обратимых схем "создания цепочек". Все они почти равнозначны по криптостойкости, каждая имеет некоторые преимущества и недостатки, зависящие от вида исходного текста.

Все схемы создания цепочек  основаны на идее зависимости результирующего  зашифровываемого блока от предыдущих, либо от позиции его в исходном файле. Это достигается с помощью блока "памяти" – пакета информации длины, равной длине блока алгоритма. Блок памяти (к нему применяют термин IV – англ. Initial Vector) вычисляется по определенному принципу из всех прошедших шифрование блоков, а затем накладывается с помощью какой-либо обратимой функции (обычно XOR) на обрабатываемый текст на одной из стадий шифрования. В процессе раскодирования на приемной стороне операция создания IV повторяется на основе принятого и расшифрованного текста, вследствие чего алгоритмы создания цепочек полностью обратимы.

Два наиболее распространенных алгоритма создания цепочек – CBC и CFB. Их структура приведена на рис.3.2 и рис.3.3. Метод CBC получил название от английской аббревиатуры Cipher Block Chaining – объединение в цепочку блоков шифра, а метод CFB – от Cipher FeedBack – обратная связь по шифроблоку.

 
Рис.3.2. схема алгоритма создания цепочек CBC

 
Рис.3.3. схема алгоритма создания цепочек CFB

 

Еще один метод OFB (англ. Output FeedBack – обратная связь по выходу) имеет несколько иную структуру (она изображена на рис.3.4.) : в нем значение накладываемое на шифруемый блок не зависит от предыдущих блоков, а только от позиции шифруемого блока (в этом смысле он полностью соответствует скремблерам), и из-за этого он не распространяет помехи на последующие блоки. Очевидно, что все алгоритмы создания цепочек однозначно восстановимы.

 
Рис.3.4. схема алгоритма создания цепочек OFB

Сравнительные характеристики методов создания цепочек приведены в виде таблицы в приложении 3.

3.3. Обзор методик рандомизации  сообщений

 

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

В этом случае необходимо введение какой-либо случайной величины в процесс шифрования. Это можно  сделать несколькими способами:

записью в начало файла  данных псевдослучайной последовательности байт заранее оговоренной длины с отбрасыванием ее при дешифровании – этот метод будет работать только при применении алгоритмов создания цепочек с памятью (CBC,CFB,OFB), применением модифицированных алгоритмов создания цепочек, которые при шифровании каждого блока смешивают с ним либо а) фиксированную случайную величину, прикрепленную к началу зашифрованного файла, либо б) значения (значение), вычисляемые с помощью того же шифра и ключа от заранее оговоренной величины, созданием специально для каждого файла совершенно случайного ключа, так называемого ключа сеанса, которым и шифруется весь файл (сам же ключ сеанса шифруется первоначальным ключом, называемым в этом случае мастер-ключом и помещается в начале зашифрованного файла)[18,25].

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

Информация о работе Методы шифрования информации