Wykład 4: Podstawy bezpieczeństwa i IT

Podobne dokumenty
PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

2 Kryptografia: algorytmy symetryczne

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zarys algorytmów kryptograficznych

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.

2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym)

WSIZ Copernicus we Wrocławiu

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

Zastosowania informatyki w gospodarce Wykład 5

Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1

Systemy Mobilne i Bezprzewodowe laboratorium 12. Bezpieczeństwo i prywatność

Praktyczne aspekty stosowania kryptografii w systemach komputerowych

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Algorytmy kryptograficzne BSK_2003

Szyfrowanie informacji

Laboratorium nr 1 Szyfrowanie i kontrola integralności

urządzenia: awaria układów ochronnych, spowodowanie awarii oprogramowania

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 7

Authenticated Encryption

Spis treści. Przedmowa... 9

Kryptografia na procesorach wielordzeniowych

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze.

Bezpieczeństwo systemów komputerowych. Metody łamania szyfrów. Kryptoanaliza. Badane własności. Cel. Kryptoanaliza - szyfry przestawieniowe.

Bezpieczeństwo systemów komputerowych. Kryptoanaliza. Metody łamania szyfrów. Cel BSK_2003. Copyright by K.Trybicka-Francik 1

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR

Kryptografia szyfrowanie i zabezpieczanie danych

Bezpieczeństwo kart elektronicznych

Sieci Komputerowe Mechanizmy kontroli błędów w sieciach

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

1.1. Standard szyfrowania DES

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 8

Sieci komputerowe. Wykład 11: Kodowanie i szyfrowanie. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Algorytmy asymetryczne

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI

Wykład VI. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Copyright by K. Trybicka-Francik 1

Copyright by K. Trybicka-Francik 1

BSK. Copyright by Katarzyna Trybicka-Fancik 1. Bezpieczeństwo systemów komputerowych. Podpis cyfrowy. Podpisy cyfrowe i inne protokoły pośrednie

PuTTY. Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Inne interesujące programy pakietu PuTTY. Kryptografia symetryczna

Parametry systemów klucza publicznego

Bezpieczeństwo systemów komputerowych

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 5

Szyfry Strumieniowe. Zastosowanie wybranych rozwiąza. zań ECRYPT do zabezpieczenia komunikacji w sieci Ethernet. Opiekun: prof.

Czym jest kryptografia?

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA

Programowanie Niskopoziomowe

Algorytm. a programowanie -

Bezpieczeństwo w sieci I. a raczej: zabezpieczenia wiarygodnosć, uwierzytelnianie itp.

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 9

Ataki kryptograficzne.

Bezpieczeństwo danych, zabezpieczanie safety, security

Bezpieczeństwo w Internecie

Wykład 7. komputerowych Integralność i uwierzytelnianie danych - główne slajdy. 16 listopada 2011

Marcin Szeliga Dane

Kryptografia-0. przykład ze starożytności: około 489 r. p.n.e. niewidzialny atrament (pisze o nim Pliniusz Starszy I wiek n.e.)

Generowanie ciągów bitów losowych z wykorzystaniem sygnałów pochodzących z komputera

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015

RSA. R.L.Rivest A. Shamir L. Adleman. Twórcy algorytmu RSA

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Wykład VIII. Systemy kryptograficzne Kierunek Matematyka - semestr IV. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

W11 Kody nadmiarowe, zastosowania w transmisji danych

Szyfrowanie RSA (Podróż do krainy kryptografii)

Od Wydawcy Krzywe eliptyczne w kryptografii Wykorzystanie pakietu SAGE... 9

Spis treści. Od Wydawcy

Opis efektów kształcenia dla modułu zajęć

Wprowadzenie do technologii VPN

Wybrane zagadnienia teorii liczb

Wprowadzenie ciag dalszy

Kodowanie informacji. Przygotował: Ryszard Kijanka

Technologie Informacyjne

Przewodnik użytkownika

Wstęp do Informatyki

Założenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

Zastosowanie kompresji w kryptografii Piotr Piotrowski

Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Marcin Pilarski

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

Wprowadzenie do zagadnień bezpieczeńśtwa i kryptografii

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 11

Pracownia Komputerowa wyk ad VII

Luty 2001 Algorytmy (7) 2000/2001

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Detekcja i korekcja błędów w transmisji cyfrowej

0 + 0 = 0, = 1, = 1, = 0.

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Teoretyczne Podstawy Informatyki

Techniki multimedialne

Ataki na algorytm RSA

WEP: przykład statystycznego ataku na źle zaprojektowany algorytm szyfrowania

Ochrona Systemów Informacyjnych. Elementy Kryptoanalizy

LICZBY PIERWSZE. 14 marzec Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F.

Bezpieczeństwo systemów komputerowych

Kryptologia. Bezpieczeństwo komunikacji elektronicznej

Transkrypt:

Wykład 4: Podstawy bezpieczeństwa i IT dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011

Plan Podstawy IT struktury danych kodowanie danych alfanumerycznych notacja SDL automat skończony EDC i ECC kompresja danych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 2

Plan Podstawy bezpieczeństwa kryptologia funkcje haszujące liczby losowe uwierzytelnianie dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 3

PODSTAWY IT struktury danych, kodowanie, SDL, automaty, EDC i ECC, kompresja danych dr inż. dr Marek inż. Marek Mika, Mika, Instytut Instytut Informatyki, Politechnika Poznańska, 2011 2011 4

Podstawy IT struktury danych kodowanie danych alfanumerycznych notacja SDL automat skończony EDC i ECC kompresja danych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 5

Struktury danych ASN.1 (Abstract Syntax Notation) sposób opisu obiektów danych niezależny od sposobu ich kodowania pierwotnie przeznaczony do transmisji danych pomiędzy różnymi systemami komputerowymi XML (extensible Markup Language) może stanowić alternatywę dla ASN.1 dotychczas niezbyt popularny w obszarze zastosowań KE PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 6

ASN.1 Rodzaj sztucznego języka Odpowiedni do opisu danych i ich struktur (nie nadaje się do programowania) Norma ISO/IEC 8824 składnia Norma ISO/IEC 8825 kodowanie Obydwie normy wywodzą się z CCITT Recommendation X.409 PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 7

ASN.1 typy danych Podstawowe typy proste - BOOLEAN - INTEGER - BIT STRING - OCTET STRING - REAL - ENUMERATED złożone - SEQUENCE struktura uporządkowana - SET struktura nieuporządkowana PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 8

Przykład: definicja typu i obiekt danych PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 9

Kodowanie TLV TLV Tag-Length-Value Norma ISO/IEC 7816-6 znaczniki dla obiektów danych używanych w zastosowaniach ogólnych w sferze przemysłowej Norma ISO/IEC 7816-4 znaczniki dla bezpiecznej komunikacji Standard EMV własne znaczniki stosowane w systemach płatniczych Użytkownik ma możliwości definiowania własnych znaczników oraz zagnieżdżania obiektów danych Obecnie tylko niewielka część dostępnej składni stosowana w KE (głównie przez ograniczony rozmiar pamięci) PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 10

BER BER Basic Encoding Rules for ASN.1 ISO/IEC 8825 Zakodowane obiekty danych BER-TLV - obiekty danych zakodowane wg BER Obiekt BER-TLV składa się ze znacznika, długości, danych aktualnych i opcjonalnego znacznika końca PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 11

Reguła kodowania BER-TLV wg ASN.1 PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 12

Dane zakodowane w ASN.1 BER-TLV PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 13

DER DER Distinguished Encoding Rule Podzbiór BER określający sposób kodowania pola długości Rozmiar pola długości: 1,2,3 lub 4 bajty Dwa najbardziej znaczące bity oznaczają klasę obiektu Klasa oznacza ogólny typ danych obiektu: uniwersalna ogólne obiekty (np. liczby całkowite, łańcuchy danych) aplikacyjna obiekt właściwy dla danych zastosowań lub standardów (np. ISO/IEC 7816-6) zależna od kontekstu zastosowania niestandardowe prywatna zastosowania niestandardowe W drugim bajcie najbardziej znaczący bit przeznaczony do przyszłych zastosowań (obecnie nieużywany) PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 14

Kodowanie znaczników w ASN.1 PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 15

Kodowanie TLV - przykład PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 16

Struktura pola długości BER w ASN.1 PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 17

Pozostałe informacje nt. ASN.1 Wzorzec (template) - wg normy jest to obiekt danych działający jak kontener dla innych danych ISO/IEC 7816-6 definiuje znaczniki dla obiektów danych stosowanych w różnych zastosowaniach KE (także inne wychodzące poza ten sektor) ISO 9992-2 znaczniki dla KE stosowanych w sektorze finansowym PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 18

ASN.1 zalety i wady Zalety: bardzo łatwe rozszerzanie struktur danych (wystarczy dodać dodatkowy obiekt zakodowany TLV) zapewniona pełna kompatybilność z wcześniejszą wersją (o ile nie usunięto poprzednich obiektów TLV) pełna kompatybilność z nowymi wersjami struktur (wymagana tylko pewna modyfikacja znaczników) łatwo można przedstawić te same dane różnym kodowaniem Wady: w przypadku małych zbiorów danych użytkownika duże koszty zarządzania kodowanymi danymi (1 bajt danych użytkownika wymaga 3 bajtów kodu) PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 19

Schemat budowy złożonej struktury z typów prostych przy kodowaniu TLV PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 20

Porządek danych w strukturze TLV Porządek danych w strukturze TLV nieistotny procesor najpierw odczytuje znacznik szuka znacznika wśród tych znaczników, które zna jeśli znajdzie to następnie czyta pole długości i odpowiednią liczbę bajtów danych jeśli nie znajdzie to pomija nieznany znacznik i przechodzi do następnego obiektu Rozszerzenie struktury przez dodanie nowego obiektu bezproblemowe można go dodać w dowolnym miejscu (pomiędzy innymi obiektami) jeśli jakiś starszy program nie będzie znał nowego znacznika po prostu go przeskoczy PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 21

Porządek obiektów danych w strukturze TLV - przykład PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 22

Podstawy IT struktury danych kodowanie danych alfanumerycznych notacja SDL automat skończony EDC i ECC kompresja danych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 23

Kod siedmiobitowy (ASCII) 2 7 =128 znaków ASCII American Standard Code for Information Interchange norma ISO/IEC 646 główna wada za mało znaków dla wielu praktycznych zastosowań stosowany w systemach GSM (standard TS 23.038) PODSTAWY IT KODOWANIE DANYCH ALFANUMERYCZNYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 24

Kod ośmiobitowy (PC-ASCII) 2 8 = 256 znaków pochodzi od ASCII (pierwsze 128 znaków) norma ISO/IEC 8859 dwie 7-bitowe tablice: stała zgodna z ASCII zmienna używana na potrzeby znaków charakterystycznych dla alfabetów narodowych np. Latin 1, Latin 2 (w DOS-ie strona kodowa 850, w Windows ANSI, mainframe EBCDIC /nie stosowany w KE/) PODSTAWY IT KODOWANIE DANYCH ALFANUMERYCZNYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 25

Kod szesnastobitowy (Unicode) do 65 546 znaków opracowany przez Unicode Consortium pierwsze 256 znaków takie jak w ISO/IEC 8859-Latin 1 da się zakodować większość znaków (nie wszystkie) możliwość łączenia znaków parami (tzw. escape sequence w Unicode 3.0) umożliwia zakodowanie ok. 1 mln znaków PODSTAWY IT KODOWANIE DANYCH ALFANUMERYCZNYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 26

Kod 32-bitowy (UCS) 2 32 =4 294 967 296 znaków (obecnie używana tylko połowa) Pozwala zakodować wszystkie znaki (litery, cyfry, ideogramy itp.) ze wszystkich żywych i martwych języków świata UCS Universal Character Set Norma ISO/IEC 10 646 Składa się z 4 bajtów nazywanych (od najbardziej znaczącego): grupa płaszczyzna wiersz komórka PODSTAWY IT KODOWANIE DANYCH ALFANUMERYCZNYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 27

UCS płaszczyzna zerowa i wiersz zerowy Płaszczyzna składa się z 65 536 znaków Najniższa płaszczyzna (grupa 0, płaszczyzna 0) to tzw. podstawowa płaszczyzna wielojęzyczna - jest identyczna z unikodem Najniższy wiersz (g:0, p:0, w:0) odpowiada ISO/IEC 8859-Latin 1 (a pierwsze 128 znaków kodowi ASCII) PODSTAWY IT KODOWANIE DANYCH ALFANUMERYCZNYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 28

Porównanie systemów kodowania znaków alfanumerycznych PODSTAWY IT KODOWANIE DANYCH ALFANUMERYCZNYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 29

UTS Istnieją trzy powszechnie używane schematy UTS (UCS Transformation Format) UTF-8 koduje bajty UTF-16 koduje znaki 16-bitowe (Unicode) tzw. UCS-2 UTF-32 tzw. UCS-4 PODSTAWY IT KODOWANIE DANYCH ALFANUMERYCZNYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 30

Plan Podstawy IT struktury danych kodowanie danych alfanumerycznych notacja SDL automat skończony EDC i ECC kompresja danych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 31

Notacja SDL SDL Specification and Description Language Szczegółowy opis w CCITT Recommendation Z.100 Notacja w postaci diagramów opisujących stany i przejścia pomiędzy nimi Diagram SDL zawsze jest prowadzony od lewego górnego rogu do prawego dolnego (nie trzeba stosować strzałek) W uproszczeniu notacja służy do opisu systemu składającego się z wielu procesów, gdzie każdy proces to automat skończony, który w stanie stabilnym może otrzymać sygnał zewnętrzny, na skutek którego może przejść do nowego stanu (pomiędzy stanami mogą wystąpić dodatkowe działania np. transmisja danych, obliczenia wartości itp.) PODSTAWY IT NOTACJA SDL dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 32

Podstawowe symbole notacji SDL 1 - Start (początek procesu); 2 Task (czynność opisana tekstem umieszczonym wewnątrz pola); 3 Decision (pytanie z odpowiedzią T/N); 4 Label (odnośnik do innego diagramu); 5 Input oraz 6 Output (interfejsy do świata zewnętrznego parametry wewn. bloku); 7 State (stan); 8 Subroutine (oznacza, że ten fragment diagramu jest opisany gdzie indziej); 9 Suroutine start oraz 10 Subroutine end (ograniczają szczegółowy opis podprogramu) PODSTAWY IT NOTACJA SDL dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 33

Plan Podstawy IT struktury danych kodowanie danych alfanumerycznych notacja SDL automat skończony EDC i ECC kompresja danych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 34

Automaty - podstawy teoretyczne Diagram stanów digraf reprezentujący zbiór stanów (węzły) i związki pomiędzy nimi (łuki) Ścieżka Pętla Norma ISO/IEC 7816-9 definiuje automaty dla KE i opisuje m.in. Access Control Descriptor (ACD) ACD określa komendy dopuszczalne w danym stanie i ich parametry PODSTAWY IT AUTOMAT SKOŃCZONY dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 35

Reprezentacja automatu w postaci diagramu stanów i diagramu SDL diagram stanów diagram SDL PODSTAWY IT AUTOMAT SKOŃCZONY dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 36

Reprezentacja automatu w postaci tabelarycznej PODSTAWY IT AUTOMAT SKOŃCZONY dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 37

Reprezentacja automatu w UML prosty z podstanami PODSTAWY IT AUTOMAT SKOŃCZONY dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 38

Zalety praktycznych zastosowań automatu Zalety: mała zajętość pamięci zwarty kod programu ściśle określona sekwencja stanów jest wystarczającym prostym i skutecznym zabezpieczeniem dostępu do danych PODSTAWY IT AUTOMAT SKOŃCZONY dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 39

Wady praktycznych zastosowań automatu Wady: błąd w diagramie stanów może mieć fatalne skutki dla bezpieczeństwa systemu w przypadku skomplikowanych automatów problemy z wykazaniem poprawności diagramu stanów implementacja rozbudowanego automatu o określonych możliwościach czasochłonna zarówno na etapie projektowania, jak i programowania skomplikowane automaty potrzebują bardzo dużo pamięci (w kontekście pojemności pamięci KE) PODSTAWY IT AUTOMAT SKOŃCZONY dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 40

Prosty dwustanowy automat dla KE PODSTAWY IT AUTOMAT SKOŃCZONY dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 41

Plan Podstawy IT struktury danych kodowanie danych alfanumerycznych notacja SDL automat skończony EDC i ECC kompresja danych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 42

EDC i ECC Układy elektroniczne KE wrażliwe na skoki napięcia zasilającego oraz na wysoką temperaturę Konieczność stosowania mechanizmów wykrywania błędów pamięci EDC Error Detection Code pozwala wykryć błędy pamięci (z prawdopodobieństwem zależnym od zastosowanej metody) ECC Error Correction Code rozszerzenie EDC, które w pewnym stopniu (z prawdopodobieństwem zależnym od zastosowanej metody) potrafi naprawić błędy pamięci Wszystkie metody EDC opierają się na sumach kontrolnych metody są jawne PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 43

Zasada działania EDC PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 44

Bit parzystości Najprostsza technika Parzystość parzysta i nieparzysta Wady: korekcja niemożliwa (nie można okreslić pozycji błędu) nie wykrywa błędów parzystych duże nakłady pamięciowe 1:8 (12,5%) problemy ze stosowaniem w pamięci o organizacji bajtowej (dlatego nie stosowane w KE) PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 45

Bit parzystości przykład PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 46

Suma kontrolna XOR Inna nazwa to LRC (Longitudinal Redundancy Check) Zasada: wylicza sumę XOR kolejnych bajtów (((B1 xor B2) xor B3) xor B4) sprawdzenie polega na ponownym wyznaczeniu sumy XOR i wykonaniu operacji XOR wyniku z zapamiętaną sumą kontrolną (wynik różny od zera oznacza wykrycie błędów) Zastosowania: transmisja danych w niektórych zastosowaniach do weryfikacji spójności zawartości pamięci PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 47

Suma kontrolna XOR przykład PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 48

XOR zalety i wady Zalety: proste i szybkie obliczenia bardzo łatwa implementacja (kod wielkości 10-20 bajtów) sprawdzony w transmisji danych często z definicji zaimplementowany na karcie (norma ISO wymusza dla protokołu T=1) Wady: nie wykrywają zmiany kolejności bajtów nie wykrywają błędów tego samego bitu w parzystej liczbie bajtów PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 49

Suma kontrolna CRC CRC Cyclic Redundancy Check Metoda EDC powszechnie stosowana w transmisji danych (modemowe protokoły Xmodem, Zmodem, Kermit, sprzętowe implementacje w kontrolerach HDD Norma ISO/IEC 13 239 i rekomendacja CCITT V.41 Mechanizm: dane są traktowane jak bardzo duża liczba, która następnie jest dzielona przez wielomian generatora Sprawdzenie poprawności danych wymaga znajomości wielomianu generatora i początkowej wartości rejestru przesuwnego i polega na ponownym wyliczeniu CRC i porównaniu z zapisaną wartością PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 50

CRC-16 i CRC-32 CRC-16 jest wyznaczane z zastosowaniem 16- bitowego rejestru przesuwnego CRC-32 jest wyznaczane przy zastosowaniu 32-bitowego rejestru przesuwnego CRC-16 stosowane dla bloków o rozmiarze do 4kB (powyżej spada wydajność) CRC-32 może obsłużyć bloki o rozmiarze do 4GB Początkowa wartość rejestru przesuwnego to 0 (metody zgodne z ISO 3309), w nielicznych przypadkach wszystkie bity rejestru ustawione na 1 (rekomendacja CCITT X.25) PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 51

Powszechnie stosowane wielomiany PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 52

Zasada wyliczania CRC-16 Generator G(x)=x 16 +x 12 +x 5 +1 PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 53

Liczenie CRC przykład wielomian G(x)=x 16 +x 12 +x 5 +1 początkowa wartość rejestru 0000 PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 54

CRC zalety i wady Zalety; solidny sposób wykrywania błędów (nawet wielokrotnych) umożliwia wykrycie zamiany bajtów (kolejność ma znaczenie) łatwy w implementacji mała zajętość pamięci możliwość implementacji sprzętowej niektóre mikrokontrolery wyposażone w elementy wspomagające liczenie CRC Wady: stosunkowo wolne działanie w wersji software owej (ok.200 razy wolniej niż XOR) PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 55

Kodowanie Reeda-Solomona 1960 podstawy opracowane przez matematyków Reeda i Solomona Jest to również kod ECC Mechanizm oparty na arytmetyce ciał skończonych Zastosowania: magazynowanie danych (CD, DVD, dyski Blue- Ray, kody kreskowe) transmisja danych (DSL, WiMAX, komunikacja satelitarna, sondy kosmiczne) PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 56

Kodowanie Reeda-Solomona c.d. Kodowanie cykliczne Metoda zorientowana na bloki danych Wielomian generatora ma wpływ na liczbę wykrywanych i poprawianych błędów Kod RS oparty na ciele skończonym rozmiaru 2 8 wykrywa 2 błędne bajty i poprawia 1 (przy 2 dodatkowych bajtach), 3 i 1 (przy 3), 4 i 2 (przy 3) Powszechnie stosowany od lat w KE do wykrywania błędów danych przechowywanych w pamięciach EEPROM lub Flash PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 57

Kodowanie Reeda-Solomona zalety Program wielkości ok. 100B Dość szybki Możliwa implementacja sprzętowa Powszechnie używany w różnych obszarach zastosowań PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 58

ECC schemat działania PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 59

ECC Metody obliczeniowe pamięciowo- i czasochłonne, zazwyczaj projektowane tylko dla drobnych błędów Rozwiązania alternatywne: umieścić kopie danych w kilku obszarach i zastosować technikę głosowania większościowego (typowe 3 obszary, 2/3 zwycięża) mniej pamięciożerne rozwiązanie to dwa obszary sprawdzanie sumą kontrolną EDC (łatwo wykryć błąd, łatwo wykryć miejsce błędu, stosunkowo łatwo można go naprawić) PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 60

ECC metody alternatywne zalety i wady Zalety: łatwość zaprogramowania prosty mechanizm prosty i zwięzły kod programu Wady: duża zajętość pamięci PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 61

Metoda Reeda-Salomona jako ECC Wymagane około kilkuset bajtów na kod programu Rozmiar zakodowanych danych zależy przede wszystkim od wymaganego prawdopodobieństwa wykrywania i lub poprawnej korekcji PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 62

Korekcja błędnych danych - wady Znacząca ilość potrzebnej pamięci Czasochłonne (metoda kilku kopii, czas zapisu) Wymagane miejsce na przechowywanie EDC Nie zabezpieczają w pełni (tylko do wybranego poziomu) Jeśli korekcja przebiega automatycznie (z poziomu OS-u) to nie ma pewności co do jej poprawności (w niektórych zastosowaniach błędna korekcja niedopuszczalna np. portmonetka elektroniczna) Czynnik ludzki łatwiej uwierzyć w manipulowanie danymi niż w błąd zaimplementowanej metody PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 63

Korekcja błędnych danych w pamięci flash o rozmiarze rzędu MB Podejście zwane FTL (Flash Translation Layer) W przypadku wykrycia błędnych danych w bloku pamięci, blok ten jest izolowany i zabrania się wykonywania na nim jakichkolwiek operacji PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 64

Plan Podstawy IT struktury danych kodowanie danych alfanumerycznych notacja SDL automat skończony EDC i ECC kompresja danych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 65

Kompresja danych Metody stratne i bezstratne W KE stosowane wyłącznie metody bezstratne Warunki dobrego algorytmu kompresji niewielka zajętość pamięci (przede wszystkim RAM) akceptowalna prędkość kompresji PODSTAWY IT KOMPRESJA DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 66

Podstawowe procesy kompresji i dekompresji danych PODSTAWY IT KOMPRESJA DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 67

Podział metod bezstratnych PODSTAWY IT KOMPRESJA DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 68

RLE i VLE RLE Run-Length Encoding (kodowanie długości serii) powtarzające się znaki zastępuje się parą (liczba wystąpień znak) VLE Variable-Length Encoding (kodowanie znakami o zmiennej długości) analizowana jest częstotliwość wystąpienia poszczególnych znaków, najczęściej występujące znaki są kodowane w pierwszej kolejności krótkimi kodami PODSTAWY IT KOMPRESJA DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 69

Wersje VLE Statyczna do kodowania używana wcześniej zdefiniowana tablica Dynamiczna najpierw analizowana jest częstość wystąpienia poszczególnych znaków i na jej podstawie budowana jest tablica Adaptacyjna tablica jest na bieżąco modyfikowana w czasie kompresji PODSTAWY IT KOMPRESJA DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 70

Kompresja danych w KE Dynamiczna i adaptacyjna wersja VLE: raczej nie stosowane, ze względu na pamięciochłonność (szczególnie RAM) RLE: krótki kod programu zastosowanie wyłącznie do danych z powtarzającą się zawartością Statyczna wersja VLE: dobry gdy znany jest zbiór używanych znaków oraz częstość występowania poszczególnych znaków (np. książka telefoniczna na karcie SIM) Kompresja i dekompresja powinny być transparentne dla użytkownika PODSTAWY IT KOMPRESJA DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 71

PODSTAWY ZABEZPIECZEŃ Kryptologia, funkcje haszujące, liczby losowe, uwierzytelnianie dr inż. dr Marek inż. Marek Mika, Mika, Instytut Instytut Informatyki, Politechnika Poznańska, 2011 2011 72

Plan Podstawy bezpieczeństwa kryptologia funkcje haszujące liczby losowe uwierzytelnianie dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 73

Kryptologia Kryptologia dzieli się na kryptografię i kryptoanalizę Kryptografia wiedza o metodach szyfrowania i deszyfrowania danych Kryptoanaliza wiedza o łamaniu metod kryptograficznych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 74

Cele kryptografii Poufność tylko właściwy odbiorca może odczytać dane Autentyczność odbiorca ma pewność, że komunikat pochodzi od właściwego nadawcy Integralność odbiorca jest w stanie zweryfikować czy otrzymany komunikat nie był modyfikowany w trakcie transmisji Niezaprzeczalność siła wiążąca, strona biorąca udział w wymianie nie może się wyprzeć swojego w niej udziału Cele są niezależne i stanowią odrębne wymagania względem systemu dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 75

Symbolika dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 76

Notacja dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 77

Podstawowe informacje o kryptografii W uproszczeniu technologia szyfrowania ma do czynienia z 3 typami danych: tekst jawny szyfrogram klucze Współczesne algorytmy kryptograficzne są zorientowane blokowo (mogą przetwarzać tylko pakiety danych o określonym rozmiarze) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 78

Podstawowe zasady kryptografii Zasada Kerckchoffsa całe bezpieczeństwo systemu powinno zależeć od poufności klucza, a nie od poufności zastosowanej metody szyfrowania Zasada bezpieczeństwa przez niezrozumienie (security through obscurity) polega na ukrywaniu szczegółów dotyczących, algorytmów, implementacji, formatów i protokołów dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 79

Zasady kryptografii w praktyce Wiele algorytmów szyfrujących stosowanych w sektorze cywilnym zostało upublicznionych a część z nich ustandaryzowano Wbrew pozorom nadal wiele systemów stosuje praktykę ukrywania szczegółów stosowanej metody praktyka pokazuje, że systemy takie są szynko łamane Możliwe jest łączenie obydwu zasad, wtedy ukrywanie szczegółów metody pełni rolę dodatkowego zabezpieczenia Błędnym okazuje się przyjęcie założenia, że współczesny sprzęt nie jest w stanie złamać szyfru dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 80

Algorytmy kryptograficzne Dwa typy: symetryczne ten sam klucz używany do szyfrowania i deszyfrowania asymetryczne szyfrowanie i deszyfrowanie odbywają się przy zastosowaniu różnych kluczy Główny parametr to tzw. rozmiar przestrzeni kluczy (im większy tym lepiej) Główne wymaganie wobec algorytmu szyfrującego to niezależność czasu przetwarzania od klucza, tekstu jawnego i szyfrogramu dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 81

Podział algorytmów kryptograficznych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 82

Kryptoanaliza bezpieczeństwo systemu System teoretycznie bezpieczny system, którego nie da się złamać dysponując nawet nieograniczonym czasem i nieograniczonymi środkami System praktycznie bezpieczny system, którego nie da się złamać w określonym czasie przy użyciu ograniczonych środków dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 83

Szkodliwe działania intruza dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 84

Typy ataków kryptoanlitycznych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 85

Ataki kryptoanalityczne ciphertext-only (atak ze znanym szyfrogramem) kryptoanalityk ma do dyspozycji jedynie szyfrogram i na jego podstawie chce odnaleźć klucz (dobre współczesne szyfry są odporne na tego rodzaju ataki). known-plaintext (atak ze znanym tekstem jawnym) kryptoanalityk ma do dyspozycji tekst jawny i odpowiadający mu tekst zaszyfrowany (może to być jedna lub wiele takich par). chosen-plaintext (atak z wybranym tekstem jawnym), kryptoanalityk może wybrać dowolny tekst jawny i poznać (także wielokrotnie) odpowiadający mu szyfrogram klucz można odkryć eksperymentalnie chosen-ciphertext (atak z wybranym szyfrogramem), kryptoanalityk może wybrać szyfrogram i zdobyć odpowiadający mu tekst jawny atak brutalny (brut-force) dla znanej pary tekst jawnyszyfrogram sprawdza się kolejne klucze (statystycznie atak taki wymaga przejrzenie połowy przestrzeni kluczy) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 86

Algorytmy symetryczne DES AES IDEA COMP 128 Milenage TDES dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 87

Podstawowy mechanizm działania symetrycznego algorytmu kryptograficznego dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 88

DES DEA Data Encryption Algorithm Najbardziej znany najpowszechniej stosowany algorytm symetryczny Opracowany przez IBM przy współpracy z US NBS (National Bureau of Standards Opublikowany w 1977 jako FIPS 46 standard Standard opisujący DEA jest powszechnie znany jako Data Encryption Standard (DES) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 89

Zasada działania algorytmu DES dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 90

Confusion i diffusion Dwie reguły: confusion i diffusion Confusion statystyki szyfrogramu powinny wpływać na statystyki tekstu jawnego w taki sposób, że jest to zbyt złożone, by atakujący mógł osiągnąć z tego jakieś korzyści Diffusion każdy bit tekstu jawnego i każdy bit klucza powinny wpływać na tyle bitów szyfrogramu na ile tylko się da dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 91

Cechy algorytmu DES Stosuje zasadę Kerckchoffsa Symetryczny Blokowy Nie poszerza szyfrowanego zbioru danych (rozmiar tekstu jawnego i szyfrogramu identyczne) Rozmiar bloku 64 bity Rozmiar klucza 64 bity (obecnie używane 56) 8 bitów parzystości na blok (od lewej 8,16, 24,,64 bit) Parzystość parzysta Przestrzeń kluczy 2 56 7,2 10 16 za mała jak na możliwości współczesnego sprzętu dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 92

Zastosowanie algorytmu DES Był projektowany z myślą o implementacji sprzętowej Wiele obecnych mikrokontrolerów jest wyposażonych w sprzętowy układ DES Implementacja software owa w assemblerze zajmuje 1-2kB Prędkość działania implementacji software owej raczej niska Klucze mogą być generowane generatorem liczb losowych powinny być porównane z 4 słabymi i 12 prawie słabymi kluczami obliczane są bity parzystości wynik staje się kluczem DES dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 93

Typowe czasy obliczeń dla DES dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 94

Algorytm AES 1997 US NIST (National Institute of Standard and Technology) ogłasza konkurs na następcę DES-a 1998 wybór 15 kandydatów i poddanie ich ocenie przez US NSA (National Security Agency), instytucje badawcze, ekspertów i inne zainteresowane strony 2000 ogłoszenie zwycięzcy algorytm nazwany wcześniej Rijdael opracowany prze belgijskich kryptografów (Daemen i Rijmen) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 95

Cechy algorytmu AES Symetryczny Blokowy Rozmiar bloku 128 bitów Rozmiar klucza: 128 bitów AES-128 192 bity AES-192 256 bitów AES-256 Odpowiedni do implementacji sprzętowej Łatwa implementacja software owa Rozmiar programu ok. 4kB Przestrzeń kluczy 2 128 3,4 10 38 Wolna licencja, darmowy standard FIPS 197 Użyteczny czas życia ok.20 lat dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 96

Typowe czasy dla AES-128 dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 97

IDEA IDEA International Data Encryption Algorithm Opracowany przez Lai i Massey a 1990 opublikowany jako PES (Proposed Encryption Standard) 1991 poprawiona wersja IPES (Improved PES) Przemianowany na IDEA W pełni spełniona zasada Kerckchoffsa Patent dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 98

Cechy algorytmu IDEA Blokowy Rozmiar bloku 64 bity Rozmiar klucza128 bitów Przestrzeń kluczy 2 128 3,4 10 38 Strukturalnie kompatybilny z DES i Triple DES (może być używany w ich miejsce, ale nie może odszyfrować szyfrogramu zaszyfrowanego przez któryś z tych algorytmów) Rozmiar kodu programu ok. 1kB Nieliczne implementacje w KE Czas obliczeń trochę mniejszy niż dla DES dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 99

Czasy obliczeń algorytmu IDEA dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 100

COMP 128 Pierwotnie poufny Złamany w 1998 po opublikowaniu szczegółów struktury Działa w 9 rundach i ma w jądrze funkcję haszującą generującą 128 bitową wartość haszującą z 256 bitowej wartości wejściowej COMP 128-2 i COMP 128-3 następcy COMP 128 bez słabych stron swego poprzednika COMP 128-4 (Milenage) następca COMP 128 oparty na AES dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 101

Milenage Symetryczny Przeznaczony dla funkcji kryptograficznych f1 i f5 USIM Jądro używa AES Standard TS 35.206 Oficjalny algorytm projektu 3GPP używany przez wielu operatorów sieciowych w operacjach czasu rzeczywistego dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 102

Tryby operacyjne algorytmów szyfrowania blokowego Wg ISO 8372 każdy blokowy algorytm szyfrujący może być użyty w jednym z 4 trybów: CFB i OFB odpowiednie dla łańcuchów tekstowych nie mających struktury blokowej (nie stosowane w KE) ECB i CBC oparte na blokach 8 bajtowych (stosowane w KE) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 103

Tryby ECB ECB Electronic CodeBook Podstawowy tryb operacyjny DES-a 8 bajtowe bloki szyfrowane osobno tym samym kluczem dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 104

Tryby CBC CBC Cipher Block Chaining Poszczególne bloki wieloblokowego łańcucha danych łączone podczas szyfrowania operacją XOR Bloki wzajemnie od siebie zależą, możliwa jest więc detekcja manipulacji zawartości dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 105

Wielokrotne szyfrowanie Może być używane dla każdego blokowego algorytmu szyfrującego Algorytm szyfrujący nie może być grupą (nie zwiększa się przestrzeń kluczy dwukrotne szyfrowanie dwoma różnymi kluczami może być osiągnięte jednokrotnym szyfrowaniem trzecim kluczem) Dwukrotne szyfrowanie łatwe do złamania metodą meet-in-the-middle dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 106

Meet-in-the-middle Trzeba znać co najmniej jedną parę tekst jawnyszyfrogram Tekst jawny jest szyfrowany wszystkimi możliwymi wersjami pierwszego klucza, a szyfrogram jest deszyfrowany wszystkimi możliwymi wersjami drugiego klucza Porównywane są wygenerowane zbiory wynikowe, jeśli jest zgodność, to prawdopodobnie znaleziono parę kluczy, ale potrzeba to jeszcze potwierdzić dla innej pary tekstów dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 107

Triple DES TDES, DES-3, 3-DES, 2-DES, TDEA Nie da się go złamać atakami meet-in-the-middle Stosowany w sektorze płatniczym i w standardach dla tego sektora (np. EMV) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 108

Opcje kluczy dla Triple DES 3 możliwości wszystkie 3 klucze niezależne pierwszy i drugi niezależne, trzeci identyczny z pierwszym wszystkie 3 identyczne (wtedy to samo co DES) nie zalecane Druga operacja odwrotna do pierwszej i trzeciej (gwarancja zgodności z DES i wzmocnienie wersji z dwoma kluczami) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 109

Tryby pracy Triple DES TDES w wewnętrznym trybie CBC wszystkie trzy operacje wykonywane bezpośrednio na każdym bloku tekstu jawnego TDES w zewnętrznym trybie CBC operacje wykonywane po kolei na całym pliku dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 110

Podstawowe parametry symetrycznych algorytmów kryptograficznych stosowanych w KE dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 111

Algorytmy asymetryczne 1976 Koncepcja Diffiego i Hellmana by użyć jednego klucza (publicznego) do szyfrowania i drugiego (prywatny) do deszyfrowania Nie ma problemu z poufnym przekazywaniem klucza symetrycznego Możliwość użycia w do tej pory niemożliwych zastosowaniach (np. weryfikacja podpisu elektronicznego) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 112

Mechanizm klucza asymetrycznego dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 113

Algorytmy asymetryczne stosowane w KE RSA DSS EC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 114

Algorytm RSA RSA Rivest, Shamir, Adleman (1978) Najbardziej znany algorytm asymetryczny Prosta reguła oparta na arytmetyce wielkich liczb rzeczywistych Obydwa klucze generowane na podstawie bardzo dużych liczb pierwszych Przed szyfrowaniem tekst jawny należy uzupełnić (padding) do właściwego rozmiaru bloku dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 115

Mechanizm algorytmu RSA szyfrowanie: deszyfrowanie: y = x e mod n x = y d mod n y szyfrogram x tekst jawny e klucz publiczny d klucz prywatny n dzielnik modulo (publiczny) n=p q p, q liczby pierwsze (tajne) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 116

Bezpieczeństwo algorytmu RSA Szyfrogramu nie można zdeszyfrować bez znajomości klucza prywatnego Faktoryzacja dzielnika modulo bardzo trudna dla dużych liczb brak efektywnych algorytmów Udana faktoryzacja umożliwia wyznaczenie całego klucza prywatnego Długość klucza prywatnego ma istotny wpływ na bezpieczeństwo: stosowane są klucze 128 bajtowe i 256 bajtowe (1024 bity i 2048 bitów) Zaleca się stosować klucze równej długości, ale w niektórych zastosowaniach warto używać krótkiego klucza publicznego Złamano już klucz 768-bitowy (2009 klaster komputerów) Potencjalnym zagrożeniem będzie komputer kwantowy dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 117

Typowe wartości klucza publicznego dla algorytmu RSA Wartość dziesiętna Wartość potęgowa Wartość binarna Uwagi 2 2 1 10 Jedyna parzysta liczba pierwsza; Stosowana w algorytmie Rabina 3 2 1 + 1 11 Najmniejsza nieparzysta liczba pierwsza 17 2 4 + 1 1 0001 Druga liczba Fermata 65 537 2 16 + 1 1 0000 0000 0000 0001 Czwarta liczba Fermata dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 118

Typowe rozmiary klucza RSA i charakterystyczne wartości Rozmiar klucza bity bajty Max liczba cyfr Rozmiar przestrzeni liczb (RP) Liczba liczb pierwszych (LP) LP/RP 8 1 3 256 54 4.7 40 5 13 1.1 10 12 3.9 10 10 28 512 64 155 1.3 10 154 3.8 10 151 342 768 96 232 1.6 10 231 2.9 10 228 552 1024 128 309 1.8 10 308 2.5 10 305 720 2048 256 617 3.2 10 616 2.3 10 613 1 391 4096 512 1 234 1.0 10 1 233 2.5 10 12 290 4 000 dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 119

Nakłady obliczeniowe algorytmu RSA Proporcjonalne do długości klucza (zależność wykładnicza) Potęgowanie dużych liczb całkowitych jest czasochłonne i zajmuje dużo pamięci RAM Usprawnienia: algorytm szybkiego potęgowania dla potęgowania modulo chińskie twierdzenie o resztach 8 bitowe procesory KE (bez koprocesora) nie są w stanie efektywnie wykonać algorytmu RSA Rozmiar kodu dla sprzętowo wspomaganego RSA z kluczem 1024 bitowym to ok. 1kB dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 120

Przykładowe czasy obliczeń RSA czasy szyfrowania i deszyfrowania RSA w funkcji długości klucza rzeczywiste czasy mogą znacznie odbiegać od zaprezentowanych w zależności od konfiguracji sprzętowej, struktury klucza, zastosowania Chińskiego twierdzenia o resztach (podpis cyfrowy) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 121

RSA pozostałe informacje Algorytmy RSA są skalowalne - nie są sztywno związane z jednym rozmiarem klucza, wydłużenie klucza nie wymaga zmian w programie Dla obecnie dostępnych algorytmów faktoryzacji obowiązuje zasada, że wydłużenie klucza o 15 bitów podwaja nakłady obliczeniowe algorytmów faktoryzacji RSA mimo dużej skuteczności rzadko używany do szyfrowania ze względu na czas obliczeń, stosowany głównie w podpisach cyfrowych W przypadku zastosowań w obszarze KE główną wadą jest ilość pamięci potrzebna do zapamiętania klucza Złożoność procesu generowania klucza jest problemem w niektórych przypadkach dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 122

Przykład generowania klucza RSA Wybierz dwie liczby pierwsze [np. p=3, q=11] Oblicz publiczny dzielnik modulo n=p q [n=3 11] Oblicz wartość z=(p-1) (q-1) [z=(3-1) (11-1)=2 10=20] Wyznacz klucz publiczny e spełniający warunki: e < z NWD(z,e)=1 [3,7,9,11,13,17,19] jeśli kilka liczb spełnia te warunki, to wybierz dowolną z nich [np. e=7] Wyznacz klucz prywatny spełniający warunek (d e) mod 2=1 [np. d=3] dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 123

RSA generowanie kluczy W praktyce generowanie kluczy jest bardziej skomplikowane: zastosowanie metody Sita Eratostenesa niepraktyczne dla kluczy o rozmiarze 1024 bitów (liczby 309 cyfrowe) aby określić prawdopodobieństwo, że liczba jest liczbą pierwszą stosowane są testy probabilistyczne (np. Millera-Rabina lub Solovaya-Strassena) aby przyspieszyć działanie najpierw sprawdza się podzielność wygenerowanej liczby przez małe liczby pierwsze (2,3,5 i 7), dopiero potem stosuje się testy czas potrzebny na wygenerowanie klucza nie jest stały ale ma rozkład w przybliżeniu normalny dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 124

Algorytm generowania klucza RSA z testem Millera- Rabina dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 125

Rozkład czasów generowania kluczy dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 126

Typowe czasy generowania kluczy Czasy potrzebne do wygenerowania pary kluczy publiczny/prywatny dla asymetrycznego algorytmu RSA 3 typowe czasy: średni, potrzebny do wygenerowania 95% wszystkich par i potrzebny do wygenerowania 99% wszystkich par PC z zegarem 2 GHz jest około 7 razy szybszy dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 127

Algorytm DSS 1991 draft algorytmu kryptograficznego do podpisu komunikatów opracowany przez US National Institute of Standards and Technology (NIST) Obecnie standard FIPS 186 Sam algorytm nosi nazwę DSA (Digital Signature Algorithm) a definiujący go standard DSS (Digital Signature Standard) DSA jest modyfikacją algorytmu El Gamala DSA drugi po RSA pod względem popularności algorytm podpisu cyfrowego dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 128

Bezpieczeństwo algorytmu DSS U podstaw leży problem znajdowania logarytmu dyskretnego: łatwo wyznaczyć y=a x mod p odwrotne działanie, czyli obliczenie x dla znanych y, a oraz p wymaga bardzo dużych nakładów obliczeniowych W przypadku zastosowań do podpisu cyfrowego przed zastosowaniem algorytmu DSS komunikat należy skrócić do wymaganej długości algorytmem haszującym SHA-1, generującym 160 bitową wartość z komunikatu o dowolnej długości W praktyce RSA jest jednak dużo częściej stosowany dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 129

Kryptografia krzywych eliptycznych Trzecie podejście do asymetrycznych algorytmów kryptograficznych 1985 Victor Miller i Neal Koblitz niezależnie proponują zastosowanie krzywych eliptycznych w konstrukcji algorytmów kryptograficznych ECC Elliptic Curve Cryptosystems systemy kryptograficzne, których działanie opiera się na zastosowaniu krzywych eliptycznych Krzywe eliptyczne krzywe planarne określone wzorem y 2 =x 3 +ax+b w skończonej przestrzeni trójwymiarowej Standard IEEE 1363 i norma ISO/IEC 15946 dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 130

Kryptografia krzywych eliptycznych - cechy Mniejsze wymagania obliczeniowe niż RSA Szacuje się, że system ECC z kluczem 160 bitowym jest tak samo bezpieczny jak RSA z kluczem 1024 (256/2048 i 320/5120) Moc kryptograficzna i względnie krótki klucz zaletą w zastosowaniach KE Koprocesory mikrokontrolerów KE wspierają ECC, ale niskie wymagania umożliwiają zastosowanie również w kartach bez koprocesora Ograniczona liczba wdrożeń wynika z: konieczności modyfikowania istniejących systemów zaprojektowanych do współpracy z RSA większego stopnia trudności od strony obliczeń matematycznych niż RSA dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 131

Przykładowe czasy obliczeń ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 132

Rozmiary klucza w asymetrycznych algorytmach kryptograficznych stosowanych w KE dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 133

Padding Proces powiększania zbiorów danych do rozmiaru odpowiadającego całkowitej wielokrotności rozmiaru bloku Stosowany w kryptografii w algorytmach blokowych Problem z deszyfrowaniem (nie wiadomo, gdzie granica pomiędzy tekstem jawnym a paddingiem) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 134

Rozwiązania problemu deszyfrowania danych uzupełnionych paddingiem Na początku pliku dodać informację o długości komunikatu wady: wydłużony komunikat, nadmiarowe w przypadku danych, które nie muszą być szyfrowane Wiele innych podejść Algorytm wg ISO/IEC 9797 pierwszy bajt po danych użytkownika ustawiany na 80 pozostałe na 00 odbiorca czyta od końca zdeszyfrowany komunikat w poszukiwaniu bajta o wartości 80 i następnie odcina część z paddingiem dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 135

Padding wg ISO/IEC 9797 Method 2 Odbiorca musi wiedzieć czy padding jest stosowany zawsze, czy tylko wtedy gdy niezbędny Aby uniknąć nieporozumień często stosowana jest reguła mówiąca, że padding stosowany jest zawsze wadą takiego rozwiązania jest dodawanie w niektórych sytuacjach jednego nadmiarowego bloku dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 136

Różne metody paddingu stosowane w KE i ich charakterystyki ISO/IEC 9797 Method 1: dane n 00 w generowaniu kodu MAC Method 2: dane 80 n 00 w szyfrowaniu danych ISO/IEC 9796-2 60 n 00 01 dane BC w podpisie cyfrowym 60 n 00 01 RND dane BC w podpisie cyfrowym, gdy potrzeba zindywidualizowania danych PKCS#1 Typ 1: 00 01 n FF 00 dane w podpisie cyfrowym Typ 2: 00 02 n RND 00 dane w szyfrowaniu i generowaniu kodu MAC PKCS#5 dla DES i TripleDES ISO 14888 tylko przy szyfrowaniu dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 137

MAC i kryptograficzne sumy kontrolne MAC Message Authentication Code Autentyczność komunikatu ważniejsza niż jego poufność (autentyczny = niezmieniony, niezmanipulowany) MAC jest obliczany dla danego komunikatu i dodawany na jego końcu; Odbiorca sam oblicza MAC dla odebranego komunikatu i porównuje z MAC-iem otrzymanym od nadawcy; Jeśli są zgodne, to otrzymany komunikat jest poprawnym komunikatem dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 138

Mechanizm wyznaczania MAC MAC Message Authentication Code Autentyczność komunikatu ważniejsza niż jego poufność (autentyczny = niezmieniony, niezmanipulowany) MAC jest obliczany dla danego komunikatu i dodawany na jego końcu; Odbiorca sam oblicza MAC dla odebranego komunikatu i porównuje z MAC-iem otrzymanym od nadawcy; Jeśli są zgodne, to otrzymany komunikat jest poprawnym komunikatem dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 139

Mechanizm wyznaczania MAC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 140

MAC informacje różne Liczony jest przy użyciu poufnego klucza, który musi być znany obydwu stronom Jest pewnego rodzaju kodem EDC Czasami określany mianem CCS (cryptographic checksum) lub Signature Pojecie MAC stosowane w transmisji danych; CCS w innych zastosowaniach MAC może być wyznaczany symetrycznymi algorytmami kryptograficznymi (Triple DES lub AES) szyfrowanie odbywa się c trybie CBC (bloki zależą od siebie) a ostatni blok (lub jego część) to właśnie MAC (oryginalny tekst komunikatu pozostaje w formie jawnej) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 141

Warunki stosowania DES do generowania MAC Jeśli długość komunikatu nie jest wielokrotnością 8 bajtów należy zastosować padding W większości przypadków padding to wartości 00 zgodnie z ANSI X.99 Konieczne uzgodnienie długości i położenia kodu MAC (najczęściej są to 4 najbardziej znaczące bajty ostatniego bloku po szyfrowaniu CBC) Bajty paddingu nie są transmitowane (tylko oryginalna wiadomość i kod MAC) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 142

Plan Podstawy bezpieczeństwa kryptologia funkcje haszujące liczby losowe uwierzytelnianie dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 143

Funkcje haszujące Motywacja: obliczanie podpisu cyfrowego czasochłonne duże pliki wymagają wielu podpisów Rozwiązanie: dokument jest kompresowany do krótszej wersji (o określonej długości) i dopiero ta skompresowana wersja jest podpisywana kompresja nie musi być odwracalna, ponieważ podpis można wyznaczyć ponownie z oryginalnego dokumentu tzw. jednokierunkowe funkcje haszujące dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 144

Podstawowe funkcje haszujące stosowane w obszarze KE Funkcje haszujące bez klucza: MD5 SHA-1 SHA-256 SHA-512 Funkcje haszujące z kluczem HMAC RIPEMD 160 dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 145

Mechanizm algorytmów haszujących z kluczem i bez klucza dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 146

Zastosowanie funkcji haszujących w KE Jednokierunkowe funkcje haszujące funkcje obliczające wartość o stałej długości z dokumentu o zmiennej długości; wartość ta reprezentuje oryginalną zawartość dokumentu w postaci skompresowanej, ale nie może być użyta do odtworzenia oryginalnego dokumentu W KE stosowane do wyznaczenia wartości wejściowej do wygenerowania podpisu cyfrowego oraz przy generowaniu liczb pseudolosowych Padding niezbędny, gdy rozmiar pliku nie jest całkowitą wielokrotnością rozmiaru bloku Wartość funkcji obliczana w terminalu lub komputerze podłączonym do terminala (wolna transmisja danych z/do karty) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 147

Cechy dobrej funkcji haszującej Wynik powinien mieć stałą długość Duża przepustowość Łatwe wyliczanie wartości, ale bardzo trudne lub wręcz niemożliwe odtworzenie oryginalnego dokumentu Musi być odporna na kolizje (trudno znaleźć dokument, który będzie prowadził do tej samej wartości dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 148

Ataki na algorytmy haszujące Dwie formy ataku: Wykorzystanie kolizji znalezienie pliku o takiej samej wartości i podmiana pliku Przygotowanie dwóch dokumentów o identycznej wartości haszującej, ale różnej zawartości; Ten sam podpis może być użyty w obydwu przypadkach i trudno dowieść, który z dokumentów był podpisany W oparciu o tzw. paradoks urodzin druga metoda jest skuteczniejsza (183:23) Wartość funkcji haszującej musi być na tyle duża, aby zabezpieczyć przed obiema formami ataku (obecnie za bezpieczną uznaje się wartość 160 bitową) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 149

Funkcje haszujące stosowane w KE Istnieje wiele funkcji haszujących, sporo z nich jest sformalizowanych w formie standardów, które są dość często poprawiane Przegląd funkcji haszujących: ISO/IEC 10118-2 funkcja oparta na algorytmie szyfrującym z n-bitowym blokiem (AES), wartość może być w takim przypadku n lub 2n długa 128,160,256,384,512 bitów MD5 (Message Digest 5) 1990/91, Rivest, następca algorytmu MD4, cały czas w użyciu ale nie uznawany za bezpieczny (wykryto kolizyjność) 128 bitów dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 150

Przegląd funkcji haszujących c.d. SHA (Secure Hash Algorithm) 1992, NIST, opracowana dla DSS, po wykryciu pewnych słabości zmodyfikowana, poprawiona wersja od 1995 znana jako SHA-1 (standard FIPS 180-1) 128 bitów Rodzina funkcji haszujących SHA-2 NIST, SHA-224, SHA-256, SHA-384, SHA-512 liczba po nazwie oznacza długość; do tej pory uważane za bezpieczne ponieważ nie stwierdzono żadnej formy udanego ataku HMAC 1996, RFC 2104 funkcja haszująca z kluczem (wartość liczona na podstawie dokumentu wejściowego i klucza); stosowane do obliczeń kodu MAC np. HMAC- MD5 (128 bitów) i HMAC-SHA-1 (160 bitów) RIPEMD-160 160 bitów dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 151

Plan Podstawy bezpieczeństwa kryptologia funkcje haszujące liczby losowe uwierzytelnianie dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 152

Liczby losowe w KE Zastosowania w KE: w uwierzytelnianiu do zapewnienia unikalności sesji w paddingu przy szyfrowaniu danych jako liczniki ciągów wysyłania Długość liczb losowych w tych zastosowaniach 2 do 8 bajtów Maksymalna długość jest konsekwencją rozmiaru bloku w algorytmach DES lub AES W tych zastosowaniach potrzebne są liczby losowe: których nie da się przewidzieć nie można na nie wpłynąć z zewnątrz Rozwiązanie generator sprzętowy TRNG (True Random Number Generator) w pełni odporny na czynniki zewnętrzne (temperatura, napięcie zasilania, promieniowanie) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 153

Sprzętowy generator liczb losowych W mikrokontrolerach karty stosowane są układy z rejestrem przesuwnym z liniowym sprzężeniem zwrotnym (LSFR) napędzane oscylatorem sterowanym napięciowo Zaprojektowanie i wykonanie sprzętowego TRNG jest bardzo trudnym zadaniem Projektanci stosują więc rozwiązania sprzętowo-software owe, w których wynik wygenerowany przez sprzętowy RNG jest traktowany jako wejście dla software owego generatora liczb pseudolosowych, który spełnia wymagane kryteria jakości; W połączeniu mogą być traktowane jako TRNG Ważne aby wszystkie karty z danej serii produkcyjnej generowały różne sekwencje liczb losowych Rozwiązanie na poziomie systemu operacyjnego karty do pamięci kolejnych kart wpisuje się wygenerowane liczby pseudolosowe, traktowane jako ziarno generatora dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 154

Generowanie liczb losowych Ograniczenia pamięciowe oraz czasowe znacznie ograniczają liczbę możliwych do zastosowania algorytmów Generator powinien spełniać następujące warunki: nie może generować tych samych liczb w każdej nowej sesji nie może działać w nieskończonej pętli kryterium lawinowe zmiana jednego bitu na wejściu powoduje zmianę co najmniej połowy bitów na wyjściu dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 155

Zasada działania silnego generatora liczb pseudolosowych trzy etapy: inicjowanie, sekwencjonowanie stanów, generowanie liczb losowych idealną wartością początkową (ziarnem generatora) jest liczba losowa pochodząca z fizycznego generatora liczb losowych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 156

Przykładowa architektura generatora liczb pseudolosowych dla KE generator wykorzystuje blokowy symetryczny algorytm kryptograficzny (np. AES) z blokiem o rozmiarze 8 bajtów i sprzężeniem zwrotnym wartość odczytana z bufora cyklicznego jest szyfrowana kluczem karty, wynikowy szyfrogram jest liczbą 8 bajtową, wartość ta jest sumowana XOR z poprzednim tekstem jawnym i podawana na wejście bufora cyklicznego, zapisywana w pamięci trwałej i generator przechodzi do następnej wartości dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 157

Cechy w/w implementacji Klucz karty i zawartość bufora cyklicznego zapisywane w ostatniej fazie produkcji Jeśli w buforze cyklicznym zapisane jest 12 liczb 8 bajtowych, to: wzrasta poziom bezpieczeństwa (większa losowość) wzrasta żywotność generatora (12 krotna wartość maksymalnej liczby zapisów pamięci EEPROM) Czas generowania liczby losowej dla KE z 3,5MHz zegarem: wyczyszczenie i zapisanie pamięci EEPROM ok. 14 ms (2 2 3,5 ms) algorytm DES ok. 17 ms reszta pomijalna razem ok. 31 ms Czas wykonania można skrócić o połowę przy sprzętowej implementacji AES-a dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 158

Inny przykład architektury generatora liczb pseudolosowych szybszy od poprzedniego (tylko jeden cykl zapisu EEPROM w każdej sesji tuż po resecie a dalej używana wyłącznie pamięć RAM) zaleta: szybkość wady: używanie pamięci RAM i niezbyt dobra statystyczna jakość generatora jakość wystarczająca do zastosowań w uwierzytelnianiu typu challenge-response wystarczająco długie cykle i nie możliwe powielanie dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 159

Standardy Między innymi: X 9.17, FIPS 186, Internet RFC 1750 Standard FIPS 140-2 zaleca sprawdzenie wbudowanych generatorów testami statystycznymi za pośrednictwem modułów bezpieczeństwa wyłącznie pozytywne przejście wszystkich testów pozwala na dalsze używanie generatora Większość obecnych systemów KE nie ma takiej możliwości zakłada się, że generatory liczb pseudolosowych ze względu na swoją deterministyczną naturę są wystarczająco wydajne dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 160

Testowanie liczb losowych Zaimplementowany generator należy przetestować: test matematyczny przy użyciu metod statystycznych dla liczb 8 bajtowych należy wygenerować 10 000 100 000 liczb i poddać je analizie Powinno być spełnione twierdzenie Bernoulliego o niezależności zdarzeń Okresowość generatora powinna być jak najdłuższa (najlepiej jeśli przekracza długość życia generatora) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 161

Przegląd metod testowania liczb losowych Najprostszy test zliczenie liczby wystąpień poszczególnych bajtów Prezentacja na wykresie Każda liczba 1 lub 2 bajtowa powinna wystąpić mniej więcej taką samą liczbę razy Jeśli jakaś liczba występuje częściej niż inne, to jest to potencjalne miejsce ataku Test nie sprawdza porządku (wygenerowanie liczb po kolei daje idealny rozkład, ale jest bardzo łatwe do złamania) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 162

Przegląd metod testowania liczb losowych c.d. Inny prosty test skompresować plik z wygenerowanymi danymi im niższy stopień kompresji, tym lepiej Test 2 liczone są wartość średnia i odchylenie standardowe, lepszy niż dwa poprzednie, ale również nie sprawdza porządku Serial test do określenia interwałów pomiędzy wzorcami występującymi w sekwencji liczb losowych Gap test do określenia interwałów wolnych od wzorców Poker test do określenia rozkładu 2 dla wzorców i/lub ciągów wolnych od wzorców Coupon collector test - do określenia rozkładu 2 dla ciągów wolnych od wzorców dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 163

Przegląd metod testowania liczb losowych c.d. Spectral test rozkład liczb sąsiadujących w ciągu Two-dimensional spectral test wykres na osi poziomej wygenerowana liczba na osi pionowej następna wygenerowana liczba Three-dimensional spectral test dochodzi trzecia oś (następnik następnika) n- dimensional test w podobny sposób jak poprzednie, ale nie da się przedstawić na wykresie dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 164

Two-dimensional spectral test dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 165

Plan Podstawy bezpieczeństwa kryptologia funkcje haszujące liczby losowe uwierzytelnianie dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 166

Uwierzytelnianie Proces, który ma udowodnić, czy osoba lub jednostka są tym, czym twierdzą, że są Uwierzytelnianie może odbyć się na podstawie: czynnika posiadania czynnika wiedzy cech biometrycznych Uwierzytelnianie dwuczynnikowe i trzyczynnikowe oznacza, że sprawdzane będą dwa lub trzy z wymienionych czynników Przykład - Osoba posiada paszport zna klucz poufny cechuje się odciskami palców dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 167

Podział metod uwierzytelniania Ze względu na zastosowania: uwierzytelnianie dotyczy potwierdzenia autentyczności identyfikacja ma na celu rozpoznanie obiektu autoryzacja dotyczy sprawdzenia, czy dana osoba może wykonać odpowiednią operację Ze względu na dane: statyczne zawsze na podstawie tych samych danych dynamiczne każda sesja wymaga innych danych Ze względu na wynik: jednostronne potwierdza autentyczność co najmniej jednej strony dwustronne potwierdza autentyczność obydwu stron dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 168

Uwierzytelnianie w KE Terminal (lub karta) sprawdza autentyczność karty (terminala) Metody oparte na algorytmach kompresji dzielą się na symetryczne i asymetryczne Prawie wyłącznie stosowane są algorytmy symetryczne (asymetryczne są zbyt wolne) Norma ISO/IEC 9798 Metoda challenge-response stosowana w uwierzytelnianiu dynamicznym KE polega na: zadaniu losowo wybranego pytania drugiej ze stron (challenge) obliczeniu odpowiedzi przez drugą stronę i zwrócenie jej stronie zadającej pytanie (response) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 169

Jednostronne uwierzytelnianie symetryczne Terminal generuje liczbę losową i wysyła ją do karty (challenge) Karta szyfruje otrzymaną liczbę przy użyciu klucza (znanego obu stronom) Karta zwraca do terminala wynik szyfrowania (response) Terminal deszyfruje odpowiedź przy pomocy klucza i porównuje z wartością wysłaną do karty Jeśli liczby są zgodne, to znaczy, że karta zna poufny klucz i jest autentyczna dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 170

Bezpieczeństwo uwierzytelniania jednostronnego Poufność zapewniona wspólnym tajnym kluczem Nie da się zastosować zapisu podsłuchanej transmisji (za każdym razem inna liczba losowa) jedynym atakiem, który może być skuteczny, jest systematyczne poszukiwanie tajnego klucza (np. atakiem siłowym) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 171

Jednostkowy klucz karty W przypadku gdy wszystkie karty w danym zastosowaniu mają ten sam klucz, to jego złamanie jest jednoznaczne z dyskredytacją całego systemu Przeciwdziałanie stosowanie jednostkowych kluczy kart Jednostkowy klucz karty zależy od jej unikalnego numeru (cecha jawna np. nr seryjny mikrokontrolera) i klucza głównego znanego tylko terminalowi (w praktyce część numeru seryjnego zaszyfrowana algorytmem TDES lub AES) Klucz główny musi być przechowywany bezpiecznie, ponieważ jego złamanie jest równoznaczne ze złamaniem całego systemu; jeśli to możliwe to powinien on być bezpowrotnie usunięty po wykryciu próby ataku dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 172

Dwustronne uwierzytelnianie symetryczne Podstawowa zasada działania jest równoznaczna dualnemu jednostronnemu uwierzytelnianiu symetrycznemu Dwustronne uwierzytelnianie można zastąpić dwoma jednostronnymi uwierzytelnieniami wykonanymi po jednym przez każdą ze stron Zalety podejścia dwustronnego w stosunku do podejścia jednostronnego: mniej czasu poświęconego na transmisję danych większe bezpieczeństwo (mniej danych do podsłuchania) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 173

Dwustronne uwierzytelnianie symetryczne zasada działania Terminal odczytuje numer karty Terminal wyznacza klucz uwierzytelniający karty Terminal pyta kartę o liczbę losową i jednocześnie generuje własną liczbę losową Terminal łączy obie liczby przez konkatenację i szyfruje otrzymaną liczbę kluczem uwierzytelniającym karty Terminal wysyła szyfrogram do karty Karta deszyfruje otrzymany blok danych Karta sprawdza czy zdeszyfrowana liczba losowa otrzymana od terminala jest identyczna z tą, którą wysłała do terminala Jeśli tak to terminal staje się wiarygodny dla karty Karta zastępuje miejscami liczby losowe i szyfruje poufnym kluczem Karta wysyła do terminala wynik szyfrowania Terminal deszyfruje otrzymany szyfrogram Terminal porównuje zdekodowaną liczbę losową z tą, którą wcześniej wysłał do karty Jeśli liczby są zgodne, to karta jest wiarygodna dla terminala Obie strony są dla siebie wiarygodne dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 174

Statyczne uwierzytelnianie asymetryczne Mniejsze bezpieczeństwo niż w przypadku uwierzytelniania dynamicznego (brak zabezpieczeń przed powtórzeniem podsłuchanej sesji) Stosowane wyłącznie jako uzupełniające sprawdzenie wiarygodności dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 175

Statyczne uwierzytelnianie asymetryczne - wady Motywacja: część mikrokontrolerów KE nie jest wyposażona w NPU do liczenia RSA dodatkowe uwierzytelnianie kluczem asymetrycznym zwiększa bezpieczeństwo (atakujący ma do złamania dwa algorytmy) prostota i ekonomiczność działania (weryfikacja odbywa się w terminalu, a dodatkowy układ nie podnosi znacząco kosztów systemu) dużo szybsze niż dynamiczne uwierzytelnianie asymetryczne (jedno szyfrowanie zamiast dwóch) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 176