\documentclass{article}[12pt]
\usepackage{graphicx}

\title{[BSS]-Lab1-śr16-KrzysztofRudnicki}
\author{Krzysztof Rudnicki}
\begin{document} 
\maketitle 
\section{Generacja kluczy}
\paragraph{Wybrane liczby}
Wybrałem najniższe liczby pierwsze z przedziału 30 - 100 \\ 
p - 31, q - 37
\paragraph{Sprawdziłem że liczby 31 i 37 \textbf{są} pierwsze \\}
\includegraphics[width=1\textwidth]{one.png}
\paragraph{n = p * q = 31 * 37 = 1147}
\paragraph{$\rho(n) = (p-1) * (q-1) = 30 * 36 = 1080$}
\paragraph{Wybrałem liczbę e = 29}
Sprawdziłem, że jest względnie pierwsza względem 1080 \\ 
\includegraphics[width=1\textwidth]{two.png}
\paragraph{Liczba d = 149 \\}  
\includegraphics[width=1\textwidth]{three.png}
\paragraph{Klucz publiczny:  e = 29, n = 1147 \\ Klucz prywatny: d = 149, n = 1147}

\section{Szyfrowanie}
\paragraph{Fraza: DYZIO, litera: C}
\paragraph{Zakodowana Fraza: 68, 89, 90, 73, 79 \\ Zakodowana litera: 67}
\paragraph{Przygotowana wiadomość: PTAKI LATAJA KLUCZEM}
\paragraph{Wiadomość zaszyfrowana kluczem sesyjnym: KPWEB FWPWCW EFQDVZG \\}
\includegraphics[width=1\textwidth]{four.png}
\includegraphics[width=1\textwidth]{five.png}
\paragraph{Klucz pobrany od kolegi:  $e_2 = 11, n_2 = 1763$}
\paragraph{Zaszyfrowany klucz sesyjny \\ Fraza: 168, 1621, 1632, 665, 178 \\ Litera: 1734 \\}
\includegraphics[width=1\textwidth]{six.png}
\paragraph{Klucz sesyjny przed zakodowaniem: DYZIO, C \\ Po Zakodowaniu: 68, 89, 90, 73, 79, \_67\_ \\ Po Zaszyfrowaniu: 168, 1621, 1632, 665, 178, \_1734\_}
\paragraph{Wiadomość przed zaszyfrowaniem: PTAKI LATAJA KLUCZEM \\ Wiadomość po zaszyfrowaniu: KPWEB FWPWCW EFQDVZG}

\section{Odszyfrowanie}
\paragraph{Otrzymałem klucz sesyjny:  423 65 693 1100 8 \_1073\_}
\paragraph{Odszyfrowałem go korzystając z mojego klucza prywatnego Klucz prywatny: d = 149, n = 1147}
\paragraph{Odszyfrowany klucz sesyjny: 107, 114, 48, 122, 97, \_111\_ \\}
\includegraphics[width=1\textwidth]{seven.png}
\paragraph{Odszyfrowany klucz sesyjny odkodowałem: kryza, o}
\paragraph{Otrzymałem wiadomość: QNVVK XSLN BK WNNB GKC \\ } 
\includegraphics[width=1\textwidth]{eight.png} 
\paragraph{Odszyfrowałem ją: HELLO NICE TO MEET YOU \\}
\includegraphics[width=1\textwidth]{nine.png}
\paragraph{Otrzymany klucz sesyjny zaszyfrowany: 423 65 693 1100 8 \_1073\_ \\ po odszyfrowaniu: 107, 114, 48, 122, 97, \_111\_ \\ po odkodowaniu: kryza, o }
\paragraph{Wiadomość zaszyfrowana: QNVVK XSLN BK WNNB GKC \\ Wiadomość odszyfrowana: HELLO NICE TO MEET YOU}
\section{Łamanie klucza prywatnego}
\paragraph{Z klucza publicznego otrzymałem $n_2 = 1763$}
\paragraph{Dokonałem faktoryzacji klucza publicznego $n = 43 \cdot 41$, p = 43, q = 41}
\includegraphics[width=1\textwidth]{ten.png}
\paragraph{Wyznaczyłem $\phi(n) = (p-1) \cdot (q-1) = 42 * 40 = 1680$}
\paragraph{Przygotowania do algorytmu Shanksa \\ c = 168, 1621, 1632, 665, 178 \_1734\_ \\  m = 68, 89, 90, 73, 79, \_67\_ \\  $n_2 = 1763$}
\paragraph{Algorythm Shanksa }
Algorytm z programu był dość zawodny, często nie dawał żadnych rezultatów, na przykład dla a = 168, y = 68, n = 1763 \\ 
\includegraphics[width=1\textwidth]{eleven.png} \\ 
Algorytm zadziałał dla $a_1 = 1632, y_1 = 90, n = 1763$ dając wynik $d_s = 121$ \\ 
Algorytm zadziałał dla $a_2 = 665, y_2 = 73, n = 1763$ dając wynik $d_s = 23$ \\ 
Algorytm zadziałał dla $a_3 = 178, y_3 = 79, n = 1763$ dając wynik $d_s = 35$ \\ 
Algorytm zadziałał dla $a_4 = 1734, y_4 = 67, n = 1763$ dając wynik $d_s = 275$ \\ 
\includegraphics[width=1\textwidth]{twelve.png} \\ 
\paragraph{Sprawdziłem czy otrzymane wartości $d_s$ spełniają wymaganie $e \cdot d_s (mod \phi(n))$ \\}
\[ e = 11, d_s = \{ 121, 23, 35, 275 \}, n = 1763, \phi(n) = 1680 \]
\[ 11 \cdot \mathbf{121} (mod 1680) = 1331 \] 
\[ 11 \cdot \mathbf{23} (mod 1680) = 253 \] 
\[ 11 \cdot \mathbf{35} (mod 1680) = 385 \] 
\[ 11 \cdot \mathbf{275} (mod 1680) = 1345  \] 
Żadna z tych wartości nie spełnia wymagań
\includegraphics[width=1\textwidth]{thirteen.png} 
\paragraph{Następnie posłużyłem się metodą brutalną dla wartości które zadziałały przy Algorytmie Shanksa \\ }
\includegraphics[width=1\textwidth]{fourteen.png} 
\includegraphics[width=1\textwidth]{fifteen.png} 
\includegraphics[width=1\textwidth]{sixteen.png} 
\includegraphics[width=1\textwidth]{seventeen.png} 
Dla e = 11, n = 1680, i d = 611 \\
\includegraphics[width=1\textwidth]{eighteen.png} \\ 
d = 611 jest jednym z elementów klucza prywatnego, drugim jest $n_2 = 1763$
\section{Podpis Cyfrowy CRC}
\paragraph{Dla tekstu: PTAKI LATAJA KLUCZEM, wyznaczyłem wartość CRC: 2457674121 \\}
\includegraphics[width=1\textwidth]{nineteen.png} 
\paragraph{Podzieliłem na mniejsze grupy: 24, 57, 67, 41, 21}
\paragraph{Zaszyfrowałem wartość crc \\ d = 149, n = 1147 \\ Podpis cyfrowy: 890, 1091, 583, 617, 189 \\}
\paragraph{Wiadomość: PTAKI LATAJA KLUCZEM \\ Obliczona wartość CRC: 2457674121 \\ Klucz prywatny: d = 149, n = 1147, \\ Podpis cyfrowy: 890, 1091, 583, 617, 189 \\}
\includegraphics[width=1\textwidth]{twenty.png} 
\section{Weryfikacja podpisu}
\paragraph{Otrzymałem podpis: 1411 178 1615 269 \\ klucz publiczny: n = 1147, e = 11 \\ Wiadomość: HELLO NICE TO MEET YOU}
\paragraph{Odszyfrowałem postać dziesiętną CRC: 11 79 57 64 \\}
\includegraphics[width=1\textwidth]{twentyone.png} 
\paragraph{Zaszyfrowałem wiadomośc i otrzymałem CRC: 11 79 57 64 \\}
\includegraphics[width=1\textwidth]{twentytwo.png} 
\paragraph{Obie wartości CRC są takie same w związku z tym wiadomość została pozytywnie zweryfikowana}  
\end{document}