Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursach_ispravlenny.docx
Скачиваний:
52
Добавлен:
21.03.2018
Размер:
624.46 Кб
Скачать

7 Выполнение задания №7 «Шифрование текстового файла алгоритмом с симметричным ключом»

Шифрование — это преобразование данных в вид, недоступный для чтения без соответствующей информации (ключа шифрования).

Создадим текстовый файл при помощи блокнота, запишем в него текст «мама мыла раму» и сохраним его на диске в формате Юникод, назначив имя «shifr».

Далее считаем наш файл в MathCAD командой READBIN (Рисунок 7.1):

Рисунок 7.1 – применение команды READBIN

Теперь преобразуем десятичные значения байтов всех символов в единый двоичный массив. Для этого напишем программу перевода десятичного числа в двоичное (Рисунок 7.2) и программу перевода массива десятичных чисел в массив двоичных (Рисунок 7.3):

Рисунок 7.2 - программу перевода десятичного числа в двоичное

Рисунок 7.3 - программу перевода массива десятичных чисел в массив двоичных

Теперь, когда у нас есть двоичный массив, нужно создать ключ длиной 4 элемента и зашифровать им двоичную последовательность.

Ключ у нас будет вот такого вида (Рисунок 7.4):

Рисунок 7.4 – ключ шифрования

Для того чтобы зашифровать двоичную последовательность нашим ключом, нужно создать программу, которая будет сравнивать каждые 4 элемента двоичного массива с ключом при помощи функции xor, которая работает по правилу (Рисунок 7.5):

Рисунок 7.5 – таблица истинности для строгой дизъюнкции

И так, напишем программу, которая зашифрует двоичную последовательность (Рисунок 7.6):

Рисунок 7.6 – программа шифрования двоичной последовательности

Теперь преобразуем зашифрованную двоичную последовательность в десятичные значения, учитывая формат представления (uint 16- два байта).

Для этого необходимо написать программу перевода двоичного числа в десятичное (Рисунок 7.7):

Рисунок 7.7 - программа перевода двоичного числа в десятичное

Далее напишем программу перевода массива двоичных чисел в массив десятичных (Рисунок 7.8):

Рисунок 7.8 - программа перевода массива двоичных чисел в массив десятичных

Теперь, когда у нас есть десятичный массив, мы можем преобразовать вектор десятичных чисел в строковые символы командой vec2str (Рисунок 7.9):

Рисунок 7.9 – применение команды vec2str

Далее запишем зашифрованный файл на диск командой WRITEBIN (Рисунок 7.10):

Рисунок 7.10 – применение команды WRITEBIN

Откроем файл «secret», который мы записали на диск (Рисунок 7.11):

Рисунок 7.11 – открытый файл «secret»

Теперь расшифруем наше сообщение, для этого нужно повторить все те действия что мы делали до этого:

  1. Считаем файл «secret» в Mathcad при помощи команды READBIN;

  2. Преобразовываем десятичные значения байтов всех символов в единый двоичный массив;

  3. Только теперь уже не шифруем, а расшифровываем двоичную последовательность, применив тот же ключ, которым мы шифровали;

  4. Преобразовываем расшифрованную последовательность в десятичные значения, учитывая формат представления;

  5. Преобразовываем вектор десятичных чисел в строковые символы командой vec2str (Рисунок 7.12).

Рисунок 7.12 – применение команды vec2str

И вот мы уже видим расшифрованное сообщение.

  1. Осталось только записать расшифрованных файл на диск командой WRITEBIN (Рисунок 7.13):

Рисунок 7.13 – применение команды WRITEBIN

Откроем файл «nesecret» и посмотрим, что в нём написано (Рисунок 7.14):

Рисунок 7.14 – открытый файл «nesecret»

А в нём храниться наше расшифрованное сообщение.

Вывод: в данной работе я обучился шифрованию текстового файла алгоритмом с симметричным ключом в среде Mathcad. Увидел как он работает на практике.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]