Archiwa tagu: Python

Cryptopals zestaw 2 ćwiczenie 13

przez | 9 lipca 2020

Kolejne ćwiczenie w którym „pastwimy się” nad trybem ECB i znów wykorzystujemy właściwość tego trybu, ale tym razem trochę inaczej. W trybie ECB każdy blok danych jest od siebie niezależny dlatego, dane zaszyfrowane można przemieszać i po odszyfrowaniu uzyskamy prawidłowe dane, ale w innej kolejności. Trzeba tylko zadbać o to, żeby mieszać dane bloki danych… Dowiedz się więcej »

Cryptopals zestaw 2 ćwiczenie 12

przez | 6 lipca 2020

I tym razem będziemy wykorzystywali własność trybu ECB, ale teraz dostaniemy bardzo twardy dowód na to, że używanie AES w tym trybie to bardzo zły pomysł. Na początek będziemy potrzebowali tzw. wyroczni, albo po angielsku Oracle. Wyrocznia to taki fajny i bardzo interesujący byt, posiada losowo wygenerowany klucz przy pomocy którego szyfrowane są dane przekazywane… Dowiedz się więcej »

Cryptopals zestaw 2 ćwiczenie 11

przez | 30 czerwca 2020

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

Cryptopals zestaw 2 ćwiczenie 10

przez | 10 czerwca 2020

Ćwiczenie numer 10 jest naturalną kontynuacją ćwiczenia numer 7 z zestawu 1 (https://koltys.info/blog/2020/05/25/cryptopals-zestaw-1-cwiczenie-7/ ). Jedyne co musimy zrobić do dodanie do kodu, który już stworzyliśmy nowego trybu – CBC. Przy okazji omawiania trybu ECB wspomniałem, że ma on bardzo poważną wadę, którą zaprezentowałem przy pomocy obrazka. Chodziło o to, że każdy blok danych który się… Dowiedz się więcej »

Cryptopals zestaw 1 ćwiczenie 6

przez | 6 kwietnia 2020

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

Cryptopals zestaw 1 ćwiczenie 3

przez | 15 lutego 2020

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

Cryptopals zestaw 1 ćwiczenie 2

przez | 6 lutego 2020

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

Cryptopals zestaw 1 ćwiczenie 1

przez | 20 stycznia 2020

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