бесплатные рефераты

Защита информационной системы криптографическими алгоритмами

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

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

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

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

3. Расчет экономической эффективности проекта

Исходные данные для расчета получены на кафедре АСУ. Для расчета экономической эффективности использованы данные из прайс-листа от «Ферроком». Исходные данные для расчета затрат на разработку и обслуживание программного обеспечения приведены в таблице 3.1. Исходные данные для расчета затрат времени на разработку программного обеспечения приведены в таблице 3.2.

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

Показатели

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

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

Значение

1

2

3

4

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

%

Отч%

26

Уральский коэффициент

%

Кур

15

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

%

Кдоп

10

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

%

Zтр

2

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

%

Zмат%

2

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

Руб.

М

100

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

%

аэвм

20

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

%

апо

40

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

%

Zрем%

5

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

%

Пр%

1

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

Руб. / кВтч

Ц1кВтч

0,74

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

день

Драб

247

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

день

Дпредпр

14

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

день

Кдн

26

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

-

Кг

0,95

Стоимость компьютера DEPO Neos 125 C1.7 / 128M266 / 40G5K / LAN / no KB / Mm

Руб.

Ск

8062

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

Показатели

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

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

Значение

Стоимость монитора LG 17” Flatron F700B, 0.24, 1024x768@85 Гц, ТСО'99

Руб.

См

4978

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

Руб.

Cw

5000

Стоимость программы Borland C++ Builder 6

Руб.

Cd

1800

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

-

n

5

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

кВтч

Мэвм

0,25

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

Руб.

Окл

2500

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

ч

t

8

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

%

Тобсл%

3

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

Тыс. руб.

SS

4868

Прибыль

Тыс. руб.

PR

7306

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

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

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

Всего

Машинного

1

2

3

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

8

-

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

56

-

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

40

-

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

8

-

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

8

-

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

240

240

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

160

160

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

80

80

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

304

240

Рассчитаем затраты на разработку программного обеспечения.

Время на разработку программного обеспечения рассчитывается по формуле 3.1:

Т1 = tтз + tсп + tрп (3.1)

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

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

tрп - время на разработку рабочего проекта (ч).

Расчет затрат времени на создание программного обеспечения производится на основе исходных данных, приведенных в таблице.

Т1 = 8 + 56 + 240 = 304 (ч)

Таким образом, время на разработку программного обеспечения составляет 304 часов, в том числе 240 часов с использованием ЭВМ.

Себестоимость машинного часа (руб / ч) рассчитывается по формуле 3.2:

С1маш.часа = Zэвм / (Fд · Кг) (3.2)

Где Zэвм - суммарные затраты, связанные с эксплуатацией ЭВМ (руб.),

Fд - годовой действительный фонд рабочего времени (ч),

Кг - коэффициент готовности ЭВМ

Суммарные затраты, связанные с эксплуатацией ЭВМ, за год рассчитываются по формуле 3.3:

Zэвм = Аэвм + Апо + Zмат + Zрем + Zэн + Пр (3.3)

Где Аэвм - амортизационные отчисления на ЭВМ (руб.),

Апо - амортизационные отчисления лицензионного программного обеспечения (руб.),

Zмат - затраты на материалы (руб.),

Zрем - затраты на текущий ремонт (руб.),

Zэн - затраты на электроэнергию (руб.),

Пр - прочие расходы (руб.).

Амортизационные отчисления вычислительной техники рассчитывают по формуле 3.4:

Аэвм = Цэвмб · аэвм (3.4)

Где Цэвмб - балансовая стоимость ЭВМ (руб.),

аэвм - норма амортизации ЭВМ.

Амортизационные отчисления лицензионного программного обеспечения рассчитываются по формуле 3.5:

Апо = (Cw + Cd) · апо (3.5)

Где Cw - стоимость операционной системы,

Cd - стоимость программ,

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

Апо = (5000 + 1800) · 0,4 = 2720 (руб.)

Балансовую стоимость ЭВМ вычисляют по формуле 3.6:

Цэвмб = Цэвм · (1 + Zтр) (3.6)

Где Цэвм - цена ЭВМ (руб.),

Zтр - затраты на транспортировку (%).

Цену ЭВМ рассчитывают по формуле 3.7:

Цэвм = Ск + См (3.7)

Где Ск - стоимость компьютера (руб.),

См - стоимость монитора (руб.),

Цэвм = 8062 + 4978 = 13040 (руб.)

Цэвмб = 11447 · (1 + 0,02) = 13300,8 (руб.)

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

Zмат = Zмат% · Цэвмб (3.8)

Где Цэвмб - балансовая стоимость ЭВМ (руб.),

Zмат% - затраты на материалы (%).

Zмат = 0,02 · 13300,8 = 266,02 (руб.)

Расходы на текущий ремонт оборудования рассчитываются по

формуле 3.9:

Zрем = Zрем% · Цэвмб (3.9)

Где Цэвмб - балансовая стоимость ЭВМ (руб.),

Zмат% - затраты на текущий ремонт (%).

Zрем = 0,05 · 13300,8 = 665,04 (руб.)

Расчет расходов на электроэнергию производится по формуле 3.10:

Zэн = Fд · Мэвм · Ц1кВтч · Кг (3.10)

Где Fд - годовой действительный фонд рабочего времени ЭВМ (ч),

Мэвм - паспортная мощность ЭВМ (кВтч),

Ц1кВтч - стоимость одного киловатт-часа электроэнергии (руб.),

Кг - коэффициент готовности ЭВМ.

Годовой действительный фонд рабочего времени ЭВМ рассчитывается по формуле 3.11:

Fд = Драб · t - Дпредпр · 1 (3.11)

Где Драб - количество рабочих дней в году,

t - продолжительность рабочего дня,

t = 8 часов.

Дпредпр - количество предпраздничных дней в году,

Fд = 247 · 8 - 14 · 1 = 1962 (ч)

Zэн = 1962 · 0,25 · 0,74 · 0,95 = 344,82 (руб.)

Прочие расходы рассчитываются по формуле 3.12:

Пр = Пр% · Цэвмб (3.12)

Где Цэвмб - балансовая стоимость ЭВМ (руб.),

Пр% - Прочие расходы (%).

Пр = 0,01 · 13300,8 = 133,01 (руб.)

Аэвм = 13300,8 · 0,2 = 2660,16 (руб.)

Zэвм = 2660,16 + 2720 + 266,02 + 665,04 + 344,82 + 133,01 = 6789,05 (руб.)

С1маш.часа = 6789,05 / (1962 · 0,95) = 3,64 (руб.)

Стоимость разработки программного продукта рассчитывается по формуле 3.13:

Спп = М + ФЗП + Отч + Сэвм + Н (3.13)

Где М - затраты на материалы (руб.),

ФЗП - фонд заработной платы программиста (руб.),

Отч - отчисления на социальные нужды (руб.),

Сэвм - затраты, связанные с эксплуатацией ЭВМ (руб.),

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

Фонд заработной платы программиста рассчитывается по формуле 3.14:

ФЗП = Окл · t · (1 + Кдоп) · (1 + Кур) (3.14)

Где Окл - оклад программиста (руб.),

tм - число месяцев на создание программного продукта,

Кдоп - коэффициент дополнительной заработной платы (доплаты из внебюджетных средств),

Кур - уральский коэффициент.

Число месяцев на создание программного продукта рассчитывается по формуле 3.15:

tм = Т1 / (Кдн · t) (3.15)

Где Т1 - время на разработку программного обеспечения (ч),

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

t - продолжительность рабочего дня.

t = 8 часов.

tм = 304 / (26 · 8) = 1,46

ФЗП = 2500 · 1,46 · (1 + 0,1) · (1 + 0,15) = 4617,25 (руб.)

Отчисления на социальные нужды рассчитываются по формуле 3.16:

Отч = ФЗП · Отч% (3.16)

Где ФЗП - фонд заработной платы программиста (руб.),

Отч% - отчисления во внебюджетные фонды (%).

Отч = 0,26 · 4617,25 = 1200,49 (руб.)

Затраты, связанные с эксплуатацией ПЭВМ, рассчитываются по формуле 3.17:

Сэвм = С1маш.часа · Т2 (3.17)

Где С1маш.часа - себестоимость машинного часа (руб / ч),

Т2 - время, затраченное на машинную реализацию программного обеспечения (ч).

Сэвм = 3,64 · 240 = 873,6 (руб.)

Накладные расходы, связанные с созданием программного обеспечения, рассчитываются по формуле 3.18:

Н = ФЗП · 0,12 (3.18)

Н = 4617,25 · 0,12 = 554,07 (руб.)

Спп = 100 + 4617,25 + 1200,49 + 873,6 + 554,07 = 7345,41 (руб.)

Рассчитаем затраты на покупку лицензионного программного обеспечения.

Для создания программного продукта необходимо следующее программное обеспечение:

- Операционная система Microsoft Windows XP Professional,

- Программа Borland C++ Builder 6.

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

Таким образом, затраты на покупку лицензионного программного обеспечения рассчитаем по формуле 3.19:

Зпо = (Cw + Cd) / n (3.19)

Где Cw - стоимость операционной системы (руб.),

Cd - стоимость программ (руб),

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

Зпо = (5000 + 1800) / 5 = 1360 (руб.)

Единовременные капитальные вложения на создание программного обеспечения рассчитываются по формуле 3.20:

Екап = Спп + Зпо (3.20)

Где Спп - стоимость разработки программного продукта (руб.),

Зпо - затраты на покупку лицензионного программного обеспечения (руб.).

Екап = 7345,41 + 1360 = 8705,41 (руб.)

Рассчитаем затраты, связанные с обслуживанием разработанного программного обеспечения.

Время на обслуживание программного обеспечения рассчитывается по формуле 3.21:

Тобсл = Кдн · t · 12 · Тобсл% (3.21)

Где Fд - годовой действительный фонд рабочего времени,

Тобсл% - время на обслуживание программного обеспечения (%).

Тобсл = 26 · 8 · 12 · 0,03 = 74,88 (ч)

Затраты на обслуживание программного обеспечения рассчитываются по формуле 3.22:

Зобсл = Тобсл · (С1маш.часа + С1чел.часа) (3.22)

Где Тобсл - время на обслуживание программного обеспечения (ч),

С1маш.часа - себестоимость машинного часа (руб.),

Счел.часа - себестоимость человеко-часа (руб.).

Себестоимость человеко-часа рассчитывается по формуле 3.23:

(3.23)

Где Окл - оклад программиста (руб.),

Отч% - отчисления во внебюджетные фонды (%),

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

t - продолжительность рабочего дня (ч).

t = 8 часов.

Fд - годовой действительный фонд рабочего времени (ч).

Зобсл = 74,88 · (3,64 + 19,27) = 1715,5 (руб.)

Общие затраты на разработку и обслуживание программного продукта рассчитываются по формуле 3.24:

Зобщ = Екап + Зобсл (3.24)

Где Екап - единовременные капитальные вложения на разработку программного продукта (руб.),

Зобсл - затраты на обслуживание программного продукта (руб.).

Зобщ = 8705,41 + 1715,5 = 10420,91 (руб.)

Сравним общие затраты на разработку и обслуживание программного продукта с годовой себестоимостью автотранспортных услуг и с прибылью (формулы 3.25 и 3.26).

Дсс = (Зобщ / SS) · 100 (3.25)

Где Зобщ - общие затраты на разработку и обслуживание программного продукта,

SS - годовая себестоимость автотранспортных услуг.

Дсс = (10420,91 / 4868000) · 100 = 0,21 %

Дпр = (Зобщ / PR) · 100 (3.26)

Где Зобщ - общие затраты на разработку и обслуживание программного продукта,

PR - годовая прибыль.

Дпр = (10420,91 / 7306000) · 100 = 0,14 %

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

- Экономические потери - раскрытие коммерческой информации может привести к серьезным прямым убыткам на рынке.

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

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

4 Безопасность и экологичность проекта

4.1 Классификация вредных факторов

При работе с компьютерной техникой пользователь испытывает значительную нагрузку, как физическую (сидячее положение, нагрузка на глаза), так и умственную, что приводит к снижению его трудоспособности к концу рабочего дня. В связи с этим актуальны вопросы защиты пользователей от разнообразных вредных воздействий, возникающих в процессе работы с ЭВМ. Видеотерминалы становятся все более распространенным средством взаимодействия человека с ЭВМ. Таким образом, встает важная задача: сконструировать рабочее место оператора так, чтобы взаимосвязи в системе "человек-машина" были оптимальными со всех точек зрения. Утомляемость операторов, работающих за дисплейным терминалом, представляет собой серьезную проблему. Рабочее место должно хорошо вентилироваться. В настоящее время с точки зрения шумовой нагрузки достигнут значительный прогресс. Уровень шума в зале (примерно 40 дБ) в соответствии с ГОСТ 12.1.003 - 83 является удовлетворительным, независимо от количества используемой аппаратуры. По последним исследованиям - работа за видеотерминалом не представляет опасности с точки зрения рентгеновского излучения. Компьютеризированный труд совершается в условиях ограниченной подвижности, связан с длительным статическим мышечным напряжением, а это является самой утомительной формой мышечной деятельности. Труд человека за компьютером может привести к возникновению неврозов, нервно-психических и сердечно-сосудистых заболеваний.

Вредные производственные факторы, которые могут привести к заболеваниям или снижению работоспособности, согласно ГОСТ 12.0.003 - 74:

1. физические:

- повышенная запыленность рабочей зоны;

- повышенная температура воздуха рабочей зоны;

- повышенная или пониженная влажность воздуха;

- повышенная или пониженная подвижность воздуха;

- недостаточная освещенность рабочей зоны;

- прямая и отраженная блесткость;

- повышенный уровень шума на рабочем месте;

- повышенный уровень статического электричества;

- повышенный уровень электромагнитных излучений;

- повышенный уровень ультрафиолетовых излучений;

- повышенный уровень мягкого рентгеновского излучения.

2. психофизиологические:

- перенапряжение анализаторов;

- монотонность;

- неподвижная поза.

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

4.2 Эргономика

Эргономика и эстетика производства являются составными частями культуры производства, то есть комплекса мер, направленных на создание благоприятной рабочей обстановки. Помещения, их размеры (площадь, объем) должны в первую очередь соответствовать количеству работающих и размещаемому в них комплекту технических средств. В них предусматриваются соответствующие параметры температуры, освещения, чистоты воздуха, обеспечивают изоляцию, от производственных шумов. Важную роль в создании благоприятных условий труда играет цвет. Установлено, что физиологическое воздействие цвета на организм зависит от длины его волны. Для обеспечения нормальных условий труда санитарные нормы СН 245 - 71 устанавливают на одного работающего, объем производственного помещения не менее 15 м. Эргономическая безопасность компьютера оценивается по двум перечням требований: к визуальным параметрам дисплеев (с учетом светового климата рабочего места) и к эмиссионным параметрам и излучениям дисплеев и ПК.

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

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

2. Параметры второй группы - неравномерность яркости, блики, мелькания, дрожание, геометрические и нелинейные искажения и т. д.

Большое значение имеют характеристики монитора:

- Частота развертки. Применяемая частота кадровой развертки должна быть не ниже чем 72 Гц для исключения мерцания изображения;

- Соответствие применяемого разрешения размерам экрана. Применяемое разрешение должно соответствовать размеру экрана.

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

Рабочее место пользователя представляет собой персональный компьютер типа IBM PC. В комплект входят:

- Системный блок,

- Монитор,

- Клавиатура,

- Мышь.

Таблица 4.1 Размеры рабочего места

Нормируемая величина

Значение

Необходимое

Фактическое

Высота рабочей поверхности (мм)

680 - 800

700

Высота сидения (мм)

430

430

Расстояние от сидения до нижнего края рабочей поверхности (мм)

150

150

Высота пространства для ног (мм)

> 600

700

Ширина пространства для ног (мм)

> 500

600

Глубина пространства для ног (мм)

> 650

700

Эргономика рабочего места:

- Компьютер выполнен в строгих формах;

- Расстояние от глаз пользователя до монитора составляет 50 - 60 см;

- Применяется стул с твердой спинкой изогнутой формы, обнимающей поясницу;

- Стол под персональный компьютер имеет достаточную площадь для размещения всего необходимого;

- Конструкция стола обеспечивает необходимое расстояние и угол наблюдения между экраном дисплея и глазами человека.

Эргономическая безопасность компьютера:

- Используется монитор диагональю 17 дюймов с разрешением 1024 х 768 точек;

- Размер зерна - 0,24 мм;

- Частота развертки - 85 Гц;

- Монитор соответствует стандартам ТСО'99;

- Экран монитора покрыт антибликовым покрытием;

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

Таким образом, можно сделать вывод о том, что планировка рабочего места удовлетворяет требованиям удобства выполнения работ и экономии энергии и времени пользователя, удобства обслуживания и использования устройств ЭВМ.

4.3 Обеспечение оптимальной освещенности

В настоящее время 90% информации человек получает с помощью органов зрения. Ее поступление во многом зависит от освещения. При неудовлетворительном освещении человек напрягает зрительный аппарат, что ведет к ухудшению зрения и состояния организма в целом. Нерациональное освещение на рабочем месте в цехе, лаборатории, помещении вычислительного центра, офисе, дома при чтении приводит к повышенной утомляемости, снижению работоспособности, перенапряжению органов зрения и снижению его остроты. Рациональное освещение должно быть спроектировано в соответствии с нормами, приведенными в СНиП 23 - 05 - 95, а также рекомендациями, изложенными в литературе.

Правильно спроектированное и рационально выполненное освещение помещений:

- Оказывает психофизическое воздействие на работающих;

- Способствует повышению эффективности и безопасности труда;

- Снижает утомление;

- Сохраняет высокую работоспособность.

Ощущение зрения происходит под воздействием видимого излучения (света), которое представляет собой электромагнитное излучение с длиной волны 0,38 .. 0,76 мкм. Чувствительность зрения максимальна к электромагнитному излучению с длиной волны 0,555 мкм (желто-зеленый цвет) и уменьшается к границам видимого спектра. Освещение характеризуется количественными и качественными показателями. Для качественной оценки условий зрительной работы используют такие показатели как фон, контраст объекта с фоном.

1. Фон - это поверхность, на которой происходит различение объекта. Фон характеризуется способностью поверхности отражать падающий на нее световой поток. Эта способность (коэффициент отражения ?) определяется как отношение отраженного от поверхности светового потока Фот к падающему на нее световому потоку Фпад; ? = Фот / Фпад. В зависимости от цвета и фактуры поверхности значения коэффициента отражения находятся в пределах 0,02 .. 0,95; при ? > 0,4 фон считается светлым; при ? = 0,2 .. 0,4 - средним; и при ? < 0,2 - темным.

2. Контраст объекта с фоном k - степень различения объекта и фона - характеризуется соотношением яркостей рассматриваемого объекта (точки, линии, знака, пятна, трещины, риски или других элементов) и фона; k = (Lор - Lо) / Lор считается большим, если k > 0,5 (объект резко выделяется на фоне), средним при k = 0,2 .. 0,5 (объект и фон заметно отличаются по яркости) и малым при k < 0,2 (объект слабо заметен на фоне).

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

Таблица 4.2 Нормы проектирования искусственного освещения

Характеристика зрительной работы

Наименьший размер объекта различения, мм

Разряд зрительной работы

Подразряд зрительной работы

Контраст объекта с фоном

Характеристика фона

Освещенность, лк

1

2

3

4

5

6

8

Наивысшей точности

Менее 0,15

I

а

Малый

Темный

1500

б

Малый

Средний

Средний

Темный

1250

Характеристика зрительной работы

Наименьший размер объекта различения, мм

Разряд зрительной работы

Подразряд зрительной работы

Контраст объекта с фоном

Характеристика фона

Освещенность, лк

в

Малый

Средний

Большой

Светлый

Средний

Темный

750

г

Средний

Большой

Большой

Светлый

Светлый

Средний

400

Очень высокой точности

0,15 - 0,3

II

а

Малый

Темный

1250

б

Малый

Средний

Средний

Темный

750

в

Малый

Средний

Большой

Светлый

Средний

Темный

500

г

Средний

Большой

Большой

Светлый

Светлый

Средний

300

Высокой точности

0,3 - 0,5

III

а

Малый

Темный

500

б

Малый

Средний

Средний

Темный

300

в

Малый

Средний

Большой

Светлый

Средний

Темный

300

г

Средний

Большой

Большой

Светлый

Светлый

Средний

200

С помощью таблицы 4.2 определяется разряд и подразряд зрительной работы, а также нормируемый уровень минимальной освещенности на рабочем месте:

Характеристика зрительной работы - очень высокой точности,

Наименьший размер объекта различения - 0,24 (мм),

Контраст объекта различения с фоном - Большой,

Характеристика фона - Светлый,

Разряд зрительной работы - II,

Подразряд зрительной работы - г,

Освещенность - 300 (лк).

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

L = 1,75 H (4.1)

H = 4 (м)

L = 1,75 · 4 = 7 (м)

Число светильников с люминесцентными лампами (ЛЛ) рассчитывается по формуле 4.2:

(4.2)

S - площадь помещения (м2).

S = A · B = 8 · 8 = 64 (м2)

M - расстояние между параллельными рядами (м).

В соответствии с рекомендациями M ? 0,6 Нр

Оптимальное значение M = 2 .. 3 м.

M ? 0,6 Нр

M = 2,5 (м)

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

Расчетный световой поток (лм) группы светильников с люминесцентными лампами рассчитывается по формуле 4.3:

(4.3)

Ен - нормированная минимальная освещенность (лк).

Ен = 300 (лк)

Z - коэффициент минимальной освещенности.

Z = Еср / Емин (4.4)

Для люминесцентных ламп Z = 1,1.

К - коэффициент запаса.

Значения коэффициента запаса зависят от характеристики помещения: для помещений с большим выделением тепла К = 2; со средним К = 1,8; с малым К = 1,5.

К = 1,5

? - коэффициент использования светового потока ламп (? зависит от КПД и кривой распределения силы света светильника, коэффициента отражения от потолка ?п и стен ?с, высоты подвеса светильников над рабочей поверхностью Нр и показателя помещения i).

Показатель помещения рассчитывается по формуле 4.5:

(4.5)

Где А и В - соответственно длина и ширина помещения (м).

Таблица 4.3 Значения коэффициента использования светового потока

Показатель помещения

1

2

3

4

5

Коэффициент использования светового потока

0,28 .. 0,46

0,34 .. 0,57

0,37 .. 0,62

0,39 .. 0,65

0,40 .. 0,66

Показателю помещения 1 соответствует коэффициент использования светового потока ? = 0,4.

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

Тогда Фл.расч = 19800 / 4 = 4950 (лм)

Таблица 4.4 Характеристики люминесцентных ламп

Тип и мощность (Вт)

Длина (мм)

Световой поток (лм)

1

2

3

ЛДЦ 20

604

820

ЛБ 20

604

1180

ЛДЦ 30

909

1450

ЛБ 30

909

2100

ЛДЦ 40

1214

2100

ЛД 40

1214

2340

ЛДЦ 65

1515

3050

ЛДЦ 80

1515

4070

ЛБ 80

1515

5220

Световой поток выбранной лампы должен соответствовать соотношению 4.6:

Фл.расч = (0,9 .. 1,2) Фл.табл (4.6)

Где Фл.расч - расчетный световой поток (лм),

Фл.табл - световой поток, определенный по таблице (лм).

Возьмем лампы ЛБ80.

4950 = 1,05 · 5220

Фл.расч = 1,05 Фл.табл

Потребляемая мощность (Вт) осветительной установки рассчитывается по формуле 4.7:

P = pNn (4.7)

Где p - мощность лампы (Вт),

N - число светильников (шт.),

n - число ламп в светильнике (для люминесцентных ламп n = 2, 4).

P = 80 · 4 · 4 = 1280 (Вт)

Таким образом, для обеспечения оптимальной освещенности рабочего места пользователя ЭВМ необходим световой поток 19800 лм. Расчеты показали, что для получения такого светового потока необходимо использовать четыре светильника. Эти светильники располагаются в два ряда параллельно стенам с окнами. Каждый светильник состоит из четырех ламп типа ЛБ80. Потребляемая мощность осветительной установки составляет 1280 Вт.

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

1. Определены требования к планировке рабочего места:

- Применение стула с твердой спинкой изогнутой формы,

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

- Конструкция стола обеспечивает необходимое расстояние и угол наблюдения,

2. Определены требования к монитору:

- Диагональ 17 дюймов, разрешение 1024 х 768 точек, размер зерна 0,24 мм, частота развертки 85 Гц, соответствие стандартам ТСО'99,

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

3. Произведен расчет оптимального освещения:

- Необходимый световой поток составляет 19800 лм,

- Осветительная установка состоит из четырех светильников по четыре лампы ЛБ80 в каждом светильнике,

- Светильники располагаются в два ряда параллельно стенам с окнами

- Потребляемая мощность осветительной установки составляет 1280 Вт.

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

Заключение

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

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

В проектной части дипломного проекта была разработана криптографическая программа R CRYPTO. В качестве основного средства для разработки программы использовалась среда визуального программирования C++ BUILDER 6. Программа R CRYPTO позволяет шифровать все типы файлов. «Сердцем» криптографической программы является криптоалгоритм. Разработанная криптографическая программа является завершенной комплексной моделью, способной производить двусторонние криптопреобразования над данными произвольного объема. Шифрование файлов осуществляется по оригинальному алгоритму с использованием симметричного ключа, который формируется на основании пароля, введенного пользователем. В результате хеширования пароля ключ достигает необходимой длины. Алгоритм шифрования является блочным шифром, то есть информация шифруется блоками определенной длины. Шифрование каждого последующего блока данных зависит от всех предыдущих. В процессе шифрования происходит также сжатие данных, что обеспечивает еще большую надежность шифрования, так как между зашифрованными блоками данных отсутствует корреляционная зависимость. Временная задержка в проверке пароля не позволяет злоумышленникам узнавать пароль методом полного перебора. Кроме того, к зашифрованному файлу добавляется электронная цифровая подпись, которая позволяет проверять целостность информации. Расшифровка зашифрованного файла возможна только при правильно введенном пароле, который использовался при шифровании этого файла.

В экономической части дипломного проекта была рассчитана экономическая эффективность проекта. Экономическая эффективность от внедрения криптографической защиты информации заключается в предотвращении возможных убытков от хищения или подмены информации. Затраты на создание программного продукта составляют 7170 рублей. Эти затраты являются незначительными и составляют 0,15 % годовой себестоимости автотранспортных услуг, или 0,1 % прибыли.

В то же время, хищение или подмена информации может привести к негативным последствиям:

- Экономические потери - раскрытие коммерческой информации может привести к серьезным прямым убыткам на рынке,

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

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

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

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

Список литературы

1. Автоматизированные информационные технологии в экономике. Учебник. Под. ред. проф. Г.А. Титоренко. - М.: Юнити, 2000

2. Алферов А.: Основы криптографии. Учебное пособие. - СПб.: БХВ - Петербург, 2002

3. Байбурин В.Б.: Введение в защиту информации. - СПб.: БХВ - Петербург, 2004

4. Безопасность жизнедеятельности. Учебник для вузов. С.В. Белов, А.В. Ильницкая, А.Ф. Козьяков и др. Под общ. ред. С.В. Белова. 2-е изд., испр. и доп. - М.: Высш. шк., 1999

5. Бухгалтерский учет. Богаченко В.М., Кириллова Н.А. - Ростов н/Д: Феникс, 2001

6. Введение в защиту информации в автоматизированных системах. Учебное пособие для вузов. Малюк А.А., Пазизин С.В., Погожин Н.С. 2-е изд. - СПб.: БХВ - Петербург, 2004

7. Вдовенко Л.А.: Системно-информационный подход к оценке экономической деятельности промышленных предприятий. - М.: Финансы и статистика, 1996

8. Вирт Н.: Алгоритмы и структуры данных. Пер. с англ. - М.: Мир, 1999

9. Кокорева О.И.: Реестр Windows XP. - СПб.: БХВ - Петербург, 2004

10. Комягин В.Б.: 1С: Бухгалтерия 7.7 в вопросах и ответах. Самоучитель. Учебное пособие. - СПб.: БХВ - Петербург, 2004

11. Кондраков Н.П.: Бухгалтерский учет. Учебное пособие. 4-е изд., перераб. и доп. - М.: ИНФРА-М, 2001

12. Культин Н.Б.: C++ Builder 6. Программирование на Object Pascal. - СПб.: БХВ - Петербург, 2001

13. Назарова С.В.: Локальные вычислительные сети. - М: Финансы и статистика, 1995

14. Нанс Б.: Компьютерные сети. - М.: Бином, 1996

15. Немнюгин С.А.: Turbo Pascal: Практикум. - СПб.: Питер, 2001

16. Основы современной криптографии. Баричев С.Г., Гончаров В.В., Серов Р.Е. - СПб.: БХВ - Петербург, 2001

17. Принципы разработки программного обеспечения. Зелковиц М., Шоу А., Гэннон Д. Пер. с англ. - М.: Мир, 1992

18. Савицкая Г.В.: Анализ хозяйственной деятельности предприятия. Учебник. 2-е изд., испр. и доп. - М.: Инфра-М, 2003

19. Справочная книга для проектирования электрического освещения. Под. ред. Кнорринга Г.Н. - М.: Энергия, 1996

20. Фаронов Д.Е.: Профессиональная работа в C++ BUILDER 6. Библиотека программиста. - СПб.: БХВ - Петербург, 2002

21. Фокс Д.: Программное обеспечение и его разработка. Пер. с англ. - М.: Мир, 1995

22. Хорошева А.Б., Кремлева В.Г.: 1С: Бухгалтерия 7.7 редакция 4.4. Краткий практический курс для начинающего пользователя. Учебное пособие. - СПб.: БХВ - Петербург, 2003

23. Экономика, разработка и использование программного обеспечения ЭВМ. Благодатских В.А., Енгибарян М.А., Ковалевская Е.В. и др. - М.: Финансы и статистика, 1995

Приложение А (Обязательное)

Блок-схема алгоритма программы

Рисунок В.1 Общая блок-схема алгоритма программы

Продолжение приложения А

Рисунок В.2 Продолжение общей блок-схемы алгоритма программы

Продолжение приложения А

Рисунок В.3 Блок-схема алгоритма шифрования

Продолжение приложения А

Рисунок В.4 Продолжение блок-схемы алгоритма шифрования

Продолжение приложения А

Рисунок В.5 Блок-схема алгоритма расшифровки

Продолжение приложения А

Рисунок В.6 Продолжение блок-схемы алгоритма расшифровки

Продолжение приложения А

Рисунок В.7 Блок-схема алгоритма проверки электронной цифровой подписи

Продолжение приложения А

Рисунок В.8 Продолжение блок-схемы алгоритма проверки электронной цифровой подписи

Приложение В (обязательное)

Экранные формы программы R CRYPTO

Рисунок Г.1 Форма «Выбор вида интерфейса»

Рисунок Г.2 Главная форма (классический вид)

Продолжение приложения

Рисунок Г.3 Форма «Сохранение зашифрованного файла» (классический вид)

Рисунок Г.4 Форма «Шифрование» (классический вид)

Продолжение приложения

Рисунок Г.5 Форма «Сохранение расшифрованного файла» (классический вид)

Рисунок Г.6 Форма «Расшифровка» (классический вид)

Рисунок Г.7 Форма «Проверка электронной цифровой подписи»

Продолжение приложения

Рисунок Г.8 Главная форма (интерфейс R CRYPTO)

Рисунок Г.9 Форма «Шифрование» (интерфейс R CRYPTO)

Продолжение приложения

Рисунок Г.10 Форма «Расшифровка» (интерфейс R CRYPTO)

Рисунок Г.11 Форма «Проверка электронной цифровой подписи» (интерфейс R CRYPTO)

Продолжение приложения

Рисунок Г.12 Содержание справочной системы

Приложение Д (обязательное)

Листинг основного криптоалгоритма

#include<stdio.h>

#include<conio.h>

#define EN0 0 /* MODE == encrypt */

#define DE1 1 /* MODE == decrypt */

typedef struct {

unsigned long ek[32];

unsigned long dk[32]; } des_ctx;

extern void deskey(unsigned char *, short);

extern void usekey(unsigned long *);

extern void cpkey(unsigned long *);

extern void des(unsigned char *, unsigned char *);

static void scrunch(unsigned char *, unsigned long *);

static void unscrun(unsigned long *, unsigned char *);

static void desfunc(unsigned long *, unsigned long *);

static void cookey(unsigned long *);

static unsigned long KnL[32] = { 0L };

static unsigned long KnR[32] = { 0L };

static unsigned long Kn3[32] = { 0L };

static unsigned char Df_Key[24] = {

0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,

0xfe,0xdc,0xba,0x98,0x76,0x54, 0x32, 0x10,

0x89,0xab,0xcd,0xef,0x01,0x23,0x45,0x67 } ;

static unsigned short bytebit[8] = {

0200, 0100, 040, 020, 010, 04, 02, 01 };

static unsigned long bigbyte[24] = {

0x800000L, 0x400000L, 0x200000L, 0x100000L,

0x80000L, 0x40000L, 0x20000L, 0x10000L,

0x8000L, 0x4000L, 0x2000L, 0x1000L,

0x800L, 0x400L, 0x200L, 0x100L,

0x80L, 0x40L, 0x20L, 0x10L,

0x8L, 0x4L, 0x2L, 0x1L };

/* Use the key schedule specified in the Standard (ANSI X3.92-1981). */

static unsigned char pc1[56] = {

56, 48, 40, 32, 24, 16, 8, 0, 57, 49, 41, 33, 25, 17,

9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35,

62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21,

13, 5, 60, 52, 44, 36, 28, 20, 12, 4, 27, 19, 11, 3 };

static unsigned char totrot[16] = {

1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28 };

static unsigned char pc2[48] = {

13, 16, 10, 23, 0, 4, 2, 27, 14, 5, 20, 9,

22, 18, 11, 3, 25, 7, 15, 6, 26, 19, 12, 1,

40, 51, 30, 36, 46, 54, 29, 39, 50, 44, 32, 47,

43, 48, 38, 55, 33, 52, 45, 41, 49, 35, 28, 31 };

void deskey(key, edf)

unsigned char *key;

short edf;

{

register int i, j, l, m, n;

unsigned char pc1m[56], pcr[56];

unsigned long kn[32];

for ( j = 0; j < 56; j++ )

{ l = pc1[j];

m = l & 07;

pc1m[j] = (key[l >> 3] & bytebit[m]) ? 1 : 0; }

for( i = 0; i < 16; i++ ) {

if( edf == DE1 ) m = (15 - i) << 1;

else m = i << 1;

n = m + 1;

kn[m] = kn[n] = 0L;

for( j = 0; j < 28; j++ ) {

l = j + totrot [i];

if( l < 28 ) pcr[j] = pc1m[l];

else pcr[j] = pc1m[l - 28];

}

for( j = 28; j < 56; j++ )

{ l = j + totrot[i];

if( l < 56 ) pcr[j] = pc1m[l];

else pcr[j] = pc1m[l - 28]; }

for( j = 0; j < 24; j++ ) =bigbyte[j]; }

cookey(kn); return; }

static void cookey(raw1)

register unsigned long *raw1; {

register unsigned long *cook, *raw0;

unsigned long dough[32];

register int i;

cook = dough;

for( i = 0; i < 16; i++, raw1++ )

*cook = (*raw0 & 0x00fc0000L) << 6;

usekey(dough); return; }

void cpkey(into)

register unsigned long *into;

{

register unsigned long *from, *endp;

from = KnL, endp = &KnL[32]; while( from < endp ) *into++ = *from++; return; }

void usekey(from)

register unsigned long *from;

{

register unsigned long *to, *endp;

to = KnL, endp = &KnL[32];

while( to < endp ) *to++ = *from++; return; }

void des(inblock, outblock)

unsigned char *inblock, *outblock; {

unsigned long work[2];

scrunch(inblock, work);

desfunc(work, KnL);

unscrun(work, outblock); return; }

static void scrunch(outof, into)

register unsigned char *outof;

register unsigned long *into;

static void unscrun(outof, into)

register unsigned long *outof;

register unsigned char *into; {

*into++ = (*outof >> 24) & 0xffL;

*into++ = (*outof >> 16) & 0xffL;

*into++ = (*outof >> 8) & 0xffL;

*into++ = *outof++ & 0xffL;

*into++ = (*outof >> 24) & 0xffL;

*into++ = (*outof >> 16) & 0xffL;

*into++ = (*outof >> 8) & 0xffL;

*into = *outof & 0xffL;

return; }

static unsigned long SP1[64] = {

0x01010400L, 0x00000000L, 0x00010000L, 0x01010404L,

0x01010004L, 0x00010404L, 0x00000004L, 0x00010000L,

0x00000400L, 0x01010400L, 0x01010404L, 0x00000400L,

0x01000404L, 0x01010004L, 0x01000000L, 0x00000004L,

0x00000404L, 0x01000400L, 0x01000400L, 0x00010400L,

0x00010400L, 0x01010000L, 0x01010000L, 0x01000404L,

0x00010004L, 0x01000004L, 0x01000004L, 0x00010004L,

0x00000000L, 0x00000404L, 0x00010404L, 0x01000000L,

0x00010000L, 0x01010404L, 0x00000004L, 0x01010000L,

0x01010400L, 0x01000000L, 0x01000000L, 0x00000400L,

0x01010004L, 0x00010000L, 0x00010400L, 0x01000004L,

0x00000400L, 0x00000004L, 0x01000404L, 0x00010404L,

0x01010404L, 0x00010004L, 0x01010000L, 0x01000404L,

0x01000004L, 0x00000404L, 0x00010404L, 0x01010400L,

0x00000404L, 0x01000400L, 0x01000400L, 0x00000000L,

0x00010004L, 0x00010400L, 0x00000000L, 0x01010004L };

static unsigned long SP2[64] = {

0x80108020L, 0x80008000L, 0x00008000L, 0x00108020L,

0x00100000L, 0x00000020L, 0x80100020L, 0x80008020L,

0x80000020L, 0x80108020L, 0x80108000L, 0x80000000L,

0x80008000L, 0x00100000L, 0x00000020L, 0x80100020L,

0x00108000L, 0x00100020L, 0x80008020L, 0x00000000L,

0x80000000L, 0x00008000L, 0x00108020L, 0x80100000L,

0x00100020L, 0x80000020L, 0x00000000L, 0x00108000L,

0x00008020L, 0x80108000L, 0x80100000L, 0x00008020L,

0x00000000L, 0x00108020L, 0x80100020L, 0x00100000L,

0x80008020L, 0x80100000L, 0x80108000L, 0x00008000L,

0x80100000L, 0x80008000L, 0x00000020L, 0x80108020L,

0x00108020L, 0x00000020L, 0x00008000L, 0x80000000L,

0x00008020L, 0x80108000L, 0x00100000L, 0x80000020L,

0x00100020L, 0x80008020L, 0x80000020L, 0x00100020L,

0x00108000L, 0x00000000L, 0x80008000L, 0x00008020L,

0x80000000L, 0x80100020L, 0x80108020L, 0x00108000L };

static unsigned long SP3[64] = {

0x00000208L, 0x08020200L, 0x00000000L, 0x08020008L,

0x08000200L, 0x00000000L, 0x00020208L, 0x08000200L,

0x00020008L, 0x08000008L, 0x08000008L, 0x00020000L,

0x08020208L, 0x00020008L, 0x08020000L, 0x00000208L,

0x08000000L, 0x00000008L, 0x08020200L, 0x00000200L,

0x00020200L, 0x08020000L, 0x08020008L, 0x00020208L,

0x08000208L, 0x00020200L, 0x00020000L, 0x08000208L,

0x00000008L, 0x08020208L, 0x00000200L, 0x08000000L,

0x08020200L, 0x08000000L, 0x00020008L, 0x00000208L,

0x00020000L, 0x08020200L, 0x08000200L, 0x00000000L,

0x00000200L, 0x00020008L, 0x08020208L, 0x08000200L,

0x08000008L, 0x00000200L, 0x00000000L, 0x08020008L,

0x08000208L, 0x00020000L, 0x08000000L, 0x08020208L,

0x00000008L, 0x00020208L, 0x00020200L, 0x08000008L,

0x08020000L, 0x08000208L, 0x00000208L, 0x08020000L,

0x00020208L, 0x00000008L, 0x08020008L, 0x00020200L };

static unsigned long SP4[64] = {

0x00802001L, 0x00002081L, 0x00002081L, 0x00000080L,

0x00802080L, 0x00800081L, 0x00800001L, 0x00002001L,

0x00000000L, 0x00802000L, 0x00802000L, 0x00802081L,

0x00000081L, 0x00000000L, 0x00800080L, 0x00800001L,

0x00000001L, 0x00002000L, 0x00800000L, 0x00802001L,

0x00000080L, 0x00800000L, 0x00002001L, 0x00002080L,

0x00800081L, 0x00000001L, 0x00002080L, 0x00800080L,

0x00002000L, 0x00802080L, 0x00802081L, 0x00000081L,

0x00800080L, 0x00800001L, 0x00802000L, 0x00802081L,

0x00000081L, 0x00000000L, 0x00000000L, 0x00802000L,

0x00002080L, 0x00800080L, 0x00800081L, 0x00000001L,

0x00802001L, 0x00002081L, 0x00002081L, 0x00000080L,

0x00802081L, 0x00000081L, 0x00000001L, 0x00002000L,

0x00800001L, 0x00002001L, 0x00802080L, 0x00800081L,

0x00002001L, 0x00002080L, 0x00800000L, 0x00802001L,

0x00000080L, 0x00800000L, 0x00002000L, 0x00802080L };

static unsigned long SP5[64] = {

0x00000100L, 0x02080100L, 0x02080000L, 0x42000100L,

0x00080000L, 0x00000100L, 0x40000000L, 0x02080000L,

0x40080100L, 0x00080000L, 0x02000100L, 0x40080100L,

0x42000100L, 0x42080000L, 0x00080100L, 0x40000000L,

0x02000000L, 0x40080000L, 0x40080000L, 0x00000000L,

0x40000100L, 0x42080100L, 0x42080100L, 0x02000100L,

0x42080000L, 0x40000100L, 0x00000000L, 0x42000000L,

0x02080100L, 0x02000000L, 0x42000000L, 0x00080100L,

0x00080000L, 0x42000100L, 0x00000100L, 0x02000000L,

0x40000000L, 0x02080000L, 0x42000100L, 0x40080100L,

0x02000100L, 0x40000000L, 0x42080000L, 0x02080100L,

0x40080100L, 0x00000100L, 0x02000000L, 0x42080000L,

0x42080100L, 0x00080100L, 0x42000000L, 0x42080100L,

0x02080000L, 0x00000000L, 0x40080000L, 0x42000000L,

0x00080100L, 0x02000100L, 0x40000100L, 0x00080000L,

0x00000000L, 0x40080000L, 0x02080100L, 0x40000100L };

static unsigned long SP6[64] = {

0x20000010L, 0x20400000L, 0x00004000L, 0x20404010L,

0x20400000L, 0x00000010L, 0x20404010L, 0x00400000L,

0x20004000L, 0x00404010L, 0x00400000L, 0x20000010L,

0x00400010L, 0x20004000L, 0x20000000L, 0x00004010L,

0x00000000L, 0x00400010L, 0x20004010L, 0x00004000L,

0x00404000L, 0x20004010L, 0x00000010L, 0x20400010L,

0x20400010L, 0x00000000L, 0x00404010L, 0x20404000L,

0x00004010L, 0x00404000L, 0x20404000L, 0x20000000L,

0x20004000L, 0x00000010L, 0x20400010L, 0x00404000L,

0x20404010L, 0x00400000L, 0x00004010L, 0x20000010L,

0x00400000L, 0x20004000L, 0x20000000L, 0x00004010L,

0x20000010L, 0x20404010L, 0x00404000L, 0x20400000L,

0x00404010L, 0x20404000L, 0x00000000L, 0x20400010L,

0x00000010L, 0x00004000L, 0x20400000L, 0x00404010L,

0x00004000L, 0x00400010L, 0x20004010L, 0x00000000L,

0x20404000L, 0x20000000L, 0x00400010L, 0x20004010L };

static unsigned long SP7[64] = {

0x00200000L, 0x04200002L, 0x04000802L, 0x00000000L,

0x00000800L, 0x04000802L, 0x00200802L, 0x04200800L,

0x04200802L, 0x00200000L, 0x00000000L, 0x04000002L,

0x00000002L, 0x04000000L, 0x04200002L, 0x00000802L,

0x04000800L, 0x00200802L, 0x00200002L, 0x04000800L,

0x04000002L, 0x04200000L, 0x04200800L, 0x00200002L,

0x04200000L, 0x00000800L, 0x00000802L, 0x04200802L,

0x00200800L, 0x00000002L, 0x04000000L, 0x00200800L,

0x04000000L, 0x00200800L, 0x00200000L, 0x04000802L,

0x04000802L, 0x04200002L, 0x04200002L, 0x00000002L,

0x00200002L, 0x04000000L, 0x04000800L, 0x00200000L,

0x04200800L, 0x00000802L, 0x00200802L, 0x04200800L,

0x00000802L, 0x04000002L, 0x04200802L, 0x04200000L,

0x00200800L, 0x00000000L, 0x00000002L, 0x04200802L,

0x00000000L, 0x00200802L, 0x04200000L, 0x00000800L,

0x04000002L, 0x04000800L, 0x00000800L, 0x00200002L };

static unsigned long SP8[64] = {

0x10001040L, 0x00001000L, 0x00040000L, 0x10041040L,

0x10000000L, 0x10001040L, 0x00000040L, 0x10000000L,

0x00040040L, 0x10040000L, 0x10041040L, 0x00041000L,

0x10041000L, 0x00041040L, 0x00001000L, 0x00000040L,

0x10040000L, 0x10000040L, 0x10001000L, 0x00001040L,

0x00041000L, 0x00040040L, 0x10040040L, 0x10041000L,

0x00001040L, 0x00000000L, 0x00000000L, 0x10040040L,

0x10000040L, 0x10001000L, 0x00041040L, 0x00040000L,

0x00041040L, 0x00040000L, 0x10041000L, 0x00001000L,

0x00000040L, 0x10040040L, 0x00001000L, 0x00041040L,

0x10001000L, 0x00000040L, 0x10000040L, 0x10040000L,

0x10040040L, 0x10000000L, 0x00040000L, 0x10001040L,

0x00000000L, 0x10041040L, 0x00040040L, 0x10000040L,

0x10040000L, 0x10001000L, 0x10001040L, 0x00000000L,

0x10041040L, 0x00041000L, 0x00041000L, 0x00001040L,

0x00001040L, 0x00040040L, 0x10000000L, 0x10041000L };

static void desfunc(block, keys)

register unsigned long *block, *keys;

leftt ^= work;

/* Validation sets: *

* Single-length key, single-length plaintext -

* Key : 0123 4567 89ab cdef

* Plain : 0123 4567 89ab cde7

* Cipher : c957 4425 6a5e d31d

*/

void des_key(des_ctx *dc, unsigned char *key){

deskey(key,EN0);

cpkey(dc->ek);

deskey(key,DE1);

cpkey(dc->dk); }

/* Encrypt several blocks in ECB mode. Caller is responsible for

short blocks. */

void des_enc(des_ctx *dc, unsigned char *data, int blocks){

unsigned long work[2];

int i ;

unsigned char *cp;

cp = data;

for(i=0;i<blocks;i++){

scrunch (cp,work);

desfunc(work,dc->ek);

unscrun(work,cp);

cp+=8; } }

void des_dec(des_ctx *dc, unsigned char *data, int blocks)

{

unsigned long work[2];

int i ;

unsigned char *cp;

cp = data; for(i=0;i<blocks;i++){

scrunch (cp,work);

desfunc(work,dc->dk);

unscrun(work,cp);

cp+=8; } }

void main(void)

{

des_ctx dc;

int i ;

unsigned long data[10];

char *cp,key[8] = {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef};

char x[8] = {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xe7};

cp = x;

des_key(&dc,key);

des_enc(&dc,cp,1);

printf("Enc(0..7,0..7) = ");

for(i=0;i<8;i++)

printf("%02x ", ((unsigned int) cp[i])&0x00ff);

printf("\n");

des_dec(&dc,cp,1);

printf("Dec(above,0..7) = ");

for(i=0;i<8;i++)

printf("%02x ",((unsigned int)cp[i])&0x00ff);

printf("\n");

cp = (char *) data;

for(i=0;i<10;i++)data[i]=i;

des_enc(&dc,cp,5); /* Enc 5 blocks. */

for(i=0;i<10;i+=2)

printf("Block %01d = %081x %081x\n",i/2,data[i],data[i+1]);

des_dec(&dc,cp,1);

des_dec(&dc,cp+8,4);

for(i=0;i<10;i+=2)

printf("Block %01d = %081x %081x\n",i/2,data[i],data[i+1]);

getch();

}

Страницы: 1, 2, 3


© 2010 РЕФЕРАТЫ