Организация криптозащищенного обмена информацией на основе протокола PGP

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    408,52 Кб
  • Опубликовано:
    2012-08-06
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Организация криптозащищенного обмена информацией на основе протокола PGP

РЕФЕРАТ

Отчет 36 c., 5 рис., 8 табл., 7 источников, 1 прил.

КРИПТОГРАФИЧЕСКИЙ АЛГОРИТМ, РЮКЗАЧНЫЙ АЛГОРИТМ, ANUBIS(АНУБИС), СИММЕТРИЧНОЕ ШИФРОВАНИЕ, АССИМЕТРИЧНОЕ ШИФРОВАНИЕ.

Объектом исследования являются два алгоритма - симметричного и ассиметричного шифрования.

Цель работа - изучение и реализация алгоритмов для защищенной передачи данных.

В процессе работы проводились исследования правильности работы алгоритмов.

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

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

ПОДРОБНЫЙ ОБЗОР РЮЗКАЧНОГО АЛГОРИТМА И АЛГОРИТМА ANUBIS

.1 Рюкзачный алгоритм.

.2 Алгоритм ANUBIS

. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ РЮКЗАЧНОГО АЛГОРИТМА И АЛГОРИТМА ANUBIS. Выбор языка программирования.. Используемые модули.. Пример работы программы.

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЕ А. ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА ПРОГРАММНОЕ СРЕДСТВО

ВВЕДЕНИЕ


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

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

В первой главе рассмотрены два алгоритма шифрования - асимметричный (РЮКЗАЧНЫЙ) и симметричный (ANUBIS). Эти алгоритмы были разработаны в конце прошлого века. Первый из них широко используется в настоящий момент. Второй разрабатывался специально для участия в конкурсе NESSIE, и является аналогом нового стандарта шифрования США под названием AES.

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

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

1.1    ПОДРОБНЫЙ ОБЗОР РЮЗКАЧНОГО АЛГОРИТМА И АЛГОРИТМА ANUBIS


В данном разделе рассмотрены основы, лежащие в построении рюкзачного алгоритма и алгоритма Anubis.

1.1    Рюкзачный алгоритм


Наиболее наглядным способом рассмотрения работы алгоритма является разбор примера его работы:

Этап вычисления ключей

b = (1, 4, 6, 14, 30) - супервозрастающая последовательность;

m = 60 - случайное число, большее, чем сумма bi, i = 1..6;

w = 11 - случайное число, взаимно простое с m;

π = (2, 1, 5, 3, 4) - массив перестановок, выбирается произвольно (в данном случае элемент b2 - будет идти первым, b1 - вторым и т.д.). Введен для повышения криптостойкости алгоритма;

Открытый ключ вычисляется по формуле:

ai = w * bπ(i) mod (m)

Получим:= 11 * 4 = 44;= 11 * 1 = 11;= 11 * 30 = 330 mod (60) = 30;= 11 * 6 = 66 mod (60) = 6;= 11 * 14 = 154 mod (60) = 34;

Открытый ключ: = (44, 11, 30, 6 34);

Закрытый ключ является совокупностью (π, w, m, b).

Пусть необходимо зашифровать последовательность

M = 01011

С = ∑ Mi ai = 11 + 6 + 34 = 51 - число, которое передается в канал.

Получатель, приняв сообщение, расшифровывает его:

= w-1 * C mod (m);= 11; w -1 = 11;= 11 * 51 mod 60 = 21; = ∑ zi bi ;

 = _ * 1 + _ * 4 + _ * 6 + _ * 14 + _ * 30 = 21

Коэффициенты(0 или 1) восстанавливаются справа налево в соответствие с тем, входит ли число, для которого необходимо вычислить коэффициент в результат.

Вычислим коэффициенты:

Для 21:

< 30=> коэффициент 0:

H = _ * 1 + _ * 4 + _ * 6 + _ * 14 + 0 * 30 = 21

Для 14:

< 14 => коэффициент 1

Если число меньше результата (коэффициент равен 1) , его необходимо вычесть из результата:

- 14 = 7

H = _ * 1 + _ * 4 + _ * 6 + 1 * 14 + 0 * 30 = 7

Для 6:

> 6 => коэффициент 1;

- 6 = 1

H = _ * 1 + _ * 4 + 1 * 6 + 1 * 14 + 0 * 30 = 1

Для 4:

<4 => коэффициент 0;

H = 1 * 1 + 0 * 4 + 1 * 6 + 1 * 14 + 0 * 30 = 1

Соответственно, для 1 коэффициент равен 1.

H = 1* 1 + 0 * 4 + 1 * 6 + 1 * 14 + 0 * 30 = 0

М = 0                   1       0       1       1

Переставив восстановленные коэффициенты в соответствие с массивом перестановок, получим последовательность M = 01011, которую необходимо было передать.

1.2    Алгоритм ANUBIS


Блочный шифр Anubis разработан специально для участия в конкурсе NESSIE интернациональным дуэтом авторов: бельгийцем Винсентом Рид-жменом и бразильцем Пауло Баррето (Paulo S. L. М. Barreto).

Алгоритм назван в честь древнеегипетского бога Анубиса- бога бальзамирования (embalming) и погребения (entombment); к его ведению авторы алгоритма решили отнести и криптографию.шифрует данные блоками по 128 битов с использованием ключа размером от 128 до 320 битов; размер ключа должен быть кратен 16 битам.

Данный алгоритм продолжает серию алгоритмов, соавтором которых является Винсент Риджмен: Square, SHARK и Rijndael. Все эти алгоритмы объединяет их относительно редко встречающаяся (напротив, частая среди алгоритмов- участников конкурса NESSIE) структура типа «квадрат» и весьма схожий набор выполняемых преобразований.

Структура алгоритма

Алгоритм представляет блок шифруемых данных в виде 16-байтового массива, который для удобства описания представлен в виде квадрата размером 4×4 байта. В каждом раунде алгоритма выполняются следующие действия.



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

А7

D3

Е6

71

DO

АС

4 D

79

ЗА

С9

91

IE

47

54

BD

ЗС

А5

FB

63

ВЗ

DD

D4

Е5

ВЗ

05

BE

А9

33

ОС

А2

39

DF

29

DA

A3

СВ

40

22

АА

24

41

70

А 6

F9

Е 2

ВО

36

7D

Е4

33

FF

60

20

03

ЗВ

АВ

7 F

73

57

-D2

DC

6D

7 Е

0D

53

94

03

23

27

06

5 F

AD

67

50

43

ОЕ

52

ЕА

42

5 D

30

53

51

59

ЗС

33

ЗА

72

14

Е7

06

DE

50

ЗЕ

92

D1

77

93

45

9 А

СЕ

2D

03

62

В6

В9

BF

96

3F

07

12

АЕ

40

34

46

ЗЕ

DB

OF

ЕС

ОС

С1

А1

СО

D6

1D

F4

61

ЗВ

10

D3

63

АО

В1

OA

69

60

49

FA

76

04

99

02

В7

93

ВС

3F

35

IF

В4

F3

1 1

2 Е

00

25

1 С

3D

05

4F

7 В

В2

32

90

AF

19

A3

F7

73

9D

15

74

EE

OA

9F

OF

1 В

75

36

34

9C

4 A

97

1A

65

F6

ED

09

BB

26

33

EB

6 F

31

04

6 A

43

01

17

El

37

F5

3D

E3

23

30

44

16

66

21

D5

31

D9

35

13

02

64

F2

F 1

56

CD

32

C3

BA

FO

FE

D5

31

D9

35

13

02

64

F2

F 1

56

CD

32

C3

BA

FO


Значения таблицы выбраны псевдослучайным образом с учетом необходимости ее соответствия следующему соотношению:

S(S(x)) = x.

1. Операция τ - байтовая перестановка, простейшим образом

преобразующая строку обрабатываемого блока ключевой информации в столбец (рисунок 2):

,j=aj,i ,

где aj,i и bi,j - байты массива данных до и после выполнения текущей операции соответственно.


2. Операция θ (рисунок 3), представляющая собой умножение массива

на фиксированную матрицу Н (таблица 2). Умножение выполняется в конечном поле GF(28).

 

1

2

4

6

2

1

6

4

4

6

1

2

6

4

2

1


1. Наложение ключа r-го раунда k[r] (процедура расширения ключа будет

подробно описана далее); выполняется побитовой логической операцией «исключающее или» (XOR), применяемой к каждому биту массива данных и соответствующему биту k[r] (рисунок 3):

bi,j=aj,i + k[r] j,i

Эта операция обозначается как σ.




Перечисленные операции выполняются в каждом раунде в указанной последовательности (γ, π, θ, σ), за исключением последнего раунда алгоритма, в котором не выполняется операция θ. Кроме того, перед первым раундом выполняется входное отбеливание данных путем наложения на шифруемый блок операцией XOR нулевого подключа.

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

Число раундов алгоритма R зависит от размера ключа шифрования и определяется следующим образом:

 = 8 + N,

где N- размер ключа в 16-битных фрагментах.

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

Процедура расширения ключа

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

Ij = f (KIj-1),

где f() - совокупность операций γ, π, θ и σ; в операции σ в качестве ключа раунда используется соответствующая из констант с[r], которые, в свою очередь, определяются следующим образом:

[r]0,j=S( 4 * ( r - 1 ) + y )

для j = 0…3. Остальные байты c[r]i,j являются нулевыми.

Операция π - циклический сдвиг столбцов таблицы вниз по следующему простому правилу: j -й столбец сдвигается на j позиций (рисунок 5).



. На основе предварительных ключей вычисляются подключи k0…kR:

kn..g (KLn),

где функция g() представляет собой последовательное выполнение следующих операций: γ, ω, τ.

Операции γ и τ были описаны выше, а ω представляет собой умножение блока на фиксированную матрицу V (аналогично операции θ - рисунок 3), приведенную в таблице 3.


1

1

1

1

1

2

4

8

1

6

36

216

1

8

64

0


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

Достоинства и недостатки алгоритма

Прежде всего, стоит сказать, что на конкурсе NESSIE была рассмотрена несколько модифицированная версия алгоритма Anubis, отличие которой от описанной здесь состояло лишь в операции у. Модифицированная операция у вместо одной табличной замены 8×8 битов выполняла 3 уровня табличных замен 4×4. Данная модификация произведена для упрощения аппаратной реализации алгоритма.был признан одним из наиболее быстродействующих алгоритмов шифрования (из участников конкурса). Еще одно явное достоинство алгоритма- отсутствие проблем с криптостойкостью. Однако злую шутку с алгоритмом Anubis сыграло его сходство с алгоритмом Rijndael (который, как известно, является новым стандартом шифрования США под названием AES), который также рассматривался в рамках конкурса NESSIE. Эксперты конкурса посчитали, что при таком явном сходстве Anubis не может иметь настолько серьезных преимуществ перед алгоритмом Rijndael, которые позволили бы ему выиграть у Rijndael в финале конкурса NESSIE. Поэтому Anubis не был выбран во второй этап конкурса [2].

2.     
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ РЮКЗАЧНОГО АЛГОРИТМА И АЛГОРИТМА ANUBIS

 

a.      Выбор языка программирования


Для создания программного средства использовался язык C# в среде Visual Studio 2005. Эта среда выбрана мной, потому что я ее использую на протяжении нескольких лет, и в этой среде есть все необходимое для реализации поставленной задачи. Данная среда широко и бесплатно распространена и удобна для работы с формами. Также есть методы, облегчающие архивирование и разархивирование данных.

b.      Используемые модули


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

Асимметричное шифрование:

·   public void GenPosl(ref int[] bb, int x, ref int ww, ref int mm, ref int rrr). Генерация супервозрастающей последовательности bb по начальному значению x. Результат выполнения - массив, содержащий супервозрастающую последовательность;

·   public bool fileRanecCode(string fname, string newfname). Шифрование файла fname. Результат выполнения - зашифрованный файл;

·   public bool fileRanecDecode(string fname, string newfname) Расшифровка файла. Результат выполнения - расшифрованный файл;

- Симметричное шифрование:

·   private bool WriteToFileS(string fname, byte[][] m). Запись массива S симметричного алгоритма в файл;

·   private bool ReadFromFileS(string fname,ref byte[][] m). Чтение массива S симметричного алгоритма из файла;

·   private void OperationR(ref byte[][] x). Выполнение операции R (транспонирование матрицы) алгоритма;

·   private void OperationQ(ref byte[][] x). Выполнение операции Q (умножение исходной матрицы на фиксированную матрицу H) алгоритма;

·   private void OperationU(byte[][] keyY, ref byte[][] x). Выполнение операции U (XOR) алгоритма;

·   private void GetSubkey(string key, int n, ref byte[][] keyY). Выделение подключа раунда.

·   private void CodeFile(string fname, string newfname, string key). Кодирование файла с использованием ключа key. Результат выполнения - зашифрованный файл;

·   private void DeCodeFile(string fname, string newfname, string key). Декодирование файла с использованием ключа key. Результат выполнения - расшифрованный файл;

Äîêóìåíò

c.       Пример работы программы


Пусть необходимо зашифровать файл cat.jpg.


Для этого пользователь в поле «Исходный файл» вводит cat.jpg, а в строке «Ключ» вводит произвольное число символов ключа.



После произведенных операций необходимо нажать кнопку «Отправить». Результатом данных операций служит создание в папке программы файлов:

key.txt - файл, содержащий «чистый» ключ алгоритма Anubis;

key.txt.code.txt - файл, содержащий ключ алгоритма Anubis, закодированный рюкзачным методом;

cat.jpg.gz - заархивированный файл;

cat.jpg.gz.transfer - заархивированный файл, прошедший кодирование алгоритмом Anubis.

При получении сообщения, необходимо нажать кнопку «Получить», после этого в папке с программой появятся файлы:

cat.jpg.res.gz - файл после декодирования алгоритмом Anubis;

key.txt.res.txt - файл, содержащий ключ алгоритма Anubis, декодированный рюкзачным методом;

cat.jpg.res.jpg - исходный файл, декодированный алгоритмом Anubis.

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


информация шифр архивирование последовательность

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

ЗАКЛЮЧЕНИЕ


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

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

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

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ


1)   Современная криптография [Электронный ресурс] URL: http://www.roman.by/r-93563.html.

2)   Блог о шифровании [Электронный ресурс] URL: http://crypto.pp.ua/2010/04/algoritm-anubis/

3)   Панасенко С.П. «Алгоритмы шифрования», Санкт-Петербург: Изд-во БХВ- Петербург, 2009 УДК 681.3.06

ПРИЛОЖЕНИЕ А. ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА ПРОГРАММНОЕ СРЕДСТВО


П.А.1 Введение

П.А.1.1 Наименование программы

П.А.1.2 Область применения

Организации, требующие обеспечение безопасности информации на персональных станциях.

П.А.1.3 Объект внедрения

Кафедра «ПОВТ и АС», ДГТУ, г. Ростова-на-Дону.

П.А.2 Основания для разработки

Разработка проводится на основании задания на курсовую работу, для студентов факультета «Информатики и Вычислительной Техники» (ИиВТ) Донского Государственного Технического Университета (ДГТУ) по направлению «Программное обеспечение вычислительной техники и автоматизированных систем (ПОВТ и АС)», обучающихся по специальности 090102 «Компьютерная безопасность».

Наименование темы разработки: «Организация криптозащищенного обмена информацией на основе протокола PGP».

П.А.3 Назначение разработки

П.А.3.1Функциональное назначение

Шифрование и дешифрование сообщений с архивацией.

П.А.3.2 Эксплуатационное назначение

Применение в системах защищенной передачи данных.

ПА.4 Требования к программе

ПА.4.1 Требования к функциональным характеристикам

Программа должна обеспечивать возможность выполнения перечисленных ниже функций:

·   архивирование/разархивирование сообщений было реализовано с помощью класса GZip;

·   шифрование/дешифрование сообщений рюкзачным алгоритмом и Алгоритмом Anubis.

ПА.4.2 Требования к надежности

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

·   организацией бесперебойного питания компьютера, на котором производится работа программы;

·   использованием лицензионного программного обеспечения.

Отказы программы возможны вследствие некорректных действий оператора при взаимодействии с исходным кодом продукта.

ПА.4.3 Условия эксплуатации

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

ПА.4.4 Требования к составу и параметрам технических средств

Требования к составу аппаратных средств компьютера:

·   процессор Intel Pentium 2 и выше;

·   128Мб оперативной памяти;

·   клавиатура и мышь.

ПА.4.5 Требования к информационной и программной совместимости

Требования к исходным кодам и языкам программирования:

·   программное средство создано на языке программирования C#;

·   среда программирования для создания и редактирования программного средства в дальнейшем - Visual Studio 2005.

Требования к программным средствам:

Программное средство работает на операционных системах семейства Windows.

ПА.5 Требования к программной документации

Предварительный состав необходимой программной документации, выполненной на русском языке в соответствии с требованиями ЕСПД согласно ГОСТ:

·   техническое задание ГОСТ 19.201-78 ЕСПД;

·   пояснительная записка ГОСТ 19.201-05 ЕСПД.

ПА.6 Стадии и этапы разработки

Стадии и этапы разработки программного средства:

·   сформулирована постановка задачи (с 1.11.2011 по 10.11.2011);

·   проведено изучение предметной области (с 11.11.2011 по 13.11.2011);

·   создание функциональной модели (с 14.11.2011 по 16.11.2011);

·   разработка программных модулей (с 17.11.2010 по 19.11.2011);

·   разработка интерфейса программы (с 20.11.2011 по 22.11.2011);

·   испытания программы (с 23.11.2011 по 25.11.2011);

·   разработка технического задания (с 26.11.2011 по 28.11.2011);

·   согласование и утверждения технического задания (с 29.11.2011 по 1.12.2011);

·   разработка пояснительной записки к данному программному продукту (с 2.11.2011 по 4.11.2011).

ПА.7 Порядок контроля и приемки

Порядок и контроль приемки определяются заведующим кафедрой «ПОВТ и АС» и основаны на демонстрации знаний технологии и умении создавать программные средства для различных предметных областей. Главным требованием к приемке является наличие правильно работающей программы иллюстрируемой тестовым примером и отчета, представленного в печатном виде.

Разработал

студент гр. ВКБ - 51 «___» _________ 2011 год

Иващенко Ю.П. ___________ (подпись)

Похожие работы на - Организация криптозащищенного обмена информацией на основе протокола PGP

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!