Krüptograafia
Allikas: Vikipeedia
Vajab toimetamist. |
Krüptograafia (kreeka keelest kryptòs - peidetud, gráphein - kirjutama) on informatsiooni muutmine loetamatuks ilma eriteadmiste ja -vahenditeta.
Minevikus aitas krüptograafia tagada kommunikatsiooni salastatust. Alates elektronarvutite leiutamisega eelmise sajandi keskel on krüptograafia ainevald laienenud, hõlmates tänapäeval lisaks turvalisele sidele ka informatsiooni terviklikuse kontrolli, isikute tuvastamise ja muu säärase.
Krüptograafia vältimist uurib krüptoanalüüs. Vahel seotakse krüptograafia ja krüptoanalüüs krüptoloogia ühise nimetaja alla. Krüptograafiaga on seotud ka steganograafia, mis tegeleb sõnumite peitmisega.
Krüptograafia on interdistsiplinaarne ala. Kui oma algusaegadel oli see seotud peamiselt lingvistikaga, siis tänapäeval on põhirõhk matemaatikal, täpsemalt arvuteoorial, informatsiooniteoorial, algoritmiteoorial ja diskreetsel matemaatikal. Samuti on krüptograafia seotud inseneritegevusega (niinimetatud security engineering).
Sisukord |
[redigeeri] Krüptograafia teemad
[redigeeri] Protokollid
Krüptograafia on mõeldud teatud probleemide, nagu näiteks info salastatus ja selle autentsuse ning terviklikuse kontroll, lahendamiseks. Selleks on vaja krüptograafia meetodeid ja algoritme teatud viisil kasutada.
Protokolliks nimetatakse teatud probleemi lahendamiseks mõeldud tegevuste jada, mida vähemalt kaks osapoolt ellu rakendavad. Tegevuste jada märgib seda, et protokolli moodustavad tegevused täidetakse kindlas järjekorras algusest lõpuni. Protokolli täitmiseks on vaja vähemalt kaks inimest, üksinda protokolli täita ei ole võimalik.
Lisaks on protokollidel järgmised omadused:
- Iga protokollis osaleja peab tundma protokolli ja kogu oma tegevuste jada.
- Iga protokollis osaleja peab olema nõus protokolli järgima.
- Protokoll peab olema ühemõtteline. Iga tegevus peab olema määratletud nii, et selle täitmisel ei tekiks mingit arusaamatust.
- Protokoll peab olema täielik. Selles peavad olema tegevused iga võimaliku olukorra jaoks.
Krüptograafiliseks protokolliks nimetatakse protokolli, milles kasutatakse mingit krüptograafilist algoritmi. Protokollid ei ole reeglina mõeldud mitte ainult salastatuse tagamiseks, krüptograafia kasutamise mõte on pigem pealtkuulamise ja pettuse avastamine ning ärahoidmine.
[redigeeri] Algoritmid
Krüptograafiline algoritm ehk šiffer kujutab endast matemaatilist funktsiooni, mida kasutatakse info krüpteerimiseks ja dekrüpteerimiseks. Tavaliselt on need kaks omavahel seotud funktsiooni, üks krüptimiseks ja teine dekrüptimiseks.
Piiratud algoritmiks nimetatakse sellist algoritmi, mille poolt pakutav kaitse põhineb selle algoritmi salastatusel. Selliste algoritmide põhipuuduseks on see, et suurem kasutajate grupp ei saa sellist algoritmi kasutada, kuna iga kord, kui keegi grupist lahkub, tuleb algoritmi vahetada. Samuti tuleb algoritmi vahetada siis, kui keegi kõrvaline sellele jälile saab. Ka ei võimalda sellised algoritmid efektiivset kontrolli ja standardiseerimist.
Tänapäeva krüptograafia lahendab selle probleemi võtme abil. Võti võib omada suvalisi väärtusi teatud väärtuste hulgast. Võimalike väärtuste hulka nimetatakse võtmete ruumiks. Võtit kasutatakse mõlema operatsiooni - krüpteerimise ja dekrüpteerimise puhul, need operatsioonid sõltuvad otseselt võtmest.
Taolist algoritmide tugevus sõltub ainult võtme(te)st, mitte aga algoritmidest enestest. Seega võib algoritmi avaldada ja seda saab ka analüüsida.
[redigeeri] Algoritmide tüübid
Võtme kasutamisest lähtuvalt võib algoritme jagada kaheks: sümmeetrilised algoritmid ja avaliku võtmega algoritmid.
Sümmeetriliseks algoritmiks nimetatakse sellist algoritmi, mille puhul on teate dekrüpteerimiseks kasutatav võti krüpteerimiseks kasutatud võtmest väljaarvutatav, ja ka vastupidi. Enamusel sellistel algoritmidel kasutatakse krüpteerimiseks ja dekrüpteerimiseks sama võtit. Sümmeetrilise algoritmi poolt pakutav kaitse sõltub otseselt võtmest, võtme avastamine tähendab seda, et suvaline isik võib teadet krüpteerida ja dekrüpteerida. Niikaua, kui krüptitav info peab jääma saladuseks, peab saladuseks jääma ka kasutatud võti. Seetõttu nimetatakse selliseid algoritme ka salajase võtmega algoritmideks.
Avaliku võtmega algoritmid ehk asümmeetrilised algoritmid on ehitatud nii, et šifreerimisel ja dešifreerimisel kasutatakse erinevaid võtmeid. Need võtmed on teineteisest sõltumatud, ühest võtmest ei saa tuletada teist. Selliseid algoritme nimetatakse ka avaliku võtmega algoritmideks, kuna šifreerimiseks kasutatav võti võib olla avalik. Seda võtit võib teate krüpteerimiseks kasutada suvaline inimene, kuid teadet dekrüpteerida suuda ainult konkreetne inimene, kes teab selleks kasutatavat võtit. Sellistes süsteemideks nimetatakse krüpteerimiseks kasutatavat võtit tihti avalikuks võtmeks, dekrüpteerimiseks kasutatavat võtit aga salajaseks võtmeks.
Digitaalse allkirja skeemides kasutatakse tihti vastupidist mehhanismi: teade krüpteeritakse mitteavaliku võtmega, dekrüpteeritakse aga avalikuga.
Algoritme võib jagada ka andmete töötlemise meetodi järgi. Jadaalgoritmid ehk jadašifrid tõõtlevad informatsiooni järjestikku, biti- või baidikaupa. Plokkalgoritmid ehk plokkšifrid töötlevad informatsiooni plokikaupa. Plokkšifreid saab kasutada erinevates šifreerimise režiimides.
[redigeeri] Krüptoanalüüs
Krüptoanalüüsiks nimetatakse tegevust, mille eesmärgiks on taastada lähtetekst ilma võtmele ligipääsu omamata. Edukas krüptoanalüüs võimaldab taastada kas lähteteksti või võtme, ka võimaldab krüptoanalüüs avastada nõrki kohti süsteemis.
Krüptoanalüüsi katset nimetatakse ründeks, ründeid võib jagada passiivseteks ja aktiivseteks. Passiivse ründe korral jälgib ründaja kommunikatsioonikanalit. Rünne ohustab ainult andmete konfidentsiaalsust. Aktiivse ründe korral üritab ründaja andmeid kustutada või muuta. Samuti võib ründaja mingil muul moel mõjutada andmeid ja kommunikatsioonikanalit. Aktiivne rünne ohustab lisaks andmete konfidentsiaalsusele ka nende terviklikust ja autentsust.
Teada on neli põhilist krüptoanalüüsi meetodit, neist iga puhul eeldatakse, et krüptoanalüütik tunneb põhjalikult algoritmi.
- Ainult šifreeritud tekstil põhinev rünne
- krüptoanalüütiku käsutuses on mõnede teadete krüpteeritud tekstid, nende puhul on kasutatud ühte ja sama algoritmi. Tema ülesanne on taastada võimalikult suur osa lähtetekstidest.
- Lähtetekstil põhinev rünne
- krüptoanalüütiku käsutuses on mõnede teadete lähtetekstid ja ka nende šifreeritud tekstid. Tema ülesandeks on krüpteerimisel kasutatud võtme(te) leidmine selleks, et teisi selle võtmega krüpteeritud teateid dekrüpteerida.
- Valitud lähtetekstil põhinev rünne
- krüptoanalüütikul on lisaks mõnede teadete lähtetekstidele ja krüpteeritud tekstidele võimalus valida šifreerimiseks lähtetekst. Tema ülesandeks on teha kindlaks krüpteerimisel kasutatud võti ja/või algoritm.
- Adaptiivsel lähtetekstil põhinev rünne
- on valitud lähtetekstil põhineva ründe erijuht. Krüptoanalüütikul on lisaks lähteteksti valimisele võimalik seda ka krüpteerimise tulemustest lähtuvalt täpsustada ja muuta.
Lisaks on teada mõned esoteerilisemad ründed:
- Valitud šifreeritud tekstil põhinev rünne
- krüptoanalüütik võiba valida erinevaid šifreeritud tekste dešifreerimiseks, ka on tal ligipääs dešifreeritud tekstidele. Selline meetod sobib peamiselt avaliku võtmega algoritmide murdmiseks.
- Valitud võtmel põhinev rünne
- krüptoanalüütikul on mingit teavet erinevate võtmete vaheliste seosete kohta. Krüptoanalüütik valib seose kahe või enama võtme vahel, võtmed ise on talle teadmata. Andmed krüptitakse nende võtmetega. Edasi kombineeritakse seda rünnet kas lähtetekstil või valitud lähtetekstil põhineva ründega.
- Bandiitlik krüptoanalüüs
- võtme teadasaamiseks kasutab "krüptoanalüütik" ähvardusi, väljapressimist, altkäemaksu andmist või piinamist. Selline tegevus on tavaliselt oluliselt lihtsam ja odavam kui ülejäänud krüptoanalüüsi meetodid.
Krüptoanalüüsi puhul tuleb silmas pidada seda, et kõik algoritmid, välja arvatud Vernam'i šiffer ehk one-time pad, on põhimõtteliselt toore jõuga murtavad. Seega on krüptoanalüüs edukas siis, kui saladuse teadasaamiseks kulus vähem operatsioone, kui neid algoritmi toore jõuga murdmiseks vaja.
[redigeeri] Vaata ka
- Differentsiaalne krüptoanalüüs
- Krüptograafia ajalugu
- Krüptograafia mõisted
- Lineaarne krüptoanalüüs
- Krüptograafilisi algoritme:
- Blowfish
- Camellia
- DES
- DSA
- IDEA
- RSA
- Twofish
[redigeeri] Välislingid
- Helger Lipmaa koduleht
- RSA Security krüptograafia FAQ
- sci.crypt uudisgrupi FAQ ja selle uuem lühiversioon
[redigeeri] Kirjandus
- Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone Handbook of Applied Cryptography
- Bruce Schneier, "Applied Cryptography", John Wiley & Sons, Inc. 1996