Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Лабораторна робота з «Основи інформаційної безпеки»

Автор:   •  Июнь 10, 2023  •  Лабораторная работа  •  6,519 Слов (27 Страниц)  •  147 Просмотры

Страница 1 из 27

Міністерство освіти і науки України

Вінницький національний технічний університет

Кафедра програмного забезпечення

Лабораторна робота №1

з дисципліни «Основи інформаційної безпеки»

        

Виконав:

ст. гр. 3ПІ-19б, Баліцкий Ю.В.

Перевірив: Тужанський С.Є.

Вінниця 2022р.

Тема: Контроль цілісності програм і даних

Мета: Ознайомитись на практиці з методами перевірки цілісності програм і даних.

Варіант 1

Задача: Розробити програму для формування контрольних сум з використанням CRC-кодів.

Номер варіанту

Код

Многочлен g(Х), що породжує

1

CRC-4

1 + x + x4, використовується в ISDN

Лістинг програми

#include<stdio.h>

#include<iostream>

#include<math.h>

#include <fstream>

#include <string.h>

using namespace std;

string Remainder, Codeword; char a[32], sum[32], comp[32];

/////

void checksum2(char checksum[4]) {

    char carr = '0';

    for (int t = 3; t >= 0; t--) {

        if (checksum[t] == '0' && sum[t] == '0' && carr == '0')

        {

            sum[t] = '0';

        }

        else if (checksum[t] == '0' && sum[t] == '1' && carr == '0')

        {

            sum[t] = '0';

        }

        else if (checksum[t] == '1' && sum[t] == '0' && carr == '0')

        {

            sum[t] = '0';

        }

        else if (checksum[t] == '1' && sum[t] == '1' && carr == '0')

        {

            sum[t] = '0'; carr = '1';

        }

        else if (checksum[t] == '0' && sum[t] == '0' && carr == '1')

        {

            sum[t] = '1';

        }

        else if (checksum[t] == '0' && sum[t] == '1' && carr == '1')

        {

            sum[t] = '0'; carr = '1';

        }

        else if (checksum[t] == '1' && sum[t] == '0' && carr == '1')

        {

            sum[t] = '0'; carr = '1';

        }

        else if (checksum[t] == '1' && sum[t] == '1' && carr == '1')

        {

            sum[t] = '1'; carr = '1';

        }

    }

    if (carr == '1') {

        if (sum[3] == '0')

            sum[3] = '1';

        else if (sum[3] == '1' && sum[2] == '0')

        {

            sum[2] = '1'; sum[3] = '0';

        }

        else if (sum[3] == '1' && sum[2] == '1' && sum[1] == '0')

        {

            sum[1] = '1'; sum[2] = '0'; sum[3] = '0';

        }

        else if (sum[3] == '1' && sum[2] == '1' && sum[1] == '1' && sum[0] == '0')

        {

            sum[0] = '1'; sum[1] = '0'; sum[2] = '0'; sum[3] = '0';

        }

        else

            carr = '0';

    }

}

////

void checksum() {

    char  carry = '0';

    int i, ov = 0, count = 3;

    int length = strlen(a);

    // cout<<"\n"<<a<<" "<<length;

    if (strlen(a) == 8 || strlen(a) == 16 || strlen(a) == 24 || strlen(a) == 32) {

        for (i = length - 1; i >= length - 4; i--) {

            //cout<<endl<<a[i-4]<<endl;

            if (length == 8 && a[i] == '0' && a[i - 4] == '0' && carry == '0')

                sum[count] = '0';

            else if (length == 8 && a[i] == '0' && a[i - 4] == '1' && carry == '0')

                sum[count] = '1';

            else if (length == 8 && a[i] == '1' && a[i - 4] == '0' && carry == '0')

                sum[count] = '1';

            else if (length == 8 && a[i] == '1' && a[i - 4] == '1' && carry == '0')

            {

                sum[count] = '0'; carry = '1';

            }

            //

            else if (length == 8 && a[i] == '0' && a[i - 4] == '0' && carry == '1')

            {

                sum[count] = '1';    carry = '0';

            }

            else if (length == 8 && a[i] == '0' && a[i - 4] == '1' && carry == '1')

            {

                sum[count] = '0';   carry = '1';

            }

            else if (length == 8 && a[i] == '1' && a[i - 4] == '0' && carry == '1')

            {

                sum[count] = '0';   carry = '1';

            }

            else if (length == 8 && a[i] == '1' && a[i - 4] == '1' && carry == '1')

            {

                sum[count] = '1'; carry = '1';

            }

            /////////////////////

            else if (length == 16 && a[i] == '0' && a[i - 4] == '0' && a[i - 8] == '0' && a[i - 12] == '0' && carry == '0')

                sum[count] = '0';

...

Скачать:   txt (18.3 Kb)   pdf (126.1 Kb)   docx (35.9 Kb)  
Продолжить читать еще 26 страниц(ы) »
Доступно только на Essays.club