Kryptologia · 2019. 12. 12. · 2 Kryptologia - współcześnie 3 Protokół Diffiego-Hellmana 4...

Preview:

Citation preview

Kryptologia

zima 19/20 Jakub Maksymiuk

Plan I

1 Kryptologia

2 Kryptologia - współcześnie

3 Protokół Diffiego-Hellmana

4 RSA

5 Szyfry strumieniowe

6 Kryptografia na krzywych eliptycznych

7 DES

Plan II

8 Ogólnie o szyfrach blokowych

9 Podpis cyfrowy

10 Funkcje haszujące

11 Message Authentication Codes

12 Uzgodnienie i dystrybucja kluczy

1. Kryptologia

W czym rzecz?PrehistoriaSzyfry podstawienioweSzyfry podstawieniowe polialfabetyczne. Szyfr Vigenere’aInne proste szyfryOne-time pad

W czym rzecz?

Kryptologia

to nauka o bezpiecznym przekazywaniu i uwiarygodnianiu informacji.Wyróżniamy:

• kryptografię – konstruowanie algorytmów szyfrujących ideszyfrujących

• kryptoanalizę – analiza i ocena jakości powyższych

Uwaga: w angielskich źródłach zwykle mówi się o „cryptography” a nie„cryptology”

Tradycyjnie (w terminologi anglosaskiej) uczestnikami gry są:

• Alicja i Bob – ich celem jest wymiana informacji w sposób niejawny

• Ewa – jej celem jest poznanie treści przesyłanych przez Alicję i Boba

• Oskar – czasami pomaga Ewie

Przyjmujemy, że:

• proces wymiany informacji pomiędzy Alicją i Bobem odbywa się zapośrednictwem publicznie dostępnego kanału komunikacyjnego

• Ewa w każdej chwili może przechwycić przesyłaną wiadomość,

Nie oznacza to, że może poznać jej treść, gdyż wcześniej został ustalonypewien protokół kryptograficzny, za pomocą którego tekst jawnyzostaje zamieniony na szyfrogram z użyciem tajnego klucza.

Aby zrealizować swoje cele obie strony sięgają po szereg metod i środków.

W historii obie strony uzyskiwały czasowo przewagę nad przeciwnikiem.

Obecnie wydaje się, że wygrywają Alicja i Bob.

Z drugiej strony, to co robi Ewa jest w dużej części niejawne!

Szyfr Cezara

Szyfr Cezara

Każdą literę tekstu jawnego zamieniamy na literę o trzy miejsca dalszą walfabecie:

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 zD 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

Jest to jest to jeden z najstarszych udokumentowanych szyfrów,tradycyjnie łączy się go z postacią Juliusza Cezara.

Ugólniej, możemy ustalić dowolna liczbę k = 1, . . . , 25 i dokonaćprzesunięcia kazdej litery o k .

Przykład, k = 3

mowil ilado motyl anikt niewi dzipa nzapy laPRZLO LODGR PRWBO DQLNW QLHZL GCLSD QCDSB OD

Ewa bez problemu może odkryć tekst jawny – poprostu wykonujewszystkie możliwe przesunięcia i wybiera ten tekst który jest czytelny.

0: przlo lodgr prwbo dqlnw qlhzl gclsd qcdsb od1: oqykn kncfq oqvan cpkmv pkgyk fbkrc pbcra nc2: npxjm jmbep npuzm bojlu ojfxj eajqb oabqz mb3: mowil ilado motyl anikt niewi dzipa nzapy la4: lnvhk hkzcn lnsxk zmhjs mhdvh cyhoz myzox kz5: kmugj gjybm kmrwj ylgir lgcug bxgny lxynw jy6: jltfi fixal jlqvi xkfhq kfbtf awfmx kwxmv ix7: ikseh ehwzk ikpuh wjegp jease zvelw jvwlu hw8: hjrdg dgvyj hjotg vidfo idzrd yudkv iuvkt gv9: giqcf cfuxi ginsf uhcen hcyqc xtcju htujs fu10: fhpbe betwh fhmre tgbdm gbxpb wsbit gstir et11: egoad adsvg eglqd sfacl fawoa vrahs frshq ds12: dfnzc zcruf dfkpc rezbk ezvnz uqzgr eqrgp cr13: cemyb ybqte cejob qdyaj dyumy tpyfq dpqfo bq14: bdlxa xapsd bdina pcxzi cxtlx soxep copen ap15: ackwz wzorc achmz obwyh bwskw rnwdo bnodm zo16: zbjvy vynqb zbgly navxg avrjv qmvcn amncl yn17: yaiux uxmpa yafkx mzuwf zuqiu plubm zlmbk xm18: xzhtw twloz xzejw lytve ytpht oktal yklaj wl19: wygsv svkny wydiv kxsud xsogs njszk xjkzi vk20: vxfru rujmx vxchu jwrtc wrnfr miryj wijyh uj21: uweqt qtilw uwbgt ivqsb vqmeq lhqxi vhixg ti22: tvdps pshkv tvafs hupra upldp kgpwh ughwf sh23: sucor orgju suzer gtoqz tokco jfovg tfgve rg24: rtbnq nqfit rtydq fsnpy snjbn ienuf sefud qf25: qsamp mpehs qsxcp ermox rmiam hdmte rdetc pe

Szyfry podstawieniowe

Litery utożsamiamy z elementami zbioru Z26 w następujacy sposób:

0 1 2 3 4 5 6 7 8 9 10 11 12A B C D E F G H I J K L M13 14 15 16 17 18 19 20 21 22 23 24 25N O P Q R S T U V W X Y Z

kryptologia -> 10,17,24,15,19,14,11,14,6,8,0

Szyfr afiniczny

• x , y , a, b ∈ Z26• EK (x) = ax + b mod 26

• DK (y) = a−1(y − b) mod 26

gdzie K = (a, b), NWD(a, 26) = 1.

Liczba kluczy jest ograniczona do

|Z∗26| × |Z26| = 312

Zauważmy, że klucz K = (1, 0) nie jest przydatny. . .

• Szyfr Cezara: E(1,b)(x) = x + b

• ROT13: E(1,13)

Ewa nadal bez problemu może odczytać tekst jawny posługując sie 312tabelami utworzonymi dla wszystkich kluczy.

Szyfr podstawieniowy (prosty, monoalfabetyczny)

• x , y ∈ Z26, σ ∈ S(Z26)• EK (x) = σ(x)

• DK (y) = σ−1(y)

• W tym wypadku Alicja i Bob mają do dyspozycji 26! kluczy.

26! = 403 291 461 126 605 635 584 000 000 ' 288 ' 1026

• Ewie rzednie mina, gdyż policzyła ile czasu zajmie jej uzyskaniewszystkich możliwych tekstów jawnych (ile?)

• Alicja i Bob cieszą się, gdyż uważają, że ich komunikacja jestbezpieczna.

Ewa wybrała się na kawę. . .

• Poprosić Oskara, żeby włamał się do Boba i ukradł urządzenieszyfrujące...

• Poprosić Oskara, żeby włamał się do Boba i zaszyfrował alfabet...

• Poprosić Oskara, żeby włamał się do Boba i zaszyfrował chociaż kilkaliter...

• Znając wartość permutacji dla jednej (dwóch, trzech itd) literypozwoliłoby znacząco zawężyć liczbę możliwych kluczy.

• Od zawsze wiadomo, że nie wszystkie litery występują jednakowoczęsto w języku.

• Również niektóre kombinacje liter występują z różną częstotliwością

• Permutacja (jako bijekcja) zachowuje ilości poszczególnych liter wtekscie, zmienia jedynie symbol używany do jej oznaczenia.

HA!

Ewa poprosiła Oskara aby wykradł dane o czestości występowania liter.

Oskar jest wszechstronnie uzdolnionym włamywaczem więc na stroniewww.wikipedia.org znalazł potrzebne dane i sprzedał jej Ewie po cenierynkowej.

Ewa poprosiła Oskara aby wykradł dane o czestości występowania liter.

Oskar jest wszechstronnie uzdolnionym włamywaczem więc na stroniewww.wikipedia.org znalazł potrzebne dane i sprzedał jej Ewie po cenierynkowej.

a ą b c ć d e8,91% 0,99% 1,47% 3,96% 0,40% 3,25% 7,66%

ę f g h i j k1,11% 0,30% 1,42% 1,08% 8,21% 2,28% 3,51%

l ł m n ń o ó2,10% 1,82% 2,80% 5,52% 0,20% 7,75% 0,85%

p q r s ś t u3,13% 0,14% 4,69% 4,32% 0,66% 3,98% 2,50%

v w x y z ź ż0,04% 4,65% 0,02% 3,76% 5,64% 0,06% 0,83%

Rozkład częstości liter w języku polskim

Ewa kupiła od Oskara szyfrogram, który zachowuje rozkład wyrazów, jestw języku polskim, bez polskich znaków diaktrycznych.

ORYFG MQYLWMZOQKYAFTGZMTYW ZM OUSHYEC FLJYORACL CSYMZU ACJZULJM OKY A JKYTCZCOS K NMQ TCVQM PLCVJK OLCV BMTK TMQOJUWKMSGSH OLCV QAKMRCA FCACVJK CWKNMW QCLMTCAY CORLCAGPULJMZU NUJ WLCQ JMFMVM ZKEVJKY VLCEK ZK QULHMZU FMRLJY AZKYPC EAKMJV OJUQMW FLJYACVZKSJYQ TCVJK RMW J VMTM PTGOJSJGCPTCQ RMW NURLJYZQM AOSHCVJK RC PTGOJSJG VZKYORL RC AYOJTMTMWFM MQYLWMZU ORCNWG NMQ SKSHC OTGOJY SKMEZMSY JULMAKYQRCLGSH PG ZKY VCOSKETG JLYZKSY OCQCTM OTGOJY QYVG OKY WCRGTQCTGOM ZM RLMAKY QYVG AMJ OTKOQM FKYLOKM VCRGQM OKY JKCTM ARMQKYN SKOJG RMQ USHC ZMRYJMW SKYQMAKY JY OTGOJMTPGW ETCO JTKRAG NYVJWG ZKQR ZKY ACTM

A B C D E F G H21 1 41 0 7 9 24 74,40% 0,21% 8,60% 0,00% 1,47% 1,89% 5,03% 1,47%

I J K L M N O P0 37 40 23 52 8 33 80,00% 7,76% 7,80% 4,48% 10,14% 1,56% 6,43% 1,56%

Q R S T U V W X26 21 19 27 14 19 16 05,07% 4,09% 3,70% 5,26% 2,73% 3,70% 3,12% 0,00%

Y Z38 227,41% 4,29%

Ewa porównując tabelę otrzymaną od Oskara z własną zagaduje że

a o e iM C Y K

OReFG aQeLWaZOQieAFTGZaTeW Za OUSHeEo FLJeORAoL oSeaZU AoJZULJa Oie A JieToZoOS i NaQ ToVQa PLoVJi OLoV BaTi TaQOJUWiaSGSH OLoV QAiaRoA FoAoVJi oWiNaW QoLaToAe oORLoAGPULJaZU NUJ WLoQ JaFaVa ZiEVJie VLoEi Zi QULHaZU FaRLJe AZiePo EAiaJV OJUQaW FLJeAoVZiSJeQ ToVJi RaW J VaTa PTGOJSJGoPToQ RaW NURLJeZQa AOSHoVJi Ro PTGOJSJG VZieORL Ro AeOJTaTaWFa aQeLWaZU ORoNWG NaQ SiSHo OTGOJe SiaEZaSe JULaAieQRoLGSH PG Zie VoOSiETG JLeZiSe OoQoTa OTGOJe QeVG Oie WoRGTQoTGOa Za RLaAie QeVG AaJ OTiOQa FieLOia VoRGQa Oie JioTa ARaQieN SiOJG RaQ USHo ZaReJaW SieQaAie Je OTGOJaTPGW EToO JTiRAG NeVJWG ZiQR Zie AoTa

W tekscie odnajdujemy pewne charakterystyczne fragmenty

• Zie Sie Oie : sie, nie ?

• Ro : to, do ?

• A J : w z gdyż a i sa zajęte

• AoJ ?

Ewa zgaduje dalej. . .

a o e i n z w t sM C Y K Z J A R O

steFG aQeLWansQiewFTGnaTeW na sUSHeEo FLzestwoL oSeanU woznULza sie w zieTonosS i NaQ ToVQa PLoVzi sLoV BaTi TaQszUWiaSGSH sLoV Qwiatow FowoVzi oWiNaW QoLaTowe ostLowGPULzanU NUz WLoQ zaFaVa niEVzie VLoEi ni QULHanU FatLze wniePo EwiazV szUQaW FLzewoVniSzeQ ToVzi taW z VaTa PTGszSzGoPToQ taW NUtLzenQa wsSHoVzi to PTGszSzG VniestL to weszTaTaWFa aQeLWanU stoNWG NaQ SiSHo sTGsze SiaEnaSe zULawieQtoLGSH PG nie VosSiETG zLeniSe soQoTa sTGsze QeVG sie WotGTQoTGsa na tLawie QeVG waz sTisQa FieLsia VotGQa sie zioTa wtaQieN SiszG taQ USHo natezaW SieQawie ze sTGszaTPGW ETos zTitwG NeVzWG niQt nie woTa

Teraz zadanie ma już znacznie łatwiejsze bo zdała maturę z polskiego...

• Informacja powszechnie dostępna lub względnie łatwa do zdobyciamoże mieć żywotne znaczenie dla bezpieczeństwa!

• zachowanie struktury tekstu znacząco obniża bezpieczeństwo

• Ewa przeprowadzi teraz szeroko zakrojone badania nad statystycznymiwłasnosciami języka i w ten sposób udoskonali swoje narzędzia

• pozostawienie znaków diaktrycznych i interpukcyjnych w niewielkimstopniu wpływa na bezpieczeństwo, wręcz ujawnia więcej szczegółów(np.: przecinek występuje częściej niż b, nie ma słów zaczynającychsię na ą i ę)

• Pytanie: Czy permutacja z punktami stałymi obniża bezpieczeństwo?

Alicja i Bob płaczą rzewnie. . .

• Informacja powszechnie dostępna lub względnie łatwa do zdobyciamoże mieć żywotne znaczenie dla bezpieczeństwa!

• zachowanie struktury tekstu znacząco obniża bezpieczeństwo

• Ewa przeprowadzi teraz szeroko zakrojone badania nad statystycznymiwłasnosciami języka i w ten sposób udoskonali swoje narzędzia

• pozostawienie znaków diaktrycznych i interpukcyjnych w niewielkimstopniu wpływa na bezpieczeństwo, wręcz ujawnia więcej szczegółów(np.: przecinek występuje częściej niż b, nie ma słów zaczynającychsię na ą i ę)

• Pytanie: Czy permutacja z punktami stałymi obniża bezpieczeństwo?

Alicja i Bob płaczą rzewnie. . .

Szyfry podstawieniowe polialfabetyczne. Szyfr Vigenere’a

• Proste szyfry podstawieniowe nie są bezpieczne, gdyż łatwo poddająsię analizie częstotliwości liter.

• Jeżeli odkryjemy, że litera r została zaszyfrowana do D to w całymszyfrogramie obowiązuje ta sama reguła

• Nowym pomysłem Alicji i Boba jest szyfrowanie w taki sposób, aby tasama litera tekstu jawnego nie koniecznie odpowiadała zawsze tejsamej literze szyfrogramu

Szyfr Vigener’a

• {xi}, {ki}, {yi} ∈ Z26• EK (xi ) = xi + ki mod 26

• DK (yi ) = yi − ki mod 26

gdzie K = (k1, k2, k3, . . . , kd , kd+1, kd+2, . . . )

Ten szyfr został podany w XVI wieku i przez następne 300 lat był wuznawany za le chiffre indechiffrable

Uwaga: często przedstawia sie wartości funkcji E w tablicy (zob. np.: wiki)

Przykłady

X = mowil ilado motyl anikt niewi dzipa nzapy laK = KLUCZ KLUCZ KLUCZ KLUCZ KLUCZ KLUCZ KLUCZ KLY = WZQKK SWUFN WZNAK KYCMS XTYYH NKCRZ XKURX VL

X = mowil ilado motyl anikt niewi dzipa nzapy laK = AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAY = MOWIL ILADO MOTYL ANIKT NIEWI DZIPA NZAPY LA

X = mowil ilado motyl anikt niewi dzipa nzapy laK = DDDDD DDDDD DDDDD DDDDD DDDDD DDDDD DDDDD DDY = PRZLO LODGR PRWBO DQLNW QLHZL GCLSD QCDSB OD

Szyfr Viegenere’a lepiej maskuje częstość występowania liter:

Alicja i Bob zacierają ręce, ale Ewa tylko śmieje się szyderczo.

• Szyfr Viegenere jest zasadniczo podobny do szyfru Cezara, który jestłątwy do złamania

• gdyby Ewa znała długość klucza, to byłoby jej łatwiej, bo

• znając długość klucza (powiedzmy d) wiemy, że co d-ty znak jestszyfrowany za pomocą tego samego klucza!

• możemy przeprowadzić analizę częstotliwości d-krotnie dla co d-tegoznaku

• znając te rozkłady możemy wydedukować przesunięcia a w ten sposóbklucz

Tabele częstości,dla klucza długości d = 4znaki 1,5,9,. . .

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 Z0 7 9 13 3 5 6 5 0 1 2 14 2 3 9 3 5 9 1 0 4 9 5 5 0 9

a e i

znaki 2,6,10,. . .

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 Z0 1 10 2 6 3 5 7 10 4 0 7 9 6 4 0 3 0 4 8 14 3 6 4 12 1

i a e

znaki 3,7,11,. . .

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 Z9 3 3 9 3 0 5 9 8 4 0 2 0 7 7 16 0 2 3 10 0 2 3 14 1 8

a e i

znaki 4,8,12,. . .

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 Z9 2 6 6 12 0 4 1 2 3 9 6 5 7 13 1 0 7 6 2 1 0 7 0 6 13

a,e,i a,e,i a,e,i

Jak odkryć długość klucza? Metoda Kasickiego.

• Jest możliwe, że te same słowa lub kombinacje liter występuja wtekscie jawnym wielokrotnie

• ponieważ także klucz jest powtarzany wielokrotnie, więc całkiemmożliwe, że te same litery bedą szyfrowane w ten sam sposób

• możemy wyszukiwać wystąpienia tego samego ciągu w szyfrogramiemając nadzieję, że pochodzą od tego samego ciągu w tekscie jawnym

• oczywiście może to być przypadek, ale dla długich ciągów lub częstowystępujacych zbitek jest to mało prawdopodobne

• więcej na laboratorium

Inne proste szyfry

• szyfr Hilla polega na zamianie grup liter (a nie pojedynczych) –laboratorium

• szyfry przestawieniowe: polegają na zmianie kolejności liter wgustalonego klucza, np.: zapisując w formie prostokata i odczytywaniezygzakiem)

„autokey cipher”

• {xi}, {ki}, {yi} ∈ Z26• EK (xi ) = xi + ki mod 26

• DK (yi ) = yi − ki mod 26

gdzie K = (k1, k2, k3, . . . , kd , x1, x2, x3, . . . )

Nie poddaje się analizie częstotliwości, ale względnie łatwo go złamaćzgadując słowo z tekstu jawnego.

Okazuje się, że każdy z podanych wyżej (i podobnych) szyfrówpolegających na podstawianiu i/lub przestawianiu liter

• albo dysponuje niewielką ilościa kluczy,

• albo poddaje się analizie czetotliwości występowania liter

• albo innych szczególne cechy sprawiają że są zbyt łatwe do złamania

Obserwacje:

• zastosowanie dwóch szyfrów po kolei może, ale nie musi utrudnićzłamanie

• krótkie wiadomości są trudne do analizy, ale wysyłanie dużej ilościkrótkich wiadomości z tym samym kluczem jest równoważne wysłaniujednej długiej

• Dużo krótkich wiadomości z różnymi kluczami wymaga wielu kluczy –jak Alicja i Bob mają uzgodniać klucze?

• Mogą wynająć Cezarego, aby co jakiś czas przewoził ksiażkę zkluczami.Ale co jeśli Cezary zostanie napadnięty przez Oskara, albo jestpodwójnym agentem?

• W tym momencie Alicja, Bob i Ewa zdali sobie sprawę, że istniejele chiffre indechifrable

Obserwacje:

• zastosowanie dwóch szyfrów po kolei może, ale nie musi utrudnićzłamanie

• krótkie wiadomości są trudne do analizy, ale wysyłanie dużej ilościkrótkich wiadomości z tym samym kluczem jest równoważne wysłaniujednej długiej

• Dużo krótkich wiadomości z różnymi kluczami wymaga wielu kluczy –jak Alicja i Bob mają uzgodniać klucze?

• Mogą wynająć Cezarego, aby co jakiś czas przewoził ksiażkę zkluczami.Ale co jeśli Cezary zostanie napadnięty przez Oskara, albo jestpodwójnym agentem?

• W tym momencie Alicja, Bob i Ewa zdali sobie sprawę, że istniejele chiffre indechifrable

Obserwacje:

• zastosowanie dwóch szyfrów po kolei może, ale nie musi utrudnićzłamanie

• krótkie wiadomości są trudne do analizy, ale wysyłanie dużej ilościkrótkich wiadomości z tym samym kluczem jest równoważne wysłaniujednej długiej

• Dużo krótkich wiadomości z różnymi kluczami wymaga wielu kluczy –jak Alicja i Bob mają uzgodniać klucze?

• Mogą wynająć Cezarego, aby co jakiś czas przewoził ksiażkę zkluczami.Ale co jeśli Cezary zostanie napadnięty przez Oskara, albo jestpodwójnym agentem?

• W tym momencie Alicja, Bob i Ewa zdali sobie sprawę, że istniejele chiffre indechifrable

Obserwacje:

• zastosowanie dwóch szyfrów po kolei może, ale nie musi utrudnićzłamanie

• krótkie wiadomości są trudne do analizy, ale wysyłanie dużej ilościkrótkich wiadomości z tym samym kluczem jest równoważne wysłaniujednej długiej

• Dużo krótkich wiadomości z różnymi kluczami wymaga wielu kluczy –jak Alicja i Bob mają uzgodniać klucze?

• Mogą wynająć Cezarego, aby co jakiś czas przewoził ksiażkę zkluczami.Ale co jeśli Cezary zostanie napadnięty przez Oskara, albo jestpodwójnym agentem?

• W tym momencie Alicja, Bob i Ewa zdali sobie sprawę, że istniejele chiffre indechifrable

Szyfr niemożliwy do złamania

Szyfr jednorazowy

Można udowodnić (Shanon), że jeżeli w szyfrze Vigenere’a

• użyjemy klucza złożonego z losowego ciągu znaków

• o tej samej długości co wiadomość

• do zaszyfrowania tylko jednej wiadomości

to nie mam możliwości odczytania tekstu jawnego bez znajomości kluczaw inny sposób niż sprawdzenie wszystkich możliwości (ile ich jest?).

Pytanie: Dlaczego zarówno Alicja i Bob jak i Ewa wcale nie sązadowoleni z tego odkrycia?

2. Kryptologia - współcześnie

Słowniczek i założenia

Słowniczek i założenia

Kto potrzebuje kryptografii

• dyplomacja

• wojsko, wywiad (i inne służby)

• korporacje

• osoby prywatne

Są potwierdzone historycznie przykłady użycia kryptografii przez:

• Egipcjan

• Hebrajczyków (oparte na Torze)

• Spartan (scytale)

• Rrzymian

W czasach, gdy umiejętność pisania i czytania nie była powszechna,możliwości komunikacji również były ograniczone.Z tego względu, każdy kto utajniał swoje wiadomości był/mógł być twórcąwłasnego systemu kryptograficznego.

• Współcześnie, edukacja i rozwój sprawiła, że większość ludzi potraficzytać i pisać.

• Także dostęp do kanałów komunikacji jest powszechny, łatwy i tani.

• W szczególności komunikacja radiowa i cyfrowa na duża skalę(potrzeby wojska, uwierzytelnianie w banku, sieci GSM) wymuszaopracowanie pewnych standardów, które mogą być stosowane przezosoby nie przygotowane i masowo.

Pewne pojęcia (por. Internet Security Glossary, RFC 2828)

poufność, sekretność: zapewnienie, że dana informacja nie jestdostępna dla nieautoryzowanego odbiorcy

prywatność: umożliwienie kontroli nad rozpowszechnianiem informacji

kod: system składający się z symboli (słów kodowych), który reprezentujeinformację (np.: słowa w alfabecie, kod ASCII, kod Morse’a)

kodowanie, dekodowanie: proces zamiany informacji w symbole kodu iproces do niego odwrotny

teoria kodowania: nauka zajmująca się przekazywaniem zakodowanychinformacji w sposób odporny na błędy przesyły i możliwy doodczytania przez wszystkich

kryptografia: nauka zajmująca sie zapewnieniem poufności informacjiprzekazywanej przez niezapewniający poufności kanał. A TAKŻE:uwierzytalnianiem tożsamości, ochrony przed dokonaniem (celowych)nieuprawnionych zmian w informacji,

kryptoanaliza: nauka zajmująca się analizą systemów kryptograficznych,zarówno ich łamaniem jaki i potwierdzaniem ich bezpieczeństwa

złamanie systemu krytpograficznego: udowodnienie brakubezpieczenstwa, np.: poprzez opis metody dekryptażu (bez znajomościklucza), odtworzenie klucza, fałszowanie tożsamości

szyfr: algorytm umożliwiajacy szyfrowania/deszyfrowanie

system kryptograficzny: zbiór algorytmów składający się z szyfrów iinnych protokołów wykorzytywanych w kryptografii

tekst jawny: dane wejściowe algorytmu szyfrującego (nie koniecznie„otwarty tekst”)

tekst zaszyfrowany, szyfrogram: wynik procesu szyfrowania tekstujawnego

klucz kryptograficzny, klucz: parametr algorytmu kryptograficznegozmieniający sposób przekształcania tekstu jawnego na szyfrogram

szyfrowanie/deszyfrowanie: proces (algorytm) przekształcenia tekstujawnego w szyfrogram, proces do niego odwrotny

Kryptoanalizę można traktować na dwa sposoby:

• jako chuligaństwo: Ewa z Oskarem stosują wszelkie dostępne środki(także „niesportowe”), aby złamać system kryptograficzny

• jako dodatkowe zabezpieczenie: Alicja i Bob proszą Cezarego, abystarał się odnaleźć słabe punkty używanego systemu

Zagadnienia współczesnej kryptografii

poufność: informacja nie może być dostępna dla osób nieuprawnionych

spójność, integralność: informacja musi być odporna na celowe zmiany

uwierzytelnianie: informacja powinna wyraźnie określać jej autora

niezaprzeczalność: brak możliwości wyparcia się autorstwa (np.: podpiselektroniczny)

zero-knowledge: pewność, że informacja nie „wycieka”

inne: anonimowość, rozliczalność (np.: e-payment, e-voting),

Powszechność, The n2 problem

W grupie n uczestników nie praktyczne/możliwe jest opracowywanieosobnego systemu kryptograficznego dla każdej pary uczestników(przeglądarka internetowa – system bankowy).Lepiej jest stosować wspólny system kryptograficzny, odróżniającyużytkowników tylko poprzez posiadane klucze.

Taki system powinien być łatwy do stosowania przez uczestników bezgłębokiej wiedzy technicznej.

Ćwiczenie: Czy powinien być „przezroczysty” dla użytkownika?

Zasada Kerckhoff’a

Bezpieczeństwo systemu kryptograficznego nie może opierać się wyłączniena ukryciu szczegółów jego działania.

• bezpieczeństwo powinno się opierać na tajności klucza

• Analiza bezpieczeństwa systemu kryptograficznego musi zakładać, żealgorytmy kryptograficzne są publiczne.

• Nie znaczy to jednak, że algorytmy kryptograficzne powinny byćzawsze ujawniane. Zachowanie ich w tajemnicy jest przykładem tzw.„obrony w głąb” (defence in depth).

• bezpieczeństwo przez tajność (security by obscurity) ma jednak wadę,gdyż nie pozwala na testowanie niezależne testowanie systemu

Zasada Kerckhoff’a

Bezpieczeństwo systemu kryptograficznego nie może opierać się wyłączniena ukryciu szczegółów jego działania.

• bezpieczeństwo powinno się opierać na tajności klucza

• Analiza bezpieczeństwa systemu kryptograficznego musi zakładać, żealgorytmy kryptograficzne są publiczne.

• Nie znaczy to jednak, że algorytmy kryptograficzne powinny byćzawsze ujawniane. Zachowanie ich w tajemnicy jest przykładem tzw.„obrony w głąb” (defence in depth).

• bezpieczeństwo przez tajność (security by obscurity) ma jednak wadę,gdyż nie pozwala na testowanie niezależne testowanie systemu

Prawo Moore’a (empiryczne)

Moc obliczeniowa komputerów podwaja się co 18 miesięcy

Prawo Murphy’ego (empiryczne)

Jeżeli system kryptograficzny posiada luki wtedy napewno ktoś jeodnajdzie.

Modele ataku

ciphertext only: Ewa próbuje odganąć treść wiadomości na podstawieprzechwyconych szyfrogramów

known plaintext: Ewa zna parę tekst jawny/szyfrogram i na tejpodstawie próbuje znaleźć luki w systemie

choosen plaintext: Ewa ma do dyspozycji urządzenie szyfrujące, szukaluk szyfrując wybrane teksty jawne i porównując je z szyfrogramami

choosen ciphertext: j.w. ale Ewa ma urządzenie deszyfrujące

Cele ataku

• odkrycie klucza

• odkrycie tekstu jawnego

Kanał komunikacyjny

Cechy kanału komunikacyjnego

• koszt

• szybkość

• dostępność

• niezawodność (odporność na przypadkowe zakłócenia)

• bezpieczeństwo

radio/internet: szybki, tani, dostępny, niebezpieczny

kurier/dyplomata: bardzo wolny, tani?, średnio dostępny, bezpieczny

Nie jest możliwe uzyskanie kanału taniego, szybkiego, łatwo dostępnego ibezpiecznego.

Klasyczny model kryptografi symetrycznej, Shannon

Szyfr (symetryczny) składa się z:

• zbioru wszystkich tekstów jawnych

• zbioru wszystkich możliwych kluczy

• zbioru wszystkich możliwych szyfrogramów

• algorytmu szyfrującego EK (X ) przekształcającego tekst jawny X wszyfrogram przy użyciu klucza K

• algorytmu deszyfrującego DK (Y ) przekształcającego szyfrogram Y wtekst jawny przy pomocy klucza K , również z innej przestrzeni kluczy

• DK (EK (X )) = X

• w kryptografii asymetrycznej funkcja D nie musi używać tego samegoklucza co E

3. Protokół Diffiego-Hellmana

DefinicjaProblem logarytmu dyskretnegoMetody atakuAlgorytm ElGamala

• celem protokołu jest uzgodnienie przez Alicję i Boba wspólnego klucza

• odbywa się będzie to poprzez przesyłanie pewnej informacjipublicznym kanałem (zatem będzie znana ona Ewie)

• jednocześnie zarówno Alicja i Bob będą posiadali prywatną informację(każdy swoją)

Diffie-Hellman key exchange 1976

Alicja i Bob ustalają liczbę pierwszą p i pierwiastek pierwotny g(generator) w grupie F∗p ' Z∗p. Ta informacja jest publiczna.

• Alicja wybiera liczbę a ∈ F∗p, oblicza ga i wysyła do Boba. Liczba ajest jej prywatną informacją.

• Bob wybiera liczbę b ∈ F∗p, oblicza gb i wysyła do Alicji. Liczba b jestjego prywatną informacją.

• Alicja oblicza (gb)a, Bob oblicza (ga)b.

• Oboje znają zatem liczbę gab ∈ F∗p, która jest ich wspólnym tajnymkluczem.

Protokół D-H jest używany np.: do ustalania klucza w protokołach takichjak SSH, SSL, HTTPS

Zwróćmy uwagę, że D-H jest bardzo prostym algorytmem. Więc dlaczegoEwa, skoro zna: p, g , ga, gb, nie potrafi odgadnąć gab ?

Ćwiczenie: Zaproponować sposób rozwiązania tego problemu w liczbachrzeczywistych, przy użyciu funkcji log i bez tej funkcji.

Ćwiczenie: Dlaczego złym wyborem klucza prywatnego jest 1 i p − 1?

Ćwiczenie: Zaproponować algorytm opierający się na D-H, umożliwiającyuzgodnienie klucza w grupie n uczestników.

Problem logarytmu dyskretnego

Logarytm dyskretny

Niech G będzie grupą cykliczną generowaną przez g . Logarytmemdyskretnym z a ∈ G nazywamy liczbę n = log a taką, że a = gn.

Discrete Logarithm Problem, DLP

Dla danej grupy cyklicznej G = 〈g〉 i elementu a ∈ G obliczyć log a.

Trudność DLP zależy od wybranej grupy:

• W grupie 〈x〉, x ∈ R, problem jest banalny

• W grupie (Zn,+) problem jest prosty (algorytm euklidesa)

• W grupie F∗p nie jest znany algorytm rozwiązujący DLP w czasiewielomianowym (uważa się że nie istnieje w ogólności)

Ćwiczenie: Skoro F∗p ' (Zp−1,+), to dlaczego DLP jest nadal trudny?

Diffie-Hellman problem, DHP

Dla danej grupy cyklicznej G = 〈g〉 i elementów ga, gb ∈ G obliczyć gab.

• Rozwiązanie DLP rozwiązuje DHP

• przypuszcza(!) się, że rozwiązanie DHP ułatwi rozwiązanie DLP

Metody ataku

• Alicja i Bob korzystają z protokołu D-H, prywatne liczby to a, b oraztajny klucz gab

• liczby p, g , ga, gb są znane Ewie

• celem Ewy jest odkrycie gab, czyli wspólnego klucza

Atak brutalny

• Ewa oblicza wszystkie potęgi gk ,

• na liście potęg znajduje ga lub gb

• Ewa musi obliczyć p − 1 potęg gk , szybkie potęgowanie modulo mazłożoność O(log k), jednocześnie może sprawdzać czy obliczonapotęga jest szukaną

• jednak ten algorytm ma złożoność liniową względem rozmiaru grupy,czyli wykładniczą względem liczby cyfr (bitów) p

• Nieco lepszym sposobem jest obliczanie gk dla losowychwykładników, wtedy może znaleźć odpowiedź średnio w p−1

2 próbie(albo już w drugiej, ale musi wierzyć w cuda. . . )

Algorytm Shanksa, baby-step giant-step

Poniższy algorytm wyznacza logarytm dyskretny w czasie O(n1/2+ε),n = |G |:• utwórz listę 1, g , g2, . . . , g j , . . . , g b

√nc − 1

• dla i = 1, 2, . . . obliczaj ag−ib√nc, jeżeli jest na liście stop

• a = g ib√nc+j

Uwaga: jest to nadal złożoność wykładnicza względem liczby cyfr (bitów) idodatkowo wymaga O(n1/2) pamięci.

Inne algorytmy rozwiązujace DLP

• Poligh-Hellman: bardzo wydajny gdy p − 1 ma małe czynniki pierwsze(czyli nie jest tzw. safe prime), korzysta z chińskiego twierdzenia oresztach

• Pollard’s Rho method: niedeterministyczny algorytm oparty nawyszukiwaniu kolizji

• index calculus

• number field sieve: jeden z najlepszych znanych

Wszystkie powyższe algorytmy mają jednak złożoność wykładnicząwzględem liczby bitów pPonieważ potęgowanie modulo jest względnie łatwe (log e dla ne), Alicja iBob mają znaczną przewage nad Ewą.

• w 2015 oku ogłoszono rozwiązanie DLP dla 512 bitowych liczbużywanych (wtedy) powszechnie (SSH, HTTPS, SMTPS). Atakopierał się na wykonaniu wstępnych obliczeń z algorytmu sitaliczbowego (kilka tysięcy Xeonów przez tydzień). Po uzyskaniu tychwyników rozwiązanie DLP zajmuje minutę na 18-rdzeniowym Xeonie.

• Autorzy oszacowali koszt zbudowania komputera łamiącego 1024bitowe liczby na 100 mln $, budżet NSA to miliardy dolarów

• zaleca się stosowanie 2048 bitowych liczb

• w 2016 roku ogłoszono rozwiązanie DLP w Zp dla liczby 768 bitowej.Obliczenia trwały około roku (6600 lat w przeliczeniu na czasprocesora Xeon E2-2660).

• w 2019 roku rozwiązano DLP dla GF (230750) (25 481 219 godzin wprzeliczeniu na jeden procesor Xeon)

• Alicja i Bob mają lekką przewagę gdyż potęgowanie w grupachcyklicznych ma znacznie mniejszą złożoność, także znalezienieodpowiednio dużej liczby pierwszej oraz generatora F∗p ,choć trudne,jest prostsze niż DHP

• z drugiej strony Ewa mając do dyspozycji $$$ może sobie pozwolić nazbudowanie odpowiednio mocnego komputera. Tym bardziej, żeniepraktycznie jest zmieniać p i g zbyt często, więc Ewa może częśćobliczeń wykonać tylko raz.

• Ewa może także studiować matematykę i starać się rozwiązać DLP winny sposób!

• Ewa ma także jeszcze jednego asa w rękawie. . .

Atak aktywny, man-in-the-middle

Oskar zatrudnił się w firmie telekomunikacyjnej i zamontował urządzeniepozwalajace przechwytywać i zmieniać wiadomości.Alicja i Bob uzgadniają p i g , Oskar także zna te liczby.

• Alicja wybiera a i wysyła ga do Boba(tak myśli)

• Oskar przechwytuje wiadomość, wybiera c i wysyła do Alicji i Boba g c

• Bob wybiera b i wysyła gb do Alicji (tak myśli),

• Alicja otrzymuje g c , myśli że to klucz Boba

• Bob otrzymuje g c , myśli że to klucz Alicji

Alicja i Oskar maja zatem uzgodniony klucz gac . Bob i Oskar mająuzgodniony klucz gbc .

• W tym momencie Alicja wysyłając wiadomość szyfruje ją kluczem gac

• Oskar ją rozszyfrowuje i przesyła do Boba zaszyfrowaną kluczem gbc

• tak długo jak pozostanie aktywnym uczestnikiem wymiany, Alicja iBob nie zorientują się, że ich wiadomości są czytane

• zabezpieczeniem przed tego typu atakiem jest np.: podpisaniewiadomości

Algorytm ElGamala

ElGamal encryption, 1985

set-up: Alicja wybiera liczbę pierwszą p, generator g ∈ F∗p oraz liczbę2 ¬ a ¬ p − 2, następnie ogłasza swój klucz publiczny (ga, g , p), liczba ajest jej kluczem prywatnym.

• aby wysłać wiadomość m ∈ F∗p, Bob wybiera 2 ¬ b ¬ p − 2 i obliczas = (ga)b. Szyfrowanie:

C = E (m, b) = (ms, gb)

• Alicja oblicza s = (gb)a oraz s−1 i rozszyfrowuje:

m = D(c, a) = cs−1

Zauważmy, że

• Alicja i Bob używają różnych kluczy

• algorytm szyfrujący i deszyfrujący są różne

• rozszyfrowywanie przez Alicję: gabm/(gb)a

• rozszyfrowywanie przez Boba: gabm/(ga)b

• jeżeli a i b zostały wybrane losowo, to również szyfrogramy mająrozkład losowy

• Ewa podczas łamania algorytmu ElGamala ma te same problemy imoże atakować w ten sam sposób jak przy DHP

• szyfrogram jest dwa razy dłuższy niż tekst jawny

Jeżeli Ewa ma dostęp do Wyroczni rozwiązującej DLP wtedy Ewa potrafizłamać algorytm ElGamala.

Dowód.

• z klucza Alicji: m = c(gb)− log ga

• z klucza Boba: wtedy m = c(log s)−1

Jeżeli Ewa ma dostęp do Wyroczni rozszyfrowywującej algorytmElGamala, wtedy Ewa potrafi rozwiązać DHP:

Dowód.

Niech B = gb. Ewa poleca rozszyfrować wyroczni szyfrogram(1,B) = (c , gb). Wtedy m = (Ba)−1 = g−ab. Zatem Ewa zna gab.

Ćwiczenie: Opisać atak typu man-in-the-middle na algorytm ElGamala.

Ćwiczenie: Alicja i Bob używają ciągle tych samych kluczy. Ewazauważyła to natychmiast (jak?). Oskar wykradł jeden z użytych tekstówjawnych. W jaki sposób Ewa może to wykorzystać?

Ćwiczenie: Ewa z Oskarem bawią się w złośliwości. Modyfikująprzechwycone szyfrogramy: c ′ = ec i przesyłają dalej. W jaki sposób Alicjai Bob mogą się przed tym zabezpieczyć?

Ćwiczenie: Alicja i Bob korzystają z algorytmu ElGamala, (p, g , ga)pozostają ustalone. Bob musi wysłać dużo wiadomości, ale jest trochęleniwy w wybieraniu b. Myśli, że jest sprytny wybierając kolejne klucze wgwzoru

bj = bj−1 + f (j), 1 ¬ j

gdzie f jest funkcją skomplikowaną funkcją łatwą do obliczenia, ale trudnądo odwrócenia. Liczbę b0 Bob trzyma w sekrecie. szyfruje wg schematu

cj = mj(ga)bj

Oskarowi dało się zdobyć wiadomość mn i wszystkie szyfrogramy.Co potrafi odczytać Ewa?

4. RSA

DefinicjaMetody atakuZnajdowanie liczb pierwszych

Algorytm RSA (Rivest-Shamir-Adleman), 1978

set-up Alicja:

• wybiera dwie liczby pierwsze p i q, oblicza n = pq orazφ(n) = (p − 1)(q − 1).

• wybiera 1 < e < φ(n), NWD(e, φ(n)) = 1 i oblicza d = e−1

mod φ(n).

• publikuje klucz publiczny (n, e) i zachowuje d jako klucz prywatny

• aby wysłać wiadomośc m ∈ Zn, Bob oblicza

C = E (m, e) = me mod n

• Alicja deszyfruje:

m = D(c , e) = cd mod n

Dowód poprawności:

• jeżeli NWD(m, n) = 1

cd = med = m1+kφ(n) = m (mφ(n))k = m mod n

• jeżeli NWD(m, n) > 1, to np.: m = sp wtedy NWD(m, q) = 1 orazmφ(q) = 1 mod 1.

mkφ(n) = (m(p−1)(q−1))k = ((mφ(q))k)p−1 = 1 mod q

Zatem mkφ(n) = 1 + tq stąd

mmkφ(n) = m +m t q = m + s t n = m mod n

Metody ataku

Atak brutalny

Ewa zna c , e oraz n. Gdyby Ewa miała dostęp do Wyroczni faktoryzującejduże liczby, wtedy bez trudu obliczyłaby φ(n) = (p − 1)(q − 1). Zatemjest wstanie obliczyć d = e−1 mod φ(n) i rozszyfrowac wiadomość.

• Bezpieczeństwo RSA opiera się na przekonaniu, że faktoryzacja dużejliczby jest problemem trudnym obliczeniowo.

• Aby zwiększyć bezpieczeństwo p i q powinny być duże i o podobnejliczbe bitów, obecnie zaleca się minimalnie 1024 bity.

Niektóre rekordy w faktoryzacji liczb używanych w RSA:

• RSA-100, 330 bitów, 1991, obecnie 72 minuty na Core2Quad Q9300

• RSA-786, 232 cyfry dziesiętne, 2009, 2000 lat w przeliczeniu naówczesny AMD-Opteron

RSA-1024 = (309 cyfr dziesiętnych, nie złamana)135066410865995223349603216278805969938881475605667027524485143851526510604859533833940287150571909441798207282164471551373680419703964191743046496589274256239341020864383202110372958725762358509643110564073501508187510676594629205563685529475213500852879416377328533906109750544334999811150056977236890927563https://en.wikipedia.org/wiki/RSA_numbershttps://en.wikipedia.org/wiki/RSA_Factoring_Challenge

Przerywnik - potegowanie modulo

Naiwny algorytm potegowania modulo

Algorithm 1 NaivePowModInput: a, b, nOutput: ab mod n1: p = a2

2: for i ¬ b do3: p = p ∗ a mod n

• algorytm naiwny wymaga wykonania b mnożeń, co dla liczby 1024bitowej, oznacza 21024 ' 10300 mnożeń (liczba atomów wewszechświecie ∼ 2300

• jeżeli nie istnieje szybszy algorytm to RSA jest niewykonalne wpraktyce, gdyż używając małych liczb nie zapewniamybezpieczeństwa, a używać dużych liczb nie jesteśmy w stanie

Algorytm square-and-multiply

Algorithm 2 SqAndMultPowModInput: a, n

b =∑t hi2i , hi ∈ {0, 1}, ht = 1

Output: ab mod n1: r = a2: for i = t − 1 to 0 do3: r = r2 mod n4: if hi = 1 then5: r = r · a mod n

•ab = aht2

t × aht−12h−1 × · · · × ah12 × ah02

0

• jeżeli b jest liczbą h-bitową to musimy wykonać zawsze h potęgowańoraz średnio 0.5h mnożeń (dokładnie: tyle mnożeń ile jest jedynek wrozwinięciu dwójkowym b)

• dla liczby 1024-bitowej daje to 1536 mnożeń

• Ćwiczenie: Obliczyć 2179 mod 7

• Ćwiczenie: Ile mnożeń należy wykonać dla wykładnika b = 2n + 1 ?

Przyspieszanie algorytmu

• Ilość obliczeń które należy wykonać podczas szyfrowania RSA możnaznacząco zmniejszyć jeżeli wybierzemy wykładnik e o małej wadzeHamminga (liczbe jedynek w rozwinięciu binarnym)

• wybierając jako e małą liczbę (np.: e = 216 + 1) można przyspieszyćjeszcze bardziej

• co ciekawe, ten zabieg nie osłabia RSA,

• nawet dla „szybkiego” e klucz prywatny d = e−1 ma dużą wagęHamminga, zatem deszyfrowanie jest raczej wolne, ale to dobrze!

• Ćwiczenie: Jak Ewa może wykorzystać informację, że d ma 1024bity i wagę Hamminga np.: 2 lub 3?

Niestety nie można użyć małego d aby przyspieszyć deszyfrację(dlaczego?). W praktyce trzeba stosować d przynajmniej 0, 3t bitową (tliczba bitów n).

Deszyfracja z użyciem Chińsiego Twierdzenia o Resztach

Ponieważ Alicja zna p i q może podczas deszfracji postępować wnastępujacy sposób:{

mp = cdp mod p

mp = cdq mod qgdzie

{dp = d mod (p − 1)

dq = d mod (q − 1)

z Chińskiego Twierdzenie o Resztach otrzymuje

m = [qcp]mp + [pcp]mq mod n

gdzie cpq = 1 mod p, cqp = 1 mod q

• całkowita liczba mnożeń jaką musi wykonac Alicja jest taka sama jakw orginalnej metodzie

• jednak gdy p i q mają podobną liczbę bitów, wtedy wszytkieobliczenia wykonywane są na liczbach o połowę krótszych niż wmetodzie orginalnej

• ponieważ złożoność mnożenia rośnie kwadratowo względem liczbybitów, Alicja uzyskuje czterokrotne przyspieszenie obliczeń!

• ma to znaczenie szczególnie, gdy RSA jest używany w urządzeniach omałej mocy obliczeniowej i niewielkiej pamięci

Metody ataku c.d.

choosen plaintext text attack

• Oskar ustalił, że możliwe teksty jawne to {m1, . . . ,mk} i przekazał tąinformację Ewie

• Ewa zna c , e oraz n więc może ZASZYFROWAĆ każdą z wiadomościmi i porównać wynik ze znanym szyfrogramem c

• jeżeli mei = c wtedy Ewa zna tekst jawny oraz klucz (bez faktoryzacji)

choosen ciphertext attack

Ewa zauważyła, że szyfrując m′ = rm zamiast m otrzymuje c ′ = r ec .

• Ewa, podszywając się pod Boba, prosi Alicję o odszyfrowaniewiadomości r ec

• Alicja się zgadza i podaje Ewie wiadomość u

• Ewa dzieli u przez r i w ten sposób odkrywa orginalną wiadomość

• Jak Ewa może przekonać Alicję, aby ta odszyfrowała dla niejwiadomość?

• Alicja i Bob umówili się, że zanim zaczną przesyłać sobie sekrety,Alicja najpierw będzie musiałą potwierdzić swoją tożsamość

• Bob wysyła jej wiadomość z prośbą o odszyfrowanie (challenge).

• W teorii, tylko Alicja potrafi odszyfrować wiadomość, więc jeżeli Bobotrzyma prawidłową odpowiedź, to będzie wiedział, że komunikuje sięz Alicją.

W rzeczywistości, Alicja może być serwerem (np.: bankowym) i jej rolą jestuwierztelnienie swojej tożsamości zanim Bob bedzie chciał przesyłąć jejwrażliwe informację (np.: zalogować się na konto, polecenie przelewu)

malleability

Nawet jeżeli Ewa nie ma możliwości odszyfrowania wiadomości nadal możewykorzystać odkrytą przed chwilą słabość:

• Oskar odkrył, że w szyfrogramie c1, c2, c3, . . . liczba c3 szyfruje pewnąwartość liczbową (kwotę przelewu, wysokość lotu, współrzędną celu)

• Ewa podmienia c3 na r ec3

• Alicja otrzymuje tekst jawny m1,m2, r m3, . . . i wykonuje dalszedziałania z parametrem r m3 zamiast m3

Padding

Sposobem na obronę przed tego typu atakami jest dodanie do wiadomościlosowych bitów

• Bob dodaje na koniec wiadomości k1 bitów zerowych, otrzymuje ciagx1 o długości n + k1 bitów

• wybiera k1 losowych bitów y i za pomocą spytnej funkcji G tworzyciąg x2 o długości n + k1 bitów

• X = x1 xor x2

• za pomocą sprytnej funkcji H przekształca X w ciąg od długości k0• Y = H(X ) xor y

• wysyła wiadomość [X ,Y ]

Bob wybiera G który powiela bity i H które obcina bity

Bob:m: 0110010k1: 00000 k0: 110

G(k0): 110110110110

011001000000xor 110110110110X = 101111110110

H(X) = 011

011xor 110Y = 101

Alicja:

XY: 101111110110 101

H(X) : 011Y : 101xor : 110 ( = k0)

X : 101111110110G(k0): 110110110110xor : 011001000000

m: 0110010

• Użycie przez Boba losowych bitów sprawia, że nawet jeżeli Ewapodejrzewa jaki może być tekst jawny, nie jest w stanie go odtworzyć.

• w powyższym przykładzie Ewa mozę pokusić się jednak nazgadywanie, gdyż funkcje G i H są bardzo słabe z kryptograficznegopunktu widzenia

• Alicja z Bobem moga użyć do stworzenia maski, czyli G (k0),bezpiecznej funkcji haszującej np.: SHA

Analiza statystyczna

Alicja i Bob szyfrują swoje wiadomości w nastepujący sposób:

• kazdy znak wiadomości zamieniają na odpowiadający mu kod ASCII

• wiadomość składa się z zaszyfrowanych kodów ASCII

• Ewa zauważa, że jest to prosty szyfr podstawieniowy na krótkimalfabecie (∼ 100 liter) i łamie go z marszu.

Zabezpieczeniem jest podzielenie wiadomości na bloki, zamiana każdegoznaku w bloku na kod ASCII i połączenie w jedną dużą liczbę:

K R Y P | T O G R | A F I A75828980 | 84797182 | 65707365

Otrzymany szyfr także jest szyfrem podstawieniowym, ale na alfabecie oogromnej liczbie znaków.

Ewa odkryła jeszcze jeden, niespodziewany wektor ataku. . .

side-channel attack

• Ewa wie, że do deszyfrowania uzywany jest algorytm szybkiegopotęgowania modulo

• zaobserwowała asymetrię w algorytmie: czasami wykonwane jest tylkopotęgowanie, a czasami potęgowanie i mnożenie

• Oskar zbudował aparaturę mierzącą pobór mocy i „pożyczył”urządzenie deszyfrujace

Ćwiczenie: Jak zabezpieczyć się przed tego typu atakiem?

Ćwiczenia:

• Oskar wykradł φ(n), dzięki elementarnej matematyce Ewa wyliczyła pi q. Jak?

• Alicja i Bob używają tego samego n, ale różnych kluczy publicznycheA, i eB . Cezary wysłał wiadomość m do obojga. Ewa odkryła, żeNWD(eA, eB) = 1, W jaki sposób znając szyfrogramy cA = meA icB = meB jest wstanie odczytać m?

• Alicja i Bob ustalili n = 35. Ewa przechwyciła c i zaszyfrowałaponownie kluczem Boba. Co otrzymała i dlaczego?

• (*) Alicja przez nieuwagę opublikowała d . Natychmiast stworzyłanowy klucz (e ′, d ′) niezmieniając n. Czy to bezpieczne?

Znajdowanie liczb pierwszych

Podstawowy algorytm znajdujacy liczby pierwsze:

• Za pomocą generatora liczb (psuedo)losowych podaj kandydata

• sprawdź czy jest liczbą pierwszą

• jeżeli pierwsze zakończ, w przeciwnym wypadku powtórz

Problemy

• Jeżeli liczb pierwszych jest mało, wtedy zajmie to zbyt dużo czasu.

• Jeżeli sprawdzenie czy liczba pierwsza trwa długo, wtedy jest toniepraktyczne

Ilość liczb pierwszych

P(x jest pierwsza) ' 2ln x

Dla przykładu, szukajac liczb 512-bitowych mamy p, q ' 2512, wtedy dlalosowej liczby x tej wielkości mamy

P(x jest pierwsza) ' 2512 ln 2

' 1177

Testy pierwszości

Algorytmy testujące pierwszość zwykle dają jedną z dwóch odpowiedzi:

• x jest napewno złożona

• x jest z dużym prawdopodobieństwem pierwsza

W drugim przypadku, algorytm może „skłamać”.

• Aby zminimalizować to zjawisko, wprowadza się dodatkowy parametr.

• Strategia opiera się na przekonaniu, że duża liczba odpowiedzi:x z uzwględnieniem parametru a jest prawdopodobinie pierwszadaje pewność,

Test Fermata

Algorithm 3 FermatPrimalityTestInput: kandydat x , parametr sOutput: „x jest prawdopodobnie pierwsza” albo „x jest złożona”1: for i = 1 to s do2: wylosuj a ∈ {2, 3, . . . , x − 2}3: if ax−1 6= 1 mod x then4: return „x jest złożona”5: return „x jest prawdopodobnie pierwsza”

• algorytm opiera się na wielokrotnym stosowaniu małego twierdzeniaFermata

• istnieją liczby złożone które w teście Fermata zachowują się jak liczbypiersze: liczby Carmichela

• C jest l. C. jeżeli jest liczbą złożoną oraz dla każdej liczby a < Cwzględnie pierwszej z C zachodzi C |aC−1 − 1

• generalnie l. C. maja przynajmniej trzy czynniki pierwsze w dużychpotęgach

• w 1992 udowodniono że jest nieskońćzenie wiele i uzyskano pewneoszacowania na ilość w danym przedziale

• wiadomo, że jest ' 100000 l.C. mniejszych niż 1015

• przykłady 561 = 3 · 11 · 17, 1105, 8911

Test Millera-Rabina

Twierdzenie

Niech x będzie liczba naturalna i niech x − 1 = 2ur , gdzie r jest liczbąnieparzystą. Jeżeli istnieje liczba całkowita a taka, że

ar 6= 1 mod x oraz a2j r 6= x − 1 mod x

dla j = 0, 1, . . . , u − 1 to x jest złożona. W przeciwnym wypadku, x jestprawdopodobnie pierwsza.

Algorithm 4 RabinMillerPrimalityTestInput: kandydat x , x − 1 = 2ur , parametr sOutput: „x jest prawdopodobnie pierwsza” albo „x jest złożona”1: for i = 1 to s do2: wylosuj a ∈ {2, 3, . . . , x − 2}, z = ar mod x3: if z 6= 1 and z 6= x − 1 then4: for j = 1 to u − 1 do5: z = z2 mod x6: if z = 1 then7: return „x jest złożona”8: if z 6= x − 1 then9: return „x jest złożona”10: return „x jest prawdopodobnie pierwsza”

• Algorytm Rabina-Millera nei posiada fałszywych swiadków pierwszości

• aby uzyskac pewność na poziomie 2−80 dla liczby 512-bitowejwystarczy s = 5

• Twierdzenie: dla nieparzystego x przynajmniej 75% liczba z przedziałuod 1 do x − 1 jest świadkami złożoności x

• przy założeniu Uogólnionej Hipotezy Riemanna można przekształcićtest R-M w test jednoznaczny

Test Agrawal-Kayal-Saxena (AKS), 2002

Jest to bezwarunkowy (!) test pierwszości n działajacy w czasiewielomianowym (od liczby cyfr n.

• sprawdź, czy n = ab dla a, b > 1. Jeżeli tak, liczba jest złożona.Koniec.

• znajdź najmniejsze r takie, że rząd r modulo n jest wiekszy niż ln2(n)

• dla każdego a = 1, . . . r sprawdź, czy 1 < NWD(a, n) < n. Jeżeli tak,liczba jest złożona. Koniec.

• Jeżeli r ­ n, to n jest pierwsza. Koniec

• dla kazdego a = 1, . . . ,√φ(r) ln(n) i każdego c = 0, . . . , r sprawdź,

czy ha(c) = 0. Jeżeli nie, to liczba jest złożona.(ha jest pewnym specjalnym wielomianem)

• skoro jesteśmy tutaj, to n jest pierwsza.

5. Szyfry strumieniowe

DefinicjaGeneratory liczb losowychLFSRTrivium

Szyfr strumieniowy

• tekst jawny traktujemy jako ciąg bitów x = (x1, x2, . . . , xn)

• do szyfrowania używamy ciągu bitów s = (s1, s2, . . . , sn) (key stream)

• szyfrogram jest także ciągiem bitów y = (y1, y2, . . . , yn)

yi = E (xi , si ) = xi + si mod 2

xi = D(yi , si ) = yi + si mod 2

Pytanie: Co to przypomina?

• tego typu szyfry są szczególne przydatne w przypadku ograniczonychzasobów, np.: szyfrowanie transmisji głosu w standardzie GSM,bezpieczne telefony, telegraf/dalekopis

• rzadko stosowane w przypadku „komunikacji internetowej”

• typowo, szyfry strumieniowe potrzebują mniej instrukcji procesora iznacznie łatwiej jest zbudować układ realizujący je sprzętowo

• ciąg s niekoniecznie jest kluczem, ale może być

• jeżeli s jest kluczem, to mamy

One-time pad - ponownie

Jeżeli s jest losowym ciągiem bitów, używanym tylko raz, to szyfrstrumieniowy jest bezwarunkowo bezpieczny. Problemem jestwygenerowanie losowego klucza i jego dystrybucja.

• zwykle jednak s jest on jednak generowany przez pewne urządzenie napodstawie rzeczywistego klucza

• bezpieczeństwo szyfrów strumieniowych opiera się na kluczu, adokładniej na sposobie generowania s

• idealny s powinien być wygenerowany ze względnie krótkiego kluczaw taki sposób, aby dla Ewy wyglądał jak ciąg losowy

• w praktyce oznacza to, że prawdopodobieństwo odgadnięcia kolejnegobitu nie powinno być znacznie większe od 1/2.

Generatory liczb losowych

True Random Number Generator, TRNG

Urządzenie bazujące na losowych zjawiskach fizycznych:

• rzut monetą

• szumy tranzystora

• zjawiska atmosferyczne

• rozpad substancji radioaktywnej

Jeżeli istnieje możliwość bezpiecznej dystrybucji klucza, to mamy OTP. Wpraktyce jest to trudne do zrealizowania, ale możliwe.

Pseudorandom Number Generator, PRNG

Funkcja która oblicza kolejne bity na podstawie wartości początkowej seed(ziarna) i wcześniejszych bitów.

Si = f (seed ,Si−1, . . . ,Si−h)

PRNG nie generuje ciągu losowego, gdyż jest całkowicie deterministycznyalgorytm. Cechą dobrego PRNG jest generowanie ciągu, którystatystycznie wygląda jak ciąg losowy.

Cryptografically Secure Pseudorandom Number Generator, CSPRNG

Jest to szczególny przypadek PRNG, który z praktycznego punktuwidzenia jest losowy. Formalnie:Nie istnieje algorytm działający w czasie wielomianowym, który na

podstawie poprzednich bitów poda następny z prawdopodobieństwemwiększym niż 1/2.

• w symulacjach, testach itp., dobrej jakości PRNG są zwyklewystarczające

• CSPRNG jest unikalny dla kryptografii, gdyż jak się okazujestatystycznie losowy ciąg bitów nie musi być bezpieczny z punktuwidzenia kryptografii

• CSPRNG pozwala symulować OTP, przyczym rzeczywisty klucz jestznacznie krótszy

Typowy przykład PRNG ale nie CSPRNG

Linear congruential generator, LCG

S0 = seed

Si = aSi−1 + b mod m

gdzie a, b,m ∈ Z,

Przy odpowiednim doborze parametrów LCG jest dobrej jakości PRNG.

Funkcja rand() z ANSI C:

S0 = 12345

Si = 1103515245Si−1 + 12345 mod 231

• Alicja i Bob ustalili, że bity do szyfrowania strumieniowego będągenerować w paczkach po 100 za pomocą LCG. Ustalili więc liczby100-bitowe a, b,m (Ewa zatem też je zna).

• w bezpieczny sposób (D-H/RSA) wymienili się kluczem(100-bitowym), którego użyją jako ziarno.

Ewa zgadła pierwsze 100 bitów (' 12B = 12 liter = Dzień dobry!)teksty jawnego, wtedy

si = xi + yi mod 2, i = 1, . . . , 100

zna zatem S1 = (s1, . . . , s100) i już może sama generować dalsze bity.

Ćwiczenie: Ewa zgadła 200 bitów ' 25B =moja żona będzie jutro w. Czy może spróbować odtworzyć resztęwiadomosci?

• Alicja i Bob ustalili, że bity do szyfrowania strumieniowego będągenerować w paczkach po 100 za pomocą LCG. Ustalili więc liczby100-bitowe m, seed (Ewa zatem też je zna).

• w bezpieczny sposób (D-H/RSA) wymienili się kluczem(200-bitowym) skałdajacym się z parametrów a, b.

• Ewa zgadała pierwsze 300 bitów (' 37B). Podobnie jak poprzedniooblicza pierwsze 300 bitów si otrzymując S1 = (s1, . . . , s100), S2 i S3.Rozwiązujac ukłąd równań

S2 = aS1 + b mod m

S3 = aS2 + b mod m

Otrzymuje a i b. Nawet jeżeli rozwiazanie nie jest jednoznaczne, toEwie opłaca się użyć atak brutalnego i sprawdzic wszystkieotzrzymane rozwiazania.

• Alicja i Bob ustalili, że bity do szyfrowania strumieniowego będągenerować w paczkach po 100 za pomocą LCG. Ustalili więc liczby100-bitowe m, seed (Ewa zatem też je zna).

• w bezpieczny sposób (D-H/RSA) wymienili się kluczem(200-bitowym) skałdajacym się z parametrów a, b.

• Ewa zgadała pierwsze 300 bitów (' 37B). Podobnie jak poprzedniooblicza pierwsze 300 bitów si otrzymując S1 = (s1, . . . , s100), S2 i S3.Rozwiązujac ukłąd równań

S2 = aS1 + b mod m

S3 = aS2 + b mod m

Otrzymuje a i b. Nawet jeżeli rozwiazanie nie jest jednoznaczne, toEwie opłaca się użyć atak brutalnego i sprawdzic wszystkieotzrzymane rozwiazania.

Linear Feedback Shift Register, LFSR

LFSR

Dane są:

• liczba m - stopień generatora

• feedback coefficients p = (p0, . . . , pm−1)

• bity początkowe seed = (s0, . . . , sm−1)

Kolejne bity generowane są wg wzoru

si+m =m−1∑j=0

pjsi+j mod 2

• sm = sm−1pm−1 + · · ·+ s0p0 mod 2

• sm+1 = smpm−1 + · · ·+ s1p0 mod 2

• LFSR może być łatwo zrealizowany jako układ elektroniczny

Ćwiczenie:Podać wzór ogólny, narysować schemat i wygenerować piewsze 32 bity.

• m = 3, p = (1, 1, 0), seed = (0, 0, 1)

• m = 4, p = (1, 1, 0, 0), seed = (0, 0, 0, 1)

• m = 4, p = (1, 1, 1, 1), seed = dowolny

Twierdzenie

Maksymalna długość sekwencji (przed powtórzeniem) generowanej przezLFSR stopnia m wynosi 2m − 1.

LFSR o parametrach m = 4, p = (1, 1, 0, 0) realizuje maksymalną długość.

Twierdzenie

Jeżelie (p0, . . . , pm−1) tworzą wielomian pierwotny stopnia m nad GF (2)wtedy LFSR generuje ciąg maksymalnej długości.

Wielomian pierwotny to wielomian minimalny elementu pierwotnego αciała GF (2m). Pierwiastkiem tego wielomianu jest α, zaś GF (2m składa sięze wszystkich potęg α.Dla każdego m istniej przynajmniej jeden (a zwykle dużo) wielomianówpierwotnych.

Atak na LFSR

• Alicja z Bobem ustalili że klczem bedzie wektor (p0, . . . , pm−1)

• Ewa zgadła bity tekstu jawnego: x0, . . . , x2m−1, oblicza zatem

si = xi + yi mod 2

• aby odgadnąć klucz musi rozwiązać układ równań liniowych

si+m =m−1∑j=0

pjsi+j mod 2, i = 0, . . . ,m − 1

może to zrobić bez trudu nawet na palcach (dla małych m). Nawetjeżeli musi zgadywać m!

Trivium

• jest połączenie trzech LFSR z dodatniem elementu nieliniowego AND

• długości rejestrów: A: 93,B: 84, C: 111, można go rozpatrywać jakojeden LFSR o długości 288

ai = ci−66 + ci−111 + ci−110 · ci−109 + ai−69

bi = ai−66 + ai−93 + ai−92 · ai−91 + bi−78

ci = bi−69 + bi−84 + bi−83 · bi−82 + ci−87

si = ci−66 + ci−111 + ai−66 + ai−93 + bi−69 + bi−84

Szyfrowanie z Trivium

Alicja z Bobem ustalają 80-bitowy wektory: inicjujący IV oraz klucz

initialization: • na 80 najstarszych bitów rejestru A ładowany jest IV ,• na 80 najstarszych bitów rejestru B ładowany jest klucz,• bity c109, c110, c111 są ustawiane na 1• pozostałe bity są ustawiane na zero

warm-up: wykonywane jest 4× 288 = 1152 pustych przebiegów

własciwe szyfrowanie

Wektor IV nie musi być tajny, wystarczy, że będzie ustalany na każdą sesje.

• szyfr jest nowy (ok 2008) i na razie uznawany z silny, nie są znaneżadne metody ataku

• zaletą jest możliwość implementacji sprzętowej na kilku tysiącachbramek NAND, co pozwala uzyskać temp szyfrowania na poziomie2Gbit/s@125MHz

• w wersji software: 1Gib/s@1.5GHz

Uwagi

RC4 (1987): • klucz długości do 2048 bitów,• w komunikacji internetowej np.: WEP, BitTorrent, Skype, SSL• nie uznawany za kryptograficznie bezpieczny (2015)

A5 (1987) • używany do szyfrowania połączeń głosowych wstandardzie GSM

• Trzy LFSR długości 29,22,23• klucz długości 64 bitów, początkowo tajny, reverse engineered w

1999• nie uznawany za kryptograficznie bezpieczny (2000)

E0 (1998?) • używany w protokole Bluetooth do szyfrowania pakietów• klucz długości 128 bitów• cztery LFSR długości 25, 31, 33, 39 bitów

6. Kryptografia na krzywych eliptycznych

DefinicjaKrzywe eliptyczne w kryptografiiBezpieczeństwo i inne uwagi

Definicja

Definicja

Krzywa eliptyczną nazywamy krzywą daną równaniem

y2 = x3 + ax + b,

gdzie 4a3 + 27b2 6= 0 (brak pierwiastków wielokrotnych) .

Krzywa eliptyczna nie jest eliptyczna.

-4 -2 0 2 4

-4

-2

0

2

4

-4 -2 0 2 4

-4

-2

0

2

4

Krzywa eliptyczna uzupełniona o punkt w nieskończoności posiadastrukturę grupy abelowej:

element neutralny: E =∞element przeciwny: −P = P

dodawanie:• niech P, Q będą punktami na krzywej eliptycznej• prosta PQ przecina krzywą eliptyczną w trzecim punkcie (x , y)

• P + Qdf= (x ,−y)

• specjalny przypadek prosta PQ jest pionowa: wtedy P = −P• specjalny przypadek P = Q = (x , y): zamiast siecznej wybiera się

styczną,• abelowość dodawania jest oczywista

łączność: trudna do sprawdzenia

Krzywe eliptyczne pojawiają się w:

• teorii liczb: dowód Wielkiego Twierdzenia Fermata, faktoryzacja

• geometrii algebraicznej

• topologii

• kryptografii...

Niech p > 3 będzie liczbą pierwszą, a, b ∈ GF (p) i niech 4a3 + 27b2 6= 0mod p.

Krzywa eliptyczna nad ciałem skończonym

E (p, a, b) = {(x , y) ∈ GF (p)2 : y2 + x3 + ax + b} ∪ {∞}

• E (5, 1, 1) = {∞, (0, 1), (0, 4), (2, 1), (2, 4), (3, 1), (3, 4), (4, 2), (4, 3)}

Rysunek: (z wiki) p = 89, y2 = x3

Dodawanie w E (p, a, b)

Niech P = (x1, y1), Q = (x2, y2) i niech O = punkt w nieskończoności

element neutralny: O

element odwrotny: −P = (x1, p − y1)

działanie:• P + O = O + P = P• P + (−P) = (−P) + P = O• P + Q = (x3, y3), gdzie{

x3 = s2 − x1 − x2 mod p

y3 = s(x1 − x3)− y1 mod p

s =

y2−y1x2−x1 mod p P 6= Q2x21+a2y1

mod p P = Q

łączność: trudna

• Oszacowanie Hasse-Weila na liczbę punktów

|]E (p)− (p + 1)| ¬ 2√p

• E (p, a, b) jest zawsze grupą cykliczną lub iloczynem dwóch grupcyklicznych.

Ponieważ E (p, a, b) jest grupą cykliczną (dla dobrych a, b) więc możnazdefiniować poprzez przejście do notacji addytywnej:

• szybkie potęgowanie: obecnie „pomnóż przez dwa i dodaj”

• problem logarytmu dyskretnego:

– dla danych P i T wyznaczyć d takie, że dP = T– obrazkowo trzeba zgadnąć ilość „skoków ” po krzywej

Protokół Diffie-Hellmana

– Alicja i Bob ustalają krzywą E (p, a, b) i element pierwotny P

– wybierają klucze prywatne 1 < kA, kB < ]E

– wymieniają się kAP i kBP

– wyznaczają wspólny klucz kAkBP

– w praktyce haszuje się jedną ze współrzędnych, aby otrzymać kluczdo innych protokołów

• Alicja i Bob nie muszą wymieniać się punktami kAP i kbP, gdyżzawierają one dodatkową informację

• współrzędne punktu Q(x , y) na krzywej eliptycznej są związanedodatkową relacją y2 = x3 + ax + b

• zatem wysłanie tylko współrzędnej x pozwala wyznaczyć dwieprawdopodobne wartości y

• różnią się one znakiem, więc Bob otrzymując od Alicji współrzędna xpunkt kAP może wyznaczyć ±kAP,

• oblicza wtedy ±kBkAP i wysyła Alicji współrzędną x punktu ±kBP• Alicja także może wyznaczyć ±kBkAP

Protokół ElGamala

• Alicja ustala klucz prywatny: kA• Alicja ustala klucz publiczny: krzywą E (p, a, b) i element pierwotny P

i element Q = kAP

• trudnością jest zakodowanie tekstu jawnego w postaci punktów nakrzywej

• Alicja i Bob ustalili, że litery wiadomości kodują wg schematuA→ I1,B → I2 itd.

• Ij są podprzedziałami [0, p − 1] wybranymi w taki sposób, żeprzynajmniej jeden punkt przedziału jest współrzędna x punktukrzywej E

Protokół ElGamala

• Alicja ustala klucz prywatny: kA• Alicja ustala klucz publiczny: krzywą E (p, a, b) i element pierwotny P

i element Q = kAP

• trudnością jest zakodowanie tekstu jawnego w postaci punktów nakrzywej

• Alicja i Bob ustalili, że litery wiadomości kodują wg schematuA→ I1,B → I2 itd.

• Ij są podprzedziałami [0, p − 1] wybranymi w taki sposób, żeprzynajmniej jeden punkt przedziału jest współrzędna x punktukrzywej E

Protokół ElGamala c.d.

• dla każdej litery L Bob wybiera reprezentanta LE

• dla każdego reprezentanta LE Bob wybiera losowe bL

• Dlaczego różnych?

• Bob wysyła wiadomość jako ciąg (bLP, bLQ + LE )

• Alicja odszyfrowywuje LE = bLQ + LE − kAbLP i odkodowywuje wprosty sposób

Rozmiar szyfrogramu jest czterokrotnie większy niż tekstu jawnego

• można go zmniejszyć stosując blokowanie

• lub wysyłanie tylko pierwszej współrzędnej, wtedy trzeba wysłaćdodatkowy bit znaku

• nie jest to jednak potrzebne z punktu widzenia kryptograficznego.

Protokół ElGamala c.d.

• dla każdej litery L Bob wybiera reprezentanta LE

• dla każdego reprezentanta LE Bob wybiera losowe bL

• Dlaczego różnych?

• Bob wysyła wiadomość jako ciąg (bLP, bLQ + LE )

• Alicja odszyfrowywuje LE = bLQ + LE − kAbLP i odkodowywuje wprosty sposób

Rozmiar szyfrogramu jest czterokrotnie większy niż tekstu jawnego

• można go zmniejszyć stosując blokowanie

• lub wysyłanie tylko pierwszej współrzędnej, wtedy trzeba wysłaćdodatkowy bit znaku

• nie jest to jednak potrzebne z punktu widzenia kryptograficznego.

Bezpieczeństwo i inne uwagi

• nie są znane ataki na EllipticDLP inne niż np.: algorytm Shanksa(baby-step, giant-step)

• na TERAZ, nie są znane żadne wyspecjalizowane metody ataku

• przyjmuje się, że bezpieczne liczby pierwsze są rzędu 256 bitów (tensam poziom bezpieczeństwa co 3072-bity w RSA)

• w 2009 przeprowadzono udany atak na 112-bitowe p za pomocą 200konsol Playstation 3 w 3,5 miesiąca

• znacznie łatwiej zwiększyć bezpieczeństwo: dla podwojenie poziomubezpieczeństwa wystarczy wydłużyć p o dwa bity

• istnieją słabe kryptograficznie krzywe, ale można je zidentyfikować

• Implementacja jest bardziej złożona, gdyż wymaga

– arytmetyki w GF (p): dodawanie, mnożenie, odejmowanie,dzielenie

– arytmetyki w E (p): podwajanie, dodawanie, mnożenie przezskalar

• Wydajna implementacja wykonuje potęgowania dla 256bitowychkluczy w czasie rzędu 2-10ms.

• Dedykowane rozwiązania sprzętowe w czasie rzędu 40-100µm

• W porównaniu z RSA wymagania sprzętowe są także znaczniemniejsze

• kryptografia na krzywych eliptycznych została odkryta przez Koblitza(1987) i Millera(1986)

• same krzywe eliptyczne są znane w matematyce od dawna, z uwagi nazastosowania kryptograficzne, stały się przedmiotem intensywnychbadań

• na początku XXI wieku kryptografia na krzywych eliptycznych weszłado powszechnego użycia i zaczynają stawać się popularne

• w 1999 NIST określiła pięć krzywych dla konkretnych liczb 192, 224,256, 384, i 512 bitowych

• krzywe te zostały wybrane pod względem bezpieczeństwa i wydajności

• NIST zarekomendował także PRNG oparty na krzywych eliptycznych,jednak E. Snowden ujawnił, że NSA wiedziała o specyficznejwłasności użytej krzywej, która pozwala na atak przy znajomości 32bitów klucza

• mimo to/dlatego NSA forsowała jego wprowadzenie

• projekt SafeCurves ma na celu znalezienie bezpiecznych krzywych ipoddaniu ich publicznej ocenie

• algorytm potęgowania jest znaczeni bardziej podatny na side-channelattack

• uważa się, kryptografia na krzywych eliptycznych jest bardziejpodatna na atak za pomocą komputera kantowego niż RSA.

• w 1999 NIST określiła pięć krzywych dla konkretnych liczb 192, 224,256, 384, i 512 bitowych

• krzywe te zostały wybrane pod względem bezpieczeństwa i wydajności

• NIST zarekomendował także PRNG oparty na krzywych eliptycznych,jednak E. Snowden ujawnił, że NSA wiedziała o specyficznejwłasności użytej krzywej, która pozwala na atak przy znajomości 32bitów klucza

• mimo to/dlatego NSA forsowała jego wprowadzenie

• projekt SafeCurves ma na celu znalezienie bezpiecznych krzywych ipoddaniu ich publicznej ocenie

• algorytm potęgowania jest znaczeni bardziej podatny na side-channelattack

• uważa się, kryptografia na krzywych eliptycznych jest bardziejpodatna na atak za pomocą komputera kantowego niż RSA.

• w 1999 NIST określiła pięć krzywych dla konkretnych liczb 192, 224,256, 384, i 512 bitowych

• krzywe te zostały wybrane pod względem bezpieczeństwa i wydajności

• NIST zarekomendował także PRNG oparty na krzywych eliptycznych,jednak E. Snowden ujawnił, że NSA wiedziała o specyficznejwłasności użytej krzywej, która pozwala na atak przy znajomości 32bitów klucza

• mimo to/dlatego NSA forsowała jego wprowadzenie

• projekt SafeCurves ma na celu znalezienie bezpiecznych krzywych ipoddaniu ich publicznej ocenie

• algorytm potęgowania jest znaczeni bardziej podatny na side-channelattack

• uważa się, kryptografia na krzywych eliptycznych jest bardziejpodatna na atak za pomocą komputera kantowego niż RSA.

• w 1999 NIST określiła pięć krzywych dla konkretnych liczb 192, 224,256, 384, i 512 bitowych

• krzywe te zostały wybrane pod względem bezpieczeństwa i wydajności

• NIST zarekomendował także PRNG oparty na krzywych eliptycznych,jednak E. Snowden ujawnił, że NSA wiedziała o specyficznejwłasności użytej krzywej, która pozwala na atak przy znajomości 32bitów klucza

• mimo to/dlatego NSA forsowała jego wprowadzenie

• projekt SafeCurves ma na celu znalezienie bezpiecznych krzywych ipoddaniu ich publicznej ocenie

• algorytm potęgowania jest znaczeni bardziej podatny na side-channelattack

• uważa się, kryptografia na krzywych eliptycznych jest bardziejpodatna na atak za pomocą komputera kantowego niż RSA.

Krzywa 25519

Jest to krzywa eliptyczna (w szerszym sensie) dana wzorem

y2 = x3 + 486662x2 + x , p = 2255 − 19, g = (x = 9, y)

]〈g〉 = 2252 + 27742317777372353535851937790883648493

• został podana przez Daniela Bernsteina w 2005, popularność zyskałapo aferze Snowdena (2013) jako alternatywa dla krzywej NIST-256 wzastosowaniach typu Diffie-Hellman

• publiczna, https://cr.yp.to/ecdh.html

• kto używa tej krzywej

– SSH– SSL– TLS

– Jabber– Converstations– FB Messenger

– WhatsApp– Skype– Tor

7. DES

HistoriaDziałanieBezpieczeństwo

Historia

• W 1972 roku NBS (National Bureau of Standards, obecnie NIST)ogłosiło konkurs an opracowanie algorytmu szyfrującego, którymógłby stać się standardem w USA zarówno dla administracji jak i dokomercyjnego użytku

• jednym z wymagań była możliwość wydajnej implementacji sprzętowej

• ostatecznie jako standard została wybrana propozycja Feistela iCoppersmitha (IBM) zgłoszona w 1974 r. oparta na szyfrze LUCIFERopracowany przez Feistela

• w 1977 r. został ogłoszony nowy standard DES (Data EncryptionStandard), początkowo na 10 lat, ale okazał się na tyle dobry, żezostał utrzymany do końca XX w., kiedy zastąpił go nowy standardAES (Advance Encryption Standard)

Historia

• W 1972 roku NBS (National Bureau of Standards, obecnie NIST)ogłosiło konkurs an opracowanie algorytmu szyfrującego, którymógłby stać się standardem w USA zarówno dla administracji jak i dokomercyjnego użytku

• jednym z wymagań była możliwość wydajnej implementacji sprzętowej

• ostatecznie jako standard została wybrana propozycja Feistela iCoppersmitha (IBM) zgłoszona w 1974 r. oparta na szyfrze LUCIFERopracowany przez Feistela

• w 1977 r. został ogłoszony nowy standard DES (Data EncryptionStandard), początkowo na 10 lat, ale okazał się na tyle dobry, żezostał utrzymany do końca XX w., kiedy zastąpił go nowy standardAES (Advance Encryption Standard)

• aby określić siłę proponowanych algorytmów NBS współpracowało zNSA (National Security Agency)

• początkowo propozycja IBM używała klucza 128-bitowego, ale NSAwymusiła (?) zmianę na 56 bitów, co zrodziło podejrzenia, że istniejebackdoor znany NSA lub dysponuje środkami do ataku brute-force

• tym bardziej, że specyfikacja DES jest opisana co do bitu, ale nie byłyznane założenia projektowe

• jednak intensywne badania w latach 80-tych nie ujawniły, żadnychistotnych słabości

• późniejsze ogłoszenie przez twórców założeń projektowych sprawiło,że zarzuty o istnienie backdoora okazała się raczej bezpodstawne

Pomocnicze koncepcje

Według C. Shannona silny szyfr powinien zawierać dwie elementarneoperacje:

confusion: związek miedzy kluczem a szyfrogramem powinien byćniewidoczny (por. atak Kasickiego)

diffusion: pojedynczy znak tekstu jawnego powinien wpływać an wieleznaków szyfrogramu (por. analiza statystyczna)

Szyfry realizujące tylko jedną z nich są uznawane za słabe, wszystkiewspółczesne szyfry blokowe realizują je naprzemiennie.

Schemat (sieć) Feistela

Szyfrowanie:

• X = L‖R (podział na połowy)

• L′ = R

• R ′ = L⊕ F (K ,R)

• Y = L′‖R ′

Deszyfrowanie:

• Y = L′‖R ′

• R = L′

• L = R ⊕ F (K ,R)

• X = L‖R

• połowa tekstu jawnego nie jest szyfrowana

• w praktyce stosuje się schemat Feistela wielokrotnie

• mówi się wtedy o schemacie o i-rundach

• jedynym wymaganiem na funkcję F jest rozmiar wejścia i wyjścia

• o funkcji F można myśleć jak o PRNG

• zatem jeżeli F jest kryptograficznie bezpiecznym PRNG dostajemyrodzaj szyfru jednorazowego

• jednocześnie, dobrze wybrana funkcja F realizuje postulat Shannona

• połowa tekstu jawnego nie jest szyfrowana

• w praktyce stosuje się schemat Feistela wielokrotnie

• mówi się wtedy o schemacie o i-rundach

• jedynym wymaganiem na funkcję F jest rozmiar wejścia i wyjścia

• o funkcji F można myśleć jak o PRNG

• zatem jeżeli F jest kryptograficznie bezpiecznym PRNG dostajemyrodzaj szyfru jednorazowego

• jednocześnie, dobrze wybrana funkcja F realizuje postulat Shannona

Opis DES

• symetryczny szyfr blokowy

• długość bloku 64 bity

• długość klucza 56 bitów

• składa się z 16 rund schematu Feistela

• w każdej rundzie użyty jest inny kluczrundy

• klucz ma zwykle 64 bity, ale co 8. jestbitem parzystości

krok wstępny:

• ew. skrócenie klucza

• permutacja IP(X )

• permutacja PC − 1(K )

• rozdzielenie klucza na połowy C0 i D0

w kazdej z 16 rund:

• generowanie klucza rundy KSi

• Li = Ri−1

• Ri = LI ⊕ F (Ki ,Ri−1)

W kroku ostanim IP−1(L16‖R16)

Initial Permutation:

IP =

58 50 42 34 26 18 10 2 1. bajt60 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7 8. bajt

• jedni twierdzą, że bez znaczenia krytptograficznego, artefakt lat 70’

• inni, że tworzy to dodatkowe rozmycie tekstu jawnego

IP−1 =

40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25

• łatwa realizacja sprzętowa

• programowo troszkę trudniejsza

Przygotowanie klucza

• zwykle jako klucza używa się 64 bitów, każdy 8. bit jest używany jakobit parzystości

• właściwy klucz 56 bitowy powstaje przez ich odrzucenie

• następnie wykonuje się permutację i podział klucza na połowy C0 i D0

PC–1 =

57 49 41 33 25 17 9 63 55 47 39 31 23 151 58 50 42 34 26 18 7 62 54 46 38 30 22

10 2 59 51 43 35 27 14 6 61 53 45 37 2919 11 3 60 52 44 36 21 13 5 28 20 12 4

Funkcja F

• Argumentami F są:

– Ri−1 – prawa połowa z poprzedniej rundy (32 bity)– Ki – klucz rundy (48 bitów)

• Ri−1 jest rozszerzany do 48 bitów i xorowany z Ki

• wynik jest dzielony po 6 bitów, każde 6 bitów przekształcane jestprzez S-boxy w 4 bity

• rezultat jest łączony (32 bity) i permutowany

Funkcja F

• Argumentami F są:

– Ri−1 – prawa połowa z poprzedniej rundy (32 bity)– Ki – klucz rundy (48 bitów)

• Ri−1 jest rozszerzany do 48 bitów i xorowany z Ki

• wynik jest dzielony po 6 bitów, każde 6 bitów przekształcane jestprzez S-boxy w 4 bity

• rezultat jest łączony (32 bity) i permutowany

Funkcja F

• Argumentami F są:

– Ri−1 – prawa połowa z poprzedniej rundy (32 bity)– Ki – klucz rundy (48 bitów)

• Ri−1 jest rozszerzany do 48 bitów i xorowany z Ki

• wynik jest dzielony po 6 bitów, każde 6 bitów przekształcane jestprzez S-boxy w 4 bity

• rezultat jest łączony (32 bity) i permutowany

Funkcja F

• Argumentami F są:

– Ri−1 – prawa połowa z poprzedniej rundy (32 bity)– Ki – klucz rundy (48 bitów)

• Ri−1 jest rozszerzany do 48 bitów i xorowany z Ki

• wynik jest dzielony po 6 bitów, każde 6 bitów przekształcane jestprzez S-boxy w 4 bity

• rezultat jest łączony (32 bity) i permutowany

Rozszerzanie Ri−1

Każde 4 bity są rozszerzane do 6 bitów:

E =

32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 13

12 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1

• niektóre bity są podwajane, żaden nie w tym samym bloku

• „diffusion”: niektóre bity wpływają na inne

S-box

• każdy S-box ma 6 bitów wejścia i 4 bity wyjścia

• jest osiem różnych S-boxów

• S-boxy są elementami nieliniowymi

• najstarszy i najmłodszy bit wejścia określa wiersz, pozostałe 4określają kolumnę

• wpisy w tabeli są dziesiętną reprezentacją wyjścia

S1

x0000x

x0001x

x0010x

x0011x

x0100x

x0101x

x0110x

x0111x

x1000x

x1001x

x1010x

x1011x

x1100x

x1101x

x1110x

x1111x

0yyyy0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 70yyyy1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 81yyyy0 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 01yyyy1 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

S-box

• każdy S-box ma 6 bitów wejścia i 4 bity wyjścia

• jest osiem różnych S-boxów

• S-boxy są elementami nieliniowymi

• najstarszy i najmłodszy bit wejścia określa wiersz, pozostałe 4określają kolumnę

• wpisy w tabeli są dziesiętną reprezentacją wyjścia

S1

x0000x

x0001x

x0010x

x0011x

x0100x

x0101x

x0110x

x0111x

x1000x

x1001x

x1010x

x1011x

x1100x

x1101x

x1110x

x1111x

0yyyy0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 70yyyy1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 81yyyy0 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 01yyyy1 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

Permutacja

Po przejściu przez S-boxy wyjściowe bity są ponownie permutowane(diffusion):

P =

16 7 20 21 29 12 28 171 15 23 26 5 18 31 102 8 24 14 32 27 3 9

19 13 30 6 22 11 4 25

Funkcja F – uwagi

• konstrukcja funkcji F sprawia, że po pięciu rundach każdy bit tekstujawnego wpływa na każdy inny bit

• rozmiar S-boxa tzn.: 4× 16 czyli 264 wpisów, jest prawdopodobnieefektem ograniczeń sprzętowych lat 70-tych

• rozmiar S-boxa bezpośrednio determinuje rozmiar wejścia DES, czyli64 bity

• Po ogłoszeniu standardu DES, dużą podejrzliwość wzbudził brakpodania motywacji do takiej a nie innej konstrukcji S-boxów

• dało to pole do spekulacji, że istnieje backdoor lub inna słabość (iNSA o nich wie)

Funkcja F – uwagi

• konstrukcja funkcji F sprawia, że po pięciu rundach każdy bit tekstujawnego wpływa na każdy inny bit

• rozmiar S-boxa tzn.: 4× 16 czyli 264 wpisów, jest prawdopodobnieefektem ograniczeń sprzętowych lat 70-tych

• rozmiar S-boxa bezpośrednio determinuje rozmiar wejścia DES, czyli64 bity

• Po ogłoszeniu standardu DES, dużą podejrzliwość wzbudził brakpodania motywacji do takiej a nie innej konstrukcji S-boxów

• dało to pole do spekulacji, że istnieje backdoor lub inna słabość (iNSA o nich wie)

Funkcja F – uwagi

• konstrukcja funkcji F sprawia, że po pięciu rundach każdy bit tekstujawnego wpływa na każdy inny bit

• rozmiar S-boxa tzn.: 4× 16 czyli 264 wpisów, jest prawdopodobnieefektem ograniczeń sprzętowych lat 70-tych

• rozmiar S-boxa bezpośrednio determinuje rozmiar wejścia DES, czyli64 bity

• Po ogłoszeniu standardu DES, dużą podejrzliwość wzbudził brakpodania motywacji do takiej a nie innej konstrukcji S-boxów

• dało to pole do spekulacji, że istnieje backdoor lub inna słabość (iNSA o nich wie)

Obecnie wiadomo, że konstrukcja S-boxów jest oparta na następującychzałożeniach:

• 6 bitów wejścia i 4 bity wyjścia

• żaden bit wyjścia nie powinien być „bliski” kombinacji liniowej bitówwejścia

• przy ustalonym najstarszym i najmłodszym bicie, wyjście musi byćróżnowartościowe

• jeżeli zmieni się jeden bit wejścia, to muszą zmienić przynajmniej dwabity wyjścia

• jeżeli zmienią się dwa środkowe bity wejścia, to muszą zmienićprzynajmniej dwa bity wyjścia

Obecnie wiadomo, że konstrukcja S-boxów jest oparta na następującychzałożeniach:

• 6 bitów wejścia i 4 bity wyjścia

• żaden bit wyjścia nie powinien być „bliski” kombinacji liniowej bitówwejścia

• przy ustalonym najstarszym i najmłodszym bicie, wyjście musi byćróżnowartościowe

• jeżeli zmieni się jeden bit wejścia, to muszą zmienić przynajmniej dwabity wyjścia

• jeżeli zmienią się dwa środkowe bity wejścia, to muszą zmienićprzynajmniej dwa bity wyjścia

Obecnie wiadomo, że konstrukcja S-boxów jest oparta na następującychzałożeniach:

• 6 bitów wejścia i 4 bity wyjścia

• żaden bit wyjścia nie powinien być „bliski” kombinacji liniowej bitówwejścia

• przy ustalonym najstarszym i najmłodszym bicie, wyjście musi byćróżnowartościowe

• jeżeli zmieni się jeden bit wejścia, to muszą zmienić przynajmniej dwabity wyjścia

• jeżeli zmienią się dwa środkowe bity wejścia, to muszą zmienićprzynajmniej dwa bity wyjścia

• jeżeli zmienią się któryś z dwóch pierwszych bitów wejścia, to wyjściemusi być inne

• dla każdych dwóch ciągów wejściowych (48 bitów) różniących się na 6bitach nie więcej niż 8 z 32 możliwych wyjść może różnić się na 6bitach

• identyczne wyjście jest możliwe tylko dla trzech sąsiadującychS-boxów

S2

x0000x

x0001x

x0010x

x0011x

x0100x

x0101x

x0110x

x0111x

x1000x

x1001x

x1010x

x1011x

x1100x

x1101x

x1110x

x1111x

0yyyy0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 100yyyy1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 51yyyy0 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 151yyyy1 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

• jeżeli zmienią się któryś z dwóch pierwszych bitów wejścia, to wyjściemusi być inne

• dla każdych dwóch ciągów wejściowych (48 bitów) różniących się na 6bitach nie więcej niż 8 z 32 możliwych wyjść może różnić się na 6bitach

• identyczne wyjście jest możliwe tylko dla trzech sąsiadującychS-boxów

S2

x0000x

x0001x

x0010x

x0011x

x0100x

x0101x

x0110x

x0111x

x1000x

x1001x

x1010x

x1011x

x1100x

x1101x

x1110x

x1111x

0yyyy0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 100yyyy1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 51yyyy0 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 151yyyy1 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

• powyższe zasady nie były znane do 1990,

• zbiegiem okoliczności (?) w tym samy roku odkryto zaawansowanysposób ataku kryptoanalizę różnicową

• DES okazał się odporny

• twórcy twierdzą, że znali tą metodę podczas projektowania i ichkonstrukcja miała być odporna

• powyższe zasady nie były znane do 1990,

• zbiegiem okoliczności (?) w tym samy roku odkryto zaawansowanysposób ataku kryptoanalizę różnicową

• DES okazał się odporny

• twórcy twierdzą, że znali tą metodę podczas projektowania i ichkonstrukcja miała być odporna

Generowanie klucza rundy

W korku wstępnym klucz został podzielony na dwie połówki C0 i D0

• w każdej rundzie „key schedule”wykonywane jest

• obrót (bitowy) w lewo każdej połówki ojeden lub dwa bity w zależności odnumeru rundy

• wynik jest łączony, permutowany iużywany jako klucz rundy Ki

• oraz przekazywany do następnej rundy

i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16LSi 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

permutacja PC-2

• permutuje i skraca klucz

• osiem bitów: 9,18,22,25,35,38,43,54 nie jest używane w kluczy rundy

PC − 2 =

14 17 11 24 01 05 03 2815 06 21 10 23 19 12 0426 08 16 07 27 20 13 0241 52 31 37 47 55 30 4051 45 33 48 44 49 39 5634 53 46 42 50 36 29 32

Key schedule – podsumowanie

• można pokazać, że C0 = C16 i D0 = D16 – własność ta zostanie użytado deszyfrowania

• każdy klucz rundy Ki składa się z 48 bitów klucza K

• każdy bit jest używany w mniej więcej 14 rundach

Deszyfracja z DES

• schemat Feistela jest odwracalny, zatem do deszyfracji wystarczy użyćDES w odwrotnej kolejności

• tzn do szyfrogramu stosuje się najpierw IP potem 16 rund, ale zkluczami rund w odwrotnej kolejności

• na koniec IP−1 co daje tekst jawny

• jedynym problemem jest uzyskanie klucza rundy

• można sprawdzić, że

K16 = PC-2(C16‖D16) = PC-2(C0‖D0) = PC-2(PC-1(K ))

K15 = PC-2(C15‖D15) = PC-2(RS(C16)‖RS(D16)) == PC-2(RS(C0)‖RS(D0))

Deszyfracja z DES

• schemat Feistela jest odwracalny, zatem do deszyfracji wystarczy użyćDES w odwrotnej kolejności

• tzn do szyfrogramu stosuje się najpierw IP potem 16 rund, ale zkluczami rund w odwrotnej kolejności

• na koniec IP−1 co daje tekst jawny

• jedynym problemem jest uzyskanie klucza rundy

• można sprawdzić, że

K16 = PC-2(C16‖D16) = PC-2(C0‖D0) = PC-2(PC-1(K ))

K15 = PC-2(C15‖D15) = PC-2(RS(C16)‖RS(D16)) == PC-2(RS(C0)‖RS(D0))

Implementacja

• sprzętowo: łatwa i bezpośrednia, możliwe miniaturyzacja, prędkośćszyfrowania 1Gbit/s

• programowo: trudna i mało wydajna, prędkość szyfrowania od100Mbit/s do 500Mbit/s 2GHz CPU

Bezpieczeństwo

Od samego początku dESowi zarzucano dwie rzeczy:

• mała przestrzeń kluczy – podatność na atak brutalny

• brak informacji o przesłankach stojących za konstrukcją S-boxów –podejrzenia o istnienie znanej twórcom metody ataku wykorzystującejwłasności matematyczne S-boxów

Czas pokazał, że pierwszy zarzut jest słuszny, ale dopiero po wielu latachudało się przeprowadzić skuteczny atak brutalny.

Atak brutalny

Exchaustive Key Search

• znana jest para (X ,Y = DESK (X ), ale nie znany jest klucz K

• atak brutalny polega na testowaniu wszystkich 256 kluczy tak długoaż DES−1Ki

(Y ) = X

Historia ataków brutalnych:

1977: Diffie i Helmann okreslili koszt zbudowania wyspecjalizowanejmaszyny do łamania DES w jeden dzień na 20 mln $

1981: Diffie zrewidował oszacowanie na 50 min $ w dwa dni

1993: Wiener oszacował koszta na 36 godzin na 1 mln $

1997: DES Challenge I: obliczenia rozproszone w internecie, kilka tysięcykomputerów, 96 dni

1998: DES Challenge II: obliczenia rozproszone w internecie, kilka tysięcykomputerów, 39 dni

1998: Deep Crack: urządzenie łamiące DES w 56h, koszt 250 000 $

1999: DES Challenge III: obliczenia rozproszone i Deep Crack, 22 godziny

2006: COPACABANA: urządzenie łamiące DES w 7 dni, koszt 10 000 $,potem w mniej niż dzień

obecnie: wyspecjalizowany układy, kilka godzin

Historia ataków brutalnych:

1977: Diffie i Helmann okreslili koszt zbudowania wyspecjalizowanejmaszyny do łamania DES w jeden dzień na 20 mln $

1981: Diffie zrewidował oszacowanie na 50 min $ w dwa dni

1993: Wiener oszacował koszta na 36 godzin na 1 mln $

1997: DES Challenge I: obliczenia rozproszone w internecie, kilka tysięcykomputerów, 96 dni

1998: DES Challenge II: obliczenia rozproszone w internecie, kilka tysięcykomputerów, 39 dni

1998: Deep Crack: urządzenie łamiące DES w 56h, koszt 250 000 $

1999: DES Challenge III: obliczenia rozproszone i Deep Crack, 22 godziny

2006: COPACABANA: urządzenie łamiące DES w 7 dni, koszt 10 000 $,potem w mniej niż dzień

obecnie: wyspecjalizowany układy, kilka godzin

DES okazał się odporny na (teoretycznie) potężne ataki:

• kryptoanaliza różnicowa (Biham, Shamir, 1990)

• kryptoanaliza liniowa (Matsui, 1993)

Inne szyfry blokowe

3DES: Y = DESK3DESK2DESK1(X ) lub Y = DESK3DES−1K2

DESK1(X )zwykle K3 = K1, obecnie uważany za bezpieczny, często używany,potrojenie trudności ataku brutalnego

DESX, key whitening: Y = DESK (X ⊕ K2)⊕ K3uważany za bezpieczny, atak brutalny wymaga 2120 prób

AES: standard NIST od 2001, oparty na pierścieniu GF (28)[x ],

• blok 128 bitów, klucz 128,192,256 bitów, wydajny sprzętowo iprogramowo• stosowany powszechnie: TLS, IEEE 802.11i (wi-fi), SSH, Skype• NSA zezwoliła na używanie AES (jako pierwszego publicznego

algorytmo) do szyfrowania dokumentów o klauzuli SECRET iwyżej

Inne szyfry blokowe c.d.

PRESENT: „lekki” szyfr, zaprojekotwany dla RFID, blok 64 bity, klucz80 lub 128 bitów

inne Feiste-type: Blowfish, Twofisfh, RC6

inne non-Feistel: IDEA, AES

8. Ogólnie o szyfrach blokowych

Tryby pracy

Tryby pracy

• zwykle tekst jawny ma więcej niż kilka bajtów: 1 strona pdf ∼20kB,arkusz ∼100kB, zdjęcie: ∼2MB itd

• istnieje kilka możliwości podziału tekstu-jawnego na bloki

• dobrze by było, aby dodkonany podział nie obniżał bezpieczeństwa

• oraz dodatkowo zapewniał obronę przed modyfikacją cześciszyfrogramu

• możliwe jest użycie szyfru blokowego jako narzędzia douwierzytelniania, ustalenia klucza i PRNG do szyfru strumieniowego

W dalszej części:

• X - tekst jawny, Y - szyfrogram, K - klucz

• (E ,D) - szyfr blokowy

• b - długość bloku (w bitach), k - długość klucza (w bitach)

ECB – Electronic Codebook Mode

ECB

• X = X1‖X2‖ . . . , ‖Xn

• Yi = EK (Xi ), Xi = DK (Xi )

• Y = Yi‖Y2‖ . . . ‖Yn

• łatwe zrównoleglenie,

• bloki są niezależne, uszkodzenie jednego nie wpyływa na inne

• dla danego bloku Xi wszystkie możliwe szyfrogramy są zawarte wzbiorze {EK (Xj)} o mocy 2b

• tryb ECB może być traktowany jako (gigantyczna) książka kodowa

ECB – Electronic Codebook Mode

ECB

• X = X1‖X2‖ . . . , ‖Xn

• Yi = EK (Xi ), Xi = DK (Xi )

• Y = Yi‖Y2‖ . . . ‖Yn

• łatwe zrównoleglenie,

• bloki są niezależne, uszkodzenie jednego nie wpyływa na inne

• dla danego bloku Xi wszystkie możliwe szyfrogramy są zawarte wzbiorze {EK (Xj)} o mocy 2b

• tryb ECB może być traktowany jako (gigantyczna) książka kodowa

Wyciek informacji:

• zwykle tekst jawny składa się z wielupowtarzających się bloków, które dladanego klucza są zawsze szyfrowane wten sam sposób.

• po zmianie klucza, raz rozpoznany wzórpozostaje nadal widoczny

• zachowane są informacje statystyczne

Zamiana/podmiana wybranych blokówskutkuje zamianą/podmianąodpowiadających bloków w tekście jawnym.

Rysunek: Typowy przykładpowtarzających się bloków

Wyciek informacji:

• zwykle tekst jawny składa się z wielupowtarzających się bloków, które dladanego klucza są zawsze szyfrowane wten sam sposób.

• po zmianie klucza, raz rozpoznany wzórpozostaje nadal widoczny

• zachowane są informacje statystyczne

Zamiana/podmiana wybranych blokówskutkuje zamianą/podmianąodpowiadających bloków w tekście jawnym.

Rysunek: Typowy przykładpowtarzających się bloków

Przykład ataku

Alicja i Bob są bankami porozumiewającymi się za pomocą protokołu:

A: Hello -- B: potw. HelloA: nr konta -- B: potw. nr kontaA: kwota -- B: potw. przelewu

Każda operacja jest blokiem szyfrowanym w trybie ECB, klucz nie jestczęsto zmieniany.

• Ewa zakłada konto w obu bankach

• Oskar podsłuchuje kanał transmisji i przechwytuje szyfrowane bloki

• mimo, że nie potrafi odszyfrować bloków łatwo identyfikuje kolejnebloki

Przykład ataku c.d.

• Ewa wysyła przelewy na 1 PLN z A do B

• łatwo identyfikuje swoje transakcje, zapamiętuje bloki

• ponieważ klucz nie jest zmieniany, więc identyfikuje również inneprzelewy

• Ewa podmienia w wybranych transakcjach blok A: numer konta naswój blok

• Alicja i Bob mogą teraz to wykryć, ale Ewa może mieć szczęście itrafić jej się duży przelew

• Ewa zamyka konta w obu bankach, Oskara likwiduje podsłuch

• oboje jadą do kraju, który nie ma podpisanej umowy o ekstradycji iradośnie witającego nowych obywateli

Przykład ataku c.d.

• Ewa wysyła przelewy na 1 PLN z A do B

• łatwo identyfikuje swoje transakcje, zapamiętuje bloki

• ponieważ klucz nie jest zmieniany, więc identyfikuje również inneprzelewy

• Ewa podmienia w wybranych transakcjach blok A: numer konta naswój blok

• Alicja i Bob mogą teraz to wykryć, ale Ewa może mieć szczęście itrafić jej się duży przelew

• Ewa zamyka konta w obu bankach, Oskara likwiduje podsłuch

• oboje jadą do kraju, który nie ma podpisanej umowy o ekstradycji iradośnie witającego nowych obywateli

Przykład ataku c.d.

• Ewa wysyła przelewy na 1 PLN z A do B

• łatwo identyfikuje swoje transakcje, zapamiętuje bloki

• ponieważ klucz nie jest zmieniany, więc identyfikuje również inneprzelewy

• Ewa podmienia w wybranych transakcjach blok A: numer konta naswój blok

• Alicja i Bob mogą teraz to wykryć, ale Ewa może mieć szczęście itrafić jej się duży przelew

• Ewa zamyka konta w obu bankach, Oskara likwiduje podsłuch

• oboje jadą do kraju, który nie ma podpisanej umowy o ekstradycji iradośnie witającego nowych obywateli

Przykład ataku c.d.

• Ewa wysyła przelewy na 1 PLN z A do B

• łatwo identyfikuje swoje transakcje, zapamiętuje bloki

• ponieważ klucz nie jest zmieniany, więc identyfikuje również inneprzelewy

• Ewa podmienia w wybranych transakcjach blok A: numer konta naswój blok

• Alicja i Bob mogą teraz to wykryć, ale Ewa może mieć szczęście itrafić jej się duży przelew

• Ewa zamyka konta w obu bankach, Oskara likwiduje podsłuch

• oboje jadą do kraju, który nie ma podpisanej umowy o ekstradycji iradośnie witającego nowych obywateli

• bloki mogły być szyfrowane wielokrotnie AES z 256 bitowym kluczem

• ale Ewa nie odszyfrowała żadnego bloku, mimo to dokonała udanegoataku

• w rzeczywistości stosuje się rozmaite informacje uwierzytelniającesprawdzające spójność

• Alicja i Bob po odkryciu kradzieży zdali sobie sprawę, że prostymzabezpieczeniem przed tym atakiem była. . .

• częsta zmiana klucza

• bloki mogły być szyfrowane wielokrotnie AES z 256 bitowym kluczem

• ale Ewa nie odszyfrowała żadnego bloku, mimo to dokonała udanegoataku

• w rzeczywistości stosuje się rozmaite informacje uwierzytelniającesprawdzające spójność

• Alicja i Bob po odkryciu kradzieży zdali sobie sprawę, że prostymzabezpieczeniem przed tym atakiem była. . .

• częsta zmiana klucza

CBC - Cipher Block Chaining

CBC

IV - losowy wektor inicjalizujący

Szyfrowanie:

• y1 = EK (x1 ⊕ IV )

• yi = EK (xi ⊕ yi−1)

Deszyfrowanie:

• x1 = DK (y1)⊕ IV

• xi = DK (yi )⊕ yi−1

• IV nie musi być tajny, ani (mocno) losowy

• zmiana IV skutkuje różnymi szyfrogramami dla tego samego tekstujawnego

• zmiana jednego bloku powoduje zaburzenie spójności szyfrogramu,

• następne bloki rozszyfrowywują się do czegoś losowego

wracając do przykładu:

• Ewa nie może celowo manipulować przelewami

• może jednak mieć żal do Boba

• podmieniać losowo bloki powoduje, ze przelewy będą wykonywane nalosowe konta w losowej kwocie

• IV nie musi być tajny, ani (mocno) losowy

• zmiana IV skutkuje różnymi szyfrogramami dla tego samego tekstujawnego

• zmiana jednego bloku powoduje zaburzenie spójności szyfrogramu,

• następne bloki rozszyfrowywują się do czegoś losowego

wracając do przykładu:

• Ewa nie może celowo manipulować przelewami

• może jednak mieć żal do Boba

• podmieniać losowo bloki powoduje, ze przelewy będą wykonywane nalosowe konta w losowej kwocie

• IV nie musi być tajny, ani (mocno) losowy

• zmiana IV skutkuje różnymi szyfrogramami dla tego samego tekstujawnego

• zmiana jednego bloku powoduje zaburzenie spójności szyfrogramu,

• następne bloki rozszyfrowywują się do czegoś losowego

wracając do przykładu:

• Ewa nie może celowo manipulować przelewami

• może jednak mieć żal do Boba

• podmieniać losowo bloki powoduje, ze przelewy będą wykonywane nalosowe konta w losowej kwocie

OFB – Output Feedback

OFB

IV - losowy wektor inicjalizujący

Szyfrowanie:

• s1 = EK (IV ), y1 = x1 ⊕ s1

• si = EK (si−1), yi = xi ⊕ si

Deszyfrowanie:

• s1 = EK (IV ), x1 = y1 ⊕ s1

• si = EK (si−1), xi = yi ⊕ si

• w trybie OFB szyfr blokowy jest generowany jako generator klucza{si} do szyfru strumieniowego

• tekst jawny nie jest szyfrowany wybranym szyfrem tylko czymś nakształt szyfru jednorazowego

• IV nie musi być tajny, musi być zmieniany

• strumień klucza może być wyznaczony niezależnie od szyfrowania

CFB – Cipher Feedback

CFB

IV - losowy wektor inicjalizujący

Szyfrowanie:

• y1 = EK (IV )⊕ x1

• yi = EK (yi−1)⊕ xi

Deszyfrowanie:

• x1 = EK (IV )⊕ y1

• xi = EK (yi−1)⊕ yi

• w trybie CFB szyfr blokowy jest generowany jako generator klucza.jak klucz wykorzystywany jest poprzedni blok szyfrogramu

• tekst jawny nie jest szyfrowany wybranym szyfrem tylko czymś nakształt szyfru jednorazowego

• IV nie musi być tajny, musi być zmieniany

• strumień klucza jest w tym przypadku nieprzewidywalny bo mocnozależy od szyfrowanego tekstu

Counter – CTR

CTR

IV - losowy wektor inicjalizujący, CTR – licznik

Szyfrowanie:

• yi = EK (IV ‖CTRi )⊕ xi

Deszyfrowanie:

• xi = EK (IV ‖CTRi )⊕ yi

• ciąg IV ‖CTRi nie musi być tajny, Alicja może go wygenerować iwysłać Bobowi

• CTR powinien być różnowartościowy

• łatwo się zrównolegla

Wielokrotne szyfrowanie

Szyfrowanie podwójne

Dwa szyfry blokowe E ′ i E ′′

szyfrowanie: Y = E ′′K2(E′K1(X ))

deszyfrowanie: Y = D ′K1(D′′K2(Y ))

• teoretycznie, przestrzenie kluczy zostały pomnożone mamy zatemk ′ × k ′′ kluczy i taką samą trudność problemu

• w rzeczywistości trudność problemu wynosi k ′ + k ′′, ponieważ możnaprzeprowadzić atak meet-in-the-mdidle

meet-in-the-middle, Merkle-Helmann, 1981

Input: szyfry E ′ i E ′′ o przestrzeniach kluczy K′ i K′′ para (X ,Y ) taka, żeY = E ′′K2(E

′K1(X ))

Output: para kluczy K1, K21: for all k1 ∈ K′ do2: oblicz z ′ = E ′k1(X ) i zachowaj (z ′, k1)3: for all k2 ∈ K′′ do4: oblicz z ′′ = D ′′k2(Y )5: for all z ′ = z ′′ do6: return (k1, k2)

• obliczenia wstępne zajmują O(2k′) czasu

• szukanie kolizji zajmuje O(2k′′) czasu

• razem zajmuje to O(2k′+ 2k

′′) czasu zamiast O(2k

′+k ′′)

• tego powodu podwójne szyfrowanie nie jest warte zachodu

Szyfrowanie potrójne

Trzy szyfry blokowe: E ′,E ′′,E ′′′

• ( pierwsza wersja ) X = E ′′′K3 E′′K2

E ′K1(X )

• ( druga wersja ) X = E ′′′K3 D′′K2

E ′K1(X )

• schemat w drugiej wersji wprowadza kompatybilność z szyfrowaniempojedynczym dla E ′′′ = E ′′ = E ′

• nadal można przeprowadzić atak meet-in-the-middle, ale teraz trzebawybrać miejsce

• efektywna długość klucza wynosi zatem k ′ + k ′′ lub k ′ + k ′′′ zamiastk ′ + k ′′ + k ′′′

• złożoność ataku brutalnego jest typu O(2k′+ 2k

′′+k ′′′)

Key whitening

Key whitening

Szyfr blokowy E i długości bloku b i dwa dodatkowe klucze o długości b

szyfrowanie: X = EK (X ⊕ K1)⊕ K2

deszyfraowanie: X = DK (Y ⊕ K2)⊕ K1

• jest to prosta metoda wydłużenia klucza jako obrona przeciwkoatakowi brutalnemu,

• złożoność O(2k+b) z powodu ataku meet-in-the-middle

• nie poprawia siły samego szyfru

• praktycznie nie wpływa na czas szyfrowania

• AES stosuje key whitenig jako pierwszy krok

Atak brutalny

Exahaustive Key Search

Input: przestrzeń kluczy K, W - wyrocznia określająca czy klucz jestprawidłowy

Output: klucz1: ustaw elementy K losowo2: for all ki ∈ K do3: if W (ki ) then4: return ki

• permutacja przestrzeni kluczy ma na celu zbliżenie złożoności dośredniej

Wyrocznia w praktyce:

• znajomość par tekst jawny – szyfrogram, jeżeli znane jest dużo par, tomożna oszacować prawdopodobieństwo sukcesu

• znajomość szyfrogramów i pewnych informacji o tekście jawnym (np.:jest po angielsku i zawiera pewne zwroty)

• znajomość zależności, które musi spełniać klucz

Atak słownikowy

Input: X ustalony tekst jawny, Yi = EKi(X )

1: // budowanie słownika2: wylosuj M kandydatów na klucz3: dla każdego z nich oblicz EK (X ) i zapamiętaj (EK (X ),K )4: // właściwy atak5: for all Yi do6: if Yi = EK (X ) then7: return (i ,K )

• częst znane są dodatkowe informacje o rozkładzie kluczy (kluczezawierają imiona córek, daty rocznic, ciąg ’1234qwerty’)

• losowanie powinno się odbyć według tego rozkładu

• większy słownik oznacza większe prawdopodobieństwo sukcesu, przyczym słownik musi być przygotowany tylko raz

• dla jednostajnego rozkładu kluczy

psukces ' 1− e−MT/N

gdzie M rozmiar słownika, N rozmiar przestrzeni kluczy, T ilość prób.(dla jakiego M, p > 1/2?)

• częst znane są dodatkowe informacje o rozkładzie kluczy (kluczezawierają imiona córek, daty rocznic, ciąg ’1234qwerty’)

• losowanie powinno się odbyć według tego rozkładu

• większy słownik oznacza większe prawdopodobieństwo sukcesu, przyczym słownik musi być przygotowany tylko raz

• dla jednostajnego rozkładu kluczy

psukces ' 1− e−MT/N

gdzie M rozmiar słownika, N rozmiar przestrzeni kluczy, T ilość prób.(dla jakiego M, p > 1/2?)

Inne atak typu brute-force

• skonstruowanie najpierw książki kodowej zawierającej wszystkiemożliwe rekordy (EK (X ),X ) sprowadza atak do wyszukaniaodpowiedniego wpisu,

• Helmann, 1980: time-memory tradeoff

• Merkle-Helmann, 1981: meet-in-the-middle

• Oechlin, 2003: rainbow tables

9. Podpis cyfrowy

Motywacja

Alicja i Bob mają już algorytmy, które dzisiaj (!):

• zapewniają bezpieczne ustalenie klucza (np.: Diffie-Helmann)

• bezpieczne szyfrowanie (np.: 3DES, RSA, AES)

• prawidłowo użyte pozwalają obronę przed złośliwościami Ewy

Czasami jednak obie strony chcą jednocześnie móc się i bezpiecznikomunikować, i oszukiwać.

Alicja i Bob mają już algorytmy, które dzisiaj (!):

• zapewniają bezpieczne ustalenie klucza (np.: Diffie-Helmann)

• bezpieczne szyfrowanie (np.: 3DES, RSA, AES)

• prawidłowo użyte pozwalają obronę przed złośliwościami Ewy

Czasami jednak obie strony chcą jednocześnie móc się i bezpiecznikomunikować, i oszukiwać.

• Alicja jest dealerem samochodowym, Bob klientem

• Bob zamawia u Alicji samochód:

– za pomocą DH uzgadniają klucz– z użyciem AES Bob wysyła do Alicji model i kolor– Alicja odszyfrowuje i cieszy się, bo właśnie dostała zamówienie

na samochód za 500 000 PLN w kolorze miętowo-różowym

• trzy tygodnie później, podczas odbioru Bob orientuje się że ten kolormu jednak nie odpowiada

• Alicja jednak nie robi wyjątków - „zamawiasz – płacisz”

• Bob jednak uparcie twierdzi, że nie zamawiał w tym kolorze

• Alicja jest dealerem samochodowym, Bob klientem

• Bob zamawia u Alicji samochód:

– za pomocą DH uzgadniają klucz– z użyciem AES Bob wysyła do Alicji model i kolor– Alicja odszyfrowuje i cieszy się, bo właśnie dostała zamówienie

na samochód za 500 000 PLN w kolorze miętowo-różowym

• trzy tygodnie później, podczas odbioru Bob orientuje się że ten kolormu jednak nie odpowiada

• Alicja jednak nie robi wyjątków - „zamawiasz – płacisz”

• Bob jednak uparcie twierdzi, że nie zamawiał w tym kolorze

• Alicja jest dealerem samochodowym, Bob klientem

• Bob zamawia u Alicji samochód:

– za pomocą DH uzgadniają klucz– z użyciem AES Bob wysyła do Alicji model i kolor– Alicja odszyfrowuje i cieszy się, bo właśnie dostała zamówienie

na samochód za 500 000 PLN w kolorze miętowo-różowym

• trzy tygodnie później, podczas odbioru Bob orientuje się że ten kolormu jednak nie odpowiada

• Alicja jednak nie robi wyjątków - „zamawiasz – płacisz”

• Bob jednak uparcie twierdzi, że nie zamawiał w tym kolorze

W sądzie:

• prawnik Alicji przedstawia dowód w postaci zaszyfrowanegozamówienia i twierdzi, że Bob zamówił, bo jest zaszyfrowaneustalonym wcześniej kluczem

• prawnik Boba odrobił lekcje i twierdzi, że

• Alicja spreparowała zamówienie, bo ona także posiada właściwy klucz

• z uwagi na symetryczną naturę użytego protokołu, Sędzia nie potrafizatem ustalić która ze stron mówi prawdę

Kryptografia symetryczna nie pozwala na ustalenie która ze stronwygenerowała zaszyfrowaną wiadomość

W sądzie:

• prawnik Alicji przedstawia dowód w postaci zaszyfrowanegozamówienia i twierdzi, że Bob zamówił, bo jest zaszyfrowaneustalonym wcześniej kluczem

• prawnik Boba odrobił lekcje i twierdzi, że

• Alicja spreparowała zamówienie, bo ona także posiada właściwy klucz

• z uwagi na symetryczną naturę użytego protokołu, Sędzia nie potrafizatem ustalić która ze stron mówi prawdę

Kryptografia symetryczna nie pozwala na ustalenie która ze stronwygenerowała zaszyfrowaną wiadomość

W sądzie:

• prawnik Alicji przedstawia dowód w postaci zaszyfrowanegozamówienia i twierdzi, że Bob zamówił, bo jest zaszyfrowaneustalonym wcześniej kluczem

• prawnik Boba odrobił lekcje i twierdzi, że

• Alicja spreparowała zamówienie, bo ona także posiada właściwy klucz

• z uwagi na symetryczną naturę użytego protokołu, Sędzia nie potrafizatem ustalić która ze stron mówi prawdę

Kryptografia symetryczna nie pozwala na ustalenie która ze stronwygenerowała zaszyfrowaną wiadomość

• problem pozwala rozwiązać kryptografia asymetryczna

Podstawowy schemat podpisu cyfrowego (DS)

Input: funkcje sign(x , kpriv ) oraz verify(x , s, kpub)1: Bob: generuje klucz publiczny i prywatny, ogłasza klucz publiczny2: Bob: podpisuje wiadomość s = sing(x , kpriv ) i wysyła (x , s)3: Alicja: sprawdza czy verify(x , s, kpub) = true

Uwaga: schemat DS nie zapewnia poufności!

• problem pozwala rozwiązać kryptografia asymetryczna

Podstawowy schemat podpisu cyfrowego (DS)

Input: funkcje sign(x , kpriv ) oraz verify(x , s, kpub)1: Bob: generuje klucz publiczny i prywatny, ogłasza klucz publiczny2: Bob: podpisuje wiadomość s = sing(x , kpriv ) i wysyła (x , s)3: Alicja: sprawdza czy verify(x , s, kpub) = true

Uwaga: schemat DS nie zapewnia poufności!

Wymagania jakie powinien spełniać dobry podpis (nie tylko cyfrowy):

werifikowalność: możliwość jednoznacznego sprawdzenia autentycznościpodpisu

niepodrabialność: podrobienie podpisu powinno być trudne

niewypieralność: podpisujący nie może wyprzeć się złożenia podpisu

integralność ?: możliwość wykrycia zmian w podpisanym dokumenciePO jego podpisaniu

Aby DS działał, funkcje sign oraz verify muszą bezsprzecznie dowodzićautorstwa podpisu i autentyczności dokumentu.

RSA-DS

Naiwny DS oparty na RSA

Bob: generuje klucz publiczny kpub = (n, e) i prywatny kpriv = d

Bob: podpisuje wiadomość s = sign(x , kpriv ) = xd mod n

Bob: wysyła do Alicji (x , s)

Alicja: weryfikuje autentyczność

verify(x , s, kpub) = (x = se mod n ? true : false)

Jeżeli test jest wypadł pomyślnie, Alicja wie, że wiadomość pochodzi odBoba i dodatkowo, że jest niezmieniona.

Uwagi:

• dodanie podpisu wydłuża wiadomość dwukrotnie

• w praktyce, wiadomość jest podpisywana raz a weryfikowanawielokrotnie, zatem klucz publiczny powinien być „szybki”

Ataki:

men-in-the-middle: Ewa może podsunąć Alicji fałszywy klucz publicznyi podawać się za Boba

złamanie RSA: Ewa może przeprowadzić faktoryzację n i odkryć kluczprywatny

podrabianie podpisu: Ewa dla każdego podpisu S może znaleźćwiadomość dla której jest to podpis: x = se (zwykle wiadomość niema sensu)

Uwagi:

• dodanie podpisu wydłuża wiadomość dwukrotnie

• w praktyce, wiadomość jest podpisywana raz a weryfikowanawielokrotnie, zatem klucz publiczny powinien być „szybki”

Ataki:

men-in-the-middle: Ewa może podsunąć Alicji fałszywy klucz publicznyi podawać się za Boba

złamanie RSA: Ewa może przeprowadzić faktoryzację n i odkryć kluczprywatny

podrabianie podpisu: Ewa dla każdego podpisu S może znaleźćwiadomość dla której jest to podpis: x = se (zwykle wiadomość niema sensu)

• naiwny RSA-DS jest jest rzadko stosowany

• zwykle stosuje się różne metody uzupełniania (padding), którepozwalają na odróżnienie wiadomości prawdziwych od spreparowanych

• zwykle nie podpisuje się całej wiadomości, a raczej jej skrót (hash).

Encoding Method for Signature with Appendix - Probabilistic SignatureScheme

EMSA - PSS

Dane są wiadomość M, ustalone pad1, pad2, bc i funkcja haszująca h.

• wylosuj sól salt

• M ′ = pad1‖h(M)‖salt• DB = pad2‖salt• maskDB = SHA(h(M ′))

• EM = (DB ⊕maskDB)‖h(M ′)

podpis: sign(M, d) = EMd mod n

weryfikacja: verify(EM, s, e) =?

The Elgamal Digital Signature Scheme

Naiwny DS oparty na algorytmie ElGamala

p – duża liczba pierwsza, α – element pierwotny, losowe 1 < d < p − 1

klucze: kpub = (p, α, β = αd mod p), kpriv = d

podpis: losowe 0 ¬ kE ¬ p − 2 takie, że NWD(kE , p − 1) = 1,

r = αkE mod p, s = (x − dr)k−1E mod p − 1

Wtedy sign(x , kpriv , kE ) = (r , s)

weryfikacja: verify(x , (r , s), kpub) = (βr r s = αxmod p? true : false)

Sprawdzenie: βr r s = αdr+kE s = αx mod p oraz x = dr + kE s mod p − 1

Uwagi:

• dodanie podpisu wydłuża wiadomość trzykrotnie

• r , k−1E mogą być obliczone wcześniej

Ataki:

DLP: Ewa może rozwiązać DLP i wyliczyć d i kE .

powtórzenie klucza kE : Ewa odkrywa, że swa podpisy zostaływykonane tym samym kluczem, wtedy

s1 = (x1 − dr)kE−1 mod p − 1

s1 = (x1 − dr)kE−1 mod p − 1

kE =x1 − s1x2 − s2

mod p − 1

d =x1 − s1kE

rmod p − 1

Teraz Ewa może podpisać każdą wiadomość zamiast Boba. Z tegopowodu klucz kE powinien być świeży.

Ataki:

DLP: Ewa może rozwiązać DLP i wyliczyć d i kE .

powtórzenie klucza kE : Ewa odkrywa, że swa podpisy zostaływykonane tym samym kluczem, wtedy

s1 = (x1 − dr)kE−1 mod p − 1

s1 = (x1 − dr)kE−1 mod p − 1

kE =x1 − s1x2 − s2

mod p − 1

d =x1 − s1kE

rmod p − 1

Teraz Ewa może podpisać każdą wiadomość zamiast Boba. Z tegopowodu klucz kE powinien być świeży.

podrobienie podpisu: Ewa

• wybiera i , j ∈ Z, NWD(j , p − 1) = 1• oblicza r = αiβj mod p oraz s = −rj−1 mod p − 1• wyznacza poprawną wiadomość x = si mod p − 1

Alicja oblicza

βr r s = αdr+(i+dj)ss = αdr+is+dj(−rj−1 = αsi

Oczywiście Ewa nie ma możliwości spreparowania sensownejwiadomości.

Zabezpieczeniem przed tego typu atakiem jest użycie skrótu wiadomości:

s = (h(x)− dr)k−1E mod p − 1

The Digital Signature Algorithm

DSA jest standardem NIST, oferuje krótki podpis i nie ma wad schematuElGamala.

DSA – generowanie klucza

1: wybierz liczbę pierwszą s1023 < p < 21024

2: znajdź dzielnik pierwszy 2159 < q < 2160 liczby p − 13: znajdź element α rzędu q4: wybierz losowe 0 < d < q5: oblicz β = αd mod p6: return kpub = (p, q, α, β), kpriv = d

DSA – podpis

1: wylosuj 0 < kE < q2: oblicz r = (αkE mod p) mod q3: oblicz s = (SHA(x) + dr)k−1E mod q4: return sign(x , kpriv , kE ) = (r , s)

gdzie SHA jest standardową funkcja haszującą,

DSA – weryfikacja

1: oblicz w = s−1 mod q,2: oblicz u1 = wSHA(x) mod q, u2 = wr mod q3: oblicz v = (αu1βu2 mod p) mod q4:

verify(x , (r , s), kpub) = (v = r ? true : false )

Uwagi:

• w przedstawionej wersji DSA generuje podpis długości 320 bitów,korzystając z liczb 1024 i 160 bitowych zapewniając bezpieczeństwona poziomie 80 bitów.

• standard dopuszcza również kombinacje 448/2048/224 (poziom 112)oraz 512/3072/256 (poziom 128)

• istnieje probabilistyczny algorytm znajdujący p i q

Uwagi:

• w przedstawionej wersji DSA generuje podpis długości 320 bitów,korzystając z liczb 1024 i 160 bitowych zapewniając bezpieczeństwona poziomie 80 bitów.

• standard dopuszcza również kombinacje 448/2048/224 (poziom 112)oraz 512/3072/256 (poziom 128)

• istnieje probabilistyczny algorytm znajdujący p i q

Bezpieczeństwo DSA:

• Ewa rozwiązując DLP d = logα β mod p jest w posiadaniu kluczaprywatnego i może podpisać każdą wiadomość.

• najsilniejszy znany atak – analiza indeksów – wymaga ∼ 280 operacjidla p rzędu 1024 bitów

• jeżeli Ewa zauważy powtórne użycie klucza kE może wyznaczyć kluczprywatny

• Ewa może pokusić się o rozwiązanie pozornie prostszego problemuDLP: wyznaczenie α, które jest 160 bitowe

• jednak w tym wypadku można stosować tylko ogólne metody typualgorytm Shanksa, które potrzebują ∼

√2160 operacji

Bezpieczeństwo DSA:

• Ewa rozwiązując DLP d = logα β mod p jest w posiadaniu kluczaprywatnego i może podpisać każdą wiadomość.

• najsilniejszy znany atak – analiza indeksów – wymaga ∼ 280 operacjidla p rzędu 1024 bitów

• jeżeli Ewa zauważy powtórne użycie klucza kE może wyznaczyć kluczprywatny

• Ewa może pokusić się o rozwiązanie pozornie prostszego problemuDLP: wyznaczenie α, które jest 160 bitowe

• jednak w tym wypadku można stosować tylko ogólne metody typualgorytm Shanksa, które potrzebują ∼

√2160 operacji

Bezpieczeństwo DSA:

• Ewa rozwiązując DLP d = logα β mod p jest w posiadaniu kluczaprywatnego i może podpisać każdą wiadomość.

• najsilniejszy znany atak – analiza indeksów – wymaga ∼ 280 operacjidla p rzędu 1024 bitów

• jeżeli Ewa zauważy powtórne użycie klucza kE może wyznaczyć kluczprywatny

• Ewa może pokusić się o rozwiązanie pozornie prostszego problemuDLP: wyznaczenie α, które jest 160 bitowe

• jednak w tym wypadku można stosować tylko ogólne metody typualgorytm Shanksa, które potrzebują ∼

√2160 operacji

DS - Uwagi

• W podobny sposób można zdefiniować schemat podpisuelektronicznego oparty na krzywych eliptycznych

• istnieją również inne schematy DS: Rabi, Fiat-Shamir, Schnorr,

• PKCS, OAEP

• RSA-DS został zaproponowany w 1978

• Elgamal-DS został podany w 1985

• DSA -zsta podany w 1991, jako sandard od 1994

DS - Uwagi

• W podobny sposób można zdefiniować schemat podpisuelektronicznego oparty na krzywych eliptycznych

• istnieją również inne schematy DS: Rabi, Fiat-Shamir, Schnorr,

• PKCS, OAEP

• RSA-DS został zaproponowany w 1978

• Elgamal-DS został podany w 1985

• DSA -zsta podany w 1991, jako sandard od 1994

• osobnym problemem jest moc prawna podpisu elektronicznego, wwielu krajach (w tym w UE) istnieją regulacje prawne na ten temat

• osobnym problemem jest uwierzytelnianie kluczy publicznych tzw.certyfikaty

• (futurystycznie) w niedalekiej przyszłości do schematów DS mogądołączyć metody oparte na danych biometrycznych

10. Funkcje haszujące

MotywacjaWymaganiaKonstrukcja Merkle-DamgardaMD5SHA

Motywacja

• podane wcześniej schematy DS pozwalają podpisywać wiadomościkrótkie ( 1024 bity = 128 bajtów)

• naiwny sposób, polegający na zastosowaniu trybu ECB nie jestprzydatny:

– duże wymagania obliczeniowe– podwojenie długości wiadomości– złośliwa modyfikacja jest łatwa

• z uwagi na wydajność i bezpieczeństwo podpis powinien umożliwićpodpisanie całej wiadomości krótkim podpisem

Motywacja

• podane wcześniej schematy DS pozwalają podpisywać wiadomościkrótkie ( 1024 bity = 128 bajtów)

• naiwny sposób, polegający na zastosowaniu trybu ECB nie jestprzydatny:

– duże wymagania obliczeniowe– podwojenie długości wiadomości– złośliwa modyfikacja jest łatwa

• z uwagi na wydajność i bezpieczeństwo podpis powinien umożliwićpodpisanie całej wiadomości krótkim podpisem

Podstawowy schemat DS z funkcją haszującą

Input: funkcje sign(x , kpriv ), verify(x , s, kpub) oraz hash(x)1: Bob: generuje klucz publiczny i prywatny, ogłasza klucz publiczny

2: Bob: generuje skrót wiadomości h = hash(x)3: Bob: podpisuje skrót s = sing(h, kpriv ) i wysyła (x , s)

4: Alicja: generuje skrót wiadomości h = hash(x)5: Alicja: sprawdza czy verify(h, s, kpub) = true

Wymagania na funkcję haszującą:

• skrót powinien być krótki 128-512 bitów

• umożliwia obliczenie skrótu wiadomości o dowolnej długości

• czas obliczania skrótu jest akceptowalny

• wysoka wrażliwość na zmianę wejścia

• jednokierunkowość

• słaba odporność na kolizje

• silna odporność na kolizje

Wymagania na funkcję haszującą:

• skrót powinien być krótki 128-512 bitów

• umożliwia obliczenie skrótu wiadomości o dowolnej długości

• czas obliczania skrótu jest akceptowalny

• wysoka wrażliwość na zmianę wejścia

• jednokierunkowość

• słaba odporność na kolizje

• silna odporność na kolizje

Jednokierunkowość

Posiadanie skrótu nie może umożliwić (w sensownym czasie) uzyskaniatreści wiadomości ani żadnych użytecznych informacji o niej.

• Bob używa AES do szyfrowania wiadomości

• oraz RSA− DS do jej podpisania jej skrótu, jednak funkcja haszującanie jest jednokierunkowa

• Bob wysłał (AES(x), s = sign(hash(x), d)

• Ewa oblicza z = se mod n, a następnie znajduje h(x) = z

• w ten sposób EWA obeszła dwa kryptograficznie silne systemy

Jednokierunkowość

Posiadanie skrótu nie może umożliwić (w sensownym czasie) uzyskaniatreści wiadomości ani żadnych użytecznych informacji o niej.

• Bob używa AES do szyfrowania wiadomości

• oraz RSA− DS do jej podpisania jej skrótu, jednak funkcja haszującanie jest jednokierunkowa

• Bob wysłał (AES(x), s = sign(hash(x), d)

• Ewa oblicza z = se mod n, a następnie znajduje h(x) = z

• w ten sposób EWA obeszła dwa kryptograficznie silne systemy

Słaba odporność na kolizje

Dla danej wiadomości x1 i jej skrótu h(x1) nie powinno być możliweznalezienie innej wiadomości x2 takiej, że h(x1) = h(x2).

Silna odporność na kolizje

Nie powinno być możliwe znalezienie dwóch wiadomości x1 i x2 takich, żeh(x1) = h(x2).

• kolizje zawsze istnieją – wynika to z zasady szufladkowej Dirichleta –dla skrótu długości n bitów istnieje tylko 2n różnych skrótów

• mając daną wiadomość Ewa może metoda brutalną wyszukać drugąwiadomość – dlatego skróty nie powinny być zbyt krótkie

• Ewa może także przygotować dwie wiadomości np.: „Przelej 10$” i„Przelej 10.000$”; a następnie modyfikować je (np.: dodając białeznaki) tak długo aż uzyska kolizję

• Znalezienie kolizji przez Ewę jest obliczeniowo nieco prostsze niż sięwydaje

Atak urodzinowy

Ewa potrzebuje

k ' 2(n+1)/2√ln

11− λ

wiadomości aby z prawdopodobieństwem λ znaleźć kolizję dla skrótudługości n.

λ\n 80b 128b 256b 512b0.5 240 265 2129 2257

0.9 241 267 2130 2258

Dla λ = 0.5 dobrym przybliżeniem jest 2n/2.

Konstrukcja Merkle-Damgarda

• podziel wiadomość na bloki równej długości

• blok xi wymieszaj z wynikiem Hi−1 mieszania poprzednich bloków

• powtarzaj dla wszystkich bloków

• zwróć ostatni wynik

Szyfry blokowe jako funkcje haszujące

Mając szyfr blokowy można go użyć jako funkcji mieszającej w konstrukcjiMerkle-Damgarda.

• Matyas-Meyer-Oseas: Hi = EHi−1(xi )⊕ xi

• Davies-Meyer: Hi = Hi−1 ⊕ Exi (Hi−1)

• Miyaguchi-Preneel: Hi ⊕ xi ⊕ eHi−1(xi )

Wadą takiego podejścia jest fakt, że otrzymany skrót ma długości równąwielkości bloku w użytym szyfrze.

Szyfry blokowe jako funkcje haszujące

Mając szyfr blokowy można go użyć jako funkcji mieszającej w konstrukcjiMerkle-Damgarda.

• Matyas-Meyer-Oseas: Hi = EHi−1(xi )⊕ xi

• Davies-Meyer: Hi = Hi−1 ⊕ Exi (Hi−1)

• Miyaguchi-Preneel: Hi ⊕ xi ⊕ eHi−1(xi )

Wadą takiego podejścia jest fakt, że otrzymany skrót ma długości równąwielkości bloku w użytym szyfrze.

Sposób uzyskania dłuższego skrótu: konstrukcja Hirose

MD5

• funkcja skrótu MD5 (Message Digest) została zaproponowana przezR. Rivesta w 1991

• algorytm przetwarza wiadomość o długości < 264B na 128 bitowyskrót

Uwaga: Sensowne wiadomości o długości 264B ' 16 mln TB niewystępują w praktyce.

Krok wstępny

• wiadomość jest uzupełniana, aby spełniona była równośćlength(M + pad) = 448 mod 512 poprzez dodanie 1 i odpowiedniejliczby zer

• robi się to nawet wtedy gdy oryginalna wiadomość już spełnia tenwarunek

• pozostałe 64 bity zawierają informacje o długości wiadomości przedrozszerzeniem

Właściwy MD5 wyznacza 128 bitowy skrót z 512 bitowego blokupodzielonego na 32 bitowe słowa

Y = Y0‖Y2‖ . . . ‖Y15

z parametrem w postaci czterech 32 bitowymi słów A,B,C ,D

Po kroku wstępnym wiadomość jest podzielona na L bloków długości 512bitów Y0, . . .YL−1. Kolejne bloki są dzielone na 32 bitowe słowa iprzetwarzane wg schematu:

• A0 = 01234567, B0 = 89ABCDEF , C0 = FEDCBA98, D0 = 76543210

• H0 = MD5(Y0,A0,B0,C0,D0)

• Ai‖Bi‖Ci‖Di = Hi−1

• Hi = MD5(Yi ,Ai ,Bi ,Ci ,Di )

• Niech y = y1‖y2‖ . . . ‖y16 oznacza ustalony blok długości 512 bitówpodzielony na 32 bitowe słowa

• niech a, b, c, d parametry początkowe.

• aby otrzymać skrót wykonywane jest 4× 16 permutacji, w trakciekażdej obliczana jest nowa wartość jednego z parametrów a, b, c, d .

Permutacja Bi ,j(y , a, b, c , d)

a = b + ((a+ fi (b, c , d) + yj + ti ,j) << si ,j)

gdzie + oznacza dodawanie mod 232, a << s oznacza obrót bitowy wlewo o s bitów. Wartości fi , ti ,j oraz si ,j są stablicowane.

• Niech y = y1‖y2‖ . . . ‖y16 oznacza ustalony blok długości 512 bitówpodzielony na 32 bitowe słowa

• niech a, b, c, d parametry początkowe.

• aby otrzymać skrót wykonywane jest 4× 16 permutacji, w trakciekażdej obliczana jest nowa wartość jednego z parametrów a, b, c, d .

Permutacja Bi ,j(y , a, b, c , d)

a = b + ((a+ fi (b, c , d) + yj + ti ,j) << si ,j)

gdzie + oznacza dodawanie mod 232, a << s oznacza obrót bitowy wlewo o s bitów. Wartości fi , ti ,j oraz si ,j są stablicowane.

Permutacja Bi ,j jestmodyfikacją schematuFeistela

Dla przykładu, jeżeli i = 1, j = 1 to

[a, b, c , d ] = [A,B,C ,D], t1,1 = 0xd76aa478, s1,1 = 7

orazf1(b, c, d) = (a and b) or ( (not a) and c

czyliA = B + ((A+ f1(B,C ,D) + y1 + 0xd76aa478) << 7)

oraz B, C , D niezmienione.

• implementacja MD jest łatwa na urządzeniach 32 bitowych

• MD5 jest używany powszechnie do generowania sum kontrolnychplików i haszowania haseł

• obecnie MD5 nie jest uznawany za bezpieczny

• bezpieczeństwo na poziomie 64 bitów

• po wprowadzeniu pojawiły się sugestie, że algorytm nie jest bezpieczny

• 1996: udany atak poprzez znalezienie kolizji,

• 2004: udany atak poprzez podanie metody znajdowania kolizji

• 2005: znalezienie kolizji w minutę

• 2008: udany atak poprzez podanie metody generowania parywiadomości o sensownej treści (certyfikaty SSL), 200 PlayStation 3

• obecnie kolizję można znaleźć w czasie kilku sekund

• implementacja MD jest łatwa na urządzeniach 32 bitowych

• MD5 jest używany powszechnie do generowania sum kontrolnychplików i haszowania haseł

• obecnie MD5 nie jest uznawany za bezpieczny

• bezpieczeństwo na poziomie 64 bitów

• po wprowadzeniu pojawiły się sugestie, że algorytm nie jest bezpieczny

• 1996: udany atak poprzez znalezienie kolizji,

• 2004: udany atak poprzez podanie metody znajdowania kolizji

• 2005: znalezienie kolizji w minutę

• 2008: udany atak poprzez podanie metody generowania parywiadomości o sensownej treści (certyfikaty SSL), 200 PlayStation 3

• obecnie kolizję można znaleźć w czasie kilku sekund

SHA-1

• zaprojektowany przez NSA i wprowadzony jako standard NIST w1995 jako odpowiedź na przekonanie o słabościach MD5

• w swej konstrukcji jest bardzo podobny do MD5

• algorytm przetwarza wiadomość o długości < 264 na 160 bitowy skrót

Krok wstępny

Identycznie jak w przypadku MD5, wiadomość jest uzupełniana dowielokrotności 512 bitów, a ostatnie 64 bity zawierają długość oryginalnejwiadomości.

Właściwy SHA-1 wyznacza 160 bitowy skrót z 512 bitowego blokupodzielonego na 32 bitowe słowa

Y = Y0‖Y2‖ . . . ‖Y15

z parametrem w postaci pięciu 32 bitowych słów A,B,C ,D,E

Po kroku wstępnym wiadomość jest podzielona na L bloków długości 512bitów Y0, . . .YL−1. Kolejne bloki są dzielone na 32 bitowe słowa iprzetwarzane wg schematu:

• A0 = 67452301, B0 = EFCDAB89, C0 = 98BADCFE , D0 = 10325476,E0 = C3D2E1F0

• H0 = SHA− 1(Y0,A0,B0,C0,D0,E0)

• Ai‖Bi‖Ci‖Di‖Ei = Hi−1

• Hi = SHA = 1(Yi ,Ai ,Bi ,Ci ,Di ,Ei )

• niech y = y1‖y2‖ . . . ‖y16 oznacza bieżący blok wiadomościpodzielony na 32 bitowe słowa

• niech a, b, c, d , e oznaczają parametry początkowe

• dodatkowo, blok wiadomości jest rozszerzany do 80 słów wedługwzoru

Wj =

{yj 0 ¬ j ¬ 15

(Wj−16 ⊕Wj−14 ⊕Wj−8 ⊕Wj−5) << 1 16 ¬ j ¬ 79

Aby otrzymać skrót wykonywane jest 4× 20 permutacji, w trakcie każdejpermutacji obliczana jest nowa wartość parametrów a, b, c , d , e

Permutacja Bi ,j(Wj ,Ki , a, b, c , d , e)

a = (e + fi (b, c , d) + (a << 5) +Wj + Ki

b = a, c = b << 30, d = c , e = d

gdzie + oznacza dodawanie mod 232, << s obrót bitowy. Wartości fioraz Ki są stablicowane.

Dla przykładu K1 = 5A827999, fi (b, c , d) = (b and c) or (b and d)

• po wykonaniu 80 rund wykonywane jest jeszcze dodawanie

Ai+1 = a+ Ai , Bi+1 = b + Bi , Ci+1 = c + Ci ,

Di+1 = d + Di , Ei+1 = e + Ei ,

• ostatecznie Hi+1 = Ai+1‖Bi+1‖Ci+1‖Di+1‖Ei+1

• skrót otrzymany dla ostatniego bloku HL jest właściwym skrótemcałej wiadomości

• implementacja SHA-1 jest łatwa na urządzeniach 32 bitowych

• bezpieczeństwo na poziomie 80 bitów

• 2005-2010: udane ataki na zredukowaną wersję

• 2017: inżynierowie z Google ogłosili, że potrafią znaleźć kolizję wpostaci dwóch plików PDF o tym samym skrócie: w czasie rzędu 263,w przeliczeniu, 6500 lat na CPU, 100 na GPU

• był powszechnie stosowany w komunikacji: TLS, SSL, SSH itd

• od 2005 zaleca się nie używanie SHA-1 do zastosowańkryptograficznych

• obecnie stosowany jest w systemach kontroli wersji takich jak Git

• implementacja SHA-1 jest łatwa na urządzeniach 32 bitowych

• bezpieczeństwo na poziomie 80 bitów

• 2005-2010: udane ataki na zredukowaną wersję

• 2017: inżynierowie z Google ogłosili, że potrafią znaleźć kolizję wpostaci dwóch plików PDF o tym samym skrócie: w czasie rzędu 263,w przeliczeniu, 6500 lat na CPU, 100 na GPU

• był powszechnie stosowany w komunikacji: TLS, SSL, SSH itd

• od 2005 zaleca się nie używanie SHA-1 do zastosowańkryptograficznych

• obecnie stosowany jest w systemach kontroli wersji takich jak Git

• implementacja SHA-1 jest łatwa na urządzeniach 32 bitowych

• bezpieczeństwo na poziomie 80 bitów

• 2005-2010: udane ataki na zredukowaną wersję

• 2017: inżynierowie z Google ogłosili, że potrafią znaleźć kolizję wpostaci dwóch plików PDF o tym samym skrócie: w czasie rzędu 263,w przeliczeniu, 6500 lat na CPU, 100 na GPU

• był powszechnie stosowany w komunikacji: TLS, SSL, SSH itd

• od 2005 zaleca się nie używanie SHA-1 do zastosowańkryptograficznych

• obecnie stosowany jest w systemach kontroli wersji takich jak Git

SHA-2 i SHA-3

SHA-2 to grupa algorytmów haszujących o podobnej konstrukcji co SHA-1

• zaprojektowane przez NSA i wprowadzona w 2001 jako propozycjapodwyższenia bezpieczeństwa SHA-1

• a także dopasowania poziomów bezpieczeństwa do powszechnieużywanych szyfrów jak AES

• dostępne warianty: SHA-224, SHA-255, SHA-384, SHA-512

• na dziś znane są ataki na osłabione wersje

• powszechnie stosowany w komunikacji: TLS, SSL, PGP, SSH . . .

• a także weryfikacja transakcji w Bitcoin

SHA-3 to zupełnie nowa grupa funkcji haszujących wprowadzona przezNIST jako standard w 2015

• zostały wyłoniona w konkursie ogłoszonym przez NIST w 2007

• warianty o długości skrótu 224, 256, 384, 512 oraz dowolnej

• na dzień dzisiejszy znane są tylko ataki na mocno zredukowane wersje

11. Message Authentication Codes

MAC za pomocą funkcji haszującychMAC za pomocą szyfrów blokowych, CBC-MAC

Mesage Authentication Codes (MAC)

• jest to symetryczna wersja podpisu cyfrowego

• MAC są oparte na szyfrach blokowych lub funkcjach haszujących,

• mogą być obliczone szybciej niż podpisy cyfrowe

Podstawowy schemat MAC

Alicja i Bob mają ustalony klucz k. Bob chce wysłać wiadomość x doAlicji.

Bob: m = MAC (x , k),

Bob: wysyła (x ,m) do Alicji

Alicja: m′ = MAC (x , k)

Alicja: jeżeli m = m′, to wiadomość nie została zmieniona

Uwaga: Podobnie jak w przypadku DS, tajność wiadomości powinna byćzagwarantowana jeżeli jest potrzebna

Wymagania na funkcję MAC

• może być stosowana do wiadomości o dowolnej długości

• produkuje podpis o ustalonej długości

• zapewnia autentyczność wiadomości

• zapewnia o braku modyfikacji wiadomości

Ostatnie dwa punkty oznaczają, że bez znajomości klucza, Ewa nie jest wstanie podać prawidłowego podpisu.

Ponieważ MAC jest schematem symetrycznym, nie ma możliwościudowodnienia autorstwa

MAC za pomocą funkcji haszujących

Podstawowy schemat HMAC

Ustalona jest funkcja haszująca h i wspólny klucz k

Wersja „prefix”: m = MAC (x , k) = h(k‖x)Wersja „suffix”: m = MAC (x , k) = h(x‖k)

Atak na wersję „prefix”

Wybrana funkcja haszująca jako wartość początkową do obliczenia skrótukolejnego bloku, przyjmuje skrót obliczony w poprzednim kroku.

Bob: podpisuje wiadomość m = h(k‖x), wysyła (x ,m)

Ewa: przechwytuje, tworzy nową wiadomość x‖xE ,

Ewa: oblicza mE = h(m‖xE ), wysyła (x‖xE ,mE )

Alicja: oblicza m′ = h(k‖x‖xE ), ponieważ m′ = mE stwierdza, że podpisjest prawidłowy

Atak na wersję „suffix”

Wybrana funkcja haszująca jako wartość początkową do obliczenia skrótukolejnego bloku, przyjmuje skrót obliczony w poprzednim kroku.

• jeżeli Ewa jest wstanie znaleźć kolizję h(x) = h(xE ), to możepodmienić wiadomość x na xE

• jeżeli Alicja nie jest wstanie wykryć podmiany, to musi przyjąć, żewiadomość jest autentyczna

Bezpieczny HMAC

• h funkcja haszująca,

• k klucz,

• k+ rozszerzenie/skrócenie klucza dodługości bloku funkcji h

• ipad = 00110110 . . . 00110110

• opad = 01011100 . . . 01011100

HMAC (x , k) = h

[(k+ ⊕ opad

)‖ h((k+ ⊕ ipad)‖x

)]

• Schemat HMAC został podany w 1996 roku przez Bellare, Canetti iKrawczyka

• Zostało udowodnione, że złamanie HMAC jest równoważne zezłamaniem użytej funkcji haszującej

• ogólniejsza wersja

HMAC (x , k1, k2) = H(k2‖h(k1‖x))

MAC za pomocą szyfrów blokowych, CBC-MAC

• jako MAC używany jest ostatni blok zaszyfrowany w trybie CBC

CBCMAC (x , k) = yn

Uwaga: Bloki y1, . . . , yn−1 nie są wysyłane

MAC za pomocą szyfrów blokowych, CBC-MAC

• jako MAC używany jest ostatni blok zaszyfrowany w trybie CBC

CBCMAC (x , k) = yn

Uwaga: Bloki y1, . . . , yn−1 nie są wysyłane

• istnieje możliwość podrobienia podpisu, jeżeli znane są trzyprawidłowe pary o specjalnej strukturze

• aby zwiększyć bezpieczeństwo blok yn można dodatkowo zaszyfrowaća potem odrzucić wybrane bity (EncryptedMAC)

• znanych jest dużo więcej schematów MAC opartych na szyfrachblokowych

• do utworzenia MAC można użyć także szyfrów strumieniowych

12. Uzgodnienie i dystrybucja kluczy

WstępKE za pomocą schematów symetrycznychKerberosKE za pomocą schematów asymetrycznych

Wstęp

Alicja i Bob mają trzy problemy:

• kryptografia symetryczna wymaga bezpiecznego kanału dystrybucjikluczy

• kryptografia asymetryczna jest podatna na ataki typumen-in-the-middle i jest kosztowna obliczeniowo

• w ich firmie pracuje dużo ludzi, którzy wykonująBardzoWażneZadania i każdy z nich potrzebuje zestawu kluczy abymóc się bezpiecznie komunikować

Uzgodnienie klucza

• uczestnicy protokołu w bezpieczny sposób wspólnie generują klucz

Dystrybucja klucza

• jeden z uczestników protokołu generuje klucz i dostarcza gopozostałym w bezpieczny sposób

• obydwa zagadnienia wymagają potwierdzenia tożsamości uczestnikówprotokołu

• jeżeli jeden z uczestników jest nieuczciwy, poufność jest zagrożona,

• np.: Oskar celowo bierze udział w sesji, aby wyjawić sekrety Ewie

„Świeżość” klucza

Częstej zmiany klucza (np.: ograniczenia czasowe lub ilościowe)

• zalety

– w przypadku ujawnienia klucza, niewielka część komunikacjiprzestaje być poufna

– trudniejsze łamanie szyfru – mało materiału do analizy

• wady

– koszt wytworzenia i dystrybucji– ryzyko ujawnienia metody wyboru klucza

Metoda zachowania świeżości klucza I

Alicja i Bob za każdym razem, gdy potrzebny jest klucz przeprowadzająDHKE

• kosztowne obliczeniowo

• podatne na ataki

Metoda zachowania świeżości klucza II

Alicja i Bob uzgadniają klucz główny kAB oraz funkcję generowania kluczasesyjnego KeyGen

• za każdym razem, gdy potrzebny jest nowy klucz jeden z uczestnikówwysyła ziarno sesji

• każdy z uczestników oblicza kses = KeyGen(kAB , seed)

• seed nie musi być tajny

Przykładowe realizacje:

• KeyGen(kAB , seed) = AES(kAB , seed)

• KeyGen(kAB , seed) = HMAC (kAB , seed)

• seed jest skrótem poprzedniej wiadomości

• seed jest wartością zsynchronizowanego licznika

Metoda zachowania świeżości klucza II

Alicja i Bob uzgadniają klucz główny kAB oraz funkcję generowania kluczasesyjnego KeyGen

• za każdym razem, gdy potrzebny jest nowy klucz jeden z uczestnikówwysyła ziarno sesji

• każdy z uczestników oblicza kses = KeyGen(kAB , seed)

• seed nie musi być tajny

Przykładowe realizacje:

• KeyGen(kAB , seed) = AES(kAB , seed)

• KeyGen(kAB , seed) = HMAC (kAB , seed)

• seed jest skrótem poprzedniej wiadomości

• seed jest wartością zsynchronizowanego licznika

The n2 problem

Problem praktyczny

Jeżeli w n uczestników chce (ekskluzywnie) móc się ze sobą komunikować,to

• każdy użytkownik musi przechowywać n kluczy (w bezpieczny sposób)

• całkowita liczba kluczy ' n2

• każdy nowy uczestnik musi w bezpieczny sposób ustalić klucz zkażdym poprzednim

Nawet dla względnie niewielkich wartości n (np.: 100) może to byćuciążliwe

KE za pomocą schematów symetrycznych

Założenia wstępne:

• do zapewnienia bezpieczeństwa używane są schematy symetryczne

• w sieci funkcjonuje Key Distribution Center (KDC) np.: jako serwer

• każdy z istniejących użytkowników posiada ustalony klucz główny (wbezpieczny sposób)

• KDC przechowuje klucze każdego użytkownika i generuje kluczesesyjne

Podstawowy schemat dystrybucji klucza z użyciem KDC

Alicja: wysyła żądanie klucza sesyjnego do komunikacji z Bobem do KDC

KDC: generuje losowy kses

KDC: wysyła yA = EkA(kses) oraz yB = EkB (kses) do Alicji

Alicja: kses = E−1kA(yA)

Alicja: wysyła do Boba (y = Ekses (x), yB)

Bob: oblicza kses = E−1kB(yB) oraz x = E−1kses

(y)

W innym wariancie KDC nie wysyła yB do Alicji tylko do Boba

• liczba kluczy w sieci jest równa liczbie użytkowników,

• użytkownicy znają tylko własne klucze główne

• klucz sesyjny jest krótkoterminowy, może być chroniony słabszymszyfrem

• KDC musi być szczególnie chronione

• ujawnienie klucza głównego pozwala odczytać całą przeszłąkomunikację

• jest podatny na atak typu man-in-the-middle

Atak przez powtórzenie klucza sesyjnego

• Ewa poznała jeden z poprzednich kluczy sesyjnych

• podszywając się pod KDC, może wysłać do Alicji i Boba, stare kluczeyA i yB

• ani Alicja ani Bob nie wiedzą, że otrzymany klucz sesyjny nie jest„świeży”

• wiedzą za to, że jest poprawnie zaszyfrowany, wiec nie mają powodu,aby go nie używać

• Ewa spokojnie czyta wiadomości

Atak przez wyłudzenie klucza

Oskar jest nieuczciwym uczestnikiem.

Alicja: wysyła, żądanie klucza sesyjnego dla pary (Alicja,Bob)

Oskar: przechwytuje żądanie i wysyła do KDC żądanie klucza dla pary(Alicja,Oskar)

KDC: generuje klucz sesyjny i wysyła (yA, yO) do Oskara

Oskar: przechwytuje żądanie i wysyła do Alicji yA

Alicja wysyła wiadomość zaszyfrowaną kluczem sesyjnym, Oskarprzechwytuje i odczytuje

Kerberos

Kerberos to protokół dystrybucji klucza oparty na KDC.

• został wprowadzony w 1993 jako standard

• zapewnia uwierzytelnianie i ochronę przeciwko opisanym wyżejatakom

Do protokołu zostały dodane:

• identyfikatory uczestników

• ważność klucza T : klucz nie może być użyty po czasie T

• czas wiadomości TS : wiadomość może być podrobiona jeżeli TS jestzbyt stary

Kerberos

Alicja: wysyła żądanie (IdA, IdB , rA), rA – losowy parametr sesji

KDC: generuje klucz sesyjny kses , ustala okres ważności klucza T

KDC: oblicza yA = EkA(kses , rA,T , IdB)

KDC: oblicza yB = EkB (kses ,T , IdA)

KDC: wysyła (yA, yB) do Alicji

Alicja: oblicza (kses , r′A,T , Id) = E 1kA(yA)

Alicja: sprawdza rA = r ′A, poprawność T , poprawność Id

Alicja: wysyła (yAB = Ekses (IdA,Tnow ), yB) do Boba

Bob: oblicza kses , IdA,T = E−1kB(yB)

Bob: oblicza Id ,Tnow = E−1kB(yB)

Bob: sprawdza Id = IdA, poprawność T , poprawność Tnow

Kerberos

Alicja: wysyła żądanie (IdA, IdB , rA), rA – losowy parametr sesji

KDC: generuje klucz sesyjny kses , ustala okres ważności klucza T

KDC: oblicza yA = EkA(kses , rA,T , IdB)

KDC: oblicza yB = EkB (kses ,T , IdA)

KDC: wysyła (yA, yB) do Alicji

Alicja: oblicza (kses , r′A,T , Id) = E 1kA(yA)

Alicja: sprawdza rA = r ′A, poprawność T , poprawność Id

Alicja: wysyła (yAB = Ekses (IdA,Tnow ), yB) do Boba

Bob: oblicza kses , IdA,T = E−1kB(yB)

Bob: oblicza Id ,Tnow = E−1kB(yB)

Bob: sprawdza Id = IdA, poprawność T , poprawność Tnow

Kerberos

Alicja: wysyła żądanie (IdA, IdB , rA), rA – losowy parametr sesji

KDC: generuje klucz sesyjny kses , ustala okres ważności klucza T

KDC: oblicza yA = EkA(kses , rA,T , IdB)

KDC: oblicza yB = EkB (kses ,T , IdA)

KDC: wysyła (yA, yB) do Alicji

Alicja: oblicza (kses , r′A,T , Id) = E 1kA(yA)

Alicja: sprawdza rA = r ′A, poprawność T , poprawność Id

Alicja: wysyła (yAB = Ekses (IdA,Tnow ), yB) do Boba

Bob: oblicza kses , IdA,T = E−1kB(yB)

Bob: oblicza Id ,Tnow = E−1kB(yB)

Bob: sprawdza Id = IdA, poprawność T , poprawność Tnow

Kerberos

Alicja: wysyła żądanie (IdA, IdB , rA), rA – losowy parametr sesji

KDC: generuje klucz sesyjny kses , ustala okres ważności klucza T

KDC: oblicza yA = EkA(kses , rA,T , IdB)

KDC: oblicza yB = EkB (kses ,T , IdA)

KDC: wysyła (yA, yB) do Alicji

Alicja: oblicza (kses , r′A,T , Id) = E 1kA(yA)

Alicja: sprawdza rA = r ′A, poprawność T , poprawność Id

Alicja: wysyła (yAB = Ekses (IdA,Tnow ), yB) do Boba

Bob: oblicza kses , IdA,T = E−1kB(yB)

Bob: oblicza Id ,Tnow = E−1kB(yB)

Bob: sprawdza Id = IdA, poprawność T , poprawność Tnow

Problemy dotyczące schematów z użyciem KDC:

• duże obciążenie KDC zapytaniami (możliwy atak typu DoS)

• konieczny bezpieczny kanał do wstępnej dystrybucji kluczy

• złamanie zabezpieczeń KDC powoduje, złamanie całego systemu ikonieczność jego odbudowy

• ujawnienie/złamanie klucza głównego umożliwia odczytaniewszystkich wiadomości przyszłych i przeszłych (no perfect forwardsecrecy)

Głównym sposobem zapewnienia PFS jest korzystanie z protokołówasymetrycznych.

Problemy dotyczące schematów z użyciem KDC:

• duże obciążenie KDC zapytaniami (możliwy atak typu DoS)

• konieczny bezpieczny kanał do wstępnej dystrybucji kluczy

• złamanie zabezpieczeń KDC powoduje, złamanie całego systemu ikonieczność jego odbudowy

• ujawnienie/złamanie klucza głównego umożliwia odczytaniewszystkich wiadomości przyszłych i przeszłych (no perfect forwardsecrecy)

Głównym sposobem zapewnienia PFS jest korzystanie z protokołówasymetrycznych.

Problemy dotyczące schematów z użyciem KDC:

• duże obciążenie KDC zapytaniami (możliwy atak typu DoS)

• konieczny bezpieczny kanał do wstępnej dystrybucji kluczy

• złamanie zabezpieczeń KDC powoduje, złamanie całego systemu ikonieczność jego odbudowy

• ujawnienie/złamanie klucza głównego umożliwia odczytaniewszystkich wiadomości przyszłych i przeszłych (no perfect forwardsecrecy)

Głównym sposobem zapewnienia PFS jest korzystanie z protokołówasymetrycznych.

KE za pomocą schematów asymetrycznych

Dla przypomnienia:

• za pomocą protokołu Diffie-Hellmana można ustalić wspólny klucz

• wymianę klucza można zrealizować za pomocą RSA lub algorytmuElGamala

• właściwą komunikację można zrealizować za pomocą kryptografiisymetrycznej

Ponieważ DH (i każdy algorytm asymetryczny) nie jest odporny na atakmen-in-the-middle poważnym problemem jest zapewnienie, że uzgodnienieklucza odbywa się pomiędzy właściwymi uczestnikami.

Certyfikaty

Problem: W jaki sposób Bob może zyskać pewność, że klucz publicznyktóry otrzymał rzeczywiście nalezy do Alicji?

• Alicja może przekonać Boba dołączając do klucza dodatkoweinformacje:

kA = (kpub,A, IdA)

gdzie IdA zawiera jej imię, PESEL, IP, numer buta, miejsce w którmsię poraz pierwszy spotkali. . .

• Ewa, oczywiście, może także posiadać te informacje

• Alicja może także doąłczyć do IdA tajny kod, ale wtedy musi go wbezpiecny sposób ustalić z Bobem (błędne koło)

• Ewa może także zastosowac atak men-in-the-middle i podmienićkpub,A na swój klucz

• Alicja może przekonać Boba dołączając do klucza dodatkoweinformacje:

kA = (kpub,A, IdA)

gdzie IdA zawiera jej imię, PESEL, IP, numer buta, miejsce w którmsię poraz pierwszy spotkali. . .

• Ewa, oczywiście, może także posiadać te informacje

• Alicja może także doąłczyć do IdA tajny kod, ale wtedy musi go wbezpiecny sposób ustalić z Bobem (błędne koło)

• Ewa może także zastosowac atak men-in-the-middle i podmienićkpub,A na swój klucz

• Alicja może przekonać Boba dołączając do klucza dodatkoweinformacje:

kA = (kpub,A, IdA)

gdzie IdA zawiera jej imię, PESEL, IP, numer buta, miejsce w którmsię poraz pierwszy spotkali. . .

• Ewa, oczywiście, może także posiadać te informacje

• Alicja może także doąłczyć do IdA tajny kod, ale wtedy musi go wbezpiecny sposób ustalić z Bobem (błędne koło)

• Ewa może także zastosowac atak men-in-the-middle i podmienićkpub,A na swój klucz

• Alicja może dodatkowo dołączyć podpis cyfrowy do kluczapublicznego, tworząc certyfikat

CertA =((kpub,A, IdA), singkpriv (kpub,A, IdA)

)łączący klucz publiczny z osobą Alicji

• Bob może potwierdzić autentyczność poprzez weryfikację podpisu,tylko że. . .

• jeżeli klucz kpriv użyty do wygenerowania podpisu jest kluczemprywatnym Alicji, to Bob musi w bezpieczny i uwierzytelniony sposóbotrzymać klucz publiczny Alicji

• ale to jest ten sam problem, który miał być rozwiązany

• Alicja może dodatkowo dołączyć podpis cyfrowy do kluczapublicznego, tworząc certyfikat

CertA =((kpub,A, IdA), singkpriv (kpub,A, IdA)

)łączący klucz publiczny z osobą Alicji

• Bob może potwierdzić autentyczność poprzez weryfikację podpisu,tylko że. . .

• jeżeli klucz kpriv użyty do wygenerowania podpisu jest kluczemprywatnym Alicji, to Bob musi w bezpieczny i uwierzytelniony sposóbotrzymać klucz publiczny Alicji

• ale to jest ten sam problem, który miał być rozwiązany

Rozwiązaniem jest „zaufana trzecia strona”. Idea:

• CA podpisuje klucze użytkowników swoim kluczem prywatnym

• weryfikacja używa klucza publicznego CA

• każdy użytkownik uznaje klucz publiczny CA za autentyczny

Certification Authority, CA

Zadaniem CA jest tworzenie, dystrybucja i potwierdzanie certyfikatów dlakażdego użytkownika systemu.

Uzyskanie certyfikatu od CA

Wersja I

Alicja: generuje kpub,A, kpriv ,A,

Alicja: wysyła do CA prośbę o wydanie certyfikatu dla klucza (kpub,A, IdA)

CA: weryfikuje tożsamość IdA

CA: podpisuje klucz sA = signkpriv,CA(kpub,A, IdA)

CA: wystawia certyfikat CertA = ((kpub,A, IdA), sA)

CA: publikuje certyfikat

Kluczowe dla bezpieczeństwa jest:

• potwierdzenie tożsamości Alicji

• bezpieczne dostarczenie klucza kpub,A – w praktyce kontakt fizyczny

Uzyskanie certyfikatu od CA

Wersja I

Alicja: generuje kpub,A, kpriv ,A,

Alicja: wysyła do CA prośbę o wydanie certyfikatu dla klucza (kpub,A, IdA)

CA: weryfikuje tożsamość IdA

CA: podpisuje klucz sA = signkpriv,CA(kpub,A, IdA)

CA: wystawia certyfikat CertA = ((kpub,A, IdA), sA)

CA: publikuje certyfikat

Kluczowe dla bezpieczeństwa jest:

• potwierdzenie tożsamości Alicji

• bezpieczne dostarczenie klucza kpub,A – w praktyce kontakt fizyczny

Uzyskanie certyfikatu od CA

Wersja II

Alicja: wysyła do CA prośbę o wygenerowanie klucza i wydanie certyfikatudla IdA

CA: weryfikuje tożsamość IdA

CA: generuje kpub,A, kpriv ,A,

CA: podpisuje klucz sA = signkpriv,CA(kpub,A, IdA)

CA: wystawia certyfikat CertA = ((kpub,A, IdA), sA)

CA: wysyła do Alicji (CertA, kpriv ,A)

Kluczowe dla bezpieczeństwa jest:

• potwierdzenie tożsamości Alicji

• bezpieczny dostarczenie klucza kpriv ,A – w praktyce kontakt fizyczny

Uzyskanie certyfikatu od CA

Wersja II

Alicja: wysyła do CA prośbę o wygenerowanie klucza i wydanie certyfikatudla IdA

CA: weryfikuje tożsamość IdA

CA: generuje kpub,A, kpriv ,A,

CA: podpisuje klucz sA = signkpriv,CA(kpub,A, IdA)

CA: wystawia certyfikat CertA = ((kpub,A, IdA), sA)

CA: wysyła do Alicji (CertA, kpriv ,A)

Kluczowe dla bezpieczeństwa jest:

• potwierdzenie tożsamości Alicji

• bezpieczny dostarczenie klucza kpriv ,A – w praktyce kontakt fizyczny

• pozostaje problem potwierdzenia klucza publicznego CA

• nadal konieczny jest bezpieczny i uwierzytelniony kanał

• jest on potrzebny tylko raz dlatego może być drogi i powolny

Zaufanie CA pozwala wykorzystać wszystkie pozostałe protokołykryptograficzne, a gdy zachodzi potrzeba potwierdzenia tożsamościodwołać się do CA.

• bezpieczny kanał może być zapewniony przez:

– wbudowanie w oprogramowanie zaufanych kluczy publicznych– wbudowanie w sprzęt zaufanych kluczy publicznych

• bezpieczeństwo tego kanału opiera się ponownie na zaufaniu

– oprogramowanie z potwierdzonych źródeł (oryginalne płyty,zaufane strony) jest bezpieczne

– podobnie w przypadku hardware

• zaufanie przeniesione jest na producenta i dostawcę

Zaufanie jest przeniesione również na użytkownika, który:

• nie wtyka wszystkiego co pasuje do portu USB,

• nie odpowiada na prośby o podanie hasła/kodu PIN/kluczaprywatnego (szczególnie od znajomych lub władz)

• nie klika we wszytko co przyszło w mailu jest podkreślone i obiecujesensację

• rozważnie dobiera przeglądane strony internetowe

• itd.

Diffie-Hellman z certyfikatami

Alicja i Bob posiadają potwierdzony klucz publiczny kpub,CA i bezpiecznykanał uzyskania certyfikatu.

DHE z użyciem CA

Alicja i Bob: ustalają p, α

Alicja i Bob: generują klucze

kpriv ,A = a, kpub,A = αa mod p, kpriv ,B = b, kpub,B = αb mod p

Alicja i Bob: proszą CA o wydanie certyfikatów CertA, CertB

Alicja i Bob: przesyłają i weryfikują wzajemnie certyfikaty

Alicja i Bob: obliczają klucz sesji

kAB = (kpub,A)kpriv,B mod p = (kpub,B)

kpriv,A mod p

X.509

Standard X.509 jest jednym z formatów certyfikatów, powszechnieużywany w komunikacji. Certyfikat taki zawiera między innymi:

Certificate Algorithm: metoda tworzenia podpisu, np.: RSA-DSA/2048+ SHA-1, ECDSA + SHA-512

Issuer: identyfikacja wystawiającego certyfikat

Period of Validity: od kiedy do kiedy ważny jest certyfikat

Subject: na kogo wystawiony jest certyfikat

Subject’s Public Key: właściwy klucz publiczny wraz z niezbędnymiparametrami

Signature: podpis cyfrowy całego certyfikatu

Algorytmy użyte do utworzenia klucza publicznego i podpisu cyfrowego niesą zapisane standardzie.

Łańcuch zaufania

• obecnie istnieje kilkadziesiąt (?) globalnych instytucji/firmdziałających jako CA

• poszczególne kraje posiadają także krajowe CA

• wybrane instytucje/firmy posiadają CA wydające certyfikaty dlaswoich pracowników

• jest niemożliwe posiadanie kluczy i certyfikatów wydanych przezwszystkie istniejące CA

• w praktyce tworzy się łańcuch/sieć wzajemnie uwierzytelniających sięCA

Łańcuch zaufania

• obecnie istnieje kilkadziesiąt (?) globalnych instytucji/firmdziałających jako CA

• poszczególne kraje posiadają także krajowe CA

• wybrane instytucje/firmy posiadają CA wydające certyfikaty dlaswoich pracowników

• jest niemożliwe posiadanie kluczy i certyfikatów wydanych przezwszystkie istniejące CA

• w praktyce tworzy się łańcuch/sieć wzajemnie uwierzytelniających sięCA

• potencjalnym sposobem ataku jest utworzenie przez Ewę własnego CA

• obroną przed tym atakiem jest zbudowanie hierarchii CA różnegorzędu, wtedy CA wyższego rzędu certyfikuje CA niższego rzędu

• CA najwyższego rzędu jest uznawane za godne zaufania i certyfikujesię samo (np. jako instytucja rządowa)

• inną metodą jest certyfikacja wzajemna na każdym poziomie ipomiędzy poziomami

• każdy certyfikat zawiera „ścieżkę certyfikacji”

Certyfikaty z wieloma CA

• Alicja posiada tylko klucz publiczny kpub,CA1 i certyfikat wydany przezCA1

• Bob posiada tylko klucz publiczny kpub,CA2 i certyfikat wydany przezCA1

• Alicja i Bob nie są wstanie zweryfikować swoich certyfikatów

• aby Alicja mogła to zrobić musi otrzymać z CA2 klucz publiczny,który jest podpisany kluczem prywatnym CA1

CertCA2 = [(kpub,CA2, IdCA2), signkpriv,CA1(kpub,CA2, IdCA2)]

• konieczne jest zatem wzajemne uwierzytelnienie się CA1 i CA2

Utrata zaufania:

• system certyfikatów powinien umożliwiać unieważnienie certyfikatóww przypadku ujawnienia klucza, utraty zaufania itp

• przekazanie listy unieważnionych certyfikatów także powinno odbyćsię w sposób bezpieczny i uwierzytelniony

• lista powinna być także aktualna, często aktualizowana

Recommended