Wykład 2
Przykłady
Umowa notacyjna:
Tekst (i alfabet) jawny będzie zapisywany przy użyciu
małych liter, a tekst (i alfabet) tajny — za pomocą dużych. Klucz szyfru będzie
zapisywany czcionką pogrubioną.
2.1
Szyfr Cezara
P = C
= zbiór liter alfabetu.
Klucz:
3.
Algorytm:
Każdą literę wiadomości zastępujemy literą leżącą w alfabecie o trzy miejsca
dalej, przy czym trzy litery ostatnie w alfabecie zastępujemy kolejno literami A, B, C
(lub A, Ą, B w przypadku tekstu polskiego).
a
b
c
d
e
f
g
h
i
j
k
l
m
D
E
F G H
I
J
K
L
M N
O
P
n
o
p
q
r
s
t
u
v
w
x
y
z
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
Przykład 2.1.
Słowo kryptografia szyfrujemy następująco:
k
r
y
p
t
o
g
r
a
f
i
a
N
U
B S
W
R J
U
D I
L D
Oczywiście, zamiast przesunięcia alfabetu o 3 można użyć przesunięcia o k miejsc
(1 < k ¬ 25). Liczba k jest wówczas kluczem tego szyfru.
Szyfr Cezara jest szyfrem podstawieniowym monoalfabetycznym.
4
2.2
Szyfr Polibiusza
P = C
= zbiór liter alfabetu.
Algorytm:
Wpisujemy litery alfabetu łacińskiego w kwadratową tablicę wymiaru 5 × 5
utożsamiając litery i oraz j. Tak skonstruowaną tablicę nazywamy tablicą Polibiusza.
Każdą literę tekstu jawnego zastępujemy parą liczb, z których pierwsza jest numerem
wiersza, a druga numerem kolumny tablicy Polibiusza zawierających daną literę.
1
2
3
4
5
1
a
b
c
d
e
2
f
g
h
i/j
k
3
l
m
n
o
p
4
q
r
s
t
u
5
v
w
x
y
z
Przykład 2.2.
Szyfrogramem słowa kryptografia jest
25 42 54 35 44 34 22 42 11 21 24 11.
Tak skonstruowany szyfr Polibiusza jest „szyfrem bez klucza”, a dokładniej — szy-
frem z kluczem jawnym.
Modyfikacja:
Klucz:
Dowolne ustalone słowo.
Algorytm:
Litery klucza wpisuje się kolejno wierszami do klatek tablicy Polibiusza
pomijając te litery, które w słowie kluczowym powtarzają się. Resztę klatek tablicy
wypełnia się kolejnymi niewykorzystanymi dotychczas literami alfabetu. Dalej proces
szyfrowania przebiega jak poprzednio.
Przykład 2.3.
Jeżeli kluczem jest słowo matematyka, to tablica Polibiusza przyjmuje
postać:
1
2
3
4
5
1 m
a
t
e
y
2
k
b
c
d
f
3
g
h
i/j
l
n
4
o
p
q
r
s
5
u
v
w
x
z
.
Szyfrogramem słowa kryptografia jest wtedy
21 44 15 42 13 41 31 44 12 25 33 12.
Szyfr Polibiusza jest także przykładem szyfru podstawieniowego monoalfabetyczne-
go.
5
2.3
Szyfr Vigenere’a
Do szyfrowania metodą Vigenere’a używa się poniższej tzw. tablicy Trithemiusa:
Alfabet jawny
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
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 I
J
K L
M N O P Q R S
T U V W X Y
P = C
= zbiór liter alfabetu.
Klucz:
Dowolny ustalony ciąg liter.
Algorytm:
Pierwszą literę tekstu jawnego odszukuje się w nagłówku (oznaczonym jako
„alfabet jawny”) i jako jej kryptogram przyjmuje się literę znajdującą się w tej samej
kolumnie i w wierszu, który zaczyna się pierwszą literą klucza. Podobnie szyfruje się
6
drugą literę tekstu jawnego wybierając jej odpowiednik z wiersza zaczynającego się dru-
gą literą klucza itd. W przypadku, gdy litery klucza zostają wyczerpane, do szyfrowania
następnej litery tekstu jawnego używa się ponownie pierwszej litery klucza, następnie
drugiej itd.
Przykład 2.4.
Jeżeli kluczem jest słowo tajemnica zaś tekstem jawnym słowo krypto-
grafia
, to tekst tajny otrzymuje się tak, jak to pokazano poniżej.
tekst jawny:
k
r
y
p
t
o
g
r
a
f
i
a
klucz:
t
a
j
e
m
n
i
c
a
t
a
j
tekst tajny:
D R H
T
F
B
O T A
Y
I
J
Szyfr Vigenere’a jest przykładem szyfru polialfabetycznego.
2.4
Szyfr „parkan”
Klucz:
Liczba naturalna k > 1.
Algorytm:
Tekst jawny wypisujemy w kolumnach o długości k, uzupełniając w razie
potrzeby ostatnią kolumnę dowolnie wybranymi literami. Następnie odczytujemy tekst
wierszami otrzymując tekst tajny.
Przykład 2.5.
Dla klucza równego 4 i tekstu jawnego
kryptografia jest pełna niespodzianek
mamy:
k
t
a
j
p
a
s
z
e
r
o
f
e
e
n
p
i
k
y
g
i
s
ł
i
o
a
a
p
r
a
t
n
e
d
n
b
Otrzymujemy więc tekst tajny:
KTAJPASZEROFEENPIKYGISŁIOAAPRATNEDNB.
Szyfr „parkan” jest przykładem szyfru przestawieniowego.
7
2.5
Szyfr XOR
Szyfr XOR wykorzystuje operator logiczny ⊕ zwany alternatywą wykluczającą lub XOR,
który można utożsamiać z działaniem w zbiorze {0, 1} zdefinowanym następująco:
0 ⊕ 0 = 1 ⊕ 1 = 0,
1 ⊕ 0 = 0 ⊕ 1 = 1.
P = C
= K = zbiór ciągów binarnych ustalonej długości.
Algorytm:
Szyfrowanie polega na wykonaniu operacji XOR na parach złożonych z
kolejnych wyrazów tekstu jawnego i klucza.
Przykład 2.6.
Dla przykładowych ciągów o długości 6 mamy:
tekst jawny:
1
0
0
1
0
1
klucz:
0
1
0
1
1
0
tekst tajny:
1
1
0
0
1
1
Szyfr XOR jest przykładem szyfru strumieniowego.
8