2. kriptografija ir kriptografijos protokolai: Įvadasskersys/16p/riss/konsp/02 - kriptografija1 -...

Post on 01-Feb-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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 Pagrindinės kriptoanalizės sąvokos

3

Kriptografijos veikėjai

Z (Zigmas, Eve)

A (Algis, Alice) B (Birutė, Bob)

4

Kriptografijos uždaviniai ir priemonės

Slaptumas (konfidencialumas, angl. confidentiality) Šifravimas

Vientisumas (integralumas, angl. integrity) Kriptografinės maišos funkcijos Skaitmeninis parašas

Autentiškumas (tapatumo nustatymas, angl. authenticity) MAC Skaitmeninis parašas

Neišsižadėjimas (angl. nonrepudiation) Skaitmeninis parašas

5

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).

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, žinoma tik siuntėjui ir gavėjui (viešojo rakto kriptosistemose siuntėjo ir gavėjo raktai skiriasi).

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.

8

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.

9

10

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.

11

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 x (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ą.13

14

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š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 kriptosistemos raktas. Visi sesijos duomenys perduodami šifruojant simetrine kriptosistema.

Tokiu principu veikia tokie protokolai, kaip SSL/TLS, SSH ir t.t.

16

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ą.

17

Skaitmeninio parašo naudojimas [Sta07]

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.

19

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.

20

Perrinkimo ataka

angl. brute force Laikome, kad algoritmas ir visų raktų aibė yra

žinomi. Tiesiog bandomi visi raktai kažkuria eilės tvarka. Tai paprasčiausia ataka, jos sudėtingumas

proporcingas raktų skaičiui. Laikome, kad pradinius tekstus arba žinome, arba

galime atpažinti.

Perrinkimo atakos vidutinis veikimo laikas

Rakto ilgis (bitais)

Raktų skaičius Įveikimo laikas (1 šifravimas/μs)

Į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

24

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.

25

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.

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.

[Ske13] G. Skersys. Diskrečioji matematika. Mokymo priemonė, Vilnius, 2013 (V dalies 5 skyrius „Kriptografija“), http://www.mif.vu.lt/~skersys/15r/dm/konsp.htm

[Sta07] V. Stakėnas. Kodai ir šifrai. TEV, Vilnius, 2007.

top related