Kas yra šifras? Kriptografijos apibrėžimas ir raktų tipai
Supraskite, kas yra šifras, kaip veikia simetriniai ir asimetriniai raktai bei kriptografijos istorija — aiškiai ir suprantamai.
Šifras (arba šifras) - tai šifravimo (kodavimo) arba dešifravimo (iššifravimo) algoritmas. Tai yra gerai apibrėžtų veiksmų, kurių galima laikytis kaip procedūros, seka. Užšifruoti arba užkoduoti - tai paversti informaciją iš paprasto teksto į šifrą arba kodą.
Netechninėje kalboje "šifras" dažnai reiškia tą patį, ką ir "kodas", tačiau kriptografijoje šifrai skiriasi nuo kodų. Viename XX a. šaltinyje pateikiamas toks paaiškinimas: šifras yra "metodas, kurio pagrindinis slėpimo vienetas yra raidė. Palyginimui, kodas - tai slėpimo būdas, kurio pagrindinis vienetas yra žodis". Šimtmečio pabaigoje "kodai" šia kriptografine prasme tapo reti. XXI a. kriptografijoje dažniausiai šifruojami bitų srautai.
Kodai veikė keičiant pagal didelę kodų knygą, kurioje atsitiktinė simbolių ar skaičių eilutė buvo susieta su žodžiu ar fraze. Pavyzdžiui, "UQJHSE" galėjo būti kodas, reiškiantis "Eikite į šias koordinates".
Šifras naudojamas pradinei informacijai ("atviras tekstas") paversti užšifruota forma ("šifruotas tekstas"). Užšifruotame pranešime yra visa atviro teksto pranešimo informacija, tačiau jo negali perskaityti nei žmogus, nei kompiuteris, jei nėra tinkamo mechanizmo jam iššifruoti. Norint užšifruoti arba iššifruoti, reikia "rakto". Šifruojant raktas nurodo konkretų paprasto teksto pavertimą į šifro tekstą arba atvirkščiai iššifruojant.
Pagal naudojamo rakto tipą šifrai skirstomi į:
- simetrinio rakto algoritmai (privataus rakto kriptografija): šifravimui ir dešifravimui naudojamas tas pats raktas.
- asimetrinio rakto algoritmai (viešojo rakto kriptografija): šifravimui ir dešifravimui naudojami du skirtingi raktai.
Žodis šifras prancūzų kalboje yra cifre, o viduramžių lotynų kalboje - cifra, kilęs iš arabų kalbos žodžio sifr, reiškiančio "nulį". Pirmą kartą angliškai nulis pavartotas 1598 m.
Istorija ir paprasti pavyzdžiai
Kriptografija turi ilgą istoriją: nuo paprastų pakeitimo šifrų, tokių kaip Cezario šifras (kiekviena raidė yra perstumta tam tikru poslinkiu), iki sudėtingesnių istorinių metodų, pvz., Vigenère šifro ar mechaninių prietaisų, tokių kaip Enigma. Istoriniai šifrai dažnai buvo pažeidžiami dėl riboto rakto erdvės ir dažnių pasikartojimų (tai leido taikyti dažnio analizę).
Skirtumas tarp šifro ir kodo
Šifras keičia ženklų ar bitų pasikeitimo taisykles (pvz., raidė->raidė arba baitas->baitas), o kodas paprastai pakeičia žodžius ar frazes į simbolių sekas pagal iš anksto sudarytą kodų knygą. Šių dienų praktikoje kodų knygos yra reti — vietoj jų naudojami algoritmai ir raktai.
Šiuolaikiniai šifrai (simetriniai ir asimetriniai)
Simetriniai algoritmai naudoja tą patį raktą šifravimui ir dešifravimui. Jie yra greiti ir efektyvūs dideliems duomenų kiekiams. Dažniausi pavyzdžiai:
- AES (Advanced Encryption Standard) – plačiai naudojamas blokinis šifras, siūlomas 128, 192 ir 256 bitų raktų ilgiams.
- ChaCha20 – greitas srauto šifras, dažnai naudojamas alternatyva AES tam tikrose situacijose.
Blokiniai šifrai dažnai veikia tam tikrais režimais (pvz., CBC, CTR, GCM), kurie lemia, kaip blokai yra apdorojami ir užtikrina papildomas savybes (t.y., autentikaciją su GCM).
Asimetriniai algoritmai (viešojo rakto kriptografija) naudoja du susijusius raktus: viešą ir privatų. Viešasis raktas gali būti laisvai skelbiamas, o privatus raktas turi būti saugomas slaptai. Pavyzdžiai:
- RSA – populiarus viešojo rakto algoritmas, naudojamas tiek šifravimui, tiek skaitmeniniams parašams.
- ECC (elliptinių kreivių kriptografija) – suteikia panašų saugumo lygį kaip RSA, bet su trumpesniais raktais (mažesni skaičiavimo kaštai).
- Diffie–Hellman – raktų apsikeitimo protokolas, leidžiantis dviem šalims saugiai susitarti dėl bendro slaptinio rakto per nesaugų kanalą.
Hibridinė kriptografija ir parašai
Daugelyje realių sistemų naudojamas hibridinis požiūris: asimetrinė kriptografija naudojama saugiai apsikeisti simetriniu raktu, o vėliau duomenys šifruojami simetriniu algoritmu (tai suteikia tiek saugumo, tiek našumo). Taip pat viešojo rakto kriptografija naudojama skaitmeniniams parašams, kurių pagalba užtikrinamas autentiškumas ir vientisumas.
Raktų vaidmuo ir sauga
Raktas yra centrinis elementas: net patikimas algoritmas bus nesaugus, jei raktas yra silpnas arba nesaugus. Svarbūs principai:
- Naudoti pakankamai ilgus ir nejaučiamus rakto bitus (pvz., 128+ bitų simetriniams raktams, atitinkamai ilgesniems RSA raktams).
- Generuoti raktus naudojant kriptografiškai saugų atsitiktinių skaičių generatorių (CSPRNG).
- Saugiai saugoti privačius raktus (pvz., naudojant HSM, TPM arba saugius raktų saugyklos sprendimus).
- Reguliariai keisti ir atšaukti raktus (raktų rotacija) bei naudoti požiūrį „mažiausio reikalingo laiko“ (key lifetime).
Kryptinės atakos ir rizikos
Galimos atakos apima:
- Brute-force (išbandyti visus įmanomus raktus) — veiksminga tik prie mažų raktų ar silpnų algoritmų.
- Kryptanalizė — algoritmų matematinis pažeidimas (pvz., istorinis dažnio analizės pritaikymas).
- Šoninės kanalo atakos (side-channel) — atakos, naudojančios informacija apie įrenginio energijos suvartojimą, laiką ar elektromagnetinį spinduliavimą.
- Man-in-the-middle (MitM) — perimamas raktų apsikeitimas, jei autentikacija nevykdoma.
Geriausia praktika: naudoti gerai patikrintus protokolus (pvz., TLS), reguliariai atnaujinti įrankius ir vengti „pasidaryk pats“ kriptografijos sprendimų be ekspertų peržiūros.
Praktinis naudojimas
Šifravimas taikomas daugelyje sričių:
- Interneto sauga: TLS/HTTPS užtikrina saugų ryšį tarp naršyklių ir serverių.
- El. paštas ir pranešimų programėlės: PGP, S/MIME, end-to-end šifravimas (pvz., Signal protokolas).
- Duomenų saugojimas: disko šifravimas (BitLocker, FileVault), duomenų bazės šifravimas.
- Prisijungimas ir autentikacija: skaitmeniniai parašai, sertifikatai, saugi raktų saugykla.
- Kriptovaliutos: viešojo rakto kriptografija naudojama adresams ir parašams.
Hash funkcijos ir skirtumas nuo šifrų
Reikia paminėti, kad hash (maišos) funkcijos nėra šifrai: jos netransliuojamos atgal į pradinį tekstą (t.y., jos yra vienakryptės). Jos naudojamos vientisumui užtikrinti (pvz., patikrinti, ar failai nebuvo pakeisti) ir kartu su parašais ar autentifikacija.
Teisiniai ir etiniai aspektai
Kriptografija turi ir teisinių/etinių aspektų: teisės aktai tam tikrose jurisdikcijose gali reguliuoti šifravimo naudojimą, eksportą ar prieigą teisėsaugai. Taip pat svarbu elgtis atsakingai — šifravimas saugo privatumą, bet gali būti panaudotas ir netinkamai.
Santrauka — ką prisiminti
Šifras yra algoritmas, verčiantis atvirus duomenis į užšifruotą formą, kurią galima atkurti tik turint tinkamą raktą. Moderni kriptografija remiasi tiek simetriniais, tiek asimetriniais metodais, dažnai juos kombinuodama. Svarbiausi saugumo elementai yra tinkamai parinkti algoritmai, pakankamai ilgi ir atsitiktiniai raktai bei teisinga raktų valdymo praktika. Naudokite patikrintas bibliotekas ir protokolus, atnaujinkite sistemas ir, prireikus, pasikonsultuokite su kriptografijos specialistais.
Susiję puslapiai
- Kodas
- Šifravimas
- Raktas (kriptografija)
- Blokinis šifras
- Produkto šifras
- Šifravimo tekstas
- Tik šifruoto teksto ataka
Klausimai ir atsakymai
K: Kas yra šifras?
A: Šifras (arba šifras) - tai šifravimo (kodavimo) arba dešifravimo (iššifravimo) algoritmas. Tai yra gerai apibrėžtų žingsnių, kurių galima laikytis kaip procedūros, seka.
K: Kaip užšifruoti informaciją?
A: Užšifruoti arba užkoduoti - tai informaciją iš paprasto teksto paversti šifru arba kodu.
K: Kuo skiriasi šifras ir kodas?
A: Netechninėje vartosenoje "šifras" dažnai reiškia tą patį, ką ir "kodas", tačiau kriptografijoje šifrai skiriasi nuo kodų. Viename XX a. šaltinyje pateikiamas toks paaiškinimas: šifras yra "metodas, kurio pagrindinis slėpimo vienetas yra raidė. Palyginimui, kodas yra slėpimo būdas, kurio pagrindinis vienetas yra žodis".
K: Kaip veikia šifravimas?
A: Šifras naudojamas pradinei informacijai ("atviras tekstas") paversti užšifruota forma "šifruotu tekstu". Užšifruotame pranešime yra visa atviro teksto pranešimo informacija, tačiau jo negali perskaityti nei žmogus, nei kompiuteris, jei nėra tinkamo mechanizmo jam iššifruoti. Norint užšifruoti arba iššifruoti, reikia "rakto". Šifruojant raktas nurodo konkretų atvirojo teksto pavertimą šifruotuoju tekstu arba atvirkščiai iššifruojant.
Klausimas: Kaip šifrai skirstomi pagal naudojamo rakto tipą?
A: Šifrai skirstomi į simetrinio rakto algoritmus (privataus rakto kriptografija): kai šifravimui ir dešifravimui naudojamas tas pats raktas; ir asimetrinio rakto algoritmus (viešojo rakto kriptografija): kai šifravimui ir dešifravimui naudojami du skirtingi raktai.
K: Iš kur kilęs žodis "šifras"?
A:Žodis "šifras" kilęs iš prancūzų cifre ir viduramžių lotynų cifra, iš arabų sifr, reiškiančio "nulis". Pirmą kartą angliškai nulis pavartotas 1598 m.
Ieškoti