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… Dowiedz się więcej »

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ą… Dowiedz się więcej »

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ć… Dowiedz się więcej »

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ą… Dowiedz się więcej »

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… Dowiedz się więcej »

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… Dowiedz się więcej »

Cryptopals zestaw 3 ćwiczenie 21

przez | 24 września 2020

Kolejny krótki wpis bo i samo zadanie bardzo proste i nie wymagające od nas szczególnej wiedzy czy dłuższej chwili namysłu. Odstawiamy na razie na bok te wszystkie 'AESy’ i zajmiemy się generowaniem liczb pseudolosowych. Kiedy piszemy aplikacje zdarza się, że potrzebujemy wygenerować jakąś losową wartość. Chyba większość osób uczących się programowania po raz pierwszy spotkała… Dowiedz się więcej »

Cryptopals zestaw 3 ćwiczenie 20

przez | 19 września 2020

To ćwiczenie częściowo zostało już opisane w poprzednim wpisie. Wspomniałem już, że poprzednie zadanie początkowo rozwiązałem wykorzystując skrypt napisany na potrzeby zadania numer 6. Można to zrobić bo jak wiemy AES w trybie CTR generuje kolejne bloki, które są XORowane z wiadomością do zaszyfrowania. Oczywiście poprawnie zastosowany AES w trybie CTR nie pozawala w tak… Dowiedz się więcej »

Cryptopals zestaw 3 ćwiczenie 19

przez | 8 września 2020

To ćwiczenie będzie rozwiązane inaczej niż wszystkie z którymi musieliśmy się zmierzyć do tej pory. Początkowo nie do końca zrozumiałem intencje twórców, ale po dłuższym zastanowieniu się stwierdziłem, że moje pierwotne rozwiązanie pomimo, że odszyfrowało treść wiadomości to nie działało w sposób jaki mieli na myśli autorzy, ale zacznijmy od początku. W tym zadaniu dostajemy… Dowiedz się więcej »

Cryptopals zestaw 3 ćwiczenie 18

przez | 27 sierpnia 2020

W tym ćwiczeniu zapoznajemy się z szyfrowaniem AES w nowym trybie – CTR. Jest to tryb licznikowy i polega na tym, że zamiast szyfrować dane, szyfrowana jest wartość licznika a wynik szyfrowania jest XORowany z danymi, które chcemy zabezpieczyć. Przy każdym kolejnym bloku danych, licznik jest zwiększany. Początkowa wartość licznika nazywana jest NONCE, ponieważ powinna… Dowiedz się więcej »