Archiwum kategorii: Kryptografia

Cryptopals zestaw 4 ćwiczenie 31 i 32

przez | 5 maja 2021

Tym razem opiszę od razu rozwiązanie dwóch ćwiczeń w jednym wpisie, ponieważ to tak na prawdę jedno ćwiczenie, które różni się jedynie poziomem trudności. W związku z tym stwierdziłem, że od razu rozwiążę trudniejszą wersję, ponieważ metoda jest taka sama, po prostu wymaga kilku dodatkowych kroków, aby wyeliminować „szum” spowodowany losowymi opóźnieniami odpowiedzi serwera. Naszym… Czytaj dalej »

Cryptopals zestaw 4 ćwiczenie 30

przez | 22 kwietnia 2021

To zadanie to tak na prawdę dwa dwa poprzednie zadania połączone w całość, z tym że tym razem zamiast algorytmu SHA-1 zajmiemy się algorytmem MD4. Pierwsza rzecz, którą należy zrobić to znalezienie opisu algorytmu MD4. Ja skorzystałem z dokumentu RFC1320, który można znaleźć pod adresem https://tools.ietf.org/html/rfc1320. Różnica pomiędzy MD4 a SHA-1, która jako pierwsza rzuca… Czytaj dalej »

Cryptopals zestaw 4 ćwiczenie 29

przez | 13 kwietnia 2021

Po tym jak w poprzednim zadaniu, stworzona została implementacja SHA-1 czas na użycie jej do zaprezentowania podatności tego algorytmu. Zadanie polegać będzie na dodaniu nowej zawartości do danych zabezpieczonych wartością MAC wygenerowaną przy pomocy SHA-1 i obliczeniu nowej poprawnej wartości MAC. Przed przystąpieniem do tego zadania trzeba będzie zmodyfikować implementację algorytmu SHA-1. Można zauważyć, że… Czytaj dalej »

Cryptopals zestaw 4 ćwiczenie 28

przez | 24 marca 2021

Tym razem pozornie mało kreatywne ćwiczenie, żeby nie powiedzieć odtwórcze, ale warto jest się do niego przyłożyć i postarać się jak najlepiej zrozumieć co dokładnie robi algorytm który mamy zaimplementować. W tym zadaniu naszym celem jest implementacja algorytmu SHA-1 i nie wystarczy użyć gotowej implementacji oferowanej przez język programowania, którego używamy do rozwiązywania tych ćwiczeń.… Czytaj dalej »

Cryptopals zestaw 4 ćwiczenie 27

przez | 18 marca 2021

Tym razem nasze ćwiczenie ma za zadanie nauczyć nas dlaczego używanie klucza szyfrującego jako wektora inicjującego to bardzo zły pomysł. Do tego będziemy potrzebowali wyroczni używającej AES w trybie CBC. W zawiązku z powyższym zaczynami od stworzenia odpowiedniej wyroczni. Założenia są następujące: Wyrocznia generuje losowy klucz szyfrujący od długości 16 bajtów czyli tyle samo co… Czytaj dalej »

Cryptopals zestaw 4 ćwiczenie 26

przez | 26 listopada 2020

Tym razem bardzo proste ćwiczenie, pokazujące jedną ze słabości trybu CTR – podatność na przestawiania wartości bitów zaszyfrowanej wiadomości. Brzmi to banalnie, bo przecież atakujący nie dowie się dzięki temu jaka była treść zaszyfrowanej wiadomości, ale jak już przekonaliśmy się w ćwiczeniu 16 (https://koltys.info/blog/2020/08/06/cryptopals-zestaw-2-cwiczenie-16/) nie zawsze chodzi o to, żeby odkryć zawartość, czasami wystarczy ją… Czytaj dalej »

Cryptopals zestaw 4 ćwiczenie 25

przez | 9 listopada 2020

Nowy, czwarty już, zestaw ćwiczeń zaczynamy od powrotu do AES w trybie CTR. Po raz kolejnym musimy odszyfrować tekst zaszyfrowany wyżej wymienionym sposobem. Zgodnie z tradycją zanim przystąpimy do odszyfrowywania sekretu musimy najpierw przygotować sobie wyrocznię, którą będziemy „atakowali”. Założenia są następujące: Wyrocznie przechowuje sekret, a użytkownik może otrzymać jego zaszyfrowaną postać. Użytkownik może modyfikować… Czytaj dalej »

Cryptopals zestaw 3 ćwiczenie 24

przez | 22 października 2020

No i kończymy tym ćwiczeniem kolejny, trzeci już zestaw ćwiczeń. Nadal pozostajemy przy MT19937. Tym razem na podstawie otrzymanej zaszyfrowanej wiadomości będziemy musieli odgadnąć jaka wartość była użyta do zainicjalizowania naszego generatora liczb pseudolosowych. Najpierw musimy stworzyć sobie kolejną wyrocznię, tym razem która do „szyfrowania” używa kolejnych wartości z generatora liczb pseudolosowych i XORuje właściwą… Czytaj dalej »

Cryptopals zestaw 3 ćwiczenie 23

przez | 9 października 2020

W tym ćwiczeniu naszym zadaniem jest sklonowanie generatora liczb losowych. Sklonowany generator umożliwi nam przewidywanie kolejnych wartości zwracanych przez oryginalny generator. Zadanie na pierwszy rzut oka wydaje się niemożliwe, ale przyjżyjmy się jak wygląda funkcja generująca kolejne liczby pseudolosowe: Stan generatora zapisany jest w tablicy 624 liczb 32-bitowych, sklonowanie go będzie polegało na odtworzeniu tych… Czytaj dalej »

Cryptopals zestaw 3 ćwiczenie 22

przez | 28 września 2020

W poprzednim ćwiczeniu zaimplementowaliśmy algorytm do generowania liczb pseudolosowych. Teraz skupimy się na słabych punktach stosowania takiego rozwiązania. Na początek spróbujemy na podstawie wygenerowanej liczby odzyskać „ziarno” (albo inaczej po angielsku „seed”), czyli wartość, która została użyta do ustawienia stanu początkowego naszego generatora. Scenariusz w tym ćwiczeniu jest następujący:1. Czekamy losową ilość sekund.2. Jako ziarna… Czytaj dalej »