to get the file

Transkrypt

to get the file
Przykłady do ćwiczeń z kodowania
i kompresji
Spis Treści
Kompresja RLE!
1
Inne przykłady"
1
Szyfr Cezara!
2
Przykłady"
2
Szyfr Vigenèreʼa!
2
Szyfrowanie"
2
Odszyfrowanie"
3
Kompresja RLE
AAABBBBCDEFFGHHHHH
3A4B-3CDE2F-1G5H
Kompresja polega na podaniu, ile razy wystąpi dany znak, a następnie podaniu tego
znaku:
AAA zamieniamy na 3A
BBBB zamieniamy na 4B
Jeśli w danych wejściowych występuje grupa znaków występująca pojedynczo, to
w wyniku kompresji podajemy znak „-” (minus), następnie ilość znaków występujących
pojedynczo i wypisujemy te znaki:
G zamieniamy na -1G
CDE zamieniamy na -3CDE
Inne przykłady
AABBBBCDDDEFGHHHHHH
2A4B-1C3D-3EFG6H
Algorytmy i Struktury Danych&
mgr inż. Leszek Ciopiński&
1
Szyfr Cezara
Szyfr ten jest przykładem szyfru przesuwającego. W oryginale używano przesunięcie o 3
(i takie będzie na kolokwium), ale dopuszczalne są również inne rodzaje przesunięć.
W celu zakodowania tekstu zastępujemy każdą literę tekstu jawnego trzecią w kolejności
literą występującą w alfabecie po danym znaku:
A B C D E F G H
D E F G H
I
I
J K L M N O P Q R S T U V W X Y Z
J K L M N O P Q R S T U V W X Y Z A B C
Przykłady
Tekst jawny: &&
Szyfrogram:& &
Ala ma Asa
Dod pd Dvd
Tekst jawny: &&
Szyfrogram:& &
Wynik
Zbqln
Szyfr Vigenèreʼa
Jest szyfrem polialfabetycznym, to znaczy z różną ilością przesunięć dla kolejnych
znaków. Dlatego dla tej metody potrzebne jest oprócz tekstu do zakodowania również
hasło, określające przesunięcie dla danego słowa.
Szyfrowanie
W celu zaszyfrowania wiadomości wypisujemy tekst jawny i hasło jedno pod drugim. Jeśli
hasło jest za krótkie, wówczas je powtarzamy:
Tekst jawny: &&
Hasło:&&
&
Zadanie
TekstTe
Następnie wykorzystujemy tablicę z poprzesuwanym alfabetem, dostępną pod adresem:
http://achilles.tu.kielce.pl/Members/lciopinski/folder.2010-02-21.0388844500/algorytmy-istruktury-danych/tablica_kodowania.pdf/download
Szyfrogram uzyskujemy z odczytania liter, które znajdują się na przecięciu kolumny
i wiersza, które zaczynają się od litery hasła i tekstu jawnego:
Tekst jawny
Z
a
d
a
n
i
e
Hasło
T
e
k
s
t
T
e
Szyfrogram
S
e
n
s
g
b
i
Algorytmy i Struktury Danych&
mgr inż. Leszek Ciopiński&
2
Odszyfrowanie
Ponieważ szyfr Vigenèreʼa jest metodą symetryczną, operacji odczytywania dokonujemy
poprzez odwrotne wykonanie algorytmu.
Pierwszym etapem jest wypisanie hasła i przyporządkowanie do jego liter znaków
szyfrogramu
Hasło:&&
&
Szyfrogram:& &
KodujKoduj
Yrnimykdhx
Następnie w wierszu zaczynającym się od litery hasła odszukujemy literę z szyfrogramu
i odczytujemy znak, który znajduje się na górze kolumny zawierającej odnalezioną literę.
A B C D E F G H
I
J K L M N O P Q R S T U V W X Y Z
B C D E F G H
I
J K L M N O P Q R S T U V W X Y Z A
C D E F G H
I
J K L M N O P Q R S T U V W X Y Z A B
D E F G H
I
J K L M N O P Q R S T U V W X Y Z A B C
E F G H
I
J K L M N O P Q R S T U V W X Y Z A B C D
F G H
I
J K L M N O P Q R S T U V W X Y Z A B C D E
G H
I
J K L M N O P Q R S T U V W X Y Z A B C D E F
H
I
J K L M N O P Q R S T U V W X Y Z A B C D E F G
I
J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J K L M N O P Q R S T U V W X Y Z A B C D E F G H
I
K L M N O P Q R S T U V W X Y Z A B C D E F G H
I
J
L M N O P Q R S T U V W X Y Z A B C D E F G H
I
J K
M N O P Q R S T U V W X Y Z A B C D E F G H
I
J K L
N O P Q R S T U V W X Y Z A B C D E F G H
I
J K L M
O P Q R S T U V W X Y Z A B C D E F G H
I
J K L M N
P Q R S T U V W X Y Z A B C D E F G H
I
J K L M N O
Q R S T U V W X Y Z A B C D E F G H
I
J K L M N O P
R S T U V W X Y Z A B C D E F G H
I
J K L M N O P Q
S T U V W X Y Z A B C D E F G H
I
J K L M N O P Q R
T U V W X Y Z A B C D E F G H
I
J K L M N O P Q R S
U V W X Y Z A B C D E F G H
I
J K L M N O P Q R S T
V W X Y Z 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 A B C D E F G H
I
J K L M N O P Q R S T U V
X Y Z A B C D E F G H
I
J K L M N O P Q R S T U V W
Y Z A B C D E F G H
I
J K L M N O P Q R S T U V W X
Z A B C D E F G H
J K L M N O P Q R S T U V W X Y
Algorytmy i Struktury Danych&
I
mgr inż. Leszek Ciopiński&
3
W yniku powyższych działań odczytujemy rozkodowany tekst:
Hasło
K
o
d
u
j
K
o
d
u
j
Szyfrogram
Y
r
n
i
m
y
k
d
h
x
Tekst jawny
O
d
k
o
d
o
w
a
n
o
Algorytmy i Struktury Danych&
mgr inż. Leszek Ciopiński&
4