Witam czy ktoś mógłby mi dać kilka informacji lub porad na napisanie tego programu?Nawet nie wiem jak to zacząć:(
Wykorzystując dowolną dostępną w Internecie implementację jednego z omawianych algorytmów blokowych, napisz program szyfrujący/deszyfrujący pliki w następujących trybach:
- ECB z uzupełnieniem danych na końcu zerami do rozmiaru bloku i do daniem dodatkowego
bloku kontrolnego. - CFB z pozostawieniem niezmienionego rozmiaru pliku.
Program może być napisany w jednym ze współczesnych języków programowania (C, CPP, Java lub inne do uzgodnienia) na platformę Windows lub Unix. W obu przypadkach program powinien przyjmować parametry z linii poleceń. Jakikolwiek interfejs użytkownika nie jest wymagany i nie będzie oceniany.
Sugerowana postać linii poleceń:
Nazwa_programu <-e|d|h> <-m ecb|cfb> <-v> <-k keybits> <-i ivbits> <plik_we> <plik_wy>
<-e|d|h> Jak łatwo się domyślić informacja o tym, czy ma następować szyfrowanie (e),
deszyfrowanie (d) czy też wyświetlenie pomocy (h). Brak parametru powinien skutkować
wyświetleniem pomocy.
<-m ecb|cfb> Tryb pracy. Brak powinien skutkować trybem ECB.
<-v> Włączenie trybu gadatliwego – tylko w tym trybie powinny pojawiać się informacje o wykonywanych
właśnie czynnościach, stanie zmiennych itp. Tryb pomocny przy uruchamianiu. Można pokusić się
o kilka poziomów gadatliwości, z wysyłaniem całości przetwarzanych danych na ekran włącznie.
<-v keybits> Klucz podany w postaci HEX. Brak klucza może powodować przyjęcie jakiejś wartości
domyślnej.
<-i ivbits> Dla trybu cfb wartośc wektora początkowego w postaci HEX. Brak wektora może powodować
przyjęcie jakiejś wartości domyślnej.
<plik_we> Nazwa pliku wejściowego. Brak nazwy może powodować przyjęcie jakiejś wartości
domyślnej.
<plik_wy> Nazwa pliku wyjściowego. Brak nazwy może powodować przyjęcie jakiejś wartości
domyślnej.
- zerowanie zmiennych na początku i końcu programu
- czyszczenie pamięci w używanych buforach
- eliminacja słabych kluczy.