Viešojo rakto kriptografija

Tai 8-ojo dešimtm. viduryje įsigalėjęs šifravimo metodas panaudojant asimetrinių raktų algoritmus. Jį naudojant nereikia gavėjui ir siuntėjui pasikeisti vienu ar daugiau slaptų raktų. Jame naudojama dviejų matematiškai susijusių raktų pora: viešas ir privatus raktai. Tačiau jie sudaromi taip, kad iš viešo rakto nėra paprasta nustatyti privataus rakto. Privatus raktas saugomas pas save, o viešas yra išplatinamas. Dokumento autentiškumas užtikrinamas skaitmeniniu parašu, sukurtu naudojant privatų raktą, o jį patikrinti galima panaudojant viešą raktą. Taip pat galima užšifruoti tekstą naudojant viešą raktą, - dešifravimui būtina turėti privatų raktą. Ši schema yra naudojamas Interneto standartuose TLS (SSL įpėdinis), PGP ir GPG.

Neblogai šio metodo veikimą paaiškina analogija su pašto dėžute. Pašto dėžutės anga yra atvira ir prieinama kiekvienam; jo vieta (adresas) iš esmės yra viešas raktas. Kiekvienas, žinantis adresą, gali ateiti ir įmesti pranešimą į pašto dėžutę per jos angą. Tačiau tik tas, kuris turi raktą, gali ją atrakinti ir perskaityti joje esančius laiškus. O skaitmeninį parašą galima paaiškinti analogija su vaškiniu antspaudu. Laišką atplėšti ir perskaityti gali bet kas, tačiau nepažeistas antspaudas liudija jo autentiškumą.

Pagrindinė problema, naudojant viešojo rakto metodus, yra konfidencialumas, t.y. užtikrinimas, kad raktas priklauso tam asmeniui, kuris teigia jį turįs. Įprastas konfidencialumą užtikrinantis principas yra viešo rakto infrastruktūros (PKI) naudojimas, tai yra schema, kai viena ar daugiau trečiųjų šalių, vadinamų sertifikatų tiekėjais, garantuoja raktų porų priklausomybę. Kitas principas, kurį naudoja PGP, remiasi „pasitikėjimu“.

Istorija

Viešų raktų metodas buvo sukurtas siekiant išvengti raktų perdavimo ir slaptumo problemas. 1874 m. W.S. Jevons knyga „Mokslo principai: veikalas apie logiką ir mokslo metodą“ aprašė vienpusių funkcijų ryšį su kriptografija ir, atskiru atveju, faktorizacijos uždavinį, tokiu būdu atverdamas duris RSA sistemai. 7-me skyriuje jis parodė, kad nesunku sudauginti sveikus skaičius, tačiau gerokai sunkiau yra surasti skaičiaus pirminius daugiklius.

Asimetrinių raktų sistema W. Diffie ir M. Hellman‘o aprašyta 1976-ais. Merkle‘s Puzzles sistema buvo sukurta 1974-ais, o paskelbta 1978-ais. Public Key principle 1997-ais buvo atskleista, kad 8-ojo dešimtm. pradžioje Anglijoje asimetrinių raktų algoritmus sukūrė J.H. Ellis, C. Cocks ir M. Williamson. Ši technika vadinta „neslaptu šifravimu“. Apibendrinta Cocks‘o schemą 1977-ais MIT‘e nepriklausomai sukūrė Rivest, Shamir ir Adleman, kurie ją paskelbė 1978-ais ir kuri imta vadinti RSA. RSA naudoja dviejų labai didelių pirminių skaičių sandaugą ir remiasi faktu, kad gana sunku surasti skaičiaus pirminius daugiklius, kadangi tai laikui imlus procesas. Nuo 8=ojo dešimtm. sukurta įvairių šifravimo, skaitmeninio parašo ir kt. technikų. Pvz., Taher ElGamal sistema remiasi panašiu sunkumu diskrečiųjų logaritmų srityje. 9-ojo dešimtm. viduryje, nepriklausomai vienas nuo kito, N. Koblitz ir V. Miller sukūrė elipsinių kreivių kriptografiją. Nors matematiškai ir sudėtingesnės, elipsinės kreivės leidžia, tam paties saugumo lygiui, naudoti trumpesnius raktus ir greitesnius skaičiavimus.

Silpna vieta

Deja, visos viešo rakto sistemos nėra atsparios „grubios jėgos“ panaudojimui. Tai nėra praktiška tuo atveju, jei skaičiavimų skaičius („darbo veiksnys“, pagal Claude Shannon) yra per didelis potencialiems nulaužėjams. Daugeliu atvejų „darbo veiksnys“ gali būti padidintas tiesiog panaudojant ilgesnius raktus. Tačiau kai kurie metodams „darbo veiksnys“ yra gerokai mažesnis nei naudojant „grubią jėgą“. Tiek RSA, tiek ElGamal šifrai turi galimus nulaužimo būdus, greitesnius nei „grubi jėga“. Šifrų įveikiamumas padidėjo išaugus kompiuterių galingumui bei padarius naujus atradimus matematikos srityje. Bet ir tai galima apeiti parenkant pakankamai ilgus raktus, tokius, kad, kol dešifruosi informaciją, ji jau nebebus aktuali.

Keliuose, atrodžiusiems perspektyviais, asimetrinių raktų algoritmuose rastos rimtos silpnos vietos. Pvz., nesaugiu pasirodė esąs „kuprinės sudėjimo“ algoritmas. Tikslaus laiko, reikalingo teksto iššifravimui, žinojimas gali supaprastinti reikiamų raktų paiešką. Taigi, asimetrinių raktų algoritmai negarantuoja saugumo ir šioje srityje vyksta aktyvūs ieškojimai, kaip nustatyti ir išvengti galimų naujų atakų.

Kitas potencialus pažeidžiamumas yra galimybė trečiajai šaliai perimti viešų raktų apsikeitimą ir pakeisti viešus raktus. Gali būti perimti ir užšifruoti pranešimai, dešifruoti ir vėl užšifruoti naudojant korektišką raktą, kad nebūtų sukeltas įtarimas. Tai nelengva realizuoti, tačiau įmanoma, kai komunikuojama nesaugia terpe (pvz., viešais tinklais, tokiais kaip Internetas). Tokį perėmimą nesunkiai gali atlikti Interneto paslaugų tiekėjo personalas. Tokį pažeidžiamumą pašalinti leidžia sertifikatai, patikimų trečių šalių patikinimas, kad rakto vartotojas yra teisėtas rakto savininkas. Tačiau ir tai turi savo silpnų vietų – ir vis tik šis principas plačiai naudojamas (pvz., SSL ir tolimesnis jo išvystyme TLS).

Viešą raktą gali žinoti didėlis ir praktiškai nežinomas vartotojų skaičius. Tad, prireikus, viešo rakto panaikinimas ar pakeitimas gali pareikalauti ilgo laiko tarpo, nes reikia informuoti visus raktą naudojančius vartotojus. Tad sistemos, privalančios reaguoti į realaus laiko įvykius (pvz., kritinio saugumo ar nacionalinio saugumo sistemos) neturėtų naudoti viešų raktų kriptografijos.

Literatūra

  1. N. Ferguson, B. Schneier. Practical Cryptography, 2003
  2. J. Katz; Y. Lindell. Introduction to Modern Cryptography, 2007
  3. A. J. Menezes, P. C. van Oorschot, S. A. Vanstone. Handbook of Applied Cryptography, 1997
  4. Anoop MS. Public key Cryptography - Applications Algorithms and Mathematical Explanations, 2007

Ankstesnės "Advanced HTML" skyrelio temos:
"Ruby" kalba
ASP patarimų liūnas
Papildytoji tikrovė
Didžiųjų duomenų mitas
Pelė uodega švystelėjo...
Tikroji Interneto pabaiga
CGI.pm biblioteka: sausainiai
Ką delne mums neša HTML 4.0?
MS SQL užklausų rezultatų puslapiavimas
Pirmasis „Java“ įskiepis Lietuvoje
O jei Napoleonas nebūtų panaikinęs dešimtainio laiko?
ŽODIS – ankstyva lietuviškai prakalbusi programa
Kaip valdyti piešinių pakrovimo tvarką
Kaip nukreipti į kitą WWW puslapį
Įlįskite į lankytojų kailį
Kaip sužinoti ekrano charakteristikas?
Tikroji Interneto pabaiga
Pagalba paieškai (patarimai)
Tiesa apie REST
Fagano patikra
Minčių schema

JavaScript pradmenys
Unix komandinės eilutė
Debesies architektūra
Vartiklis