* 1. Jednym z najprostszych sposobów szyfrowania jest zapis liter tekstu wspak. Napisz program szyfrujący i deszyfrujący tą metodą tekst złożony z liter alfabetu łacińskiego bez spacji.
* 2. Poszukaj informacji na temat historii steganografii, czyli sztuki ukrywania informacji. Przygotuj krótką prezentację na ten temat. Uwzględnij następujące przykłady: akrostych, mikropunkt, szyfr szpilkowy.
* 3. Szyfr, w którym litery tekstu jawnego pisze się na zmianę w dwóch wierszach, nazywa się czasem parkanem. Dla tekstu AKCJAOTRZYNASTEJ otrzymamy zapis dwukolumnowy:
ACATZNSE
KJORYATJ
Sformułuj specyfikacje problemu i napisz program szyfrujący tym algorytmem.
* 4. Przygotuj prezentację na temat sposobu szyfrowania tajnej korespondencji w służbie Stanisława Augusta Poniatowskiego, ostatniego króla Polski.
* 5. Jednym z prostych szyfrów przedstawionych jest szyfr polegający na zamianie miejscami znaków na pozycjach parzystych i nieparzystych. (pierwszy znak zamieniamy miejscami z drugim, trzeci z czwartym itd.). Napisz program szyfrujący i program deszyfrujący tekst tą metodą. Przyjmij, że tekst jawny składa się z parzystej liczby liter.
** 6. Napisz program, który podany przez użytkownika tekst jawny, zapisany bez spacji, będzie szyfrować wybranym przez niego szyfrem: albo metodą kolumnową, albo szyfrem Cezara. Wybór szyfru powinien być dokonywany już po uruchomieniu programu.
** 7. Szyfr Cezara z przesunięciem (kluczem) o wartości 13 jest nazywany algorytmem ROT13. Jest on współcześnie używany w dyskusjach internetowych (w języku angielskim), aby jakaś część wiadomości nie była możliwa do odczytania przez przypadkowe osoby. Dowiedz się, dlaczego używa się przesunięcia o 13 liter. Napisz program do szyfrowania i deszyfrowania wiadomości algorytmem ROT13.
** 8. Przygotuj prezentacje na temat maszyny szyfrującej Enigma oraz historii złamania jej szyfru przez polskiego matematyka Mariana Rejewskiego. Przedstaw na osi czasu kluczowe wydarzenia związane z historią łamania szyfru Enigmy przed wybuchem II wojny światowej. Uwzględnij metodę zegara (wymyśloną przez Jerzego Różyckiego) i metodę płacht perforowanych (którą stworzył Henryk Zygalski).
** 9. Szyfr kolumnowy można stosować również w taki sposób, że kluczem jest nie liczba kolumn, ale ich kolejność (kolumny numerowane są od 0). Na przykład dla tekstu PRZESYLKACZEKAWWILLI oraz klucza 40132 szyfrogram to SCWIPYZWRLEIEAALZKKL.
Napisz program szyfrujący tą metodą.
P R Z E S
Y L K A C
Z E K A W
W I L L I
** 10. Zmodyfikuj program do szyfrowania algorytmem Cezara tak, aby pozwalał na szyfrowanie i deszyfrowanie z wykorzystaniem odwróconego szyfru Cezara.
W odwróconym szyfrze Cezara wyjściowy układ alfabetów dla klucza równego 0 ma postać:
A B C D E F G H I J K L M N O P Q R S T U W X Y Z
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
Alfabet szyfrowy dla klucza równego 16 ma postać:
A B C D E F G H I J K L M N O P Q R S T U W X Y Z
P O N M L K J I H G F E D C B A Z Y X W V U T S R Q
*** 11. Przygotuj prezentację na temat kilku wybranych metod klasycznej kryptoanalizy. W swoim opracowaniu uwzględnij nowożytny szyfr Vigenere'a i okoliczności jego złamania w XIX w.
*** 12. Dany jest szyfr polegający na odwróceniu kolejności liter w kolejnych n-literowych grupach, gdzie n jest kluczem. Napisz program szyfrujący tekst tą metodą. Przyjmij że tekst jawny na początku uzupełnia się dowolnymi literami, aby jego długość była wielokrotnością n.
***13. Napisz program szyfrujący dla szyfru Cezara, w którym wprowadzisz rozróżnienie wielkich i małych liter. Uwaga: Liczba kluczy wrośnie dwukrotnie.