Kryptografia Wyklad z podstaw klasycznej kry

background image

Kryptografia — wyk lad dla IV roku

Kryptografia

Wyk lad z podstaw klasycznej

kryptografii z elementami

kryptografii kwantowej

dla student´

ow IV roku

Serdecznie

witam!

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

0

background image

Kryptografia — wyk lad dla IV roku

Literatura

• M. Kuty lowski i W. B. Strothmann Kryptografia: Teoria

i praktyka zabezpieczania system´

ow komputerowych

, Wyd.

READ ME, Warszawa, 1999, drugie wydanie dost

,

epne w

ksi

,

egarniach

• B. Schneier Kryptografia dla praktyk´

ow

, WNT, Warszawa,

2002, wydanie drugie

• R. Wobst, Kryptologia. Budowa i lamanie zabezpiecze´

n

,

RM, Warszawa, 2002

• A. J. Menezes, P. C. van Oorschot, S. A. Vanstone

Handbook of Applied Cryptography

, CRC Press, 1997, New

York, dost

,

epna w Internecie

• S. J. Lomonaco A quick glance at quantum cryptography,

LANL quant-ph archive, quant-ph/9811056, 1998

• S. J. Lomonaco A talk on quantum cryptography or how

Alice outwits Eve

, LANL quantum-ph archive, quant-

ph/0102016, 2001

• N. Gisin, G. Ribordy, W. Titel, H. Zbinden Quantum

cryptography

, LANL quant-ph archive, quant-ph/0101098,

2001

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

1

background image

Kryptografia — wyk lad dla IV roku

Terminologia

Kryptografia

— dziedzina wiedzy zajmuj

,

aca si

,

e zabez-

pieczaniem informacji (szyfrowanie)

Kryptoanaliza

— lamanie szyfr´ow

Kryptologia

— dzia l matematyki, kt´ory zajmuje si

,

e

podstawami metod kryptograficznych (kryptografia +
kryptoanaliza)

G l´

owne postacie

?

Alicja

— nadawca informacji

?

Bolek

— odbiorca informacji

?

Ewa

— pods luchuj

,

aca kana l przesy lowy i usi-

luj

,

aca przechwyci´

c informacj

,

e przeznaczon

,

a dla

Bolka

Ewa

Alicja

=⇒

Bolek

Szyfrowanie i deszyfrowanie

tekst jawny

M

szyfrowanie

=⇒

E

K

(M ) = C

kryptogram

C

deszyfrowanie

=⇒

D

K

(C) = M

tekst jawny

M

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

2

background image

Kryptografia — wyk lad dla IV roku

Algorytmy

symetryczne

— klucz do szyfrowania i deszyfrowania

jest ten sam (

klucz tajny

) — DES, IDEA

asymetryczne

— klucze do szyfrowania i deszyfrowa-

nia s

,

a r´o˙zne (

klucz jawny albo publiczny

— RSA,

ElGamal)

Przyk lad kryptogramu

• tekst jawny

Wyk lad z podstaw klasycznej kryptografii z elementami kryptografii kwantowej

• kryptogram (GnuPG)

hQEOA+npwcy1l0+VEAP+IrpTozmtpWBINXV5koW5sBC86EAelZTrEXrzUHohenPo

ohzkgIoBH17Rvu46hZUsHjeHyH74RI1Lv0klHbtBOLiCLvZfdtBWFFtzr4j4kDt7

n7kGMrJCxwOKuZIVCdMrRS9jvcBgFydYIeq/jkA3VvPGU4nT3AEyqiZ+xkrPRvsE

AJ59+4YDc1sbccJdu6nyRMJ2rcYH+SoS+BDgUmkopkG2KCjnQHArUWGq9N1v3ULH

dRfKwl4kgOK2EQGTFaQxjGXqyK41MS5noOZhZ8nHgJ4N9vE/TH/CaTiWgLQyXoKt

4J4xOJ5wx6rjNIK5MRl37XxWr3D8xDwWBGtKFGLllcV/0ogBymNlqBWZB6qi/xZo

cLdPWR94WmIvpkxWsR5HZhU06K6D7l/KgSarosSDwpOtT6c/21epCZvuvrfnq8pm

lpTXqVuHVsZNGCp599pJCkgLTxdQDyV0xjD8feVEtX2pfHxdWMORMdEG2QGfWSCa

z0hvf2t7B+7lFQsK+TPi3+YQMaoXK+XmAyPz =vRaX

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

3

background image

Kryptografia — wyk lad dla IV roku

Podstawowe zastosowania

• ochrona danych

? dane na dyskach

? przesy lanie danych poprzez linie nara˙zone na pods luch

• uwierzytelnianie dokument´ow i os´ob

• ochrona prywatno´sci korespondencji elektronicznej

• elektroniczny notariusz

• podpis cyfrowy

• pieni

,

adze cyfrowe

• wybory elektroniczne

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

4

background image

Kryptografia — wyk lad dla IV roku

Jak to dzia la: algorytm symetryczny

1. Alicja i Bolek uzgadniaj

,

a algorytm i klucz jakich b

,

ed

,

a

u˙zywa´c

2. Alicja szyfruje tekst u˙zywaj

,

ac uzgodnionego algorytmu i

klucza otrzymuj

,

ac kryptogram

3. Alicja przesy la kryptogram do Bolka

4. Bolek deszyfruje kryptogram u˙zywaj

,

ac tego samego

algorytmu i klucza otrzymuj

,

ac tekst jawny

Problemy:

? klucz musi by´c przekazywany w spos´ob tajny

? je´sli Ewa wejdzie w posiadanie klucza to mo˙ze deszy-

szyfrowa´c wszystko, a nawet podszy´c si

,

e pod Alicj

,

e

? je´sli ka˙zda para korespondent´ow w sieci dysponuje

w lasnym kluczem to liczba kluczy szybko ro´snie dla
kogo´s kto utrzymuje kontakt z wieloma osobami

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

5

background image

Kryptografia — wyk lad dla IV roku

Jak to dzia la: algorytm asymetryczny

1. Alicja i Bolek uzgadniaj

,

a kryptosystem z kluczem pu-

blicznym, kt´orego b

,

ed

,

a u˙zywa´c

2. Bolek przesy la Alicji sw´oj klucz publiczny

3. Alicja szyfruje wiadomo´s´c kluczem publicznym Bolka i

przesy la kryptogram do Bolka

4. Bolek deszyfruje kryptogram u˙zywaj

,

ac swojego klucza

prywatnego

lub

u˙zytkownicy sieci uzgadniaj

,

a kryptosystem i przesy laj

,

a

swoje klucze publiczne do bazy na znanym serwerze i wtedy
protok´o l wygl

,

ada jeszcze pro´sciej

1. Alicja i Bolek pobieraj

,

a klucze publiczne z serwera

2. Alicja szyfruje wiadomo´s´c kluczem publicznym Bolka i

wysy la kryptogram do Bolka

3. Bolek deszyfruje wiadomo´s´c Alicji u˙zywaj

,

ac w lasnego

klucza prywatnego

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

6

background image

Kryptografia — wyk lad dla IV roku

Kryptosystem hybrydowy

1. Bolek wysy la do Alicji sw´oj klucz publiczny

2. Alicja generuje losowy klucz K dla obecnej sesji, szyfruje

go kluczem publicznym Bolka i wysy la kryptogram klucza
E

B

(K) do Bolka

3. Bolek deszyfruje kryptogram klucza u˙zywaj

,

ac swojego

klucza prywatnego, D

B

(E

B

(K))=K, otrzymuj

,

ac klucz K

dla obecnej sesji

4. oboje u˙zywaj

,

a klucza K i symetrycznego algorytmu do

szyfrowania i deszyfrowania informacji przesy lanych w
czasie tej sesji

Uwagi:

? algorytmy symetryczne s

,

a szybsze ni˙z algorytmy

asymetryczne, co ma znaczenie przy przesy laniu du˙zej
ilo´sci danych

? je´sli Ewa zdob

,

edzie klucz K, to mo˙ze go u˙zy´c do

deszyfrowania jedynie aktualnej sesji, potem ju˙z jest
bezu˙zyteczny

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

7

background image

Kryptografia — wyk lad dla IV roku

Podpis cyfrowy: kryptosystem z kluczem

publicznym

1. Alicja szyfruje dokument u˙zywaj

,

ac swojego klucza

prywatnego, podpisuj

,

ac w ten spos´ob dokument

2. Alicja przesy la tak podpisany dokument do Bolka

3. Bolek deszyfruje dokument u˙zywaj

,

ac klucza publicznego

Alicji, weryfikuj

,

ac w ten spos´ob podpis Alicji

Uwagi:

? podpis jest prawdziwy; Bolek weryfikuje go deszyfruj

,

ac

kryptogram kluczem publicznym Alicji

? podpis nie mo˙ze by´c sfa lszowany; tylko Alicja zna jej

klucz prywatny

? podpis nie mo˙ze by´c przeniesiony do innego dokumentu

? podpisany dokument nie mo˙ze by´c zmieniony; zmie-

niony dokument nie da si

,

e rozszyfrowa´c kluczem

publicznym Alicji

? podpis jest niezaprzeczalny;

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

8

background image

Kryptografia — wyk lad dla IV roku

Jednokierunkowe funkcje hashuj

,

ace (skr´

otu)

• dla ka˙zdego X latwo jest obliczy´c H(X)

• H(X) ma tak

,

a sam

,

a d lugo´s´c dla wszystkich tekst´ow X

• dla zadanego Y znalezienie takiego X, ˙ze H(X) = Y jest

praktycznie niemo˙zliwe

• dla zadanego X trudno znale´z´c X

0

takie, ˙ze H(X) =

H(X

0

)

Elektroniczny notariusz

• dla danego dokumentu X obliczamy warto´s´c H(X) i

publikujemy lub deponujemy u notariusza warto´s´c H(X)

• chc

,

ac udowodni´c prawdziwo´s´c dokumentu X przedsta-

wiamy dokument, obliczamy H(X) i por´ownujemy z
opublikowan

,

a wcze´sniej warto´sci

,

a

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

9

background image

Kryptografia — wyk lad dla IV roku

Szyfr Cezara

• szyfr podstawieniowy monoalfabetyczny

ABCDEFGH I J KLMNOPR S T UVWXYZ
DEFGH I J KLMNO P R S TUVWXY Z ABC

tekst jawny=⇒KRYP T OGRAF I A
kryptogram=⇒

NUBTW S J UD I LD

Szyfr Vigen`

ere’a

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

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
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

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

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
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

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
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

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

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

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

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

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

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

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

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

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

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

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
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
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

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

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
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

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

klucz =⇒

S Z Y MPAN S S ZYM

tekst =⇒KR Y P TOGRAF I A
krypt.=⇒

CPWC I OU I SEGM

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

10

background image

Kryptografia — wyk lad dla IV roku

Operacja xor i one-time pad — szyfr

Vernama

0 ⊕ 0

= 0

0 ⊕ 1

= 1

1 ⊕ 0

= 1

1 ⊕ 1

= 0

• tekst jawny jest ci

,

agiem bit´ow M=m

1

, m

2

, . . . , m

n

• wybieramy losowy ci

,

ag bit´ow K=k

1

, k

2

, . . . , k

n

, kt´ory

stanowi klucz

• szyfrowanie polega na wykonaniu operacji xor bit po

bicie;

otrzymujemy w ten spos´

ob losowy ci

,

ag bit´

ow stanowi

,

acych

kryptogram C=c

1

, c

2

, . . . , c

n

, gdzie c

i

= m

i

⊕ k

i

• operacja ta jest odwracalna;

poniewa˙z a⊕a = 0 i a⊕b⊕b = a, zatem c

i

⊕k

i

= (m

i

⊕k

i

)⊕k

i

=

m

i

• kryptogram jest losowym ci

,

agiem n bit´ow

Je´sli k

i

= m

i

to c

i

= 0, w przeciwnym wypadku c

i

= 1;

prawdopodobie´

nstwo, ˙ze c

i

= 0 jest r´

owne

1
2

niezale˙znie od

warto´sci m

i

, zatem i-ty bit kryptogramu jest losowy

• szyfr ten jest nie do z lamania —

bezpiecze´

nstwo do-

skona le

— nie mo˙zna uzyska´c ˙zadnej informacji o tek´scie

jawnym bez znajomo´sci klucza

Poniewa˙z c

i

= m

i

⊕ k

i

implikuje k

i

= m

i

⊕ c

i

, a kryptogram

c

1

, c

2

, . . . , c

n

odpowiada ka˙zdemu mo˙zliwemu tekstowi jawnemu

z takim samym prawdopodobie´

nstwem, to na podstawie samego

kryptogramu nie wiemy nic o tek´scie jawnym

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

11

background image

Kryptografia — wyk lad dla IV roku

Problemy:

? klucz musi by´c wcze´sniej uzgodniony przez Alicj

,

e i

Bolka

? klucz musi by´c wybrany naprawd

,

e losowo, co nie jest

latwe

? klucz musi by´c przechowywany w bezpieczny spos´ob

? klucz musi by´c co najmniej tak d lugi jak szyfrowany

tekst

Przyk lad:

tekst jawny =⇒

S

Z

Y

F

R

binarnie

=⇒ 01010011 01011010 01011001 01000110 01010010

klucz

=⇒

01110010 01010101 11011100 10110011 00101011

kryptogram =⇒

00100001 00001111 10000101 11110101 01111001

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

12

background image

Kryptografia — wyk lad dla IV roku

DES — Data Encryption Standard

• w 1981 r. przyj

,

ety w USA jako standard do cel´ow

cywilnych

• algorytm symetryczny

• szczeg´o ly algorytmu zosta ly opublikowane (podejrzenia o

tylne drzwi

)

• szyfruje bloki 64 bitowe (8 liter ASCII z bitem parzysto´sci)

• klucze s

,

a efektywnie 56 bitowe (64 bity minus 8 bit´ow

parzysto´sci); obecnie uwa˙za si

,

e, ˙ze taka d lugo´s´c klucza jest

zbyt ma la

Etapy DES

• wej´scie — 64 bitowy blok

• permutacja pocz

,

atkowa

• blok zostaje podzielony na lew

,

a i praw

,

a po low

,

e po 32 bity

ka˙zda

• 16 rund identycznych operacji opisanych funkcj

,

a f , w

czasie kt´orych dane prawej po lowy s

,

a przekszta lcane z

u˙zyciem klucza

? w czasie ka˙zdej rundy bity klucza s

,

a przesuwane, a

nast

,

epnie 48 bitowy podklucz jest wybierany z 56

bitowego klucza

? prawa cz

,

e´s´c danych jest rozszerzana do 48 bit´ow za

pomoc

,

a permutacji rozszerzaj

,

acej a nast

,

epnie podlega

operacji xor z 48 bitami podklucza

? wynik wysy lany jest do 8 S-boks´ow, kt´ore produkuj

,

a

nowe 32 bity

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

13

background image

Kryptografia — wyk lad dla IV roku

? otrzymane 32 bity s

,

a permutowane w P-boksie

• wynik tych 4 operacji stanowi

,

acych funkcj

,

e f podlega

operacji xor z lew

,

a po low

,

a i staje si

,

e now

,

a praw

,

a po low

,

a

• stara prawa po lowa staje si

,

e now

,

a lew

,

a po low

,

a, i tak 16

razy

• permutacja ko´

ncowa

• kryptogram

Je´sli L

i

i R

i

s

,

a lew

,

a i praw

,

a po low

,

a dla i-tej rundy, K

i

jest

podkluczem dla tej rundy, to tej rundy mamy

L

i

=

R

i−1

R

i

=

L

i−1

⊕ f (R

i−1

, K

i

)

• deszyfrowanie DES-em polega na przeprowadzeniu tych

samych operacji co dla szyfrowania tylko podklucze
wyst

,

epuj

,

a w odwrotnej kolejno´sci

Poniewa˙z

R

i−1

=

L

i

L

i−1

=

R

i

⊕ f (R

i−1

, K

i

) = R

i

⊕ f (L

i

, K

i

)

to znaj

,

ac L

i

, R

i

oraz K

i

mo˙zemy obliczy´c L

i−1

i R

i−1

.

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

14

background image

Kryptografia — wyk lad dla IV roku

PSfrag replacements

L

0

R

0

L

1

R

1

L

15

R

15

L

16

R

16

K

1

K

2

K

15

K

16

f

f

f

64

64

64

64

32

32

32

32

32

48

permutacja pocz

,

atkowa

permutacja ko´

ncowa

tekst jawny

kryptogram

Rysunek 1: Schemat dzia lania DES

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

15

background image

Kryptografia — wyk lad dla IV roku

PSfrag replacements

L

i−1

R

i−1

L

i

R

i

klucz

klucz

K

i

permutacja

S-boksy (S

1

, S

2

, . . . , S

8

)

permutacja rozszerzaj

,

aca

permutacja zw

,

e˙zaj

,

aca

32

32

32

32

32

48

48

28

28

28

28

rotacja

rotacja

Rysunek 2: Jedna runda DES

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

16

background image

Kryptografia — wyk lad dla IV roku

Elementy DES

• permutacje pocz

,

atkowa i ko´

ncowa nie maj

,

a znaczenia

kryptograficznego (u latwiaj

,

a operowanie danymi w baj-

tach)

IP 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4

62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7

IP

1

40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25

Tablica 1: Permutacja pocz

,

atkowa IP i ko´

ncowa IP

1

(tablice

te czytamy od lewej do prawej, od g´

ory w d´

o l odczytuj

,

ac kolejne

bity wyniku, a numery umieszczone na kolejnych pozycjach tabeli

oznaczaj

,

a numer bitu na wej´sciu, np. bit 58 wej´scia jest pierwszym

bitem wyj´scia, itd.)

• generowanie podkluczy

? z 64 bitowego losowego klucza otrzymuje si

,

e 56 bitowy

ignoruj

,

ac co ´osmy bit i dokonuj

,

ac permutacji KP

KP 57 49 41 33 25 17 9 1 58 50 42 34 26 18

10 2 59 51 43 35 27 19 11 3 60 52 44 36
63 55 47 39 31 23 15 7 62 54 46 38 30 22
14 6 61 53 45 37 29 21 13 5 28 20 12 4

Tablica 2: Permutacja klucza

? 56 bitowy klucz dzieli si

,

e na dwie po lowy po 28 bit´ow

? po lowy s

,

a przesuwane cyklicznie w lewo o 1 lub 2 bity

w zale˙zno´sci od rundy wg regu ly

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

17

background image

Kryptografia — wyk lad dla IV roku

runda

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

przesuni

,

ecie 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Tablica 3: Przesuni

,

ecia po l´owek klucza

? permutacja z kompresj

,

a CP (permutowany wyb´or) daje

48 bit´ow podklucza

CP 14 17 11 24 1 5 3 28 15 6 21 10

23 19 12 4 26 8 16 7 27 20 13 2
41 52 31 37 47 55 30 40 51 45 33 48
44 49 39 56 34 53 46 42 50 36 29 32

Tablica 4: Permutacja zw

,

e˙zaj

,

aca

• permutacja z rozszerzeniem rozszerza 32 bity R

i

do 48

bit´ow

EP 32 1 2 3 4 5 4 5 6 7 8 9

8 9 10 11 12 13 12 13 14 15 16 17

16 17 18 19 20 21 20 21 22 23 24 25
24 25 26 27 28 29 28 29 30 31 32 1

Tablica 5: Permutacja z rozszerzeniem

• S-boksy

? wynik operacji xor na rozszerzonym R

i

i K

i

dzielony

jest na 8 cz

,

e´sci po 6 bit´ow, z kt´orych ka˙zda przechodzi

do oddzielnego S-boksu (S

1

, . . . , S

8

)

? 6 bit´ow wchodz

,

acych do S-boksu przekszta lcanych

jest w 4 bity wyj´sciowe w specjalny spos´ob pierwszy i
ostatni bit 6 bit´ow wej´sciowych daje liczb

,

e dwubitow

,

a

od 0–3 oznaczaj

,

ac

,

a wiersz S-boksu, za´s bity 2–5 daj

,

a

liczb

,

e 4-bitow

,

a od 0–15, kt´ora odpowiada kolumnie

tabeli.

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

18

background image

Kryptografia — wyk lad dla IV roku

S

1

14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7

0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0

15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

S

2

15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10

3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15

13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

S

3

10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7

1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

S

4

7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15

13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4

3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

S

5

2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9

14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6

4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14

11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

S

6

12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8

9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

S

7

4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1

13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6

1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

S

8

13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7

1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

Tablica 6: S-boksy

Np. dla 110011 na wej´sciu, 1 i 6 bit daj

,

a 11

2

= 3

10

,

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

19

background image

Kryptografia — wyk lad dla IV roku

za´s bity 2–4 daj

,

a 1001

2

= 9

10

, na przeci

,

eciu wiersza

3 i kolumny 9 S

1

mamy liczb

,

e 11

10

= 0111

2

(wiersze

i kolumny liczymy od zera). W wyniku otrzymujemy
0111.

• wyniki z 8 S-boks´ow s

,

a l

,

aczone w 32 bitow

,

a liczb

,

e

• na tych 32 bitach dokonuje si

,

e permutacji wg Tablicy 7

oraz operacji xor z 32 bitami lewej po lowy otrzymuj

,

ac

now

,

a praw

,

a po low

,

e, kt´ora przekazywana jest do nast

,

epnej

rundy

16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10

2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25

Tablica 7: Pertmutacja (P -boks)

Trzykrotny DES

Rozszerzenie algorytmu DES, w kt´orym stosuje si

,

e dwa klucze

K

1

i K

2

Szyfrowanie

1. wiadomo´s´c szyfrowana jest kluczem K

1

2. wynik kroku 1. deszyfrowany jest kluczem K

2

3. wynik kroku 2. jest ponownie szyfrowany kluczem K

1

Deszyfrowanie

1. kryptogram deszyfrowany jest kluczem K

1

2. wynik kroku 1. szyfrowany jest kluczem K

2

3. wynik kroku 2. jest powt´ornie deszyfrowany kluczem

K

1

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

20

background image

Kryptografia — wyk lad dla IV roku

Tryby szyfrowania: szyfrowanie blokowe

ECB — Electronic Codebook

(Elektroniczna ksi

,

a˙zka

kodowa)
Tekst jawny dzielony jest na bloki o d lugo´sci 64 bity i
ka˙zdy blok jest oddzielnie szyfrowany tym samym kluczem

? zaleta — utrata lub uszkodzenie pojedynczych blok´ow

nie ma wp lywu na mo˙zliwo´s´c deszyfrowania pozosta-
lych; nadaje si

,

e do szyfrowania baz danych

? wada — mo˙zliwa jest modyfikacja kryptogramu bez

znajomo´sci klucza

CBC — Cipher Block Chaining

(Wi

,

azanie blok´ow)

Szyfrowanie kolejnego bloku zale˙zy od wyniku szyfrowania
poprzedniego bloku; taki sam blok tekstu jawnego jest w
r´o˙znych miejscach szyfrowany inaczej — kolejny blok tek-
stu jawnego jest poddawany operacji xor z kryptogramem
poprzedniego bloku.

Matematycznie wygl

,

ada to nast

,

epuj

,

aco:

C

1

=

E

K

(M

1

⊕ I)

C

i

=

E

K

(M

i

⊕ C

i−1

)

M

1

=

D

K

(C

1

⊕ I)

M

i

=

D

K

(C

i

) ⊕ C

i−1

gdzie M

i

jest i-tym blokiem wiadomo´sci, C

i

i-tym blokiem

kryptogramu, za´s I jest losowym ci

,

agiem bit´

ow, kt´

ory jest

przesy lany bez szyfrowania

? zalety — takie same bloki tekstu jawnego maj

,

a r´o˙zne

kryptogramy; zmiana bitu (przek lamanie) wewn

,

atrz

jednego bloku prowadzi do zmiany tekstu po deszyfro-
waniu tylko w danym bloku i nast

,

epnym

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

21

background image

Kryptografia — wyk lad dla IV roku

? wady — nie mo˙zna usun

,

a´c ˙zadnego bloku z kryp-

togramu; nie nadaje si

,

e do szyfrowania baz danych;

nieodporny na zak l´ocenia (dodatkowy bit lub utrata
jednego bitu psuj

,

a dalszy przekaz)

CFB — Cipher Feedback

(Szyfrowanie ze sprz

,

e˙zeniem

zwrotnym)
Szyfrowaniu podlegaj

,

a jednostki mniejsze ni˙z blok (64

bity), np. jeden znak ASCII (1 bajt = 8 bit´ow). Schemat
dzia lania przedstawiony jest na Rys. 3. Tryb wa˙zny w
zastosowaniach sieciowych, np. komunikacja pomi

,

edzy

klawiatur

,

a i serwerem. Istotnym elementem CFB jest

rejestr przesuwaj

,

acy.

• Dzia lanie CFB

1. na pocz

,

atku rejestr przesuwaj

,

acy zawiera losowy ci

,

ag

64 bit´ow

2. zawarto´s´c rejestru przesuwaj

,

acego jest szyfrowana za

pomoc

,

a klucza K np. algorytmem DES

3. 8 pierwszych bit´ow kryptogramu jest dodawane mo-

dulo 2 z 8 bitami reprezentuj

,

acymi liter

,

e wiadomo´sci

(M

i

) daj

,

ac kryptogram C

i

przesy lany do odbiorcy

4. C

i

jednocze´snie przesy lane jest do rejestru przesu-

waj

,

acego zajmuj

,

ac ostatnie 8 bit´ow i przesuwaj

,

ac

pozosta le bity o 8 pozycji w lewo; przesuni

,

ecie to

nie jest cykliczne, tzn. pierwszych 8 bit´ow jest
usuwanych

5. przy deszyfrowaniu rola wej´scia i wyj´scia zostaje

zamieniona

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

22

background image

Kryptografia — wyk lad dla IV roku

PSfrag replacements

8

8

8

8

8

8

8

64

64

64

64

C

i

C

i

M

i

M

i

K

K

Kryptogram

Kryptogram

Szyfrowanie (DES)

Szyfrowanie (DES)

Rejestr przesuwaj

,

acy

Rejestr przesuwaj

,

acy

(a) Szyfrowanie

(b) Deszyfrowanie

Rysunek 3: Schemat dzia lania CFB

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

23

background image

Kryptografia — wyk lad dla IV roku

IDEA — International Data Encryption

Algorithm

• IDEA jest algorytmem blokowym wprowadzonym w latach

90-tych

• IDEA u˙zywa kluczy 128 bitowych

• IDEA jest u˙zywana w pakiecie PGP

• IDEA jest algorytmem opatentowanym; mo˙zna go u˙zywa´c

bezp latnie do cel´ow niekomercyjnych

• IDEA dzia la na blokach 64 bitowych i wykorzystuje 3

r´o˙zne operacje: xor (⊕), dodawanie modulo 2

16

() oraz

mno˙zenie modulo 2

16

+1 ( ); schemat dzia lania algorytmu

przedstawiony jest na Rys. 4

Szyfrowanie

• 64 bitowy blok jest dzielony na 4 bloki po 16 bit´ow:

X

1

, X

2

, X

3

, X

4

, kt´ore stanowi

,

a dane wej´sciowe dla pierw-

szej rundy algorytmu

• algorytm sk lada si

,

e z 8 rund

• w ka˙zdej rundzie wykonywane s

,

a wymienione wy˙zej 3

typy operacji na 16 bitowych blokach z 16 bitowymi
podkluczami (ka˙zda runda wymaga 6 podkluczy)

• w wyniku otrzymuje si

,

e 4 bloki po 16 bit´ow: Y

1

, Y

2

, Y

3

, Y

4

• pomi

,

edzy rundami blok 2 i 3 s

,

a zamieniane

• algorytm ko´

nczy przekszta lcenie ko´

ncowe, kt´ore wymaga

4 podkluczy

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

24

background image

Kryptografia — wyk lad dla IV roku

































PSfrag replacements

X

1

X

2

X

3

X

4

Y

1

Y

2

Y

3

Y

4

K

(1)

1

K

(1)

2

K

(1)

3

K

(1)

4

K

(1)

5

K

(1)

6

K

(9)

1

K

(9)

2

K

(9)

3

K

(9)

4

Kolejne 7 rund

Transformacja ko´

ncowa

Pierwsza runda

Rysunek

4:

Schemat dzia lania algorytmu IDEA:

⊕ — operacja xor,

 — dodawanie modulo 2

16

,

— mno˙zenie modulo 2

16

+ 1,

K

(r)

i

— i-ty podklucz dla r-tej rundy

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

25

background image

Kryptografia — wyk lad dla IV roku

Generowanie podkluczy

• IDEA u˙zywa klucza 128 bitowego i wymaga 8×6+4=52

podklucze

1. 128 bitowy klucz jest dzielony na bloki 16 bitowe, co

daje 8 podkluczy

2. na kluczu wykonuje si

,

e przesuni

,

ecie cykliczne o 25

pozycji i znowu dzieli na bloki 16 bitowe, co daje
kolejne 8 podkluczy

3. operacj

,

e z punktu 2 powtarza si

,

e tak d lugo a˙z wygene-

ruje si

,

e wszystkie podklucze

Deszyfrowanie

• Deszyfrowanie algorytmem IDEA przebiega wg sche-

matu przedstawionego na Rys. 4, w kt´orym zamiast
X

1

, X

2

, X

3

, X

4

na wej´sciu podaje si

,

e bloki Y

1

, Y

2

, Y

3

, Y

4

kryptogramu oraz klucz K (ten sam co przy szyfrowaniu)

• z klucza K generuje si

,

e podklucze K

(r)

i

• generuje si

,

e podklucze deszyfruj

,

ace K

0 (r)

i

wg schematu

przedstawionego w Tablicy 8

Runda

K

0(r)

1

K

0(r)

2

K

0(r)

3

K

0(r)

4

K

0(r)

5

K

0(r)

6

r = 1



K

(10−r)

1



−1

−K

(10−r)

2

−K

(10−r)

3



K

(10−r)

4



−1

K

(9−r)

5

K

(9−r)

6

2≤ r ≤ 8



K

(10−r)

1



−1

−K

(10−r)

3

−K

(10−r)

2



K

(10−r)

4



−1

K

(9−r)

5

K

(9−r)

6

r = 9



K

(10−r)

1



−1

−K

(10−r)

2

−K

(10−r)

3



K

(10−r)

4



−1

Tablica 8: Tworzenie podkluczy deszyfruj

,

acych K

0 (r)

i

na pod-

stawie podkluczy szyfruj

,

acych K

(r)

i

w algorytmie IDEA (dla

K

i

= 0 przyjmuje si

,

e (K

i

)

1

= 0; 2

16

≡ −1 mod 2

16

+ 1)

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

26

background image

Kryptografia — wyk lad dla IV roku

AES — Advanced Encryption Standard —

Rijndael

• Nowy standard przyj

,

ety w 2001 r. w USA

• algorytm blokowy, kt´ory zaprojektowali Joan Daemen i

Vincent Rijmen

• zar´owno d lugo´s´c bloku jak i klucza mo˙ze by´c wybrana

jako 128, 192 lub 256 bit´ow

• Rijndael jest og´olnie dost

,

epny

• liczba rund zale˙zy od d lugo´sci bloku

• w ka˙zdej rundzie wykonywane s

,

a 4 operacje (macierzowe):

podstawienie w S-boksie, przesuni

,

ecie wierszy, mieszanie

kolumn i xor z podkluczem

• podklucze s

,

a generowane algorytmem, kt´ory zale˙zy od

rundy

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

27

background image

Kryptografia — wyk lad dla IV roku

Algorytmy asymetryczne — RSA

• Witfield Diffie i Martin Hellman — idea kryptografii z

kluczem publicznym, rok 1976

RSA

— Ron

R

ivest, Adi

S

hamir i Leonard

A

dleman, rok

1978

• bezpiecze´

nstwo algorytmu RSA opiera si

,

e na trudno´sci

obliczeniowej zwi

,

azanej z rozk ladem du˙zych liczb na

czynniki (faktoryzacja)

Wybierzmy dwie du˙ze liczby pierwsze p i q i obliczmy ich
iloczyn (iloczyn latwo obliczy´c)

n

=

pq,

nast

,

epnie wybierzmy losowo liczb

,

e e < n wzgl

,

ednie pierwsz

,

a

z liczb

,

a (p − 1)(q − 1). Liczba e b

,

edzie kluczem szyfruj

,

acym.

Teraz znajd´zmy liczb

,

e d tak

,

a, ˙ze

ed

1

(mod

(p − 1)(q − 1)),

lub inaczej

d

e

−1

(mod

(p − 1)(q − 1)).

Liczby d i n s

,

a tak˙ze wzgl

,

ednie pierwsze. Do obliczenia d mo˙zna

u˙zy´c rozszerzonego algorytmu Euklidesa. Liczba d jest kluczem

deszyfruj

,

acym. Liczby {e, n} stanowi

,

a klucz publiczny, kt´

ory

ujawniamy, za´s liczby {d, n} stanowi

,

a klucz prywatny, kt´

ory

powinien by´c ´sci´sle chroniony (liczba d)

Szyfrowanie

Wiadomo´s´c dzielimy na bloki m

i

mniejsze ni˙z n, kt´ore

szyfrujemy u˙zywaj

,

ac formu ly

c

i

≡ m

e

i

(mod

n)

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

28

background image

Kryptografia — wyk lad dla IV roku

Deszyfrowanie

Tekst jawny z kryptogramu otrzymujemy obliczaj

,

ac

m

i

c

d

i

(mod

n)

Uzasadnienie

Poniewa˙z ed ≡ 1

(mod

(p − 1)(q − 1)), to istnieje liczba

ca lkowita k taka, ˙ze ed = 1 + k(p − 1)(q − 1). Z ma lego
twierdzenia Fermata, dla N W D(m, p) = 1, mamy

m

p−1

1

(mod

p)

podnosz

,

ac obie strony tej kongruencji do pot

,

egi k(q − 1) oraz

mno˙z

,

ac przez m otrzymujemy

m

1+k(p−1)(q−1)

m

(mod

p)

Kongruencja ta jest tak˙ze prawdziwa dla N W D(m, p) = p,
poniewa˙z wtedy obie strony przystaj

,

a do 0

(mod

p). Zatem,

zawsze mamy

m

ed

m

(mod

p).

Podobnie,

m

ed

m

(mod

q),

a poniewa˙z p i q s

,

a r´

o˙znymi liczbami pierwszymi, to z chi´

nskiego

twierdzenia o resztach otrzymujemy

m

ed

m

(mod

n)

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

29

background image

Kryptografia — wyk lad dla IV roku

Przyk lad (trywialny):
Znajdowanie klucza:

p

=

1123

q = 1237

n

=

pq =

1389151

φ =

(p − 1)(q − 1) = 1386792

e =

834781

d ≡

e

1

(mod

φ) =

1087477

Szyfrowanie:

m

=

983415

c ≡

m

e

(mod

n)

983415

834781

(mod

1389151

) =

190489

Deszyfrowanie:

m

c

d

(mod

n)

190489

1087477

(mod

1389151

) = 983415

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

30

background image

Kryptografia — wyk lad dla IV roku

Troch

,

e matematyki

Podzielno´

c liczb

? Dla danych liczb ca lkowitych a i b m´

owimy, ˙ze liczba b jest

podzielna przez a lub, ˙ze liczba a dzieli liczb

,

e b, je˙zeli istnieje

taka liczba ca lkowita d, ˙ze b = ad. Liczb

,

e a nazywamy

dzielnikiem liczby b, a fakt ten zapisujemy a|b.

? Ka˙zda liczba b > 1 ma co najmniej dwa dzielniki dodatnie:

1 i b.

? Dzielnikiem nietrywialnym liczby b nazywamy dzielnik

dodatni r´

o˙zny od 1 i b.

? Liczba pierwsza to liczba wi

,

eksza od 1 nie maj

,

aca innych

dzielnik´

ow dodatnich ni˙z 1 i ona sama.

? Liczba maj

,

aca co najmniej jeden nietrywialny dzielnik jest

liczb

,

a z lo˙zon

,

a.

Twierdzenie o rozk ladzie na czynniki pierwsze

Ka˙zda liczba naturalna n mo˙ze by´c przedstawiona jedno-
znacznie (z dok ladno´sci

,

a do kolejno´sci czynnik´ow) jako

iloczyn liczb pierwszych.

Zwykle taki rozk lad zapisujemy jako iloczyn odpowiednich

pot

,

eg r´

o˙znych liczb pierwszych, np. 6600 = 2

3

· 3 · 5

2

· 11.

W lasno´

sci relacji podzielno´

sci

1. Je´sli a|b i c jest dowoln

,

a liczb

,

a ca lkowit

,

a, to a|bc.

2. Je´sli a|b i b|c, to a|c

3. Je´sli a|b i a|c, to a|b ± c

4. Je´sli liczba pierwsza p dzieli ab, to p|a lub p|b

5. Je´sli m|a i n|a oraz m i n nie maj

,

a wsp´

olnych dzielnik´

ow

wi

,

ekszych od 1, to mn|a

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

31

background image

Kryptografia — wyk lad dla IV roku

Najwi

,

ekszy wsp´

olny dzielnik — N W D(a, b)

Najwi

,

ekszy wsp´

olny dzielnik, N W D(a, b), dla danych dw´

och

liczb ca lkowitych (nie b

,

ed

,

acych jednocze´snie zerami), to

najwi

,

eksza liczba ca lkowita d b

,

ed

,

aca dzielnikiem zar´

owno a,

jak i b.

Przyk lad: N W D(12, 18) = 6

Najmniejsza wsp´

olna wielokrotno´

c — N W W (a, b)

Najmniejsza wsp´

olna wielokrotno´s´c, N W W (a, b), to najmniej-

sza dodatnia liczba ca lkowita, kt´

or

,

a dziel

,

a a i b

.

N W W (a, b) = a · b/N W D(a, b)

Przyk lad: N W W (12, 18) = 36 = 12 · 18/N W D(12, 18)

Liczby wzgl

,

ednie pierwsze

Liczby a i b s

,

a wzgl

,

ednie pierwsze je˙zeli N W D(a, b) = 1,

tzn. liczby a i b nie maj

,

a wsp´olnego dzielnika wi

,

ekszego

od 1.

N W D(841, 160) = 1 zatem liczby 841 i 160 s

,

a wzgl

,

ednie

pierwsze (patrz ni˙zej)

Algorytm Euklidesa

Algorytm Euklidesa pozwala znale´z´c N W D(a, b) w czasie
wielomianowym (dla a > b, O(ln

2

(a)))

Dla a > b, dzielimy a przez b otrzymuj

,

ac iloraz q

1

i reszt

,

e

r

1

, tzn. a = q

1

b + r

1

, w nast

,

epnym kroku b gra rol

,

e a, za´s

r

1

gra rol

,

e b: b = q

2

r

1

+ r

2

. Post

,

epowanie to kontynuujemy

dziel

,

ac kolejne reszty, r

i−2

= q

i

r

i−1

+ r

i

, a˙z do momentu kiedy

otrzymamy reszt

,

e, kt´

ora dzieli poprzedni

,

a reszt

,

e. Ostatnia

niezerowa reszta jest N W D(a, b).

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

32

background image

Kryptografia — wyk lad dla IV roku

Obliczmy N W D(841, 160)

841

=

5 · 160 + 41

160

=

3 · 41 + 37

41

=

1 · 37 + 4

37

=

9 · 4 + 1

4

=

4 · 1 + 0

Poniewa˙z N W D(841, 160) = 1, to liczby 841 i 160 s

,

a wzgl

,

ednie

pierwsze.

Twierdzenie

Najwi

,

ekszy wsp´olny dzielnik dw´och liczb mo˙ze by´c przed-

stawiony w postaci kombinacji liniowej tych liczb ze
wsp´o lczynnikami ca lkowitymi: N W D(a, b) = xa + yb,
przy czym liczby x i y mo˙zna znale´z´c w czasie O(ln

2

(a)).

W poprzednim przyk ladzie N W D(841, 160) = 1. Korzystaj

,

ac

z ci

,

agu r´

owno´sci w algorytmie Euklidesa (id

,

ac w przeciwn

,

a

stron

,

e) otrzymujemy

1

=

37 − 9 · 4

=

37 − 9(41 − 1 · 37) = 10 · 37 − 9 · 41

=

10(160 − 3 · 41) − 9 · 41 = 10 · 160 − 39 · 41

=

10 · 160 − 39 · (841 − 5 · 160)

=

−39 · 841 + 205 · 160

Zatem x = −39 i y = 205.

Rozszerzony algorytm Euklidesa

Rozszerzony algorytm Euklidesa znajduje zar´

owno najwi

,

ekszy

wsp´

olny dzielnik N W D(a, b) liczb a i b jak i liczby x i y b

,

ed

,

ace

wsp´

o lczynnikami kombinacji liniowej N W D(a, b) = xa + yb.

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

33

background image

Kryptografia — wyk lad dla IV roku

q

r

a

b

x

x

2

x

1

y

y

2

y

1

— — 841 160

1

0

0

1

5

41 160 41

1

0

1

-5

1

-5

3

37 41

37

-3

1

-3

16

-5

16

1

4

37

4

4

-3

4

-21 16 -21

9

1

4

1

-39 4 -39 205 -21 205

Na ka˙zdyn etapie mamy r = x · 841 + y · 160. Z ostatniego

wiersza odczytujemy:

N W D(841, 160) = 1 = −39 · 841 + 205 · 160

Przyporz

,

adkowania w algorytmie s

,

a nast

,

epuj

,

ace:

q = ba/bc,

r ← a − qb,

x ← x

2

− qx

1

,

y ← y

2

− qy

1

a ← b,

b ← r,

x

2

← x

1

,

x

1

← x,

y

2

← y

1

,

y

1

← y

Kongruencje

Dla danych trzech liczb ca lkowitych a, b i m m´owimy,

˙ze liczba a przystaje do liczby b modulo m i piszemy

a ≡ b (mod

m), gdy r´o˙znica a − b jest podzielna przez

m. Liczb

,

e m nazywamy modu lem kongruencji.

W lasno´

sci

1. a ≡ a

(mod

m)

2. a ≡ b (mod

m) wtedy i tylko wtedy, gdy b ≡

a

(mod

m)

3. Je´sli a ≡ b

(mod

m) oraz b ≡ c

(mod

m), to

a ≡ c

(mod

m)

4. Je´sli a ≡ b

(mod

m) i c ≡ d (mod

m), to

a ± c ≡ b ± d (mod

m) oraz ac ≡ bd (mod

m)

Kongruencje wzgl

,

edem tego samego modu lu mo˙zna

dodawa´c, odejmowa´c i mno˙zy´c stronami.

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

34

background image

Kryptografia — wyk lad dla IV roku

5. Je´sli a ≡ b

(mod

m), to a ≡ b

(mod

d) dla

ka˙zdego dzielnika d|m

6. Je´sli a ≡ b

(mod

m), a ≡ b

(mod

n), oraz m i n

s

,

a wzgl

,

ednie pierwsze, to a ≡ b (mod

mn)

7. Dla ustalonej liczby m, ka˙zda liczba przystaje modulo

m do jednej liczby zawartej pomi

,

edzy 0 i m − 1.

Przyk lady:

27 ≡ 7

(mod

5)

bo

27 − 7 = 4 · 5

27 ≡ 2

(mod

5)

bo

27 − 2 = 5 · 5

−8 ≡ −7

(mod

5)

bo

−8 − 7 = −3 · 5

Twierdzenie

Liczbami a, dla kt´orych istnieje liczba b taka, ˙ze
ab ≡ 1

(mod

m), s

,

a dok ladnie te liczby a, dla kt´o-

rych N W D(a, m) = 1. Taka liczba odwrotna b = a

1

mo˙ze by´c znaleziona w czasie O(ln

2

(m)).

Poniewa˙z N W D(841, 160) = 1 (patrz poprzedni przyk lad), to

istnieje liczba 160

−1

(mod

841). Liczb

,

e t

,

e mo˙zna obliczy´c

za pomoc

,

a rozszerzonego algorytmu Euklidesa. Poniewa˙z

1 = −39 · 841 + 205 · 160, to 205 · 160 ≡ 1

(mod

841), a wi

,

ec

160

−1

(mod

841) = 205.

Ma le twierdzenie Fermata

Niech p b

,

edzie liczb

,

a pierwsz

,

a. Wtedy ka˙zda liczba a spe l-

nia kongruencj

,

e ap ≡ a

(mod

p) i ka˙zda liczba a niepo-

dzielna przez p spe lnia kongruencj

,

e a

p−1

≡ 1

(mod

p).

Liczba 1231 jest liczb

,

a pierwsz

,

a i N W D(1231, 5871) = 1, wi

,

ec

5871

1230

1

(mod

1231)

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

35

background image

Kryptografia — wyk lad dla IV roku

Chi´

nskie twierdzenie o resztach

Je´sli liczby m

1

, m

2

, . . . , m

k

s

,

a parami wzgl

,

ednie pierw-

sze, tzn. N W D(m

i

, m

j

) = 1 dla i 6= j, wtedy uk lad

kongruencji

x

a

1

(mod

m

1

)

x

a

2

(mod

m

2

)

. . .

. . .

x

a

k

(mod

m

k

)

ma wsp´olne rozwi

,

azanie modulo m = m

1

m

2

. . . m

k

.

Przyk lad:

x

1

(mod

11)

x

2

(mod

12)

x

3

(mod

13)

Niech M

i

= m/m

i

b

,

edzie iloczynem wszystkich modu l´

ow

z wyj

,

atkiem i-tego. Wtedy N W D(m

i

, M

i

) = 1, a wi

,

ec

istnieje taka liczba N

i

, ˙ze M

i

N

i

≡ 1

(mod

m

i

), wtedy

wsp´

olnym rozwi

,

azaniem modulo m jest x =

P

i

a

i

M

i

N

i

. Dla

ka˙zdego i wszystkie sk ladniki sumy poza i-tym s

,

a podzielne

przez m

i

, gdy˙z m

i

|M

j

dla j 6= i zatem dla ka˙zdego i mamy

x ≡ a

i

M

i

N

i

≡ a

i

(mod

m

i

). W naszym przyk ladzie mamy:

a

1

= 1, a

2

= 2, a

3

= 3, m

1

= 11, m

2

= 12, m

3

= 13,

m = 1716, M

1

= 156, M

2

= 143, M

3

= 132. Aby znale´z´c

wsp´

olne rozwi

,

azanie tego uk ladu kongruencji nale˙zy znale´z´c

liczby N

i

b

,

ed

,

ace odwrotno´sciami liczb M

i

modulo m

i

. W

tym celu mo˙zemy u˙zy´c algorytmu Euklidesa. W wyniku

otrzymujemy liczby: N

1

= 6, N

2

= 11 i N

3

= 7. Zatem

wsp´

olnym rozwi

,

azaniem jest x ≡ 6 · 156 + 2 · 11 · 143 + 3 · 7 ·

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

36

background image

Kryptografia — wyk lad dla IV roku

132

(mod

1716) ≡ 1706

(mod

1716). W tym przyk ladzie

wida´c, ˙ze liczba −10 daje takie reszty zatem x = −10 + 1716.

Funkcja Eulera

Dla n ≥ 1, niech φ(n) b

,

edzie liczb

,

a tych nieujemnych

liczb b mniejszych od n, kt´ore s

,

a wzgl

,

ednie pierwsze z n.

Funkcja φ(n) nazywa si

,

e funkcj

,

a Eulera.

Funkcja Eulera φ jest

multiplikatywna”, tzn. φ(mn) =

φ(m)φ(n), je´sli tylko N W D(m, n) = 1.

Twierdzenie Eulera

Je´sli N W D(a, m) = 1, to a

φ(m)

≡ 1

(mod

m).

Wniosek

Je´sli N W D(a, m) = 1 i je´sli n

0

jest reszt

,

a z dzielenia n

przez φ(m), to a

n

≡ a

n

0

(mod

m)

Pot

,

egowanie modulo metod

,

a iterowanego podno-

szenia do kwadratu

Podstawowym dzia laniem w kryptografii jest obliczanie
a

n

(mod

m), gdzie m i n s

,

a bardzo du˙zymi liczbami.

Zauwa˙zmy, ˙ze rozwini

,

ecie dw´ojkowe liczby n ma posta´c

n =

k−1

X

i=0

n

i

2

i

= n

0

+ 2n

1

+ 4n

2

+ · · · + 2

k−1

n

k−1

,
gdzie n

i

∈ {0, 1} s

,

a cyframi rozwini

,

ecia dw´ojkowego.

Zatem

a

n

=

k−1

Y

i=0

a

n

i

2

i

=



a

2

0



n

0



a

2

1



n

1

. . .



a

2

k−1



n

k−1

Za l´o˙zmy, ˙ze a < m oraz przyjmijmy, ˙ze przez b b

,

edziemy

oznaczali cz

,

e´sciowe iloczyny. Na pocz

,

atku b = 1. Je˙zeli

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

37

background image

Kryptografia — wyk lad dla IV roku

n

0

= 1 to zast

,

epujemy b przez a, w przeciwnym przypadku

nadal b = 1. Nast

,

epnie liczymy a

1

≡ a

2

(mod

m). Je´sli

n

1

= 1, to mno˙zymy b przez a

1

i redukujemy modulo

m, za´s je´sli n

1

= 0 nie zmieniamy b. Nast

,

epnie liczymy

a

2

≡ a

2

1

(mod

m). Znowu, je´sli n

2

= 1, to mno˙zymy

b przez a

2

; w przeciwnym przypadku nie zmieniamy b.

Post

,

epuj

,

ac dalej w ten spos´ob, w j-tym kroku mamy

obliczon

,

a pot

,

eg

,

e a

j

≡ a

2j

(mod

m). Je´sli n

j

= 1 to

w l

,

aczamy a

j

do iloczynu b, je´sli n

j

= 0 to b si

,

e nie zmienia.

Po k − 1 krokach otrzymamy b ≡ a

n

(mod

m).

Przyk lad:

Obliczmy 7

698

(mod

1234) = 287

i

0 1

2

3

4

5

6

7

8

9

n

i

0 1

0

1

1

1

0

1

0

1

a

i

7 49 1167 787 1135 1163 105 1153 391 1099

b

1 49

49

309 259

121 121

71

71

287

Czy wystarczy liczb pierwszych?
Twierdzenie

Niech π(x) oznacza liczb

,

e liczb pierwszych ≤ x. Wtedy

lim

x→∞

π(x)

x/ ln x

=

1

Dla x ≥ 17

π(x)

>

x

ln x

Dla przyk ladu, dla x = 10

10

, π(x) = 455052511, natomiast

bx/ ln xc = 434294481.

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

38

background image

Kryptografia — wyk lad dla IV roku

Testy pierwszo´

sci

Istniej

,

a probabilistyczne testy pierwszo´sci liczb, kt´ore

pozwalaj

,

a z du˙zym prawdopodobie´

nstwem w sko´

nczonym

czasie da´c odpowied´z czy dana liczba jest pierwsza.

Test Fermata

Testujemy czy liczba n jest pierwsza. Wybieramy losowo
liczb

,

e a < n − 1, obliczamy r = a

n−1

(mod

n), je´sli

r 6= 1 to n jest liczb

,

a z lo˙zon

,

a. Test przeprowadzamy

t-krotnie, t ≥ 1. Je´sli wszystkie testy wypadn

,

a pomy´slnie,

tzn. r = 1, to liczb

,

e uznajemy za pierwsz

,

a, cho´c mo˙ze tak

nie by´c.

Test Millera-Rabina

Testujemy czy liczba n jest pierwsza. Piszemy n − 1 = 2

s

r,

gdzie r jest nieparzyste. Wybieramy losowo liczb

,

e a,

2 ≤ a ≤ n − 2. Obliczamy y = a

r

(mod

n). Je´sli

y = 1 lub y = n − 1 to n jest z lo˙zona. Obliczamy
a

2

, a

4

, . . . , (a

2

)

j

tak d lugo a˙z a

2j

≡ 1

(mod n) lub

j = s. Je´sli wszystkie (a

2

)

j

≡ 1

(mod

n) to uznajemy,

˙ze liczba n jest pierwsza.

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

39

background image

Kryptografia — wyk lad dla IV roku

Algorytm ElGamala

U podstaw dzia lania algorytmu ElGamala le˙zy matema-
tyczny problem logarytmu dyskretnego. Niech p b

,

edzie liczb

,

a

pierwsz

,

a, przez Z

p

oznaczamy zbi´or liczb {0, 1, . . . , p − 1} i

niech g b

,

edzie generatorem Z

p

, tzn. takim elementem, ˙ze dla

ka˙zdej liczby 0 < a < p istnieje takie i, ˙ze a ≡ g

i

(mod

p)

(wszystkie elementy z wyj

,

atkiem zerowego mog

,

a by´c wyge-

nerowane z g).

Problem logarytmu dyskretnego polega na znalezieniu dla
danej liczby 0 < b < p takiej liczby a, ˙ze g

a

≡ b (mod

p)

.

Przyk lad:

We´zmy Z

19

, czyli zbi´

or liczb {0, 1, . . . , 18} oraz g = 2. Niech

b = 2

a

(mod

19), mamy wtedy

a 0 1 2 3 4

5 6 7 8 9 10 11 12 13 14 15 16 17 18

b 1 2 4 8 16 13 7 14 9 18 17 15 11 3

6 12 5 10 1

Wyb´

or klucza

Wybieramy odpowiednio du˙z

,

a liczb

,

e pierwsz

,

a p, tak

,

a, ˙ze

obliczenie logarytmu dyskretnego jest praktycznie niewy-
konalne, wybieramy liczb

,

e ca lkowit

,

a 0 < a < p − 1 oraz

liczb

,

e g, nast

,

epnie obliczamy b ≡ g

a

(mod

p). Liczby

{b, g, p} stanowi

,

a klucz publiczny, za´s liczby {a, g, p} klucz

prywatny.

Szyfrowanie

Aby zaszyfrowa´c wiadomo´s´c M wybieramy losowo liczb

,

e

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

40

background image

Kryptografia — wyk lad dla IV roku

k wzgl

,

ednie pierwsz

,

a z p − 1, a nast

,

epnie obliczamy

c

1

g

k

(mod

p)

c

2

M b

k

(mod

p)

Para liczb c

1

i c

2

tworzy kryptogram, kt´ory jest dwukrot-

nie d lu˙zszy od tekstu jawnego.

Deszyfrowanie

M

= c

2

(c

a

1

)

1

(mod

p)

Uzasadnienie

c

2

(c

a

1

)

−1

≡ M b

k

(g

ka

)

−1

≡ M g

ka

(g

ka

)

−1

≡ M

(mod

p)

Prosty przyk lad
Znajdowanie klucza

Niech

p = 229

i

g = 6

, wybieramy

a = 70

, wtedy

b ≡

6

70

(mod

229) = 97

, zatem klucz publiczny stanowi

,

a liczby

{

97, 6, 229

}, za´s klucz prywatny stanowi

,

a liczby {

70

, 6, 229

}

Szyfrowanie

Niech wiadomo´s´c M = 130, wybieramy

k = 127

takie, ˙ze

N W D(127, 228) = 1 (liczby tej nie ujawniamy)

c

1

6

127

(mod

229

) =

155

c

2

130 ·

97

127

(mod

229

) =

169

Deszyfrowanie

M

=

169

· (

155

70

)

−1

(mod

229

) ≡

169

· 36

(mod

229

) = 130

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

41

background image

Kryptografia — wyk lad dla IV roku

Jednokierunkowe funkcje hashuj

,

ace (skr´

otu)

• dla ka˙zdego X latwo jest obliczy´c H(X)

• H(X) ma tak

,

a sam

,

a d lugo´s´c dla wszystkich tekst´ow X

• dla zadanego Y znalezienie takiego X, ˙ze H(X) = Y jest

praktycznie niemo˙zliwe; funkcja

jednokierunkowa

• dla danego X trudno znale´z´c X

0

takie, ˙ze H(X) = H(X

0

);

funkcja

s labo bezkonfliktowa

• nie jest praktycznie mo˙zliwe znalezienie X i X

0

takich, ˙ze

X 6= X

0

oraz H(X) = H(X

0

); funkcja

silnie bezkonflik-

towa

Typowe zastosowania

• Przechowywanie hase l w komputerach

• Ochrona integralno´sci danych

Algorytm MD5 (Message Digest)

Algorytm, zaprojektowany przez Rivesta, jest modyfikacj

,

a

wcze´sniejszego algorytmu MD4. Wiadomo´s´c dowolnej d lu-
go´sci jest przekszta lcona w jej 128 bitowy

odcisk palca”

(sum

,

e kontroln

,

a, skr´ot wiadomo´sci). Zasadnicza procedura

algorytmu dzia la na blokach 512 bitowych przekszta lcaj

,

ac je

w 128 bitowe skr´oty.

Etapy MD5

Krok 1

Wiadomo´s´c dowolnej d lugo´sci jest uzupe lniana w taki

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

42

background image

Kryptografia — wyk lad dla IV roku

spos´ob, ˙ze na ko´

ncu dodawany jest bit

1” i odpowiednia

ilo´s´c zer, tak aby ostatni blok mia l d lugo´s´c 448 bit´ow.

Krok 2

Do ostatniego bloku dodawana jest 64 bitowa liczba
reprezentuj

,

aca d lugo´s´c wiadomo´sci (w bitach) i w ten

spos´ob przygotowana wiadomo´s´c ma d lugo´s´c b

,

ed

,

ac

,

a

ca lkowit

,

a wielokrotno´sci

,

a 512 bit´ow. Tym samym wia-

domo´s´c jest wielokrotno´sci

,

a 16 s l´ow 32-bitowych. Niech

M

0

, M

1

, . . . M

N −1

oznaczaj

,

a kolejne s lowa wiadomo´sci,

gdzie N jest jest wielokrotno´sci

,

a 16.

Krok 3

Algorytm operuje na 32-bitowych zmiennych a, b, c, d,
kt´orych warto´sci pocz

,

atkowe A, B, C, D w zapisie szest-

nastkowym s

,

a nast

,

epuj

,

ace:

A =0x67452301
B =0xefcdab89
C =0x98badcfe
D =0x10325476

Krok 4

G l´owna p

,

etla algorytmu sk lada si

,

e z 4 rund, w ka˙zdej

rundzie 16 razy wykonywane s

,

a operacje na 32 bitowych

s lowach. Operacje te zdefiniowane s

,

a przez 4 funkcje

F (X, Y, Z) = (X ∧ Y ) ∨ (¬X) ∧ Z)
G(X, Y, Z) = (X ∧ Z) ∨ Y ∧ (¬X)

H(X, Y, Z) = X ⊕ Y ⊕ Z

I(X, Y, Z) = Y ⊕ (X ∨ (¬Z))

gdzie ⊕ oznacza operacj

,

e xor, ∧ operacj

,

e and, ∨ operacj

,

e

or

, za´s ¬ operacj

,

e not.

0 ⊕ 0

=

0

0 ∧ 0 = 0

0 ∨ 0 = 0

¬0 = 1

0 ⊕ 1

=

1

0 ∧ 1 = 0

0 ∨ 1 = 1

¬1 = 0

1 ⊕ 0

=

1

1 ∧ 0 = 0

1 ∨ 0 = 1

1 ⊕ 1

=

0

1 ∧ 1 = 1

1 ∨ 1 = 1

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

43

background image

Kryptografia — wyk lad dla IV roku

Niech X

j

= M

i∗16+j

oznacza j-te s lowo w i-tym bloku

wiadomo´sci M (j = 0, . . . , 15, i = 0, . . . , N/16 − 1),
←- s niech oznacza cykliczne przesuni

,

ecie w lewo o s

bit´ow oraz zdefiniujmy liczby T

k

(k = 1, . . . , 64) tak, ˙ze

T

k

= b2

32

· | sin k|c, gdzie k jest w radianach. Mamy wtedy:

?

Runda 1

Niech [abcd j s k] oznacza operacj

,

e

a = b + ((a + F (b, c, d) + X

j

+ T

k

) ←- s),

wtedy 16 operacji tej rundy to:

[abcd

0 7 1] [dabc 1 12 2] [cdab 2 17 3] [bcda 3 22 4]

[abcd

4 7 5] [dabc 5 12 6] [cdab 6 17 7] [bcda 7 22 8]

[abcd

8 7 9] [dabc 9 12 10] [cdab 10 17 11] [bcda 11 22 12]

[abcd 12 7 13] [dabc 13 12 14] [cdab 14 17 15] [bcda 15 22 16]

?

Runda 2

Niech [abcd j s k] oznacza operacj

,

e

a = b + ((a + G(b, c, d) + X

j

+ T

k

) ←- s),

wtedy 16 operacji tej rundy to:

[abcd

1 5 17] [dabc 6 9 18] [cdab 11 14 19] [bcda 0 20 20]

[abcd

5 5 21] [dabc 10 9 22] [cdab 15 14 23] [bcda 4 20 24]

[abcd

9 5 25] [dabc 14 9 26] [cdab 3 14 27] [bcda 8 20 28]

[abcd 13 5 29] [dabc 2 9 30] [cdab 7 14 31] [bcda 12 20 32]

?

Runda 3

Niech [abcd j s k] oznacza operacj

,

e

a = b + ((a + H(b, c, d) + X

j

+ T

k

) ←- s),

wtedy 16 operacji tej rundy to:

[abcd

5 4 33] [dabc 8 11 34] [cdab 11 16 35] [bcda 14 23 36]

[abcd

1 4 37] [dabc 4 11 38] [cdab 7 16 39] [bcda 10 23 40]

[abcd 13 4 41] [dabc 0 11 42] [cdab 3 16 43] [bcda 6 23 44]
[abcd

9 4 45] [dabc 12 11 46] [cdab 15 16 47] [bcda 2 23 48]

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

44

background image

Kryptografia — wyk lad dla IV roku

?

Runda 4

Niech [abcd j s k] oznacza operacj

,

e

a = b + ((a + I(b, c, d) + X

j

+ T

k

) ←- s),

wtedy 16 operacji tej rundy to:

[abcd

0 6 49] [dabc 7 10 50] [cdab 14 15 51] [bcda 5 21 52]

[abcd 12 6 53] [dabc 3 10 54] [cdab 10 15 55] [bcda 1 21 56]
[abcd

8 6 57] [dabc 15 10 58] [cdab 6 15 59] [bcda 13 21 60]

[abcd

4 6 61] [dabc 11 10 62] [cdab 2 15 63] [bcda 9 21 64]

? Po tych 4 rundach warto´sci a, b, c, d s

,

a dodawane do

warto´sci A, B, C, D i algorytm przechodzi do nast

,

ep-

nego bloku M .

PSfrag replacements

Runda 1

Runda 2

Runda 3

Runda 4

Blok wiadomo´sci M (512 bit´ow)

F

G

H

I

A

A

B

B

C

C

D

D

Rysunek 5:

G l´

owna p

,

etla algorytmu MD5

Krok 5

Po przej´sciu wszystkich 512-bitowych blok´ow wiadomo´sci
M algorytm l

,

aczy rejestry a, b, c, d daj

,

ac 128 bitow

,

a liczb

,

e

b

,

ed

,

ac

,

a warto´sci

,

a funkcji hashuj

,

acej.

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

45

background image

Kryptografia — wyk lad dla IV roku

SHA (Secure Hash Algorithm)

Algorytm opracowany przez NIST przy udziale NSA opu-
blikowany w 1993. Nowsza wersja SHA-1 opublikowana w
1995 r. Idea tego algorytmu oparta jest na MD4 i MD5.
Warto´s´c funkcji hashuj

,

acej to liczba 160 bitowa i w zwi

,

azku

z tym algorytm wymaga 5 rejestr´ow zamiast 4. U˙zywa te˙z
w nieco inny spos´ob nieliniowych funkcji transformuj

,

acych,

dokonuje dodatkowych operacji na poszczeg´olnych s lowach
wiadomo´sci, w ka˙zdej rundzie wykonuje 20 operacji zamiast
16. Zasada dzia lania jest jednak bardzo podobna do MD5.
Og´olnie uwa˙za si

,

e, ˙ze jest bezpieczniejszy ni˙z MD5 ze wzgl

,

edu

na

d lu˙zsz

,

a” warto´s´c funkcji hashuj

,

acej i pewne ulepszenia

samego algorytmu.

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

46

background image

Kryptografia — wyk lad dla IV roku

Szyfrowanie strumieniowe i generatory

ci

,

ag´

ow pseudolosowych

Synchroniczne szyfrowanie strumieniowe

Ci

,

ag bit´ow klucza generowany jest niezale˙znie od szyfro-

wanej wiadomo´sci i kryptogramu.

? Musi by´c zachowana synchronizacja pomi

,

edzy nadawc

,

a

i odbiorc

,

a.

? Zmiana bitu kryptogramu (przek lamanie) nie wp lywa

na mo˙zliwo´s´c deszyfrowania pozosta lych bit´ow.

? Dodanie lub usuni

,

ecie bitu powoduje utrat

,

e synchroni-

zacji.

? Istnieje mo˙zliwo´s´c zmiany wybranych bit´ow kryp-

togramu, a co za tym idzie zmiany deszyfrowanej
wiadomo´sci.

PSfrag replacements

GK

GK

K

K

k

i

k

i

m

i

m

i

c

i

c

i

(a) Szyfrowanie

(b) Deszyfrowanie

Rysunek 6:

Model synchronicznego szyfrowania strumieniowego

z dodawaniem modulo 2 (⊕), GK jest generatorem ci

,

agu bit´

ow

klucza, za´s K jest kluczem inicjalizuj

,

acym generator

Tekst jawny szyfrowany jest bit po bicie (one-time pad).

Losowo generowane bity k

1

, k

2

, . . . , k

i

stanowi

,

a bity klucza,

kt´

ore s

,

a dodawane modulo 2 (operacja xor) do bit´

ow wia-

domo´sci m

1

, m

2

, . . . , m

i

w spos´

ob ci

,

ag ly daj

,

ac kolejne bity

kryptogramu c

1

, c

2

, . . . , c

i

, gdzie c

i

= m

i

⊕ k

i

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

47

background image

Kryptografia — wyk lad dla IV roku

Samosynchronizuj

,

ace (asynchroniczne) szyfrowa-

nie strumieniowe

? CFB (Cipher Feedback) z blokiem jednobitowym

? Utrata lub dodanie bitu w kryptogramie powoduje

utrat

,

e tylko kawa lka wiadomo´sci — samosynchroniza-

cja.

? Ograniczona propagacja b l

,

ed´ow.

? Zmiana bitu kryptogramu powoduje, ˙ze kilka innych

bit´ow b

,

edzie deszyfrowanych b l

,

ednie — latwiej wykry´c

tak

,

a zmian

,

e.

? Jednak na skutek samosynchronizacji wykrycie zmian

w kryptogramie jest trudniejsze (je´sli zmiany dotycz

,

a

tylko cz

,

e´sci kryptogramu, to dalsza cz

,

e´s´c jest deszyfro-

wana poprawnie).

PSfrag replacements

b

1

b

1

b

n−2

b

n−2

b

n−1

b

n−1

b

n

b

n

G

G

K

K

k

i

k

i

m

i

m

i

c

i

c

i

(a) Szyfrowanie

(b) Deszyfrowanie

. . . . . .

. . . . . .

Rejestr przesuwaj

,

acy

Rejestr przesuwaj

,

acy

Generowane bity

Rysunek 7:

Model samosynchronizuj

,

acego szyfrowania strumie-

niowego

Generatory ci

,

ag´

ow pseudolosowych

Do generowania klucza potrzebny jest generator losowego
ci

,

agu bit´ow. Generowanie prawdziwie losowego ci

,

agu

jest trudne, wi

,

ec zwykle stosuje si

,

e ci

,

agi pseudolosowe.

Ci

,

agi pseudolosowe to ci

,

agi, kt´ore spe lniaj

,

a statystyczne

w lasno´sci ci

,

ag´ow losowych, ale generowane s

,

a w spos´ob

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

48

background image

Kryptografia — wyk lad dla IV roku

deterministyczny: generator startuj

,

acy z takiego samego

stanu pocz

,

atkowego generuje taki sam ci

,

ag bit´ow. Z

tego wzgl

,

edu ci

,

agi pseudolosowe u˙zywane w kryptografii

musz

,

a spe lnia´c warunki znacznie ostrzejsze ni˙z np. ci

,

agi

pseudolosowe u˙zywane w symulacjach.

LFSR — Linear Feedback Shift Register

(Rejestr

przesuwaj

,

acy z liniowym sprz

,

e˙zeniem zwrotnym)

PSfrag replacements

b

1

b

2

b

3

b

4

b

5

b

6

b

7

b

n−3

b

n−2

b

n−1

b

n

. . . . . .

Rejestr przesuwaj

,

acy

Generowane bity

Rysunek 8:

Generowanie ci

,

agu bit´

ow za pomoc

,

a LFSR

? LFSR posiada rejestr przesuwaj

,

acy o d lugo´sci n bit´ow,

kt´ory na pocz

,

atku zawiera losowe bity.

? Niekt´ore bity rejestru s

,

a poddawane operacji xor (⊕)

i wynik zast

,

epuje najstarszy bit rejestru, jednocze´snie

pozosta le bity przesuwane s

,

a o jedn

,

a pozycj

,

e w prawo i

najm lodszy bit staje si

,

e kolejnym bitem generowanego

ci

,

agu.

Przyk lad:

We´zmy rejestr 4-bitowy, kt´

orego pierwszy i czwarty bit s

,

a

poddawane operacji xor i niech pocz

,

atkowo rejestr zawiera

same jedynki. Wtedy otrzymujemy nast

,

epuj

,

ace stany rejestru:

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

49

background image

Kryptografia — wyk lad dla IV roku

1 1 1 1
0 1 1 1
1 0 1 1
0 1 0 1
1 0 1 0
1 1 0 1
0 1 1 0
0 0 1 1
1 0 0 1
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
1 1 0 0
1 1 1 0

Generowany ci

,

ag to najm lodsze (prawe) bity kolejnych stan´

ow

rejestru, czyli:

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .

Poniewa˙z n-bitowy rejestr mo˙ze znale´z´c si

,

e w jednym z 2

n

− 1

stan´

ow, wi

,

ec teoretycznie mo˙ze on generowa´c ci

,

ag o d lugo´sci

2

n

− 1 bit´

ow. Potem ci

,

ag si

,

e powtarza. (Wykluczamy ci

,

ag

samych zer, kt´

ory daje nieko´

ncz

,

acy si

,

e ci

,

ag zer)

• LFSR ma s lab

,

a warto´s´c kryptograficzn

,

a gdy˙z znajomo´s´c

2n kolejnych bit´ow ci

,

agu pozwala na znalezienie warto´sci

generowanych od tego miejsca.

• LFSR dzia la jednak bardzo szybko, zw laszcza je´sli jest

to uk lad hardware’owy, i st

,

ad jest on bardzo atrakcyjny

w praktycznych zastosowaniach. Mo˙zna konstruowa´c
bardziej skomplikowane uk lady zawieraj

,

ace kilka LFSR

i nieliniow

,

a funkcj

,

e f przekszta lcaj

,

ac

,

a bity generowane

przez poszczeg´olne LFSR.

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

50

background image

Kryptografia — wyk lad dla IV roku

Generowany ciag

PSfrag replacements

LFSR 1

LFSR 2

LFSR n

f

Generowane bity

Rysunek 9:

Uk lad z lo˙zony z wielu LFSR

Przyk lad: Generator Geffe

PSfrag replacements

LFSR 1

LFSR 2

LFSR n

f

(x

1

, x

2

, x

3

)

x

1

x

2

x

3

¬ x

2

∧ x

3

x

1

∧ x

2

Rysunek 10:

Generator Geffe: f (x

1

, x

2

, x

3

) = (x

1

∧ x

2

) ⊕ (¬ x

2

∧ x

3

)

? Generator Geffe ma s labe w lasno´sci kryptograficzne ze

wzgl

,

edu na korelacje pomi

,

edzy generowanymi bitami i

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

51

background image

Kryptografia — wyk lad dla IV roku

bitami LFSR 1 lub LFSR 2

Niech y(t) = f (x

1

(t), x

2

(t), x

3

(t)), wtedy

P (y(t) = x

1

(t)) = P (x

2

(t) = 1) + P (x

2

(t) = 0) · P (x

3

(t) =

x

1

(t)) =

1
2

+

1
2

·

1
2

=

3
4

, i podobnie dla x

3

(t).

Generatory sterowane zegarem
Generator o zmiennym kroku

(alternating step gene-

rator)

PSfrag replacements

LFSR 1

LFSR 2

LFSR 3

Zegar

Generowane bity

Rysunek 11:

Generator o zmiennym kroku

? LFSR 1 jest przesuwany w ka˙zdym takcie zegara.

? Je´sli na wyj´sciu LFSR 1 jest 1 to LFSR 2 jest przesu-

wany; LFSR 3 nie jest przesuwany (poprzedni bit jest
powtarzany).

? Je´sli na wyj´sciu LFSR 1 jest 0 to LFSR 3 jest przesu-

wany; LFSR 2 nie jest przesuwany (poprzedni bit jest
powtarzany).

? Wyj´sciowe bity LFSR 2 i LFSR 3 s

,

a dodawane modulo

2 (⊕) daj

,

ac kolejny bit generowanego ci

,

agu.

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

52

background image

Kryptografia — wyk lad dla IV roku

Shrinking generator

PSfrag replacements

LFSR 1

LFSR 2

LFSR 3

Zegar

a

i

b

i

wy´slij b

i

je˙zeli a

i

= 1

opu´s´c b

i

je˙zeli a

i

= 0

Rysunek 12:

Shrinking generator

Generatory, kt´

orych bezpiecze´

nstwo oparte jest na

trudno´

sciach obliczeniowych

Generator Blum-Micali

W generatorze tym wykorzystuje si

,

e trudno´s´c w obliczaniu

logarytmu dyskretnego. Wybieramy dwie liczby pierwsze
a i p oraz liczb

,

e x

0

(zarodek), a nast

,

epnie obliczamy

x

i+1

= a

x

i

mod

p

dla

i = 1, 2, 3, . . .

Pseudolosowy ci

,

ag bit´ow tworzymy w nast

,

epuj

,

acy spos´ob:

k

i

=

1

je˙zeli x

i

< (p − 1)/2

0

w przeciwnym przypadku

Generator RSA

Generator oparty na trudno´sci z faktoryzacj

,

a liczb.

Wybieramy dwie liczby pierwsze p i q (N = pq) oraz liczb

,

e

e wzgl

,

ednie pierwsz

,

a z (p − 1)(q − 1). Wybieramy losow

,

a

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

53

background image

Kryptografia — wyk lad dla IV roku

liczb

,

e (zarodek) x

0

mniejsz

,

a od N , a nast

,

epnie obliczamy

x

i+1

=

x

e

i

(mod

N )

generowanym bitem jest najm lodszy bit x

i

Generator Blum-Blum-Shub — BBS

Znajdujemy dwie du˙ze liczby pierwsze p i q, takie, ˙ze
p ≡ 3

(mod

4) oraz q ≡ 3

(mod

4); N = pq.

Wybieramy losow

,

a liczb

,

e x wzgl

,

ednie pierwsz

,

a z N , a

nast

,

epnie obliczamy

x

0

=

x

2

(mod

N )

x

0

stanowi zarodek dla generatora. Teraz liczymy

x

i+1

= x

2

i

(mod

N )

Generowanym bitem k

i

jest najm lodszy bit x

i+1

.

Generator RC 4

Generator RC 4 zosta l opracowany przez Rona Rivesta
w 1987 r. Przez kilka lat by l to algorytm tajny. W
1994 r. kto´s w Internecie opublikowa l program realizuj

,

acy

ten algorytm. Od tego czasu algorytm nie stanowi
tajemnicy. Algorytm ten pracuje w trybie

OFB (Output

Feedback)

. Ci

,

ag generowany przez RC 4 jest losowym

ci

,

agiem bajt´ow.

? Algorytm u˙zywa dw´och wska´znik´ow i, j przyjmuj

,

a-

cych warto´sci 0, 1, 2, . . . , 255 oraz S-boksu z warto-

´sciami S

0

, S

1

, . . . , S

255

, kt´ore tworz

,

a permutacj

,

e liczb

0, 1, . . . , 255.

? Inicjalizacja: Na pocz

,

atku i = j = 0, S

l

= l dla

l = 0, 1, . . . , 255, kolejna 256-bajtowa tablica wy-
pe lniana jest bajtami klucza, przy czym klucz jest

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

54

background image

Kryptografia — wyk lad dla IV roku

u˙zywany wielokrotnie, a˙z do wype lnienia ca lej tablicy
K

0

, K

1

, . . . , K

255

. Nast

,

epnie wykonujemy:

for i = 0 to 255:
j = (j + S

i

+ K

i

)

(mod

256)

zamie´

n S

i

z S

j

? Generowanie kolejnego bajtu:

i = i + 1

(mod

256)

j = j + S

i

(mod

256)

zamie´

n S

i

z S

j

l = S

i

+ S

j

(mod

256)

K = S

l

? Otrzymany bajt K jest dodawany modulo 2 (xor)

z kolejnym bajtem wiadomo´sci daj

,

ac kolejny bajt

kryptogramu (przy deszyfrowaniu role tekstu jawnego i
kryptogramu si

,

e zamieniaj

,

a).

Algorytm RC 4 jest u˙zywany w wielu programach komer-
cyjnych.

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

55

background image

Kryptografia — wyk lad dla IV roku

Podpis cyfrowy

Przypomnijmy:

System kryptograficzny z kluczem publicznym mo˙ze by´c
wykorzystany do podpisywania dokument´ow cyfrowych.

1. Alicja szyfruje dokument u˙zywaj

,

ac swojego klucza

prywatnego, podpisuj

,

ac w ten spos´ob dokument

2. Alicja przesy la tak podpisany dokument do Bolka

3. Bolek deszyfruje dokument u˙zywaj

,

ac klucza publicznego

Alicji, weryfikuj

,

ac w ten spos´ob podpis Alicji

Uwagi:

? podpis jest prawdziwy; Bolek weryfikuje go deszyfruj

,

ac

kryptogram kluczem publicznym Alicji

? podpis nie mo˙ze by´c sfa lszowany; tylko Alicja zna jej

klucz prywatny

? podpis nie mo˙ze by´c przeniesiony do innego dokumentu
? podpisany dokument nie mo˙ze by´c zmieniony; zmie-

niony dokument nie da si

,

e rozszyfrowa´c kluczem

publicznym Alicji

? podpis jest niezaprzeczalny;
? wad

,

a tego sposobu podpisywania dokument´ow jest

jednak to, ˙ze podpis jest conajmniej tak d lugi jak sam
dokument

Podpis z wykorzystaniem jednokierunkowej funkcji
hashuj

,

acej

1. Alicja u˙zywa funkcji hashuj

,

acej do dokumentu, kt´ory ma

podpisa´c, otrzymuj

,

ac skr´ot (

odcisk palca”) dokumentu

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

56

background image

Kryptografia — wyk lad dla IV roku

2. Alicja podpisuje skr´ot dokumentu szyfruj

,

ac go swoim

kluczem prywatnym

3. Alicja przesy la Bolkowi dokument i podpisany skr´ot

4. Bolek u˙zywa tej samej funkcji hashuj

,

acej do otrzymania

skr´otu dokumentu, a nast

,

epnie deszyfruje podpisany

skr´ot u˙zywaj

,

ac klucza publicznego Alicji; je´sli zdeszy-

frowany skr´ot zgadza si

,

e z otrzymanym przez niego to

podpis jest prawdziwy

? podpis jest znacznie kr´otszy od dokumentu
? mo˙zna sprawdzi´c istnienie podpisu bez ogl

,

adania

samego dokumentu

Schemat ElGamala podpisu cyfrowego

Generowanie kluczy

? Alicja wybiera du˙z

,

a liczb

,

e pierwsz

,

a p oraz liczb

,

e

g ∈ Z

p

(generator grupy multiplikatywnej Z


p

)

? Alicja wybiera liczb

,

e losow

,

a 0 < a < p − 1 oraz

oblicza b ≡ g

a

(mod

p)

? Kluczem publicznym Alicji s

,

a liczby {b, g, p} za´s

kluczem prywatnym liczby {a, g, p}

Podpisywanie

? Alicja wybiera liczb

,

e losow

,

a k (tajn

,

a), tak

,

a, ˙ze

0 < k < p − 1 oraz N W D(k, p − 1) = 1

? Alicja oblicza

r = g

k

(mod

p),

k

1

(mod

p),

s = k

1

[H(M ) − ar]

(mod

p − 1).

? Podpisem Alicji dla wiadomo´sci M jest para liczb

{r, s}

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

57

background image

Kryptografia — wyk lad dla IV roku

Weryfikacja

? Bolek aby stwierdzi´c prawdziwo´s´c podpisu Alicji

pobiera klucz publiczny Alicji {b, g, p}

? Bolek sprawdza czy 0 < r < p, je´sli nie, podpis nie

jest prawdziwy

? Bolek oblicza

x

1

= b

r

r

s

(mod p),

x

2

= g

H(M )

(mod

p).

? Bolek akceptuje podpis je´sli x

1

= x

2

Uzasadnienie

Poniewa˙z s ≡ k

−1

[H(M ) − ar]

(mod

p − 1), to mno˙z

,

ac

stronami przez k mamy ks ≡ H(M ) − ar

(mod

p − 1) i

po przekszta lceniu H(M ) ≡ ar + ks

(mod

p − 1), a co

za tym idzie g

H

(M )

≡ g

ar

+ks

≡ (g

a

)

r

r

s

≡ b

r

r

s

(mod

p).

Tak wi

,

ec x

1

= x

2

.

DSA — Digital Signature Algorithm

Algorytm podpisu cyfrowego zatwierdzony w 1994 r. przez
NIST jako standard podpisu cyfrowego w USA (Digital
Signature Standard — DSS). Wykorzystuje funkcj

,

e hashuj

,

ac

,

a

SHA-1.

Generacja klucza

? Alicja wybiera liczb

,

e pierwsz

,

a q o d lugo´sci 160 bit´ow

? Alicja wybiera liczb

,

e pierwsz

,

a p o d lugo´sci 512 ≤ l ≤

1024, przy czym 64|l, tak

,

a, ˙ze q|p − 1

? Alicja wybiera element g ∈ Z

p

i oblicza

b = g

(p−1)/q

(mod

p);

je´sli b = 1 to wybiera inne g.

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

58

background image

Kryptografia — wyk lad dla IV roku

? Alicja wybiera liczb

,

e losow

,

a a, 0 < a < q, i oblicza

c = b

a

(mod

p)

? Kluczem publicznym Alicji jest zbi´or liczb {b, c, p, q}

Podpisywanie

? Alicja wybiera tajn

,

a liczb

,

a losow

,

a k, 0 < k < q,

? Alicja oblicza

r = (b

k

(mod

p))

(mod

q),

k

1

(mod

q),

s = k

1

[H(M ) + ar]

(mod q).

? Podpisem Alicji dla wiadomo´sci M jest para liczb {r, s}

Weryfikacja

? Bolek pobiera klucz publiczny Alicji {b, c, p, q}
? Bolek sprawdza czy 0 < r < q i 0 < s < q, je´sli nie, to

podpis jest fa lszywy

? Bolek oblicza

H(M ) i w = s

1

(mod

q),

u

1

= w H(M )

(mod

q),

u

2

= rw

(mod q),

v = (b

u

1

c

u

2

(mod

p))

(mod

q).

? Bolek uznaje podpis za prawdziwy je´sli v = r.

Uzasadnienie

Je´sli {r, s} jest prawdziwym podpisem Alicji dla wiadomo´sci

M , to H(M ) ≡ −ar +ks

(mod

q). Mno˙z

,

ac stronami przez w

i przekszta lcaj

,

ac otrzymujemy w H(M ) + arw ≡ k

(mod

q),

co jest r´

ownowa˙zne u

1

+ au

2

≡ k

(mod

q). Podnosz

,

ac b do

pot

,

egi lewej i prawej strony tej kongruencji otrzymujemy

(b

u

1

+au

2

(mod

p))

(mod

q) ≡ (b

k

(mod

p))

(mod

q)

i dalej mamy

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

59

background image

Kryptografia — wyk lad dla IV roku

(b

u

1

c

u

2

(mod

p))

(mod

q) ≡ (b

k

(mod

p))

(mod

q),

a to oznacza v = r.

´

Slepe podpisy cyfrowe

Zasadniczym za lo˙zeniem protoko l´ow podpis´ow cyfrowych
jest, ˙ze podpisuj

,

acy dokument wie co podpisuje. Nie na-

le˙zy podpisywa´c dokument´ow wygl

,

adaj

,

acych na losowy ci

,

ag

bit´ow.

Od powy˙zszej zasady s

,

a jednak odst

,

epstwa. Przypu-

´s´cmy, ˙ze Bolek jest notariuszem, za´s Alicja chce aby Bolek

potwierdzi l notarialnie istnienie dokumentu, ale nie chce aby
ten dokument obejrza l. Mamy wtedy do czynienia z tzw.

´slepym podpisem. Wyobra´zmy sobie, ˙ze Alicja wk lada list

do koperty l

,

acznie z kalk

,

a, a potem prosi Bolka o z lo˙zenie

podpisu na zaklejonej kopercie. Po otwarciu koperty na li´scie
b

,

edzie kopia podpisu Bolka. Cyfrowo ´slepy podpis mo˙zna

zrealizowa´c korzystaj

,

ac np. z algorytmu RSA.

´

Slepy podpis z u˙zyciem RSA

? Alicja pobiera klucz publiczny Bolka {e, n}
? Alicja wybiera liczb

,

e losow

,

a k, 0 < k < n,

? Alicja oblicza z = M k

e

(mod

n) i przesy la z do

Bolka

? Bolek oblicza z

d

= (M k

e

)

d

(mod

n) u˙zywaj

,

ac

swojego klucza prywatnego {d, n} i wynik przesy la
Alicji

? Alicja oblicza s = z

d

/k

(mod

n).

Poniewa˙z

z

d

≡ (M k

e

)

d

≡ M

d

k

(mod

n), wi

,

ec z

d

/k =

M

d

k/k ≡ M

d

(mod

n), czyli s = M

d

(mod

n)

jest podpisem Bolka na wiadomo´sci M .

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

60

background image

Kryptografia — wyk lad dla IV roku

Niezaprzeczalne podpisy cyfrowe

Podpis niezaprzeczalny nie mo˙ze by´c sprawdzony bez zgody
osoby podpisuj

,

acej. Podpisuj

,

acy nie mo˙ze si

,

e wyprze´c

swojego podpisu, ale mo˙ze tak˙ze dowie´s´c, ˙ze podpis jest
fa lszywy (je´sli jest).

Niezaprzeczalny podpis oparty na logarytmach
dyskretnych

Przypu´s´cmy, ˙ze stron

,

a podpisuj

,

ac

,

a dokument jest Alicja.

?

Generacja klucza

Alicja posiada klucz prywatny {a, g, p} oraz klucz
publiczny {b, g, p} wygenerowany jak w algorytmie
ElGamala.

?

Podpisywanie

Alicja oblicza z = M

a

(mod

p) i to jest jej podpis

dla dokumentu M

?

Weryfikacja

1. Bolek wybiera dwie liczby losowe r i s mniejsze od p,

oblicza w = z

r

b

s

(mod

p) i przesy la Alicji

2. Alicja oblicza

t = a

1

(mod

p − 1)

v = w

t

(mod

p)

i przesy la Bolkowi v

3. Bolek sprawdza czy v = M

r

g

s

(mod

p)

?

Uzasadnienie

Zauwa˙zmy, ˙ze v = w

t

= z

rt

b

st

= (z

t

)

r

(b

t

)

s

= (M

at

)

r

(g

at

)

s

=

M

r

g

s

(mod

p)

Ryszard Tana´

s, http://zon8.physd.amu.edu.pl/˜tanas

61


Wyszukiwarka

Podobne podstrony:
Kryptografia Wykład z podstaw klasycznej kryptografii z elementami kryptografii kwantowej
PODSTAWY MATEMATYCZNE, MECHANIZMY KRYPTOGRAFICZNE - WYKŁADY
Wykład 4 Podstawy prawne finansów publicznych
Idea holizmu - wykład 2, podstawy pielęgniarstwa
wykłady z podstaw ekonomii
Kryptologia Wyklad 6
Konspekt wykładów z Podstaw automatyki wykład 5
kryptografia Wykład v2
Kryptografia wyklad 04
Zagadnienia egzaminacyjne PF3-09, SKRYPTY, NOTATKI, WYKŁADY, Podstawy Fizyki 3, wykład
1 wykład Podstawowe pojęcia i przedmiot ekonomi
Wykład 1 - Podstawy organizacji, zarządzanie bhp
Wykład -Podstawy turystyki, Turystyka i Rekreacja, Podstawy turystyki
ZFP wykład 4, podstawy finansów przedsiębiorstwa
Projektowanie baz danych Wykłady Sem 5, pbd 2006.01.07 wykład03, Podstawy projektowania
wykład 3 - podstawy zarządzania - 10.01.2010

więcej podobnych podstron