diff --git a/lab3/report/report.tex b/lab3/report/report.tex index 0d93abf..c425c5e 100644 --- a/lab3/report/report.tex +++ b/lab3/report/report.tex @@ -168,6 +168,26 @@ Для выполнения лабораторной работы необходимо было сделать следующее. Создать проект в stack. Все чистые функции записать в библиотеку Lib.hs и ограничить доступ к вспомогательным функциям. Использовать do-нотацию для работы с внешними файлами. Найти портрет Дэвида Дойча. Перевести изображение в формат .bmp (24-разрядный). Сохранить в файл формата .txt фрагмент биографии (не менее 1000 символов без пробелов, текст не должен обрываться на середине слова или предложения). Закодировать текст в изображение шифром Цезаря (смещение задается пользователем). Ключ к шифру записывается в имя файла. Написать функцию расшифровывающую текст из изображения используя ключ из имени файла и сохраняющую результат в отдельный текстовый файл. Создать функции шифрующие текст в последний бит каждого байта, последние два бита каждого байта, …, все биты в байте. В отчете привести примеры искажений изображения. + + \newpage + \section {Математическое описание} + \subsection{Шифр Цезаря} + Шифр Цезаря (лат. Notae Caesarianae), также известный как шифр сдвига или код Цезаря — разновидность шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, находящимся на некотором постоянном числе позиций левее или правее него в алфавите (так, в шифре со сдвигом вправо на 3, А была бы заменена на Г, Б станет Д, и так далее). Шифр был назван в честь римского полководца Гая Юлия Цезаря, использовавшего его для секретной переписки со своими военачальниками. + + Если сопоставить каждому символу алфавита его порядковый номер (нумеруя с 0), то шифрование и дешифрование можно выразить формулами модульной арифметики~\cite{caesar}: + \[ + y = (x + k) \mod n + \] + \[ + x = (y - k) \mod n + \] + где: \\ + $x$ — символ открытого текста, \\ + $y$ — символ шифрованного текста, \\ + $n$ — мощность алфавита, \\ + $k$ — ключ. + + \newpage \section {Особенности реализации} \subsection{Исходное изображение и текст} @@ -204,11 +224,11 @@ \vspace{-1.5cm} \begin{thebibliography}{0} + \bibitem{caesar} + Luciano, D., Prichett, G., Cryptology: From Caesar Ciphers to Public-Key Cryptosystems, The College Mathematics Journal, 1987. \bibitem{david} David Deutsch -- personal website, URL: \url{https://www.daviddeutsch.org.uk/}, Дата обращения: 19.11.2024 \bibitem{convertio} Convertio -- BPM to JPG online converter, URL: \url{https://convertio.co/ru/bmp-jpg/}, Дата обращения: 19.11.2024 \end{thebibliography} - - \end{document} \ No newline at end of file