Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie...

24
1/24 Elementy Elementy kryptografii kryptografii Marek Zachara Marek Zachara http://marek.zachara.name http://marek.zachara.name

Transcript of Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie...

Page 1: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

1/24

Elementy Elementy kryptografiikryptografii

Marek ZacharaMarek Zacharahttp://marek.zachara.namehttp://marek.zachara.name

Page 2: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

2/24

Kodowanie a szyfrowanie Kodowanie na poziomie semantycznym Szyfrowanie dotyczy zwykle liter lub bajtów Szyfrowanie ma za zadanie zamianę

komunikatu z postaci jawnej do szyfrogramu Przykład prostego szyfru: szyfr Cezara

(Prosty szyfr podstawieniowy)

Determinanta tajności informacji Poufny algorytm Poufny klucz

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 3: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

3/24

Problemy prostych szyfrów:  Częstotliwość 

występowania liter Analiza statystyczna

pozwala na odtworzenieklucza

Może być stosowanaw oparciu o literylub zespoły liter

a 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

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 4: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

4/24

Szyfrowanie symetryczne

Ala makota.

Ala makota.

Szyfrowanie Deszyfrowanie

Połączeniepubliczne

4XJ2OK3PWKQA

Wspólny klucz

Algorytmy tego typu nazywane są Secret­key, single­key, private shared key

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 5: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

5/24

Jakość szyfrowania Klucz generowany na bazie liczb losowych – 

istotna jakość generatora Dobry algorytm wymaga sprawdzenia 

wszystkich kluczy

Szyfr strumieniowy Szyfrowanie bajt po bajcie

Szyfr blokowy Komunikat dzielony na bloki o ustalonej 

wielkości (z reguły 64, 128, 256 bitów) Różne algorytmy konstruowania kolejnych 

bloków

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 6: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

6/24

Warianty szyfrowania blokowego

Electronic Codebook (ECB) mode encryption

block cipher encryption

Key

Ciphertext

block cipher encryption

Key

Ciphertext

block cipher encryption

Key

Ciphertext

Plaintext Plaintext Plaintext

Cipher Block Chaining (CBC) mode encryption

block cipher encryption

Key

Ciphertext

Plaintext

block cipher encryption

Key

Ciphertext

Plaintext

block cipher encryption

Key

Ciphertext

Plaintext

Initialization Vector (IV)

Cipher Feedback (CFB) mode encryption

block cipher encryption

Key

Ciphertext

Initialization Vector (IV)

block cipher encryption

Key

Ciphertext

block cipher encryption

Key

Ciphertext

PlaintextPlaintext Plaintext

Propagating Cipher Block Chaining (PCBC) mode encryption

block cipher encryption

Key

Ciphertext

Plaintext

block cipher encryption

Key

Ciphertext

Plaintext

block cipher encryption

Key

Ciphertext

Plaintext

Initialization Vector (IV)

Output Feedback (OFB) mode encryption

block cipher encryption

Key

Ciphertext

Initialization Vector (IV)

block cipher encryption

Key

Ciphertext

block cipher encryption

Key

Ciphertext

PlaintextPlaintext Plaintext

Counter (CTR) mode encryption

block cipher encryption

Nonce c59bcf35…

Counter 00000000

Key

Plaintext

Ciphertext

block cipher encryption

Nonce c59bcf35…

Counter 00000001

Key

Plaintext

Ciphertext

block cipher encryption

Nonce c59bcf35…

Counter 00000002

Key

Plaintext

Ciphertext

Source: https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 7: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

7/24

Wybrane algorytmy szyfrowania

DES: klucz 56 bit, blok 64 bit Historyczny, niewystarczająco bezpieczny

3DES: 3 x DES, 112­168 bit, blok 64bit nieefektywny obliczeniowo, 'ratunek' dla DES

AES: klucz 128­256 bit, blok 128bit współczesny standard

Twofish, Serpent Zbliżone do AES

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 8: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

8/24

Bezpieczeństwo kryptografii...

Source: https://xkcd.com/

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 9: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

9/24

Funkcje skrótu (hash, message digest) Na podstawie dowolnego ciągu znaków 

tworzy ciąg o stałej długości Rezultat jest nieodwracalny

football 37b4e2d8290...

flower 608f0b988db...

flowers 7d37c580f9c...

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 10: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

10/24

Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji

Popularne funkcje hashujące CRC32 – szybki, ale nie do ochrony danych MD5 – 128bit, powszechnie używany choć 

praktycznie mało bezpieczny MD6 – proponowany następca MD5 SHA1 – 160 bit, podatny na ataki oparte na 

kolizjach SHA2 – następca SHA1, aktualny standard

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 11: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

11/24

Tablice tęczowe (Rainbow tables) Używają pary funkcji – hash i  redukującej. Tworzone są łańcuchy hashy (obliczane raz) Łamany hash przeprowadzamy wielokrotnie 

przez funkcje hash/reduction aż otrzymany hash zgodny z posiadaną tabelą

Z początku łańcucha odtwarzane jest hasło

wikipedia ao4kd secret jimbo9kpmw rootrootv0d$x

abcdefgh 1vn6s bernie zurichkolscx myname8ntpy

passwd dlcm4 culture cryptore3xes linux231tik0

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 12: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

12/24

Szyfrowanie asymetryczne

Ala makota.

Ala makota.

Szyfrowanie Deszyfrowanie

Połączeniepubliczne

Algorytmy tego typu nazywane są też Opartymi na kluczu publicznym

7JEYU5HALE8X

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 13: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

13/24

Cechy kluczy Klucz publiczny i prywatny Przeciwstawne działanie Można utworzyć parę Ale nie jeden z drugiego

Liczba losowa

Generator kluczy

Klucz publicznyKlucz prywatny

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 14: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

14/24

Algorytmy szyfrowania asymetrycznego RSA – opracowany w 1977r, dalej używany

DSA – powstał w 1991, opatentowany ale możliwość nieodpłatnego używania

ElGammal /  Diffie­Hellman (1985)

ECC (Krzywe eliptyczne) – zapewnia podobny poziom bezpieczeństwa co RSA dla znacznie krótszego klucza

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 15: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

15/24

Podpisywanie wiadomości

Hash:294B5DA10...

Wiadomość

Certyfikat

Szyfrowany hashSzyfrowany hash

294B5DA10...294B5DA10... ?

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 16: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

16/24

Message Authentication Code (MAC/HMAC) Służy do potwierdzenia integralności 

i autentyczności

MAC: Message Authentication Code

If the same MAC is found: then the message is authentic and integrity checked Else: something is not right.

MAC

MAC AlgorithmKey (K)

RECEIVER

MESSAGE

=?

MAC Algorithm

Key (K)MESSAGE

MESSAGE

MAC

MAC MAC

SENDER

Z reguły z dodatkowym kluczem tajnym

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 17: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

17/24

Szyfrowanie hybrydowe

Dalsze szyfrowanie kluczem symetrycznym

Wymiana kluczy publicznych

Przesłanie zaszyfrowanegoklucza symetrycznego

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 18: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

18/24

Infrastruktura Klucza Publicznego (PKI)

TTP

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 19: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

19/24

X.509 Standard definiujący funkcjonowanie PKI

Określa 'zaufaną trzecią stronę' – TTP Ale to użytkownik definiuje komu ufa

Wykorzystywany do potwierdzanie tożsamości serwerów i usług

Wykorzystywany w SMTP, POP3, IMAP, VPN, HTTPS

Możliwość 'łańcuchowej' certyfikacji

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 20: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

20/24

Elementy certyfikatu Numer seryjny Podmiot Algorytm podpisu Wystawca Termin ważności Przeznaczenie Klucz publiczny Algorytm skrótu ”Odcisk palca” Podpis

Certificate: Data: Version: 1 (0x0) Serial Number: 7829 (0x1e95) Signature Algorithm: md5WithRSAEncryption Issuer: C=ZA, ST=Western Cape, L=Cape Town, O=Thawte OU=Certification Services Division, CN=Thawte Server CA/[email protected] Validity Not Before: Jul 9 16:04:02 1998 GMT Not After : Jul 9 16:04:02 1999 GMT Subject: C=US, ST=Maryland, L=Pasadena, O=Brent Baccala, OU=FreeSoft, CN=www.freesoft.org Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:b4:31:98:0a:c4:bc:62:c1:88:aa:dc:b0:c8:bb: 33:35:19:d5:0c:64:b9:3d:41:b2:96:fc:f3:31:e1: 66:36:d0:8e:56:12:44:ba:75:eb:e8:1c:9c:5b:66: 70:33:52:14:c9:ec:4f:91:51:70:39:de:53:85:17: 16:94:6e:ee:f4:d5:6f:d5:ca:b3:47:5e:1b:0c:7b: c5:cc:2b:6b:c1:90:c3:16:31:0d:bf:7a:c7:47:77: 8f:a0:21:c7:4c:d0:16:65:00:c1:0f:d7:b8:80:e3: d2:75:6b:c1:ea:9e:5c:5c:ea:7d:c1:a1:10:bc:b8: e8:35:1c:9e:27:52:7e:41:8f Exponent: 65537 (0x10001) Signature Algorithm: md5WithRSAEncryption 93:5f:8f:5f:c5:af:bf:0a:ab:a5:6d:fb:24:5f:b6:59:5d:9d: 92:2e:4a:1b:8b:ac:7d:99:17:5d:cd:19:f6:ad:ef:63:2f:92: ab:2f:4b:cf:0a:13:90:ee:2c:0e:43:03:be:f6:ea:8e:9c:67: d0:a2:40:03:f7:ef:6a:15:09:79:a9:46:ed:b7:16:1b:41:72: 0d:19:aa:ad:dd:9a:df:ab:97:50:65:f5:5e:85:a6:ef:19:d1: 5a:de:9d:ea:63:cd:cb:cc:6d:5d:01:85:b5:6d:c8:f3:d9:f7: 8f:0e:fc:ba:1f:34:e9:96:6e:6c:cf:f2:ef:9b:bf:de:b5:22: 68:9f

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 21: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

21/24

Klasy / rodzaje certyfikatów (Verisign) Class 1: Osobiste (e­mail) Class 2: Organizacyjny Class 3: Certyfikat serwera Class 4: Handel Online B2B Class 5: Administracja rządowa

W praktyce, to tylko marketing

Certyfikaty są w dużej mierze identyczne, mogą różnić się zakresem (ilością pól)

Podstawowe ­ nazwa serwera (domena) Extended Validation (EV) – z nazwą firmy

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.Podsumowanie

Page 22: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

22/24

Zasady bezpiecznej komunikacji

Poufność: Dane są szyfrowane, tylko posiadacze kluczy 

mają do nich dostęp Komunikacja symetryczna (wspólny klucz) 

lub asymetryczna (klucz publiczny i prywatny)

Autentyczność Podpis cyfrowy identyfikuje autora Autor podpisuje swoim kluczem prywatnym i 

udostępnia klucz publiczny

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.

Podsumowanie

Page 23: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

23/24

Zasady bezpiecznej komunikacji c.d.

Integralność Podpis cyfrowy gwarantuje że wiadomość nie 

została zmieniona Skrót wiadomości jest szyfrowany kluczem 

prywatnym Po odszyfrowaniu można porównać z 

samodzielnie wykonanym skrótem

Niezaprzeczalność Podpis cyfrowy jednoznacznie identyfikuje 

autora wiadomości

Podstawy

Szyfrowaniesymetryczne

Funkcjeskrótu

Szyfrowanieasymetryczne

Infrastrukturaklucza publ.

Podsumowanie

Page 24: Elementy kryptografii · 10/24 Zastosowanie funkcji skrótu Przechowywanie haseł Podpisywanie wiadomości Wykrywanie zmian w danych lub transmisji Popularne funkcje hashujące CRC32

24/24

Dziękuję za uwagę.

Pytania?

więcej informacji: http://marek.zachara.name

Dokument udostępniany na licencji

Creative Commons

AttributionShare­Alike

Wykorzystane materiały które nie miały wcześniej podanego źródła:● Clipart – openclipart.org● Szyfr podstawieniowy, Algorytmy szyfrowania blokowego, rainbow tables

 i algorytm MAC – Wikimedia CommonsElementy licencjonowane (royalty­free), nie mogą być wykorzystywane oddzielnie:● Tło prezentacji, awatary postaci