Разработка прикладной программы по шифрованию файлов

Автор работы: Пользователь скрыл имя, 26 Ноября 2012 в 11:47, дипломная работа

Описание работы

Целью дипломного проекта является разработка подсистемы криптографической защиты экономической информации в рамках одного частного предприятия. В качестве объекта автоматизации выбран бухгалтерский отдел предприятия.
Для достижения цели необходимо решить следующие задачи:
Провести анализ деятельности предприятия;
Разработать криптографическую программу;
Рассчитать экономическую эффективность проекта;
Определить требования к безопасности и охране труда;

Файлы: 1 файл

Пояснительная записка.doc

— 1.10 Мб (Скачать файл)

Таким образом, на функцию стойкого блочного шифра Z = EnCrypt (X, Key) накладываются следующие условия:

  • Функция EnCrypt должна быть обратимой;
  • Не должно существовать иных методов прочтения сообщения X по известному блоку Z, кроме как полным перебором ключей Key;
  • Не должно существовать иных методов определения, каким ключом Key было произведено преобразование известного сообщения X в сообщение Z, кроме как полным перебором ключей.

Выполнение всех этих условий осуществляется следующим образом:

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

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

Эти свойства позволяют подавать на вход хеш-функции пароли, то есть текстовые  строки произвольной длины.

В программе CRYPTO_XOR хеширование пароля осуществляется следующим образом:

Сначала пароль, введенный пользователем, преобразуется в массив байт P [1 .. X].

Где P [1 .. X] – коды символов введенного пользователем пароля (кодировка ANSI – Windows-1251). Фрагмент таблицы символов ANSI представлен в таблице 2.1.

X – длина пароля (в символах).

 

Таблица 2.1

Фрагмент таблицы символов ANSI (Windows-1251)

Код символа

Символ

Код символа

Символ

Код символа

Символ

32

 

58

:

123

[

33

!

59

;

124

|

34

"

60

<

125

]

35

#

61

=

126

~

36

$

62

>

127

 

37

%

63

?

192

А

38

&

64

@

39

65

A

223

Я

40

(

224

а

41

)

90

Z

42

*

91

[

255

я

43

+

92

\

   

44

,

93

]

   

45

-

94

^

   

46

.

95

_

   

47

/

96

   

48

0

97

a

   

   

57

9

122

z

   

 

Затем на основании пароля получается ключ:

K [1 .. 255] – ключ.

K [i] = (P [1] + P [2] + … + P [n]) + P [i], где i = 1 .. X   (2.1)

Если X < 255, тогда производятся следующие преобразования:

K [X + 1 .. 255] = 114         (2.2)

114 – код символа «r»

Z = K [1]            (2.3)

Если K [i] = Z,

то K [i] = K [i – 1] + Z,         (2.4)

иначе Z = K [i], где i = 2 .. 255        (2.5)

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

Все алгоритмы сжатия данных качественно  делятся на:

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

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

Из исходного файла считывается  блок информации объемом 255 байт. Этот блок информации представляется в матрицы (таблица 2.2).

 

Таблица 2.2

 Матрица блока исходной информации

Байт №1

Байт №2

Байт №255

M1,1

M2,1

M255,1

M1,2

M2,2

M255,2

M1,3

M2,3

M255,3

M1,4

M2,4

M255,4

M1,5

M2,5

M255,5

M1,6

M2,6

M255,6

M1,7

M2,7

M255,7

M1,8

M2,8

M255,8


 

Где Mi,j – бит информации.

Затем осуществляется попытка сжатия строк M1,j … M255,j.

Эти строки представляется в виде количества подряд идущих нулей (0) или  единиц (1). Если полученная таким образом  информация занимает объем больше 32 байт, тогда эта строка представляется в исходном виде. Если общий объем блока перекодированной информации превышает 255 байт, тогда весь исходный блок представляется в исходном виде без изменений. После осуществления всех этих преобразований происходит непосредственно шифрование информации.

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

Функция EnCrypt выглядит следующим образом:

Z [i] = S [i] + K [j] + Z [i – 1],        (2.6)

Где Z – зашифрованный байт,

S – исходный байт,

K – ключ (j = 1 .. 255).

Целостность информации – это гарантия того, что информация сейчас существует в ее исходном виде, то есть при ее хранении или передаче не было произведено несанкционированных изменений. Нарушение этой категории называется фальсификацией сообщения. Для решения этой проблемы в программе CRYPTO_XOR O используется электронная цифровая подпись. На основе исходного файла вычисляется хеш-функция – это число, которое более или менее уникально характеризует исходный файл. В принципе, можно найти другой текст, который дает то же самое значение хеш-функции, но изменить в исходном файле десять-двадцать байт так, чтобы текст остался полностью осмысленным, да еще и изменился в выгодную нам сторону (например, уменьшил сумму к оплате в два раза) – чрезвычайно сложно. Электронная подпись состоит из 10 байт. Структура используемой электронной цифровой подписи представлена в таблице 2.3.

 

Таблица 2.3

 Структура электронной цифровой  подписи

S12

S22

S13

S23

S33

S15

S25

S35

S45

S55


 

S12 – сумма первой половины всех байт исходного файла (1-ый байт электронной цифровой подписи),

S22 – сумма второй половины всех байт исходного файла (2-ой байт электронной цифровой подписи),

S13 – сумма первой 1 / 3 всех байт исходного файла (3-ий байт электронной цифровой подписи),

S23 – сумма второй 1 / 3 всех байт исходного файла (4-ый байт электронной цифровой подписи),

S33 – сумма третьей 1 / 3 всех байт исходного файла (5-ый байт электронной цифровой подписи),

S15 – сумма первой 1 / 5 всех байт исходного файла (6-ой байт электронной цифровой подписи),

S25 – сумма второй 1 / 5 всех байт исходного файла (7-ой байт электронной цифровой подписи),

S35 – сумма третьей 1 / 5 всех байт исходного файла (8-ой байт электронной цифровой подписи),

S45 – сумма четвертой 1 / 5 всех байт исходного файла (9-ый байт электронной цифровой подписи),

S55 – сумма пятой 1 / 5 всех байт исходного файла (10-ый байт электронной цифровой подписи).

S12 + S22 = S13 + S23 + S33 = S15 + S25 + S35 + S45 + S55

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

 

3. РАСЧЕТ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРОЕКТА

Исходные данные для расчета  получены на кафедре КРМУ. Для расчета экономической эффективности использованы данные из прайс-листа на компютеры и комплектующие компании FORA. Исходные данные для расчета затрат на разработку и обслуживание программного обеспечения приведены в таблице 3.1. Исходные данные для расчета затрат времени на разработку программного обеспечения приведены в таблице 3.2.

 

Таблица 3.1

Исходные данные для расчета  затрат на разработку и внедрение  системы

Показатели

Единица измерения

Условное обозначение

Значение

1

2

3

4

Отчисления во внебюджетные фонды

%

Отч%

26

Казахстанский коэффициент

%

Кказ

15

Доплаты из внебюджетных средств

%

Кдоп

10

Расходы на транспортировку  и установку оборудования

%

Zтр

2

Затраты на материалы (магнитные носители, расходные материалы)

%

Zмат%

2

Материалы (канцелярские принадлежности, бумага)

Тг.

М

1000

Норма амортизации ЭВМ

%

аэвм

20

Норма амортизации лицензионного  программного обеспечения

%

апо

4

Затраты на текущий ремонт

%

Zрем%

5

Прочие расходы

%

Пр%

1

Стоимость электроэнергии

Тг. / кВтч

Ц1кВтч

6,8

Количество рабочих  дней в году

день

Драб

247

Количество предпраздничных  дней в году

день

Дпредпр

14

Количество рабочих  дней в месяц

день

Кдн

26

Коэффициент готовности оборудования

Кг

0,95

Стоимость компьютера ALSER Neos 125 CORE 2 DUO / 1024Mb /667 / 240Gb/ LAN / NVIDIA GeForce 8500GT

тг.

Ск

80620


 

Продолжение таблицы 3.1

Показатели

Единица измерения

Условное обозначение

Значение

Стоимость монитора Samsung SyncMaser 943b

тг.

См

49780

Стоимость операционной системы Microsoft Windows VISTA

тг.

Cw

30000

Стоимость программы  Borland Delphi 7

тг.

Cd

219000

Количество функций, реализуемых  при помощи лицензионного программного обеспечения

n

5

Паспортная мощность ЭВМ

кВтч

Мэвм

0,25

Оклад программиста

тг.

Окл

25000

Продолжительность рабочего дня

ч

t

8

Время на обслуживание программного обеспечения

%

Тобсл%

3

Себестоимость автотранспортных услуг

Тыс. тг.

SS

48680

Прибыль

Тыс. тг.

PR

73060


 

Таблица 3.2

Исходные данные для расчета затрат времени на разработку программного обеспечения

Стадия разработки

Время разработки (ч)

Всего

Машинного

1

2

3

Время на разработку технического задания (tтз)

8

Время на разработку системного проекта (tсп), в том числе:

56

– Время на разработку алгоритма

40

– Время выбора технической  реализации алгоритма

8

– Время выбора прикладного  программного обеспечения

8

Время на разработку рабочего проекта (tрп), в том числе:

240

240

– Время на разработку рабочей программы

160

160

– Время на отладку программы

80

80

Всего времени на разработку (Т)

304

240

Информация о работе Разработка прикладной программы по шифрованию файлов