Смекни!
smekni.com

Интегральная атака против блочного симметричного шифра Crypton (стр. 10 из 11)

С учётом полученных результатов выбираем два кондиционера SamsungAW – 05EO.

Трудовая деятельность в НИЛ относится к группе В (отладка программ, перевод и редактирования и др.) [27]. Продолжительность работ превышает 4 ч и выполняемые работы относятся к III категории работ. Установлены перерывы по 20 мин каждый через 2 ч после начала работ, через 1,5 ч и 2, 5 ч после обеденного перерыва или же по 5-15 мин через каждый час работы. Общее время перерывов не превышает 60 мин.

Каждое рабочее место в НИЛ должно соответствует требованиям ДНАОП 0.00-1.31-99. Рабочие места расположены относительно световых проемов так, что естественный свет падает слева, при этом выдерживаются следующие расстояния:

от стен со световыми проемами до рабочего места - 1 м;

между тыльной поверхностью одного видеотерминала и экраном - 2,5 м.

Размещение рабочих мест в НИЛ показано на рисунке 2.


Рисунок 2. Схема размещения рабочих мест, оборудования и кондиционерови схема эвакуации при пожаре.

На рисунке 2. приведены следующие обозначения:

К1, К2 – кондиционеры, П1,П2 – рабочие места

3.4 Пожарная безопасность

Пожарная безопасность объекта - состояние объекта, при котором с регламентированной вероятностью исключается возможность возникновения условий и воздействия на людей опасных факторов пожара, а также обеспечивается защита материальных ценностей [28]. Причинами, которые могут вызвать пожар в рассматриваемом помещении, являются:

- неисправность электропроводки и приборов;

- короткое замыкание электрических цепей;

- перегрев аппаратуры и электропроводки;

- нарушение правил пожарной безопасности;

- разряд статического электричества;

- молния.

Помещение отдела по пожарной и взрывопожарной опасности относится к категории В согласно ОНТП 24-86, так как в обращении находятся твердые сгораемые вещества и материалы. Степень огнестойкости здания - П согласно СНиП 2.01.02-85, класс помещения по пожарной опасности П-IIа, согласно ПУЭ-87. Пожарная безопасность в соответствии с ГОСТ 12.1.004-91* и ДСТУ 2272-93 обеспечивается системами предотвращения пожара, противопожарной защиты. Организационно-техническими мероприятиями. Система предотвращения пожара:

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

- контроль и профилактика изоляции;

- наличие плавких вставок и предохранителей в электронном оборудовании;

-наличие вентилятора для охлаждения электронной аппаратуры.

Для данного класса зданий и местности со средней грозовой деятельностью 10 и более грозовых часов в год, установлена Ш категория молниезащиты. РД 34.21.122-87.

Степень защиты, соответствующая классу помещения П-II-а IP44 для оборудования и IP2X для светильников. ПУЭ-87 [29].

Система противопожарной защиты:

- аварийное отключение и переключение аппаратуры;

- наличие первичных средств пожаротушения, огнетушителей ОУ-2А, из расчета 1 шт. на каждые 20 м2 площади, так как углекислота обладает плохой электропроводностью;

- наличие системы автоматической пожарной сигнализации;

- дымовые извещатели из расчета 1 на 10 м2;

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

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

Для успешной эвакуации персонала при пожаре размеры двери рабочего помещения предусмотрены следующими:

- ширина двери не менее 1,5 м;

- высота двери не менее 2,0 м;

- ширина коридора 1,8 м;

- рабочее помещение имеет два выхода;

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

- обучение персонала правилам пожарной безопасности;

- издание необходимых инструкций и плакатов, плана эвакуации персонала в случае пожара.

3.5 Гражданская оборона

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

3.6 Защита окружающей среды

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


Выводы

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

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

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

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

-изучить методику применения интегральной атаки против блочного симметричного шифра Crypton,

-адаптировать методику применения интегральной атаки для использования против усеченного варианта блочного симметричного шифра Crypton,

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

В ходе работы дипломного проекта был сделан программный продукт.

Программа разрабатывалась на языке C++, финальная сборка была произведена в среде разработки BorlandC++ v 3.1.

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

-практическое решение задач шифрования и расшифрования данных по алгоритму Crypton;

- реализация интегральной атаки на усеченный вариант шифра Crypton.

Возможными направлениями продолжения работ дипломного проекта можно рассматривать:

-расширение функциональности программного продукта в части увеличения детализации управления элементами алгоритма шифрования;

введение статистических средств анализа;

-распространение разработанных методик изучения криптографического алгоритма Crypton на другие современные алгоритмы шифрования.

В результате разработанных в разделе "Безопасность жизнедеятельности" организационных и технических мероприятий факторы производственной среды и трудового процесса в НИЛ стали находится в пределах допустимых условий труда. Технический и организационный уровень рабочего места обеспечивает безопасность человека. Дополнительных рекомендаций по улучшению условий труда не требуется.


Приложение А

шифр атака криптографический crypton

Файл <encrdecr.cpp>

#include <stdio.h>

#include <string.h>

#include <conio.h>

#include <io.h>

#include <fcntl.h>

#include <iostream.h>

#include <sys/stat.h>

#include <stdlib.h>

#include "std_defs.h"

#include "crypton.h"

#include "atack.h"

void atack(int);

int main()

{

clrscr();

int i,q,f1,f2;

char f_nam1[111];

char f_nam2[111];

char f_nam3[111];

char w;

union

{

u1byte a1[4][4];

u4byte a4[4];

}

st,st1,st2,k;

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

k.a4[i]=0;

set_key(k.a4,128);

printf("encript/decrypt/atack(0/1/2)?");

cout<<'&bsol;n';

w=getch();

if((w!='0')&&(w!='1')&&(w!='2'))

exit(3);

if(w=='2')

{

cout<<"Enter name of atacking file"<<'&bsol;n';

gets(f_nam3);

f2=open(f_nam3,O_RDONLY|O_BINARY);

if(f2==-1)

{

close(f2);

exit(1);

}

atack(f2);

}

if(w=='0')

{

cout<<"Enter name of opening file"<<'&bsol;n';

gets(f_nam1);

cout<<"Enter name of encription file"<<'&bsol;n';

gets(f_nam2);

f1=open(f_nam1,O_RDONLY|O_BINARY);

if(f1==-1)

{ // perror(f_nam1);

puts(f_nam1);

cout<<'&bsol;n';

puts(f_nam2);

close(f1);

exit(1);

}

f2=open(f_nam2,O_WRONLY|O_CREAT|O_TRUNC|O_BINARY,S_IWRITE);

if(f2==-1)

{

close(f2);

exit(2);

}

do

{

q=read(f1,&st.a1[0][0],16);

if(q==16)

{

encrypt(st.a4, st1.a4);

write(f2,&st1.a1[0][0],16);

}

else

{

if(q>0)

{

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

st2.a4[i]=0;

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

{

st2.a1[i/4][i%4]=st.a1[i/4][i%4];

}

encrypt(st2.a4,st1.a4);

write(f2,&st1.a1[0][0],16);

}

}

}

while(q==16);

close(f1);

close(f2);

}

if(w=='1')

{

cout<<"Enter name of encription file"<<'&bsol;n';

gets(f_nam2);

cout<<"Enter name of decription file"<<'&bsol;n';

gets(f_nam3);

f1=open(f_nam2,O_RDONLY|O_BINARY);

if(f1==-1)

{

close(f1);

exit(1);

}

f2=open(f_nam3,O_WRONLY|O_CREAT|O_TRUNC|O_BINARY,S_IWRITE);

if(f2==-1)

{

close(f2);

exit(2);

}

do

{

q=read(f1,&st.a1[0][0],16);

if(q==16)

{

decrypt(st.a4, st1.a4);

write(f2,&st1.a1[0][0],16);

}

else

{

if(q>0)

{

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

st2.a4[i]=0;

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

{

st2.a1[i/4][i%4]=st.a1[i/4][i%4];

}

decrypt(st2.a4,st1.a4);

write(f2,&st1.a1[0][0],16);

}

}

}

while(q==16);

close(f1);

close(f2);

}

return 0;

}

Файл <crypton.h>

#include "std_defs.h"

static char *alg_name[] = { "crypton", "crypton.c" };

char **cipher_name()

{

return alg_name;

}

#define gamma_tau(x,b,m,p,q) &bsol;

(x) = (((u4byte)s_box[p][byte(b[0],m)] ) | &bsol;

((u4byte)s_box[q][byte(b[1],m)] << 8) | &bsol;

((u4byte)s_box[p][byte(b[2],m)] << 16) | &bsol;

((u4byte)s_box[q][byte(b[3],m)] << 24))

#define ma_0 0x3fcff3fc

#define ma_1 0xfc3fcff3

#define ma_2 0xf3fc3fcf

#define ma_3 0xcff3fc3f

#define mb_0 0xcffccffc

#define mb_1 0xf33ff33f

#define mb_2 0xfccffccf

#define mb_3 0x3ff33ff3

#define pi(b,n0,n1,n2,n3) &bsol;

(((b)[0] & ma_##n0) ^ &bsol;

((b)[1] & ma_##n1) ^ &bsol;

((b)[2] & ma_##n2) ^ &bsol;

((b)[3] & ma_##n3))

#define phi_n(x,n0,n1,n2,n3) &bsol;

( (x) & mb_##n0) ^ &bsol;

(rotl((x), 8) & mb_##n1) ^ &bsol;

(rotl((x), 16) & mb_##n2) ^ &bsol;

(rotl((x), 24) & mb_##n3)

#define phi_00(x) phi_n(x,0,1,2,3)

#define phi_01(x) phi_n(x,3,0,1,2)

#define phi_02(x) phi_n(x,2,3,0,1)

#define phi_03(x) phi_n(x,1,2,3,0)

#define phi_10(x) phi_n(x,3,0,1,2)

#define phi_11(x) phi_n(x,2,3,0,1)

#define phi_12(x) phi_n(x,1,2,3,0)

#define phi_13(x) phi_n(x,0,1,2,3)

#define phi0(x,y) &bsol;

(y)[0] = phi_00((x)[0]); &bsol;

(y)[1] = phi_01((x)[1]); &bsol;

(y)[2] = phi_02((x)[2]); &bsol;

(y)[3] = phi_03((x)[3])

#define phi1(x,y) &bsol;

(y)[0] = phi_10((x)[0]); &bsol;

(y)[1] = phi_11((x)[1]); &bsol;

(y)[2] = phi_12((x)[2]); &bsol;