Dr inż. Robert Wójcik



Pobieranie 2,08 Mb.
Strona1/13
Data14.02.2018
Rozmiar2,08 Mb.
  1   2   3   4   5   6   7   8   9   ...   13



Dr inż. Robert Wójcik, p. 313, C-3, tel. 320-27-40
Katedra Informatyki Technicznej

Wydział Elektroniki

Politechnika Wrocławska
E-mail: robert.wojcik@pwr.edu.pl

Strona internetowa: google: Wójcik Robert
Ochrona i poufność danych
Wykład 1.
1. Wprowadzenie do kryptografii


    1. Wstęp - charakterystyka kursu (karta przedmiotu)




    1. Aspekty ochrony danych




    1. Systemy i algorytmy kryptograficzne




    1. Kryptografia klasyczna i współczesna




    1. Podstawowe metody kryptoanalizy




    1. Poziomy bezpieczeństwa kryptosystemów




    1. Elementarne algorytmy szyfrowania

1.7. Szyfry kaskadowe




    1. Algorytm symetryczny DES




    1. Tryby pracy algorytmu DES

1.10. Algorytmy asymetryczne – z kluczem publicznym




Literatura
[1] Menezes A., P.van Oorschot, Vanstone S., Kryptografia stosowana, WNT, Warszawa, 2005.

[2] Stinson D. R., Kryptografia w teorii i praktyce, WNT, Warszawa, 2005.

[3] Mochnacki W., Kody korekcyjne i kryptografia, Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław, 2000.

[4] Kutyłowski M., Strothmann W., Kryptografia. Teoria i praktyka zabezpieczania systemów komputerowych, Oficyna Wydawnicza Read Me, Warszawa, 1999.

[5] Koblitz N., Wykład z teorii liczb i kryptografii, WNT, Warszawa, 2009.

[6] Welschenbach M., Kryptografia w C i C++, Wydawnictwo Mikom, Warszawa, 2002.

[7] Schneier B., Kryptografia dla praktyków. Protokoły, algorytmy i programy źródłowe w języku C, WNT, Warszawa, 1995.

[8] Schneier B., Ochrona poczty elektronicznej, WNT, Warszawa, 1996.

[9] Stoklosa J., Bilski T., Pankowski T., Bezpieczeństwo danych w systemach informatycz-nych, PWN, Warszawa, 2001.

[10] Wrona M., Niebezpieczeństwo komputerowe, RM, Warszawa, 2000.

[11] Stallings W., Ochrona danych w sieci i intersieci: W teorii i praktyce, WNT, Warszawa, 1997.

[12] Bezpieczeństwo systemów komputerowych: podstawowe elementy kryptografii, http://wazniak.mimuw.edu.pl/, 18-10- 2014.



1. Wprowadzenie do kryptografii

Ochrona danych – dziedzina wiedzy zajmującą się metodami zabezpieczenia danych przed nielegalnym odczytem, dostępem oraz modyfikacją w systemach i sieciach komputerowych.


W ujęciu stosowanym w niniejszym wykładzie ochrona danych obejmuje również zabezpieczanie przed błędami transmisji danych w kanałach komunikacyjnych oraz błędami pamięci – np. pamięci ECC (zastosowanie kodów detekcyjnych i korekcyjnych).
Mochnacki W., Kody korekcyjne i kryptografia, Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław, 2000.
Pojęcia związane z ochroną danych.


  • Kryptografia – dziedzina wiedzy zajmująca się zabezpieczaniem informacji (szyfrowanie, deszyfrowanie); obejmuje metody utajniania danych w wyniku ich przekształcenia metodami matematycznymi w szyfry.




  • Kryptoanaliza - sztuka łamania szyfrów.




i kryptoanalizę.


  • Kody detekcyjno-korekcyjne – umożliwiają wykrywanie i korekcję błędów.

Normalizacja pojęcia bezpieczeństwa informacji pojawiła się wraz z polską normą PN-ISO/IEC 27001:2007.


Jest to rozwinięcie międzynarodowej normy ISO 27001, która definiuje aspekty zarządzania bezpieczeństwem informacji.
Według normy najważniejsze elementy bezpieczeństwa informacji obejmują zachowanie:
- poufności,
- integralności,
- dostępności.
Podstawowe aspekty ochrony danych (informacji) w ujęciu niniejszego wykładu:
- poufność lub prywatność dotyczy ochrony danych przed nielegalnym dostępem do nich;
- autentyczność lub integralność jest zabezpieczeniem przed bezprawną modyfikacją danych.
Realizacja zadań ochrony danych wymaga identyfikacji oraz uwierzytelnienia podmiotu, a także uwierzytelnienia źródła pochodzenia informacji.
Istotny jest również problem generowania oraz dystrybucji kluczy kryptograficznych.

Oprócz metod kryptograficznych ochrony danych stosuje się również metody:





  • organizacyjne (różne metody administracyjne takie jak podział kompetencji personelu, kontrola dostępu i rozliczanie czasu pracy; procedury i metody organizacyjne, szkolenie i orientowanie się pracowników w zakresie bezpieczeństwa, kontrola);




  • techniczne (zabezpieczenia techniczne obejmują środki fizyczne oraz identyfikację, uwierzytelnienie i upoważnienie personelu; zabezpieczenia fizyczne - bramy, kraty, systemy monitorowania, systemy identyfikacji, itp., umożliwiają odgrodzenie obszarów o ograniczonym dostępie oraz kontrolę użytkowników wchodzących do tych obszarów lub wychodzących z nich).


Mochnacki W., Kody korekcyjne i kryptografia, Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław, 2000.


Kryptografia: dziedzina wiedzy zajmująca się szyfrowaniem, czyli metodami utajniania treści wiadomości.
W wyniku szyfrowania (encryption) tekst jawny (plaintext), nazywany też tekstem otwartym (cleartext), zostaje przekształcony w tekst zaszyfrowany zwany kryptogramem lub szyfrogramem (ciphertext).
Proces odtwarzania treści kryptogramu nazywamy deszyfrowaniem

(decryption).






Algorytm kryptograficzny (szyfr) - funkcja matematyczna służąca do szyfrowania i deszyfrowania wiadomości.
Szyfrowanie tekstu jawnego - algorytm szyfrujący (encryption algorithm).
Deszyfrowanie kryptogramów - algorytm deszyfrujący

(decryption algorithm).


Szyfrowanie i deszyfrowanie - z udziałem kluczy kryptograficznych.
Klucze przyjmują wiele wartości z określonego zbioru - przestrzeń klucza.
Na ogół algorytmy kryptograficzne nie są tajne. Tajność operacji szyfrowania zapewnia się poprzez tajne klucze kryptograficzne.

System kryptograficzny:


  • algorytm kryptograficzny,

  • klucze kryptograficzne,

  • metoda implementacji (sprzęt i oprogramowanie).

Przed erą komputerową systemy kryptograficzne działały na pojedynczych znakach. Wykorzystywano głównie algorytmy kryptograficzne, które dokonywały podstawień lub przestawień znaków w oparciu o tajny element (np. klucz, tablicę podstawień). Obecnie kryptografię taką określa się mianem kryptografii klasycznej.



Systemy kryptograficzne z kluczem tajnym (secret-key systems):


  • ten sam klucz służy do szyfrowania i deszyfrowania informacji; systemy takie nazywane są systemami symetrycznymi, a stosowane w nich algorytmy algorytmami symetrycznymi (przykłady algorytmów symetrycznych: DES, 3DES, IDEA, AES, Blowfish, RC4).

Szyfry symetryczne pod względem techniki szyfrowania dzielą się na:


• szyfry strumieniowe (stream ciphers),
• szyfry blokowe (block ciphers).
W szyfrowaniu strumieniowym lub potokowym przetwarzaną jednostką jest bit lub znak, a w szyfrowaniu blokowym blok bitów lub znaków. Obie te metody szyfrowania mogą być używane zarówno w transmisji danych, jak i do przechowywania danych w pamięciach.

Systemy kryptograficzne z kluczem jawnym lub publicznym

(public-key systems):




  • używają dwóch oddzielnych kluczy do szyfrowania i deszyfrowania; system taki nosi nazwę systemu asymetrycznego, a stosowane w nich algorytmy algorytmami asymetrycznymi (przykłady algorytmów asymetrycznych: RSA, ElGamala, DSA – Digital Signature Algorithm);



  • klucz szyfrujący - klucz jawny, nazywany kluczem publicznym (public key);




  • klucz deszyfrujący - klucz tajny, nazywany kluczem prywatnym (private key).



Kryptoanaliza
Kryptoanaliza - nauka o odtwarzaniu tekstu jawnego, gdy nie znamy klucza, a także o odtwarzaniu samego klucza.
Kryptoanaliza zajmuje się również wyszukiwaniem słabych punktów kryptogramu, które umożliwią poznanie tekstu jawnego.
Działanie kryptoanalityka nazywa się łamaniem szyfru (attack).
Podczas łamania szyfrów można założyć, że kryptoanalityk zna algorytm kryptograficzny, chociaż w rzeczywistości założenie takie nie zawsze jest prawdziwe.
Szyfry bazujące na tajnych algorytmach są mało bezpieczne, więc odtworzenie algorytmu jest tylko kwestią czasu i pieniędzy.
Kryptoanalitycy przeważnie opierają się w swojej pracy na fragmentach kryptogramów i fragmentach tekstów jawnych, które zdobywają mniej lub bardziej legalnymi metodami.

Techniki łamania szyfrów:


• Metoda prób i błędów.
Metoda prób i błędów polega na podstawianiu różnych kombinacji klucza i poszukiwaniu sensownego tekstu jawnego. Metoda łamania klucza w wyniku wypróbowania wszystkich możliwych jego kombinacji nazywa się atakiem brutalnym.
• Analiza statystyczna.
Analiza statystyczna sprowadza się do określenia prawdopodobieństwa rozkładu liter w kryptogramie i tekście jawnym. Ponieważ rozkład liter jest charakterystyczną cechą każdego języka, informacje takie można wykorzystać do łamania niektórych szyfrów, np. szyfrów podstawieniowych.
• Wyszukiwanie prawdopodobnych słów.
Każdy dokument lub program zawiera pewne słowa i zwroty pojawiające się w określonych miejscach. W dokumentach takimi słowami są np. nazwy miejscowości i zwroty grzecznościowe, a w programach słowa kluczowe. Za pomocą prawdopodobnych słów można znaleźć fragmenty klucza.
• Analiza matematyczna.
Metoda ta polega na napisaniu układu równań na podstawie znanych algorytmów, rozwiązanie, których da wartości zmiennych, reprezentujących fragmenty wiadomości lub klucza. W ten sposób można również uzyskać wyrażenia generujące klucze kryptograficzne.
W zależności od informacji, jakie posiada kryptoanalityk, wybiera on jedną z metod postępowania.

Metody łamania szyfrów można podzielić na trzy grupy.


1. Łamanie szyfru ze znanym kryptogramem (cipher-only attack).
Na podstawie kilku kryptogramów kryptoanalityk stara się znaleźć fragmenty tekstu jawnego i klucza, które pozwolą odszyfrować inne kryptogramy. W tym przypadku kryptoanalityk może wykorzystać metodę prób i błędów, analizę statystyczną lub poszukiwać prawdopodobnego słowa.
2. Łamanie szyfru ze znanym tekstem jawnym (known-plaintext attack).
Kryptoanalityk dysponuje fragmentami kryptogramów i odpowiadających im tekstów jawnych. Stara się on określić klucz i algorytm do deszyfrowania kolejnych wiadomości zaszyfrowanych tym samym kluczem.
3. Łamanie szyfru z wybranym tekstem jawnym (chosen-plaintext attack).
Podczas łamania szyfru z wybranym tekstem jawnym kryptoanalityk może zdobyć kryptogram odpowiadający wybranemu fragmentowi tekstu jawnego. Sytuacja taka jest dogodniejsza niż w poprzednim przypadku, gdyż kryptoanalityk może zdobyć więcej informacji o kluczu. Ilość informacji pozwala zwykle zastosować analizą matematyczną. Na taki atak są szczególnie narażone bazy danych wtedy, gdy użytkownik wprowadza do nich określone informacje. Kryptoanalityk może wówczas obserwować zmiany w ich tekście zaszyfrowanym.
Poziomy bezpieczeństwa systemów kryptograficznych
Systemy kryptograficzne mogą mieć różne poziomy bezpieczeństwa.
Teoretycznie wszystkie szyfry można złamać, jeśli do dyspozycji będzie dostatecznie dużo czasu i mocy obliczeniowej. Ponieważ złamanie niektórych szyfrów wymaga zbyt dużych nakładów, praktycznie nie można ich złamać i są one uważane za bezpieczne.
Do określenia szyfrów bezpiecznych stosuje się dwa pojęcia:

- bezpieczeństwa bezwarunkowego,


- bezpieczeństwa obliczeniowego.
Szyfr jest bezwarunkowo bezpieczny, jeśli niezależnie od liczby przechwyconych kryptogramów nie ma w nich wystarczających informacji, aby jednoznacznie określić tekst jawny.
Szyfr jest bezpieczny obliczeniowo, gdy nie można go złamać analitycznie za pomocą dostępnych środków.
Ilość czasu i mocy obliczeniowej potrzebnej do złamania szyfru nazywamy nakładem pracy i określamy za pomocą liczby operacji komputerowych. Ponieważ moc obliczeniowa komputerów ciągle rośnie, więc utrzymanie odpowiedniego poziomu bezpieczeństwa szyfrów wymaga konstruowania coraz lepszych algorytmów krypto-graficznych.
Kryteria oceny systemów kryptograficznych

Istnieje wiele kryteriów służących do oceny użytkowych właściwości systemu kryptograficznego. Pięć najważniejszych to:


1. Stopień tajności
Stopień tajności ocenia się za pomocą złożoności obliczeniowej. Podstaw do analizowania złożoności obliczeniowej szyfrów dostarcza teoria złożoności. Złożoność obliczeniowa algorytmu zależy od ilości pracy i ilości przechwyconego materiału potrzebnego do złamania szyfru. W ilości pracy uwzględnia się zasoby komputerowe, a ilość zgromadzonego materiału musi dać rozwiązanie jednoznaczne. System kryptograficzny jest bezpieczny wówczas, gdy wzrost ilości przechwyconego materiału nie ułatwia złamania szyfru.

2. Rozmiar klucza

Klucze kryptograficzne są transmitowane kanałami transmisyjnymi lub przechowywane w pamięciach. Aby nie obciążać kanałów i pamięci, rozmiar klucza powinien być jak najmniejszy. Z drugiej strony dłuższy klucz zapewnia większy stopień tajności.
3. Złożoność algorytmów szyfrującego i deszyfrującego
Złożoność algorytmów kryptograficznych powoduje przedłużenie czasu wykonywania operacji kryptograficznych i z tego względu powinny one być możliwie proste. Jednak bardziej złożone algorytmy kryptograficzne zapewniają wyższy stopień tajności.
4. Propagacja błędów
W niektórych typach szyfrów nawet pojedyncze błędy transmisyjne powodują dużą liczbę błędów na wyjściu deszyfratora. Wywołuje to stratę informacji i konieczność jej retransmisji. Dlatego też dąży się od ograniczenia propagacji błędów.
5. Zwiększenie objętości danych
W niektórych systemach kryptograficznych wzrasta objętość danych na wyjściu szyfratora w porównaniu z jego wejściem. Ten niepożądany efekt powoduje wzrost objętości przesyłanych danych oraz jest przyczyną wielu problemów na wyjściu systemu kryptograficznego i dlatego powinien być ograniczony.
Wartości parametrów użytkowych systemu kryptograficznego powinny wynikać z założonego stopnia bezpieczeństwa systemu. Stopień bezpieczeństwa systemu kryptograficznego decyduje o tym, jak trudno jest złamać szyfr.

Elementarne algorytmy szyfrowania
Szyfry podstawieniowe
W szyfrze podstawieniowym każda litera lub grupa liter tekstu jawnego jest zastępowana inną literą lub inną grupą liter.
Szyfry podstawieniowe należą do szyfrów z tajnym kluczem.
Kryptografia klasyczna obejmuje cztery grupy szyfrów podstawieniowych:
• monoalfabetowe: szyfry te zawierają takie same znaki w alfabecie

jawnym i tajnym; są nazywane również prostymi szyframi

podstawieniowym lub endomorficznymi.
• homofoniczne: w szyfrach tych każdemu znakowi tekstu jawnego

przyporządkowuje się po kilka znaków kryptogramu.


• wieloalfabetowe: szyfry wieloalfabetowe stanowią kombinacje

wielu prostych szyfrów podstawieniowych; zmiana alfabetu może

na przykład następować wraz ze zmianą pozycji znaku tekstu

jawnego.
• poligramowe: w szyfrach poligramowych szyfruje się grupy

znaków.
Proste szyfry monoalfabetowe
W prostych szyfrach podstawieniowych lub monoalfabetowych stosuje się jednoznaczne odwzorowanie, które zastępuje każdy znak tekstu jawnego mi odpowiadającym mu znakiem kryptogramu f(mi).
W celu zaszyfrowania tekstu jawnego złożonego z ciągu znaków

m = m1, m2, m3, …, mk przekształcenie f stosujemy do każdego znaku, skąd otrzymujemy E(f,m) = f(m1), f(m2), f(m3), …, f(mk).


Prosty szyfr monoalfabetowy można zdefiniować za pomocą tabeli podstawień (stałe podstawianie liter z tego samego alfabetu), np.

Na przykład tekstowi jawnemu ALA odpowiada szyfr DOD.
W prostym szyfrze podstawieniowym odwzorowaniu n znaków odpowiada permutacja liczb całkowitych: 1,2,...,n. Liczba możliwych podstawień wynosi n! = n(n-1)(n-2) … 1.
Kluczem podstawieniowym jest permutacja elementów stosowanego alfabetu. Dla alfabetu angielskiego, zawierającego 26 liter, istnieje 26! różnych podstawień. Jednak szyfry monoalfabetowe są dość łatwe do złamania za pomocą analizy częstotliwości występowania znaków.

  1   2   3   4   5   6   7   8   9   ...   13


©operacji.org 2017
wyślij wiadomość

    Strona główna