Niebezpieczna kryptografia

Zadania kwalifikacyjne są tutaj.

Opis

Od kiedy tylko ludzie się komunikują wzajemnie, pojawiła się potrzeba, aby móc taką komunikację zabezpieczyć przed niechcianymi oczyma. Przez setki lat, ludzie opracowywali lepsze metody szyfrowania, a inni zajmowali się znajdywaniem ich słabości. Dopiero w XX wieku udało się lepiej określić zakres tego czym jest kryptografia oraz czego od niej wymagamy. Są to narodziny nowoczesnej kryptografii, która zdołała zyskać dużo szersze znaczenie, gdyż obecnie w tej dziedzinie znajdziemy nie tylko szyfrowanie, ale też autentykację wiadomości, bezpieczną wymianę współdzielonych sekretów, szyfrowanie asymetryczne (co w praktycznej formie jest nowym wynalazkiem), dowody z wiedzą zerową (czyli udowodnienie, że wie się o czymś, bez wyjawiania tej informacji), a także wiele innych schematów, których kategoryzacja nie jest oczywista. Pomimo wysiłków wielu znamienitych osób, pomimo dowodów bezpieczeństwa metod, w dalszym ciągu pozostaje jednak prawdą stwierdzenie, że kryptografia nie jest intuicyjna. Bardzo często, pomysły które mamy wydają się świetne, ale wystarczy chwila, aby odkryć potężne problemy w działaniu. Podobnie bywa z niewłaściwym użyciem uznanych i stosowanych metod - bardzo często wypaczają one całkowity sens użycia danego rozwiązania.

Forma

Warsztaty będą polegały na szukaniu słabości w przedstawionych systemach, a także próbach ich naprawy. Pojawią się także wstawki wykładowe. Mam także nadzieję zmieścić nieco teoretycznych podstaw kryptografii (np. co to właściwie znaczy, że szyfr jest bezpieczny), a także poopowiadać o niektórych mało znanych problemach kryptograficznych, nawet jeśli nie przystąpimy do ich łamania.

Wymagania

Nie trzeba wiedzieć o kryptografii nic, natomiast warto nie gubić się w matematyce (szczególnie podstawy teorii liczb i teorii prawdopodobieństwa). Być może najważniejsze będzie, aby radzić sobie względnie sprawnie z programowaniem, gdyż wiele zagadek będzie nie do rozwiązania w inny sposób, wobec czego trzeba mieć z sobą komputer. Nie będę w żaden sposób rozróżniał między językami programowania, ale nie ze wszystkim będę w stanie pomóc. Jeśli nie wiesz co wybrać, polecam szczerze Pythona, którego warto poznać przynajmniej w zakresie umiejętności czytania, gdyż w nim zazwyczaj będą zaimplementowane zagadki.

Materiały

Dobrym wprowadzeniem do kryptografii jest książka Crypto 101 Z innych źródeł, trzeba wspomnieć stronę Crypto Pals, z której będę częściowo korzystał w przygotowaniu zadań warsztatowych.