Sprawdź się
Szyfr Vigenère'a
Najważniejsze informacje dotyczące szyfrowania oraz deszyfrowania wiadomości za pomocą szyfru Vigenère'a oraz jego implementacji w języku Java znajdziesz w następujących e‑materiałach:
Szyfr polialfabetycznyPrHtFJ1fbSzyfr polialfabetyczny,
Implementacja szyfru polialfabetycznego w języku JavaPsGfmF0phImplementacja szyfru polialfabetycznego w języku Java.
W tej sekcji rozwiniesz – przygotowany wcześniej – projekt o nową funkcję. Będzie nią możliwość zaszyfrowania wiadomości za pomocą szyfru Vigenère'a. Implementacja nowej funkcji odbędzie się w dwóch etapach – w ramach dwóch osobnych ćwiczeń. Pierwsze z nich dotyczy utworzenia poprawnej tablicy Vigenère'a – jak na rysunku poniżej. Natomiast drugie – implementacji osobnej funkcji, wykorzystującej utworzoną tablicę do szyfrowania za pomocą szyfru Vigenère'a.
Ponieważ dotychczasowe funkcje szyfrowania i deszyfrowania operują na wielkich literach, szyfrowanie za pomocą szyfru Vigenère'a również będzie się na nich opierać. W związku z tym tablica szyfrowania ma składać się z wielkich liter.
Do istniejącego programu dopisz wnętrze funkcji wypelnijTabele()
, tak aby wypełniła tablicę tabela
(o wymiarach 26 na 26), zgodnie z tablicą Vigenère'a. Przetestuj działanie, wypisując zawartość kolejnych wierszy tabeli.
Specyfikacja:
Wynik:
Program na standardowe wyjście wypisuje zawartość kolejnych wierszy tabeli Vigenère'a (każdy od nowej linii).
Przykładowe rozwiązanie zadania:
Wykorzystując zaimplementowaną wcześniej tablicę, napisz funkcję, która będzie dokonywała szyfrowania zadanego słowa dla wprowadzonej wartości klucza, przy użyciu algorytmu Vigenère'a. Wyjście programu powinno się zgadzać z przedstawionym wyjściem. Komentarze „brakujący kod” sugerują, gdzie mają zostać dokonane zmiany. Działanie programu przetestuj, szyfrując słowo „PROGRAM” dla klucza „KLUCZ”.
Specyfikacja:
Dane:
kluczVigenere
– klucz, którym zaszyfrowana zostanie zmiennatekst
; ciąg znakówtekst
– słowo do zaszyfrowania; ciąg znaków
Wynik:
Program na standardowe wyjście wypisuje zaszyfrowane słowo.
Przykładowe wyjście:
Przykładowe rozwiązanie zadania: