240 likes | 476 Views
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. H = F(duom) H(A) = H(A) Kolizija: H ( a ) = H ( b ), and a ≠ b. HASH. Paskirtis. Kontrolinė suma
E N D
Maišymo ir šifravimo algoritmai I dalisS. Kareiva
Turinys • Maišos (hash) funkcijos • Kriptografinės maišos funkcijos • Kriptavimo raktai
Maiša (hash) Duomenys Hash algoritmas H = F(duom) H(A) = H(A) Kolizija: H(a) = H(b), and a ≠ b HASH
Paskirtis • Kontrolinė suma • Pirštų atspaudai • Laikinoji atmintis • Kriptografinė maiša (slaptažodžiams) Kuo skiriasi?
Off-topic: Frame switching • Duomenys antrame lygyje (ir kituose) perduodami paketais – ethernet frame • Kiekvienam duomenų paketui atliekamas CRC patikrinimas (hash)
Kontrolinė suma • CRC – cyclic redundancy check Siuntėjas 0 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 CRC: 0 1 1 0 Gavėjas 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 1 0 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
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ų
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