podstawy kryptografii

78
Podstawy kryptografii

Upload: kostya

Post on 13-Jan-2016

73 views

Category:

Documents


0 download

DESCRIPTION

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. Plan wykładu. Wstęp Rodzaje systemów kryptograficznych - PowerPoint PPT Presentation

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