Download - Podstawy kryptografii

Transcript
Page 1: Podstawy kryptografii

Podstawy kryptografii

Page 2: Podstawy kryptografii

Plan wykładu

• Wstęp• Rodzaje systemów kryptograficznych• Historia kryptografii• Szyfrowanie symetryczne• Algorytm AES• Szyfrowanie asymetryczne• Algorytm RSA• Algorytmy haszujące• Algorytm MD5• Podsumowanie

Page 3: Podstawy kryptografii

Plan wykładu

• Wstęp• Rodzaje systemów kryptograficznych• Historia kryptografii• Szyfrowanie symetryczne• Algorytm AES• Szyfrowanie asymetryczne• Algorytm RSA• Algorytmy haszujące• Algorytm MD5• Podsumowanie

Page 4: Podstawy kryptografii

Wstęp

• Podstawowym sposobem zabezpieczania informacji przesyłanych w sieci komputerowej jest kryptografia

• Kryptografia zajmuje się zapisywaniem tekstu w sposób utajniony. Szyfrowanie to zamiana tekstu jawnego na kryptogram. Deszyfrowaniem nazywamy operację odwrotną

• Kryptoanaliza zajmuje się zagadnieniami związanymi z łamaniem szyfru, czyli próbą znalezienia klucza szyfru lub odczytaniu tekstu jawnego na podstawie kryptogramu, bez znajomości klucza

• Systemy kryptograficzne opisują sposób realizacji usług w sieci teleinformatycznej przy użyciu technik kryptograficznych

Page 5: Podstawy kryptografii

Motywacja rozwoju kryptografii

• Wzrost potrzeb związanych z bezpieczeństwem z powodu rozwoju sieci komputerowych

• Potrzeba realizacji elektronicznych transakcji, operacji finansowych z zapewnieniem uwierzytelnienia, podpisu cyfrowego, niezaprzeczalności, itd.

• Trudna realizacja podanych usług bezpieczeństwa bez stosowania technik kryptograficznych

Page 6: Podstawy kryptografii

Plan wykładu

• Wstęp• Rodzaje systemów kryptograficznych• Historia kryptografii• Szyfrowanie symetryczne• Algorytm AES• Szyfrowanie asymetryczne• Algorytm RSA• Algorytmy haszujące• Algorytm MD5• Podsumowanie

Page 7: Podstawy kryptografii

Rodzaje systemów kryptograficznych

Według metody przekształcenia tekstu jawnego w tekst zaszyfrowany:

• Podstawienie zakłada, że każdy element tekstu jawnego (bit, znak, litera) jest odwzorowywany na inny element

• Transpozycja zakłada przestawienie kolejności elementów tekstu jawnego. Podstawowy wymogi to brak straty informacji i odwracalność każdej operacji. Większość systemów, zwanych systemami produktowymi (ang. product systems) przewiduje wiele etapów podstawiania i transponowania

Page 8: Podstawy kryptografii

Rodzaje systemów kryptograficznych

Według liczby używanych kluczy:• Szyfrowanie z jednym kluczem (konwencjonalne,

symetryczne, z tajnym kluczem), np. AES, DES• Szyfrowanie z dwoma kluczami (asymetryczne, z

kluczem jawnym), np. RSA

Page 9: Podstawy kryptografii

Rodzaje systemów kryptograficznych

Według sposobu przetwarzania tekstu jawnego:• Szyfr blokowy przetwarza po kolei każdy blok tekstu

wejściowego, produkując jeden blok wyjściowy na każdy blok wejściowy

• Szyfr strumieniowy przetwarza elementy wejściowe w sposób ciągły, produkując jednocześnie materiał wyjściowy

Page 10: Podstawy kryptografii

Bezpieczeństwo systemów kryptograficznych

• Schemat szyfrujący jest bezwarunkowo bezpieczny, jeżeli generowany tekst zaszyfrowany nie zawiera wystarczająco dużo informacji, by jednoznacznie określić odpowiadający mu tekst jawny, niezależnie od ilości dostępnego tekstu zaszyfrowanego

• Schemat szyfrujący jest obliczeniowo bezpieczny, jeżeli koszt złamania szyfru przewyższa wartość informacji zaszyfrowanej oraz/lub czas potrzebny do złamania szyfru przekracza użyteczny „czas życia” informacji

Page 11: Podstawy kryptografii

Plan wykładu

• Wstęp• Rodzaje systemów kryptograficznych• Historia kryptografii• Szyfrowanie symetryczne• Algorytm AES• Szyfrowanie asymetryczne• Algorytm RSA• Algorytmy haszujące• Algorytm MD5• Podsumowanie

Page 12: Podstawy kryptografii

Historia (1)

• W VII w p.n.e w Grecji stosowano do szyfrowania scytale

• Tekst pisany był na nawiniętym na patyk pasku skórzanym

• Po rozwinięciu tekst widoczny na pasku był trudny do odszyfrowania

• Odszyfrowanie wymaga ponownego nawinięcia na patyk

• Na przykład tekst „Proszę o pomoc”Proszęopomoc

• Po odczytaniu na pasku wygląda „pzoręmooospc”

Page 13: Podstawy kryptografii

Historia (2)

• Szyfr Cezara polegający na przesunięciu liter tekstu o 3 używany przez Juliusz Cezara do komunikacji z wojskami

• Dzięki stosowaniu tego szyfru Juliusz Cezar podbił całą Galię z wyjątkiem pewnej małej wioski ;-)

Page 14: Podstawy kryptografii

Historia (3)

• Polacy w czasie wojny polsko-bolszewickiej (1919-1920) potrafili odszyfrować depesze wroga, co ułatwiało działania wojenne (więcej na serwisy.gazeta.pl/df/1,34467,2856516.html)

Page 15: Podstawy kryptografii

Historia (4)

• Enigma – maszyna szyfrująca używana przez wojska niemieckie od lat 20 XX wieku do czasów drugiej wojny światowej. W 1932 roku Enigma została złamana przez polskich matematyków: Marian Rejewski, Jerzy Różycki i Henryk Zygalski)

Page 16: Podstawy kryptografii

Plan wykładu

• Wstęp• Rodzaje systemów kryptograficznych• Historia kryptografii• Szyfrowanie symetryczne• Algorytm AES• Szyfrowanie asymetryczne• Algorytm RSA• Algorytmy haszujące• Algorytm MD5• Podsumowanie

Page 17: Podstawy kryptografii

Uproszczony model szyfrowania konwencjonalnego

Ź ró d łok o m u n ik a tu

A lg o ry tms z y fru ją c y

Tek s t ja w n y Tek s t ja w n y

A lg o ry tmd e s z y fru ją c y

K a n a ł in fo rm a c y jn y

Tek st z a s z y fro w a n y

W s p ó ln y k lu c z

M ie js c ep rz ez n ac z e n ia

A B

Page 18: Podstawy kryptografii

Model szyfrowania konwencjonalnego

• Szyfrator tworzy tekst zaszyfrowany Y=EK(X)• Odbiorca posiadający klucz może odwrócić

przekształcenie X=DK(Y)• Przeciwnik śledzący Y, ale pozbawiony dostępu do X i K,

próbuje odgadnąć hipotetyczny tekst jawny X` i hipotetyczny klucz K`. Zakładamy, że zna on algorytm szyfrujący E i deszyfrujący D

Ź ró d łok o m u n ik a tu

S z y fra to r

Ź ró d łok lu c z a

B e z p ie c z n y k a n a ł

D e s z y fr a to rM ie js c e

p rz e z n a c z e n ia

K ry p to a n a l ity k X `K `

X Y X

K

Page 19: Podstawy kryptografii

Techniki szyfrowania

• Steganografia służy do ukrycia faktu istnienia komunikatu, np. zaznaczanie liter, atrament sympatyczny

• Techniki podstawiania polega na zastępowaniu elementów (bitów) tekstu jawnego innymi elementami (bitami)

• Techniki transpozycyjne polegają na permutacji liter (przestawieniu) tekstu jawnego

Page 20: Podstawy kryptografii

Steganografia (1)

• Herodot w "Dziejach" opisuje następujący tajny przekaz informacji

• Despota Hiastus przetrzymywany przez króla perskiego Dariusza postanawia przesłać informację do swego zięcia Arystogorasa z Miletu, tak aby mogła się ona przedostać mimo pilnujących go strażników

• Aby tego dokonać na wygolonej głowie swego niewolnika tatuuje przesłanie

• Kiedy niewolnikowi odrosły włosy posyła go z oficjalnym, mało istotnym listem

Page 21: Podstawy kryptografii

Steganografia (2)

• Stosowanie atramentu sympatycznego

• Nakłuwanie szpilką liter tekstu (książki)

• Sformułowanie komunikatu, aby sekwencja kolejnych liter, sylab bądź wyrazów tworzyła ukrytą wiadomość

Page 22: Podstawy kryptografii

Steganografia w informatyce

• W komputerowym zapisie obrazu (zdjęcie jpg, film mpg) lub dźwięku (mp3) pewne bity można zmienić bez wpływu na jakość obrazu (dźwięku)

• Na tych bitach przesyłane są tajne informacje, które można odczytać wiedząc gdzie zostały ukryte

Page 23: Podstawy kryptografii

Techniki podstawiania

• Technika podstawienia polega na zastępowaniu elementów (liter, bitów) tekstu jawnego innymi elementami (b literami, bitami) według ustalonego schematu

• Przykładowe algorytmy: szyfr Cezara, Szyfr Playfair, szyfr Vigenere’a

Page 24: Podstawy kryptografii

Szyfr Cezara (1)• Szyfr Cezara polega na zastąpieniu każdej litery

alfabetu literą znajdującą się o trzy pozycje dalej

C=E(p)=(p+3) mod (26)• C to litera tekstu zaszyfrowanego odpowiadająca literze

tekstu jawnego o indeksie p• Przesunięcie może mieć wielkość dowolną, więc ogólna

postać algorytmu wygląda następująco:

C=E(p)=(p+k) mod (26), 0<k<26• Algorytm deszyfrujący ma postać:

p=D(C)=(C-k) mod (26)

Page 25: Podstawy kryptografii

Szyfr Cezara (2)

• Przykład dla szyfru Cezara (przesunięcie o 3 znaki)• Klucza b c d e f g h i j k l m n o p q r s t u v w x y z

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

• Szyfrowanie

tekst jawny : szyfr juliusza cezara

tekst zaszyfrowany: VCBIU MXOLXVCD FHCDUD

• Dla szyfru Cezara łatwo można przeprowadzić kryptoanalizę metodą brutalną polegającą na wypróbowaniu 25 możliwych kluczy k

Page 26: Podstawy kryptografii

Szyfry jednoalfabetowe

• Dla szyfrów jednoalfabetowych możemy zastosować jako szyfr dowolną permutację 26 znaków alfabetu

• Oznacza to 26!=4*1026 możliwych kluczy, czyli można wykluczyć próby rozszyfrowania metodą brutalną

• Jednak, jeśli kryptoanalityk zna tekst zaszyfrowany i jego charakter (język tekstu jawnego), może on wykorzystać regularności zawarte w języku

Page 27: Podstawy kryptografii

Szyfry jednoalfabetowe - kryptoanaliza

• Dla każdego języka można określić względną częstość występowania liter (film „Motyl i skafander”)

• Poniższa tabela prezentuje procentową częstość względną występowania poszczególnych liter w tekście angielskim

Litera Częstość (%)

Litera Częstość (%)

Litera Częstość

E 12,75 L 3,75 W 1,50 T 9,25 H 3,50 V 1,50 R 8,50 C 3,50 B 1,25 N 7,75 F 3,00 K 0,50 I 7,75 U 3,00 X 0,50 O 7,50 M 2,75 Q 0,50 A 7,25 P 2,75 Z 0,25 D 4,25 G 2,00

Page 28: Podstawy kryptografii

Techniki transpozycyjne (1)

• Techniki transpozycyjne polegają na permutacji liter tekstu jawnego

• Najprostszym takim szyfrem jest tzw. technika płotu, polegająca na tym, że tekst jawny zapisuje się jako ciąg kolumn, a odczytuje jako ciąg wierszy

• Na przykład dla płotu o wysokości 2tekst jawny : szyfrtranspozycyjnysyrrnpzcjyzftasoyyntekst zaszyfrowany: syrrnpzcjyzftasoyyn

Page 29: Podstawy kryptografii

Techniki transpozycyjne (2)• Bardziej skomplikowany system polega na zapisaniu

komunikatu w prostokącie, a następnie odczytanie ze zmianą kolejności kolumn

Klucz : 3 1 4 2 7 6 5tekst jawny : b a r d z i e j s k o m p l i k o w a n y s y s t e m p o l e g a n atekst zaszyfrowany: ASKYLDOWTGBJISORKOSEELYPAIPNMNZMAEA

• Szyfr transpozycyjny można uczynić znaczenie bezpieczniejszym poprzez stosowanie kilku etapów transpozycji, co utrudnia znacznie rekonstrukcję klucza

Page 30: Podstawy kryptografii

Konfuzja i dyfuzja

Shannon, twórca teorii informacji przedstawił w 1949 roku dwie główne zasady szyfrowania:

• Konfuzja oznacza rozmycie zależności pomiędzy tekstami jawnymi a ich zaszyfrowanymi wersjami

• Dyfuzja oznacza rozłożenie zawartych w tekście jawnym informacji w całym tekście zaszyfrowanym

Proste szyfry podstawieniowe (szyfr Cezera, szyfr Vigenere’a) zapewniają tylko konfuzję, gdyż każda litera jest szyfrowana oddzielnie

Page 31: Podstawy kryptografii

Efekt lawinowy

• Efektem lawinowym określamy intensywniejszy niż dla dyfuzji rozmazanie tekstu jawnego w tekście zaszyfrowanym

• Jest spotykany dla szyfrowania blokowego • Każdy bit zaszyfrowanego tekstu zależy od wszystkich

bitów tekstu jawnego w danym bloku• Dla zmiany pojedynczego bitu tekstu jawnego lub klucza,

każdy bit tekstu zaszyfrowanego powinien zmienić swoją wartość z prawdopodobieństwem równym dokładnie 50%

• Kryptoanaliza różnicowa wykorzystuje nawet niewielkie odstępstwo od tej zasady

Page 32: Podstawy kryptografii

Algorytmy produktowe

• Większość współczesnych algorytmów blokowych to algorytmy produktowe – po kolei wykonywane są proste, stosunkowo mało bezpieczne kroki szyfrujące zwane rundami (iteracjami)

• Dzięki stosowaniu wielu rund bezpieczeństwo algorytmu znacząco rośnie

Page 33: Podstawy kryptografii

Plan wykładu

• Wstęp• Rodzaje systemów kryptograficznych• Historia kryptografii• Szyfrowanie symetryczne• Algorytm AES• Szyfrowanie asymetryczne• Algorytm RSA• Algorytmy haszujące• Algorytm MD5• Podsumowanie

Page 34: Podstawy kryptografii

Konkurs AES

• W 1997 roku agencja NIST (ang. National Institute of Standards and Technology) rozpisała konkurs na nowy standard szyfrowania, który miał otrzymać nazwę AES (ang. Advanced Encryption Standard)

• Wybrany algorytm, Rijndael opracowany został przez naukowców belgijskich dr Joan Daemen oraz dr Vincent Rijmen

• Rijndael jest blokowym algorytmem szyfrowania z kluczem symetrycznym pozwalającym na wykorzystanie klucza szyfrującego o długości 128, 192 i 256 bitów

Page 35: Podstawy kryptografii

Dlaczego wygrał Rijndeal

• Znakomita kombinacja gwarantowanego poziomu bezpieczeństwa, wydajności, efektywności i łatwości implementacji

• Rijndael charakteryzuje się bardzo dobrą wydajnością zarówno przy implementacji sprzętowej, jak i programowej uwzględniającej różne środowiska i systemy operacyjne

• Testy wykazały, że nie wymaga dużo pamięci operacyjnej, co sprawia, że można go stosować w wielu niedostępnych dla innych algorytmów miejscach

Page 36: Podstawy kryptografii

Rijndael w pigułce (1)

• Algorytm blokowy (128, 192 lub 256 bitowe bloki danych)

• Szyfrowanie jest symetryczne, zatwierdzono klucze o długościach 128, 192 i 256 bitów

• Proces szyfrowania podlega iteracjom, przy czym rozróżnia się: rundę wstępną, pewną ilość rund standardowych (ich ilość zależy od długości klucza i wynosi odpowiednio 10, 12 lub 14), z których każda posiada 4 transformacje, rundę końcową

• Został zatwierdzony jako następca algorytmu DES• Rijndael nie jest chroniony żadnymi zastrzeżeniami

patentowymi, więc nie wymaga opłat licencyjnych

Page 37: Podstawy kryptografii

Rijndael w pigułce (2)

• Spełnia 3 główne założenia postawione przez twórców algorytmu: odporność na wszystkie znane ataki, szybkość pracy i zwartość kodu na różnych platformach, łatwość implementacji

• Aktualny stan wiedzy w zakresie kryptoanalizy nie pozwala na skuteczny atak na wiadomości szyfrowane tym algorytmem

• Atak brutalny, czyli sprawdzenie wszystkich możliwych kluczy szyfrujących jest praktycznie niewykonalny ze względu na długość klucza

• Jest łatwy do implementacji sprzętowej (większość rodzajów procesorów, smartcard) i programowej (wiele popularnych języków programowania)

Page 38: Podstawy kryptografii

Szczegóły algorytmu Rijndael (1)

• Podstawowe pojęcia służące do opisu algorytmu to "Stan" i "runda"

• Runda (ang. round) to odpowiednik standardowego etapu obliczeń mającym jako parametr tzw. Klucz Rundy (ang. Round Key)

• Z reguły runda jest superpozycją, co najmniej 2 bijekcji tzw. podstawienia i permutacji, w Rijndaelu tych przekształceń jest więcej

Page 39: Podstawy kryptografii

Szczegóły algorytmu Rijndael (2)

• Przekształcenia składające się na każdą rundę operują na pewnej macierzy prostokątnej stanowiącej wynik pośredni kolejnych obliczeń podczas realizacji algorytmu i nazywanej Stanem (ang. State)

• Jest to macierz o współczynnikach w ciele GF(28) lub inaczej w zbiorze {0,1}8 czyli macierz, której współczynniki to bajty

• Macierz bajtowa Stanu ma 4 wiersze i Nb kolumn (Nb to długość bloku podzieloną przez 32), Nb=4, 6 lub 8

• Klucz szyfrujący jest również reprezentowany jako macierz o 4 wierszach

Page 40: Podstawy kryptografii

Szczegóły algorytmu Rijndael (3)

• Liczbę kolumn tego klucza oznaczamy przez Nk

• Liczba Nk jest równa długości klucza podzielonej przez 32; Nk=4, 6 lub 8

• Długość klucza i bloku, czyli Nk i Nb możemy zmieniać niezależnie

• Liczba rund Nr stosowana w algorytmie zależy od Nb i Nk

Nb Nk Nr Nb Nk Nr Nb Nk Nr

4 4 10 4 6 12 4 8 14

6 4 12 6 6 12 6 8 14

8 4 14 8 6 14 8 8 14

Page 41: Podstawy kryptografii

Ogólny opis algorytmu

R u n d a 1

R u n d a 2

R u n d a 1 0

12 8-b itow y tek st jaw n y

12 8-b itow y tek st zaszy fro w any

K luczru ndy 1

G ene ra to rk luczy rund

12 8-b itow y k lucz

T e k s t j a w n y w 1 2

T t w we n k j y 1s a 2

K luczru ndy 2

K luczru ndy 1 0

$ * a x- \ & ^{ : C gu S . !

$ * a x - \ & ^ { : C g u S . !

M a c ie rz S ta n u

B y te S u b

S h iftR o w

M ix C o lu m n

A d d R o u n d K ey

Page 42: Podstawy kryptografii

Opis jednej rundy algorytmu

• Przekształcenie rundy jest bijekcją będąca superpozycją 4 bijekcji składowych

• Runda składa się z następujących czterech przekształceń operujących na macierzy Stanu– przekształcenia ByteSub– przekształcenia ShiftRow– przekształcenia MixColumn– dodawania klucza rundy

• Ostatnia runda nie zawiera przekształcenia MixColumn

Page 43: Podstawy kryptografii

Przekształcenie ByteSub

• Przy transformacji ByteSub operuje się na poszczególnych elementach macierzy Stanu, które są pojedynczymi bajtami

• Każdy bajt przechodzi transformację, którą ze względów historycznych nazwano S-Boxem i jest wpisywany w to samo miejsce

• W fazie tej wykonuje się jedynie operacje na bajtach, a zatem jest to łatwe nawet w procesorach 8-bitowych

S -B o x b b b b b b b b b b b b b b b b

0,0 0,1 0,2 0,3

1,0 1,1 1,2 1,3

2,0 2,1 2,2 2,3

3,0 3,1 3,2 3,3

a 0,0 a a a a a a a a a a a a a a a

0,1 0,2 0,3

1,0 1,1 1,2 1,3

2,0 2,1 2,2 2,3

3,0 3,1 3,2 3,3

ai,j bi,j

Page 44: Podstawy kryptografii

Przekształcenie ShiftRow

• Ta transformacja przesuwa cyklicznie kolejne wiersze macierzy o odpowiednią liczbę pozycji

• Wartości przesunięcia zależą od wielkości bloku i klucza - dla naszych danych pierwszego wiersza się nie przesuwa, drugi przesuwa się o 1 kolumnę, trzeci o 2 kolumny, a czwarty o 3 kolumny

• Ponieważ takie przesunięcie sprowadza się jedynie do zmiany uporządkowania danych w pamięci, jest ono łatwe w realizacji dla każdego procesorów.

a b c de f g hi j k lm n o p

a b c df g h ek l i jp m n o

b r a k p r z e su n ię c ia

p r z e s u n ię c ie o 1 b a j t

p r z e s u n ię c ie o 2 b a j ty

p r z e s u n ię c ie o 3 b a j ty

Page 45: Podstawy kryptografii

Przekształcenie MixColumn

• Transformacja MixColumn miesza wartości zawarte w jednej kolumnie w dość skomplikowany sposób, zmieniając jednocześnie ich wartości

• Dzięki zastosowaniu specjalnych struktur algebraicznych taka operacja może zostać wykonana dość sprawnie na 8-bitowym procesorze lub wykorzystując pełną moc procesora 32-bitowego

c x( ) b b b b b b b b b b b b b b b b

0,0 0,1 0,2 0,3

1,0 1,1 1,2 1,3

2,0 2,1 2,2 2,3

3,0 3,1 3,2 3,3

a a a a a a a a a a a a a a a a

0,0 0,1 0,2 0,3

1,0 1,1 1,2 1,3

2,0 2,1 2,2 2,3

3,0 3,1 3,2 3,3

a0,j

a1,j

a2,j

a3,j

b0,j

b1,j

b2,j

b3,j

o

Page 46: Podstawy kryptografii

Dodawanie klucza rundy

• Dla każdej rundy generowany jest z klucza pierwotnego specjalny klucz rundy, który zostaje w tej transformacji połączony z macierzą danych za pomocą operacji XOR

• Poszczególne komórki (bajty) klucza są XORowane z odpowiednimi komórkami (bajtami) macierzy Stanu

Page 47: Podstawy kryptografii

Bezpieczeństwo Rijndael (1)

• Operacje MixColumn i ShiftRow zapewniają silną dyfuzję (zamiana jednego bitu stanu wpływa na wszystkie bity stanu w małej liczbie rund)

• Operacje ByteSub i dodawanie klucza rundy zapewniają silną konfuzję (zgubienie zależności – na podstawie rezultatu jednej rundy nie można wywnioskować macierzy stanu na początku rundy)

• Aby przeprowadzić kryptoanalizę różnicową, między poszczególnymi rundami muszą istnieć przewidywalne różnice. Udowodniono, że odpowiednie prawdopodobieństwa wykorzystywane przy kryptoanalizie DES-a w przypadku Rijndaela nie są wystarczające do przeprowadzenia skutecznego ataku

Page 48: Podstawy kryptografii

Bezpieczeństwo Rijndael (2)

• Udowodniono, że zależności danych pomiędzy rundami dla Rijndaela są tak małe, iż kryptoanaliza liniowa jest całkowicie nieskuteczna

• Istnieją ataki (np. Square, XSL), które są zdolne do złamania algorytmu Rijndaela ale dla liczby rund znacznie mniejszej niż określone w standardzie

Page 49: Podstawy kryptografii

Plan wykładu

• Wstęp• Rodzaje systemów kryptograficznych• Historia kryptografii• Szyfrowanie symetryczne• Algorytm AES• Szyfrowanie asymetryczne• Algorytm RSA• Algorytmy haszujące• Algorytm MD5• Podsumowanie

Page 50: Podstawy kryptografii

Szyfrowanie asymetryczne

• Algorytmy asymetryczne z kluczem jawnym opierają się na funkcjach matematycznych, a nie na podstawianiu i permutacji

• Szyfrowanie jest asymetryczne, wykorzystuje dwa klucze: publiczny (ogólnie dostępny) i prywatny

Ź ró d łok o m u n ik a tu

A lg o ry tms z y fru ją c y

Tek s t ja w n y Tek s t ja w n y

A lg o ry tmd e s z y fru ją c y

K a n a ł in fo rm a c y jn y

Tek st z a s z y fro w a n y

M ie js c ep rz ez n ac z e n ia

A B

K lu czja w n y B

K lu czp ry w a tn y B

Page 51: Podstawy kryptografii

Szyfrowanie asymetryczne - poufność

B

Ź ró d łok o m u n ik a tu

S z y fro w a n ie

Ź ró d ło p a ryk lu cz y

D e s z y fro w a n ieM ie js c e

p rz ez n ac z e n ia

K ry p to a n a l ity k X `K P `b

X Y X

K J b

K P b

A

Page 52: Podstawy kryptografii

Szyfrowanie asymetryczne - uwierzytelnienie

B

A

Ź ró d łok o m u n ik a tu

S z y fro w a n ie

Ź ró d ło p a ryk lu cz y

D e s z y fro w a n ieM ie js c e

p rz ez n ac z e n ia

K ry p to a n a l ity k K P `a

X Y X

K J a

K P a

Page 53: Podstawy kryptografii

Funkcja jednokierunkowa

• Stworzenie praktycznego systemu szyfrowania asymetrycznego z kluczem jawnym wymaga zastosowania funkcji jednokierunkowej z bocznym wejściem (ang. trapdoor one-way function)

• Funkcja jednokierunkowa to taka, która przekształca swoją dziedzinę na przedział w taki sposób, że każda wartość funkcji ma tylko jedną odwrotność, z tym że obliczenie funkcji jest łatwe (czas wielomianowy), a obliczenie odwrotności niewykonalne (wysiłek obliczeniowy rośnie szybciej niż wielomianowo):

• Y=f(X) - łatwe• X=f-1(Y) - niewykonalne

Page 54: Podstawy kryptografii

Funkcja jednokierunkowa z bocznym wejściem

• Obliczenie funkcji jednokierunkowej z bocznym wejściem jest łatwe w jednym kierunku, a niewykonalne w drugim, chyba że są znane pewne dodatkowe informacje, które umożliwiają obliczenie odwrotności w czasie wielomianowym

• Y=fk(X) - łatwe przy znajomości k i X

• X=fk-1(Y) - łatwe przy znajomości k i Y

• X=fk-1(Y) - niewykonalne, gdy znamy Y, a nie znamy k

Page 55: Podstawy kryptografii

Kryptoanaliza algorytmów asymetrycznych

• Atak metodą brutalną (sprawdzenie wszystkich kombinacji klucza)

• Atak na podstawie klucza jawnego – próba wyliczenia klucza prywatnego na podstawie klucza jawnego

• Atak prawdopodobnego komunikatu – wszystkie możliwe komunikaty są szyfrowane kluczem jawnym i porównywane z tekstem zaszyfrowanym

Page 56: Podstawy kryptografii

Plan wykładu

• Wstęp• Rodzaje systemów kryptograficznych• Historia kryptografii• Szyfrowanie symetryczne• Algorytm AES• Szyfrowanie asymetryczne• Algorytm RSA• Algorytmy haszujące• Algorytm MD5• Podsumowanie

Page 57: Podstawy kryptografii

Algorytm RSA (1)• Algorytm RSA został opublikowany w 1978 roku przez

Rona Rivesta, Adi Shamira i Lena Adlemana• Algorytm RSA to szyfr blokowy, w którym tekst jawny i

tekst zaszyfrowany są liczbami całkowitymi od 0 do n-1 dla pewnego n

• Tekst jawny jest szyfrowany blokami, z których każdy ma wartość binarną mniejszą niż n

Page 58: Podstawy kryptografii

Algorytm RSA (2)

• Szyfrowanie i deszyfrowanie bloku tekstu jawnego M i zaszyfrowanego C mają następującą formę:

C = Me mod n

M = Cd mod n =

(Me)d mod n =

Med mod n• Zarówno odbiorca i nadawca muszą znać wartość n • Klucz jawny to KJ={e,n}, a klucz prywatny to KP={d,n}

• Jak wyznaczyć liczby n, e, d aby M = Med mod n oraz podany schemat był bezpieczny?

Page 59: Podstawy kryptografii

Funkcja Eulera

• Leonhard Euler – szwajcarski matematyk i fizyk żyjący w XVIII wieku

• Funkcja Eulera, zapisywana jako (n) oznacza liczbę dodatnich liczb całkowitych mniejszych od n i jednocześnie względnie pierwszych względem n

• Dla każdej liczby pierwszej p zachodzi (p) = p – 1

Page 60: Podstawy kryptografii

Twierdzenie Eulera

Teza: Dla każdego a i n względnie pierwszych to n dzieli bez reszty liczbę (a(n) – 1), czyli a(n) 1 mod n

• Z twierdzenia Eulera wynika, że dla dwóch liczb pierwszych p i q i dwóch liczb całkowitych takich, że n = pq oraz 0<m<n i dowolnej liczby k, zachodzi następująca zależność

mk(n)+1 = mk(p – 1)(q – 1)+1 m mod n

Page 61: Podstawy kryptografii

RSA i twierdzenie Eulera

• Z twierdzenia Eulera wynika, że mk(n)+1 m mod n dla n=pq, p i q to liczby pierwsze

• Aby osiągnąć następującą zależność potrzebną w algorytmie RSA

M = Med mod n• musimy podstawić ed = k(n)+1

Page 62: Podstawy kryptografii

Generowanie kluczy w RSA

1. Wybierz dwie liczby pierwsze p, q

2. Oblicz n=pxq

3. Wybierz liczbę całkowitą d taką, że nwd(d,(n))=1 oraz 1<d<(n)

4. Oblicz e d-1 mod (n)

5. Klucz jawny KJ={e,n} i klucz prywatny KP={d,n}

Page 63: Podstawy kryptografii

Szyfrowanie i deszyfrowanie w RSA

Szyfrowanie• Tekst jawny: M<n• Tekst zaszyfrowany: C = Me mod n

Deszyfrowanie• Tekst zaszyfrowany: C• Tekst jawny: M = Cd mod n

Page 64: Podstawy kryptografii

Łamanie RSA

• Metoda brutalna – odpowiednia długość klucza zapewnia bezpieczeństwo

• Ponieważ znane jest {n,e} to rozkładając n na czynniki pierwsze p i q można obliczyć (n) i d. Odpowiednie duże liczby pierwsze zapewniają bezpieczeństwo. Dlatego duże liczby pierwsze są nieustannie poszukiwane i następne chronione

• Określić (n) bezpośrednio • Określić d bezpośrednio bez znajomości (n)

Page 65: Podstawy kryptografii

Porównanie RSA i AES

Cecha AES RSA

Szybkość działania

+ –

Bezpieczeństwo + +

Zastosowania Poufność (szyfrowanie

danych)

Uwierzytelnianie, dystrybucja kluczy,

podpis cyfrowy

Page 66: Podstawy kryptografii

Plan wykładu

• Wstęp• Rodzaje systemów kryptograficznych• Historia kryptografii• Szyfrowanie symetryczne• Algorytm AES• Szyfrowanie asymetryczne• Algorytm RSA• Algorytmy haszujące• Algorytm MD5• Podsumowanie

Page 67: Podstawy kryptografii

Algorytmy haszujące

• Funkcja haszująca z danych M o zmiennym rozmiarze wylicza pewien wynik H(M) o stałym rozmiarze, zwany też wyciągiem lub skrótem komunikatu

• Wynik haszowania jest funkcją wszystkich bitów komunikatu i zapewnia wykrywanie błędów, uwierzytelnianie

• Haszowanie jest używane w większości systemów kryptograficznych stosowanych w sieciach komputerowych, np. PGP, podpis elektroniczny, TLS (SSL)

• Przykładowe algorytmy haszujące to MD5, SHA

Page 68: Podstawy kryptografii

Wymagania dla funkcji haszującej

• H można zastosować do dowolnej wielkości bloku danych

• H tworzy dane wyjściowe o ustalonej długości• H(x) jest łatwo obliczyć dla każdego x, co ułatwia

implementację sprzętową i programową• Dla każdego kodu m znalezienie takiego x, że H(x)=m

nie jest wykonywalne na drodze obliczeń• Dla każdego danego bloku x, znalezienie takiego y

różnego od x, dla którego H(y)=H(x) nie jest wykonywalne na drodze obliczeń

• Znalezienie pary (x,y), że H(y)=H(x) nie jest wykonywalne na drodze obliczeń

Page 69: Podstawy kryptografii

Kryptoanaliza algorytmów haszujących

• Podstawowy atak na funkcje haszującą może polegać na próbie stworzenia komunikatu, który daje taki sam skrót jak przechwycony komunikat

• Poza tym można próbować zmodyfikować tekst w taki sposób, aby skrót się nie zmienił

Page 70: Podstawy kryptografii

Plan wykładu

• Wstęp• Rodzaje systemów kryptograficznych• Historia kryptografii• Szyfrowanie symetryczne• Algorytm AES• Szyfrowanie asymetryczne• Algorytm RSA• Algorytmy haszujące• Algorytm MD5• Podsumowanie

Page 71: Podstawy kryptografii

Algorytm MD5

• Algorytm MD5 (ang. Message Digest) został stworzony przez Rona Rivesta i opublikowany jako RFC1321

• Algorytm z wejściowego komunikatu o dowolnej długości generuje 128-bitowy wyciąg

• Dane wejściowe przetwarzane są w 512 bitowych blokach

• Przykład działania• MD5("Ala ma kota") = 91162629d258a876ee994e9233b2ad87

• MD5("Ala ma koty") = 6a645004f620c691731b5a292c25d37f

Page 72: Podstawy kryptografii

Generowanie wyciągu w MD5 (1)

• Dodawanie bitów dopełniających• Dodanie długości komunikatu• Inicjalizacja 128-bitowego bufora MD• Przetwarzanie komunikatu w blokach 512-bitowych• Otrzymanie wyniku

Page 73: Podstawy kryptografii

Generowanie wyciągu w MD5 (2)

K o m u nika t

K b itó w

L x 5 1 2 b itó w = N x 3 2 b ity

D o p e łn ie n ie (1 -5 1 2 ) b itó w

D łu g o ś ćk o m u n ik a tu(K m o d 2 )6 4

1 0 0 .. .0

Y 0 Y 1

5 1 2 b itó w 5 1 2 b itó w

Y q

5 1 2 b itó w

Y L -1

5 1 2 b itó w

. . .. . .

H M D 5

5 1 2

H M D 5

5 1 2

H M D 5

5 1 2

H M D 5

5 1 2

1 2 81 2 8 1 2 8 1 2 8A B C D

1 2 8 b ito w y w y c ią g

Page 74: Podstawy kryptografii

Przetwarzanie komunikatu w 512-bitowych blokach

• Wszystkie 4 etapy mają podobną strukturę, lecz każdy korzysta z innej elementarnej funkcji logicznej oznaczanej w specyfikacji jako F, B, H, I

• W każdym etapie jest przetwarzany aktualny blok Yq oraz bufor ABCD (MDq)

• Dodatkowo w każdym etapie korzysta się z kolejnych części tablicy T[1,...,64] skonstruowanej na podstawie funkcji sinus

f (A B C D ,Y ,T [1 ,...,1 6 ])F q

1 2 8

M D q

A B C D

A B C D

3 2

f (A B C D ,Y ,T [1 7 ,...,3 2 ])G q

A B C D

f (A B C D ,Y ,T [3 3 ,...,4 8 ])H q

A B C D

f (A B C D ,Y ,T [4 9 ,...,6 4 ])I q

5 1 2

Y q

+ m o d 2 3 2

+ m o d 2 3 2

+ m o d 2 3 2

+ m o d 2 3 2

1 2 8

M D q + 1

Page 75: Podstawy kryptografii

Elementarna operacja MD5

• Każdy z kroków wykonywanych 64 razy dla każdego bloku ma postać

AB+CLSs(A+g(B,C,D)+X[k]+T[i])• Przez g oznaczamy jedną z funkcji

elementarnych F, G, H, I• X[k] oznacza k-te 32 bitowe słowo w

przetwarzanym 512-bitowym bloku• T[i] oznacza i-te 32 bitowe słowo w

tablicy stałych• Wszystkie dodawania są

realizowane modulo 232

A B C D

+ m o d 2 3 2

g

+ m o d 2 3 2 X [k ]

+ m o d 2 3 2 T [i]

C L S s

+ m o d 2 3 2

Page 76: Podstawy kryptografii

Plan wykładu

• Wstęp• Rodzaje systemów kryptograficznych• Historia kryptografii• Szyfrowanie symetryczne• Algorytm AES• Szyfrowanie asymetryczne• Algorytm RSA• Algorytmy haszujące• Algorytm MD5• Podsumowanie

Page 77: Podstawy kryptografii

Podsumowanie

• Algorytm symetryczne stosują wiele różnych sposobów dla zapewnianie silnej konfuzji i dyfuzji

• Algorytmy asymetryczne i haszujące umożliwiają efektywną realizację szeregu funkcji bezpieczeństwa (np. uwierzytelnianie, podpis cyfrowy, integralność)

• Bezpieczeństwo kryptograficzne algorytmów zależy od konstrukcji algorytmu i długości klucza

• Ważnym aspektem jest ochrona praw patentowych, która może ograniczać możliwość stosowania danego algorytmu

Page 78: Podstawy kryptografii

Kolejny wykład

Bezpieczeństwo sieci komputerowych