Browse Source

literowki

master
Piotr Dergun 7 years ago
parent
commit
ae7574a34d
1 changed files with 7 additions and 7 deletions
  1. +7
    -7
      DergunPiotr-WaskoDominik/projekt/Projet_PRIR.tex

+ 7
- 7
DergunPiotr-WaskoDominik/projekt/Projet_PRIR.tex View File

@ -82,10 +82,10 @@
Celem projektu było zaimplementowanie programu pozwalającego na załamanie hashu sha1. Zastosowano metodę typu brute force. Zrównoleglenia programu dokonano za pomocą MPI. Program uruchomiono na klasterze komputerowym składającym się z 13 węzłów. Celem projektu było zaimplementowanie programu pozwalającego na załamanie hashu sha1. Zastosowano metodę typu brute force. Zrównoleglenia programu dokonano za pomocą MPI. Program uruchomiono na klasterze komputerowym składającym się z 13 węzłów.
\section{Algorytm brute force } \section{Algorytm brute force }
Algorytm brute force, inaczej algorytm siłowy. Ten algorytm opiera się na sukcesywnym sprawdzaniu wszystkich możliwych kombinacji w poszukiwaniu rozwiązania problemu. Nie skupia się na jego szczegółowej analizie. Zwykle jest to nieoptymalna metoda, jednak jst prosta w do zaimplementowania. Teoretycznie pozwala ona złamać każde hasło. praktycznie, w zależności od skomplikowania hasła, może to być bardzo długi czas (np. dłuższy niż istnieje Wszechświat). W zależności od kontekstu, w którym termin brute force zostaje użyty, może mieć on nieznacznie różne definicje. Meoda brute-force może być przeprowadzony wobec prawie wszystkich szyfrów symetrycznych i szyfrów asymetrycznych.
Algorytm brute force, inaczej algorytm siłowy. Ten algorytm opiera się na sukcesywnym sprawdzaniu wszystkich możliwych kombinacji w poszukiwaniu rozwiązania problemu. Nie skupia się na jego szczegółowej analizie. Zwykle jest to nieoptymalna metoda, jednak jest prosta w do zaimplementowania. Teoretycznie pozwala ona złamać każde hasło. praktycznie, w zależności od skomplikowania hasła, może to być bardzo długi czas (np. dłuższy niż istnieje Wszechświat). W zależności od kontekstu, w którym termin brute force zostaje użyty, może mieć on nieznacznie różne definicje. Metoda brute-force może być przeprowadzony wobec prawie wszystkich szyfrów symetrycznych i szyfrów asymetrycznych.
\section{SHA-1} \section{SHA-1}
SHA-1 (Secure Hash Algorithm) jest jednokierunkową funkcją hashującą zaprojektowaną przez National Security Agency (NSA) i opublikowaną przez National Institute of Standards and Technology (NIST. Wytwarza ona skrót o długości 160 bitów z wiadomości o dowolnym rozmiarze, nie większym niż pow(2,64) bitów. Funkcja SHA-1 jest
SHA-1 (Secure Hash Algorithm) jest jednokierunkową funkcją hashującą zaprojektowaną przez National Security Agency (NSA) i opublikowaną przez National Institute of Standards and Technology (NIST. Wytwarza ona skrót o długości 160 bitów z wiadomości o dowolnym rozmiarze, nie większym niż ${}2^{64}$ bitów. Funkcja SHA-1 jest
oparta na zasadach podobnych, do użytych przez profesora Ronalda L. Rivesta z MIT przy projektowaniu funkcji hashujących MD4 i MD5, i w znacznym stopniu naśladuje te algorytmy. Oryginalna specyfikacja tego algorytmu została opublikowana w 1993 roku jako Secure Hash Standard, FIPS PUB 180. Ta wersja jest teraz często nazywana jako SHA-0. Była ona wycofana przez NSA krótko po publikacji i zastąpiona przez poprawioną wersję oparta na zasadach podobnych, do użytych przez profesora Ronalda L. Rivesta z MIT przy projektowaniu funkcji hashujących MD4 i MD5, i w znacznym stopniu naśladuje te algorytmy. Oryginalna specyfikacja tego algorytmu została opublikowana w 1993 roku jako Secure Hash Standard, FIPS PUB 180. Ta wersja jest teraz często nazywana jako SHA-0. Była ona wycofana przez NSA krótko po publikacji i zastąpiona przez poprawioną wersję
opublikowaną w 1995 roku w FIPS PUB 180-1 i nazwaną SHA-1. opublikowaną w 1995 roku w FIPS PUB 180-1 i nazwaną SHA-1.
@ -210,18 +210,18 @@ iMac6,1 & 4 & Core2Duo 2,16 GHz & 2 & 1\\
\hline \hline
iMac14,2 & 3 & i5-4570 3,2Ghz & 4 & 2\\ iMac14,2 & 3 & i5-4570 3,2Ghz & 4 & 2\\
\hline \hline
MacPro3,1 & 3 & Xeon E5462 2x 2,8 GHz & 8 & 6\\
MacPro3,1 & 3 & 2x Xeon E5462 2,8 GHz & 8 & 6\\
\hline \hline
MacPro4,1 & 2 & Xeon E5520 2x 2,26 GHz & 8 & 6\\
MacPro4,1 & 2 & 2x Xeon E5520 2,26 GHz & 8 & 6\\
\hline \hline
MacPro5,1 & 1 & Xeon E5620 2x 2,4 GHz & 8 & 8\\
MacPro5,1 & 1 & 2x Xeon E5620 2,4 GHz & 8 & 8\\
\hline \hline
\end{tabular} \end{tabular}
\caption{Konfiguracja klastra} \caption{Konfiguracja klastra}
\end{table} \end{table}
\section{Opis programu} \section{Opis programu}
Program został napisany w języku c++. Wykorzystana implementacja MPI to MPICH2. Zastosowany w programie algorytm jest algorytmem siłowym. Najpierw generuje hasło, potem oblicza z niego sha1 i porównuje z hashem podanym jako argument programu. Gdy są takie same program wypisuje hasło oraz czas obliczeń. Jeśli nie są zgodne wtedy próbuje szczęścia z kolejnym hasłem. Dla potrzeb tego projektu dokonano kilku założeń dotyczących hasła:
Program został napisany w języku C++. Wykorzystana implementacja MPI to MPICH2. Zastosowany w programie algorytm jest algorytmem siłowym. Najpierw generuje hasło, potem oblicza z niego sha1 i porównuje z hashem podanym jako argument programu. Gdy są takie same program wypisuje hasło oraz czas obliczeń. Jeśli nie są zgodne wtedy próbuje szczęścia z kolejnym hasłem. Dla potrzeb tego projektu dokonano kilku założeń dotyczących hasła:
\begin{lista} \begin{lista}
\item Hasło może mieć długość od 2 do 10 znaków. \item Hasło może mieć długość od 2 do 10 znaków.
@ -235,7 +235,7 @@ Hasło są przydzielane do procesów kolejno, czyli dla n-ty proces otrzymuje n-
W programie istnieje pewnego rodzaju ograniczenie co do ilości znaków z których generowane jest hasło. Powinna to być liczba typu ${}2^{n}$ (w tym projekcie jest to 64). Wynika to z tego, że główny licznik pętli odpowiedzialnej za generowanie haseł operuje przepełnieniem bitowym. Możliwość użycia innej niż ${}2^{n}$ liczby znaków nie pozostała by bez wpływu na szybkość całego programu. W programie istnieje pewnego rodzaju ograniczenie co do ilości znaków z których generowane jest hasło. Powinna to być liczba typu ${}2^{n}$ (w tym projekcie jest to 64). Wynika to z tego, że główny licznik pętli odpowiedzialnej za generowanie haseł operuje przepełnieniem bitowym. Możliwość użycia innej niż ${}2^{n}$ liczby znaków nie pozostała by bez wpływu na szybkość całego programu.
Funkcja generująca hash SHA-1 została zaimplementowana przez autorów. W stopniu na jaki pozwalały umiejętność autorów została również zoptymalizowana pod katem jak najszybszego wykonania.
Funkcja generująca hash SHA-1 została zaimplementowana przez autorów. W stopniu na jaki pozwalały umiejętność autorów została również zoptymalizowana pod kątem jak najszybszego wykonania.
\section{Wyniki} \section{Wyniki}

Loading…
Cancel
Save