Cryptopals zestaw 1 ćwiczenie 7

przez | 25 maja 2020

Tym razem ćwiczenie, które można rozwiązać w „5 minut” albo spędzić z nim trochę więcej czasu i się czegoś przy okazji nauczyć. Naszym zadaniem będzie odszyfrowanie zawartości pliku podanego przez autorów. Twórcy zadania podli nawet klucz użyty do zaszyfrowania treści jak i użyty tryb AES. Wszystko podane jak na dłoni. Nic tylko pobrać PyCrypto i… 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 5 i algorytm genetyczny

przez | 5 marca 2020

Kolejne łatwe ćwiczenie, dlatego w ramach bonusu demo algorytmu genetycznego zainspirowane streamem Gynvaela Coldwinda. W tym ćwiczeniu naszym zadaniem jest implementacja algorytmu, który używając podanego klucza wykona operację XOR na podanej wiadomości. Klucz jest krótszy niż wiadomość dlatego po wykonaniu operacji XOR na pierwszych n bajtach wiadomości (n to długość klucza), klucz jest używany ponownie.… Dowiedz się więcej »

Cryptopals zestaw 1 ćwiczenie 4 i polecenie MORE

przez | 23 lutego 2020

Tym razem proste zadanie. Mamy plik testowy, w którym znajduje się 327 linii z których każda może zawierać potencjalną tajną wiadomość a my musimy znaleźć tą wiadomość i ją zdekodować. Napisałem, że zadanie jest proste ponieważ, podobny problem rozwiązywaliśmy w poprzednim zadaniu, ale mieliśmy jedną linię która była zaszyfrowana. Najprościej rozwiązać ten problem sprawdzając wszystkie… 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 »

Podstawy kryptografii

przez | 20 grudnia 2019

Kryptografia czyli temat bardzo ciekawy, ale też modny i głośny (chociaż teraz już mniej ze względu na uczenie maszynowe/głębokie uczenie/SI). Nie jestem ekspertem w tej dziedzinie natomiast, zawsze chciałem zdobyć jakąkolwiek podstawową wiedzę, żeby nie być totalnym laikiem i wiedzieć mniej więcej o co w tym wszystkim chodzi i dlaczego pewne rozwiązania są złe a… Dowiedz się więcej »

Jak otworzyłem fabrykę.

przez | 13 grudnia 2019

Dzisiaj przykład jak w praktyce zastosowałem wzorzec projektowy „Fabryka” w moim hobbystycznym projekcie. Od jakiegoś czasu dłubię sobie w czasie wolnym przy swojej „grze” (https://koltys.info/projectx/). Właściwie ciężko to nazwać grą (przynajmniej póki co), przy okazji napotykam wiele ciekawych problemów (i rozwiązań np. trochę wiedzy na temat map złożonych z heksów: https://www.redblobgames.com/grids/hexagons/) a przy okazji mogę… Dowiedz się więcej »

Jak programować nieobiektowo programując obiektowo

przez | 6 grudnia 2019

Kolejna ciekawa sytuacja, z którą prawdopodobnie nie jeden programista się prędzej czy później zetknie, albo nawet sam doprowadzi do jej zaistnienia – pozbycie się zalet programowania obiektowego. Kiedy idziemy na rozmowę kwalifikacyjną i zacznie się temat programowania obiektowego zostaniemy zapytani o to co to jest polimorfizm i dziedziczenie. Oczywiście mamy na taką sytuację przygotowaną wykutą… Dowiedz się więcej »