podstawy szyfrowania informacji

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

PODSTAWY SZYFROWANIA INFORMACJI

W swiecie wymiany informacji, w którym obecnie króluje globalna siec Internet, coraz

czesciej pojawia sie zagadnienie tajnosci danych przesylanych w sieci. Prawde mówiac problem

ten nie jest nowy, nie zrodzil sie on wraz z era maszyn liczacych i sieci komputerowych. Borykali

sie z nim juz starozytni i oni tez opracowali pierwsze sposoby ochrony informacji przed oczyma

niepowolanych osób. Metoda byla bardzo prosta: szyfrowanie.

Wyróznia sie dwa sposoby szyfrowania informacji: za pomoca szyfrów przestawieniowych oraz

za pomoca szyfrów podstawieniowych. W wyniku zlozenia tych dwu metod otrzymujemy nowa

klase szyfrów, szyfry kaskadowe, które sa znacznie bezpieczniejsze od swych poprzedników.

1.1. Szyfry przestawieniowe

Szyfry przestawieniowe zmieniaja porzadek znaków wedlug pewnego schematu.

Przestawienia tego dokonuje sie za pomoca pewnej figury geometrycznej, do której wpisuje sie

tekst w sposób okreslony sciezka zapisu, a potem odczytuje sie tekst zgodnie z pewna sciezka

odczytu.

Tekst jawny

→Figura→Tekst zaszyfrowany

zapis odczyt

Przykladem takiego szyfru jest szyfr plotkowy. Tekst zaszyfrowany otrzymuje sie przez zapis

w ksztalcie „plotka”, a nastepnie odczytuje sie wierszami informacje. Klucz K tego szyfru

okreslony jest wysokoscia tego „plotka”.

Przyklad (dla K = 3):

BEZPIECZENSTWO_SIECI_KOMPUTEROWYCH

tekst jawny

B

EZP

I

ECZ

E

NST

W

O_S

I

ECI

_

KOM

P

UTE

R

OWY

C

H

B

E

Z

P

I

E

C

Z

E

N

S

T

W

O

_

S

I

E

C

I

_

K

O

M

P

U

T

E

R

O

W

Y

C

H

figura

BE

Z

PIE

C

ZEN

S

TWO

_

SIE

C

I_K

O

MPU

T

ERO

W

YCH

BIEWI_PRCEPEZNTOSEIKMUEOYHZCS_COTW

wiadomosc zaszyfrowana

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

2

Czesto figura jest macierz dwuwymiarowa. Tekst jawny zapisuje sie do macierzy wierszami.

Tekst zaszyfrowany powstaje przez odczytanie kolumn w okreslonym porzadku.

Przyklad: Uzywajac macierzy 3x4 szyfrujemy slowo „MARCYPANKOWY”.

1

2

3

4

Tekst zaszyfrowany po odczycie kolumn w kolejnosci 2-4-1-3

M. A R

C

Bedzie mial postac:

Y

P

A

N

APOCNYMYKRAW

K

O W Y

Macierz moze byc n-wymiarowa.

Wiele szyfrów przestawieniowych zmienia kolejnosc znaków tekstu przy zastosowaniu

pewnego stalego okresu d. Niech Z

d

jest zbiorem liczb calkowitych od 1 do d, a f: Z

d

→ Z

d

permutacja na zbiorze Z

d

. Kluczem takiego szyfru jest para K=(d, f). Kolejne bloki d znaków sa

szyfrowane przez dokonanie permutacji znaków zgodnie z f.

Przyklad:

d=4

f jest permutacja

i: 1 2 3 4

f(i): 2 4 1 3

UWAGA_SCISLE_TAJNA_WIADOMOSC

tekst jawny

WGUA_CASSEILTJ_AAWN_AOIDOCMS

wiadomosc zaszyfrowana

W rzeczywistosci dwa poprzednie sposoby szyfrowania sa szczególnymi przypadkami

trzeciego. Bardzo latwo jest rozpoznac, czy dany szyfr jest szyfrem przestawieniowym.

Czestotliwosc wystepowania liter w tekscie jawnym jest taka sama jak czestotliwosc

wystepowania tych samych liter w tekscie zaszyfrowanym.

1.2. Szyfry podstawieniowe

Szyfry podstawieniowe dzielimy na cztery typy: monoalfabetyczne, homofoniczne,

wieloalfabetyczne i poligramowe.

1.2.1. Szyfry monoalfabetyczne

Szyfry monoalfabetyczne zamieniaja kazdy znak uporzadkowanego alfabetu jawnego na

odpowiedni znak uporzadkowanego alfabetu szyfru. Bardzo czesto alfabet szyfru powstaje

z alfabetu jawnego przez prosta zamiane kolejnosci znaków w alfabecie jawnym (permutacja).

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

3

Jesli alfabet jawny ma a

1

, a

2

, ..., a

N-1

,

wtedy alfabet szyfru ma postac f(a

1

), f(a

2

), ..., f(a

N-1

), przy

czym f jest odwzorowaniem wzajemnie jednoznacznym (bijekcja). Kluczem jest alfabet szyfru lub

funkcja f.

Przyklad:

alfabet jawny: A B C D E F G H I J K L M N O P R S T U W X Y Z

alfabet szyfru: D E F G H I J K L M N O P R S T U W X Y Z A B C

tekst jawny:

SYSTEM

tekst zaszyfrowany:

WBWXHP

Powyzszy przyklad jest szczególnym przypadkiem szyfru podstawieniowego, gdyz szyfr

powstal na „alfabecie przesunietym” zwanym tez szyfrem Cezara [1, 2, 3].

Funkcja f ma wtedy postac:

f(a) = (a+k) mod N

gdzie:

N – dlugosc alfabetu,

k – przesuniecie w prawo,

a – oznacza pozycje litery w alfabecie.

Innym przypadkiem szyfru podstawieniowego jest szyfr oparty na mnozeniach zwany

„przerzedzonym”. Funkcja f ma postac:

f(a) = (s*k) mod N

przy czym k oraz N sa wzglednie pierwsze. Jesli k i N nie sa liczbami wzglednie pierwszymi, to

wielu literom tekstu jawnego bedzie odpowiadac ta sama litera tekstu zaszyfrowanego.

Dwie powyzsze metody mozna polaczyc i otrzymamy wtedy szyfr „afiniczny”.

f(a) = (a * k

1

+ k

0

)

mod N

gdzie:

k

0

– przesuniecie w prawo,

k

1

– wspólczynnik przerzedzenia.

Ogólny wzór przeksztalcenia wyzszego rzedu otrzymuje sie z przeksztalcen wielomianowych

stopnia t

f(a) = (a

t

*k

t

+ a

(t-1)

*k

(t-1)

+ ... a*k

1

+ k

0

) mod N

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

4

1.2.2. Szyfry homofoniczne

Szyfry homofoniczne odwzorowuja kazdy znak a

i

alfabetu jawnego A na zestaw elementów

tekstu zaszyfrowanego, zwanych homofonami. W ten sposób odwzorowanie tekstu jawnego na

zaszyfrowany mozna okreslic jako funkcje:

f: A

→B

gdzie B jest alfabetem szyfrujacym, skladajacym sie z podzbiorów b

i

, bedacych zbiorami

homofonów odpowiadajacych a

i

Tekst jawny M=m

1,

m

2

, ... podlega szyfrowaniu jako b=c

1

, c

2

, ... gdzie znak c

i

wybierany jest

losowo ze zbioru homofonów f(m

i

).

Przyklad:

Litera Homofony

A

17 19 34 41 56 60 67 83

I

08 22 53 65 88 90

L

03 44 76

N

02 09 15 27 32 40 59

O

10 11 23 28 42 54 70 80

P

33 91

T

05 10 20 29 45 58 64 78

Tekst jawny:

P I L O T

Tekst zaszyfrowany: 91 53 03 80 64

lub:

33 08 76 80 05

Szyfry homofoniczne moga byc duzo trudniejsze do zlamania niz zwykle szyfry

podstawieniowe, szczególnie w przypadkach, gdy liczba homofonów przydzielonych literze jest

proporcjonalna do wzglednej czestosci jej wystepowania. Oczywiscie im wiecej homofonów

przydzielimy literom, tym silniejszy tworzymy szyfr.

W wiekszosci szyfrów jest mozliwe jego zlamanie, gdy posiadamy odpowiednio duza ilosc

tekstu zaszyfrowanego [4]. Wynika to z faktu, ze istnieje tylko jeden klucz K, którego uzycie do

deszyfrowania daje w wyniku zrozumialy tekst jawny. Istnieje jednak mozliwosc stworzenia

szyfru homofonicznego wyzszego stopnia, dla którego kryptogram mozna zdeszyfrowac na wiecej

niz jeden sensowny tekst.

Aby skonstruowac taki szyfr drugiego stopnia (kazdemu tekstowi zaszyfrowanemu

odpowiadaja dwa teksty jawne), nalezy macierz K(NxN) wypelnic losowo liczbami od 1 do N

2

.

Wiersze i kolumny odpowiadaja znakom alfabetu jawnego. Dla kazdego znaku a tekstu jawnego

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

5

wiersz a macierzy tworzy jeden zbiór homofonów f

1

(a), zas kolumna a tworzy zbiór f

2

(a).

Wlasciwy tekst jawny M=m

1

, m

2

,... szyfrujemy z tekstem falszywym X=x

1

, x

2

,..., tworzac

kryptogram C=c

1

, c

2

,..., gdzie c

i

= K(m.

i

, x

i

) dla i = 1, 2, ...

Przyklad:

N=5, {A, I, K, L}

\

A

I

J

K

L

Tekst „lalka” szyfrujemy tekstem falszywym „kajak”.

A 10 22 18 02 11

Tekst zaszyfrowany:

I

12 01 25 05 20

L A L K A

J

19 06 23 13 07

K A J A K

K 03 16 08 24 15

14 10 21 03 02

L

17 09 21 14 04

1.2.3. Szyfry wieloalfabetyczne

Szyfry monoalfabetyczne zachowuja rozklad czesciowy wystepowania znaków tekstu

jawnego. Szyfr homofoniczny ukrywa ten rozklad przez przypisanie danej literze wielu symboli

(homofonów). Szyfr wieloalfabetyczny takze ukrywa ten rozklad, ale robi to przez uzycie wielu

podstawien. Twórca szyfrów wieloalfabetycznych jest Leon Batista Alberti [5, 6, 7, 8, 9].

Skonstruawal on dysk szyfrowy, skladajacy sie z dwóch kól. Na zewnetrznym znajdowaly sie

litery alfabetu jawnego (24 znaki), na wewnetrznym ruchomym znajdowaly sie litery alfabetu

szyfrowego. Dzieki temu dysk ten definiuje 24 mozliwe podstawienia (zamiana tekstu jawnego na

litery kryptogramu z kola wewnetrznego), które oczywiscie mozemy zmienic co pewien okres d

(znak tekstu) przez obrót kola.

Przykladem szyfru podstawieniowego wieloalfabetycznego jest szyfr Vigene’a [5]. Klucz

szyfru K tworzy sekwencja liter K=k

1

, k

2

, ... k

d

, gdzie k

i

(i=1, ... d) daje liczbe przesuniec w i-tym

alfabecie:

f

i

(a) = (a + k

i

) mod N

Przyklad:

Szyfrujemy slowo „lekkoatletka” z uzyciem klucza czad.

Tekst jawny:

L E K K O A T L E T K A

Klucz:

C Z A D C Z A D C Z A D

Tekst zaszyfrowany:

N D K N Q Z T O G S K D

Pomocna przy szyfrowaniu i deszyfrowaniu jest tablica Vigenere’a. Czesc tej tablicy

przedstawiona jest ponizej:

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

6


A B C D E

F

G ...

→tekst jawny

A

A B C D

E

F

G

...

B

B

C D E

F

G H

...

Dla litery tekstu jawnego d i litery klucza d

C

C D E

F

G H I

...

litera kryptogramu c jest znak z kolumny d

D

D E

F

G

H I

J

...

i wiersza d, czyli znak g.

E

E

F

G H

I

J

... ...

F

F

G H I

J

K ... ...

Bardzo podobny do szyfru Vigenere’a jest

G

G H I

J

K ... ... ...

szyfr Beauforta, dla którego odwzorowanie

...

... ... ... ... ... ... ... ...

przybiera postac:

Ζ
klucz

f

i

(a) = (k

i

– a) mod N

Inna odmiana szyfru podstawieniowego wieloalfabetycznego jest szyfr z kluczem biezacym.

Jest to szyfr, w którym dlugosc klucza jest równa dlugosci tekstu jawnego. Jedna z metod jest

uzycie tekstu z jakiejs ksiazki lub dokumentu jako szyfru podstawieniowego. Kluczem jest tytul

ksiazki lub dokumentu i punkt startowy. Szyfr ten gwarantuje prawie doskonala poufnosc

szyfrowania. Mozna go zlamac wykorzystujac fakt, ze teksty, które sa kluczami np. w jezyku

angielskim, cechuje pewna redundancja. Najlepiej nadaje sie do tego metoda Friedmana[8].

Innym rozwiazaniem sa maszyny rotowe [6, 10], w których stosuje sie podstawienie

wieloalfabetyczne o dlugim okresie. Maszyna taka jest zbudowana z szeregu kól (rotorów). Na

obwodzie kazdego kola, po obu stronach, znajduje sie po 26 styków. Kazdy styk na jednej stronie

polaczony jest z jednym ze styków po drugiej stronie. Polaczenie to definiuje nam odwzorowanie

f

i

liter tekstu jawnego na litery kryptogramu. Kolo (rotor) moze sie obracac, kazde nowe polozenie

rotora odpowiada innemu odwzorowaniu. Gdy rotor jest w pozycji i-tej, to funkcja opisujaca

odwzorowanie przyjmuje postac:

F

i

= (f

i

(a-j

i

) mod 26 + j

i

) mod 26

Sygnal odpowiadajacy literze tekstu jawnego wchodzi do zespolu rotorów, przechodzi przez

nie i pojawia sie z drugiej strony. Jesli w maszynie znajduje sie kilka rotorów, to szyfr

podstawieniowy sklada sie z kilku szyfrów odpowiadajacych kolejnym rotorom. Funkcja

odwzorowujaca litere przyjmuje postac:

E

ki

(a) = F

i

°...° F

2

°F

1

(a)

przy czym k

i

zalezy od f

1

, ...,f

i

zaszytych w polaczeniach miedzy stykami dla odpowiednich

rotorów oraz od pozycji j

1

, ..., j

i

poszczególnych rotorów. Poczatkowy klucz tego szyfru jest

okreslony poczatkowym ustawieniem rotorów oraz ich okablowaniem (polaczeniami), nastepnie

sposobem zmiany klucza, czyli zmiany pozycji (obracanie) poszczególnych rotorów. Maszyna

z trzema rotorami ma okres dlugosci 17.546, z czterema 456.976, a z piecioma az 11.881.376.

Mimo ze okresy (klucze) sa tak dlugie, nie sa one calkiem losowe i szyfry te moga zostac zlamane,

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

7

co dowiedli wybitni polscy przedwojenni matematycy, którzy zlamali kod maszyny szyfrujacej

„Enigma” stosowanej przez Niemców w czasie drugiej wojny swiatowej. „Enigma” jest

przykladem maszyny rotowej z trzema rotami, w której ruch rotorów odbywal sie jak w liczniku, a

kluczem bylo poczatkowe polozenie tych rotorów.

Prawdopodobnie najlepszym tego typu szyfrem jest szyfr z kluczem jednokrotnym.

KLucz jest losowa sekwencja znaków, bez powtórzen i jest uzywany tylko raz. Gilbert

Verman jako pierwszy zastosowal ten szyfr dla 32-znakowego kodu Baudota stosowanego

w dalekopisach firmy AT&T (American Telegraph Copany). Uzycie kazdego innego

losowego klucza daje nam jeden z najtrudniejszych do zlamania szyfrów. Niedogodnoscia tej

metody jest bardzo dlugi klucz.

1.2.4. Szyfry poligramowe

Szyfry przestawieniowe i podstawieniowe szyfruja krokowo po jednej literze tekstu jawnego.

Szyfry poligramowe szyfruja w jednym kroku wieksze grupy liter i to wlasnie powoduje, ze

zlamanie takiego szyfru jest duzo trudniejsze, a to dzieki zachwianiu równowagi pomiedzy

czestotliwoscia wystepowania liter w tekscie jawnym i zaszyfrowanym.

Jednym z szyfrów poligramowych jest szyfr Playfaira [6], który jest digramowym szyfrem

podstawieniowym. Szyfr ten byl stosowany przez Anglikow w czasie pierwszej wojny swiatowej.

Kluczem jest macierz o wymiarach 5x5 skladajaca sie z liter (bez litery J).

H

A

R P S

I

C

O D B

E

F

G K L

M

N

Q T

U

V

W X Y

Z

Kazda pare liter tekstu jawnego m

1

m

2

szyfruje sie wedlug podanych regul:

1. Jesli litery m1 i m2 sa w tym samym wierszu, to c1 i c2 sa znakami polozonymi z prawej

strony m1 i m2;

2. Jesli litery m1 i m2 znajduja sie w tej samej kolumnie, to c1 i c2 sa znakami polozonymi

ponizej m1 i m2;

3. Jezeli m1 i m2 znajduja sie w tej samej kolumnie, to c1 i c2 sa brane z przeciwleglych rogów

prostokata wyznaczonego przez m1 i m2, przy czym c1 pochodzi z wiersza zawierajacego m1,

a c2 z wiersza zawierajacego m2.

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

8

4. Jesli m1 = m2, to do tekstu jawnego miedzy te litery wstawia sie nieznaczaca litere (np. X), co

eliminuje powtórzenia.

5. Jesli tekst jawny ma nieparzysta liczbe znaków, to na koncu tekstu jawnego dopisuje sie

nieznaczaca litere.

Pierwsza kolumne macierzy traktuje sie jako polozona na prawo od ostatniej kolumny,

a pierwszy wiersz jako lezacy pod ostatnim wierszem.

Przyklad:

Za pomoca szyfru Playfaira kodujemy slowa „POLITECHNIKA”, „PANNA”.

PO LI TE CH NI KA

tekst jawny

RD EB MK IA MC FP tekst zaszyfrowany

PA NX NA

tekst jawny (wstawienie znaku nieznaczacego miedzy litery)

SR QW WC

tekst zaszyfrowany

Inny szyfr zwany Hilla przeksztalca liniowo d znaków tekstu jawnego na d znaków tekstu

zaszyfrowanego. Opis metody szyfrowania dla przypadku, gdy d=2 oraz M=m

1

m

2

. Tekst jest

szyfrowany jako C = E

K

(M) = c

1

c

2

, gdzie:

c

1

= (k

11

* m

1

+ k

12

* m

2

) mod n

c

2

= (k

21

* m

1

+ k

22

* m

2

) mod n

Traktujac M i C jako wektory oraz K jako macierz przeksztalcenia mozna zapisac:

C = K*M mod n:

Deszyfrowanie jest bardzo proste i dokonuje sie przez uzycie macierzy odwrotnej K

-1

:

D

K

(C) = K

-1

KM mod n = M mod n = M.

Ze wzgledu na to, ze przeksztalcenie jest liniowe, mozna bardzo latwo odtworzyc klucz, majac

zaszyfrowana i jawna postac zaledwie kilkunastu znaków tekstu. Majac kawalki tekstu jawnego

i odpowiadajace im kawalki tekstu zaszyfrowanego M

1

= (m

1

m

2

), M

2

= (m

3

m

4

), C

1

=

(c

1

c

2

) oraz C

2

= (c

3

c

4

) i przyjmujac, ze M = (M

1,

M

2

), C = (C

1,

C

2,

), mozna znalezc macierz K korzystajac ze

wzoru: K = CM

-1

mod n.

1.3. Szyfry kaskadowe

Szyfr kaskadowy jest zlozeniem i funkcji (szyfrów) F

1

, F

2

, ..., F

i, ,

gdzie F

i

jest permutacja

albo podstawieniem. Maszyny rotorowe sa przykladem szyfrów kaskadowych. Funkcja

przeksztalcenia ma postac:

E

ki

(a) = F

i

°...° F

2

° F

1

(a)

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

9

Szyfrowanie podstawieniowo-permutacyjne jest polaczeniem róznego rodzaju funkcji. Twórca

tej koncepcji jest Shannon. Przeksztalcenie mozna tworzyc laczac przestawienie z sekwencja na

przemian wykonywanych podstawien i prostych operacji liniowych.

Przed era komputerowa kryptografia zajmowala sie szyframi dzialajacymi na pojedynczych

znakach. Byly to algorytmy dokonujace podstawienia znaków. Jeszcze lepsze wyniki uzyskano,

mieszajac wielokrotnie obie techniki.

Rzeczy skomplikowaly sie w erze komputerowej, lecz istota problemu nie ulegla zmianie.

Podstawowa zmiana jest zmiana jednostki przetwarzania; obecnie jest nia bit, a nie znak. Fakt ten

spowodowal zmiane rozmiarów alfabetu: z 26 znaków do 2, ale nic poza tym. Wiekszosc dobrych

algorytmów kryptograficznych nadal laczy elementy podstawiania i przestawiania.

L

ITERATURA

1.

B. S

CHNEIER

, Kryptografia dla praktyków. Protokoly, algorytmy i programy zródlowe w jezyku C. Wydawnictwa

Naukowo-Techniczne, Warszawa 1995.

2. C. E. S

HANNON

, Predication and Entropy in Printed English. Bell System Technical Journal, v. 30, n. 1, 1951,

str. 50-64.

3.

S. P

ELEG AND

A. R

OSENFIELD

, Breaking Substitution Ciphers Using a Relaxation Algorithm. Communications of

the ACM, v. 22,n. 11, Nov 1979.

4.

F. P

RATT

, Secret and Urgent. Blue Ribbon Books, 1942

5.

D. E. R

OBLING

D

ENING

, Kryptografia i ochrona danych. Wydawnictwa Naukowo-Techniczne, Warszawa 1993.

6.

D. K

AHN

, The Codebreakers: The Story of Secret Writing, New York: Macmillan, 1967.

7.

B. S. K

ALISKI

, R. L. R

IVERS AND

A. T. S

HERMAN

, Is the Data Encryption Standard a Group?. Journal of

Cryptology, v. 1, n. 1, 1988, str. 3-36.

8.

W. F. F

RIEDMAN

, The Index of Coincidence and Its Applications in Cryptography, Riverbank Publication No. 22,

Riverbank Labs, 1920.

9.

H. F. G

AINES

, Cryptoanalysis, American Photographic Press, 1937.

10. A. S

CHERBIUS

, Ciphering Machine, U.S. Patent 1, 657, 411, 24 Jan 1928.

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

KLASYFIKACJA ALGORYTMÓW

Algorytmów szyfrujacych jest bardzo wiele. Mozna je klasyfikowac w bardzo rózny sposób.

W poprzednim rozdziale wyróznilismy dwie grupy szyfrów, ze wzgledu na metody szyfrowania

informacji, podstawieniowe i przestawieniowe. Najbardziej jednak funkcjonalny wydaje sie

podzial ze wzgledu na sposób, w jaki algorytmy przeksztalcaja tekst jawny w szyfrogram. Ze

wzgledu na ten parametr wyróznia sie dwa typy algorytmów: strumieniowe (rozdzial 1.4)

i blokowe (rozdzial 1.6).

1.4. Szyfry strumieniowe

Niech M oznacza wiadomosc tekstowa, zwana równiez tekstem jawnym. Szyfry

strumieniowe dziela tekst M na znaki lub bity m

1

, m

2

, ..., a nastepnie kazdy i-ty element m

i

jest

szyfrowany kluczem k

i

nalezacym do strumienia kluczy K = k

1

, k

2

, ...; tzn.

E

k

(M) = E

k1

(m

1

)E

k2

(m

2

)...

Szyfr strumieniowy jest okresowy, jesli strumien klucza powtarza sie po d znakach, dla

danego ustalonego d. W przeciwnym przypadku szyfr jest nieokresowy (tego typu szyfry sa

bezpieczniejsze od okresowych i w dalszej czesci tego podrozdzialu zajmiemy sie wlasnie nimi).

Jak nietrudno zauwazyc, bezpieczenstwo szyfrów strumieniowych calkowicie zalezy od

generatora strumienia kluczy (rys. 6). Mozna sobie wyobrazic sytuacje, w której generator

strumienia klucza wytwarza nieskonczenie wiele zer, co sprawi, ze na wyjsciu otrzymamy

szyfrogram taki sam jak tekst jawny. Moze sie tez zdarzyc, ze generator bedzie wytwarzal

powtarzajacy sie wzorzec (efekt niedopuszczalny w przypadku szyfrów nieokresowych), co

sprawi, ze nasz caly zlozony system bedzie zwyklym sumatorem modulo dwa. Trzeba by wiec

stworzyc generator, który wytwarzalby nieskonczony strumien bitów losowych. W ten sposób

otrzymamy klucz jednorazowy i doskonale zabezpieczenie. W rzeczywistosci generatory ciagów

klucza wytwarzaja strumienie bitów, które sa zdeterminowane. Moga wiec one byc w stosunkowo

latwy sposób odtworzone przez kryptoanalityków. Jedynym rozwiazaniem wydaje sie stworzenie

generatora, który wytwarzalby losowo wygladajacy ciag bitów, zadanie to jednak nie nalezy do

latwych.

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

11

Generator

ciagu kluczy

Ciag klucza

Generator

ciagu kluczy

Ciag klucza

Tekst jawny

Tekst jawny

Szyfrogram

C

i

P

i

P

i

K

i

K

i

Szyfrowanie

Deszyfrowanie

Rys. 6. Generator strumienia klucza

W kategorii szyfrów strumieniowych mozna wyróznic synchroniczne szyfry strumieniowe

oraz samosynchronizujace szyfry strumieniowe

.

W pierwszym przypadku mamy do czynienia

z sytuacja, w której klucz jest generowany niezaleznie od strumienia wiadomosci. Po obu

stronach, szyfrujacej i deszyfrujacej, generatory strumieni kluczy wytwarzaja identyczne

strumienie bitów klucza. Wszystko dziala poprawnie do chwili, gdy oba generatory sa

zsynchronizowane. Moze jednak nastapic „zagubienie” bitu podczas przesylania lub jeden z

generatorów „przeskoczy” cykl; wówczas od tego momentu kazdy znak szyfrogramu bedzie

zdeszyfrowywany niepoprawnie. By owa pomylke wyeliminowac, nadawca i odbiorca musza

ponownie zsynchronizowac swoje generatory strumieni kluczy. Nie jest to jednak takie proste,

jakby sie na pozór wydawalo; musza dokonac tego w taki sposób, aby nie powtórzyla sie zadna

czesc ciagu klucza. Nie wystarczy wiec ponowna inicjacja obu generatorów.

Pozytywna strona tego rozwiazania jest to, ze synchroniczne szyfry strumieniowe nie

rozsiewaja bledów transmisji.

Szyfry strumieniowe pracuja w dwu trybach:

tryb sprzezenia zwrotnego wyjsciowego – gdy klucz wplywa na funkcje nastepnego stanu;

funkcja wyjscia jest prosta i nie zalezy od klucza,

tryb licznikowy – gdy mamy do czynienia z prostymi funkcjami stanu wewnetrznego

i skomplikowanymi funkcjami wyjscia, które sa zalezne od klucza.

W samosynchronizujacych szyfrach strumieniowych kazdy bit ciagu szyfrujacego jest funkcja

pewnej stalej liczby poprzednich bitów szyfrogramu. Najczesciej te szyfry strumieniowe pracuja

w trybie sprzezenia zwrotnego szyfrogramu. Na rys. 7 przedstawiony jest schemat dzialania szyfru

strumieniowego w trybie sprzezenia zwrotnego szyfrogramu.

Poniewaz stan wewnetrzny zalezny jest od n poprzednich bitów szyfrogramu, wiec generator

strumienia klucza do deszyfrowania bedzie automatycznie zsynchronizowany z generatorem

strumienia klucza do szyfrowania po odebraniu n bitów szyfrogramu.

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

12

Stan wewnetrzny

Funkcja

wyjsciowa

Stan wewnetrzny

Funkcja

wyjsciowa

K

C

i

P

i

P

i

Rys. 7. Samosynchronizujacy szyfr strumieniowy

Niestety, ujemna strona samosynchronizujacych sie szyfrów strumieniowych jest propagacja

bledów. Jezeli wystapi blad jednego bitu w czasie przesylania, to po stronie deszyfrujacej

otrzymamy n niepoprawnych bitów [1, 2, 3, 4].

1.5. Generatory ciagów losowych

W rozdziale wczesniejszym stwierdzilismy, ze szyfry strumieniowe latwo mozna zlamac, gdy

lancuch klucza sie powtarza lub zawiera redundancje. Intuicyjnie oznacza to, ze kazdy element

z alfabetu klucza powinien byc równomiernie rozmieszczony w calym lancuchu klucza i nie

powinno byc dlugich powtarzajacych sie ciagów ani tez innych wzorców.

Okazuje sie jednak, ze zaden algorytm skonczony nie moze generowac prawdziwie losowych

ciagów. Nie wyklucza to jednak mozliwosci generowania kluczy przy uzyciu generatorów liczb

pseudolosowych.

1.5.1. Liniowe generatory kongruencyjne

Liniowymi generatorami kongruencyjnymi (ang. Linear Congruential Generator)
nazywamy generatory ciagów pseudolosowych pracujace wg wzoru kongruencyjnego:

(

)

X

aX

b

m

n

n

=

+

1

mod

,

gdzie:

X

n

liczba o numerze n w ciagu,

a, b, m – wielkosci stale,
a

mnoznik,

b

przyrost,

m

modulo,

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

13

X

0

ziarno generatora – wartosc poczatkowa.

Jak latwo zauwazyc, generator ten ma okres nie wiekszy niz m.
Jezeli liczby a, b i m sa odpowiednio dobrane, to generator bedzie generatorem
maksymalnego okresu
i bedzie mial okres m, np. gdy m i b wzglednie pierwsze [5].

Tabela 1 zawiera liste dobrych stalych dla liniowych generatorów kongruencyjnych.

Zapewniaja one, ze generatory wytwarzaja ciagi maksymalnego okresu.

Tabela 1. Stale dla liniowych generatorów kongruencyjnych

Przepelnienie przy

a

b

m

2

20

106

1283

6075

2

21

211

1663

7875

2

22

421

1663

7875

2

23

430

2531

11979

936

1399

6655

1366

1283

6075

2

24

171

11213

53125

859

2531

11979

419

6173

29282

967

3041

14406

2

25

141

28411

134456

625

6571

31104

1541

2957

14000

1741

2731

12960

1291

4621

21870

205

29573

139968

2

26

421

17117

81000

1255

6173

29282

281

28411

134456

2

27

1093

18257

86436

421

54773

259200

1021

24631

116640

1021

25673

121500

2

28

1277

24749

117128

741

66037

312500

2041

25673

121500

2

29

2311

25367

120050

1807

45289

214326

1597

51749

244944

1861

49297

233280

2661

36979

175000

4081

25673

121500

3661

30809

145800

2

30

3877

29573

139968

3613

45289

214326

1366

150889

714025

cd. tabeli 1

2

31

8121

28411

134456

4561

51349

243000

7141

54773

259200

2

32

9301

49297

233280

4096

150889

714025

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

14

2

33

2416

374441

177185

2

34

17221

107839

510300

36261

66037

312500

2

35

84589

45989

217728

Zaleta liniowych generatorów kongruencyjnych jest duza szybkosc ich realizacji, gdyz

wymagaja tylko kilku generacji na jeden bit wytwarzanego ciagu.
Niestety liniowe generatory kongruencyjne nie moga byc wykorzystywane w szyfrach
strumieniowych, poniewaz ciagi przez nie wytwarzane sa przewidywalne.

Po raz pierwszy liniowe generatory kongruencyjne zostaly zlamane przez Joan Boyar [6].

Zlamala ona równiez generatory kwadratowe i szescienne postaci

(

)

(

)

X

aX

bX

c

m

X aX

bX

cX

d

m

n

n

n

n

n

n

n

=

+

+

+

+

+

1

2

1

1

3

1

2

1

mod

mod

Dalsi badacze rozszerzyli te metode na dowolne wielomianowe generatory kongruencyjne.

Nastepnie badacze tacy, jak Wichmann, Hill, Pierre, L`Eayer badali kombinacje liniowych
generatorów kongrencyjnych
. Generatory bedace wynikiem ich pracy maja dluzsze okresy
i zachowuja sie lepiej w testach losowosci, lecz nie sa obecnie kryptograficznie bezpieczne.

1.5.2. Rejestry przesuwajace z liniowym sprzezeniem zwrotnym

Rejestry przesuwajace z liniowym sprzezeniem zwrotnym (ang. Linear Feedback Shift

Register, rys. 8) sa zbudowane z dwóch czesci: rejestru przesuwajacego i ciagu odczepów.
Rejestr przesuwajacy moze byc przedstawiony jako ciag bitów. Pojawienie sie bitów na
wyjsciu rejestru wyznaczone jest przez impulsy (zegarowe), które powoduja, ze wszystkie
bity w rejestrze sa przesuwane o jedna pozycje w prawo i na wyjsciu rejestru przesuwajacego
z liniowym sprzezeniem zwrotnym pojawia sie najmniej znaczacy bit. Nowy najbardziej
znaczacy bit jest obliczany przez sumowanie modulo 2 innych bitów w rejestrze zgodnie
z ciagiem odczepów.

b

n

b

n-1

.....................

b

4

b

3

b

2

b

1

bit
wyjsciowy

Rys. 8. Rejestr przesuwajacy z liniowym sprzezeniem zwrotnym

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

15

Teoretycznie n-bitowy rejestr przesuwajacy z liniowym sprzezeniem zwrotnym moze
wytworzyc pseudolosowy ciag bitów o okresie powtarzania równym 2

n

-1. Dowód tego faktu

mozna znalezc w pracy [7].

Przyklad:

4-bitowy Rejestr przesuwajacy z liniowym sprzezeniem zwrotnym (rys. 9) majacy odczepy

na pierwszej i czwartej pozycji i wartosc poczatkowa 1111 wytwarza nastepujacy ciag stanów:

1

0011

0

0110

1

1101

0

1010

1

0101

1

1011

1

0111

1

1111

1001

1

0100

0

0010

0

0001

1

1000

0

1100

0

1110

0





b

4

b

3

b

2

b

1

Λ

bit

wyjsciowy

Rys. 9. Rejestr przesuwajacy z liniowym

sprzezeniem zwrotnym

Twierdzenie 1.
Aby dany Rejestr przesuwajacy z liniowym sprzezeniem zwrotnym byl rejestrem

maksymalnego okresu, wielomian utworzony z elementów ciagu odczepów musi byc
wielomianem pierwotnym modulo 2.

Twierdzenie 2.
Wielomianem pierwotnym stopnia n jest wielomian nieredukowalny bedacy podzielnikiem

dwumianu x

n

2

1

1

+

, lecz nie bedacy podzielnikiem dwumianu

x

d

+

1

dla zadanej wartosci

d, która jest podzielnikiem liczby

2

1

n

.

Tabela 2 zawiera liste wielomianów pierwotnych modulo 2. Sa one napisane w formie np.

ciagu (32, 7,5, 3, 2, 1, 0), oznacza to w zapisie matematycznym wielomian postaci:

x

x

x

x

x

x

32

7

5

3

2

1

+

+

+

+

+ +

Tabela 2. Lista wielomianów pierwotnych modulo 2

1,0

32,7,6,2,0

58,6,5,1,0

85,8,2,1,0

2,1,0

33,13,0

59,7,4,2,0

86,6,5,2,0

3,1,0

33,16,4,1,0

59,6,5,4,3,1,0

87,13,0

4,1,0

34,8,4,3,0

60,1,0

87,7,5,1,0

5,2,0

34,7,6,5,2,1,0

61,5,2,1,0

88,11,9,8,0

6,1,0

35,2,0

62,6,5,3,0

88,8,5,4,3,1,0

7,1,0

36,11,0

63,1,0

89,38,0

7,3,0

36,6,5,4,2,1,0

64,4,3,1,0

89,51,0

8,4,3,2,0

37,6,4,1,0

65,18,0

89,6,5,3,0

9,4,0

37,5,4,3,2,1,0

65,4,3,1,0

90,5,3,2,0

10,3,0

38,6,5,1,0

66,9,8,6,0

91,8,5,1,0

11,2,0

39,4,0

66,8,6,5,3,2,0

91,7,6,5,3,2,0

12,6,4,1,0

40,5,4,3,0

67,5,2,1,0

92,6,5,2,0

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

16

13,4,3,1,0

41,3,0

68,9,0

93,2,0

14,5,3,1,0

42,7,4,3,0

68,7,5,1,0

94,21,0

15,1,0

42,5,4,3,2,1,0

69,6,5,2,0

94,6,5,1,0

16,5,3,2,0

43,6,4,3,0

70,5,3,1,0

95,11,0

17,3,0

44,6,5,2,0

71,6,0

95,6,5,4,2,1,0

17,5,0

45,4,3,1,0

71,5,3,1,0

96,10,9,6,0

17,6,0

46,8,7,6,0

72,10,9,3,0

96,7,6,4,3,2,0

18,7,0

46,8,5,3,2,1,0

72,6,4,3,2,1,0

97,6,0

18,5,2,1,0

47,5,0

73,25,0

98,11,0

19,5,2,1,0

48,9,7,4,0

73,4,3,2,0

98,7,4,3,1,0

20,3,0

48,7,5,4,2,1,0

74,7,4,3,0

99,7,5,4,0

21,2,0

49,9,0

75,6,3,1,0

100,37,0

22,1,0

49,6,5,4,0

76,5,4,2,0

100,8,7,2,0

23,5,0

50,4,3,2,0

77,6,5,2,0

101,7,6,1,0

24,4,3,1,0

51,6,3,1,0

78,7,2,1,0

102,6,5,3,0

25,3,0

52,3,0

79,9,0

103,9,0

26,2,1,0

53,6,2,1,0

79,4,3,2,0

104,11,10,1,0

27,5,2,1,0

54,8,6,3,0

80,9,4,2,0

105,16,0

28,3,0

54,6,5,4,3,2,0

80,7,5,3,2,1,0

106,15,0

29,2,0

55,24,0

81,4,0

107,9,7,4,0

30,6,4,1,0

55,6,2,1,0

82,9,6,4,0

108,31,0

31,3,0

56,7,4,2,0

82,8,7,6,1,0

109,5,4,2,0

31,6,0

57,7,0

83,7,4,2,0

110,6,4,1,0

31,7,0

57,5,3,2,0

84,13,0

111,10,0

31,13,0

58,19,0

84,8,7,5,3,1,0

111,49,0

112,11,6,4,0

142,21,0

164,12,6,5,0

236,5,0

113,9,0

143,5,3,2,0

165,9,8,3,0

250,103,0

113,15,0

144,7,4,2,0

166,10,3,2,0

255,52,0

113,30,0

145,52,0

167,6,0

255,56,0

114,11,2,1,0

145,69,0

170,23,0

255,82,0

115,8,7,5,0

146,5,3,2,0

172,2,0

258,83,0

116,6,5,2,0

147,11,4,2,0

174,13,0

266,47,0

117,5,2,1,0

148,27,0

175,6,0

270,133,0

cd. tabeli 2

118,33,0

149,10,9,7,0

175,16,0

282,35,0

119,45,0

150,53,0

175,18,0

282,43,0

119,8,0

151,3,0

175,57,0

286,69,0

120,9,6,2,0

151,9,0

177,8,0

286,73,0

121,18,0

151,15,0

177,22,0

294,61,0

122,6,2,1,0

151,31,0

177,88,0

322,67,0

123,2,0

151,39,0

178,87,0

333,2,0

124,37,0

151,43,0

183,56,0

350,53,0

125,7,6,5,0

151,46,0

194,87,0

366,29,0

126,7,4,2,0

151,51,0

198,65,0

378,43,0

127,1,0

151,63,0

201,14,0

378,107,0

127,7,0

151,66,0

201,17,0

390,89,0

127,15,0

151,67,0

201,59,0

462,73,0

127,30,0

151,70,0

201,79,0

521,32,0

127,63,0

152,6,3,2,0

202,55,0

521,48,0

128,7,2,1,0

153,1,0

207,43,0

521,158,0

129,5,0

153,8,0

212,105,0

521,168,0

130,3,0

154,9,5,1,0

218,11,0

607,105,0

131,8,3,2,0

155,7,5,4,0

218,15,0

607,147,0

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

17

132,29,0

156,9,5,3,0

218,71,0

607,273,0

133,9,8,2,0

157,6,5,2,0

218,71,0

1279,216,0

134,57,0

158,8,6,5,0

218,83,0

1279,418,0

135,11,0

159,31,0

225,32,0

2281,715,0

135,16,0

159,34,0

225,74,0

2281,915,0

135,22,0

159,40,0

225,88,0

2281,1029,0

136,8,3,2,0

160,5,3,2,0

225,97,0

3217,67,0

137,21,0

161,18,0

225,109,0

3217,576,0

138,8,7,1,0

161,39,0

231,26,0

4423,271,0

139,8,5,3,0

161,60,0

231,34,0

9689,84,0

140,29,0

162,8,7,4,0

234,31,0

141,13,6,1,0

163,7,6,3,0

234,103,0

Kontynuujac przyklad, ciag (32, 7,5, 3, 2, 1, 0) oznacza, ze wezmiemy 32-bitowy rejestr

przesuwajacy, i bedziemy wytwarzac bity wyjsciowe, sumujac modulo 2, bity: 32,7,5,3,2,1;
wówczas tak utworzony rejestr bedzie rejestrem maksymalnego okresu, który przebiega
wszystkie

2

1

32

stany rejestru przed ich powtórzeniem.

Rejestry przesuwajace z liniowym sprzezeniem zwrotnym sa czesto wykorzystywane
w szyfrach strumieniowych, a tak duzy zbiór wielomianów umozliwia wybranie róznych
wielomianów pierwotnych.

Twierdzenie 3.

Jezeli wielomian p(x) jest wielomianem pierwotnym, to wielomian

x p

x

n

1

χ

χ

ρ

jest takze

wielomianem pierwotnym.

Przyklad:
Niech ciag (a,b,0) okresla wielomian pierwotny, to na mocy twierdzenia 3 ciag (a,a-b,0)

okresla takze wielomian pierwotny.
W zapisie matematycznym:

x

x

x

x

a

b

a

a b

+

+

Τ

+

+

1

1

wielomian pierwotny

wielomian pierwotny

Odniesienie do szyfrów strumieniowych

Glówna zaleta generatorów ciagów pseudolosowych kryptograficznie bezpiecznych jest to,
ze sa one doskonale dla szyfrów strumieniowych.
Ciag wyjsciowy tych generatorów jest nieodróznialny od ciagów losowych wytwarzanych
przez generatory fizyczne.
Po prostu sumujac modulo 2, bity z wyjscia generatora z bitami tekstu jawnego, otrzymujemy
dobry szyfr strumieniowy.
Rainer Rueppel podal cztery praktyczne podejscia do konstrukcji generatorów ciagów
pseudolosowych kryptograficznie bezpiecznych:

-

na gruncie teorii informacji,

-

systemowo – teoretyczne,

-

bazujace na teorii zlozonosci,

-

randomizowalne.

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

18

Podejscie systemowo-teoretyczne

Przy podejsciu do szyfrów strumieniowych kryptograf projektuje generatory ciagu klucza

w taki sposób, aby mialy one testowalne wlasciwosci zapewniajace bezpieczenstwo: okres,
rozklad pewnych ukladów bitów, zlozonosc liniowa itd., zamiast wnikania w teorie
matematyczna.

W ciagu lat stosowania podejscie to zaowocowalo zbiorem kryteriów projektowych dla

generatorów ciagu klucza. Zostaly one naszkicowane przez Rueppela – wyjasnia on

szczególy teoretyczne uzasadniajace te kryteria:

dlugi okres, brak powtórzen,

kryteria zlozonosci liniowej: duza zlozonosc liniowa, profil zlozonosci liniowej, lokalna
zlozonosc liniowa itd. (Zlozonosc liniowa generatora jest zdefiniowana jako dlugosc
najkrótszego rejestru przesuwajacego ze sprzezeniem zwrotnym, który moze wytworzyc
taki sam ciag jak ten generator. Zlozonosc liniowa jest miara losowosci generatora),

kryteria statystyczne, takie jak idealny rozklad czestosci wystepowania wszystkich
mozliwych ciagów k bitów,

mieszanie: kazdy bit w ciagu klucza musi byc w zlozony sposob zalezny od wszystkich
lub od wiekszosci bitów klucza,

rozpraszanie: nadmiarowosc zawarta w podstrukturach musi byc rozproszona na statystyki
dlugozakresowe,

kryteria nieliniowe dla funkcji Boole`a, takie jak odpornosc na korelacje rzedu m,
odleglosc od funkcji liniowych, kryterium lawiny itd.

Glównym problemem zwiazanym z tego rodzaju systemami kryptograficznymi jest to, ze

nie mozna udowodnic ich bezpieczenstwa [8].

Podejscie bazujace na teorii zlozonosci

Przy tym podejsciu do szyfrów strumieniowych kryptograf próbuje wykorzystac teorie
zlozonosci do udowodnienia, ze jego generatory sa kryptograficznie bezpieczne.
Konsekwencja tego jest to, ze generatory staja sie coraz bardziej skomplikowane, a tym
samym wolniejsze i mniej poreczne [1].

Podejscie bazujace na teorii informacji

Przy tym podejsciu zaklada sie, ze kryptoanalityk dysponuje nieograniczonym czasem i moca
obliczeniowa. Jedynym praktycznym szyfrem strumieniowym, który jest zabezpieczony
przed takim przeciwnikiem, jest szyfr z kluczem jednorodnym. Niekiedy zamiast okreslenia
klucz jednorodny stosuje sie okreslenie tasma jednorodna. Dwie tasmy magnetyczne, jedna
dla strony szyfrujacej, a druga dla strony deszyfrujacej, maja zapisany ten sam losowy ciag
klucza. Przy szyfrowaniu dokonuje sie po prostu poelementowego sumowania modulo 2
bitow tekstu jawnego i bitow klucza na tasmie. Przy deszyfrowaniu dokonuje sie równiez
poelementowego sumowania modulo 2 bitow szyfrogramu z bitami klucza zapisanymi na
drugiej, identycznej tasmie. Poniewaz ciag klucza jest w pelni losowy, nie wolno nigdy uzyc
tego samego klucza dwukrotnie. Jezeli po wykorzystaniu tasmy zostana spalone, to
osiagniemy tajnosc doskonala [1].

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

19

1.6. Szyfry blokowe

Algorytmy blokowe dzialaja z reguly na blokach tekstu jawnego lub szyfrogramu dlugosci 64
bitów. Mozna w ich pracy wyróznic cztery podstawowe tryby:

Tryb elektronicznej ksiazki kodowej (ang. electronic codebook ECB) [1, 9, 2] – jest

najlatwiejszym i najszybszym trybem do zastosowania w szyfrach blokowych (rys. 10).
Jego zaleta jest mozliwosc niezaleznego szyfrowania kazdego bloku tekstu jawnego. Nie
musimy liniowo szyfrowac pliku. Ta cecha jest istotna dla plików, w których musi byc
zastosowana mozliwosc dostepu losowego, na przyklad w bazach danych.

Wada jest jednak to, ze jest on najslabszy (najlatwiejszy do zlamania). Nie powinno sie

wiec z tego trybu korzystac.

Tryb wiazania bloków zaszyfrowanych (ang. cipher block chaining CBC) [1, 9]

– tekst jawny jest przed szyfrowaniem sumowany modulo dwa z poprzednimi blokami
szyfrogramów. Dzialanie CBC przedstawia rys. 11.

W tym trybie nie mozna zaczac szyfrowania, zanim nie odbierze sie calego bloku danych.

Jest nieprzydatny, jezeli dane musza byc przetwarzane w porcjach wielkosci bajtu.

Szyfrator

Tekst jawny

Tekst zaszyfrowany

Rys. 10. Elektroniczna ksiazka kodowa

Szyfrator

Tekst jawny

Tekst zaszyfrowany

Rys.11. Wiazania bloków zaszyfrowanych

Tryb sprzezenia zwrotnego szyfrogramu (ang. cipher feedback CFB) [1, 9] – ten

tryb pozwala na szyfrowanie informacji w jednostkach mniejszych niz rozmiar bloku. Na

przyklad moze to byc jeden znak ASCII na raz, co przedstawia rysunek 12. Moze to byc

równiez blok jednobitowy, idea pozostaje ta sama. Na rys. 12 przedstawiony jest schemat

dzialania trybu 8-bitowego CFB. W pierwszym kroku rejestr jest wypelniany wartoscia

poczatkowa. Po zaszyfrowaniu zawartosci rejestru 8 bitów skrajnych z lewej strony dodaje

sie modulo dwa z pierwszym 8-bitowym znakiem tekstu jawnego w celu uzyskania

pierwszego znaku 8-bitowego szyfrogramu. Ten znak moze byc nastepnie przeslany. Tych

samych 8 bitów przesuwa sie na 8 bitów skrajnych z prawej strony kolejki, a wszystkie

pozostale bity sa przesuwane o 8 pozycji w lewo. Odrzuca sie najbardziej znaczacych 8

bitów. Nastepny bit szyfruje sie dokladnie w ten sam sposób. Ten tryb pracy jest

wolniejszy od swoich poprzedników.

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

20

Tryb sprzezenia zwrotnego wyjsciowego (ang. output feedback OFB) [1, 9] – jest

podobny do trybu CFB. Róznica polega na tym, ze czesc poprzedniego bloku wyjsciowego jest
kierowana na skrajne prawe pozycje rejestru. Schemat dzialania tego trybu przedstawia rys. 13.

Ostatnich 8 bajtów

Rejestr przesuwajacy

Szyfrator

KLUCZ K

C

i-1

P

i

C

i

Lewy skrajny bajt

(a) Zaszyfrowanie

Ostatnich 8 bajtów

Rejestr przesuwajacy

Szyfrator

KLUCZ K

C

i-1

C

i

P

i

Lewy skrajny bajt

(b) Odszyfrowanie

Rys. 12. Tryb sprzezenia zwrotnego szyfrogramu

Ostatnich 8 bajtów

Rejestr przesuwajacy

Szyfrator

KLUCZ K

C

i-1

P

i

C

i

Lewy skrajny bajt

(a) Zaszyfrowanie

Ostatnich 8 bajtów

Rejestr przesuwajacy

Szyfrator

KLUCZ K

C

i-1

C

i

P

i

Lewy skrajny bajt

(b) Odszyfrowanie

Rys. 13. Tryb sprzezenia zwrotnego wyjsciowego

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

21

1.7. Porównanie szyfrów strumieniowych z blokowymi

Róznica pomiedzy szyframi strumieniowymi i blokowymi ma charakter raczej

praktyczny anizeli teoretyczny.

Szyfry strumieniowe:

szyfruja i deszyfruja po jednym bicie danych na raz, co w praktyce oznacza, ze nie sa
odpowiednie do implementacji programowej (operacje na bitach sa czasochlonne),

algorytmy sa latwe do analizy matematycznej,

pojedyncze znieksztalcenie szyfrogramu powoduje znieksztalcenie tylko jednego bitu
tekstu jawnego,

nadaje sie do szyfrowania danych typu ASCII z terminalu komputerowego; blokowy
algorytm szyfrowania w tym wypadku nie spelni stawianych przed nim oczekiwan.
Szyfry blokowe:

w przeciwienstwie do szyfrów strumieniowych sa latwiejsze do implementacji,

ich algorytmy sa silniejsze w dzialaniu,

pojedyncze znieksztalcenie szyfrogramu powoduje znieksztalcenie danych co najmniej
wielkosci bloku,

doskonale w przypadku, gdy dane sa zapisywane i odczytywane w postaci bloków.

L

ITERATURA

1.

B. S

CHNEIER

, Kryptografia dla praktyków. Protokoly, algorytmy i programy zródlowe w jezyku C. Wydawnictwa

Naukowo-Techniczne, Warszawa 1995.

2.

C. M. C

AMPBELL

, Design and Specification of Cryptographic Capabilities. Computer Society Magazine, v. 16, n.

6, Nov 1978, str. 15-19.

3.

W. D

IFFIE AND

M. E. H

ELLMAN

, Privacy and Autentication: An Introduction to Cryptogaphy. Proceedings of

IEEE, v. 67, n. 3, Mar 1979, str. 387-427.

4.

M. E. H

ELLMAN

, On DES-Based Synchronous Enkryption. Departament of Electrical Engineering, Stanford

University, 1980.

5.

D

. K

NUTH

, The Art of Computer Programming. Volume Z, Seminomerical Algorithmw, 2nd edition Adelison –

Wesley, 1981.

6. B. P

LUMSTEAD

, Inferning a Sequence Generated by a Linear Congruence. Proceding of the 23rd IEE5

Symposium on the Foundation of Computer Sience, 1982, pp. 153 – 159.

7. W. G

OLOMB

, Shift Register Sequences, Sun Francisko: Holden-Day, 1967.

8. L. & S. T. K

ENT

, Security Mechanizms in High – Level Networks. ACM Computing Group v. IS, n.2 Jun.

1983, pp. 135 – 140

9.

D. E. R

OBLING

D

ENING

, Kryptografia i ochrona danych. Wydawnictwa Naukowo-Techniczne, Warszawa 1993.

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

2. ALGORYTMY KOMPUTEROWE

Wsród wielu algorytmów kryptograficznych najczesciej stosowane sa cztery:

DES (ang. Data Encryption Standard) – obecnie najpopularniejszy komputerowy

algorytm szyfrujacy. Jest to standardowy algorytm szyfrujacy rzadu USA, zostal przyjety

przez armie USA do szyfrowania informacji „nie utajnionej, ale waznej” (w oryginale

Unclassified but Sensitive). Jest to algorytm symetryczny, z tym samym kluczem

uzywanym do szyfrowania i deszyfrowania.

IDEA (ang. Improved Proposed Encryption Standard) – jest to, podobnie jak DES,

algorytm blokowy, symetryczny, przez wielu uwazany za najbezpieczniejszy sposród

dostepnych algorytmów.

RSA (nazwa jest zlozeniem pierwszych liter nazwisk autorów – Rivest, Shamir i

Adleman) – najpopularniejszy algorytm z kluczem jawnym (Algorytmy klucza jawnego

charakteryzuja sie tym, ze do szyfrowania i deszyfrowania wykorzystywane sa dwa rózne

klucze. Tekst jawny szyfrowany jest tzw. kluczem publicznym adresata, ogólnie

dostepnym. Natomiast zaszyfrowana informacja moze byc zdeszyfrowana tylko przy

wykorzystaniu klucza prywatnego adresata, który to klucz jest znany tylko jemu). Moze

byc zastosowany zarówno do szyfrowania, jak i do podpisów cyfrowych.

DSA (ang. Digital Signature Algorithm, zastosowany w DSS – ang. Digital Signature

Standard) inny niz RSA algorytm z kluczem jawnym, ale moze byc stosowany tylko do

podpisów cyfrowych.

W niniejszym rozdziale zostana omówione trzy sposród wczesniej wymienionych: DES,

IDEA i RSA.

2.1. Standard szyfrowania DES

Powstal w latach siedemdziesiatych i zostal przyjety jako standard szyfrowania przez
Amerykanski Narodowy Instytut Standaryzacji (ang. American National Standards Institute –
ANSI) 23 listopada 1976 roku [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

23

Permutacja poczatkowa

Permutacja

IP

-1

Szyfrogram

Tekst

jawny

IP

L

0

R

1

= L

0

Λ

f(R

0

,K

1

)

R

0

L

1

= R

0

L

2

= R

1

L

15

= R

14

R

2

= L

1

Λ

f(R

1

,K

2

)

R

15

= L

14

Λ

f(R

14

,K

15

)

R

16

= L

15

Λ

f(R

15

,K

16

)

L

16

= R

15

Λ

f

K

1

Λ

f

K

2

Λ

f

K

16

Rys.14. Schemat blokowy algorytmu DES

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

24

DES jest szyfrem blokowym, pracujacym na 64-bitowych pakietach danych. Zarówno do

szyfrowania, jak i deszyfrowania stosuje sie ten sam algorytm. Klucz jest 64-bitowy, przy

czym informacja uzyteczna zajmuje 56 bitów (co ósmy bit w ciagu klucza jest bitem

parzystosci). Cale bezpieczenstwo spoczywa wlasnie na nim.

Algorytm DES to kombinacja dwu podstawowych technik: mieszania i rozpraszania.

2.1.1. Opis algorytmu

Tekst jawny (64-bitowy blok) poddawany jest permutacji wstepnej (tabela 3, blok oznaczony
IP). Potem dzielony jest na dwa podciagi 32-bitowe (rys. 14). Nastepnie wykonywanych jest
16 cykli jednakowych operacji, nazywanych funkcjami f. Po szesnastym cyklu lewa i prawa
strona sa laczone i poddawane permutacji koncowej (tabela 4).

Tabela 3. Permutacja poczatkowa 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

5

37 29 21 13 5 63 55 47 39 31 23 15 7

Tabela 4. Permutacja koncowa 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

2.1.2. Jak powstaje klucz?

Poniewaz klucz jest 64-bitowy, redukowany jest do klucza 56 bitów przez pominiecie co

ósmego bitu parzystosci. Tak przygotowany ciag bitów poddawany jest permutacji
wejsciowej (tabela 5), po czym dzielony jest na dwa podciagi 28-bitowe. Nastepnie polowy
te przesuwane sa w lewo o jeden lub dwa bity, zaleznie od numeru cyklu (tabela 6).

Po polaczeniu nowo powstalych ciagów wybiera sie 48 z 56 bitów (tabela 7, permutacja

z kompresja). Tak otrzymujemy klucz dla i-cyklu (gdzie i jest numerem cyklu), i = 1, ...,16.

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

25

Tabela 5. Permutacja klucza

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

Tabela 6. Tablica przesuniec polówek klucza

NR ITERACJI I 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Liczb. Przes.

1 1 2 2 2 2 2 2 1 2

2

2

2

2

2

1

Tabela 7. Tablica permutacji kompresji

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

2.1.3. Realizacja funkcji f

W funkcji f (rys. 15) prawa polowa bloku danych jest poddawana permutacji z

rozszerzeniem (tabela 8, E), czyli z 32 do 48 bitów. Nastepnie, nowo powstaly podciag
bitów, laczony jest za pomoca poelementowej sumy modulo 2 z 48 bitami przesunietego i
spermutowanego klucza. Po tej operacji otrzymany ciag dzielony jest na 8 czesci i
wprowadzany do skrzynek S-bloków (tabela 10), gdzie z 6-bitowych podciagów na wyjsciu
otrzymujemy 4-bitowe podciagi, które laczymy ze soba. Nowo powstaly ciag jest na wyjsciu
poddany permutacji (tabela 9, P) i otrzymujemy zaszyfrowany ciag 32-bitowy.

Tabela 8. Tabela permutacji rozszerzenia

32 1

2

3

4

5

4

5

6

7

8

9

8

9

10 11 12 12 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

Tabela 9. Tabela permutacji P-bloku

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

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

26

Klucz

28 bitów

56 bitów

Wybranie do permutacji

48 bitów

28 bitów

28 bitów

Przesuniêcie

28 bitów

Przesuniêcie

Rj-1
32 bity

Permutacja

z rozszerzeniem

48 bitów

Podstawienie

w S- bloku

32 bity

Permutacja
w P-bloku

Rj

L j

Lj-1

32 bity

Rys. 15. Metoda wyznaczania wartosci funkcji f dla DES

Przeksztalcenie 6-bitowego bloku na 4-bitowy w skrzynce odbywa sie w ten sposób, ze

liczba b1b6 okresla wiersz tablicy, a bity b2b3b4b5 okreslaja kolumne.

2.1.4. Tryby pracy DES

DES pracuje w czterech trybach pracy:

1. tryb elektronicznej ksiazki kodowej (Electronic Codebook – ECB),

2. tryb wiazania bloków zaszyfrowanych (Cipher Block Chaining – CBC),

3. tryb sprzezenie zwrotne wyjscia (Output Feedback – OFB),

4. tryb sprzezenie zwrotne szyfrogramu (Cipher Feedback – CFB).

Bankowe standardy ANSI specyfikuja [6, 7, 8, 9, 10]:

ECB i CBC do szyfrowania,

CBC i CFB do uwierzytelniania.

Najczesciej oferowanym, gotowym komercyjnym oprogramowaniem jest elektroniczna

ksiazka kodowa, mimo ze jest najbardziej podatna na ataki.

Tabela 10. Tablica S-bloków

0

1

2

3

4

5

6

7

8

9

10 11 12 13 14 15

Permutacja kompresji

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

27

0 14 4

13 1

2

15 11 8

3

10 6

12 5

9

0

7

S1

1 0

15 7

4

14 2

13 1

10 6

12 11 9

5

3

8

2 4

1

14 8

13 6

2

11 15 12 9

7

3

10 5

0

3 15 12 8

2

4

9

1

7

5

11 3

14 10 0

6

13

0 15 1

8

14 6

11 3

4

9

7

2

13 12 0

5

10 S2

1 3

13 4

7

15 2

8

14 12 0

1

10 6

9

11 5

2 0

14 7

11 10 4

13 1

5

8

12 6

9

3

2

15

3 13 8

10 1

3

15 4

2

11 6

7

12 0

5

14 9

0 10 0

9

14 6

3

15 5

1

13 12 7

11 4

2

8

S3

1 13 7

0

9

3

4

6

10 2

8

5

14 12 11 15 1

2 13 6

4

9

8

15 3

0

11 1

2

12 5

10 14 7

3 1

10 13 0

6

9

8

7

4

15 14 3

11 5

2

12

0 7

13 14 3

0

6

9

10 1

2

8

5

11 12 4

15 S4

1 13 8

11 5

6

15 0

3

4

7

2

12 1

10 14 9

2 10 6

9

0

12 11 7

13 15 1

3

14 5

2

8

4

3 3

15 0

6

10 1

13 8

9

4

5

11 12 7

2

14

0 2

12 4

1

7

10 11 6

8

5

3

15 13 0

14 9

S5

1 14 11 2

12 4

7

13 1

5

0

15 10 3

9

8

6

2 4

2

1

11 10 13 7

8

15 9

12 5

6

3

0

14

3 11 8

12 7

1

14 2

13 6

15 0

9

10 4

5

3

0 12 1

10 15 9

2

6

8

0

13 3

4

14 7

5

11 S6

1 10 15 4

2

7

12 9

5

6

1

13 14 0

11 3

8

2 9

14 15 5

2

8

12 3

7

0

4

10 1

13 11 6

3 4

3

2

12 9

5

15 10 11 14 1

7

6

0

8

13

0 4

11 2

14 15 0

8

13 3

12 9

7

5

10 6

1

S7

1 13 0

11 7

4

9

1

10 14 3

5

12 2

15 8

6

2 1

4

11 13 12 3

7

14 10 15 6

8

0

5

9

2

3 6

11 13 8

1

4

10 7

9

5

0

15 14 2

3

12

0 13 2

8

4

6

15 11 1

10 9

3

14 5

0

12 7

S8

1 1

15 13 8

10 3

7

4

12 5

6

11 0

14 9

2

2 7

11 4

1

9

12 14 2

0

6

10 13 15 3

5

8

3 2

1

14 7

4

10 8

13 15 12 9

0

3

5

6

11

2.1.5. Sprzetowe i programowe implementacje DES

DES jest algorytmem, który powstal z mysla o implementacjach sprzetowych. Uklad

skonstruowany przez Digital Equipment Corporation, zbudowany z 50 tysiecy tranzystorów

na podlozu z GaAs, zawiera zespól bramek realizujacych tryby ECB i CBC. Dane moga byc

szyfrowane i deszyfrowane z szybkoscia 1 Gbit/s, co jest równowazne 15,6 milionom bloków

na sekunde. Jest to imponujaca liczba [1, 2, 3, 11, 12, 13, 14, 15].

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

28

Implementacje programowe sa znacznie wolniejsze i przegrywaja w konkurencji z

rozwiazaniami sprzetowymi. Tabela 11 przedstawia szybkosci realizacji algorytmu DES
przez rózne mikroprocesory.

Tabela 11. Szybkosc realizacji algorytmu DES przez rózne mikroprocesory

Procesor

Czestotliwosc zegara

procesora (w Mhz)

Szerokosc szyny

(w bitach)

Szybkosc szyfrowania

(bloki DES na sekunde)

8088

4,7

8

370

68000

7,6

16

900

80286

6,0

16

1100

68020

16,0

32

3500

68030

16,0

32

3900

80386

25,0

16

5000

68030

50,0

32

9600

68040

25,0

32

23200

80486

33,0

32

40600

2.1.6. Bezpieczenstwo algorytmu DES

Okazuje sie, ze z powodu sposobu, w jaki jest modyfikowany klucz dla kolejnych cykli

algorytmu, niektóre z nich sa kluczami slabymi (tabela 12), tzn.ze klucz uzyty w jednym cyklu

algorytmu bedzie taki sam we wszystkich pozostalych, a co za tym idzie tekst jawny nie zostanie

zaszyfrowany.

Istnieja równiez pary kluczy, które szyfruja tekst jawny do jednakowych szyfrogramów.

Innymi slowy, jeden klucz z pary moze sluzyc do deszyfrowania wiadomosci zaszyfrowanej

drugim kluczem z tej pary. Zamiast generowac 16 róznych podkluczy, generowane sa dwa. Kazdy

z nich jest wykorzystywany 8 razy w algorytmie. Klucze takie nazywamy kluczami pólslabymi

(tabela 13) [1, 2, 3, 16].

Tabela12. Klucze slabe algorytmu DES (zapis szesnastkowy)

Pierwotny ciag slabego klucza Faktyczny ciag klucza

0101 0101 0101 0101

0000000 0000000

FEFE FEFE FEFE FEFE

FFFFFFF FFFFFFF

1F1F 1F1F 1F1F 1F1F

0000000 FFFFFFF

E0E0 E0E0 F1F1 F1F1

FFFFFFF 0000000

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

29

Tabela 13. Klucze pólslabe algorytmu DES

01FE 01FE 01FE

01FE

1FE0 1FE0 0EF1

0EF1

01E0

01E0

01F1

01F1

1FFE 1FFE 0EFE 0EFE
011F

011F

010E

010E

E0FE E0FE F1FE F1FE

FE01 FE01 FE01

FE01

E01F E01F F10E

F10E

E001

E001

F101

F101

FE1F FE1F FE0E FE0E
1F01

1F01

0E01

0E01

FEE0 FEE0 FEF1 FEF1

W 1990 roku Eli Biham i Adi Shamir opublikowali metode kryptoanalizy róznicowej [17].

Atak przy wykorzystaniu tej metody okazal sie bardzie skuteczny od dotad stosowanego ataku

brutalnego. Metoda ta przy znanym tekscie jawnym dziala przeciw DES w dowolnym trybie pracy

– ECB, CBC, CFB oraz OFB. DES moze byc ulepszony przez zwiekszenie liczby cykli. Okazuje

sie, ze juz przy 19 cyklach metoda wyczerpujacego przeszukiwania jest efektywniejsza niz analizy

róznicowej (tabela 14).

Tabela 14. Zlozonosc ataku na DES metoda kryptoanalizy róznicowej

Liczba cykli

Wybrane teksty

jawne

Znane teksty

jawne

Analizowane

teksty jawne

Zlozonosc analizy

8

2

14

2

38

4

2

9

9

2

24

2

44

2

2

32

10

2

24

2

43

2

14

2

15

11

2

31

2

47

2

2

32

12

2

31

2

47

2

21

2

21

13

2

39

2

52

2

2

32

14

2

39

2

51

2

29

2

29

15

2

47

2

56

2

7

2

37

16

2

47

2

55

2

36

2

37

2.1.7. Modyfikacje algorytmu DES

Poniewaz za sprawa Eli Biham i Adi Shamir znaleziono dosc skuteczna metode lamania szyfru

DES, a postep techniki zrzadzil, ze nawet w przypadku lamania brutalnego, czas potrzebny na

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

30

sprawdzenie wszystkich kombinacji klucza nie rozciaga sie w nieskonczonosc, postanowiono

zmodyfikowac algorytm DES.

Wielokrotny DES

Poniewaz DES nie tworzy grup, mozna go wykorzystac wielokrotnie. W komercyjnych

rozwiazaniach wykorzystuje sie trzykrotny DES (rys. 16). Uzyskany szyfrogram jest duzo

trudniejszy do zlamania metoda wyczerpujacego przeszukiwania: 2

112

prób zamiast 2

56

. Co wazne

potrójne DES opiera sie kryptografii róznicowej [1, 2, 3].

Tekst jawny

Szyfrogram

DES

DES

DES

DES-1

DES-1

DES-1

K1

K2

K1

Szyfrowanie

Deszyfrowanie

Rys. 16. Trzykrotny DES

Uogólniony DES

Uogólniony DES (Generalized DES – GDES), charakteryzuje sie wzrostem dlugosci bloku

i niezmieniona funkcja f (rys. 17).

Szyfrowane bloki sa dzielone na q 32-bitowych podbloków. Zazwyczaj liczba q jest równa

dlugosci bloku podzielonego przez 32. Jak widac ze schematu, funkcja f liczona jest tylko raz na

cykl, dla podbloku lezacego najbardziej na prawo[1, 2].

2.1.8. NewDES

NewDES (rys. 18) zostal zaprojektowany przez Roberta Scotta, w roku 1985, jako nastepca

DES. Blok tekstu jawnego nadal ma 64 bity, zmienila sie natomiast dlugosc klucza, 120 bitów.

Scott zrezygnowal w swojej wersji algorytmu z permutacji poczatkowej i koncowej, co

w znacznym stopniu uproscilo sam algorytm. Wszystkie operacje sa wykonywane na calych

bajtach, a sam algorytm nigdy nie czyta, nie zapisuje, nie permutuje zadnych pojedynczych bitów.

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

31

Funkcja f zostala zaprojektowana na podstawie tekstu Deklaracji Niepodleglosci. Szczególy

mozna znalezc w [18].

Tekst jawny

B

0

(1)

B

0

(2)

B

0

(3)

B

0

(4-1)

B

0

(4)

B

1

(1)

B

1

(2)

B

1

(3)

B

1

(4-1)

B

1

(4)

B

2

(1)

B

2

(2)

B

2

(3)

B

2

(4-1)

B

2

(4)

B

n-1

(1)

B

n-1

(2)

B

n-1

(3)

B

n-1

(4-1)

B

n-1

(4)

B

n

(1)

B

n

(2)

B

n

(3)

B

n

(4-1)

B

n

(4)

Λ

Λ

Λ

Λ

f

Λ

Λ

Λ

Λ

f

Λ

Λ

Λ

Λ

f

Λ

Λ

Λ

Λ

f

K

1

K

2

K

i

K

n

Szyfrogram

Rys. 17. Schemat blokowy algorytmu GDES

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

32

f

f

f

f

f

f

f

f

Λ

Λ

Λ

Λ

Λ

Λ

Λ

Λ

Λ

Λ

Λ

Λ

Λ

Λ

Λ

Λ

B0

B1

B2

B3

B4

B5

B6

B7

K0

K1

K2

K3

K4

K5

K6

Cykl 1

Cykl 2

Cykl 3-15

f

f

f

Λ

Λ

Λ

Λ

Λ

Λ

K9

K10

Cykl 16

Λ

f

Λ

K8

Cykl 17

Λ

f

Λ

Λ

f

Λ

Λ

f

Λ

Λ

f

Λ

K11

K12

K13

K14

B7

B0

B1

B2

B3

B6

B5

B4

Rys. 18. Schemat algorytmu NewDES






background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

33

Z

p

Yi

X

4

X

3

X

1

X

2

Z

4(1)

Z

3(1)

Z

2(1)

Z

1(1)

Z

5(1)

Z

6(1)

1(9)

Z

2(9)

Z

3(9)

Z

4(9)

Y

2

Y

3

Y

4

siedem
ozostal ych

cykl i

pierwszy

cykl

Y

1

X i

Zi (r)

- 16 bitów podbl oku tekstu jaw nego

- 16 bitów podbloku te kstu szyfrogramu

- 16 bitów podbloku klucza

- poele ment ow a suma modul o 2 pojedync zych bitów

lub ciagów 16-bitowych

- suma modulo 2

16

li czb 16-bitowych

- il ocz yn modulo 2

16

+ 1 li czb 16-bitowych

ciag wyjsciowy

Rys. 19. Schemat blokowy algorytmu IDEA

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

34

Algorytm IDEA

Algorytm IDEA (ang. Improved Proposed Encryption Standard), podobnie jak DES, byl
tworzony z mysla o implementacjach sprzetowych. Przez wielu uwazany jest za
najbezpieczniejszy z algorytmów blokowych dostepnych na rynku [19, 20, 21].
Pracuje na bloku dlugosci 64 bitów i operuje kluczem 128-bitowym. Stosowany jest zarówno
do szyfrowania, jak i deszyfrowania.

2.1.9. Opis algorytmu

Rysunek 19 przedstawia ogólny schemat blokowy algorytmu. Jak widac, blok danych

dzielony jest na cztery podbloki (16-bitowe), które stanowia wejscie do pierwszego cyklu

algorytmu. Wykonywanych jest osiem cykli. Jak nietrudno zauwazyc, algorytm wykorzystuje

az 52 podklucze o dlugosci 16 bitów kazdy. Uzyskujemy je dzielac nasz klucz wejsciowy na

osiem podciagów. W rezultacie tego dzialania otrzymamy osiem pierwszych podkluczy. By

uzyskac kolejne, przesuwamy cyklicznie klucz wejsciowy o 25 bitów w lewo i ponownie

wykonujemy dzielenie. Operacje te powtarzamy tak dlugo, az bedziemy mieli wszystkie

potrzebne nam podklucze.

2.1.10.Tryby pracy IDEA

IDEA pracuje w czterech trybach pracy:

1. tryb elektronicznej ksiazki kodowej (Electronic Codebook – ECB),

2. tryb wiazania bloków zaszyfrowanych (Cipher Block Chaining – CBC),

3. tryb sprzezenie zwrotne wyjscia (Output Feedback – OFB),

4. tryb sprzezenie zwrotne szyfrogramu (Cipher Feedback – CFB).

2.1.11.Implementacje sprzetowe

Przeprowadzone testy dla realizacji programowych algorytmu IDEA wykazuja, ze sa one

prawie tak szybkie jak implementacje standardu DES. Na komputerze z mikroprocesorem
386 i zegarem 33 MHz dane sa szyfrowane z szybkoscia 880 Kbit/s. W przypadku VAX
9000 szybkosc ta jest prawie cztery razy wieksza.

Implementacja sprzetowa algorytmu IDEA zrealizowana jako uklad VLSI, opracowany

w ETH Zurich, szyfruje z szybkoscia 177 Mbit/s, przy czestotliwosci taktowania 25 MHz [22].

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

35

2.1.12.Bezpieczenstwo IDEA

Jak dotad nie znaleziono skuteczniejszej metody ataku na algorytm IDEA jak atak brutalny.

Uzyskanie klucza wymagaloby przeprowadzenia 2

128

(10

38

) szyfrowan. Jak dotad nie stworzono

takiej maszyny, która moglaby wykonac tyle prób w rozsadnym czasie. Przy zalozeniu ze mamy

uklad scalony, który testowalby miliard kluczy w ciagu sekundy i gdybysmy uzyli do rozwiazania

naszego problemu miliard takich ukladów, to zajeloby to 10

13

lat, czyli czas dluzszy od trwania

wszechswiata.

Istnieje kilka grup akademickich i wojskowych aktualnie pracujacych nad kryptoanaliza IDEA.

Dotychczas zadna z nich nie odniosla sukcesu (i nie oglosila takiego faktu publicznie). Szyfr

blokowy IDEA jest opatentowany w Europie [23] i oczekuje na patent w Stanach Zjednoczonych.

Algorytm RSA

Osoby prowadzace korespondencje stosuja ten sam algorytm szyfrowania i ten sam klucz.
Ale jak rozwiazac problem przekazania klucza w sposób pewny i tajny, zwlaszcza gdy
abonentów dziela tysiace kilometrów. Powstal wiec pomysl zastosowania asymetrycznych
algorytmów kryptograficznych. W algorytmach tych istnieja dwa klucze: szyfrujacy
i deszyfrujacy. Co wiecej, pelnia one te funkcje zamiennie: jesli zaszyfrujemy wiadomosc
przy uzyciu klucza A, to bedzie ja mozna odczytac tylko i wylacznie przy uzyciu klucza
B i na odwrót. Jednym z takich algorytmów jest powstaly w 1977 roku RSA (nazwa jest
zlozeniem pierwszych liter nazwisk autorów – Rivest, Shamir i Adleman). Jest on chroniony
patentem tylko w USA, objety miedzynarodowa norma ISO/IEC9796.

2.1.13.Historia

Autorami algorytmu sa: Ron Rivest, Adi Shamir i Leonard Adelman. W dniu opublikowania
algorytmu przedstawili oni postulat, ze mimo znajomosci 110-cyfrowej liczby n i klucza
jawnego adresata, przykladowa wiadomosc nie zostanie nigdy rozszyfrowana. Nie
przewidzieli oni jednak tak szybkiego postepu w technice cyfrowej. Obecne komputery sa
wielokrotnie szybsze niz te stosowane w latach 70. Z ich pomoca, a takze przy wspólpracy
kilkuset ochotników-uzytkowników sieci Internet, zespól naukowców amerykanskich w 1995
roku oglosil odczytanie wiadomosci. Czas potrzebny na zlamanie szyfru napawa jednak
optymizmem: po takim okresie przestaje byc celowa ochrona duzej czesci danych, nawet
o znaczeniu strategicznym. Oczywiscie klucze 100-cyfrowe przestaja byc bezpieczne.
Specjalisci szacuja, ze zastosowanie kluczy ponad 300-cyfrowych (sa uzywane juz dzisiaj)
pozwoli na utrzymywanie poufnosci danych jeszcze przez okolo 10 lat. Koszt zlamania
szyfru z takim kluczem oceniany jest, w chwili obecnej, na astronomiczna kwote rzedu 10

20

$

USA. Szacuje sie, ze zlozonosc problemu odczytania zaszyfrowanej wiadomosci jest tak
duza jak zlozonosci problemu faktoryzacji duzych liczb. Do tej chwili algorytm RSA

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

36

skutecznie opieral sie wszelkim metodom kryptoanalizy i jest prawdopodobne, ze bedzie tak
jeszcze przez wiele lat [1, 2, 3].

2.1.14.Generacja kluczy

Algorytm generacji pary kluczy (publiczny-prywatny) mozemy podzielic na nastepujace fazy:

Szukamy 2 liczb pierwszych p i q, a nastepnie wyliczamy ich iloczyn:

n = pq

Wszystkie dzialania na wiadomosciach odbywac sie beda „modulo n”.

Wybieramy klucz szyfrujacy (publiczny) e taki, ze e oraz (p-1)(q-1) sa liczbami
wzglednie pierwszymi (tzn. nie maja wspólnego dzielnika róznego od 1).

Szukamy liczby d takiej, ze jest ona odwrotnoscia liczby emodulo n”, tzn.:

d = e

-1

mod (p-1)(q-1),

czyli

xe + yd = 1

Mozemy do tego celu wykorzystac rozszerzony algorytm Euklidesa (rozszerzenie algorytmu
znajdowania najwiekszego wspólnego dzielnika [1]). Liczba d bedzie kluczem deszyfrujacym.

Publikujemy liczby e i n, które pelnia funkcje klucza jawnego (klucz publiczny).

Utajniamy liczbe d, to jest naszym kluczem tajnym (klucz prywatny).

Liczby p i q nalezy wymazac i nigdy nie ujawniac zadnej z nich.

2.1.15.Szyfrowanie i deszyfrowanie

Sam algorytm szyfrowania i deszyfrowania opiera sie jedynie na 2 operacjach: potegowaniu
(mnozeniu) i dzieleniu „modulo n”. W celu szyfrowania dzielimy wiadomosc na jak
najwieksze bloki m

i

, takie ze posiadaja jednoznaczna interpretacje „modulo n” (np. jesli

wiadomoscia bedzie 200-elementowy ciag cyfr, a liczba n jest 50-cyfrowa, to powstana co
najmniej 4 bloki po co najwyzej 50 cyfr) i wyliczamy wartosc wyrazenia:

c

i

= m

i

e

mod n

Cala zaszyfrowana wiadomosc bedzie sie wiec skladac z bloków c

i

:

c= c

1

c

2

... c

k

Deszyfrowanie odbywa sie w sposób analogiczny – tym razem bloki c

i

poddajemy

potegowaniu i dzieleniu „modulo n” i skladamy zdeszyfrowany tekst:

m

i

= c

i

d

mod n

m = m

1

m

2

...m

k

Zauwazmy, ze mimo prostoty matematycznego zapisu algorytmu szyfrowania
i deszyfrowania, jego rzeczywiste implementacje wymagaja dzialan na liczbach

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

37

ponadstucyfrowych i wymagaja specjalnych reprezentacji liczb i algorytmów operowania na
nich.

2.1.16.Rozwiazania sprzetowe

Wkrótce po opublikowaniu algorytmu RSA pojawily sie scalone uklady szyfrujace
przyspieszajace i ulatwiajace szyfrowanie [24]. Jak pokazuje praktyka, uzyskane rezultaty sa,
jak dotychczas, znacznie gorsze niz w przypadku ukladów do szyfrowania symetrycznego
(uklady te sa ok. 100 razy wolniejsze od ukladów szyfrujacych z uzyciem algorytmu DES.
Przy zastosowaniu programowej implementacji, algorytm RSA jest ok. 1000 razy
wolniejszy). Prawdopodobnie znaczacy wplyw na rozwój ukladów szyfrujacych mialo prawo
amerykanskie zabraniajace wywozenia poza granice kraju pewnych algorytmów i rozwiazan
technicznych (np. dla algorytmu RSA uklady z kluczem powyzej 512 bitów, a dla DES
powyzej 46 bitów). Obecnie w Japonii rozpoczeto produkcje ukladów clipper posiadajacych
mozliwosc szyfrowania z kluczem 102-bitowym (uklady pochodzace z USA – 512-bitowy).
Byc moze stanie sie to bodzcem do dalszego rozwoju ukladów szyfrujacych (Japonia jest
jednym z najwiekszych ich odbiorców, a jednoczesnie jest krajem posiadajacym bardzo
zaawansowane technologie – moze wiec podjac sie produkcji i badan nad nowymi ukladami).

2.1.17.Atak na algorytm RSA

Rozwazajac bezpieczenstwo danych przesylanych w sieci i chronionych algorytmem RSA,

nalezy rozwazyc kilka mozliwych scenariuszy przechwycenia i zdekodowania wiadomosci:

Napastnik N podszywa sie pod bank kluczy publicznych. Nadawca A chce przeslac do odbiorcy
B poufna wiadomosc. Zwraca sie wiec do banku kluczy z prosba o podanie publicznego klucza
B. Poniewaz transmisje kontroluje N, przesyla do A swój klucz publiczny. A ufa bankowi, w
zwiazku z czym bez watpliwosci szyfruje informacje za pomoca klucza publicznego N i przesyla
wiadomosc do B. N przechwytuje wiadomosc i dekoduje ja za pomoca swojego klucza
prywatnego. Nastepnie pobiera z banku klucz publiczny B, koduje wiadomosc za jego pomoca i
przesyla do rzeczywistego adresata. Jest jednak w posiadaniu tekstu wiadomosci.

Napastnik N przechwycil zaszyfrowana wiadomosc c od A (zna wiec c, n i e). Wybiera
wiec r<n i oblicza:

x=r

e

mod n -> r=x

d

mod n -> t=x

-d

mod n

y = x*c mod n

t=r

-1

mod n

Teraz N przesyla do A wiadomosc y z prosba o jej podpisanie – A musi podpisac cala
wiadomosc, a nie jej skrót. W zwiazku z tym N otrzymuje u=y

d

mod n. Teraz wystarcza

juz tylko proste obliczenia, aby zlamac szyfr A:

t*u mod n = x

-d

*y

d

mod n = x

-d

*x

d

*c

d

mod n = c

d

mod n = p.

Grupa pracowników jakiegos przedsiebiorstwa posluguje sie tym samym modulem n, ale
kazdy z nich ma wlasne klucze e i d. Napastnik N przechwytuje dwie wiadomosci c

1

i c

2

.

Nastepnie pobiera e

1

, e

2

– klucze jawne obydwu pracowników oraz modul n, którym sie

oni posluguja. Poniewaz e

1

i e

2

sa (a raczej powinny byc) wzglednie pierwsze, to szukamy

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

38

liczb r i s spelniajacych zaleznosc r*e

1

+s*e

2

=1. Jesli zalozymy, ze r jest ujemne, to

otrzymujemy [1]:

(c

1

-1

)

-r

*c

2

s

=p mod n.

2.1.18.Ostrzezenia i zalecenia

W tym miejscu zebrano kilka rad i ostrzezen dotyczacych korzystania z algorytmu RSA,
istotnych ze wzgledu na bezpieczenstwo naszych danych przesylanych w sieci publicznej:

Nie nalezy nigdy podpisywac wiadomosci z niesprawdzonego zródla – jesli juz wystapi
taka koniecznosc, nalezy zastosowac jednokierunkowa funkcje skrótu lub inny algorytm
podpisu cyfrowego.

Nie nalezy uzywac identycznego modulu w grupie uzytkowników korzystajacych z sieci
innej niz wewnetrzna w przedsiebiorstwie.

Nalezy uzywac jak najwiekszych wartosci kluczy e i d – im wieksze one beda, tym

trudniej bedzie odczytac wiadomosc przez osoby do tego niepowolane.

Znajomosc jednej pary wykladników szyfrowania/deszyfrowania dla danego modulu

umozliwia atakujacemu faktoryzacje modulu.

Znajomosc jednej pary wykladników szyfrowania/deszyfrowania dla danego modulu

umozliwia atakujacemu obliczenie innych par wykladników szyfrowania/deszyfrowania

bez koniecznosci faktoryzacji n.

Jesli istnieje potrzeba szczególnej ochrony informacji przesylanej w sieci publicznej,

nalezy zmieniac co pewien czas modul i klucze. Eliminuje to zwiekszanie

prawdopodobienstwa odczytania wiadomosci (pozbawiamy napastnika próbek tekstu

zaszyfrowanego za pomoca tego samego klucza).

2.1.19.Praktyka szyfrowania z uzyciem algorytmu RSA

W praktyce zawsze poszukuje sie rozwiazania optymalnego: bezpiecznego i szybkiego.

Algorytm RSA zapewnia tylko pierwsza z tych cech, DES obie, ale pod warunkiem

bezpiecznego przekazania klucza. Aby wiec zapewnic idealne warunki przesylania danych

poufnych miedzy koncówkami sieci, stosuje sie kombinacje algorytmów DES-RSA. Polega

ona na tym, ze klucz do szyfrowania-deszyfrowania dla DES przesyla sie szyfrujac go za

pomoca algorytmu RSA. Dane szyfrowane sa juz przy uzyciu algorytmu DES, który jako

algorytm synchroniczny z kluczem dlugosci 64 bitów jest znacznie szybszy od RSA.

Poniewaz obecny stan techniki obliczeniowej pozwala na biezaca faktoryzacje liczb

110-cyfrowych (512-bitowe), do przesylu poufnych informacji stosuje sie klucze ponad

200-cyfrowe (w niektórych zastosowaniach nawet 308 cyfr – liczby 1024-bitowe).

Specjalisci oceniaja, ze zastosowanie kluczy 1024-bitowych pozwoli na spelnienie wszelkich

warunków bezpieczenstwa jeszcze przez okolo 10 lat [25].

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

39

Glosariusz

FAKTORYZACJA

– rozklad liczby na czynniki pierwsze (np. poddanie faktoryzacji liczby

1001 daje w rezultacie 3 liczby: 7, 11 i 13).

JEDNOKIERUNKOWA FUNKCJA SKRÓTU – argumentem funkcji H(M) jest M(wia-

domosc) dowolnej dlugosci, wynikiem jest h ustalonej dlugosci (skrót). Wlasciwosci funkcji H(M):

majac dane M, latwo jest obliczyc h,

majac dane h, trudno jest obliczyc M,

majac dane M, trudno jest obliczyc M’, takie ze H(M)=H(M’),

„trudno” oznacza koniecznosc wykonania co najmniej 2

64

operacji.

ROZSZERZONY ALGORYTM EUKLIDESA OBLICZANIA NWD x i n:

u*u

1

+v*u

2

=1

static void Update (int *un, int *vn, int q)
{

int tn;

tn = *un – *vn * q;

*un = *vn;

*vn = tn;

}

int rozsz_Euklides (int u, int v, int *u1wy, int u2wy)

{

int u1=1;

int u3=u;

int v1=0;

int v3=v

int q;

while (v3 > 0)

{

q=u3/v3;

Update(&u1, &v1, q);

Update(&u3, &v3, q);

}

*u1wy=u1

*u2wy=(u3-u1*u)/v;

return u3;

}

ZARZADZANIE KLUCZAMI – klucz jawny moze byc pobierany bezposrednio od
wlasciciela lub z centralnej bazy danych. W przypadku centralnej bazy danych stosuje sie
dodatkowo certyfikaty – informacja zaszyfrowana za pomoca klucza prywatnego urzedu
poswiadczajacego, ze pobrany klucz nalezy dokladnie do tej osoby, z która chcemy sie
skontaktowac (jest to osobny problem zwiazany z uwierzytelnianiem i certyfikatami
omawiany w dalszej czesci tego skryptu).

L

ITERATURA

1.

B. S

CHNEIER

, Kryptografia dla praktyków. Protokoly, algorytmy i programy zródlowe w jezyku C. Wydawnictwa

Naukowo-Techniczne, Warszawa 1995.

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

40

2.

D. E. R

OBLING

D

ENING

, Kryptografia i ochrona danych. Wydawnictwa Naukowo-Techniczne, Warszawa 1993.

3.

J. S

TOKLOSA

, Algorytmy kryptograficzne. OWN – Osrodek Wydawnictw Naukowych, Poznan 1994.

4.

ANSI X3.92, American National Standard for Data Encryption Algorithm (DEA). American National Standards

Institute, 1981.

5.

ANSI X3.105, American National Standard for Information Systems – Data Link Encryption. American National

Standards Institute, 1983.

6.

ANSI X9.8, American National Standard for Personal Information Number (PIN) Menagement and Security.

American Bankers Association, 1982.

7.

ANSI X9.9, American National Standard for Financial Institution Message Autentication (Wholesale). American

Bankers Association, 1986.

8.

ANSI X9.23, American National Standard for Financial Institution Message Encryption. American Bankers

Association, 1988.

9.

ANSI X9.24, American National Standard for Retail Key Management. American Bankers Association, 1988.

10. ANSI X9.26, American National Standard for Financial Institution Sign-On Autentication for Wholesale

Financial Transaction. American Bankers Association, 1990.

11. D. M

AC

M

ILLAN

, Single Chip Encrypts Data at 14Mb/s. Electronics, v. 54, n. 12, 16 June 1981, str. 161-165.

12. S. K. B

ANERJEE

, High Speed Implementation of DES. Computers and Security, v. 1, 1982, str. 261-267.

13. R. C. F

AIRFIELD

, A. M

ATUSEVICH AND

J. P

LANY

, An LSI Digital Encryption Processor (DEP). Advances in

Cryptology – CRYPTO’84 Proceedings, Springer-Verlag, Berlin 1985, str. 115-143.

14. R. C. F

AIRFIELD

, A. M

ATUSEVICH AND

J. P

LANY

, An LSI Digital Encryption Processor (DEP). IEEE

Communications, v. 23, n.7, Jun 1985, str. 30-41.

15. M. D

AVIO

, Y. D

ESMENDT

, J. G

OUBERT

, F. H

OORNAERT AND

J. J. Q

UISQUATER

, Efficient Hardware and

Implementation of the DES. Advances in Cryptology – CRYPTO’84 Proceedings, Springer-Verlag, Berlin,

1985, str. 144-146.

16. D. W. D

AVIES

, Some Regular Properties of the DES. Advances in Cryptology: Proceedings of Crypto 82, Plenum

Press, 1983, str. 89-96.

17. E. B

IHAM

, A. S

HAMIR

, Differential Cryptoanalysis of the DES. Springer-Verlag, Berlin 1993.

18. S

COTT

, Wide Open Encription Design Offers Flexible Implementations. Cryptologia, v. 9, n. 1, Jan 85, str. 75-90.

19. X. L

AI

, J. M

ASSEY AND

S. M

URPHY

, Markov Ciphers and Differential Cryptanalysis. Advances in Cryptology –

EUROCRYPT’91 Proceedings, Springer-Verlag, Berlin 1991, str. 17-38.

20. X. L

AI

, J. M

ASSEY

, A Proposal for New Block Encryption Standard. Advances in Cryptology – EUROCRYPT’90

Proceedings, Springer-Verlag, Berlin 1991, str. 389-404.

21. X.L

AI

, Detailed Description and a Software Implementation of the IPES Cipher. Preprint 8 Nov 1991.

22. X L

AI

, Personal communication.

23. J. L. M

ASSEY AND

X. L

AI

, Device for Converting a Digital Block and the Use Thereof. Interntional Patent

PCT/CH91/00117, 28 Nov 1991.

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

41

24. E. F. B

RICKELL

, Survey of Hardware Implementations of RSA. Advances in Cryptology – CRYPTO’89

Proceedings, Springer-Verlag, Berlin 1990, str. 368-370.

25. T. B

ETH

, M. F

RISCH AND

G. J. S

IMMONS

,

EDS

., Lecture Notes in Computer Science 578; Public-Key

Cryptography: State of the Art. And Future Directions, Springer-Verlag, Berlin 1992.

background image

B S K

K A T A R Z Y N A T Y B I C K A - F R A N C I K

42


Wyszukiwarka

Podobne podstrony:
ECDL Podstawy technik informatycznych
Ćwiczenia laboratoryjne PBiI (1) - konspekt, Studia INiB, Podstawy bibliotekoznawstwa i informacji n
Podstawy elektroniki - informatyka - program - gablota, Politechnika Lubelska, Studia, Studia, sem V
SZYFROWANE INFORMACJI O LODACH, meteo, laborki, meteio, cw3
Biblioteki wirtualne, Studia INiB, Podstawy bibliotekoznawstwa i informacji naukowej
PODSTAWY SYSTEM W INFORMACYJNYCH 18 01 2012(b)
M Smyczek i M Kaim Od zera do ECeDeeLa cz 1 Podstawy technik informatycznych
Szkoła Podstawowa im, informacja naukowa i bibliotekoznawstwo 3 semestr
pbi zaliczenie, Studia, WAT Informatyka, Pbi - podstawy bezpieczeństwa informacji
Podział materiałów bibliotecznych, Studia INiB, Podstawy bibliotekoznawstwa i informacji naukowej
MApa - Podstawowe źródło informacji geograficznej, NAUKA
kospekt, Studia, WAT Informatyka, Pbi - podstawy bezpieczeństwa informacji
Podstawy marketingu, Informatyka, Pomoce naukowe
Ćwiczenia laboratoryjne PBiI (2) - konspekt, Studia INiB, Podstawy bibliotekoznawstwa i informacji n
Ćwiczenia laboratoryjne PBiI (3) - konspekt, Studia INiB, Podstawy bibliotekoznawstwa i informacji n

więcej podobnych podstron