.. _zre:

======================
Zadanie 2: Deszyfrator
======================

Data ogłoszenia: 24.11.2020

Termin oddania: 07.01.2021

Pliki: :download:`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``.