Курсовая работа по дисциплине: «Методы и средства защиты информации»




Скачать 124.31 Kb.
НазваниеКурсовая работа по дисциплине: «Методы и средства защиты информации»
Дата публикации08.08.2013
Размер124.31 Kb.
ТипКурсовая
vbibl.ru > Право > Курсовая
Федеральное агентство по образованию РФ

Государственное образовательное учреждение

высшего профессионального образования

Тульский государственный университет

кафедра «ЭВМ»

Контрольно-курсовая работа

по дисциплине:

«Методы и средства защиты информации»

Вариант №3

Выполнил:

студент гр. 250261

Косухин К.Ю.

Проверил:

Ивутин А.Н.

Тула 2010

Оглавление


Задание 3

Выполнение задания 4

Введение 4

Сдвиговый регистр с линейной обратной связью 4

Исходный код программы 4

Результат работы программы 7


Задание


Разработать программу, реализующую потоковый шифр, используя:

  1. генератор  "стоп-пошел"

  2. сдвиговый регистр с линейной обратной связью

  3. длина сдвигового регистра 16 бит


^

Выполнение задания

Введение


Шифрование выбираем методом XOR, так как он быстр и работает для шифрования и восстановления информации.

Для реализации алгоритма будем использовать Borland C++ Builder 6.

Так как по заданию длина сдвигового регистра равна 16 бит, то генератор случайных чисел будет работать с типом данных unsigned short
^

Сдвиговый регистр с линейной обратной связью


Регистр сдвига с линейной обратной связью (РСЛОС, англ. Linear feedback shift register, LFSR) — один из методов генерации псевдослучайных чисел.

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

Для РСЛОС функция обратной связи представляет собой сумму по модулю 2 (xor) некоторых битов регистра.
^

Исходный код программы


//---------------------------------------------------------------------------

#include

#include

#include

#pragma hdrstop
using namespace std;
//---------------------------------------------------------------------------
bool TryStringToUShort(const char* stringValue, unsigned short& value) {

istringstream iss(stringValue);

return !(iss>>std::dec>>value).fail();

}
// регистр сдвига с линейной обратной связью

// конфигурация Галуа

class LFSR {

unsigned short value;

unsigned short bit;

unsigned short period;

public:

LFSR(unsigned short seed) {

value = seed;

period = 0;

}
unsigned short Next() {

value = (value >> 1) ^ (-(value & (unsigned short)1u) & 0xB400u);

period++;

return value;

}

};
class StepAndGo {

LFSR lfsr0Generator;

unsigned short lfsr0Value;

LFSR lfsr1Generator;

unsigned short lfsr1Value;

LFSR lfsr2Generator;

unsigned short lfsr2Value;

public:

StepAndGo(unsigned short lfsr0Seed, unsigned short lfsr1Seed, unsigned short lfsr2Seed)

: lfsr0Generator(lfsr0Seed), lfsr1Generator(lfsr1Seed), lfsr2Generator(lfsr2Seed) {

lfsr0Value = lfsr0Seed;

lfsr1Value = lfsr1Seed;

lfsr2Value = lfsr2Seed;

}

unsigned short Generate() {

lfsr2Value = lfsr2Generator.Next();

if(lfsr2Value & 1)

lfsr1Value = lfsr1Generator.Next();

else

lfsr0Value = lfsr0Generator.Next();

return lfsr0Value ^ lfsr1Value;

}

};
union ShortBuf {

char bytes[2];

unsigned short value;

};
void PrintUsage() {

cout<<"arguments: {InFile} {OutFile} {key1} {key2} {key3}"<<endl

<<"where keys is numbers in range from 0 to 65535"<<endl;

}
void Xor(ifstream& inFile, ofstream& outFile, StepAndGo& generator) {

ShortBuf buffer;

while(!inFile.eof()) {

int length = inFile.readsome(buffer.bytes, sizeof(ShortBuf));

if(length == 0)

break;

buffer.value ^= generator.Generate();

if(length == 1) // округляем до одного байта

buffer.value &= (unsigned short)0xffffu;

outFile.write(buffer.bytes, length);

}

}
#pragma argsused

int main(int argc, char* argv[]) {

if(argc < 6) {

PrintUsage();

return 1;

}

unsigned short key1, key2, key3;

if(!TryStringToUShort(argv[3], key1)) {

cout<<"key1 can not be parsed"<<endl;

return 1;

} else if(!TryStringToUShort(argv[4], key2)) {

cout<<"key2 can not be parsed"<<endl;

return 1;

} else if(!TryStringToUShort(argv[5], key3)) {

cout<<"key3 can not be parsed"<<endl;

return 1;

}
ifstream inFile(argv[1]);

if(!inFile) {

cout<<"There is problem with opening {InFile}"<<endl;

return 1;

}

ofstream outFile(argv[2]);

if(!outFile) {

cout<<"There is problem with opening {OutFile}"<<endl;

return 1;

}

Xor(inFile, outFile, StepAndGo(key1, key2, key3));

inFile.close();

outFile.close();

return 0;

}

//---------------------------------------------------------------------------
^

Результат работы программы


Имеем входной файл «test.txt» с текстом:

он откинулся на спинку своего трона

файл размером 35 байт.

Запускаем программу из командной строки:

Project2.exe test.txt out.txt 1 2 3

В выходнойм файле «out.txt» имеем:

он!Zу°йАrэ°фЃи1"˜о]н^G”«VГїО46иыиm

файл размером 35 байт.

Пробуем расшифровать файл с неверным ключом:

Project2.exe out.txt bad.txt 3 2 1

На выходе в файле «bad.txt» имеем:

нY#ґсЗkы°аRъуп‹!Fп±н±Gв«!wИ”ШУb +c

Теперь пробуем расшифровать файл с правильным ключом:

Project2.exe out.txt result.txt 1 2 3

На выходе имеем файл result.txt:

он откинулся на спинку своего трона

размером 35 байт

Добавить документ в свой блог или на сайт

Похожие:

Курсовая работа по дисциплине: «Методы и средства защиты информации» iconКурсовая работа по дисциплине «Информатика» На тему «Криптографические...
На тему «Криптографические методы защиты информации и их использование при работе в сети»

Курсовая работа по дисциплине: «Методы и средства защиты информации» iconРабочая программа (syllabus) по дисциплине «Методы и средства защиты информации»

Курсовая работа по дисциплине: «Методы и средства защиты информации» iconКурсовая работа по информатике на тему: «Криптографические методы защиты информации»
И чем сильней проявляется указанный эффект, тем больше потенциальные убытки от злоупотреблений в информационной сфере, и тем больше...

Курсовая работа по дисциплине: «Методы и средства защиты информации» iconВыбираем средства защиты персональных данных
Выбор сертифицированных средств защиты информации традиционно сводится к выбору между наложенными комплексными средствами защиты...

Курсовая работа по дисциплине: «Методы и средства защиты информации» iconКурсовая работа по дисциплине «Статистика» На тему: «Статистические методы изучения инвестиций»

Курсовая работа по дисциплине: «Методы и средства защиты информации» iconРоссийской федерации иркутский государственный технический университет
Методические указания и задание для выполнения контрольной работы по курсу «Методы и средства защиты компьютерной информации» для...

Курсовая работа по дисциплине: «Методы и средства защиты информации» iconКурсовая работа по дисциплине "Статистика" на тему: «Статистические...

Курсовая работа по дисциплине: «Методы и средства защиты информации» iconКурсовая работа по дисциплине «Статистика»
Статистические методы анализа среднего уровня и вариации производственных показателей

Курсовая работа по дисциплине: «Методы и средства защиты информации» iconКонтрольная работа по дисциплине: Безопасность жизнедеятельности...
Методы и средства контроля среды обитания: контактные, дистанционные и биологические методы оценки качества воздуха, воды и почвы...

Курсовая работа по дисциплине: «Методы и средства защиты информации» iconКурсовая работа по дисциплине «информатике» На тему: «Средства и...
При выборе текстового редактора для работы нужно учитывать многие факторы: и сложность документов, и масштаб (объемы) текстов, и...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
vbibl.ru
Главная страница