Pobierz prezentację
OpublikowałJacenty Koniec Został zmieniony 11 lat temu
1
SZYFROWANIE DANYCH Kubas Andrzej Szlenk Marcin
2
SZYFROWANIE DANYCH to, jak łatwo się domyśleć, sposób ochrony informacji przed jej zinterpretowaniem przez osoby niepowołane. Mogą one ja odczytywac, lecz zaszyfrowana treść (kryptogram) nie stanowi dla nich żadnej wartości, gdyż nie da się go przekształcić na tekst jawny (otwarty) bez znajomości odpowiedniego klucza. Ogólnie rzecz biorąc szyfrowanie ma nas uchronić przed: 1) Utratą zasobów - nieodwracalne zniszczenie części lub całości informacji. 2) Kradzież zasobów - przywłaszczenie danych, stanowiących własność innych osób. 3) Przekłamanie zasobów - zmiana części informacji np. w bazie danych 4) Łamanie praw autorskich dotyczących programów modyfikowanie i nielegalne kopiowanie programów komputerowych.
3
Rozróżniamy następujące rodzaje szyfrów:
Szyfry przestawieniowe Szyfry podstawieniowe a) monoalfabetyczne b) homofoniczne c) wieloalfabetyczne d) poligramowe Szyfry kaskadowe Szyfry wykładnicze Szyfry plecakowe
4
SZYFRY PRZESTAWIENIOWE
Szyfry te zmieniają uporządkowanie bitów lub znaków w danych według pewnego schematu. Zazwyczaj dokonuje się przestawienia za pomocą pewnej figury geometrycznej. Szyfrowanie przebiega wiec w dwóch krokach: tekst jawny wpisuje się do figury w określony sposób (ścieżka zapisu), a następnie odczytuje się go według określonego porządku (ścieżka odczytu) otrzymując tekst zaszyfrowany. Klucz obejmuje wiec figurę geometryczna oraz ścieżki zapisu i odczytu. A) szyfr płotowy. Litery tekstu jawnego zapisuje się tu tak, aby tworzyły kształt przypominający wierzchołek płotu zbudowanego ze sztachet. Tekst zaszyfrowany otrzymujemy odczytując kolejne wiersze tak utworzonej konstrukcji
5
Weźmy zdanie "JAK MASZ NA IMIE KSIAZE" (pomińmy przy zapisie spacje):
J A A E A A M S N I I K I Z K Z M S E Kryptogram w tym wypadku brzmi: "JAAEAAMSNIIKIZKZMSE". Klucz tego szyfru jest określony wysokością , która w tym wypadku wynosi 3.
6
B) przestawienie kolumnowe. Bardzo często używana figurą
B) przestawienie kolumnowe. Bardzo często używana figurą geometryczną jest macierz dwuwymiarowa. Tekst jawny zapisuje się do macierzy wierszami. Kryptogram powstaje jako odczyt kolumn w określonym porządku. Szyfrujemy zdanie („SIE GRA SIE MA"): Przy odczycie kolumn w kolejności tekst zaszyfrowany będzie miał postać: „G I I A M S R E E S A".
7
SZYFRY PODSTAWIENIOWE
a) Szyfry podstawieniowe monoalfabetyczne Zamieniają one każdy znak tekstu jawnego na odpowiedni znak kryptogramu, przy czym w całej wiadomości do zamiany każdego znaku jawnego na zaszyfrowany stosuje się odwzorowanie typu jeden do jednego. Jako przykład szyfru monoalfabetycznego może nam posłużyć prosty szyfr Cezara (jako pierwszy użył go Juliusz Cezar). Polega on na przyporządkowaniu każdej literze alfabetu łacińskiego odpowiedniego numeru identyfikacyjnego (np. A=0, B=1 itd.) i dokonaniu przesunięcia numeru każdej litery tekstu jawnego o k = 3 pozycje (ma tu miejsce tzw. przewijanie - gdy kończy się alfabet przesuwamy się do jego początku). Zakres szyfrowania można oczywiście rozszerzyć na zbiór znaków ASCI (numery od 0-255) lub jakiś inny skończony zbiór n znaków. Funkcja szyfrująca będzie się wówczas wyrażała wzorem: F(a)=(a+k) mod n gdzie: k – klucz; a – litera wiadomości; n – liczba znaków alfabetu
8
W niektórych szyfrach podstawieniowych monoalfabetycznych do kodowania służyły również niestandardowe alfabety szyfrowe. Przykładem może tu być słynny szyfr cmentarny, którego klucz utworzono za pomocą rysunków stosowanych w grze w kółko i krzyżyk. Znane są również przypadki szyfrowania poprzez zamianę liter na nuty (np. J.S. Bach użył swojego nazwiska w Propozycjach muzycznych oraz Sztuce fugi). Należy wspomnieć, że większość szyfrów monoalfabetycznych jest w prosty sposób łamana na podstawie analizy częstości występowania liter lub znaków (nawet przy ataku bez tekstu jawnego). Z tego powodu ich praktyczne znaczenie jest znikome.
9
b) Szyfry podstawieniowe homofoniczne
Szyfry te, podobnie jak poprzednio omówione szyfry monoalfabetyczne, zamieniają każdy znak tekstu jawnego na odpowiedni znak kryptogramu, z tą jednak różnicą, że odwzorowanie ma tu charakter jeden do wielu i każdy znak może być zaszyfrowany jako jeden z pewnej grupy znaków alfabetu szyfrowego. Jako przykład weźmy prosty szyfr, w którym litery alfabetu łacińskiego są szyfrowane jako liczby całkowite z przedziału (0, 99), przy czym ilość liczb całkowitych przydzielonych danej literze jest proporcjonalna do względnej częstości jej występowania i żadna z tych liczb nie jest przydzielona do więcej niż jednej litery
10
Przykładowo szyfrować będziemy słowo "POLONEZ"
Przykładowo szyfrować będziemy słowo "POLONEZ". Na początku określmy możliwy przydział liczb do liter w wiadomości o tej treści (dla uproszczenia nie określamy przyporządkowań dla pozostałych liter alfabetu). Litera Homofony E L N O P Z 33 91 Jedną z możliwych postaci zaszyfrowania tego słowa jest:
11
Szyfry homofoniczne mogą być znacznie trudniejsze do złamania, gdy liczba homofonów przydzielona danej literze jest proporcjonalna do względnej częstości jej występowania, ponieważ rozkład częstości występowania symboli jest wtedy prawie jednostajny, co utrudnia analizę. Dodatkową zaletą tych szyfrów jest możliwość kodowania równolegle z autentyczną wiadomością, którą chce się przekazać, wiadomości fałszywej (zmyłkowej).
12
c) Szyfry podstawieniowe wieloalfabetyczne
Stosuje się w nich wiele odwzorowań znaków tekstu jawnego na znaki kryptogramu, przy czym każde odwzorowanie jest z reguły typu jeden do jednego, podobnie jak w szyfrach monoalfabetycznych. Jak więc widzimy szyfry wieloalfabetyczne ukrywają rozkład częstości przez użycie wielu podstawień. Większość szyfrów tej grupy to szyfry okresowe o okresie d znaków. Klasycznym przykładem może tu być powstały w XVI wieku szyfr Vigenere'a. Szyfrowanie wiadomości przebiega tu na podstawie dowolnie wybranego słowa kluczowego (hasła). W przypadku znaków ASCI może to być dowolny ich ciąg. Do numeru każdego kolejnego znaku tekstu jawnego dodajemy numer odpowiadającego mu znaku słowa kluczowego i uzyskujemy znak kryptogramu. Gdy słowo kluczowe się skończy, bierzemy je kolejny raz od początku.
13
Fi(a) = (a+ki) mod 255 Gi(x) = (x-ki) mod 255
Dla znaków ASCI szyfr Vigenere'a można przedstawić za pomocą poniższej funkcji: Fi(a) = (a+ki) mod 255 Funkcja deszyfrująca będzie oczywiście wyglądała tak: Gi(x) = (x-ki) mod 255
14
Zilustrujmy działanie szyfru na przykładzie zdania "JUTRO JEST SOBOTA"
Zilustrujmy działanie szyfru na przykładzie zdania "JUTRO JEST SOBOTA". Dla uproszczenia bierzemy pod uwagę tylko litery alfabetu łacińskiego. Przyporządkowujemy im kolejno liczby od 0 do 25. Hasłem będzie słowo "KOT". Tekst jawny dzielimy na 3 literowe grupy (pomijając oczywiście spacje) i przesuwamy pierwszą literę każdej grupy o 10 znaków, drugą o 14, a trzecią o 19. Wygląda to mniej więcej tak: J U T R O E S B A K I M C G Y H Otrzymany kryptogram to następujący ciąg liczb: "T I M B C C O G M C C U Y H T".
15
Łatwo zauważyć, że im dłuższe i bardziej skomplikowane jest hasło, tym trudniej odszyfrować tekst utajniony. Z kolei równie łatwo jest zauważyć, że gdy nasze hasło będzie jednoznakowe otrzymamy prosty szyfr monoalfabetyczny. Dla określonego zbioru znaków, będącego dziedziną działań na tekstach możemy stworzyć tzw. tablicę Vigenere'a, która określa nam przesunięcia dla dowolnej kombinacji znaków. Okresowe szyfry wieloalfabetyczne również nie należą do najbezpieczniejszych. Po wyznaczeniu okresu takiego szyfru jest on w zasadzie bez problemów przełamywany. Do wyznaczania okresu szyfru służą dwie metody: wskaźnika zgodności i Kasiskiego.
16
d) Szyfry podstawieniowe poligramowe
Szyfry tego typu, w odróżnieniu od wyżej przedstawionych innych rodzajów szyfrów podstawieniowych, „kodują" jednoczesnie większe grupy liter. Złamanie takiego szyfru jest zatem dużo trudniejsze dzięki odebraniu znaczenia częstości występowania liter lub znaków.
17
SZYFRY KASKADOWE Złożenia wielu funkcji (szyfrów)
Każda funkcja może być podstawieniem lub permutacja (przestawieniem). - szyfry podstawieniowo-permutacyjne. Tworca Shannon. Wzór ogólny: C = St * Pt-1* ... * P1* S1(M) gdzie: C - kryptogram M - tekst jawny Si - i-te podstawienie Pi - i-te przestawienie
18
Przykład: Tekst Jawny „Ala ma kota a kot ma Ale” Mając wzór podstawienia: C=P1*S1(M) Podstawienie: Przestawienie Wynik odczytujemy kolumnami: Przestawień i podstawień w tym wzorze może występować N!
19
Szyfry wykladnicze Opierają się na wykonywaniu potęgowania w ciele skończonym. Przykładem może być szyfr RSA (od nazwisk autorów: Rivest, Shamir, Adleman). Modułem obliczeń jest tu liczba n, będąca iloczynem dwóch liczb pierwszych p i q. Blok tekstu jawnego M oraz kryptogram C musza zawierać się w zbiorze liczb całkowitych[0, n-1]. Szyfrowanie przebiega zgodnie ze wzorem: C = Me mod n Natomiast deszyfrowanie według: M = Cd mod n
20
Liczby całkowite dodatnie d i e należy dobrać według następujących wskazówek:
d jest liczba z przedziału [max(p,q)+1,n-1] i pierwsza względem E(n)- funkcji Eulera dla n (najlepiej niech to będzie dowolna liczba pierwsza z tego przedziału). Na przykład zbiór residuów mod 10 to liczby {1,3,7,9}, gdyż nie zawierają one wspólnego czynnika (rożnego od 1) z liczba 10. Zatem E(n) = 4. Gdy n jest iloczynem dwóch liczb pierwszych (p, q) to zachodzi następująca prawidłowość: E(n) = (p-1) * (q-1) Wartość e oblicza się na podstawie równania: e = inv(d,E(n)). Najlepiej zastosować tu rozszerzony algorytm Euklidesa: a * x mod n = 1,
21
gdzie a jest liczba; całkowita; z przedziału [0, n-1]
gdzie a jest liczba; całkowita; z przedziału [0, n-1]. W skrócie zapisuje się to tak: x = inv(a, n) Jeżeli na podstawie obliczeń otrzymamy e takie, ze e < log2n, to, aby zapewnić, ze dla każdego kryptogramu wystąpi przy odczycie redukcja modulo n, należy wybrać nowa wartość d i jeszcze raz obliczyć e.
22
Przykład: Niech n = 35, p = 5, q = 7 (w praktyce stosuje się oczywiście większe liczby). Wówczas: E(n) = (5-1) * (7-1) = 4 * 6 = 24 Wybieramy d = 11, wiec e = inv(11,24) = 11. Sprawdzamy, ze: 11 > log235. Bierzemy tekst jawny M = 2. Kryptogram C wynosi wtedy: C = Me mod n = 211 mod 35 = 2048 mod 35 = 18 Deszyfrowanie przebiega oczywiście w sposób następujacy: M = Cd mod n = 1811 mod 35 = 2
23
OCHRONA PROGRAMÓW OCHRONA PRZED MODYFIKACJĄ OCHRONA PRZED KOPIOWANIEM
samo sprawdzanie się programów sprawdzanie poprawności bazy danych programu zabezpieczenie programów przed śledzeniem programami typu debugger OCHRONA PRZED KOPIOWANIEM Ochrona dyskietki dystrybucyjnej przed kopiowaniem. Ochrona programu instalacyjnego przed śledzeniem. Dzięki temu trudno będzie usunąć z niego inne zabezpieczenia. Sprawdzanie, czy program instalacyjny nie został zmodyfikowany (można w tym celu wykorzystać badanie sumy kontrolnej pliku). Zliczanie liczby instalacji (program instalacyjny powinien uruchamiać się jedynie określoną ilość razy). Ochrona zainstalowanego programu przed kopiowaniem. Ochrona zainstalowanego programu przed modyfikowaniem i śledzeniem (podobnie jak w przypadku programu instalacyjnego).
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.