diff options
| author | Andrew Guschin <guschin.drew@gmail.com> | 2022-11-13 11:43:52 +0400 |
|---|---|---|
| committer | Andrew Guschin <guschin.drew@gmail.com> | 2022-11-13 11:43:52 +0400 |
| commit | bcee37a8dda3ced1c09a671ddf321352bbc284e9 (patch) | |
| tree | 861a6f3909296f4890a96c2499a6461bcb68b242 | |
| parent | 9bbc7b8c31458fbf8c639794531e3d324004d8d5 (diff) | |
Добавлены отчёты по 1, 3, 4, 6 и 7 лабам
| -rw-r--r-- | .gitignore | 18 | ||||
| -rw-r--r-- | reports/lab1/lab1.pdf | bin | 0 -> 131330 bytes | |||
| -rw-r--r-- | reports/lab1/lab1.tex | 115 | ||||
| -rw-r--r-- | reports/lab3/lab3.pdf | bin | 0 -> 156794 bytes | |||
| -rw-r--r-- | reports/lab3/lab3.tex | 139 | ||||
| -rw-r--r-- | reports/lab4/Makefile | 17 | ||||
| -rw-r--r-- | reports/lab4/lab4.pdf | bin | 0 -> 116800 bytes | |||
| -rw-r--r-- | reports/lab4/lab4.tex | 85 | ||||
| -rw-r--r-- | reports/lab6/Makefile | 12 | ||||
| -rw-r--r-- | reports/lab6/lab6.pdf | bin | 0 -> 159982 bytes | |||
| -rw-r--r-- | reports/lab6/lab6.tex | 143 | ||||
| -rw-r--r-- | reports/lab7/Makefile | 17 | ||||
| -rw-r--r-- | reports/lab7/lab7.pdf | bin | 0 -> 54920 bytes | |||
| -rw-r--r-- | reports/lab7/lab7.tex | 89 |
14 files changed, 634 insertions, 1 deletions
@@ -1,2 +1,18 @@ -target .* + +# Rust +target + +# LaTeX +*.aux +*.fls +*.log +*.out +*.fdb_latexmk +*.gz +*.thm +*.toc +*.bbl +*.blg +*.md +*.dvi diff --git a/reports/lab1/lab1.pdf b/reports/lab1/lab1.pdf Binary files differnew file mode 100644 index 0000000..f4f73f7 --- /dev/null +++ b/reports/lab1/lab1.pdf diff --git a/reports/lab1/lab1.tex b/reports/lab1/lab1.tex new file mode 100644 index 0000000..f7bd293 --- /dev/null +++ b/reports/lab1/lab1.tex @@ -0,0 +1,115 @@ +\documentclass[a4paper,oneside]{article} + +\usepackage[utf8]{inputenc} +\usepackage[T2A]{fontenc} +\usepackage[english,russian]{babel} + +\usepackage{amsmath} +\usepackage{mathtools} +\usepackage{amsfonts} +\usepackage{enumitem} +\usepackage{amsthm} + +\newtheorem{theorem}{Теорема}[subsection] +\newtheorem*{theorem*}{Теорема} + +% --- Определение --- % +\theoremstyle{definition} +\newtheorem{definition}{Определение}[subsection] +\newtheorem*{definition*}{Определение} +% ------------------- % + +\date{} + + +\title{Криптографические методы защиты информации, Лабораторная работа №1} +\author{Гущин Андрей, 431 группа, 1 подгруппа, 2 вариант} + +\begin{document} + +\maketitle + +\begin{definition*} + Группой называется пара $<G, \cdot>$, где $G$ – непустое множество, а + $\cdot$ – бинарная операция, удовлетворяющая следующим трём аксиомам: + \begin{enumerate} + \item Ассоциативность + \item Существование единичного (нейтрального) элемента + \item Существование обратного элемента + \end{enumerate} +\end{definition*} + +Поле является алгебраической структурой с двумя бинарными операциями +– операцией сложения и операцией умножения. Поскольку, для элементов +поля по каждой из этих операций существует обратный элемент, то в поле +определены 4 арифметических операции – сложение, вычитание, умножение +и деление. + +Простейшее поле состоит ровно из p элементов, где $p$-произвольное простое +число, включая $p = 2$: +\begin{equation*} + F_p = \{ 0, 1, 2, \dots, p - 1 \} +\end{equation*} + +Полем называется алгебраическая структура $<F, +, \cdot>$, состоящая +из непустого множества и двух бинарных операция. Поле является группой +по сложению и группой по умножению (обратный элемент по умножению +рассматривается для ненулевых элементов), связанных аксиомами дистрибутивности $(\forall a, b, c \in F)$. + +*Определение*. Порядком элемента $a$ группы $G$ (обозначается +$ord_G(a)$) называется наименьшее число $k$ такое, что $a^k = +1$. Порядком группы называется число ее элементов. + +Порядком (по умножению) ненулевого элемента $a$ поля $F_p$ называется +наименьшая степень $t$ такая, что выполняется условие +\begin{equation*} + a^t \pmod p = 1 +\end{equation*} + +\begin{theorem*}[Лагранжа] + Порядок любого элемента конечной группы является делителем порядка + группы. +\end{theorem*} + +Элемент $a \in G$ называется \textit{примитивным} элементом или +генератором группы, если его порядок $ord_G(a)$ равен порядку +группы. Не любая группа имеет генератор. Группа, в которой есть +генератор, порождается одним элементом и называется циклической. + +Проверим, что 2 является порождающим элементом простого конечного поля +$F_{29}$ +\begin{align*} + 2^{1} &= 2 \pmod {29} = 2 \\ + 2^{2} &= 2 \cdot 2 \pmod {29} = 4 \\ + 2^{3} &= 4 \cdot 2 \pmod {29} = 8 \\ + 2^{4} &= 8 \cdot 2 \pmod {29} = 16 \\ + 2^{5} &= 16 \cdot 2 \pmod {29} = 3 \\ + 2^{6} &= 3 \cdot 2 \pmod {29} = 6 \\ + 2^{7} &= 6 \cdot 2 \pmod {29} = 12 \\ + 2^{8} &= 12 \cdot 2 \pmod {29} = 24 \\ + 2^{9} &= 24 \cdot 2 \pmod {29} = 19 \\ + 2^{10} &= 19 \cdot 2 \pmod {29} = 9 \\ + 2^{11} &= 9 \cdot 2 \pmod {29} = 18 \\ + 2^{12} &= 18 \cdot 2 \pmod {29} = 7 \\ + 2^{13} &= 7 \cdot 2 \pmod {29} = 14 \\ + 2^{14} &= 14 \cdot 2 \pmod {29} = 28 \\ + 2^{15} &= 28 \cdot 2 \pmod {29} = 27 \\ + 2^{16} &= 27 \cdot 2 \pmod {29} = 25 \\ + 2^{17} &= 25 \cdot 2 \pmod {29} = 21 \\ + 2^{18} &= 21 \cdot 2 \pmod {29} = 13 \\ + 2^{19} &= 13 \cdot 2 \pmod {29} = 26 \\ + 2^{20} &= 26 \cdot 2 \pmod {29} = 23 \\ + 2^{21} &= 23 \cdot 2 \pmod {29} = 17 \\ + 2^{22} &= 17 \cdot 2 \pmod {29} = 5 \\ + 2^{23} &= 5 \cdot 2 \pmod {29} = 10 \\ + 2^{24} &= 10 \cdot 2 \pmod {29} = 20 \\ + 2^{25} &= 20 \cdot 2 \pmod {29} = 11 \\ + 2^{26} &= 11 \cdot 2 \pmod {29} = 22 \\ + 2^{27} &= 22 \cdot 2 \pmod {29} = 15 \\ + 2^{28} &= 15 \cdot 2 \pmod {29} = 1 +\end{align*} + +Порядок элемента 2 в поле $F_{29}$ равно 28 (то есть $p - 1$), таким +образом число 2 является порождающим элементом конечного поля +$F_{29}$. +\end{document} diff --git a/reports/lab3/lab3.pdf b/reports/lab3/lab3.pdf Binary files differnew file mode 100644 index 0000000..f37bbc1 --- /dev/null +++ b/reports/lab3/lab3.pdf diff --git a/reports/lab3/lab3.tex b/reports/lab3/lab3.tex new file mode 100644 index 0000000..46063aa --- /dev/null +++ b/reports/lab3/lab3.tex @@ -0,0 +1,139 @@ +\documentclass[a4paper,oneside]{article} + +\usepackage[utf8]{inputenc} +\usepackage[T2A]{fontenc} +\usepackage[english,russian]{babel} + +\usepackage{amsmath} +\usepackage{mathtools} +\usepackage{amsfonts} +\usepackage{enumitem} +\usepackage{amsthm} + +\newtheorem{theorem}{Теорема}[subsection] +\newtheorem*{theorem*}{Теорема} + +% --- Определение --- % +\theoremstyle{definition} +\newtheorem{definition}{Определение}[subsection] +\newtheorem*{definition*}{Определение} +% ------------------- % + +\date{} + + +\title{Криптографические методы защиты информации, Лабораторная работа №3} +\author{Гущин Андрей, 431 группа, 1 подгруппа, 2 вариант} + +\begin{document} + +\maketitle + +Факторизацией натурального числа называется его разложение в произведение +простых множителей. Существование и единственность (с точностью до порядка +следования множителей) такого разложения следует из \textbf{основной теоремы +арифметики}. + +Простой перебор множителей является довольно неэффективным алгоритмом, +особенно для достаточно больших чисел. В таком случае необходимо выбрать другой +алгоритм разложения на множители. + +Например, таким является алгоритм Шермана Лемана. + +Пусть $n$ нечётно и $n > 8$. +\begin{enumerate} + \item + Для $a = 2, 3, \dots, \lfloor n^{1/3} \rfloor$ проверить условие + $a | n$. Если на этом шаге не удалось разложить $n$ на множители, + то переходим к следующему шагу. + + \item + Если на предыдущем шаге делитель не найден и $n$ --- составное, то $n = + pq$, где $p, q$ --- простые числа, и $n^{1/3} < p \leq q < n^{2/3}$. + Тогда для всех $k = 1, 2, \dots, \lfloor n^{1/3} \rfloor$ и для всех + $d = 0, \dots, \left\lfloor \frac{n^{1/6}}{4 \sqrt{k}} \right\rfloor + 1$ + проверить, является ли число $(\lfloor \sqrt{4kn} \rfloor + d)^2 - 4kn$ + квадратом натурального числа. Если является, то для $A = \lfloor \sqrt{4kn} \rfloor + d$ и + $B = \sqrt{A^2 - 4kn}$ выполнено сравнение: + \[ A^2 \equiv B^2 \pmod n \text{ или } (A - B)(A + B) \equiv 0 \pmod n \] + + В этом случае для $d^* = \gcd(A - B, n)$ проверяется неравенство + $1 < d^* < n$. Если оно выполнено, то $n = d^* \cdot (n / d^*)$ --- разложение $n$ на два множителя. + + Если алгоритм не нашёл разложение $n$ на два множителя, то $n$ --- простое число. +\end{enumerate} + +Можно заметить, что данный алгоритм имеет временную сложность $O(n^{1/3})$, +что является более эффективным результатом по сравнению с простым перебором +множителей, который имеет временную сложность $O(n^{1/2})$. + +Рассмотрим алгоритм для $n_1 = 21894583143407671$. $\lfloor n_1^{1/3} \rfloor += \lfloor 21894583143407671^{1/3} \rfloor = \lfloor 279755.66757 \rfloor = +279755$. Перебрав все простые числа $a = 2, 3, \dots, 279755$ и проверив +для каждого $(n_1 | a)$, я заметил, что ни одно из них не является простым +множителем числа 21894583143407671. Таким образом, переходим ко второму шагу +алгоритма. + +Снова будем перебирать все числа $k = 1, 2, 3, \dots, 279755$ и для каждого $k$ +вычислим значение $\left\lfloor \frac{n_1^{1/6}}{4 \sqrt{k}} \right\rfloor + +1 = \left\lfloor \frac{21894583143407671^{1/6}}{4 \cdot \sqrt{k}} \right\rfloor ++ 1 = \left\lfloor \frac{528.91934}{4 \cdot \sqrt{k}} \right\rfloor + 1$. + +Далее необходимо перебрать все $d = 0, \dots, \left\lfloor \frac{n_1^{1/6}}{4 +\sqrt{k}} \right\rfloor + 1$. + +Пусть $k = 1$, $d_{max} = \left\lfloor \frac{528.91934}{4 \cdot \sqrt{1}} +\right\rfloor = \left\lfloor \frac{528.91934}{4} \right\rfloor = +\left\lfloor 132.22983 \right\rfloor = 132$ + +Для каждого $d = 0, \dots, 132$ необходимо проверить является ли число +$(\lfloor \sqrt{4kn} \rfloor + d)^2 - 4kn$ полным квадратом натурального числа. + +Для $k = 1, d = 0$ это число равно $(\lfloor \sqrt{4 \cdot 1 \cdot +21894583143407671} \rfloor + 0)^2 - 4 \cdot 1 \cdot 21894583143407671 = +(\lfloor \sqrt{4 \cdot 1 \cdot 21894583143407671} \rfloor + 0)^2 - 4 \cdot 1 +\cdot 21894583143407671 = (\lfloor 295936365.75053 \rfloor)^2 - +87578332573630688 = 295936365^2 - 87578332573630688 = -444217463$. + +Отрицательное число не может быть квадратом натурального числа, поэтому +продолжаем перебор. + +$\dots$ + +Пусть $k = 26304$, $d_{max} = \left\lfloor \frac{528.91934}{4 \cdot \sqrt{26304}} +\right\rfloor = \left\lfloor \frac{528.91934}{162.18508} \right\rfloor = +\left\lfloor 3.26121 \right\rfloor = 3$ + +$\dots$ + +Для $k = 26304, d = 1$ это число равно $(\lfloor \sqrt{4 \cdot 26304 \cdot +21894583143407671} \rfloor + 1)^2 - 4 \cdot 26304 \cdot 21894583143407671 = +(\lfloor \sqrt{2303660460016781511936} \rfloor + 1)^2 - 2303660460016781511936 += (\lfloor 47996462994.858086 \rfloor + 1)^2 - 2303660460016781511936 = +47996462995^2 - 2303660460016781511936 = +2303660460030404370025 - 2303660460016781511936 = 13622858089$. + +Число 13622858089 является полным квадратом числа 116717. + +Вычислим $A = \lfloor \sqrt{4 * k * n} \rfloor + d$ и $B = \sqrt{A^2 - 4kn}$: + +$A = \lfloor \sqrt{4 \cdot 26304 \cdot 21894583143407671} \rfloor + 1 = +47996462995$. + +$B = \sqrt{47996462995^2 - 4 \cdot 26304 \cdot 21894583143407671} = 116717$. + +Выполним сравнение $A^2 \equiv B^2 \pmod n$. + +$47996462995^2 \equiv 116717^2 \pmod {21894583143407671} = +2303660460030404370025 \equiv 13622858089 \pmod {21894583143407671} = +13622858089 \equiv 13622858089 \pmod {21894583143407671}$. + +Так как это выражение верно, вычислим $d^* = \gcd(A - B, n) = +\gcd(47996462995 - 116717, 21894583143407671) = +\gcd(47996346278, 21894583143407671) = 175169147$ + +Для данного $d^*$ выполняется равенство $1 < d^* < n$, значит это число является +множителем числа $n$, а вторым множителем является число $n / d^* = 124991093$. + + +\end{document} diff --git a/reports/lab4/Makefile b/reports/lab4/Makefile new file mode 100644 index 0000000..0378519 --- /dev/null +++ b/reports/lab4/Makefile @@ -0,0 +1,17 @@ +.PHONY: clean all + +all: + @echo "Использование:" + @echo "make entr -> Запуск entr, пересобирающий документ при изменениях" + @echo "make doc -> Пересобрать документ" + @echo "make clean -> Удаление сгенерированных файлов" + +entr: + sh -c "echo *.tex | entr latexmk -pdf -f -shell-escape -interaction=nonstopmode lab*.tex" + +doc: + latexmk -pdf -f -shell-escape -interaction=nonstopmode lab*.tex + +clean: + rm -rf _minted-* *.aux *.dvi *.fdb_latexmk *.fls *.log + diff --git a/reports/lab4/lab4.pdf b/reports/lab4/lab4.pdf Binary files differnew file mode 100644 index 0000000..58bb498 --- /dev/null +++ b/reports/lab4/lab4.pdf diff --git a/reports/lab4/lab4.tex b/reports/lab4/lab4.tex new file mode 100644 index 0000000..65665bf --- /dev/null +++ b/reports/lab4/lab4.tex @@ -0,0 +1,85 @@ +\documentclass[a4paper,oneside]{article} + +\usepackage[utf8]{inputenc} +\usepackage[T2A]{fontenc} +\usepackage[english,russian]{babel} + +\usepackage{amsmath} +\usepackage{mathtools} +\usepackage{amsfonts} +\usepackage{enumitem} +\usepackage{amsthm} +\usepackage{minted} +\setminted{fontsize=\small, breaklines=true, style=emacs, linenos} +\usepackage{graphicx} +\graphicspath{ {./images/} } +\usepackage{float} + +\newtheorem{theorem}{Теорема} +\newtheorem*{theorem*}{Теорема} + +% --- Определение --- % +\theoremstyle{definition} +\newtheorem{definition}{Определение} +\newtheorem*{definition*}{Определение} +% ------------------- % + +\theoremstyle{definition} +\newtheorem*{example}{Пример} + + +\title{{Криптографические методы защиты информации}\\{Лабораторная работа №4}} +\author{Гущин Андрей, 431 группа, 1 подгруппа, 2 вариант} +\date{\the\year{} г.} + +\begin{document} +\maketitle + +\begin{theorem}[Безу] + Остаток от деления многочлена $P(x)$ на двучлен $(x - a)$ равен $P(a)$. + \label{thm:bezout} +\end{theorem} +\begin{proof} + Поделим с остатком многочлен $P(x)$ на двучлен $x - a$: + \begin{equation*} + P(x)=(x - a) \cdot Q(x) + R(x) + \end{equation*} + где $R(x)$ --- остаток. Так как $\deg R(x) < \deg(x - a) = 1$, то $R(x)$ + --- многочлен степени не выше 0, то есть константа, обозначим её за $r$. + Подставляя $x = a$, поскольку $(a-a) \cdot Q(a) = 0$, имеем $P(a) = R(x) = r$. +\end{proof} + +\begin{theorem} + Многочлен степени $\leq 3$ неприводим над полем $F$ $\iff$ он не имеет корней + в поле $F$. + \label{thm:irreducibility} +\end{theorem} +\begin{proof} + Если многочлен $f$ неприводим над $F$, то по теореме \ref{thm:bezout} он не + имеет корней в поле $F$. Обратно, если $f$ приводим над $F$ и его степень 2 + или 3, то он имеет линейный делитель над $F$, следовательно, он имеет корень в + $F$. +\end{proof} + +% \begin{example} +% % Пример с приводимым многочленом <= 3 +% \end{example} + +% \begin{example} +% % Пример с неприводимым многочленом <= 3 +% \end{example} + +\begin{example} + Теорема \ref{thm:irreducibility} для многочленов степени $n \geq 4$ в общем + случае неверна. $x^4 + x^2 + 1$ не имеет корней в поле $F_{11}$, но имеет + разложение + \begin{align*} + (x^2 + x + 1) \cdot (x^2 + 10x + 1) &= + x^4 + 10x^3 + x^2 + x^3 + 10x^2 + x + x^2 + 10x + 1 = \\ + &= x^4 + 11x^3 + 12x^2 + 11x + 1 = \\ + &= x^4 + 0x^3 + 1x^2 + 0x + 1 = \\ + &= x^4 + x^2 + 1 + \end{align*} +\end{example} + +\end{document} diff --git a/reports/lab6/Makefile b/reports/lab6/Makefile new file mode 100644 index 0000000..96b545c --- /dev/null +++ b/reports/lab6/Makefile @@ -0,0 +1,12 @@ +.PHONY: clean all + +all: + @echo "Использование:" + @echo "make entr -> Запуск entr, пересобирающий документ пи изменениях" + @echo "make clean -> Удаление сгенерированных файлов" + +entr: + sh -c "echo *.tex | entr latexmk -pdf -f -shell-escape lab*.tex" + +clean: + rm -rf _minted-* *.aux *.dvi *.fdb_latexmk *.fls *.log *.pdf diff --git a/reports/lab6/lab6.pdf b/reports/lab6/lab6.pdf Binary files differnew file mode 100644 index 0000000..4723c56 --- /dev/null +++ b/reports/lab6/lab6.pdf diff --git a/reports/lab6/lab6.tex b/reports/lab6/lab6.tex new file mode 100644 index 0000000..9e0c78c --- /dev/null +++ b/reports/lab6/lab6.tex @@ -0,0 +1,143 @@ +\documentclass[a4paper,oneside]{article} + +\usepackage[utf8]{inputenc} +\usepackage[T2A]{fontenc} +\usepackage[english,russian]{babel} + +\usepackage{amsmath} +\usepackage{mathtools} +\usepackage{amsfonts} +\usepackage{enumitem} +\usepackage{amsthm} +\usepackage{minted} +\setminted{fontsize=\small, breaklines=true, style=emacs, linenos} +\usepackage{graphicx} +\graphicspath{ {./images/} } +\usepackage{float} + +\newtheorem{theorem}{Теорема} +\newtheorem*{theorem*}{Теорема} + +% --- Определение --- % +\theoremstyle{definition} +\newtheorem{definition}{Определение} +\newtheorem*{definition*}{Определение} +% ------------------- % + +\theoremstyle{definition} +\newtheorem*{example}{Пример} + + +\title{{Криптографические методы защиты информации}\\{Лабораторная работа №6}} +\author{Гущин Андрей, 431 группа, 1 подгруппа, 2 вариант} +\date{\the\year{} г.} + +\begin{document} + +\maketitle + +\begin{definition} + \textbf{Группа} --- непустое множество, на котором определена ассоциативная + бинарная операция, причём для этой операции имеется нейтральный элемент, и + каждый элемент множества имеет обратный. +\end{definition} + +\begin{definition} + \textbf{Циклическая группа} --- группа $(G, \cdot)$, которая может быть + порождена одним элементом $a$, то есть все её элементы являются степенями + $a$. Обозначается как $G = \langle a \rangle$. +\end{definition} + +\begin{definition} + \textbf{Подгруппа} --- подмножество $H$ группы $G$, которое является группой + относительно операции, определённой в $G$. +\end{definition} + +\begin{theorem} + \label{thm:all_cycle} + Каждая подгруппа циклической группы является циклической. +\end{theorem} +\begin{proof} + Допустим, $G = \langle g \rangle = \{ g^k : k \in \mathbb{Z} \}$ --- + циклическая группа. Пусть $H$ --- подгруппа $G$. Если $H = \{ 1 \}$, то + $H$ --- циклическая. Положим, что $H$ --- нетривиальная подгруппа и пусть + $g^k \in H$, где $g^k \neq 1$. Тогда, так как $H$ является подгруппой, + $g^{-k} = (g^k)^{-1} \in H$. Получаем, что $H$ содержит положительную + степень числа $g$, отличную от 1. Возьмём минимальное положительное $m$ + такое, что $g^m \in H$. Очевидно, что все степени $g^m$ также принадлежат + $H$, то есть $\langle g^m \rangle \subseteq H$. + + Докажем, что это выражение является равенством. Пусть $g^k$ является + любым элементом $H$. Мы можем выразить $k = qm + r$, где $0 \leq r < m$. + Но $g^k = g^{qm + r} = g^{qm} g^r = (g^m)^q g^r$. Получаем + \begin{equation*} + g^r = (g^m)^{-q} g^k \in H + \end{equation*} + + Так как $m$ --- минимальное положительное целое число такое, что $g^m \in + H$ и при этом $0 \leq r < m$, следует, что $r = 0$. Тогда, + $g^k = (g^m)^q \in \langle g^m \rangle$. Таким образом, мы показали, что + $H \subseteq \langle g^m \rangle \implies H = \langle g^m \rangle$. + + Получаем, что $H$ --- цикличная с порождающим элементом $g^m$, где $m$ --- + минимальное положительное целое число, для которого справедливо $g^m \in H$. +\end{proof} + +\begin{theorem}[Фундаментальная теорема конечных цикличных групп] + Пусть $G = \langle g \rangle$ --- цикличная группа порядка $n$. Тогда, + \begin{enumerate} + \item + Если $H$ --- подгруппа $G$, то $H = \langle g^d \rangle$ для + некоторого $d \mid n$. + \item Если $H$ --- подгруппа $G$ и $|H| = k$, то $k \mid n$. + \item + Если $k \mid n$, то $\langle g^{n/k} \rangle$ --- единственная + подгруппа $G$ порядка $k$. + \end{enumerate} +\end{theorem} +\begin{proof} + \begin{enumerate} + \item \label{thm:fund_1} + По Теореме \ref{thm:all_cycle}, $H$ --- циклическая группа. + Так как $|G| = n < \infty \implies H = \langle g^m \rangle$, где + $m > 0$. Пусть $d = \gcd(m, n)$. Так как $d \mid n$, достаточно + показать, что $H = \langle g^d \rangle$. Но $d \mid m$, поэтому + $m = qd$. Тогда $g^m = (g^d)^q \implies g^m \in \langle g^d \rangle$. + Таким образом, $H = \langle g^m \rangle \subseteq \langle g^d \rangle$. + Но $d = rm + sn$, где $r, s \in \mathbb{Z}$, поэтому + \begin{equation*} + g^d = g^{rm + sn} = g^{rm} g^{sn} = (g^m)^r (g^n)^s = + (g^m)^r (1)^s = (g^m)^r \in \langle g^m \rangle = H + \end{equation*} + + Получаем, что $\langle g^d \rangle \subseteq H \implies + \langle g^d \rangle = H$. + \item + В следствие пункта \ref{thm:fund_1}, $H = \langle g^d \rangle$, + где $d \mid n$. Тогда $k = |H| = n / d$. Получаем, что $k \mid n$. + \item + Допустим $K$ --- подгруппа $G$ порядка $k$. По пункту \ref{thm:fund_1}, + пусть $K = \langle g^m \rangle$, где $m \mid n$. $k = |K| = |g^m| + = n/m$. Получаем $m = n/k \implies K = \langle g^{n/k} \rangle$. + \end{enumerate} +\end{proof} + +\begin{example} + Пусть $G = \mathbb{Z}_6 = \{ 0, 1, 2, 3, 4, 5 \}$ --- кольцо вычетов по + модулю 6. Вычислим все подгруппы, беря каждый из элементов как порождающий. + \begin{align*} + H_0 &= \{ 0 \} \\ + H_1 &= \{ 0, 1, 2, 3, 4, 5 \} = G \\ + H_2 &= \{ 0, 2, 4 \} \\ + H_3 &= \{ 0, 3 \} \\ + H_4 &= \{ 0, 2, 4 \} = H_2 \\ + H_5 &= \{ 0, 1, 2, 3, 4, 5 \} = H_1 = G + \end{align*} + + Делителями числа 6 являются $\{ 1, 2, 3, 6 \}$. Можно заметить, что для + каждого из делителей существует единственная уникальная подгруппа + соответствующего порядка (для 1 --- $\langle 0 \rangle$, для 2 --- + $\langle 3 \rangle$, для 3 --- $\langle 2 \rangle$, для 6 --- $G$). +\end{example} + +\end{document} diff --git a/reports/lab7/Makefile b/reports/lab7/Makefile new file mode 100644 index 0000000..0378519 --- /dev/null +++ b/reports/lab7/Makefile @@ -0,0 +1,17 @@ +.PHONY: clean all + +all: + @echo "Использование:" + @echo "make entr -> Запуск entr, пересобирающий документ при изменениях" + @echo "make doc -> Пересобрать документ" + @echo "make clean -> Удаление сгенерированных файлов" + +entr: + sh -c "echo *.tex | entr latexmk -pdf -f -shell-escape -interaction=nonstopmode lab*.tex" + +doc: + latexmk -pdf -f -shell-escape -interaction=nonstopmode lab*.tex + +clean: + rm -rf _minted-* *.aux *.dvi *.fdb_latexmk *.fls *.log + diff --git a/reports/lab7/lab7.pdf b/reports/lab7/lab7.pdf Binary files differnew file mode 100644 index 0000000..46d2d54 --- /dev/null +++ b/reports/lab7/lab7.pdf diff --git a/reports/lab7/lab7.tex b/reports/lab7/lab7.tex new file mode 100644 index 0000000..07750de --- /dev/null +++ b/reports/lab7/lab7.tex @@ -0,0 +1,89 @@ +\documentclass[a4paper,oneside]{article} + +\usepackage[utf8]{inputenc} +\usepackage[T2A]{fontenc} +\usepackage[english,russian]{babel} + +\usepackage{amsmath} +\usepackage{mathtools} +\usepackage{amsfonts} +\usepackage{enumitem} +\usepackage{amsthm} +\usepackage{minted} +\setminted{fontsize=\small, breaklines=true, style=emacs, linenos} +\usepackage{graphicx} +\graphicspath{ {./images/} } +\usepackage{float} +\usepackage{verse} + +\newtheorem{theorem}{Теорема} +\newtheorem*{theorem*}{Теорема} + +% --- Определение --- % +\theoremstyle{definition} +\newtheorem{definition}{Определение} +\newtheorem*{definition*}{Определение} +% ------------------- % + +\theoremstyle{definition} +\newtheorem*{example}{Пример} + + +\title{{Криптографические методы защиты информации}\\{Лабораторная работа №7}} +\author{Гущин Андрей, 431 группа, 1 подгруппа, 2 вариант} +\date{\the\year{} г.} + +\begin{document} + +\maketitle + +Указанные в задании строки относятся к десятой главе романа <<Евгений Онегин>> +Александра Пушкина. Данная глава была зашифрована Пушкиным из-за своего +содержания, которое могло бы привести поэта к проблемам с законом. + +В 1910 году Пётр Осипович Морозов смог расшифровать отрывки десятой главы. +Благодаря тому, что он заметил сходство некоторых строк: +\begin{verse} + Сей всадникъ Папою венчанный \\ + Изчѳзнувшій какъ тень зари \\ + Сей мужъ судьбы, сей странникъ бранный \\ + Прѳдъ кемъ унизились цари +\end{verse} + +Cо строками четверостишия из стиха <<Герой>> авторства Пушкина: +\begin{verse} + Всё он, всё он --- пришлец сей бранный, \\ + Пред кем смирилися цари, \\ + Сей ратник, вольностью венчанный, \\ + Исчезнувший, как тень зари. +\end{verse} + +Таким образом, он смог получить ключ для перестановки строк из зашифрованного +текста. Если последовательно пронумеровать строки исходного текста и переставить +их так, что сформируется осмысленное четверостишие, получится ключ (35, 51, 8, 23). + +Таким образом первым расшифрованным четверостишием будет (28, 44, 1, 17), +вторым --- (29, 45, 2, 18) и так далее. При применении данного алгоритма, +четверостишия после пятого снова начинают терять смысл. Для этого случая +и последующих достаточно пропустить одну или две строки в зависимости от +получающегося смысла. + +Получаем следующие четверостишия: +\begin{verse} + Властитель слабый и лукавый, \\ + Плешивый щеголь, враг труда, \\ + Нечаянно пригретый славой, \\ + Над нами царствовал тогда. \\! + + Его мы очень смирным знали, \\ + Когда не наши повара \\ + Орла двуглавого щипали \\ + У Бонапартова шатра. \\! + + Гроза двенадцатого года \\ + Настала — кто тут нам помог? \\ + Остервенение народа, \\ + Барклай, зима иль русский бог? +\end{verse} + +\end{document} |