plik


ÿþPodstawowe pojcia, wykrywanie bBdów Poziom reprezentacji: inaczej warto[, jak przypisujemy ReguBa Nyquista: je[li sygnaBy maj skBadowe o DES  Data Encryption Standard: symetryczny, opis wszystkim kwantyzowanym liczbom w danym przedziale. czstotliwo[ciach pomidzy f1 a f2 to, aby odtworzy dokBadnie opublikowany, zaprojektowane do dziaBania jako hardware, WspóBczynnik informacji = log|k|*(1/n) Poziom decyzyjny: kraniec przedziaBu kwantyzatora, poziomów sygnaB, musimy próbkowa z czsto[ci co najmniej 2(f2-f1) szyfruje bloki 64 bitów, 56 bitowy klucz, dziaBa tylko brute force: OdlegBo[ Hamminga - d(a,b)= . tych jest o 1 mniej ni| poziomów decyzyjnych. próbek na sekund. - szyfrowanie i deszyfrowanie skBada si z 16 rund, Minimalna odlegBo[ Hamminga = d => kod wykrywa d-1 Kwantyzacja adaptacyjna w przód: zakBadamy, |e warto[ Filtrowanie cyfrowe: suma wa|ona bie|cego i poprzednich - ka|da zawiera te same obliczenia na wyniku poprzedniej rundy i bBdów i koryguje . [rednia wej[cia jest równa 0, na podst. bloku N kolejnych próbek wej[ filtra i ew. tak|e wyj[ filtra: , z innym podkluczem, Minimalna waga d (dla pewnego a0: d = d(a0,0)) = minimalna (w chwili t) szacujemy wariancj zródBa: , warto[ci {ai} i {bj} nazywamy wspóBczynnikami filtra. - podklucze generowane s z klucza gBównego za pomoc odlegBo[ d(a,b). Reakcja impulsowa: niezerowy cig wspóBczynników na wyj[ciu przesuni cyklicznych, przesyBamy (skwantowan) informacj o wariancji do dekodera. Kod Hamminga: n=2m-1, k=2m-m-1, d=3. filtra (zazwyczaj dla cigu wej[ciowego: 1, 0, 0, & ). - blok tekstu jawnego jest permutowany na pocztku i koDcu Kwantyzacja adaptacyjna wstecz (kwantyzator Jayanta): Kod cykliczny (n,k) (n = stopieD g(x) musi by dzielnikiem xn-1, Filtry dzielimy na te o skoDczonej i nieskoDczonej reakcji. algorytmu (Batwe hardwarowo, trudne softwarowo), do zmiany wykorzystujemy wcze[niejsze dane (w postaci Wielomian parzysto[ci h(x) = . Filtry czsto Bczy si kaskady (str. drzewiaste), dobierane s do - dziki wykorzystaniu sieci Feistela, deszyfrowanie przebiega skwantyzowanej), ka|dy przedziaB ma przypisany mno|nik Mk, sygnaBu, pasma mog si nakBada lub nie, redukcja próbek na niemal identycznie jak szyfrowanie (tak sama funkcja f), mno|niki przedziaBów wew. < 1, a zewntrznych > 1, je|eli w wyj[ciu odpowiada redukcji rozmiaru czstotliwo[ci. deszyfrowania mo|na wic u|u do zaszyfrowania wiadomo[ci, Kompresja bezstratna kroku n-1 próbka wpadBa do przedziaBu l(n-a) to parametr ” dla Zastosowania: wówczas odszyfrowuje si j funkcj szyfrujc (wykorzystane nastpnego kroku: , je[li wej[cie jest dobrze Miara informacji - i(A)= . - kodowanie mowy G.722: tryby 64, 56 i 48 kbps, filtr 7kHz jest to np. w algorytmie 3DES). Entropia ([rednia informacja) H= . dopasowane to iloczyn kolejnych wsp. = 0. jako ochrona przed aliasingiem przy próbkowaniu 16000/s, ka|da Niektóre rozwizania wprowadzone w DESie: Kwantyzacja z kompanderem: przed kwantyzacj Kod jednoznacznie dekodowalny, speBnia: L >= H, L  [rednia próbka kodowana przy pomocy 14 bitowego jednolitego - permutacja rozszerzajca: permutuje wszystkie i dubluje dBugo[ kodu (podstawowe twierdzenie Shannona). przeksztaBcamy dane za pomoc jakiej[ funkcji(kompander), po kwantyzatora i przepuszczana przez bank 24-rzdowych filtrów niektóre bity, Test na jednoznaczn dekodowalno[: rekonstrukcji przeksztaBcamy za pomoc funkcji odwrotnej. FIR, ich wynik jest redukowany o wspóBczynnik 2 i kodowany - S-Boksy: dziel blok na cigi 6 bitowe i zastpuj ka|de 6 bitów Kwantyzacja wektorowa: zamiast pojedynczych elementów 1. lista sBów kodowych, ADPCM (6 bitów na próbk z mo|liwo[ci odrzucenia 1 lub 2 4 wg. z góry okre[lonego schematu, 2. sprawdza pary a| znajdzie si prefiks, wtedy sufiks doda do kwantyzujemy caBe bloki, ni|sze pasmo i 2 bity wy|sze), - P-Boksy: perutacja bitów wg. okre[lonego schematu Zredniokwadratowy bBd kwantyzacji: Q(X) = Yi óð "Yi " C listy, - kodowanie dzwiku MPEG: schematy kodowania Layer 1, 2, {adne z tych operacji nie s wyliczane, ale zamiast tego s one 3. gdy sBowo (sufiks) ju| jest na li[cie  kod niejednoznaczny, ||X - Yj|| d" ||X - Yi||, C  sBownik kwantyzatora, 3, ka|dy kolejny bardziej skomplikowany i dajcy lepsz przypisane na staBe do okre[lonych cigów bitów/ich pozycji. 4. osignicie koDca listy - kod jednoznaczny. (znieksztaBcenie liczymy po próbkach), kompresj, kodery zgodne w gór, Layer 1 i 2 u|ywaj banku 32 Nierówno[ Krafta-McMillana . Poziom kompresji: sBownik zawiera K elementów, wektor filtrów (32 podpasma o szeroko[ci fs/64, fs  cz. próbkowania Kody Shannon-Fano: dBugo[ kodu li= , [rednia dBugo[ równa 32k, 44,1k lub 48k), wyj[cie kwantyzowane przy u|yciu wej[cia ma wymiar L: d" H+1. - zakodowanie numeru wektora - bitów, równomiernego kwantyzatora ze zmienn liczb bitów (model Konstrukcja kodu Shannon-Hano: - wektor zaw. rekonstruowane warto[ci z L próbek, psychoakustyczny  wBasno[ci ludzkiego ucha), w Layer 1 i 2 - niech l1 d" l2 d" & d" lN, ramki zawieraj 384 i 1152 próbki (ma to wady przy du|ej - liczba bitów na próbk: . - definiujemy pomocnicze w1, w2, & , wN jako w1=0, , zmienno[ci sygnaBu i zostaBo poprawione w 3), Algorytm Linndego-Buza-Graya: - binarna reprezentacja wj dla j > 1 zajmuje bitów, - kodowanie obrazów: obraz dzielimy za pomoc filtrów 1. wybierz dowolny zbiór rekonstruowalnych warto[ci , - liczba bitów wj jest mniejsza lub równa lj, dla w1 to oczywiste, (najlepiej separowanych, aby mo|na byBo je stosowa oddzielnie ustal k=0, D(-1)=0, wybierz próg µ, - w ka|dym z wymiarów), górno i dolno przepustowych, a nastpnie 2. znajdz obszary kwantyzacji dziesitkujemy wyj[cie o czynnik 2, w ka|dym kroku rozkBadamy Kodowanie: " , tylko 1 z 4 podobrazów (podobrazi o wysokiej czstotliwo[ci maj Kody Huffmana: wszystkie maj tak sam [redni dBugo[ dla 3. oblicz znieksztaBcenie wikszo[ wspóBczynników blisk 0), danego cigu, kodowanie w czasie liniowym, optymalne kody prefiksowe, mo|liwo[ implementacji dynamicznej. , - kompresja wideo: czsto klatki niewiele si ró|ni, pewne znieksztaBcenia s sBabo widoczne (niewyraznie krawdzie), Kody Tunstalla: znak z najwikszym prawdopodobieDstwem np. 4. je[li zakoDcz obliczenia, niektóre bardzo (zmiany jasno[ci pow. migotanie), w predykcji  a zastepujemy aa,ab,ac 5. przyjmij k<-k+1, za nowe przyjmij [rodki ci|ko[ci nastpnych klatek mo|na wykorzystywa poprzednie, predykcja Zrednia dBugo[ = , ei  sBowo kodowe Rozszerzenia DESa: musi uwzgldnia ruch obiektów, aby unikn bBdów, co jaki[ , wró do korku 2. odpowiadajce i-temu kodowi. - DESX  dodanie whiteningu, dwa dodatkowe klucze utrudniajce czas rezygnujemy z predykcji (co kilka klatek, albo gdy zmiany s Inicjalizacja LBG  metoda podziaBów: Kodowanie arytmetyczne: elementom przyporzdkujemy przeszukiwanie: C = KEXT XOR DESK(P XOR KINT). zbyt du|e), kompresja klatek opiera si na algorytmach kompresji przedziaB [F(i),F(i+1)), F(i) = . - rozpoczynamy z jednym punktem (rozmiar sBownika 1), - 3DES  u|ywamy dwa 56 bitowe klucze K1 i K2 oraz trzykrotnie obrazu, bdcym [redni z caBego zbioru uczcego, algorytm DES: C = DESK1-1(DESK2(DESK1-1(P))). Kodowanie: - kompresja ruchu: obraz dzielimy na kratki, szukamy - dodajemy pewien ustalony wektor perturbacji e do ka|dego IDEA: opatentowany, ale bezpBatny do celów niekomercyjnych, - d <- p-l, p <- l+F(j+1)d, l <- l+F(j)d, podobnych, po czym przypisujemy im wektor przesunicia. punktu sBownika i wykonujemy LBG, klucze 128 bitowe, bloki s 64 bitowe, algorytm ma 8 rund. znacznik  liczba z przedziaBu [l,p) np. . W wideo klatki dzielimy na grupy obrazów (GOP): - kontynuujemy a| do uzyskania zakBadanej liczby poziomów Skalowanie: - co najmniej 1 ramka typu I (obraz podobny do JPEGa, (je|eli nie jest potg 2, to w ostatnim kroku nie wszystkie 1. je[li [l,p) †" [0;0,5): wymagane do rozpoczcia [de]kodowania), podwajamy). - [l,p) -> [2l,2p), - kilka klatek typu P (ró|nica pomidzy poprzedni ramk typu P Kwantyzatory o strukturze drzewiastej: - doBcz do kodu 01licznik, lub I a bie|c), - dzielimy przestrzeD na dwie cz[ci i uzyskujemy dla nich - wyzeruj licznik, - opcjonalne ramki typu B (obraz zakodowany z wykorzystaniem wektory reprezentacji, 2. je[li [l,p) †" [05;1): OBY ssiednich klatek typu P lub I, najci|sze obliczeniowo, bBdy - powtarzamy a| uzyskamy pewne drzewo binarne o wysoko[ci k, - [l,p) -> [2l-1,2p-1), nie propaguj si). - je[li zmniejszy to znieksztaBcenie przycinamy niektóre - doBcz do kodu 10licznik, PrzykBad: I B B B P B B B P B B B P. poddrzewa, - wyzeruj licznik, Algorytmy symetryczne: wideokonferencji  kompresja i - optymalne zwykle tylko dla kw. symetrycznych. 3. je[li l<0.5<p oraz [l,p) †" [0,25;0,75): dekompresja musz by szybkie. Kratowa kwantyzacja wektorowa: - [l,p) <- [2l-0,5;2p-0,5), Algorytmy asymetryczne: kompresja mo|e by czaso- i Krata  {a1, a2, & , aL}  L niezale|nych wektorów o L wymiarach, - licznik <- licznik+1. zasobo|erna, ale dekompresja musi by szybka (MPEG-1, MPEG- jest krat je[li wszystkie ui s liczbami Mo|liwe usprawnienia: przej[cie na arytmetyk liczb 2, MPEG-4). caBkowitymi. caBkowitych: [0,1) -> [0,2m-1). Inne kwantyzacje wektorowe: piramidalne, sferyczne i AES  Advanced Encryption Standard (Rinjadael): nastpca Kodowanie sBownikowe: sBowniki statyczne  tekst kodujemy Kryptografia DESa, klucze w zale|no[ci od potrzeb 128, 192 lub 256, dBugo[ biegunowe, skala-ksztaBt, z usunit [redni, klasyfikowane, jako caBe sBowa ze sBownika, sBowa których nie ma mo|na wieloetapowe, adaptacyjne. Szyfry strumieniowe  na podstawie klucza tworzymy cig bloku to 128 (mo|na zwikszy do 129 lub 256 bitów), 10 rund umieszcza jako 1-literowe sBowa, wra|liwe na zmian char. Kodowanie ró|nicowe: obliczamy kwantyzacje nie elementów bitów (potencjalnie nieskoDczony) za pomoc którego szyfrujemy (lub 12, lub 14), szybki w implementacji programowej. danych. ale ich kolejnych ró|nic: tekst jawny  np. przy pomocy XORa. kodowanie LZ77: 1. mamy cig {xn}, cig ró|nic {dn} generujemy biorc dn=xn-xn-1 , Efekt lawinowy  zmiana jednego bitu szyfrogramu powoduje Wysylamy(w lewo, copy, nowy znak) kwantyzujemy d =Q[dn]=dn+qn otrzymujc {d } (qn - bBd zmian wielu bitów kryptogramu. n n kodowanie LZ78: kwantyzacji), Szyfr Cezara: kluczem jest s, szyfrowanie c=(p+s) mod 26, (nr slowa, nowy znak) 2. u odbiorcy odtwarzamy {x }: x =x +d , deszyfrowanie p=(c+26-s) mod 26. n n n n LZW: sBownik zawiera na starcie wszystkie poj. Liter 3. std: , Szyfr Viginiére a  hasBo (klucz) dodajemy modulo do blokow (nr slowa) parujemy nowe slowa bBd akumuluje si z czasem  zapobieganie: tekstu (mo|na te| XORem) uogólnienie szyfru Cezara. PPM (Prediction by Partial Matching): u|ywamy dn=xn-x , wtedy x =xn+qn. System Playfair: klucz to kwadrat 5x5 zawierajcy 25 ró|nych n-1 n 1. dla bie|cej pozycji znajdz aktualny kontekst maks rzdu, Predykcja DPCM (Diffirential Pulse Code Modulation): zamiast liter (np. hasBo i cig kolejnych liter alfabetu w nim 2. je[li znak wystpowaB ju| w tym kontek[cie to zakoduj go z ró|nicy midzy kolejnymi elementami mamy funkcj predykcyjn niewystpujcych), w ha[le znaki (wystpujce w kluczu) nie prawdopodobieDstwem wyznaczonym na podstawie statystyk tego generujc {pn}, pn=f(x , & , x ), kodujemy xn-pn , szukamy mog si powtarza n-1 0 kontekstu, takiego f aby jak najmniejsze. Szyfrowanie: 3. w.p.p. zakoduj <esc> z prawdopodobieDstwem wyznaczonym ZakBadamy, |e (N -rzd predyktora). 1. tekst jawny dzielimy na pary: dla ka|dej wyznaczamy w na podstawie statystyk oraz: Zamiast x u|ywamy xn (zaB. bBdy kw. maBe). kwadracie-kluczu prostokt, n - zakoduj kodowany symbol w kontek[cie o 1 krótszym (rzd Szukamy {ai}, aby jak najmniejsze. W 2. dla prostoktów 1-wymiarowych bierzemy litery na prawo kontekstu > -1), RC4: szyfr strumieniowy, opracowany do celów komercyjnych, tym celu: (wspólny rzd)/poni|ej (wspólna kolumna) nich, - zakoDcz kodowanie symbolu (rzd = -1), implementacja ujawniona anonimowo na listach dyskusyjnych w 3. w.p.p. wybieramy przeciwne rogi prostokta. 1. obliczamy warto[ci oczekiwane N równaD postaci:  94, na podstawie klucza generuje cig bitów XORowany z 4. zaktualizuj statystyki wystpieD symboli. One-time pad: jednorazowo wylosowany klucz XORujemy z rzd -1 wprowadzony, aby ka|dy symbol daBo si zakodowa , otrzymujc ukBad tekstem jawnym. tekstem jawnym, wymaga osobnego przesyBu klucza. (rozkBad równy dla ka|dej litery). , gdzie Rxx(k)=E[xnxn+k] funkcja autokorelacji zmiennej xn. ECB  Electronic Codebook: tekst jawny dzielony na bloki dla kontekstów mo|na utworzy dynamicznie kod Huffmana lub Szyfrowanie asymetryczne 2. je[li znamy warto[ci autokorelacji mo|emy obliczy warto[ci ai. dBugo[ci n, ka|dy szyfrowany za pomoc tego samego klucza K. kod arytmetyczny. Odmiany DPCM: Klucze wystpuj w parach: 1 do szyfrowania 1 do deszyfrowania uszkodzenie/utrata bloku nie wpBywa na reszt, ale mo|liwa jest Zazwyczaj maksymalna dB. kontekstu to 5. - adaptacyjne DPCM (w przód i w tyB), (czasem nierozró|nialne). Opublikowanie klucza szyfrujcego te| podmiana bloków. CALIC (Context Adaptive Lossless Image Compression): - modulacja delta: dwustopniowy kwantyzator i odp. czsto[ (publicznego) nie zdradza drugiego z kluczy (prywatnego) CBC  Cipher Block Chaining: C1=Ek(P1 XOR IV), Ci=Ek(Pi XOR próbkowania (2 razy wiksza ni| najwiksza czstotliwo[). (obliczenia zbyt kosztowne). Ci-1 . PrzekBamania 1 bloku ), P1=DK(C1) XOR IV, Pi=DK(Ci) XOR Ci-1 Zastosowanie: kodowanie mowy, obrazów. Twierdzenie Eulera: a$(n) mod n = 1, dla a wzgldnie zmieniaj tylko 2 bloki po deszyfracji, takie same bloki maj Kodowanie transformujce: przeksztaBca informacj tak, aby pierwszego z n. zazwyczaj ró|ne kryptogramy, ten sam tekst jawny dla tego dh=|W-WW|+|N-NW|+|NE-N| mo|na byBo zrezygnowa z cz[ci elementów: Faktoryzacja liczb jest NP-trudna. samego klucza mo|e mie ró|ne kryptogramy dla ró|nych dv=|W-NW|+|N-NN|+|NE-NNE| 1. podziel sygnaB na bloki, RSA: wektorów inicjujcych. Pseudokod: 2. oblicz przeksztaBcenie ka|dego bloku, Generowanie kluczy: CFB  Cipher Feedback: C0=IV, Ci=EK(Ci-1 ) XOR Pi, Pi=Ci XOR 1. je|eli dh-dv > 80, to X <- N, 3. skwantuj wspóBczynniki, - losowo wybieramy 2 du|e liczby pierwsze p i q (512, 1024 lub EK(Ci-1 ). Wady i zalety jak w CBC. 2. w.p.p., je|eli dv-dh > 80, to X <- W, 4. skompresuj skwantowane wspóB. bezstratnie. 2048 bitów), OFB  Output Feedback: S0=IV, Si=EK(Si-1 ), Ci=Si XOR Pi, Pi=Si 3. w.p.p.: Odkodowanie odwrotnie. XOR Ci. Mo|na wysyBa nawet pojedyncze bity, proces - losowo wybieramy e takie, |e e i (p-1)(q-1) wzgldnie pierwsze, - X <- PrzeksztaBcenia liniowe: generowania cigu szyfrujcego zale|y tylko od cigu - znajdujemy d takie, |e ed mod (p-1)(q-1) = 1, - je|eli dh-dv > 32, to X <- , 1. cig {x0,& ,xN-1 }: } przeksztaBcamy na {¸0,& ,¸N-1 pocztkowego i nie zale|y od tekstu jawnego, niebezpiecznie jest - obliczamy n=pq i zapominamy liczby p i q, , - para [e,n] jest kluczem publicznym a [d,n] kluczem prywatnym, - w.p.p., je|eli dv-dh > 32, to X <- , u|ywa tego samego klucza i cigu inicjujcego. 2. oryginalny cig odtwarzamy: , - bez p i q nie mo|na obliczy d na podstawie e i n, a rozkBad n na - w.p.p., je|eli dh-dv > 8, to X <- , 3. mo|na poszerzy przeksztaBcenia jednowymiarowe (dzwik) na p i q jest bardzo trudny obliczeniowo. Szyfrowanie symetryczne - w.p.p., je|eli dv-dh > 8, to X <- . dwuwymiarowe (obrazy), Szyfrowanie: Schemat Feistela: Kodujemy cig ró|nic X-X . 4. wszystkie przeksztaBcenia s ortonormalne. C=E[e,n](m)=me mod n (m < n). Sie Feistela pozwala na szyfrowanie i deszyfrowanie JPEG-LS: 7 schematów predykcji: X =W, X =N, X =NW, X =N+W- Dyskretne przeksztaBcenia kosinusowe (DCT): Deszyfrowanie: informacji tym samym algorytmem, mimo i| funkcja f nie macierz przeksztaBcenia NxN: m=D[d,n](C)=Cd mod n. NW, X = , X = , X = . jest odwracalna. Sie Feistela generuje z tekstu jawnego szyfrogram, a z szyfrogramu tekst jawny. W ten sposób Poprawno[ wynika z Twierdzenia Eulera i ChiDskiego Nowy standard: konstruowanie algorytmów szyfrujcych znacznie si upro[ciBo, Twierdzenia o Resztach. Szyfrowanie i deszyfrowanie s 1. je|eli NWe"max(W,N), to X <-max(N,W), , poniewa| nie trzeba si troszczy o odwracalno[ funkcji f. symetryczne i mo|na je stosowa zamiennie. 2. w.p.p. je|eli NWd"max(W,N), to X <-min(N,W), Tekst jawny dzieli si na dwa równe bloki Li, Ri. Funkcja f jest Algorytm ElGamala: ka|dorazowe szyfrowanie wykorzystuje 3. w.p.p. X <-W+N-NW. wBa[ciwym algorytmem szyfrujcym. Jako wynik otrzymuje - Batwiejsza do policzenia i lepiej si sprawdza ni| transformata losowo wybran liczb, ró|ne szyfrogramy przy tym samym Poziomy rozdzielczo[ci: si szyfrogram. Numer kolejnej rundy oznaczany jest indeksem i; Fouriera (DFT), kluczu, klucz publiczny tylko szyfruj, prywatny tylko deszyfruje, to oznacza i| wynik szyfrowania jest ponownie i-krotnie 1. kodujemy najpierw [redni kolor kw. 2kx2k, a nast. ró|nic - u|ywana do obrazów i dzwików. algorytm bazuje na trudno[ci obliczenia logarytmu dyskretnego szyfrowany, co polepsza jako[ szyfrowania. midzy t [redni a kw. 2k -1x2k -1, Dyskretne przeksztaBcenie sinusowe: Wykorzystanie: DES, 3DES, Twofish, FEAL. tzn. znalezienia takiego x, |e gx mod p = y na liczbach 2. koDczymy na pikselach (20x20), Szyfrowanie: Li=Ri-1 XOR f(Ri-1 naturalnych. , Ri=Li-1 ,Ki). macierz przeksztaBcenia NxN: , 3. ró|nice nie s du|e i Batwo si kompresuj. Deszyfrowanie: Ri-1 =Ri XOR f(Li,Ki). Generowanie kluczy: =Li, Li-1 Obrazy czarno-biaBe (faksy): linie obrazów zaw. na przemian - lepsze ni| kosinusowe gdy wspóBczynnik korelacji jest - wybieramy liczb pierwsz p (512 bitów) i liczb g bdc bloki biaBe i czarne, mo|na wic przesyBa tylko ich dBugo[ci generatorem grupy Zp, maBy, - dla danego u|ytkownika wybieramy losowo liczb x < p  1 oraz - uzupeBnia przeksztaBcenie kosinusowe. Kompresja stratna obliczamy y = gx mod p, Dyskretne przeksztaBcenie Walsha-Hadamarda: Kryteria oceny znieksztaBceD: macierz przeksztaBcenia NxN: , dla potg dwójki: - kluczem publicznym jest [y,p,g] a kluczem prywatnym [x,p,g]. - czynnik ludzki, Szyfrowanie: , macierz przeksztaBcenia uzyskujemy przez - kwadratowa miara bBdu: d(x,y)= , Szyfrujemy m < p, wybieramy losowo i tajnie k < p, obliczamy: a - bezwzgldna miara bBdu: d(x,y)= . normalizacj i ustawienie kolumn w porzdku ilo[ci zmian znaków = gx mod p, b = m yk mod p. - bBd [redniokwadratowy (mean squared error - mse): (+ na  i odwrotnie). Para liczb [a,b] jest kryptogramem dla m. , - proste do uzyskania i implementacji, Deszyfrowanie: - minimalizuje ilo[ obliczeD. b(ax)-1=m yk g-kx = m mod p. - SNR = , SNR (dB) = 10 log10 SNR. Kodowanie podpasmowe: rozBo|enie informacji na cz[ci Miary kwantyzacji: (pasma) i kodowanie ich oddzielnie: Funkcje hashujce i podpisy cyfrowe - [redniokwadratowy bBd kwantyzacji: kwantyzacja Q(x)=y 1. wybierz zbiór filtrów do rozkBadu zródBa {xn}, MD5: skonstruowana przez Rivesta w 1991, 128 bitowe warto[ci, óð bi-1 2. u|ywajc filtrów oblicz sygnaBy podpasm {yk,n}, <xd"bi, wówczas Batwo implementowana na komputerach 32 bitowych, brak 3. zdziesitkuj wyj[cie filtra, , matematycznych podstaw poprawno[ci. 4. zakoduj zdziesitkowane wyj[cie. - [rednia bitowa kwantyzatora: [rednia liczba bitów do SHA-1 (Secure Hash Algorithm): opublikowana w USA w 1994, Odkodowanie jest odwrotno[ci kodowania. zapisania jednej wynikowej kwantyzatora. powstaBa przy wspóBpracy z NSA, daje 160 bitowe warto[ci, jest Filtry rzeczywiste maj nieostre granice przej[cia (odcicia). cz[ci DSA (Digital Signature Algorithms), który jest amerykaDskim standardem podpisów cyfrowych, brak podstaw skonstruuj kompresj stratn z sze[ciostopniowym matematycznych. - wszystkie czynno[ci poza logowaniem si do systemu jednostajnym kwantyzatorem skalarnym. U|ycie symetrycznych algorytmów szyfrujcych: wykonywane s automatycznie, - dopasowujemy wspóBczynniki przy x do siebie(kompredator?), - Schemat Rabina: zakBadamy, |e mamy algorytm szyfrujcy z - wBasnych kluczy u|ywamy tylko do komunikacji z Serwerem tak |eby jedno nadal byBo przedluzeniem drugiego kluczem tej samej dBugo[ci co szyfrowany blok, dzielimy tekst M Kerberosa, a poza nim tylko kluczy sesyjnych, - tworzymy funkcje odwrotna na bloki M1, M2, & , Mt: H0=IV, Hi=EMi(Hi-1  warto[ funkcji - bilety maj okresy wa|no[ci, wic dostp do usBug koDczy si po ), Ht haszujcej dla M. pewnym czasie (system jest czuBy na zakBócenia zegarów). W systemie Kerberos przesunieto zegar: to serwer bdzie nadal - Schemat Daviesa: H0=IV, Hi=EMi(Hi-1  warto[ ProtokóB SSH: pakiet zaprojektowany, jako bezpieczne zdalne wydawaB bilety, ale bd one miaBy krótsz wa|no[. Mo|e si ) XOR Hi-1 , Ht funkcji hashujcej dla M. logowanie, oparty na kryptografii asymetrycznej i [wiadomej zdarzy, |e bilety bd niewa|ne zaraz po ich wydaniu (zale|y jak - Schemat Matyas-Meyer-Oseasa: s  funkcja, która z decyzji u|ytkownika akceptujcej klucze publiczne serwera, z bardzo byB cofnity zegar), co uniemo|liwi dostp. Ponadto, kiedy kryptogramu generuje klucz (mo|e usuwa ró|nic w którym si Bczy. u|ytkownik wy[le pro[b o bilet, to bd one dochodziBy tak jakby dBugo[ciach): H0=IV, , Ht  warto[ funkcji Przygotowania: z przyszBo[ci, a |e serwer ma okre[lony czas na wydanie biletu, to - ka|dy komputer w momencie zostania serwerem SSH otrzymuje zaburzony zostanie czas ich wydania, przez co u|ytkownik haszujcej dla M. Podpis RSA: podpisujemy nie sam dokument, a warto[ jego par kluczy (host keys): prywatny (mocno chroniony) i publiczny, otrzyma go pózniej. funkcji skrótu. - serwer co jaki[ czas tworzy dodatkow par kluczy (server Podpis: S=RSAKpriv(h(M))=(h(M))d mod n. keys), z których prywatny jest trzymany tylko w pamici Czy dla poBczenia SSH jest mo|liwy atak man-in-the-middle: Weryfikacja: RSAKpub(S)=Se mod n=(h(M))de mod n =h(M), komputera, PoBczenia SSH opieraj si na przekazywaniu kluczy. Nieznany podpis pod tym samym dokumentem jest zawsze taki sam. - u|ytkownik równie| u|ywa pary kluczy  czsto ich generacj, klucz publiczny musi by zaakceptowany przez u|ytkownika. Z Podpis ElGamal: p  du|a liczba pierwsza, g  generator Zp, obsBug zajmuje si program klienta. tego powodu atak man-in-the-middle nie jest mo|liwy, poniewa| Przebieg logowania: u|ytkownik powinien mie [wiadomo[ akceptacji nieznanego wybieramy x<p-1 i obliczamy y=gx mod p, klucz publiczny [x,p,g], prywatny [y,p,g]. 1. klient t Baczy si z serwerem i pobiera jego publiczne host key i klucza publicznego (mo|e mie pewne podejrzenia co do Podpis: wybieramy losowe k wzg. pierwsze z p-1, obliczamy: server key, w przypadku pierwszego logowania klient musi autentyczno[ci). Ale z tego samego powodu atak jest - a = gk mod p, zaakceptowa klucze, a w przypadku kolejnych logowaD porówna prawdopodobny, gdy| u|ytkownik mo|e nie zauwa|y, |e klucz - t = k-1 mod (p-1), klucze z zapamitanymi. Dodatkowo Klient otrzymuje losowy jest podBo|ony i atak dojdzie do skutku. - b = t(h(M)-xa) mod (p-1). identyfikator sesji (cookie), Podpisem jest para (a,b). 2. obie strony tworz cig skBadajcy si z cookie, host key i czy schemat elGamala bdzie skuteczny gdy zastpimy Weryfikacja: yaab = gaxgkb = gax+k t(h(M)-xa) = gh(M) mod p. server key i za pomoc funkcji hashujcej tworz session-id, losowe warto[ci kolejnymi liczbami naturalnymi, tj. k, k+1, k+2, Podpisy pod tym samym dokumentem mog by ró|ne. 3. klient tworzy losowy klucz sesyjny, wykonuje XOR klucza i itd.  nie bdzie . Z kolejnych iteracji k bdzie mo|na wycign DSA (Digital Signature Algorithm): standard przyjty w USA, session-id i przesyBa do serwera zaszyfrowane oboma kluczami wnioski, które mog prowadzi, do zBamania klucza. serwera, oparty na ElGamalu, zmieniony tak, aby podpisy byBy krótkie, podpisujemy warto[ funkcji SHA, dBugo[ podpisu to 320 bitów, 4. serwer odszyfrowuje klucz sesyjny i u|ywa go do dalszej Policzmy b1 i b2 generowane kolejno z k i k+1. tylko do podpisów, nie ma jego modyfikacji do szyfrowania. komunikacji, B1 = m1*yk 5. klient uwierzytelnia si teraz identyfikatorem i hasBem lub za B2 = m2*yk +1 pomoc wBasnej pary kluczy, Administracja kluczami i dzielenie sekretów ProtokóB SSL: protokóB zawierajcy bezpieczny kanaB Zauwa|my, |e kiedy zrobimy b1/b2 , to bdziemy mogli policzy z Uzgadnianie kluczy sesyjnych: tak aby niemo|liwy byBa atak komunikacji oparty na szyfrowaniu asymetrycznym i certyfikatach tego: b1/b2 = m1/(m2*y). Rozszyfrowali[my klucz. np. man-in-the-middle: wi|cych klucz publiczny z usBugodawc. - A i B maj wspólny klucz symetryczny k, Budowanie poBczenia w SSL: - A wybiera losowe rA i wysyBa do B EK(rA,t,n), gdzie t aktualny - Client Hello  pro[ba do serwera zawierajca dane na temat czas, a numer uzgadnianego klucza, u|ywanych protokoBów i algorytmów szyfrowania oraz warto[ - B odbiera EK(rA,t,n), losuje rB i wysyBa do A EK(rB,t ,n), t losow CH.random. aktualny czas, - Server Hello  odpowiedz serwera zawierajca podobne dane i - kluczem sesyjnym jest f(rA,rB,k,n). losow warto[ SH.random, mo|liwe jest tak|e przesBanie Podobnie dla szyfrowania asymetrycznego. Certyfikatu serwera. Certyfikat: podpisany elektronicznie przez zaufan stron trzeci - Certificate Request  czasami serwer mo|e za|da (CA  Certificate Authority) klucz publiczny z danymi wBa[ciciela i certyfikatu klienta. czasem wa|no[ci klucza, weryfikacja przez serwery zawierajce - Server/Client Key Exchange  klient i serwer uzgadniaj klucz publiczny zaufanej strony. klucz sesyjny wykorzystujc klucze publiczne lub inny protokóB ProtokóB Diffie-Helmana: jak uzgodni wspólny klucz przy uzgadniania kluczy, oraz losowe warto[ci otrzymane od siebie. braku szyfrowanego kanaBu: - Certyficate Verify  sprawdzanie poprawno[ci certyfikatów. - publicznie znane s p  du|a liczba pierwsza i g  generator Inne metody zabezpieczania komunikacji  PGP ciaBa Zp, - A wybiera rA<p-1 i wysyBa do B sA=gra mod p, Kodowanie uniwersalne, bzip2 - B wybiera rB<p-1 i wysyBa do A sB=grb mod p, Kodowanie liczby naturalnej powinno by asymptotycznie - kluczem jest grarb = sArb = sBra mod p. ZBamanie klucza wymaga umiejtno[ci liczenia logarytmu proporcjonalne do kodowanej warto[ci ¸(log2n). dyskretnego. Zastosowanie: czasami konieczne jest przesBanie kilku liczb, ProtokóB interlock: których wielko[ ci|ko oszacowa (wykorzystanie np. przez 1. B przesyBa A swój klucz publiczny, niektóre odmiany LZ77 do kodowania przesuni). 2. A przesyBa B swój klucz publiczny, Kodowanie Eliasa (lata  70)  wyró|niamy 3 rodzaje kodów 3. B szyfruje swoj pierwsz wiadomo[ i przesyBa do A jej Eliasa (co najmniej 3) ró|nice si konstrukcj ³, ´, É, ogólna idea jest nastpujca: pierwsz poBow, 4. A po otrzymaniu pierwszej poBowy wiadomo[ci od B szyfruje - kodujemy zadan liczb binarnie, swoj wiadomo[ i wysyBa do B jej pierwsz poBow, - doklejamy informacj o dBugo[ci tak, by powstaB kod 5. B po otrzymaniu pierwszej poBowy wiadomo[ci od A przesyBa do jednoznacznie dekodowalny. A drug poBow, Kodowanie ³: kodowanie liczba x jest zapisana w kodzie 6. A po otrzymaniu drugiej poBowy wiadomo[ci od B odszyfrowuje binarnym, niech n oznacza liczb cyfr w zapisie binarnym, sBowo s i sprawdza jej poprawno[, je[li wszystko w porzdku to skBada si z (n-1) bitów o warto[ci 0, liczby x zapisanej binarnie. przesyBa drug poBow swojej wiadomo[ci do B, Kodowanie ´: liczba x jest zapisywana binarnie, liczba n oznacza 7. B, po otrzymaniu drugiej poBowy wiadomo[ci od A, liczb bitów binarnej reprezentacji x, liczb n przedstawiamy w odszyfrowuje j i sprawdza jej poprawno[. kodzie ³, z binarnej reprezentacji liczby x usuwamy najbardziej znaczc cyfr, niech k oznacza liczb bitów znaczcych n, Osoba podszywajca si nie mo|e odszyfrowa wiadomo[ci przed przesBaniem jej drugiej poBowy. wynikiem jest: k-1 zer, binarna reprezentacja liczby n, binarna Dzielenie tajemnic przy pomocy XOR: reprezentacja liczby x bez pierwszej jedynki. 1. wybieramy losowo dla Ri dla i=1, & , n-1, |e |M|=|Ri|, Kodowanie É: 2. obliczamy Rn=M XOR R1 XOR & XOR Rn-1 , 1. zapisz bit 0 (znacznik koDca), 3. dla i=1, & , n osoba otrzymuje Ri. 2. k<-x, Dzielenie tajemnic z progiem k: 3. while k>1: 1. wybieramy odpowiednio du| liczb pierwsz p, p>M, p>m, - zapisz dwójkowo liczb k, 2. wybieramy losowo w1, & , wk-1 liczb mniejszych od p, - nowe k, to liczba bitów z poprzedniego kroku pomniejszona o 1. 3. konstruujemy wielomian , Liczba bitów wynosi: ( , n  liczba kroków). 4. dla i=1, & , n osoba Ai otrzymuje w(i). Dekodowanie É: k osób jest w stanie odtworzy w(x) (interpolacja) i obliczy 1. n<-1, w(0)=M. 2. while kolejny bit nie ma warto[ci 0 - n <- warto[ zapisana na kolejnych n+1 bitach, 3. x<-n. Uwierzytelnianie WBa[ciwo[ci liczb Fibonacciego: ka|da liczba caBkowita HasBa jednorazowe  schemat Lamporta: dodatnia k mo|e by przedstawiona jednoznacznie jako: Przygotowanie: , gdzie ai jest równe 0 lub 1. Zawsze mo|emy zapisa ten - A bierze funkcj hashujc h, ilo[ haseB t i sekret w, cig w taki sposób, |e nie wystpi obok siebie dwie jedynki! - do B dostarczamy w0=ht(w). Kody Fibonacciego: Uwierzytelnianie: przy k-atym uwierzytelnieniu A przesyBa do B - znajdujemy wspóBczynniki ai, (A,k,wk,ht-k(w)). - zapisujemy w kolejno[ci od najmniej znaczcego, Weryfikacja: B sprawdza czy h(wk)=wk-1 byBo , gdzie wk-1 - za koDcu dopisujemy jedynk. dostarczone w poprzednim uwierzytelnianiu. Za koDcu zawsze wystpi 2 jedynki! ProtokóB  challange and response  silne uwierzytelnianie, bzip2: algorytm kompresji popularny w systemach Linuksowych, niemo|liwy atak man-in-the-middle, praktycznie niemo|liwy atak standardowa implementacja kompresuje bloki danych o powtórzeniowy, ale administratorzy po stronie B mog mie rozmiarach od 100 do 900 kb, blok jest przeksztaBcany dostp do k i umo|liwi podszycie si za Z: A i B znaj wspólny transformat Burrowsa-Wheelera, nastpnie kodowany sekret k i funkcj f majc wBasno[ci funkcji hashujcej. algorytmem Move-To-Front i kompresowany algorytmem Uwierzytelnianie: Huffmana, osiga o 10-20% lepsze rezultaty ni| algorytmy 1. A przesyBa do B swój identyfikator, strumieniowe, ale nie mo|e by u|ywany do kodowania strumieni. 2. B losuje losowy cig r i przesyBa do A, Transformata Burrowsa-Wheelera: 3. A przesyBa do B f(k,r), - przygotowujemy list wszystkich przesuni cyklicznych 4. B tak|e oblicza f(k,r) i sprawdza, czy jest równy przesBanemu (rotacje) BaDcucha wej[ciowego, przez A. - sortujemy je leksykograficznie, Dowody z wiedz zerow: A przekonuje B, |e zna pewien - zwracamy: numer wiersza z pierwotnym tekstem i ostatni sekret tak, aby go nie zdradzi. kolumn tabeli. TA  Trusted Authority: zaufana osoba/instytucja potrzebna w Odwracanie transformacji: trakcie tworzenia kluczy. - mamy numer wiersza k i tekst, ProtokóB Fiata-Shamira: - dopisujemy do tekstu indeksy, Przygotowanie: - sortujemy tekst (stabilnie), 1. TA losowo wybiera dwie liczby pierwsze p i q (n=pq), - zaczynajc od pozycji k wypisujemy kolejno znaki zgodnie z 2. A otrzymuje od TA sekret s wzgldnie pierwszy z n, indeksami: posortowany [k]->litera i indexPierwotny0, 3. TA oblicza v=s2 mod n i publikuje par (v,n) jako identyfikator posortowany [indeksPierwotny0]->litera i indexPierwotny1, & A. Move-To-Front: transformacja mogca spowodowa Uwierzytelnianie: zmniejszenie entropii, zyski, gdy symbole wykazuj tendencj do 1. A wybiera losowe r wzgldnie pierwsze z n, oblicza x=r2 mod n lokalnego grupowania si, dane o takiej charakterystyce s czsto i przesyBa x do B, wynikiem transformaty Burrowsa-Wheelera. 2. B wybiera losowo b " {0,1} i przesyBa je do A, Transformacja: 3. A oblicza y=rsb mod n i przesyBa y do B, - na pocztku mamy tablic N posortowanych symboli, kodem 4. sprawcza czy y2=xvb mod n. symbolu jest numer pozycji w tablicy (numery od 0 do N-1), Osoba trzecia mo|e si podszy prawd. ½: ma nadziej, |e b=0 i - w ka|dym kroku bierzemy pojedynczy symbol, wypisujemy jego s nie bdzie potrzebne, wysyBa x=y2/v mod n dla wcze[niej numer z tablicy i modyfikujemy tablic przesuwajc rozpatrywany wybranego y i ma nadziej, |e b=1. Dlatego protokóB powtarzamy symbol na pocztek tablicy, ok. 10 razy. - je[li symbole s lokalnie pogrupowane to s przesuwane na pocztek tablicy i w kodzie wynikowym pojawiaj si cz[ciej Zabezpieczenie komunikacji komputerowej maBe liczby, Kerberos: caBa komunikacja szyfrowana, dostp do ka|dego - odwrócenie transformacji jest praktycznie identyczne jak elementu systemu tylko za pomoc biletu, krytyczne cz[ci algorytm transformacji. systemu na specjalnie chronionych serwerach, zabezpieczenie przed atakami przez podsBuchanie i przechwytywanie komunikacji. Serwer Kerberosa  weryfikuje uprawnienia i przyznaje bilet ile bitów informacji mo|e mie n-bitowy kod korygujcy t- potwierdzajcy autentyczno[ klienta, który jest okazywany Serwerowi Przyznajcemu Bilety. bBedy szukamy k! Serwer Przyznajcy Bilety (TGS)  przyznaje bilety niezbdne do komunikacji z innymi klientami i urzdzeniami.

Wyszukiwarka

Podobne podstrony:
zagadneinia na kolosa
na kolosa
Pytania na kolosa
ORZECZENIA NA KOLOSA
matbudy na kolosa pyt2
gr 7 pytania z seminarium na kolosa 1
pomoce na laborki z MN ReadMe
Historia doktryn polityczno na kolosa
opracowanie na kolosa 1
mikro ( PYTANIA NA KOLOSA)
przykładowe zad na 1 kolosa

więcej podobnych podstron