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

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




































Главная

Программирование, компьютеры и кибернетика
Защита информации от несанкционированного доступа

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


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
на тему: "Защита информации от несанкционированного доступа"
Пояснительная записка содержит описание разработанной программы и руководство по ее использованию. Также в ней приводится описание используемых методов шифрования информации.
В настоящее время большое внимание уделяется информации, недаром наш век называют «информационным». Во время того, как люди познают технологии хранения и передачи информации, встает вопрос о ее защите от несанкционированного доступа. Для решения этой проблемы было разработано большое количество разнообразных методов кодирования информации, которые могут быть реализованы программно. Данная разработка представляет собой программный модуль, обеспечивающий шифрование и расшифровывание информационных блоков.
Необходимо разработать программу для шифрования и расшифровывания файлов на основе настроек пользователя. Для шифрования использовать ГОСТ 28147-89. Разработать удобный интерфейс общения с пользователем. Поставить программу на платформу Windows, что обеспечит ее расширение, дополнение и удобство использования.
В данной работе будет рассматриваться защита информации, хранящейся в электронном виде, от несанкционированного доступа. Для обеспечения секретности информации используются следующие методы:
Комбинированием этих средств защиты можно добиться относительно хорошей защищенности информации. Невозможно абсолютно защитить информацию от несанкционированного доступа (взлома). Любой из этих способов поддается взлому в некоторой степени. Вопрос в том, будет ли выгодно взламывать или нет. Если затраты ресурсов на защиту (стоимость защиты) больше чем затраты на взлом, то система защищена плохо.
Данная разработка является криптографической частью системы защиты - она зашифровывает и расшифровывает информацию, поэтому ниже будут приведены только основные понятия криптографии.
Шифр - последовательность операций, проводимых над открытыми (закрытыми) данными и ключом с целью получения закрытой (открытой) последовательности.
Ключ - конкретное для каждого нового кода значение каких-нибудь характеристик алгоритма криптографической защиты.
Гамма шифра - это некоторая псевдослучайная последовательность заданной длины, используемая для шифрования.
Гаммирование - процес наложения гаммы шифра на открытые данные.
Зашифровывание - процесс преобразования открытых данных в закрытые с помощью шифра и ключа.
Расшифровывание - процедура преобразования закрытых данных в открытые с помощью шифра и ключа.
Шифрование - зашифровывание и (или) расшифровывание.
Дешифрование - совокупность действий по преобразованию закрытых данных в открытые без знания ключа и (или) алгоритма зашифровывания.
Имитозащита - защита от ложной информации. Осуществляется по собственным алгоритмам, с помощью выработки имитовставки.
Имитовставка - последовательность данных определенной длины, полученных специальными методами гаммирования из открытых исходных данных. Содержимое имитовставки является эталоном для проверки всей остальной информации.
Для шифрования информации в программу встроены следующие алгоритмы:
- ГОСТ 28147-89 - стандарт шифрования Российской Федерации. В программе используется два режима кодирования - режим простой замены и режим гаммирования. Данные кодируются по 64 бита (8 байт) с помощью 256-битного (32-байтного) ключа.
- Два простых метода, вложенных как пример построения модулей для программы. Кодирование по 64 бит, ключ - 64 бит.
Программа может быть дополнена алгоритмами кодирования, т.е. рекомпилирована с дополнительными модулями. В дальнейших версиях предполагается создание модульных расширений (plug-in) для программы, которые будут содержать дополнительные алгоритмы криптографических преобразований.
Рассмотрим подробнее алгоритм криптографического преобразования ГОСТ 28147-89. Ключ состоит из восьми 32-битных элементов, рассматриваемых как беззнаковые целые числа. Таким образом, ключ составляет 256 бит или 32 байта. При шифровании используется таблица замен, являющейся матрицей 8х16, содержащей 4-битовые элементы (числа от 0 до 15). Основной шаг криптопреобразования - оператор, определяющий преобразование 64-битового блока. Дополнительным параметром этого оператора является 32-битный блок, в качестве которого используется какой - либо элемент ключа.
Алгоритм основного шага криптопреобразования
Рисунок 3.1 Схема основного шага криптопреобразования алгоритма ГОСТ 28147-89.
Определяет исходные данные для основного шага криптопреобразования: N -преобразуемый 64-битовый блок данных, в ходе выполнения шага его младшая (N 1 ) и старшая (N 2 ) части обрабатываются как отдельные 32-битовые целые числа без знака. Таким образом, можно записать N=(N 1 ,N 2 ). X - 32-битовый элемент ключа;
Сложение с ключом. Младшая половина преобразуемого блока складывается по модулю 2 32 с используемым на шаге элементом ключа, результат передается на следующий шаг;
Поблочная замена. 32-битовое значение, полученное на предыдущем шаге, интерпретируется как массив из восьми 4-битовых блоков кода: S=(S 0 ,S 1 ,S 2 ,S 3 ,S 4 ,S 5 ,S 6 ,S 7 ). Далее значение каждого из восьми блоков заменяется на новое, которое выбирается по таблице замен следующим образом: значение блока S i заменяется на S i -тый по порядку элемент (нумерация с нуля) i-того узла замен (т.е. i-той строки таблицы замен, нумерация также с нуля). Другими словами, в качестве замены для значения блока выбирается элемент из таблицы замен с номером строки, равным номеру заменяемого блока, и номером столбца, равным значению заменяемого блока как 4-битового целого неотрицательного числа.
Циклический сдвиг на 11 бит влево. Результат предыдущего шага сдвигается циклически на 11 бит в сторону старших разрядов и передается на следующий шаг. На схеме алгоритма символом ? 11 обозначена функция циклического сдвига своего аргумента на 11 бит в сторону старших разрядов.
Побитовое сложение: значение, полученное на шаге 3, побитно складывается по модулю 2 со старшей половиной преобразуемого блока.
Сдвиг по цепочке: младшая часть преобразуемого блока сдвигается на место старшей, а на ее место помещается результат выполнения предыдущего шага.
Полученное значение преобразуемого блока возвращается как результат выполнения алгоритма основного шага криптопреобразования.
- цикл выработки имитовставки (0123456701234567)
Для каждого элемента данных выполняется основной шаг криптографического преобразования с элементами ключа, порядок Базовые циклы построены из основных шагов криптографического преобразования. Существует всего три базовых цикла, различающиеся порядком следования ключевых элементов:
- цикл зашифрования (01234567012345670123456776543210)
- цикл расшифрования (01234567765432107654321076543210)
следования которых приведен выше. Для циклов шифрования левая и правая половины блока меняются местами, для цикла выработки имитовставки - нет.
Предусматривается три режима шифрования данных: простая замена, гаммирование, гаммирование с обратной связью и один дополнительный редим формирования имитовставки.
Рис. 4. Алгоритм зашифрования (расшифрования) данных в режиме гаммирования.
Режим простой замены - наиболее простой. Блоки данных по 64 бит проходят базовый цикл зашифрования (расшифрования). Результат - зашифрованная (расшифрованная информация). При таком режиме блоки независимы.
Режим гаммирования - чтобы блоки информации были зависимы друг от друга используется рекуррентный генератор последовательности чисел, который инициализируется синхропосылкой, прошедшей цикл зашифрования. Схема алгоритма шифрования в режиме гаммирования приведена на рисунке 3.2, ниже изложены пояснения к схеме:
Определяет исходные данные для основного шага криптопреобразования: T о(ш) - массив открытых (зашифрованных) данных произвольного размера, подвергаемый процедуре зашифрования (расшифрования), по ходу процедуры массив подвергается преобразованию порциями по 64 бита; S - синхропосылка, 64-битный элемент данных, необходимый для инициализации генератора гаммы;
Начальное преобразование синхропосылки, выполняемое для ее «рандомизации», то есть для устранения статистических закономерностей, присутствующих в ней, результат используется как начальное заполнение РГПЧ;
Один шаг работы РГПЧ, реализующий его рекуррентный алгоритм. В ходе данного шага старшая (S 1 ) и младшая (S 0 ) части последовательности данных вырабатываются независимо друг от друга;
Гаммирование. Очередной 64-битный элемент, выработанный РГПЧ, подвергается процедуре зашифрования по циклу 32-З, результат используется как элемент гаммы для зашифрования (расшифрования) очередного блока открытых (зашифрованных) данных того же размера.
Результат работы алгоритма - зашифрованный (расшифрованный) массив данных.
Для разработки программы были выбраны языки программирования Delphi 5.0 (Object Pascal) - разработка удобного интерфейса и встроенный ассемблер - для написания, собственно, алгоритмов шифрования.
GOST, K1, K2 - реализация алгоритмов ГОСТ 28147-89 и тестовых методов шифрования.
CodingTools, CodingUnit - модули, реализующие вспомогательные алгоритмы и типы данных.
OptionsUnit, ProgressUnit, TestUnit - модули, описывающие интерфейс с пользователем.
Hazard - основной модуль программы. Создает окна и запускает программу.
Программа использует три формы (окна), созданные с помощью среды Delphi.
Основная форма TestForm, содержит список файлов и кнопки запуска процесса шифрования, выхода, вызова окна настроек, добавления и очистки списка (рисунок 4.1).
Окно настроек содержит списки поддерживаемых и применяемых методов шифрования, поле описания метода и поле ввода ключа (рисунок 4.2).
Третье окно - ProgressForm появляется при запуске процесса кодирования и состоит из двух надписей и двух индикаторов.
Модуль CodingTools содержит описание типов для 64,48 и 32-разрядных чисел и процедуры их обработки: сложение по модулю 2, &, |, кодирование по таблице, разложение на числа меньшей разрядности. Также он содержит описания параметров кодирования и тип-шаблон функции шифрования.
Модуль CodingUnit содержит список встроенных алгоритмов и общие функции: обработка командной строки, подбор функции шифрования, шифрование файла, процедуры поиска функций по имени или индексу, поиск ошибок и оповещение.
Модули методов экспортируют каждый по две процедуры - шифрование и дешифрацию блоков по 64К.
Программа работает под управлением ОС Windows 95/98/ME и требует правильной инсталляции. После инсталляции программу можно запустить из меню «Пуск» либо из командной строки эмуляции MS-DOS.
Командная строка имеет следующий вид:
Hazard.exe [/D] [путь к файлу [путь к файлу […]]]
Чтобы запустить программу в режиме шифрования или дешифрования из графической оболочки Windows нужно воспользоваться соответствующими ярлыками из меню «Программы».
Чтобы добавить файлы в список шифрования/дешифрования можно воспользоваться соответствующей кнопкой на главной панели программы, либо «перетащить» их из окна проводника Windows.
Чтобы выбрать алгоритм шифрования нужно нажать кнопку «Настройки». Появится окно со списками поддерживаемых и применяющихся методов и полем ввода ключа.
После выбора методов программа рассчитает окончательный ключ, который может быть использован для расшифровывания файлов. Можно не запоминать окончательный ключ, в таком случае необходимо запомнить ключи каждого из выбранных методов и при расшифровывании сделать соответствующие настройки.
При нажатии на кнопку запуска появится индикатор прогресса, который отобразит состояние процесса шифрования текущего файла и процесса шифрования в общем.
При дешифровании следует учитывать, что программа расшифровывает файлы только с расширением .crf.
В результате курсовой работы была разработана первая версия программы, осуществляющей шифрование информации. В дальнейшем предполагается разработка и усовершенствование комплекса программ, обеспечивающих защиту информации от несанкционированного доступа. В процессе разработки были закреплены навыки шифрования информации по ГОСТ 28147-89 и программирования на ассемблере.
1. Конспект лекций по курсу «Кодирование и защита информации»
2. Андрей Винокуров. «Алгоритм шифрования ГОСТ 28147-89, его использование и реализация для компьютеров платформы Intel x86»
3. Михаил Гук. «Процессоры Pentium II, Pentium Pro и просто Pentium», Санкт-Петербург «Питер», 1999 г.
TestUnit in 'TestUnit.pas' {MainForm},
OptionsUnit in 'OptionsUnit.pas' {OptionsForm},
ProgressUnit in 'ProgressUnit.pas' {ProgressForm},
if FindWindow('TMainForm','Кодирование')<>0 then
Application.Title := '[LG] Hazard';
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TOptionsForm, OptionsForm);
Application.CreateForm(TProgressForm, ProgressForm);
MainForm.DoCommandLine(String(system.CmdLine));
MessageBox(0,'Приложение уже запущено','Ошибка',MB_ICONSTOP+MB_OK);
function Coding_K1(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
function DeCoding_K1(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
procedure K1Coding64bits(A: word64; var R: word64; K1:word64);
procedure K1DeCoding64bits(A: word64; var R: word64; K1:word64);
function Coding_K1(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
function DeCoding_K1(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
function Coding_K2(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
function DeCoding_K2(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
procedure K2Coding64bits(A: word64; var R: word64; B: byte);
procedure K2DeCoding64bits(A: word64; var R: word64; B: Byte);
function Coding_K2(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
function DeCoding_K2(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
function Coding_K3(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
function DeCoding_K3(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
procedure K3Coding64bits(A: word64; var R: word64; B: byte);
procedure K3DeCoding64bits(A: word64; var R: word64; B: Byte);
function Coding_K3(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
function DeCoding_K3(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
procedure BitBtn5Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure UsedMethodsBoxClick(Sender: TObject);
procedure DirectionGroupExit(Sender: TObject);
procedure KeyEditExit(Sender: TObject);
procedure WayCountEditExit(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TOptionsForm.BitBtn5Click(Sender: TObject);
procedure TOptionsForm.FormCreate(Sender: TObject);
MethodsBox.Items.Add(Methods[i].MethodName);
procedure TOptionsForm.BitBtn4Click(Sender: TObject);
for i:=1 to QolMethods do Used[i]:=false;
procedure TOptionsForm.BitBtn3Click(Sender: TObject);
If UsedMethodsBox.ItemIndex=-1 then exit;
Used[MethodIndex(UsedMethodsBox.Items.Strings[UsedMethodsBox.ItemIndex])]:=false;
UsedMethodsBox.Items.Delete(UsedMethodsBox.ItemIndex);
If UsedMethodsBox.Items.Count=0 then EnableKeys(False);
procedure TOptionsForm.BitBtn2Click(Sender: TObject);
If MethodsBox.ItemIndex=-1 then exit;
if UsedMethodsBox.Items.IndexOf(Methods[MethodsBox.ItemIndex+1].MethodName)=-1 then
UsedMethodsBox.Items.Add(Methods[MethodsBox.ItemIndex+1].MethodName);
Used[MethodsBox.ItemIndex+1]:=true;
UsedMethodsBox.ItemIndex:=UsedMethodsBox.Items.Count-1;
procedure TOptionsForm.BitBtn1Click(Sender: TObject);
UsedMethodsBox.Items.Add(Methods[i].MethodName);
procedure TOptionsForm.UsedMethodsBoxClick(Sender: TObject);
(UsedMethodsBox.Items.Count=0) then
i:=MethodIndex(UsedMethodsBox.Items.Strings[UsedMethodsBox.ItemIndex]);
DirectionGroup.ItemIndex:=UsedMethods[i].Direction-1;
KeyEdit.MaxLength:=Methods[i].KeyMaxLength;
KeyEdit.Text:=String(UsedMethods[i].Key);
WayCountEdit.Value:=UsedMethods[i].WayCount;
DescMemo.Lines.Append(Methods[i].MethodDescription);
procedure TOptionsForm.DirectionGroupExit(Sender: TObject);
(UsedMethodsBox.Items.Count=0) then Exit;
i:=MethodIndex(UsedMethodsBox.Items.Strings[UsedMethodsBox.ItemIndex]);
UsedMethods[i].Direction:=DirectionGroup.ItemIndex+1;
procedure TOptionsForm.KeyEditExit(Sender: TObject);
(UsedMethodsBox.Items.Count=0) then
i:=MethodIndex(UsedMethodsBox.Items.Strings[UsedMethodsBox.ItemIndex]);
StrPCopy(UsedMethods[i].Key,KeyEdit.Text);
procedure TOptionsForm.WayCountEditExit(Sender: TObject);
(UsedMethodsBox.Items.Count=0) then
i:=MethodIndex(UsedMethodsBox.Items.Strings[UsedMethodsBox.ItemIndex]);
UsedMethods[i].WayCount:=WayCountEdit.Value;
procedure TOptionsForm.FormClose(Sender: TObject;
if StrLen(UsedMethods[i].Key)Methods[i].KeyMaxLength then
ShowMessage(Methods[i].MethodName+': '+Methods[i].KeyMaxMessage);
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
procedure UpdateProgress(fn: String;perc:integer;Cap:String);
procedure InitProgress(qol:integer;Cap:String);
procedure TProgressForm.EndProcess;
procedure TProgressForm.UpdateProgress;
ProgressForm.Caption:=Cap+' - '+inttostr(round(PBAll.Position*100/PBAll.Max))+'%';
procedure TProgressForm.InitProgress;
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ActnList, ExtCtrls, ComCtrls, ToolWin, Grids, Outline, DirOutln,
procedure FileDrop(var Msg: TWMDropFiles); message WM_DROPFILES;
procedure AddCmdLine(var msg: TMessage); message WM_USER;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure DoCommandLine(S: String);
procedure StopDblClick(Sender: TObject);
procedure GoDblClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
uses CodingUnit, OptionsUnit, ProgressUnit;
s:=concat(s,StrPas(UsedMethods[i].Key));
s:=concat(s,Format('%2d',[strlen(UsedMethods[i].Key)+k*5+UsedMethods[i].Direction]));
s:=concat(s,Format('%2d',[strlen(UsedMethods[i].Key)+k*4+UsedMethods[i].WayCount]));
for i:=1 to length(s) do if s[i]=' ' then s[i]:='-';
for i:=1 to length(s) do if s[i]='-' then s[i]:='0';
StrPCopy(UsedMethods[t].Key,copy(s,1,l));
UsedMethods[t].Direction:=strtoint(copy(s,1,2))-l-k*5;
UsedMethods[t].WayCount:=strtoint(copy(s,1,2))-l-k*4;
Procedure TMainForm.DoCommandLine(S: String);
StaticText1.Caption:='Введите ключ';
procedure TMainForm.AddCmdLine(var msg: TMessage);
// GlobalGetAtomName(msg.WParam,p,1023);
procedure TMainForm.FormCreate(Sender: TObject);
if Decode then BitBtn1.Enabled:=false;
procedure TMainForm.BitBtn1Click(Sender: TObject);
procedure TMainForm.StopDblClick(Sender: TObject);
if CompareText(Items.Strings[i],Items.Strings[k])=0 then
procedure TMainForm.FileDrop(var msg:TWMDropFiles);
count:=DragQueryFile(Msg.Drop,$ffffffff,nil,0);
if (attr and FILE_ATTRIBUTE_DIRECTORY) = 0 then
if Pos('.crf',lowercase(s))<>0 then
for i:=1 to QolMethods do if used[i] then result:=false;
procedure TMainForm.GoDblClick(Sender: TObject);
ShowMessage('Вы забыли ввести ключ');
ShowMessage('Введен неправильный ключ');
ShowMessage('Не выбрано ни одного метода');
ProgressForm.InitProgress(files.Items.Count,'Декодирование');
DoDecoding(files.items.strings[i]);
ShowMessage('Не выбрано ни одного метода');
ProgressForm.InitProgress(files.Items.Count,'Кодирование');
procedure TMainForm.BitBtn2Click(Sender: TObject);
T.OpenKey('\Software\Laynik Group\[LG] Hazard Encrypter 2000',True);
Open.InitialDir:=T.ReadString('Lastpath');
files.Items.AddStrings(Open.files);
T.WriteString('Lastpath',ExtractFileDir(Open.Files.Strings[Open.Files.Count-1]));
procedure TMainForm.BitBtn3Click(Sender: TObject);
if (files.Items.Count=0) or (files.ItemIndex=-1) then exit;
files.Items.Delete(files.ItemIndex);
procedure TMainForm.BitBtn6Click(Sender: TObject);
uses Classes,SysUtils,Dialogs,CodingTools,K1,K2,K3,GOST;
function Coding_Kir(Buf: Pointer; Size: LongInt; Param: TCodingParameters): Integer;
function DeCoding_Kir(Buf: Pointer; Size: LongInt; Param: TCodingParameters): Integer;
function DoCoding(S: String): integer;
function DoDecoding(S: String): integer;
function MethodIndex(const S: String):integer;
function MethodByChar(const C: Char):integer;
Methods:array[1..QolMethods] of TCodingFunction =
((MethodName:'ГОСТ 28147-89 (ПЗ)';MethodKey:'G';MethodProc:Coding_GOST;MethodDecProc:Coding_GOST;
KeyMinLength:32;KeyMaxLength:32;KeyMinMessage:'Ключ должен быть длиной 32 символa';KeyMaxMessage:'Ключ должен быть длиной 32 символa';
MethodDescription:'Кодирование по ГОСТ 28147-89 (простая замена)'),
(MethodName:'ГОСТ 28147-89 (Г)';MethodKey:'G';MethodProc:Coding_GOST;MethodDecProc:Coding_GOST;
KeyMinLength:32;KeyMaxLength:32;KeyMinMessage:'Ключ должен быть длиной 32 символa';KeyMaxMessage:'Ключ должен быть длиной 32 символa';
MethodDescription:'Кодирование по ГОСТ 28147-89 (гаммирование)'),
(MethodName:'К1';MethodKey:'K';MethodProc:Coding_K1;MethodDecProc:DeCoding_K1;
KeyMinLength:8;KeyMaxLength:8;KeyMinMessage:'Ключ должен быть длиной 8 символов';KeyMaxMessage:'Ключ должен быть длиной 8 символов';
MethodDescription:'Сумма по модулю два'),
(MethodName:'К2';MethodKey:'L';MethodProc:Coding_K2;MethodDecProc:DeCoding_K2;
KeyMinLength:3;KeyMaxLength:8;KeyMinMessage:'Минимальная длина ключа - 3 символа';KeyMaxMessage:'Ключ должен быть длиной менее 9 символов';
MethodDescription:'Циклический сдвиг'));
UsedMethods:array[1..QolMethods] of TCodingParameters =
Used: array[1..QolMethods] of boolean = (false,
function MethodIndex(const S: String):integer;
if CompareStr(S,Methods[i].MethodName)=0 then
function MethodByChar(const C: Char):integer;
function GenerateFileName(s:string):string;
function GenerateDecFileName(s:string):string;
If Pos('.CRF',UpperCase(s))<>0 then delete(s,Pos('.CRF',uppercase(s)),4);
function DoCoding(S: String): integer;
ShowMessage('Не хватает памяти под буфер');
ProgressForm.UpdateProgress(s1,0,'Кодирование ');
for j:=size to ls-1 do PCHAR(buf)[j]:=#0;
if Used[i] then Methods[i].MethodProc(buf,ls,UsedMethods[i]);
if fs<>0 then pr:=round(filepos(f)*100 / fs) else pr:=round((100*i) / qolmethods);
ProgressForm.UpdateProgress(s1,pr,'Кодирование ');
if ks<>0 then blockwrite(outp,ks,1);
else ShowMessage('Ошибка обращения к '+S);
function DoDecoding(S: String): integer;
ShowMessage('Не хватает памяти под буфер');
ProgressForm.UpdateProgress(s1,0,'Декодирование ');
if Used[i] then Methods[i].MethodDecProc(buf,size,UsedMethods[i]);
if fs<>0 then pr:=round(filepos(f)*100 / fs) else pr:=round((100*i) / qolmethods);
ProgressForm.UpdateProgress(s1,pr,'Декодирование ');
else ShowMessage('Ошибка обращения к '+S);
function coding_GOST(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
function coding_GOSTSE(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
ExchTable: array [0..7,0..15] of byte =
((2,5,3,7,12,1,15,14,9,4,6,8,10,0,11,13),
(8,3,1,9,10,15,2,14,13,5,11,7,0,12,4,3),
(15,1,14,2,13,3,12,4,11,5,10,0,6,9,7,8),
(1,3,5,7,9,2,4,6,8,10,11,13,15,12,14,0),
(1,4,7,10,13,2,5,8,11,0,14,3,6,9,12,15),
(1,5,9,13,2,6,10,0,14,3,7,11,15,4,8,12),
(1,6,11,2,7,12,0,3,8,13,4,9,14,5,10,15),
(1,7,0,13,2,8,14,3,9,15,4,10,5,11,6,12));
procedure BaseStep(var N:word64; X: longword);
s.v32[0]:=(N.v32[0] + X) mod $100000000;
//Замена по таблице младшие или старшие 4 бита
s.v8[i]:=(ExchTable[i*2,(s.v8[i] and $0F)]) or (ExchTable[i*2+1,((s.v8[i] shr 4) and $0F)] shl 4);
procedure SEcoding64bits(var N:word64);
for j:=0 to 7 do BaseStep(N,Key[j]);
for j:=7 downto 0 do BaseStep(N,Key[j]);
procedure SEdecoding64bits(var N:word64);
for j:=0 to 7 do BaseStep(N,Key[j]);
for j:=7 downto 0 do BaseStep(N,Key[j]);
procedure GOST_G_coding(var T: pointer; S:word64; Size:word);
S.v32[0]:=(S.v32[0]+C1) mod $100000000;
S.v32[1]:=((S.v32[1]+C2-1) mod ($ffffffff)) +1;
word64(Pointer(LongWord(T)+LongWord((i-1)*8))^).v32[0]:=
word64(Pointer(LongWord(T)+LongWord((i-1)*8))^).v32[0] xor S.v32[0];
word64(Pointer(LongWord(T)+LongWord((i-1)*8))^).v32[1]:=
word64(Pointer(LongWord(T)+LongWord((i-1)*8))^).v32[1] xor S.v32[1];
function coding_GOST(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
Key[i]:=(BYTE(Param.Key[i*4+3]) shr 24) or (BYTE(Param.Key[i*4+2]) shr 16) or
(BYTE(Param.Key[i*4+1]) shr 8) or (BYTE(Param.Key[i*4]));
s.v32[i mod 2]:=s.v32[i mod 2]+Key[i];
function coding_GOSTSE(Buf: Pointer; Size: LongWord; Param: TCodingParameters):Integer;
Key[i]:=(BYTE(Param.Key[i*4+3]) shr 24) or (BYTE(Param.Key[i*4+2]) shr 16) or
(BYTE(Param.Key[i*4+1]) shr 8) or (BYTE(Param.Key[i*4]));
SEcoding64bits(word64(Pointer(LongWord(Buf)+LongWord((i-1)*8))^));
Исследование понятия и классификации видов и методов несанкционированного доступа. Определение и модель злоумышленника. Организация защиты информации. Классификация способов защиты информации в компьютерных системах от случайных и преднамеренных угроз. реферат [115,1 K], добавлен 16.03.2014
Средства обеспечения информационной безопасности. Возможные каналы утечки информации. Защита данных с помощью шифрования. Обзор видов технических устройств, защищающих системы, и принцип их действия. Программно-аппаратный комплекс средств защиты. курсовая работа [475,7 K], добавлен 01.03.2015
Исторические аспекты возникновения и развития информационной безопасности. Средства обеспечения защиты информации и их классификация. Виды и принцип действия компьютерных вирусов. Правовые основы защиты информации от несанкционированного доступа. презентация [525,3 K], добавлен 09.12.2015
Необходимость и потребность в защите информации. Виды угроз безопасности информационных технологий и информации. Каналы утечки и несанкционированного доступа к информации. Принципы проектирования системы защиты. Внутренние и внешние нарушители АИТУ. контрольная работа [107,3 K], добавлен 09.04.2011
Защита от несанкционированного доступа. Классификация автоматизированных систем и требования по защите информации. Средство защиты информации от несанкционированного доступа Secret Net 6.0. Разработка интерфейсной части программы, целевых функций. дипломная работа [1,2 M], добавлен 20.12.2013
Защита данных, хранящихся на диске, от несанкционированного доступа путем их шифрования. Основные этапы процедуры шифрования и расшифровки файлов. Архивирование файла с паролем. Назначение и функции технологии шифрования BitLocker и её отличия от EFS. контрольная работа [743,4 K], добавлен 14.03.2019
Биометрические системы защиты от несанкционированного доступа к информации. Система идентификации личности по папиллярному рисунку на пальцах, голосу, радужной оболочке, геометрии лица, сетчатке глаза человека, рисунку вен руки. Пароли на компьютере. презентация [395,2 K], добавлен 28.05.2012
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Защита информации от несанкционированного доступа курсовая работа. Программирование, компьютеры и кибернетика.
Отчет по практике по теме Изучение гостиничной индустрии
Декабрьское Сочинение Что Значит Быть Самим Собой
Словообразовательные Словари Реферат
Контрольная Работа По Химии Основные Классы
Курсовая Работа Внешняя Экономическая Деятельность Предприятия Шпаргалка
Мое Отношение К Вакцинации Эссе
Сочинение: Образ автора и главного героя в романе Евгений Онегин
Реферат На Тему Здоровый Образ Жизни Залог Долголетия
Реферат: Сегментация рынка керамической плитки на примере ОАО «Керамин». Скачать бесплатно и без регистрации
Контрольная Работа Основы Кинематики Вариант 1 Ответы
Реферат: Диференціальні операції в скалярних і векторних полях. Основні поняття і формули
Реферат: Immigration Problem In The US Essay Research
Сочинение: Какая мысль мне кажется главной в повести А. С. Пушкина Станционный смотритель
Курсовая Работа На Тему Теоретическая Оценка Возможности Работы Автомобиля В Заданных Условиях Эксплуатации
Эссе Окружающий Мир
Реферат: Untitled Essay Research Paper The Mortal MockingbirdA
Реферат: Пётр Первый 4
Курсовая Работа Система Менеджмента Безопасности Пищевой Продукции
Контрольная работа по теме Взаимодействие с гиперактивными детьми
Дневник По Реанимации Практика Заполненный
Использование информационных технологий при изучении курса "Основы правоведения" - Государство и право научная работа
Библиографическое издание Российской книжной палаты как источник информации - Литература реферат
Приемы самоконтроля работы на уроках математики при формировании рефлексивных умений учеников начальной школы - Педагогика курсовая работа


Report Page