2. kriptografija ir kriptografijos protokolai: Įvadasskersys/18p/riss/konsp/02 - kriptografija1 -...
Post on 14-Jan-2020
20 Views
Preview:
TRANSCRIPT
Rinktiniai informacijos saugos skyriai
2. Kriptografija ir kriptografijos protokolai:
Įvadas
Paskaitos tikslai
Šioje temoje nagrinėjami klausimai:
Pagrindinės kriptografijos sąvokos
Kriptosistemos:
– Simetrinės
– Viešojo rakto
Skaitmeninis parašas
Kriptografinės maišos funkcijos, MAC funkcijos
Pagrindinės kriptoanalizės sąvokos:
– Atakų rūšys
– Kriptosistemų saugumo vertinimas
Paskaitos tikslai
Šioje temoje nagrinėjami klausimai:
Pagrindinės kriptografijos sąvokos
Kriptosistemos:
– Simetrinės
– Viešojo rakto
Skaitmeninis parašas
Kriptografinės maišos funkcijos, MAC funkcijos
Pagrindinės kriptoanalizės sąvokos:
– Atakų rūšys
– Kriptosistemų saugumo vertinimas
4
Kriptografijos veikėjai
Z (Zigmas, Eve)
A (Algis, Alice) B (Birutė, Bob)
5
Kriptografijos uždaviniai ir priemonės
Slaptumas (konfidencialumas, angl. confidentiality)
Šifravimas
Vientisumas (integralumas, angl. integrity)
Kriptografinės maišos funkcijos, MAC funkcijos
Skaitmeninis parašas
Autentiškumas (tapatumo nustatymas, angl. authenticity)
MAC funkcijos
Skaitmeninis parašas
Neišsižadėjimas (angl. nonrepudiation)
Skaitmeninis parašas
6
Kas yra kriptologija?
Kriptografija yra mokslas, sprendžiantis informacijos
apsaugos uždavinius matematiniais metodais.
Kriptoanalizė – tai kriptografinių apsaugos algoritmų
patikimumo vertinimo mokslas.
Steganografija nagrinėja metodus ir technologijas, skirtus
paslėpti informaciją.
Kriptologija = kriptografija + kriptoanalizė
(+ steganografija).
Paskaitos tikslai
Šioje temoje nagrinėjami klausimai:
Pagrindinės kriptografijos sąvokos
Kriptosistemos:
– Simetrinės
– Viešojo rakto
Skaitmeninis parašas
Kriptografinės maišos funkcijos, MAC funkcijos
Pagrindinės kriptoanalizės sąvokos:
– Atakų rūšys
– Kriptosistemų saugumo vertinimas
8
Kriptografijos uždaviniai ir priemonės
Slaptumas (konfidencialumas, angl. confidentiality)
Šifravimas
Vientisumas (integralumas, angl. integrity)
Kriptografinės maišos funkcijos, MAC funkcijos
Skaitmeninis parašas
Autentiškumas (tapatumo nustatymas, angl. authenticity)
MAC funkcijos
Skaitmeninis parašas
Neišsižadėjimas (angl. nonrepudiation)
Skaitmeninis parašas
kriptografija kriptografija
Šifravimas Dešifravimas
rltgaikklbaxh
raktas
(pradinis tekstas) (pradinis tekstas)
(šifruotas tekstas)
(bendras slaptas raktas)
Kriptosistemos schema
Šiame pavyzdyje šifruota Dellastelio skėlimo pusiau šifru (angl. Bifid cipher)
http://rumkin.com/tools/cipher/bifid.php
Terminai
M: pradinis (atviras, nešifruotas) tekstas (angl. plaintext) – pradinis pranešimas (duomenys, informacija), kurį siuntėjas nori perduoti gavėjui.
C: šifruotas tekstas (šifras, angl. ciphertext) – užšifruotas pranešimas (duomenys, informacija), t. y. toks, kurio prasmė paslėpta.
E: šifravimas (angl. encryption) – algoritmas šifruotam tekstui iš pradinio teksto gauti.
D: dešifravimas (angl. decryption) – algoritmas pradiniam tekstui iš šifruoto teksto atstatyti.
K: raktas (angl. key) – šifravimui ir dešifravimui naudojama papildoma informacija.
Kriptosistema (kriptografinė sistema, šifras, angl. cryptosystem, cipher) – šifravimo ir dešifravimo sistema, sudaryta iš aukščiau išvardintų dalių (pradinių tekstų aibės, šifruotų tekstų aibės, raktų aibės, šifravimo funkcijos ir dešifravimo funkcijos).
Kriptosistemų tipai
Simetrinės (slaptojo rakto) kriptosistemos.
Viešojo rakto (asimetrinės) kriptosistemos.
11
Simetrinės kriptosistemos
Dar vadinamos slaptojo rakto kriptosistemomis.
Iki 1976 metų tai buvo vienintelis būdas šifruoti.
Šifravimui ir dešifravimui naudojamas tas pats
raktas.
Raktas turi būti slaptas.
12
13
Simetrinės kriptosistemos naudojimas (1)
Pranešimų
šaltinis
Šifravimas Dešifravimas Pranešimų
gavėjas
Raktų šaltinis
Saugus kanalas
M MC
K
K
M - pradinis pranešimas,
C - šifruotas pranešimas,
K - slaptasis šifravimo ir dešifravimo raktas.
14
Simetrinės kriptosistemos naudojimas (2)
Slaptasis raktas K numatomam gavėjui turi būti siunčiamas
saugiu kanalu.
Pranešimų šaltinis pateikia pradinį tekstą M.
Šifravimo metu suformuojamas šifras C, kuris priklauso
nuo M ir K. Tai užrašysime taip:
C = E(M, K)
Dešifravimo metu atliekamas atvirkščias veiksmas. Tokiu
būdu gauname:
M = D(C, K)
Simetrinių kriptosistemų trūkumai
Saugaus raktų perdavimo problema. Raktui perduoti reikia saugaus kanalo.
Simetrinėje kriptosistemoje tas pats raktas, žinomas ir siuntėjui, ir gavėjui, naudojamas ir šifravimui, ir dešifravimui.
Raktas turi būti slaptas, nes tas, kas jį žino, gali dešifruoti pranešimus.
Raktų valdymo problema. Didėjant naudotojų skaičiui, reikiamų raktų kiekis didėja labai greitai: n naudotojų reikia n(n-1)/2 raktų, nes kiekviena siuntėjo-gavėjo pora privalo turėti skirtingą raktą.
Viešojo rakto kriptosistemos
Dar vadinamos asimetrinėmis kriptosistemomis.
Šifravimo ir dešifravimo raktai skirtingi.
Kiekvienas naudotojas turi raktų porą (KV, KP): KV yra viešasis raktas, skirtas šifravimui,
KP yra privatusis raktas, skirtas dešifravimui,
KV ≠ KP,
Juos sieja lygybė: D(E(M,KV),KP) = M kiekvienam pranešimui M.
Viešasis raktas gali būti skelbiamas viešai.
Bet kas gali užšifruoti (pasinaudodamas viešai skelbiamu viešuoju raktu), tik vienas gali dešifruoti (tas, kas žino privatųjį raktą).
Sunku rasti dešifravimo raktą, žinant šifravimo raktą.
16
17
Viešojo rakto kriptosistemos naudojimas
Pranešimų
šaltinis
Šifravimas Dešifravimas Pranešimų
gavėjas
Privatusis
raktas
Viešųjų raktų
saugykla
M MC
KPBKVB
M – pradinis pranešimas,
C – šifruotas pranešimas,
KVB – viešasis pranešimų gavėjo (naudotojo B) raktas,
KPB – privatusis pranešimų gavėjo (naudotojo B) raktas.
Viešasis
raktas
Viešojo rakto ir simetrinių kriptosistemų
bendras naudojimas
Pagrindinis viešojo rakto kriptosistemų trūkumas, lyginant jas su simetrinėmis kriptosistemomis, yra žymiai mažesnis šifravimo ir dešifravimo greitis.
Todėl jos ne pakeičia simetrines kriptosistemas, o jas papildo.
Viešojo rakto ir simetrinės kriptosistemos naudojamos kartu:
Viešojo rakto kriptografija naudojama ryšio užmezgimo metu bendro sesijos rakto sugeneravimui.
Sesijos raktas naudojamas kaip simetrinės kriptosistemosraktas. Visi sesijos duomenys perduodami šifruojant simetrine kriptosistema.
Tokiu principu veikia tokie protokolai, kaip SSL/TLS, SSH ir t.t.
Paskaitos tikslai
Šioje temoje nagrinėjami klausimai:
Pagrindinės kriptografijos sąvokos
Kriptosistemos:
– Simetrinės
– Viešojo rakto
Skaitmeninis parašas
Kriptografinės maišos funkcijos, MAC funkcijos
Pagrindinės kriptoanalizės sąvokos:
– Atakų rūšys
– Kriptosistemų saugumo vertinimas
20
Kriptografijos uždaviniai ir priemonės
Slaptumas (konfidencialumas, angl. confidentiality)
Šifravimas
Vientisumas (integralumas, angl. integrity)
Kriptografinės maišos funkcijos, MAC funkcijos
Skaitmeninis parašas
Autentiškumas (tapatumo nustatymas, angl. authenticity)
MAC funkcijos
Skaitmeninis parašas
Neišsižadėjimas (angl. nonrepudiation)
Skaitmeninis parašas
21
Skaitmeninis parašas
Skaitmeninis parašas: duomenų blokas, susiejantis pranešimą (dokumentą) su siuntėju (pasirašančia esybe).
Tai viešojo rakto kriptografija:
Kiekvienas subjektas turi raktų porą: privatųjį, skirtą parašo sudarymui, ir viešąjį, skirtą parašo tikrinimui.
Skaitmeninio parašo schema:
pasirašymo (parašo sudarymo) algoritmas: pateikus pranešimą ir pasirašymo (privatųjį) raktą, išveda parašą,
parašo tikrinimo algoritmas: pateikus pranešimą, parašą, tikrinimo (viešąjį) raktą, išveda patvirtinimą arba paneigimą, kad parašas yra galiojantis.
Užtikrina:
Vientisumą,
Autentiškumą,
Neišsižadėjimą.
22
Skaitmeninio parašo naudojimas [Sta07]
Paskaitos tikslai
Šioje temoje nagrinėjami klausimai:
Pagrindinės kriptografijos sąvokos
Kriptosistemos:
– Simetrinės
– Viešojo rakto
Skaitmeninis parašas
Kriptografinės maišos funkcijos, MAC funkcijos
Pagrindinės kriptoanalizės sąvokos:
– Atakų rūšys
– Kriptosistemų saugumo vertinimas
24
Kriptografijos uždaviniai ir priemonės
Slaptumas (konfidencialumas, angl. confidentiality)
Šifravimas
Vientisumas (integralumas, angl. integrity)
Kriptografinės maišos funkcijos, MAC funkcijos
Skaitmeninis parašas
Autentiškumas (tapatumo nustatymas, angl. authenticity)
MAC funkcijos
Skaitmeninis parašas
Neišsižadėjimas (angl. nonrepudiation)
Skaitmeninis parašas
25
Maišos funkcija ir santrauka
Pranešimo vientisumui užtikrinti naudojama pranešimo santrauka
(message digest, kartais dar vadinama Modification Detection Code
(MDC)).
Pranešimo santrauka skaičiuojama, naudojant maišos funkciją.
Pranešimo santrauka vadiname maišos funkcijos reikšmę.
Maišos funkcija (hash function) vadiname funkciją, kuri bet kokio
baigtinio ilgio ženklų eilutei priskiria fiksuoto ilgio eilutę.
Maišos funkcijos naudojamos ne tik informacijos vientisumo
patikrinimui, bet ir dokumento santraukai gauti skaitmeninio parašo
schemose, slaptažodžių saugojimui, paieškos raktų formavimui duomenų
bazėse ir panašiai.
26
Santraukos ilgis yra fiksuotas
Pavyzdys. Skaičiuosime duoto pranešimo MD5 maišos funkcijos reikšmę:
Tuščias pranešimas:
d41d8cd98f00b204e9800998ecf8427e
A:
7fc56270e7a70fa81a5935b72eacbe29
Ilgesnis pranešimas iš kelių žodžių:
cd894604746deba896568cb8f2f6f197
3,5 MB dydžio failas:
9659f0218ab08598f7f53edec512479e
27
Santraukos naudojimas vientisumui
užtikrinti: Schema
Pranešimas
Maišos funkcija
Santrauka
Algis Birutė
Pranešimas
Maišos funkcija Santrauka
Lygu? T
N
Priimti
Atmesti
Santrauka
Nesaugus
kanalas
Saugus
kanalas
28
Maišos funkcijos ir autentiškumas
Reikia saugaus kanalo santraukai perduoti.
Saugus kanalas yra ne visada.
Tinka tik vientisumui patikrinti, bet ne autentiškumui, nes
nėra informacijos apie tai, kas yra pranešimo siuntėjas.
Maišos funkcijos yra viešos, todėl pranešimo santrauką
apskaičiuoti galėjo bet kas.
Ką daryti?
Naudoti raktus:
Pranešimo tapatumo nustatymo kodas (Message authentication
code, MAC).
29
MAC
Pranešimo tapatumo nustatymo kodas (MAC) yra
funkcija, kurios reikšmė priklauso nuo pranešimo ir slapto
rakto.
Skirtumas tarp maišos funkcijos reikšmės (pranešimo
santraukos) ir MAC reikšmės yra tas, kad MAC priklauso ir
nuo slapto rakto, žinomo tik siuntėjui ir gavėjui (Algiui ir
Birutei).
MAC reikšmė leidžia patikrinti ir pranešimo vientisumą, ir
autentiškumą.
30
MAC naudojimo schema
Paskaitos tikslai
Šioje temoje nagrinėjami klausimai:
Pagrindinės kriptografijos sąvokos
Kriptosistemos:
– Simetrinės
– Viešojo rakto
Skaitmeninis parašas
Kriptografinės maišos funkcijos, MAC funkcijos
Pagrindinės kriptoanalizės sąvokos:
– Atakų rūšys
– Kriptosistemų saugumo vertinimas
Kriptoanalizė
Kerckhoffo principas: priešininkas žino apie
kriptosistemą viską, išskyrus raktą.
Atakų rūšys:
kriptosistemų struktūros atakos;
kriptosistemų realizacijos (kanalo) atakos (angl. Side
channel attack);
protokolų atakos.
33
Kriptosistemų struktūros atakų
klasifikacija [Sta07]
Tikslas: rasti dešifravimo raktą. Taip pat rasti ir pradinius tekstus, jei jie nežinomi.
Prielaida: šifravimo algoritmas yra žinomas.
Pavienių šifrų ataka (ciphertext-only attack).
Duota: šifruotų tekstų aibė.
Teksto-šifro porų ataka (known-plaintext attack).
Duota: pradinių tekstų ir atitinkamų šifruotų tekstų aibė.
Pasirinktų teksto-šifro porų ataka (chosen-plaintext attack). Duota: pradinių tekstų ir atitinkamų šifruotų tekstų aibė, kur pradinius tekstus
parinko pats kriptoanalitikas.
Adaptyvi pasirinktų teksto-šifro porų ataka (adaptive-chosen-plaintext attack).
Duota: pradinių tekstų ir atitinkamų šifruotų tekstų aibė, kur pradinius tekstus parinko pats kriptoanalitikas, atsižvelgdamas į anksčiau atliktų atakų rezultatus.
Pasirinktų šifrų ataka (chosen-ciphertext attack).
Duota: pradinių tekstų ir atitinkamų šifruotų tekstų aibė, kur šifruotus tekstus parinko pats kriptoanalitikas.
Perrinkimo ataka
(angl. brute force)
Duota: užšifruotas pranešimas.
Tikslas: rasti dešifravimo raktą.
Prielaidos:
algoritmas ir visų raktų aibė yra žinomi,
pradinius tekstus arba žinome, arba galime atpažinti.
Algoritmas: tiesiog bandome dešifruoti užšifruotą pranešimą visais įmanomais raktais kažkuria eilės tvarka. Jei gauname pradinį pranešimą, radome ieškomą raktą.
Tai paprasčiausia teksto-šifro porų ataka, jos sudėtingumas proporcingas raktų skaičiui.
Perrinkimo atakos vidutinis veikimo
laikas
Rakto ilgis (bitais)
Raktų skaičius Vidutinis įveikimo laikas (1 šifravimas/μs)
Vidutinis įveikimo laikas (106
šifravimų/μs)
32 232 4,3x109 231 μs 35,8 min 2,15 ms
56 256 7,2x1016 255 μs 1142 metai 10,01 h
128 2128 3,4x1038 2127 μs 5,4x1024
metų5,4x1018 metų
168 2168 3,7x1050 2167 μs 5,9x1036
metų5,9x1030 metų
26 raidės (keitinys)
26! 4x1026 2x1026 μs 6,4x1012
metų6,4x106 metų
Kriptosistemų realizacijos (kanalo)
atakos
Laiko matavimo ataka (angl. Timing attack)
Galios naudojimo stebėjimo ataka (angl. Power-
monitoring attack)
Elektromagnetinė ataka (angl. Electromagnetic attack)
Akustinė kriptanalizė (angl. Acoustic cryptanalysis)
Skirtuminė gedimų analizė (angl. Differential fault
analysis)
Liekamųjų duomenų ataka (angl. Data remanence)
RAM ataka (angl. Row hammer)
Protokolų atakos
Pavyzdys: tarpininko ataka (angl. Man-in-the-middle
attack)
Algis Birutė
Zigmas
Paskaitos tikslai
Šioje temoje nagrinėjami klausimai:
Pagrindinės kriptografijos sąvokos
Kriptosistemos:
– Simetrinės
– Viešojo rakto
Skaitmeninis parašas
Kriptografinės maišos funkcijos, MAC funkcijos
Pagrindinės kriptoanalizės sąvokos:
– Atakų rūšys
– Kriptosistemų saugumo vertinimas
39
Kriptosistemų saugumo vertinimas (1) [Sta07]
Kriptosistema vadinama besąlygiškai saugia (unconditional security),
jei net ir turėdamas beribius skaičiavimo išteklius kriptoanalitikas negali
be rakto iš šifro nustatyti, koks pranešimas buvo siųstas. Tai
griežčiausias saugios kriptosistemos apibrėžimas.
Kriptosistema vadinama saugia sudėtingumo teorijos požiūriu
(complexity-theoretic security), jei jos negali įveikti Zigmas, kurio
skaičiavimo resursai leidžia jam taikyti tik polinominio laiko algoritmus
(t. y. kai naudojamas laikas ir atmintis polinomiškai priklauso nuo
įvedamų duomenų dydžio).
Sakoma, kad kriptosistemos saugumas yra įrodomas (provable secu-
rity), jeigu galima įrodyti, kad sistemos įveikimas yra tolygus
matematinio (dažniausiai skaičių teorijos) uždavinio, kuris laikomas
sunkiu, sprendimui.
40
Kriptosistemų saugumo vertinimas (2) [Sta07]
Kriptosistema vadinama skaičiavimų požiūriu saugia (computational
security), jeigu pasiektas skaičiavimų resursų lygis yra pernelyg žemas,
kad naudojant geriausias žinomas atakas, sistema būtų įveikta.
Pagaliau ad hoc saugia, arba euristiškai saugia, kriptosistema
vadinama tokia sistema, kurios saugumą patvirtina tam tikri dažnai
euristiniai argumentai. Suprantama, šis terminas tereiškia, kad
specialistai atliko tam tikrą sistemos analizę, tačiau įveikti
kriptosistemos nepavyko.
Įvertinti kriptosistemos saugumą - sudėtinga užduotis. Jokių bendrų
receptų jai spręsti nėra. Kriptografo žinių, patirties ir talento niekas
neatstos. Kriptografija yra modernus mokslas, tačiau, kaip ir senaisiais
laikais, ir menas.
Naudota literatūra
[Gol05] D. Gollmann, Computer Security, 2nd edition,
John Wiley & Sons, 2005.
[PP07] Charles Pfleeger, Shari Lawrence Pfleeger.
Security in Computing, Fourth Edition. Prentice Hall,
2007.
[Ske16] G. Skersys. Diskrečioji matematika. Mokymo
priemonė, Vilnius, 2016 (V dalies 5 skyrius
„Kriptografija“), http://www.mif.vu.lt/~skersys/16r/dm/konsp.htm
[Sta07] V. Stakėnas. Kodai ir šifrai. TEV, Vilnius, 2007.
top related