Шифр Цезаря в мат описании
This commit is contained in:
@@ -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}
|
||||
Reference in New Issue
Block a user