Vika 10. Öryggi og dulmálsfræði Flashcards
Óreiða (e. entropy)
Óreiða (Tenglar á ytra svæði.) mælir hversu handahófskennt (slembið) eitthvað er og skiptir til dæmis máli þegar ákvarða á hversu öruggt lykilorð er. Stutt orð eru með litla óreiðu og því getur verið auðvelt að giska á þau, en löng orð eru með meiri óreiðu og eru því öruggari.
En hvernig er óreiða mæld?
Óreiða er mæld í bitum (e. bits), þ.e. við getum mælt hversu margir bitar af óreiðu eru í gefnu lykilorði. Þegar við veljum handahófskennt úr mengi af mögulegum útkomum er óreiðan mæld sem 2-logrinn af n = fjölda mögulegra útkoma, þ.e. log2(n). Að kasta krónu er t.d 1 biti af óreiðu því við erum með 2 möguleika og log2(2) = 1.
Hvað er tætifall?
Í stuttu máli er tætifall vörpun sem varpar gögnum af hvaða stærð sem er yfir í streng af gefinni lengd, t.d. bitastreng af lengd 128 eða 256 og kallast úttaksstrengurinn tætigildi. Tætiföll eru löggeng (e. deterministic) sem þýðir að sama inntaksgildið varpast alltaf í sama úttaksgildið.
Dulmálstætiföll (e. cryptographic hash function) ?
Eru tætiföll sem hafa tvo viðbótareiginleika og eru oft notuð til að staðfesta að gögnum hafi ekki verið breytt, því það er nær ómögulegt að breyta gögnunum án þess að tætigildi gagnanna breytist líka.
Dulmálstætiföll hafa eftirfarandi viðbótareiginleika:
Þau eru ekki andhverfanleg (e. Non-invertible): Fyrir tætifall h er mjög erfitt að finna inntak a þannig að h(a) = b fyrir eitthvað fyrirfram þekkt úttak b sem við viljum fá.
Litlar líkur á árekstrum (e. collision resistant): Það er mjög erfitt að finna tvö mismunandi inntök a og b þannig að h(a) = h(b). Athugið að þetta er mun sterkari eiginleiki en hjá tætiföllum sem eru ekki dulmálstætiföll.
Dæmi um dulmálstætifall er?
SHA-1 (Tenglar á ytra svæði.), sem er notað í Git.
Hvernig notar Git SHA-1?
Git gefur öllum hlutum eins og t.d. Stöðupunktum (e. commits) sem geymdir eru í kóðageymslu (e. repository) einkvæmt nafn með SHA-1 dulmálstætifallinu, þ.e með þessu móti fær hver og einn hlutur einstakt 160 bita nafn.
Afhverju notar Git tætifall?
Ástæðan fyrir því að Git notar dulmálstætifall er til að ganga úr skugga um að allir hlutir hafi einstakt nafn, þ.e. engir árekstrar verði þannig að tveir mismunandi hlutir fái sama tætigildið. Með þessu móti getum við einnig staðfest að upplýsingar í kóðageymslunni séu réttar.
Lykilútleiðsluföll (Key derivation functions - KDF) :
Eru dulmálstætiföll sem búa til lykla af fyrirfram ákveðinni lengd út frá lykilorðum (eða öðrum gildum eins og aðgangssetningum eða aðallyklum (e. master key)) með því að nota gervislembifölll (e. Pseudorandom function).
Hver er tilgangurinn með lykilútleiðsluföllum ?
Að auka á öryggi lykilorðanna og yfirleitt er kostnaðarsamt að reikna þau svo erfitt sé að nota þau til að giska á lykilorð.
Notkun lykilútleiðslufalla eru aðallega tvenns konar:
Til að búa til lykla úr aðgangssetningum (e. passphrase) til þess að nota í dulmáls algrímum.
Til að geyma aðgangslykil (e. login credentials).
Hvað eru regnbogatöflur?
Regnbogatöflur eru gagnasöfn þar sem tætigildum af lykilorðum hefur verið safnað saman. Með slíkum töflum er hægt að finna andhverfu tætigildis fyrir gefið lykilorð með því einfaldlega að fletta því upp. Ef tætigildi í regnbogatöflunni passar við tætigildi lykilorðsins hefur tölvuþrjótinum tekist að komast yfir aðganginn.
Hvað er salt?
Salt er slembinn strengur sem er bætt við lykilorðið áður en tætigildi þess er reiknað. Tætigildið og salt gildið sem fæst úr þessu er svo geymt.
Samhverf dulmálskerfi (e. Symmetric cryptography) :
Samhverf dulmálskerfi eru kölluð samhverf því báðir einstaklingar þurfa að búa yfir sameiginlegu leyndarmáli (sem við köllum lykil) til að dulkóða samskiptin sín. Þ.e.a.s. sami lykill er notaður til að dulkóða og afkóða gögnin.
Samhverf dulmálskerfi byggja almennt á eftirfarandi föllum:
Lyklafall(KDF): Slembifall (e. randomized function) sem býr til lykil
Dulkóðunarfall (e. encrypt function): Tekur ódulkóðaðan texta (e. plaintext) og lykilinn sem kom út úr lyklafallinu sem inntak, og skilar dulkóðuðum texta (e. ciphertext).
Afkóðunarfall (e. Decrypt function): Tekur dulkóðaða textann og lykilinn sem inntak og skilar ódulkóðaða textanum.