Zadanie 2: Deszyfrator

Data ogłoszenia: 24.11.2020

Termin oddania: 07.01.2021

Pliki: bskre2020.tar.gz

Program decrypt służy do czytania zaszyfrowanych plików zapisanych w nieznanym formacie. Pliki te są zabezpieczone hasłem.

Zadanie polega na napisaniu własnego programu będącego w stanie deszyfrować pliki w tym samym formacie.

Aplikacja

W archiwum znajdują się następujące pliki:

  • decrypt: program pozwalający na odczyt zabezpieczonych plików. Uruchomienie go z jednym argumentem wypisuje informacje o zabezpieczonym pliku: typ użytego szyfru (łatwy lub trudny) i oryginalna nazwa pliku. Uruchomienie go z dwoma argumentami (drugim jest hasło) odszyfrowuje plik (i zapisuje go pod oryginalną nazwą).

  • hello.enc: zabezpieczony plik o zawartości „Hello, world!”, zaszyfrowany łatwym szyfrem.

  • hello.henc: zabezpieczony plik o zawartości „Hello, world!”, zaszyfrowany trudnym szyfrem.

  • keys.txt: hasła do powyższych plików.

  • encrypt.py: program, którym można wygenerować więcej zabezpieczonych plików

Aby wygenerować plik przykładowy zaszyfrowany łatwym szyfrem, wykonujemy:

python3 encrypt.py plik.png plik.png.enc

Aby wygenerować plik przykładowy zaszyfrowany trudnym szyfrem, wykonujemy:

python3 encrypt.py --hard plik.png plik.png.enc

Format rozwiązania

Jako rozwiązanie należy przesłać:

  • Opis formatu oraz samego procesu dojścia do rozwiązania.

  • Skrypty użyte do analizy formatu (o ile zostały jakieś napisane).

  • Program (razem ze źródłami, jeśli został napisany w języku kompilowanym), który deszyfruje podany plik.

Kryteria oceny

Za rozwiązanie można dostać następującą maksymalną liczbę punktów, w zależności od funkcjonalności:

  • samo odtworzenie hasła do pliku (bez deszyfrowania): 3 punkty

  • odszyfrowanie pliku mając podane hasło (szyfr łatwy): 3 punkty

  • odszyfrowanie pliku mając podane hasło (oba szyfry): 5 punktów

  • odszyfrowanie pliku bez podanego hasła (szyfr łatwy): 6 punktów

  • odszyfrowanie pliku bez podanego hasła (oba szyfry): 8 punktów

Rozwiązania należy wysłać mailem na adres mwk@mimuw.edu.pl.