Maišymo ir šifravimo algoritmai

Download Report

Transcript Maišymo ir šifravimo algoritmai

Maišymo ir šifravimo algoritmai
I dalis
S. Kareiva
Turinys
• Maišos (hash) funkcijos
• Kriptografinės maišos funkcijos
• Kriptavimo raktai
Maiša (hash)
Duomenys
Hash
algoritmas
Hash reikšmė
Duomenys
000001
Jonas Jonaitis
000002
Petras Petraitis
000003
Pranas Pranaitis
……
……
00000F
Vardenis Pavardenis
H = F(duom)
HASH
H(A) = H(A)
Kolizija: H(a) = H(b), and a ≠ b
Paskirtis
• Kontrolinė suma
Kuo skiriasi?
• Pirštų atspaudai
• Laikinoji atmintis
• Kriptografinė maiša (slaptažodžiams)
Off-topic: Frame switching
• Duomenys antrame lygyje (ir kituose)
perduodami paketais – ethernet frame
• Kiekvienam duomenų paketui atliekamas CRC
patikrinimas (hash)
Preamble
Start
Dst
MAC
Src
MAC
VLAN tag
7x 10101010
10101011
6 bytes
6 bytes 4 bytes
Ethertype Data
CRC
Gap
2 bytes
4 bytes
12 bytes
1500 bytes
Encapsulation
Kontrolinė suma
• CRC – cyclic redundancy check
Siuntėjas
01001010 01000110 11011010
CRC: 0 1 1 0
Gavėjas
01001010 01000000 11011010
CRC: 0 1 1 0
CRC ERROR!
Algoritmai
• XOR (parity byte)
• Modulinė suma
• Position-dependent checksum
• Unix įrankiai: cksum, md5sum
Griūties efektas
• Avalanche effect
• Pakeitus vieną duomenų bitą, kontrolinė suma
kardinaliai pasikeičia
• Kam to reikia?
MD5
• Message Digest v5 – 16 baitų
• 79054025255fb1a26e4bc422aef54eb4
• Neatsparus kolizijoms
• Netinkamas naudoti kriptografijai
• Bet puikus hash algoritmas!
MD5 saugumas
• Ką sako wikipedija:
– A 2009 attack by Tao Xie and Dengguo Feng
breaks MD5 collision resistance in 220.96 time. This
attack runs in a few seconds on a regular
computer.
Griūties efektas (MD5)
• MD5("The quick brown fox jumps over the lazy dog") =
9e107d9d372bb6826bd81d3542a419d6
• MD5("The quick brown fox jumps over the lazy dog.") =
e4d909c290d0fb1ca068ffaddf22cbd0
MD5
SHA
• Secure hash algorithm (160 bitų)
• Kuriamas NIST (JAV)
• Kelios versijos:
– SHA-0 – pirmoji algoritmo versija su klaida
– SHA-1 – originalusis algoritmas
– SHA-2 – papildytas ir naudojamas .gov, SSL
– SHA-3 – still under development
• sha1sum
SHA-1
• SHA1("The quick brown fox jumps over the lazy dog")
= 2fd4e1c6 7a2d28fc ed849ee1 bb76e739 1b93eb12
• SHA1("The quick brown fox jumps over the lazy cog")
= de9f2c7f d25e1b3a fad3e85a 0bd17d9b 100db4b3
BASE64 kodavimas
• Algoritmas, skirtas pranešimo transformacijai į
8 bitų simbolių seką
• Naudojamas perduoti duomenis tam tikrais
kanalais vien paprastų simbolių pagalba
• Dažnai naudojama tekstiniuose protokoluose,
tokiuose kaip HTTP ar pan.
BASE64 algoritmo pvz:
Informatika - mokslas apie kompiuterius ir jų taikymus - yra viena iš
veržliausiai besivystančių žmogaus veiklos sričių, kurios poveikį mes labai
jaučiame savo gyvenime.
SW5mb3JtYXRpa2EgLSBtb2tzbGFzIGFwaWUga29tcGl1dGVyaXVzIGlyIGpzIHRhaWt5bXVzIC0g
eXJhIHZpZW5hIGlhIHZlcn5saWF1c2lhaSBiZXNpdnlzdGFuDWlzIH5tb2dhdXMgdmVpa2xvcyBz
cmkNaXMsIGt1cmlvcyBwb3ZlaWsvIG1lcyBsYWJhaSBqYXUNaWFtZSBzYXZvIGd5dmVuaW1lLg==
Kriptografiniai raktai
• Kriptografinės funkcijos parametrai, be kurių
hešavimo (kriptavimo) funkcijos tampa
bijekcijomis
• Geriausi raktai yra sugeneruojami random()
funkcijos
• Optimalūs dydžiai – nuo 128 bitų
Raktuotas HASH
Vieši ir privatūs raktai
• Raktų pora skirta saugiam bendravimui
• Viešas raktas
– skirtas kriptografiniam žinutės užkodavimui
– galima dalintis su draugais ir kolegomis
• Privatus raktas
– tinkamas tik atkodavimui
– geriau su niekuom nesidalinti ir apsaugoti
papildomu slaptažodžiu
Public ir private raktai
Raktų naudojimas SSH
SSL sertifikatai