Vienkartinis bloknotas (OTP) yra teoriškai nesulaužomas šifras, jei tenkinamos tam tikros sąlygos. Pirmą kartą jį aprašė Frankas Milleris 1882 m., o vėliau nepriklausomai išrado Gilbertas Vernamas 1917 m. Pagrindinis OTP principas yra atsitiktinio rakto, kurio ilgis yra toks pat, kaip ir pats pranešimas, naudojimas, kuris vėliau sujungiamas su paprastu tekstu naudojant operacija XOR (išskirtinė OR). Nepaisant teorinio tobulumo, OTP turi didelių apribojimų, dėl kurių jis nepraktiškas daugeliui realaus pasaulio programų.
Pirma, reikalavimas turėti tikrai atsitiktinį raktą, kuris yra tol, kol pranešimas, yra esminis apribojimas. Saugus tokių raktų generavimas ir paskirstymas yra didžiulis iššūkis. Praktiškai sunku sukurti tikrą atsitiktinumą. Dauguma atsitiktinių skaičių generatorių sukuria pseudoatsitiktines sekas, kurios yra deterministinės ir gali būti nuspėjamos, jei žinomas algoritmas arba pradžia. Tikram atsitiktinumui paprastai reikia fizinių procesų, tokių kaip radioaktyvusis skilimas ar terminis triukšmas, kurie nėra lengvai pasiekiami ar nepraktiški didelio masto naudojimui.
Antra, saugus rakto paskirstymas yra problemiškas. Kad vienkartinis slaptažodis išliktų saugus, raktas turi būti dalijamas tarp siuntėjo ir gavėjo saugiu kanalu, kurio negalima perimti ar pažeisti. Šis reikalavimas iš esmės paneigia kriptografijos pranašumą, ty užtikrinti saugų ryšį per nesaugų kanalą. Jei yra saugus rakto platinimo kanalas, jis taip pat gali būti naudojamas pačiam pranešimui perduoti, todėl OTP tampa nereikalingas.
Be to, kiekvienas klavišas turi būti naudojamas tik vieną kartą (taigi ir pavadinimas „vienkartinis“). Pakartotinis rakto naudojimas OTP šifravime yra katastrofiškas saugumui. Jei tas pats raktas naudojamas keliems pranešimams užšifruoti, užpuolikas gali atlikti žinomo paprasto teksto ataką, kad nustatytų raktą ir vėliau iššifruotų visus tuo raktu užšifruotus pranešimus. Šis kiekvieno pranešimo unikalių raktų reikalavimas dar labiau apsunkina raktų valdymą, todėl jis nepraktiškas aplinkoje, kurioje reikia užšifruoti didelius duomenų kiekius.
Raktų saugojimas ir valdymas taip pat kelia didelių iššūkių. Kadangi raktas turi būti tokio pat ilgio, kaip ir pranešimas, saugiam šių raktų saugojimui reikia didelių išteklių. Pavyzdžiui, jei norima užšifruoti 1 GB failą, 1 GB raktas turi būti saugiai sugeneruotas, saugomas ir platinamas. Tai neįmanoma daugeliui realaus pasaulio taikomųjų programų, ypač tais atvejais, kai dideli duomenų kiekiai yra reguliariai šifruojami ir perduodami.
Kitas apribojimas yra jautrumas žmogaus klaidoms. Teisingas OTP įgyvendinimas yra svarbus jo saugumui. Bet koks nukrypimas nuo nustatyto metodo, pvz., netinkamas rakto generavimas, nesaugus raktų saugojimas arba pakartotinis rakto naudojimas, gali pakenkti visai šifravimo sistemai. Atsižvelgiant į OTP sudėtingumą ir griežtus reikalavimus, nepriekaištingo diegimo užtikrinimas yra sudėtingas ir gali sukelti žmogaus klaidų.
Be to, OTP nesuteikia jokios autentifikavimo formos. Nors ji užtikrina pranešimo konfidencialumą, ji nepatvirtina siuntėjo tapatybės ar pranešimo vientisumo. Šiuolaikinėse kriptografinėse sistemose autentifikavimas yra labai svarbus komponentas, o jo trūkumas OTP reikalauja naudoti papildomus kriptografinius mechanizmus, kad būtų visiškai apsaugotas ryšys.
Nepaisant šių apribojimų, OTP vis dar naudojamas konkrečiose nišinėse programose, kuriose galima patenkinti jo reikalavimus. Pavyzdžiui, istoriškai jis buvo naudojamas diplomatiniuose ir kariniuose ryšiuose, kur saugus raktų paskirstymas ir valdymas gali būti griežtai kontroliuojamas. Tokiais atvejais absoliutus OTP saugumas nusveria praktinius iššūkius.
Norėdami iliustruoti OTP nepraktiškumą, apsvarstykite paprastą pavyzdį. Tarkime, Alisa nori nusiųsti 100 MB failą Bobui naudodama OTP. Pirmiausia ji turi sugeneruoti 100 MB atsitiktinį raktą, kurį vėliau naudoja XOR su 100 MB failu, kad sukurtų šifruotą tekstą. Šis 100 MB raktas turi būti saugiai perduotas Bobui, kad jis galėtų iššifruoti šifruotą tekstą. Jei Alisa ir Bobas norėtų reguliariai bendrauti, jiems reikės naujo 100 MB rakto kiekvienam pranešimui, todėl gaunamas didžiulis pagrindinių duomenų kiekis, kuris turi būti saugiai generuojamas, saugomas ir perduodamas.
Priešingai, šiuolaikinėse kriptografinėse sistemose, tokiose kaip simetrinių raktų algoritmai (pvz., AES) arba asimetrinių raktų algoritmai (pvz., RSA), naudojami žymiai trumpesni raktai, kuriuos galima saugiai valdyti ir paskirstyti su mažesnėmis sąnaudomis. Šios sistemos taip pat suteikia papildomų funkcijų, tokių kaip autentifikavimas, vientisumo tikrinimas ir neatmetimas, kurios yra būtinos saugiam ryšiui realiose programose.
Nors vienkartinis blokas išlieka intriguojančiu ir teoriškai tobulu šifravimo metodu, dėl jo praktinių apribojimų, įskaitant tikrai atsitiktinių raktų poreikį, saugų raktų paskirstymą, unikalius kiekvieno pranešimo raktus ir autentifikavimo nebuvimą, jis netinkamas daugeliui tikrų pasaulinės programos. Šiuolaikinės kriptografinės sistemos siūlo praktiškesnį ir visapusiškesnį komunikacijos apsaugos sprendimą.
Kiti naujausi klausimai ir atsakymai apie EITC/IS/CCF klasikinės kriptografijos pagrindai:
- Ar viešojo rakto kriptografija buvo pradėta naudoti šifravimui?
- Ar visų galimų konkretaus kriptografinio protokolo raktų rinkinys kriptografijoje vadinamas raktų erdve?
- Ar pagal modulinę aritmetiką poslinkio šife abėcėlės pabaigos raidės pakeičiamos raidėmis iš abėcėlės pradžios?
- Ką, pasak Shannono, turėtų apimti blokinis šifras?
- Ar DES protokolas buvo įdiegtas siekiant pagerinti AES kriptosistemų saugumą?
- Ar blokinių šifrų saugumas priklauso nuo daugkartinio painiavos ir difuzijos operacijų derinimo?
- Ar šifravimo ir iššifravimo funkcijos turi būti laikomos paslaptyje, kad kriptografinis protokolas išliktų saugus?
- Ar kriptoanalizė gali būti naudojama saugiam bendravimui nesaugiu ryšio kanalu?
- Ar internetas, GSM ir belaidžiai tinklai priklauso nesaugiems ryšio kanalams?
- Ar išsami raktų paieška veiksminga prieš pakaitinius šifrus?
Peržiūrėkite daugiau klausimų ir atsakymų EITC/IS/CCF klasikinės kriptografijos pagrinduose

