Archiwa tagu: Python

Cryptopals zestaw 2 ćwiczenie 11

Kolejny raz będziemy opierali się na właściwości trybu ECB – powtarzające się bloki w danych wejściowych powoduje powstanie powtarzających się bloków w danych wyjściowych. Nasze zadanie jest podzielone na kilka etapów. W pierwszym kroku musimy stworzyć funkcję która generuje 16-bajtowy ciąg bajtów którego będziemy używali jako klucza szyfrującego. Ja stworzyłem funkcję która przyjmuje jako parametr… Czytaj dalej »

Cryptopals zestaw 1 ćwiczenie 6

Pierwsze większe wyzwanie i z tego co piszą autorzy pomyśle jego rozwiązanie oznacza, że powinniśmy sobie poradzić z wszystkimi ćwiczeniami aż do zestawu 6. Warto się spiąć i rozwiązać je samodzielnie, dlatego zanim przejdę do opisania mojego rozwiązania omówię to na co warto szczególnie zwrócić uwagę. Pierwsze co moim zdaniem należy zrobić to funkcja o… Czytaj dalej »

Cryptopals zestaw 1 ćwiczenie 3

W tym ćwiczeniu mamy podany ciąg znaków zaszyfrowany poprzez wykonanie operacji XOR na każdym ze znaków z bajtem o nieznanej wartości (to bajt, w związku z tym wiemy, że jest to wartość z przedziału 0-255). Naszym zadaniem jest odszyfrowanie tej wiadomości. Autorzy podpowiadają nam, że najłatwiej jest XORować podaną wiadomość ze wszystkimi wartościami od 0… Czytaj dalej »

Cryptopals zestaw 1 ćwiczenie 2

W drugim ćwiczeniu naszym zadaniem jest obliczenie wartości XOR dwóch buforów o jednakowej długości. Mając na uwadze, że tego typu funkcja może przydać się w przyszłości trochę zmodyfikowałem jedno założenie – nasz funkcja będzie przyjmowała dwa bufor które nie muszą być równej długości, krótszy z buforów będzie uzupełniany wartościami 0x0. Funkcja hex_string_xor przyjmuje dwa dwa… Czytaj dalej »

Cryptopals zestaw 1 ćwiczenie 1

W tym wpisie omówię pierwsze zadanie, a ponieważ jest bardzo proste to opiszę również strukturę projektu który został stworzony na potrzeby rozwiązywania kolejnych zadań. Wszystkie rozwiązania są napisane w języku Python (wersja 3.7) przy użyciu Eclipse z wtyczką PyDev jako IDE. Struktura projektu: src – katalog w którym znajduje się kod źródłowy projektu. common –… Czytaj dalej »