Главная страница
Навигация по странице:

  • Лабораторная работа по дисциплине: «Информационная безопасность и защита информации»Вариант №21

  • Цель работы

  • Шифрование алгоритмом Трисемуса. Лабораторная работа по дисциплине Информационная безопасность и защита информации


    Скачать 1.05 Mb.
    НазваниеЛабораторная работа по дисциплине Информационная безопасность и защита информации
    АнкорШифрование алгоритмом Трисемуса
    Дата10.02.2022
    Размер1.05 Mb.
    Формат файлаdoc
    Имя файлаMaksimov_lb01.doc
    ТипЛабораторная работа
    #356923




    Министерство образования и науки Российской Федерации

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

    высшего образования

    «Брянский государственный инженерно-технологический университет»
    Кафедра «Информационные технологии»

    Лабораторная работа

    по дисциплине: «Информационная безопасность и защита информации»
    Вариант №21

    Шифрование методом алгоритм Трисемуса

    ЛР-02068025-09.03.02-037.22

    Автор работы: ______________ Максимов Сергей Алексеевич

    Группа: ИСТ-401 № Зачётной книжки: 18-2.037

    Руководитель работы ______________ к.т.н., доц. Б. Н. Прусс

    Нормоконтроль ______________ к.т.н., доц. Б. Н. Прусс

    Доступ к защите: «__»_________ ______________ к.т.н., доц. Б. Н. Прусс

    Дата защиты: «__»_________ ______________ Оценка _____________

    Брянск 2022

    СОДЕРЖАНИЕ




    1. ИНДИВИДУАЛЬНОЕ ЗАДАНИ 3

    2. РЕАЛИЗАЦИЯ ПРОГРАММЫ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ 4



    1. ИНДИВИДУАЛЬНОЕ ЗАДАНИ




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

    Индивидуальное задание: разработка программы для шифрования сообщений методом Трисемуса. Алфавит 10 символов (числа от 0 до 9).

    2. РЕАЛИЗАЦИЯ ПРОГРАММЫ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ




    При выполнении работы был использован был использован язык программирования TypeScript и JavaScript-библиотека с открытым исходным кодом для разработки SPA (Single Page Application) приложений.

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



    Рисунок 1 - Пример работы программы
    В листинге 1 можно ознакомиться с кодом программы. Данный программный код принимает и зашифровывает введенное нами слово.

    Листинг 1 – App.tsx

    const [word, setWord] = useState('0548');
    const [shifr, setShifr] = useState('6436');
    const [maxWidth, setmaxWidth] = useState('2');
    const [maxHeight, setmaxHeight] = useState('5')

    const [answer, setAnswer] = useState('0000');
    const [table, setTable] = useStatestring>>>();

    const handleSubmit = (event:any) => {
    event.preventDefault();

    let alphabet:Array<string> = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
    keyWordArr: Array<string> = shifr.split(''),
    shifrTable: Arraystring>> = [];

    const setShifrTable = () => {
    let newInputText:Array<string> = word.split(''),
    buffResult = [];

    for(let i = 0; i < newInputText.length; i++){
    for(let i1 = 0; i1 < +maxHeight; i1++){
    let flag:boolean = false;
    for(let j = 0; j < +maxWidth; j++) {
    if(newInputText[i] === shifrTable[i1][j]) {
    if(i1 < +maxHeight - 1) {
    buffResult[i] = shifrTable[i1 + 1][j];
    } else {
    buffResult[i] = shifrTable[0][j];
    }
    flag = true;
    break;
    }
    }
    if (flag) break;
    }
    }
    return buffResult.join('')
    }


    const getShifrText = () => {
    let buff:Array<string> = keyWordArr.concat(alphabet);
    buff = buff.filter((i, index) => buff.indexOf(i) === index)
    for(let i = 0; i < +maxHeight; i++){
    // @ts-ignore
    shifrTable.push(i);
    shifrTable[i] = []
    for(let j = 0; j < +maxWidth; j++){
    shifrTable[i].push(buff[0]);
    buff.shift();
    }
    }


    console.log(shifrTable)
    return shifrTable;
    }
    setTable(getShifrText())
    setAnswer(setShifrTable())
    }
    Данный алгоритм разбит на две части. Первая часть разбивает строку с ведённым ключом на строковый массив, соединяет полученный массив с «алфавитом» и убирает повторяющиеся числа. После выполнения фильтрации с помощью вложенного цикла for заполняется двухмерный массив. Вторая часть программы разбивает строку с веденным словом для шифровки на строковый массив после чего благодаря вложенным циклам for производится шифровка, после работы цикла мы получаем новый массив с зашифрованным числом. В конце массив преобразуется в строковое значение.



    написать администратору сайта