Transcript PPT

Rinktiniai informacijos saugos skyriai
2. Kriptografija ir kriptografijos protokolai:
Įvadas, Klasikinė kriptografija
Paskaitos tikslai
Šioje temoje nagrinėjami klausimai:
 Kriptologijos vaidmuo užtikrinant kompiuterių
saugumą.
 Pagrindinės kriptografijos sąvokos
 Pagrindinės kriptoanalizės sąvokos
 Klasikinė kriptografija
2
Kriptografijos veikėjai
Z (Zigmas, Eve)
A (Algis, Alice)
B (Birutė, Bob)
3
Kriptografijos uždaviniai ir priemonės

Slaptumas (konfidencialumas, confidentiality)


Vientisumas (integralumas, integrity)



Kriptografinės maišos funkcijos
Skaitmeninis parašas
Autentiškumas (tapatumo nustatymas, authenticity)



Šifravimas
MAC
Skaitmeninis parašas
Neišsižadėjimas (nonrepudiation)

Skaitmeninis parašas
4
Kas yra kriptologija?


Kriptologija yra mokslas, sprendžiantis informacijos
apsaugos uždavinius matematiniais metodais.
Kriptologiją sudaro dvi sritys:





kriptografija (krypto – paslėptas ir graphein – rašyti (graik.));
kripoanalizė (kryptos ir analyein – atrišti).
Kriptografija nagrinėja metodus ir technologijas, skirtus
šifruoti ir dešifruoti informaciją, naudojant slaptą raktą.
Kriptoanalizė – tai kriptografinių apsaugos algoritmų
patikimumo vertinimo mokslas.
Steganografija (steganos – slėpti (graik.)) nagrinėja
metodus ir technologijas, skirtus paslėpti informaciją. 5
Terminai






M: pradinis (atviras, nešifruotas) tekstas (plaintext) –
pradinis pranešimas (duomenys, informacija).
C: šifruotas tekstas (šifras, ciphertext) – užšifruotas
pranešimas (duomenys, informacija).
E: šifravimas (cipher) – algoritmas šifruotam tekstui iš
pradinio teksto gauti.
D: dešifravimas – algoritmas pradiniam tekstui iš šifruoto
teksto atstatyti.
K: raktas (key) – šifravimui (atitinkamai dešifravimui)
naudojama papildoma informacija, žinoma tik siuntėjui
(atitinkamai gavėjui).
Kriptosistema (kriptografinė sistema, šifras, cryptosystem) –
šifravimo ir dešifravimo sistema.
6
Kriptoanalizė: 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).



Teksto-šifro porų ataka (known-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ė.
Pasirinktų teksto-šifro porų ataka (chosen-plaintext attack).


Duota: šifruotų tekstų aibė.
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 tekstus7
parinko pats kriptoanalitikas.
Brutalios jėgos (brute force) algoritmas




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.
8
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 security), jeigu galima įrodyti, kad sistemos įveikimas yra tolygus
matematinio (dažniausiai skaičių teorijos) uždavinio, kuris laikomas
sunkiu, sprendimui.
9
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.
10
Kriptosistemų tipai, jų savybės


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.

Sunkus raktų perdavimas.
Asimetrinės kriptosistemos.

Dar vadinamos viešojo rakto kriptosistemomis.

Šifravimo ir dešifravimo raktai skirtingi.

Sunku rasti dešifravimo raktą, žinant šifravimo raktą.

Lėtesnės už simetrines kriptosistemas.
11
Slaptojo rakto kriptosistemos schema (1)
X
Pranešimų
šaltinis
Y
X
Dešifratorius
Šifratorius
Pranešimų
gavėjas
Z
Z
Apsaugotas kanalas
Raktų šaltinis
X- pradinis pranešimas,
Y- šifruotas pranešimas,
Z- slaptasis šifravimo raktas.
12
Slaptojo rakto kriptosistemos schema (2)



Slaptasis raktas Z = [Z1,Z2,…,Zk] numatomam gavėjui
siunčiamas „apsaugotu kanalu“.
Pranešimų šaltinis pateikia pradinį tekstą X =
[X1,X2,…,Xk].
Šifratorius suformuoja šifrą Y = [Y1, Y2,…, Yk], kuris yra
X ir Z funkcija. Tai užrašysime taip:


Y = E(X, Z)
Dešifratorius atlieka atvirkščią veiksmą. Tokiu būdu
gauname:

X = D(Y, Z)
13
Simetrinės kriptosistemos: Problemos



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.
 Kadangi raktas žinomas ir siuntėjui, ir gavėjui,
simetrinė kriptosistema neapsaugo nuo pranešimų
padirbinėjimo: gavėjas gali suklastoti pranešimą ir
pareikšti, kad jį gavo nuo siuntėjo.
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ą.
Saugaus raktų perdavimo problema. Raktui perduoti reikia
saugaus kanalo.
14
Klasikinė kriptografija
Buvo naudojami du pagrindiniai šifravimo būdai:

Perstatų šifrai (Transposition):



sukeičia vietomis raides pagal kokią nors taisyklę,
lieka tos pačios raidės, tik išdėstytos kita eilės tvarka.
Keitinių šifrai (Substitution):


pakeičia kiekvieną raidę kita raide,
išlaiko raidžių eilės tvarką, bet pakeičia jų tapatybę.
15
Perstatų šifrai

Kaip užrašyti ir saugoti perstatų šifro raktą?
16
Perstatų šifrų pavyzdžiai (1): Skytalė
Skytalė - pirmasis istorijoje žinomas šifravimo
įrenginys, kartu ir šifras. Naudotas Spartoje antikos
laikais.
17
Perstatų šifrų pavyzdžiai (2): Geležinkelio
tvorelės šifras (Rail Fence cipher)
18
Perstatų šifrų pavyzdžiai (3): Kiti būdai
19
Keitinių šifrai: Cezario šifras (Caesar
Cipher)







Tai seniausias žinomas keitinių šifras.
Pirmas patvirtintas šifro naudojimas kariniams tikslams.
Naudotas Romos karvedžio Julijaus Cezario.
Pakeičia kiekvieną raidę raide, stovinčia abėcėlėje trimis
pozicijomis toliau:
a b c d e f g h i j k l m n o p q r s t u v w x y z
D 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
Pavyzdys:

meet me after the toga party

PHHW PH DIWHU WKH WRJD SDUWB
20
Keitinių šifrai: Postūmio šifras (Shift
Cipher)

Tai Cezario šifro apibendrinimas.

Veikimas. Perstumti abėcėlėje ne per 3 raides, kaip
Cezario šifro atveju, o per K raidžių, kur K yra šifro
raktas, 0 < K < N (čia N yra abėcėlės raidžių skaičius).

Kriptoanalizė. Ar gali kriptoanalitikas rasti raktą K?

TAIP! Brutalios jėgos ataka. Per maža raktų aibė!
21
Vienos abėcėlės keitinių šifrai
(Monoalphabetic Substitution Ciphers) (1)




Raktai: visi abėcėlės  = {A, B, C, …, Z} keitiniai.
Šifravimas raktu  :

kiekviena pradinio teksto raidė X pakeičiama į (X).
Dešifravimas raktu  :

kiekviena šifruoto teksto raidė Y pakeičiama į  -1(Y).
Pavyzdys:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
=B A D C Z H W Y G O Q X S V T R N M S K J I P F E U
TAIP  KBGR
22
Vienos abėcėlės keitinių šifrai (2)

Brutalios jėgos ataka neįgyvendinama be
šiuolaikinių kompiuterių, nes, pavyzdžiui, jei
abėcėlėje yra N=26 raidės, tai skirtingų raktų yra 26!
 4×1026.

Dominuoja slapto rašto mene pirmąjį mūsų eros
tūkstantmetį.

Tada daugelio laikytas neįveikiamu.
23
Vienos abėcėlės keitinių šifrų
kriptoanalizė (1)



Kiekviena kalba pasižymi tam tikromis
charakteristikomis: raidžių dažniu, dviejų ar daugiau
raidžių grupių dažniu.
Vienos abėcėlės keitinių šifrai išlaiko šias
charakteristikas.
Todėl vienos abėcėlės keitinių šifrai yra įveikiami
dažnių analizės ataka.
24
Anglų kalbos raidžių dažniai
14
12
10
8
Series1
6
4
2
0
a b c d e f g h i
j k l m n o p q r s t u v w x y z
25
Vienos abėcėlės keitinių šifrų
kriptoanalizė (2)



Skaičiuojami raidžių ir jų grupių pasirodymai
šifruotame tekste, norint gauti jų dažnio įverčius.
Gauti įverčiai lyginami su žinomomis kalbos
charakteristikomis.
Šifruoto teksto raidės pakeičiamos galimomis
pradinio teksto raidėmis.
26
Daugelio abėcėlių keitinių šifrai
(Polyalphabetic Substitution Ciphers)


Vienos abėcėlės keitinių šifrai yra įveikiami dažnių
analizės ataka.
Stipresnio šifro idėja (apie 1466 metus pasiūlyta
Leono Batistos Alberti):


Naudoti šifravimui daug abėcėlių ir jas keisti šifravimo
metu.
Šią idėją į patogų praktiškai naudoti šifrą išvystė
Vigenère (paskelbė 1586 metais).
27
Vigenère šifras (1)



Šifras naudojasi čia parodyta
lentele.
Pradinio teksto raidė
perstumiama ne per fiksuotą
skaičių raidžių abėcėlėje, kaip
buvo Cezario šifro atveju, o
per kintamą skaičių,
priklausantį nuo šifro rakto.
Šifro raktas užrašomas žodžiu,
kurio raidės ir parodo, per kiek
perstumti pradinio teksto
raides abėcėlėje.
28
Vigenère šifras (2)

Pavyzdys.

Pradinis tekstas: C R Y P T O G R A P H Y

Raktas:
L U C K L U C K L U C K

Šifruotas tekstas: N L A Z E I I B L J J I

Vigenère šifras paslepia raidžių pasirodymo kalboje
dažnius: kiekviena šifruoto teksto raidė gali būti gauta iš kelių
pradinio teksto raidžių. Todėl pasidaro sunkiau panaudoti
dažnių analizės ataką.
Vigenère šifru užšifruotas pranešimas faktiškai yra sudarytas
iš tiek postūmio šifru užšifruotų pranešimų, kiek rakte yra
raidžių.
29

Vigenère šifro kriptoanalizė




Pagrindinė problema yra rasti rakto ilgį. Tarkime,
pavyko tai padaryti.
Padalinti šifruotą pranešimą į tiek postūmio šifru
užšifruotų pranešimų, koks yra rakto ilgis.
Naudojant dažnių analizės ataką, rasti tų postūmio
šifrų raktus ir dešifruoti pranešimus.
Rakto ilgiui rasti galima pasinaudoti 1863 metais
Kasiski pasiūlyta idėja: jei pradiniame tekste
kartojasi koks nors fragmentas (raidžių grupė), ir jis
bus užšifruotas tuo pačiu rakto fragmentu, tai
šifruotame tekste atitinkami fragmentai irgi kartosis.
Todėl šifre reikia ieškoti pasikartojančių fragmentų. 30
Vigenère šifro kriptoanalizė: rakto ilgio
radimas (1)
Ieškoti pasikartojančių fragmentų ir skaičiuoti atstumus tarp
jų pradžių. Pavyzdžiui, jei šifruotas tekstas yra
DFVNDFJNDVFMDKVNDSJKF, atstumas tarp
pasikartojančių fragmentų VND yra 12. Daryti tai
kiekvienam pasikartojančiam fragmentui.
2. Rasti visų tų atstumų daliklius. Jei koks nors skaičius yra
visų atstumų daliklis, greičiausiai tai ir bus rakto ilgis.
Aišku, pasikartojančių fragmentų gali pasitaikyti ir netyčia,
bet didesnė tikimybė, kad tai pasikartojantis pradinio teksto
fragmentas, kuris buvo užšifruotas tuo pačiu rakto
fragmentu. Kadangi rakto fragmentai kartojasi kas rakto
ilgio kartotiniai, tai pirmame žingsnyje rasti atstumai su
31
didele tikimybe bus rakto ilgio kartotiniai.
1.
Vigenère šifro kriptoanalizė: rakto ilgio
radimas (2)
Pavyzdys.




Moonsunstarsmoonsunsmooth
Raktas: alfa
MZTNSFSSTLWSMZTNSFSSMZTTHSWW
Atstumai tarp pasikartojančių fragmentų:



MZT – 12, 8
SFS – 12
Rakto ilgis dalo 8 ir 12, todėl tai 2 arba 4.
32
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.
[Ske07] G. Skersys. Diskrečioji matematika.
Mokymo priemonė, Vilnius, 2007,
http://www.mif.vu.lt/~skersys/09r/dm/konsp.htm (V
dalies 5 skyrius „Kriptografija“).
[Sta07] V. Stakėnas. Kodai ir šifrai. TEV, Vilnius,
2007.
33