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

Электронная цифровая подпись. Асимметричные алгоритмы шифрования. Сценарий распределения открытых ключей, обмен сертификатами. Выбор программных средств. Математическая модель. Скорости Эль-Гамаля для различных длин модулей. Программная реализация.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 22.09.2011
Размер файла 461,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Delphi содержит полноценный текстовый редактор типа Brief, назначения клавиш в котором соответствуют принятым в Windows стандартам, а глубина иерархии операций Undo неограниченна. Как это стало уже обязательным, реализовано цветовое выделение различных лексических элементов программы. Процесс построения приложения достаточно прост. Нужно выбрать форму (в понятие формы входят обычные, диалоговые, родительские и дочерние окна MDI), задать ее свойства и включить в нее необходимые компоненты (видимые и, если понадобится, неотображаемые): меню, инструментальные панели, строку состояния и т. п., задать их свойства и далее написать (с помощью редактора исходного кода) обработчики событий. Object Browser Окна типа Object Browser стали неотъемлемой частью систем программирования на объектно-ориентированных языках. Работа с ними становится возможной сразу после того, как вы скомпилировали приложение.

Projeсt Manager - это отдельное окно, где перечисляются модули и формы, составляющие проект. При каждом модуле указывается маршрут к каталогу, в котором находится исходный текст. Жирным шрифтом выделяются измененные, но еще не сохраненные части проекта. В верхней части окна имеется набор кнопок: добавить, удалить, показать исходный текст, показать форму, задать опции и синхронизировать содержимое окна с текстом файла проекта, т. е. с головной программой на языке Pascal.

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

Visual Component Library (VCL) Богатство палитры объектов для построения пользовательского интерфейса - один из ключевых факторов при выборе инструмента визуального программирования. При этом для пользователя имеет значение как число элементов, включенных непосредственно в среду, так и доступность элементов соответствующего формата на рынке.

2.2 Выбор алгоритма шифрования

Алгоритм Эль-Гамаля

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

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

Одновременно при этом возникает проблема, как аутентификации автора электронного документа, так и самого документа, т.е. установление подлинности автора и отсутствия изменений в полученном электронном сообщении.

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

· Удостоверяет, что подписанный текст исходит от лица, поставившего подпись;

· Не дает этому самому лицу возможности отказаться от обязательств, связанных с подписанным текстом;

· Гарантирует целостность подписанного текста.

ЭЦП представляет собой относительно небольшой объём дополнительной цифровой информации, передаваемой вместе с подписанным текстом.

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

Идея алгоритма цифровой подписи Эль-Гамаля основана на том, что для обоснования практической невозможности фальсификации цифровой подписи в ней использована более сложная вычислительная задача дискретного логарифмирования, чем разложение на множители большого целого числа. Основным достоинством такой схемы цифровой подписи является возможность выработки ЭЦП для большого числа сообщений с использованием одного секретного ключа.

Безопасность схемы Эль-Гамаля обусловлена сложностью вычисления дискретных логарифмов в конечном поле.

В асимметричных криптосистемах используется два ключа: КА - для зашифрования информации, КB - для расширофвания.

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

– вычисление пары ключей (КА, КВ) получателем B на основе начального условия должно быть простым;

– отправитель A, зная открытый ключ КА и сообщение М, может легко вычислить криптограмму C (2.6);

(2.6)

– получатель В, используя секретный ключ КВ и криптограмму C, может легко восстановить исходное сообщение M (2.7)

(2.7)

– злоумышленник, зная открытый ключ КА, при попытке вычислить секретный ключ КВ наталкивается на непреодолимую вычислительную проблему.

– злоумышленник, зная пару (КА, С), при попытке вычислить исходное сообщение M наталкивается на непреодолимую вычислительную проблему.

Следует иметь ввиду, что с учетом того, что для решения поставленной проблемы, необходимо использовать криптосистему, «умеющую» обеспечивать и конфиденциальность и аутентичность, не всякая асимметричная криптосистема может обеспечивать цифровую подпись. Для организации и шифрования и цифровой подписи широко используются два алгоритма Эль-Гамаля и RSA. Оба этих алгоритма хорошо справляются с организацией цифровой подписи.

Алгоритм RSA

В 1978 г. Р.Ривест, А.Шамир и Л.Адлеман [RSA78] создали первую криптосистему с открытым ключом для шифрования и цифровой подписи, получившую название RSA (по первым буквам фамилий авторов). Система описывается в терминах элементарной теории чисел. Ее надежность обуславливается практической неразрешимостью задачи разложения большого натурального числа на простые множители. Современное состояние алгоритмов факторизации (разложения на множители) позволяет решать эту задачу для чисел длиной до 430 бит; исходя из этого, ключ длиной в 512 бит считается надежным для защиты данных на срок до 10 лет, а в 1024 бита - безусловно надежным. Длина подписи в системе RSA совпадает с длиной ключа.

Несмотря на то, что отсутствует математически доказанное сведение задачи раскрытия RSA к задаче разложения на множители, а также задачи разложения на множители к классу NP-полных задач, система выдержала испытание практикой и является признанным стандартом de-facto в промышленной криптографии, а также официальным стандартом ряда международных организаций. С другой стороны, свободное распространение программного обеспечения, основанного на RSA, ограничено тем, что алгоритм RSA защищен в США рядом патентов.

Алгоритм DSA

В 1991 г. в США был опубликован проект федерального стандарта цифровой подписи - DSS (Digital Signature Standard), описывающий систему цифровой подписи DSA (Digital Signature Algorithm). Одним из основных критериев при создании проекта была его патентная чистота.

Предлагаемый алгоритм DSA, имеет, как и RSA, теоретико-числовой характер, и основан на криптографической системе Эль-Гамаля в варианте Шнорра. Его надежность основана на практической неразрешимости определенного частного случая задачи вычисления дискретного логарифма. Современные методы решения этой задачи имеют приблизительно ту же эффективность, что и методы решения задачи факторизации; в связи с этим предлагается использовать ключи длиной от 512 до 1024 бит с теми же характеристиками надежности, что и в системе RSA. Длина подписи в системе DSA меньше, чем в RSA, и составляет 320 бит.

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

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

Вместе с проектом DSS опубликован проект стандарта SHS (Secure Hash Standard), описывающий однонаправленную хэш-функцию SHA (Secure Hash Algorithm), рекомендованную для использования вместе с DSA. Хэш-функция SHA является модификацией алгоритма MD4, хорошо известного в криптографической литературе.

ГОСТ 28147

В 1993 г. в России были изданы два государственных стандарта “Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма” и “Функция хэширования”, под общим заголовком “Информационная технология. Криптографическая защита информации”.

Стандарт “Процедуры выработки и проверки электронной цифровой подписи...” во многом схож со своим американским аналогом DSS. Для формирования и проверки цифровой подписи в нем используется тот же алгоритм Эль-Гамаля и Шнорра, что и в DSS, с незначительными модификациями. Имеется две альтернативных длины ключа, 512 и 1024 бит; длина подписи составляет 512 бит.

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

Как и DSS, российский стандарт определяет только алгоритм цифровой подписи, но не шифрования. Быстродействие обоих алгоритмов приблизительно совпадает.

Стандарт “Функция хэширования” предназначен для использования вместе со стандартом “Процедуры выработки и проверки цифровой подписи” и представляет собой оригинальный алгоритм, основанный на методе шифрования с симметричным ключом ГОСТ 28147. Стандарт не содержит криптографического обоснования выбранного алгоритма и не корректирует ГОСТ 28147 в части заполнения узлов замены.

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

В результате сравнений асимметричных алгоритмов был выбран алгоритм шифрования Эль-Гамаля.

Таблица 2.1 -Сравнение асимметричных алгоритмов шифрования

3. Программная реализация

3.1 Математическая модель

Рассмотрим подробнее алгоритм Эль-Гамаля.

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

. (3.1)

Кроме ключа для шифрования сообщения М, выбирают случайное целое число К, удовлетворяющее условию (3.2)

(3.2)

Затем вычисляют числа а, b (3.3)

(3.3)

Пара чисел (а,b) является шифртекстом. Заметим, что длина шифртекста вдвое больше длины исходного открытого текста М.

Для того чтобы расшифровать шифртекст (а,b), используют (3.4)

(3.4)

данное соотношение справедливо в силу (3.5).

(3.5)

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

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

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

– маскарад. Абонент С посылает документ абоненту В от имени абонента А;

– ренегатство. Абонент А заявляет, что не посылал сообщения абоненту В, хотя на самом деле послал;

– подмена. Абонент В изменяет или формирует новый документ и заявляет, что получил его от абонента А;

– повтор. Абонент С повторяет ранее переданный документ, который абонент А посылал абоненту В.

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

Решить проблему фальсификации документов и передаваемой информации возможно с использованием цифровой подписи.

Система генерации цифровой подписи должна включать две процедуры:

1) процедуру постановки подписи;

2) процедуру проверки подписи.

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

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

При проверке цифровой подписи получатель сообщения снова вычисляет хэш-функцию m = h(М) принятого по каналу текста М, после чего при помощи открытого ключа отправителя проверяет, соответствует ли полученная подпись вычисленному значению m хэш-функции (рис 2.2).

Рисунок 3.1 - Схема реализации цифровой подписи

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

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

Функция хеширования должна иметь следующие свойства

– быть допустимой для блока любой длинны;

– на входе давать значение фиксированной длинны;

– дайджест h=Н(x) должен вычисляться легко для любого заданного значения х, а алгоритм вычисления должен быть практичным со взгляда, как аппаратной, так и программой реализации.

– для любого данного дайджеста h должно быть практически невозможным вычисление x, для которого H(x)=h.

– для любого блока х должно быть практически невозможным исчисление ух, для которого H(x)=H(y). практично невозможно исчислить какую-либо пару разных х и у, для которых H(x)=H(y).

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

Таблица 3.1-Скорости Эль-Гамаля для различных длин модулей при 160-битовом показателе степени

512 битов

768 битов

1024 битов

Шифрование

0.33 с

0.80 с

1.09 с

Дешифрирование

0.24 с

0.58 с

0.77 с

Подпись

0.25 с

0.47 с

0.63 с

Проверка

l.37 с

5.12 с

9.30 с

Схема формирования ЭЦП Эль-Гамаля

Определение открытого “y” и секретного “x” ключей:

· Выбор двух взаимно простых больших чисел p и q, q<p

· Выбор значения секретного ключа x, x<p

· Определение значения открытого ключа у из выражения:

Формирование ЭЦП:

· Вычисление хэш-значения сообщения

· Выбор случайного числа k, 0<k<p-1 и НОД(k,p-1)=1

· Определение значения а из выражения:

· Определение значения b из выражения:

· Цифровая подпись и открытый текст сообщения М отправляются получателю.

Аутентификация сообщения - проверка подлинности подписи:

· Вычисление хэш-значения принятого открытого текста сообщения М

· Подпись считается достоверной, если a<p, и выполняется условие

Процедура формирования ЭЦП:

· Выбираем простое число р и два случайных числа q и x (q и x<p), p=11, q=2 и секретный ключ x=8;

· Вычисляем значение открытого ключа у

;

· Определяем хэш-значение исходного сообщения М, (312)

, в данном примере принимает m=3

· Выбираем случайное число k, взаимно простое с p-1.

Принимаем k=9, НОД(9, 10)=1.

· Для формирования ЭЦП вычисляем элементы подписи a и b

Элемент b определяем с помощью расширенного алгоритма Евклида из следующего соотношения:

В данном примере цифровой подписью является пара чисео a=6, b=5.

Цифровая подпись S=(a,b) и открытый текст сообщения М отправляются получателю. Для контроля целостности сообщения и достоверности ЭЦП получатель вычисляет хэш-значение принятого открытого текста сообщения М. При этом отправитель и получатель используют одну и ту же хэш-функцию.

Получив подписанное сообщение и открытый ключ у=3, получатель для проверки подлинности підписи проверяет віполнение условия:

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

Таким образом, процедура установления подлинности принятого сообщения состоит в проверке соответствия аутентификации сообщения.

Следует иметь ввиду, что каждая подпись по схеме Эль-Гамаля требует нового значения k. Случайное значение k должно храниться в секрете.

Размещено на http://www.allbest.ru/

Рисунок 3.1-Блок-схема шифрование электронной цифровой подписи

3.2 Программная реализация

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

Переменные, используемые в расматриваемом модуле именованы согласно математической модели. Так для работы алгоритма Эль-Гамаля используются переменные целого типа (integer)

P, Q - простые числа для реализации алгоритма ELGAMAL

N - модуль, по которому выполняется шифрование сообщения

fn - функция Эйлера

Ka,Kb - открытый и личный ключи пользователя системы

Возможности, предоставляемые пользователям системы клиентским приложением, определыены в модуле как элементы массива ClCmds

ClCmds:array[1..3] of string = ('-msg','-RSA','-sig');

Здесь

'-msg' - передача открытого сообщения,

'-ELGAMAL' - организация процесса ширования и передачи сообщения,

'-sig' - реализацияцифровой подписи для сообщения.

Процедура ChooseCommand(RecText :string) отвечает за обработку комманды сервера и выбор нужного действия

Центральное место в реализации алгоритмов шифрования и цифровой подписи занимает функция нахождения НОД - iNOD

function iNOD(a,b:real):real;

var

i:real;

xnod:real;

begin

if a<b then xnod:=a

else xnod:=b;

i:=xnod;

while i>0 do

begin

if ((iMod(a,i)=0) and (iMod(b,i) = 0))

then

begin

xnod:=i;

i:=0;

end

else

i:=i-1;

end;

iNOD:=xnod;

end;

Генерация ключей реализована в процедуре ELGAMAL_keys

procedure ELGAMAL_keys(P,Q:integer; var N,fn,Ka,Kb:integer);

begin

N:=P*Q;

fn:=(P-1)*(Q-1);

randomize;

repeat

begin

repeat

Ka:=(Random(fn-2)+2)

until (iNod(fn,ka)=1);

repeat

Kb:=(Random(fn-2)+2)

until (((Ka*Kb) mod fn=1));

end

until ((Ka<>Kb) and (iNod(Kb,N)=1));

end;

Ключи, сгенерированные в процедуре ELGAMAL_keys используются в функии шифрования сообщения методом ELGAMAL - shifrD. В зависимости от того, какое значение Ka или Kb было присвоено формальному параметру Kab, будет выполнятся либо шифрование сообщения либо его расшифрование.

function shifrD(Kab,N:integer;input:string):string;

var

i,codeS:integer;

code,cod:real;

res,tmp:string;

iCode,iKab,jN,iRes:TFGInt;

begin

res:='';

Base10StringToFGInt(FloatToStr(Kab),iKab);

Base10StringToFGInt(IntToStr(N),jN);

for i := 1 to length(input) do

begin

code:=ord(input[i]);

Base10StringToFGInt(FloatToStr(code),iCode);

FGIntModExp(iCode,iKab,jN,iRes);

FGIntToBase10String(iRes,tmp);

codeS:=StrToInt(tmp);

res:=res+ chr(codes);

end;

shifrD:=res;

end;

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

function ch8to64b(InputText:string):string,

которая переводит 8 символов таблицы ASCII кодов в 64-битный блок:

function ch8to64b(InputText:string):string;

var

i,j:integer;

BinText,tmp:string;

smb,tsmb:array[1..8] of string;

begin

for i:=1 to 8 do

begin

tsmb[i]:=IntToBin(ord(InputText[i]));

for j:=1 to 8 do

begin

tmp:=tsmb[i];

smb[i]:=smb[i]+tmp[j+24];

end;

end;

for i:= 1 to 8 do

BinText:=BinText+smb[i];

ch8to64b:=BinText; end;

Функция function xHash(inp: string):string хеширует n-ое количество символов, используя в своей работе функцию хеширования двух символов.

function xHash(inp: string):string;

var

tmp,res,inp2:string;

i:integer;

begin

inp2:=inp;

while (length(inp) mod 8 <>0) do

begin

inp:=inp+'а';

end;

tmp:='';

res:='';

for i:=1 to length(inp) do

begin

tmp:=tmp+inp[i];

if (i mod 8 = 0) then

begin

res:= res+iHash(tmp);

tmp:='';

end;

end;

xHash:=res;

end;

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

function shifr_hash(res1:string;Keyb,n:real):string;

var

i,fx,fcode:integer;

res2,tmp:string;

iKab,jN,ifx,iRes:TFGInt;

begin

res2:='';

Base10StringToFGInt(FloatToStr(Keyb),iKab);

Base10StringToFGInt(FloatToStr(N),jN);

for i:=1 to length(res1) do

begin

fx:=ord(res1[i]);

Base10StringToFGInt(FloatToStr(fx),ifx);

FGIntModExp(ifx,iKab,jN,iRes);

FGIntToBase10String(iRes,tmp);

fcode:=StrToInt(tmp);

res2:=res2+chr(fcode);

end;

shifr_hash:=res2;

end.

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

Function BinToInt(binText:string):longint;

var

bin,mult:longint;

i:integer;

begin

mult:=1;

bin:=0;

for i:=length(binText) downto 1 do

begin

if binText[i]='1' then bin:=bin+mult;

mult:=mult shl 1;

end;

BinToInt:=bin;

End.

4. Охрана труда

В данном разделе я описываю помещение СумГУ г.Сумы.

В помещении работает 5 человек.

Габариты помещения:

длина (l)-6,5м;

ширина(d)-4м;

высота(h)-3,2м.

Производим расчет общей площади помещения; площади, приходящейся на одного работника; объёма помещения, приходящегося на одного работника.

Общая площадь помещения(Sобщ.):

Sобщ.=l*d, (4.1)

где l -длина помещения;

d -ширина помещения.

Sобщ.=6,5*4=26м2

Площадь помещения, приходящаяся на одного работника(Sраб.):

Sраб.=(l*d)/n, (4.2)

где n-количество работников.

Sраб.=26/5=5.2м2

Объём помещения, приходящегося на одного работника ( Vраб.):

Vраб.=(l*d*h)/n, (4.3)

где h-высота помещения.

Vраб.=(6,5*4*3,2)/5=17м3

Полученные данные не все соответствуют нормативным значениям согласно СниП 2.09.04-87 .

Нормативные значения:

h>=2,5м;

Sраб.>=4м2;

Vраб. >=30м3.

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

1)рабочий стол (РС) 3 шт. (габариты (l*d*h) 1,3*0,7*0,8м);

2)стулья (С) 5 шт. (0,45*0,45*1,5): 3 для работников данного помещения и 2 для посетителей;

3) книжная полка (КП) 1 шт. (1,2*0,25*0,25м);

4) шкаф для одежды (ШО) 1шт. (1,3*0,6*1,8м);

5)стол (СТ) 4шт. (1,3*0,7*0,8м);

6)компьютер (К) 3 шт. с напряжением питания 220В и габаритными размерами:

монитор - 0,4*0,4*0,42м;

системный блок-0,33*0,33*0,35м;

клавиатура-0,2*0,47*0,2м;

7)принтер (П) 1шт. (0,4*0,3*0,2м);

8)телефон (Т) 3шт. (0,2*0,15*0,13м).

Рассмотрим планировку помещения с указанием рабочих мест, оборудования на рисунке 4.1

Деятельность фирмы согласно ГОСТу 12.1.005-88 относится к категории 1б по тяжести (лёгкая): работы, которые производятся сидя и не требующие систематического физического напряжения.

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

4.1 Анализ условий труда

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

1) при не соблюдении работниками в помещении правил пожарной безопасности, существует опасность возникновения пожара;

2) при не соблюдении работниками правил электробезопасности, существует опасность термических ожогов от имеющегося нагревательного оборудования-электрочайника, которое находится в данном помещении;

3) существует психофизическая опасность (работа за компьютером, монотонность труда);

4) существует опасность поражения электрическим током во время пользования электроприбором при не соблюдении правил электробезопасности;

5) данное помещение не относится к категории производственных помещений и поэтому опасность взрыва отсутствует.

Рисунок 4.1 - Планировка помещения с указанием рабочих мест, оборудования

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

1) оборудование (принтер, системный блок) заземлено, для защиты работников от статического электричества, что соответствует ГОСТ 12.1.030-81;

2) для защиты от ионизирующих излучений на монитор компьютера установлен защитный экран согласно ГОСТ 12.4.120-83;

3) для оповещения рабочего персонала о возможных опасностях в помещении предусмотрена телефонная и радиосвязь.

При анализе промышленной санитарии отметим:

а) согласно ГОСТ 12.1.005-88 в данном помещении источником загрязнения воздушной среды служит форточка размером 1,5*0,5(м);

б) принтер выступает источником шума, но уровень шума, создаваемый им, не имеет отрицательного воздействия на работников;

в) монитор- источник ионизирующих излучений, однако на монитор установлен защитный экран, который защищает человека от вредных воздействий излучения.

4.2 Вентиляция

Рассмотрим соответствует ли естественная вентиляция нормам

ГОСТа 12.1.005-88. Цель анализа: оценить эффективность естественной вентиляции в помещении.

Данные помещения:

верхний проём: длина 1,5м; ширина 0,5 м;

окно: длина 2 м; ширина 1,5 м;

нижний проём: длина 2м ; ширина 0,8 м;

расстояние от пола до окон: 0,8 м;

высота помещения: 3,2 м.

На рисунке 4.2 рассмотрим схему помещения.

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

Необходимый воздухообмен определяем по формуле:

электронный цифровой подпись шифрование

Lн=L*n, м3/час, (4.4)

где Lн- необходимый воздухообмен;

L'- количество воздуха необходимого для нормальной работы одного человека( L'=30 м3/час);

n- число работников в наиболее многочисленную смену (n=5 чел.).

Lн=30*5=150 м3/час

Рисунок 4.2 - Схема естественной вентиляции помещения

Фактический воздухообмен:

Lф=*F*V*3600, м3/час, (4.5)

где Lф- фактический воздухообмен;

- коэффициент расхода воздуха(=0,55);

F- площадь верхнего проёма, через который будет выходить воздух, м2.

F=1,5*0,5=0,75 м2

V- скорость выхода воздуха через верхний проём, м/с; рассчитываем по формуле:

V=2g*H2/вн., м/ (4.6)

Где g- ускорение свободного падения (g=9,8м/с);

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

H2 =h2*(н.- вн.), кгс/м2, (4.7)

где h 2- высота от площади равных давлений до центра форточки.

Расстояние от площади равных давлений до центров верхнего и нижнего проёмов обратнопропорционально квадратам площадей этих проёмов:

h1/h2=S2форточки/S2двери,

h=h1+h2

н. и вн.- соответственно объёмный вес воздуха внутри и снаружи помещения, кгс/м3.

В общем виде объёмный вес воздуха определяем по формуле:

=0,465*Pб/T , кгс/м3, (4.8)

где Pб- барометрическое давление;(Pб=750 мм. рт. ст.);

T- температура воздуха в К.

Для помещений, где выполняются лёгкие работы в соответствии с ГОСТом 12.1.005-88 для тёплого периода года температура не должна превышать 28C или T=301К,для холодного периода 17C или 290К.

Для воздуха снаружи помещения температуру определяем по СНИП 2.04.05-91:

*для лета t=24С, T=297К;

*для зимы t=-11C, T=262К.

вн л=0,465*(750/301)=1,16 кгс/м3,

н л=0,465*(750/297)=1,17 кгс/м3,

вн з=0,465*(750/290)=1,20 кгс/м3,

н з=0,465*(750/262)=1,33 кгс/м3.

Находим высоту от площади равных давлений до центра форточки (h2) из соотношения:

h1/h2=S2форточки/S2двери,

h=h1+h2

h=3,2-1-0,25-0,4=1,55 м;

S2форточки =(1,5*0,5)2=0,56 м2;

S2двери =(2*0,8)2=2,56 м2 ;

h1 =0,21*h2; h1=1,55-h2; 0,21*h2=1,55-h2; 1,21*h2=1,55; h2=1,28;

h1=1,55-1,28=0,27

Тепловой напор (H2):

Для зимнего периода H2=1,28*(1,33-1,22)=0,17кгс/м2.

Для летнего периода H2=1,28*(1,17-1.16)=0,013кгс/м2.

Скорость выхода воздуха (V):

для зимнего периода Vз=2*9,8*0,17/1,2=1,7 м/с;

для летнего периода Vл=2*9,8*0,013/1,16=0,47 м/с.

Фактический воздухообмен (Lф):

для зимнего периода Lфз=0,75*1,7*0,55*3600=3524,5 м3/час;

для летнего периода Lфл=0,75*0,47*0,55*3600=697,95 м3/час.

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

4.3 Освещение

Система освещения помещения представлена как естественными источниками света, так и искусственными.

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

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

1) Недостаточное освещение рабочей зоны;

2) Отсутствие/недостаток естественного света;

3) Повышенная яркость;

4) Перенапряжение анализаторов (в т.ч. зрительных)

По данным ВОЗ на зрение влияет:

- УФИ;

- яркий видимый свет;

- мерцание;

- блики и отраженный свет.

Естественное освещение

Рассмотрим схему естественного освещения на рисунке 4.3 и проанализируем естественное освещение.

Рисунок 4.3 - Схема естественного освещения

На рисунке 4.3 РТ - расчетная точка, наиболее удалённая от оконных проёмов; УРП- уровень рабочей поверхности.

Нормативное значение коэффициента природного освещения (КЕО) для четвёртого светового пояса, в котором размещена Украина, ен4 определяется по формуле:

ен4=ен3*m*c, %, (4.9)

где ен3- нормативное значение КЕО для 3 светового пояса, которое определяется по СНИП II-4-79.

m- коэффициент светового климата (m=0,9);

c- коэффициент солнечности (с=0,75).

ен4=1,5*0,9*0,75=1,01%.

Фактическое значение КЕО выводится из формулы:

100*So/Sп=ен*о*Кз*Кзд/о*r1, (4.10)

Отсюда

еф=100*So*о*r1/Sп*о*Кз*Кзд, (4.11)

где еф- фактическое значение КЕО;

So- площадь всех окон в помещении, м2;

So=2*1,5*2=6 м2

Sп- площадь пола помещения, м2;

Sп=6,5*4=26 м2

о- общий коэффициент светопропускания (о=0,6);

r1- коэффициент, учитывающий отражение света от внутренних поверхностей помещения. Он зависит от: отношения глубины помещения к высоте от уровня условной рабочей поверхности до верха окна; отношения расстояния расчётной точки от наружной стены к глубине помещения; отношения длины помещения к его глубине(r1=3,6) ;

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

Кзд- коэффициент, который учитывает затемнение окон другими зданиями(Кзд=1);

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

Получаем

еф=100*6*0,6*3,6/26*39*1*1,3=0,98%

Видим, что еф<ен на 0,03%. Чтобы ликвидировать разницу в необходимо очистить окна от пыли (вымыть).

Искусственное освещение

Рассмотрим эффективность искусственного освещения, которое обеспечивается 6 лампами накаливания. Рассмотрим рисунок 4.4 схема искусственного освещения. Где - - светильники в которых находятся лампочки.

Рисунок 4.4 - Схема искусственного освещения

Размещение ламп накаливания в помещении соответствует требованиям СниП II-4-79.

По формуле:

L=1,4*Hр, (4.12)

где L- расстояние между светильниками;

Hр- высота подвеса светильников над расчётной поверхностью.

L=1,4*(3,2-0,8-0,4)=2,83 м

Расстояние от светильников до стен l=0,5L=1,5 м

Расчёт искусственного освещения производим по методу использования светового потока:

E=F*N*n*/S*K*Z, (4.13)

где F- требуемый световой поток 1 лампы, согласно ГОСТ 22-39-70

F=1630 лм;

N- количество светильников, N=2 шт.;

n- количество ламп в светильнике, n=3 шт.;

- коэффициент использования светового потока,=0,6;

S- площадь помещения, S=26 м2;

K- коэффициент запаса, K=1,5;

Z- коэффициент неравномерности освещения, Z=1,15.

Е=1630*2*3*0,6/26*1,5*1,15=130,85 лк

Фактическая освещённость не соответствует нормативному значению (200 лк).

4.4 Санитарно-гигиенические параметры

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

Здание, в котором находится ЧПКП «Полюс» г.Сумы, относится к трудносгораемым ( по степени огнестойкости- 2 категория).В отделах имеется деревянная мебель и работа отдела связана с большим количеством бумаги, следовательно помещение относится к категории. В (ОНТП 24-86). Это отвечает требованиям пожарной безопасности в соответствии с СНиП 2.01.02-85.

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

Параметр

Значение

параметра

Примечание

Фактическое

Нормируемое (допустимое)

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

130,9

200

СНиП II-4-79

Значение КЕО,%

0,98

1,01

СниП II-4-79

Температура С

зимой

летом

20-22

22-27

20-25

21-28

ГОСТ 12.1.005-88

Относительная

влажность, %

тёплое время

холодное время

50-60

65-74

60

75

ГОСТ 12.1.005-88

Скорость движения воздуха, м/с

тёплое время

холодное время

0,47

1,7

0,1-0,3

<=0,2

ГОСТ 12.1005-88

Шум, дБа

43-48

50

ГОСТ12.1.002-83

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

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

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

Требования по предотвращению пожара:

1) запрещается пользоваться электрическими нагревательными приборами без разрешения;

2) хранить в помещении быстровоспламеняющиеся и взрывоопасные предметы;

3) закрывать электрические лампочки абажурами из бумаги или материала без каркаса;

4) пользоваться разбитыми включателями, розетками.

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

чтобы как можно быстрее покинуть помещение в случае возникновения пожара. В соответствии с требованиями СниП II-2-80 имеется 1 выход из помещения на площадку, которая непосредственно имеет выход наружу. Общая ширина выходов 1,5 м, протяжённость эвакуационного пути около 10 м (СниП II-90-81).

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

4.6 Организация рабочего места оператора ПК

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

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

Антропологические характеристики человека определяют габаритные и компоновочные параметры его рабочего места, а также свободные параметры отдельных его элементов.

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

Рабочее место программиста должно занимать площадь не менее 6 м?, высота помещения должна быть не менее 4 м, а объем - не менее 20 м3 на одного человека.

Рабочее место программиста: высота над уровнем пола рабочей поверхности, за которой работает оператор, должна составлять 720 мм. Желательно, чтобы рабочий стол оператора при необходимости можно было регулировать по высоте в пределах 680 - 780 мм. Оптимальные размеры поверхности стола 1600Х1000 кв. мм. Под столом должно иметься пространство для ног с размерами по глубине 650 мм. Рабочий стол оператора должен также иметь подставку для ног, расположенную под углом 15° к поверхности стола. Длина подставки 400 мм, ширина - 350 мм. Удаленность клавиатуры от края стола должна быть не более 300 мм, что обеспечит оператору удобную опору для предплечий. Расстояние между глазами оператора и экраном видеодисплея должно составлять 40 - 80 см.

Рабочий стул программиста должен быть снабжен подъемно-поворотным механизмом. Высота сиденья должна регулироваться в пределах 400 - 500 мм. Глубина сиденья должна составлять не менее 380 мм, а ширина - не менее 400 мм. Высота опорной поверхности спинки не менее 300 мм, ширина - не менее 380 мм. Угол наклона спинки стула к плоскости сиденья должен изменяться в пределах 90 - 110 °.

4.7 Мероприятия для улучшения условий труда

Исходя из вышесказанного, необходимо разработать ряд мероприятий:

1. Для организации соответствия между фактическим и нормативным значениями воздухообмена необходимо:

летом

а) уменьшить площадь форточки до 0,16 м2

150=х*0,47*0,55*3600, х=0,16

б) открывать форточку на 13,15(мин.) в час

150=0,75*0,47*0,55*х, х=789,47(сек.) или 13,15 (мин.)

зимой

а) уменьшить площадь форточки до 0,044 м2

150=х*1,7*0,55*3600, х=0,044

б) открывать форточку на 3,5(мин.) в час

150=0,75*1,7*0,55*х, х=214,28(сек.) или 3,5 (мин.)

2. Так как освещённость фактическая меньше нормативной при искусственном освещении, то необходимо применять местное освещение.

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

4. Относительно психофизических опасностей необходимо соблюдать санитарные нормы: при работе за компьютером необходимо делать в течении часа перерывы по 4-6 минут; операторы должны работать в течении дня 4 часа за компьютером и после каждого часа работы делать перерыв на 15 минут.

Выводы

Цифровая подпись обеспечивает:

· Удостоверение источника документа. В зависимости от деталей определения «документа» могут быть подписаны такие поля как автор, внесённые изменения, метка времени и т. д.

· Защиту от изменений документа. При любом случайном или преднамеренном изменении документа (или подписи) изменится хэш, следовательно подпись станет недействительной.

· Невозможность отказа от авторства. Так как создать корректную подпись можно лишь зная закрытый ключ, а он известен только владельцу, то владелец не может отказаться от своей подписи под документом.

· Возможны следующие угрозы цифровой подписи:

· Злоумышленник может попытаться подделать подпись для выбранного им документа.

· Злоумышленник может попытаться подобрать документ к данной подписи, чтобы подпись к нему подходила.

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

· Тем не менее, возможны ещё такие угрозы системам цифровой подписи:

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

· Злоумышленник может обманом заставить владельца подписать какой-либо документ, например используя протокол слепой подписи.

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

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

Разработана информационная система для реализации электронной цифровой подписи методом Эль-Гамаля. Разработанная информационная система реализована в программном обеспечении созданная при помощи инструментальной программной среды Delphi 7.0.

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

1. Петров А.А Компьютерная безопасность. Криптографические методы защиты. ДМК Москва, 2000 г.

2. "Методы и средства защиты информации" (курс лекций) Авторские права: Беляев А.В. (http://www.citforum.ru/internet/infsecure/index.shtml)

3. Криптография (http://www.citforum.ru/internet/securities/crypto.shtml)

4. http://www.e-sign.ru

5. Александр Володин «Кто заверит ЭЦП» - журнал «Банковские системы» - ноябрь 2000 (http://www.bizcom.ru/system/2000-11/04.html)

6. Теоретические основы - Безопасность информационных систем -Криптографические системы (http://argosoft.webservis.ru/Base/Crypt.html#Механизмы шифрования )

7. Криптографические алгоритмы с открытым ключом (http://argosoft.webservis.ru/Base/RSAintro.html#Криптографические алгоритмы с открытым ключом)

8. Совpеменные кpиптогpафические методы защиты инфоpмации - Системы с откpытым ключом ( http://ppt.newmail.ru/crypto04.htm#Heading20 )

9. Криптография с открытым ключом: от теории к стандарту А.Н.Терехов, А.В.Тискин "Программирование РАН", N 5 (сентябрь-октябрь), 1994, стр. 17--22

10. (http://www1.tepkom.ru/users/ant/Articles/Pkcstand.html)

11. Баричев С.Г., Гончаров В.В., Серов Р.Е. Основы современной криптографии - Москва, Горячая линия - Телеком, 2001

12. Для подготовки данной работы были использованы материалы с сайта http://www.ed.vseved.ru/

Русак О.Н. Справочная книга по охране труда в машиностроении - Л.: Машиностроение, 1984.

Денисенко Г.Ф. Охрана труда - М.: Высшая школа, 1985.

Долин П. А. Справочник по технике безопасности. - М.: Энергоиздат, 1984.

Белов С.В. Средства защиты в машиностроении. - М.: Машиностроение, 1989.

СНиП 2.09.04 - 87 Административные и бытовые здания и сооружения.

СНиП 2.01.02 - 85 Противопожарные нормы.

СНиП 2.05.02 - 89 Общие требования к освещению

ГОСТ 12.1.005 - 88 ССБТ. Общие и санитарно - гигиенические требования к воздуху рабочей зоны.

СНиП 2.04.05 - 91 Отопление, вентиляция и кондиционирование.

ГОСТ 12.1.003 - 83 ССБТ. Шум. Общие требования безопасности.

ГР 2411 - 81

ГОСТ 12.1.029 - 80 ССБТ. Средства и методы защиты от шума. Классификация.

ГОСТ 12.2.007 - 75 ССБТ.

ГОСТ 25.851 - 85 ССБТ.

ГНАТО 0.00. - 1.21.98

СНиП II-4-79. Естественное и искусственное освещение.

Правила побудови електроустановок, затверджені в 1984 р.

Правила безпечної експлуатації електроустановок споживачів.

ДсанПин 3.3.2 - 007 - 98

Приложение

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ActnMan, ExtCtrls, Math, IdGlobal,

ScktComp, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,

IdWhois, DB, DBClient, MConnect, SConnect, ComCtrls, FGInt;

type

TForm1 = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

GroupBox2: TGroupBox;

Edit7: TLabeledEdit;

Button2: TButton;

Edit8: TLabeledEdit;

Button3: TButton;

Edit9: TEdit;

GroupBox3: TGroupBox;

Label1: TLabel;

Edit10: TLabeledEdit;

Edit11: TLabeledEdit;

Edit12: TLabeledEdit;

Edit13: TLabeledEdit;

Button5: TButton;

Edit1x: TLabeledEdit;

Button11: TButton;

ClientSocket1: TClientSocket;

GroupBox1: TGroupBox;

Edit1: TLabeledEdit;

Edit2: TLabeledEdit;

Edit3: TLabeledEdit;

Edit4: TLabeledEdit;

Edit5: TLabeledEdit;

Edit6: TLabeledEdit;

Button1: TButton;

GroupBox4: TGroupBox;

LEdit1: TLabeledEdit;

LEdit2: TLabeledEdit;

LEdit3: TLabeledEdit;

Button6: TButton;

Button7: TButton;

Button8: TButton;

GroupBox5: TGroupBox;

Memo1: TMemo;

CB1: TComboBox;

LEdit5: TLabeledEdit;

procedure Button5Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure ClientSocket1Connect(Sender: TObject;

Socket: TCustomWinSocket);

procedure ClientSocket1Disconnect(Sender: TObject;

Socket: TCustomWinSocket);

procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;

ErrorEvent: TErrorEvent; var ErrorCode: Integer);

procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);

procedure FormCreate(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button11Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

function xHash(inp:string):string;

function iHash(tmp:string):string;

function shifr_hash(res1:string;Keyb,n:real):string;

function shifrD(Kab,N:integer;input:string):string;

var

Form1: TForm1;

implementation

uses Unit2, Unit3;

//переменные для ключей ELGAMAL

var P,Q,N,fn,Ka,Kb:integer; xxx:string;

//размер массива алфавита

const AlfSize = 36;

type masAlf = array[1..AlfSize] of char;

hash_type = array[1..4,1..16] of integer;

//массив команд, которые обрабатывает клиент

const ClCmds:array[1..3] of string = ('-msg','-ELGAMAL','-sig');

{$R *.dfm}

//Функция нахождения остатка от деления(числа по модулю)

function iMod(a,b:real):real;

var

z:real;

begin

if a<b then z:=a

else z:=a-(b*(trunc(a/b)));

iMod:=z;

end;

//процедура обработки комманды сервера и выбор нужного действия

procedure ChooseCommand(RecText :string);

var

i,k,nn:integer;

command,text,SigRes1,SigRes2,SigRes3,RsaRes:string;

RecMass:array[1..4] of string;

SigMass:array[1..5] of string;

begin

command:='';

//читаем команду сервера

for i:=1 to 4 do

command:=command+RecText[i];

//определяем команду сервера

for i:=1 to 3 do

if (command=ClCmds[i]) then k:=i;

//читаем остальную часть сообщения

for i:=6 to length(RecText) do

text:=text+RecText[i];

//Очищаем массив RecMas

for i:=1 to 4 do

RecMass[i]:='';

//Очищаем массив SigMass

for i:=1 to 5 do

SigMass[i]:='';

showmessage(text);

//зная комманду сервера выбираем соотвествующее действие

case k of

1: //сервер прислал сообщение без шифрования и цифровой подписи

begin

i:=1;

nn:=1;

//разбиваем сообщение сервера на имя отправителя и сам //текст сообщения

while i<=length(text) do

begin

if text[i]<>'~'

then

begin

SigMass[nn]:=SigMass[nn]+text[i];

inc(i);

end

else

begin

inc(i);

inc(nn);

end;

end;

//Записываем сообщение в поле Memo1

Form1.Memo1.Lines.Add('>'+SigMass[1]+': '+SigMass[2]);

end;

2: //сервер прислал сообщение зашифрованное методом ELGAMAL

begin

i:=1;

nn:=1;

//разбиваем сообщение сервера на имя отправителя и сам //текст сообщения

while i<=length(text) do

begin

if text[i]<>'~'

then

begin

RecMass[nn]:=RecMass[nn]+text[i];

inc(i);

end

else

begin

inc(i);

inc(nn);

end;

end;

//Расшифровывуем сообщение

RsaRes:=shifrD(StrToInt(RecMass[3]),StrToInt(RecMass[4], RecMass[2]);

//Записываем сообщение в поле Memo1

Form1.Memo1.Lines.Add('>'+RecMass[1]+': '+RsaRes);

end;

3: //сервер прислал подписанное сообщение

begin

i:=1;

nn:=1;

// зашифрованный текст

while i<=length(text) do

begin

if text[i]<>'~'

then

begin

SigMass[nn]:=SigMass[nn]+text[i];

inc(i);

end

else

begin

inc(i);

inc(nn);

end;

end;

//хешируем полученное сообщение

SigRes1:=xHash(SigMass[2]);

//расшифровуваем хеш

SigRes2:=shifr_hash(SigMass[3],StrToInt(SigMass[4]), StrToInt(SigMass[5]));

//проверяем подлинность сообщения

if SigRes1=SigRes2

then

SigRes3:=' [Сообщение подлинно]'

else

SigRes3:=' [Сообщение было изменено!]';

//Записываем сообщение в поле Memo1

Form1.Memo1.Lines.Add('>'+SigMass[1]+': '+SigMass[2]+SigRes3);

end;

end;

end;

//функция нахождения НОД

function iNOD(a,b:real):real;

var

i:real;

xnod:real;

begin

if a<b then

xnod:=a

else

xnod:=b;

i:=xnod;

while i>0 do

begin

if ((iMod(a,i)=0) and (iMod(b,i) = 0))

then

begin

xnod:=i;

i:=0;

end

else

i:=i-1;

end;

iNOD:=xnod;

end;

//генерация ключей ELGAMAL

procedure ELGAMAL_keys(P,Q:integer; var N,fn,Ka,Kb:integer);

begin

N:=P*Q;

fn:=(P-1)*(Q-1);

randomize;

repeat

begin

repeat

Ka:=(Random(fn-2)+2)

until (iNod(fn,ka)=1);

repeat

Kb:=(Random(fn-2)+2)

until (((Ka*Kb) mod fn=1));

end

until ((Ka<>Kb) and (iNod(Kb,N)=1));

end;

//функция шифрования сообщения методом ELGAMAL

function shifrD(Kab,N:integer;input:string):string;

var

i,codeS:integer;

code,cod:real;

res,tmp:string;

iCode,iKab,jN,iRes:TFGInt;

begin

res:='';

Base10StringToFGInt(FloatToStr(Kab),iKab);

Base10StringToFGInt(IntToStr(N),jN);

for i := 1 to length(input) do

begin

code:=ord(input[i]);

Base10StringToFGInt(FloatToStr(code),iCode);

FGIntModExp(iCode,iKab,jN,iRes);

FGIntToBase10String(iRes,tmp);

codeS:=StrToInt(tmp);

res:=res+ chr(codes);

end;

shifrD:=res;

end;

//

//Организация цифровой подпси

//

//функция шифрования данных после хеширования

function shifr_hash(res1:string;Keyb,n:real):string;

var

i,fx,fcode:integer;

res2,tmp:string;

iKab,jN,ifx,iRes:TFGInt;

begin

res2:='';

Base10StringToFGInt(FloatToStr(Keyb),iKab);

Base10StringToFGInt(FloatToStr(N),jN);

for i:=1 to length(res1) do

begin

fx:=ord(res1[i]);

Base10StringToFGInt(FloatToStr(fx),ifx);

FGIntModExp(ifx,iKab,jN,iRes);

FGIntToBase10String(iRes,tmp);

fcode:=StrToInt(tmp);

res2:=res2+chr(fcode);

end;

shifr_hash:=res2;

end;

//функция перевода числа из двоичной системы в десятичную

Function BinToInt(binText:string):longint;

var

bin,mult:longint;

i:integer;

begin

mult:=1;

bin:=0;

for i:=length(binText) downto 1 do

begin

if binText[i]='1'

then

bin:=bin+mult;

mult:=mult shl 1;

end;

BinToInt:=bin;

end;

//функция перевода массива из 8 символов в 64 бита

function ch8to64b(InputText:string):string;

var

i,j:integer;

BinText,tmp:string;

smb,tsmb:array[1..8] of string;

begin

for i:=1 to 8 do

begin

tsmb[i]:=IntToBin(ord(InputText[i]));

for j:=1 to 8 do

begin

tmp:=tsmb[i];

smb[i]:=smb[i]+tmp[j+24];

end;

end;

for i:= 1 to 8 do

BinText:=BinText+smb[i];

ch8to64b:=BinText;

end;

//Переводим 16 байт в одну строку

Function Bin16ToStr(input:string):string;

var

ch1,ch2:string;

i:integer;

begin

ch1:='';ch2:='';

for i:=1 to 8 do

begin

ch1:=ch1+input[i];

ch2:=ch2+input[i+8];

end;

Bin16ToStr:=chr(BinToInt(ch1))+chr(BinToInt(ch2));

end;

//хешируем два символа


Подобные документы

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

    реферат [20,6 K], добавлен 09.10.2014

  • Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.

    курсовая работа [101,1 K], добавлен 09.03.2009

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

    контрольная работа [34,5 K], добавлен 30.09.2013

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

    курсовая работа [492,6 K], добавлен 18.09.2016

  • Схема формирования электронной цифровой подписи, её виды, методы построения и функции. Атаки на электронную цифровую подпись и правовое регулирование в России. Средства работы с электронной цифровой подписью, наиболее известные пакеты и их преимущества.

    реферат [27,8 K], добавлен 13.09.2011

  • Основы криптографических систем. Алгоритм создания открытого и секретного ключей. Схема передачи шифрованной информации и алгоритм для цифровой подписи. Преимущества и недостатки системы RSA. Основные формулы для создания RSA-ключей шифрования.

    курсовая работа [683,6 K], добавлен 18.12.2011

  • Организационно-правовое обеспечение электронной цифровой подписи. Закон "Об электронной цифровой подписи". Функционирование ЭЦП: открытый и закрытый ключи, формирование подписи и отправка сообщения. Проверка (верификация) и сфера применения ЭЦП.

    курсовая работа [22,9 K], добавлен 14.12.2011

  • Назначение и применение электронной цифровой подписи, история ее возникновения и основные признаки. Виды электронных подписей в Российской Федерации. Перечень алгоритмов электронной подписи. Подделка подписей, управление открытыми и закрытыми ключами.

    курсовая работа [604,0 K], добавлен 13.12.2012

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

    презентация [883,5 K], добавлен 18.05.2017

  • Разъяснения по использованию систем цифровой подписи в связи с ведением закона "Об электронной цифровой подписи". Пример практического применения механизма электронно-цифровой подписи: программа контроля подлинности документов, хранимых в базе данных.

    контрольная работа [180,1 K], добавлен 29.11.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.