Simetriskās atslēgas algoritmi ir kriptogrāfijas metode, kurā šifrēšanas un atšifrēšanas atslēgas ir viena un tā pati vai viegli no tās iegūstama — tātad atslēga ir koplietošanas noslēpums. Šo noslēpumu var ģenerēt pilnīgi nejauši, iegūt no paroles (izmantojot drošus atvasināšanas algoritmus) vai nodrošināt, veicot slepenas atslēgu apmaiņas, piemēram, ar Diffie-Hellman. Simetriskā kriptogrāfija ir pamats daudzām drošības sistēmām, jo tā nodrošina efektīvu un ātru datu šifrēšanu lielā apjomā.

Kāpēc simetriskie algoritmi tiek lietoti

Simetriskos algoritmus izmanto, jo tie parasti ir daudz ātrāki un resursus taupošāki nekā publiskā atslēgas kriptogrāfija (asimetriskie algoritmi). Publiskās atslēgas sistēmās šifrēšanas atslēgu var padarīt publisku, kas ļauj droši nosūtīt slepenas ziņas bez agrākas slepenas atslēgas koplietošanas, taču šie algoritmi ir lēnāki — tāpēc praksē bieži izmanto hibrīdu pieeju: asimetriskie algoritmi nodrošina drošu simetriskās atslēgas apmaiņu, bet faktisko datu šifrēšanai izmanto simetrisko algoritmu.

Plūsmas un bloku šifri

Simetrisko atslēgu algoritmi parasti dalās divās galvenajās kategorijās:

  • Plūsmas šifri — šifrē datus kā nepārtrauktu bitu vai baitu plūsmu, apstrādājot katru vienību pa vienai. Tie ir piemēroti reāllaika lietojumiem (piem., straumēšanai) un situācijām, kur nepieciešama zema latentuma apstrāde.
  • Bloku šifri — apstrādā datus pa blokiem fiksēta garuma (vēsturiski bieži 64 biti, mūsdienās, piemēram, Advanced Encryption Standard — 128 biti). Blokus var šifrēt neatkarīgi vai izmantot dažādus darbības režīmus, lai nodrošinātu papildu drošību un elastību.

Populāri šifri un to lietojums

Daži plaši pazīstami simetrisko šifru piemēri ir:

  • AES (Rijndael) — mūsdienu standarts, izmanto 128 bitu blokus un atbalsta atslēgu garumus 128, 192 un 256 bitu.
  • Twofish, Serpent, Blowfish, IDEA — citi bloku šifri ar dažādām īpašībām un vēsturisku nozīmi.
  • RC4 — bijis populārs plūsmas šifrs, taču mūsdienās tiek uzskatīts par nedrošu un lietojums ir aizliegts daudzos protokolos.
  • TDES (Triple DES) — reiz plaši izmantots, taču lēnāks un ar ierobežotu drošību salīdzinājumā ar AES; tagad tiek uzskatīts par novecojušu.

Darbības režīmi un autentifikācija

Bloku šifrus parasti izmanto kombinācijā ar darbības režīmiem (ECB, CBC, CTR, GCM u.c.), kas nosaka, kā bloki tiek sasaistīti un apstrādāti. Daži režīmi (piem., GCM) nodrošina arī datu autentifikāciju (AEAD — Authenticated Encryption with Associated Data), kas aizsargā pret manipulāciju. Drošā praksē šifrētajiem datiem jānodrošina integritātes pārbaude un autentifikācija ar HMAC vai AEAD režīmiem.

Atslēgu pārvaldība un drošība

Droša atslēgu pārvaldība ir kritiska. Labs prakses piemērs ietver:

  • spēcīgu, kriptogrāfiski drošu nejaušu ģeneratoru izmantošanu atslēgu ģenerēšanai;
  • atslēgu drošu glabāšanu (piem., HSM vai droša atslēgu glabātuve);
  • atslēgu rotāciju un derīguma termiņu ieviešanu;
  • nedalīt atslēgas starp dažādiem lietojumiem;
  • izvairīšanos no vājas paroles tiešas lietošanas bez atbilstošas atvasināšanas (PBKDF2, Argon2 u.c.).

Drošības draudi un kriptoanalīze

Vēsturē daļa uzbrukumu izmantoja šifrēšanas konstrukciju simetriju vai citu vājību, tādēļ simetriskās sistēmas reizēm bija mazāk drošas. Galvenie uzbrukumu veidi:

  • uzbrukumi ar zināmu teksta tekstu (known-plaintext attacks);
  • izvēlētā atklātā teksta uzbrukumi (chosen-plaintext attacks);
  • diferenciālā kriptoanalīze;
  • lineārā kriptoanalīze.

Lai mazinātu risku, šifrēšanas izmantošanā jāievēro pareiza IV/nonce lietošana (nedrīkst atkārtot), jāizvēlas atbilstošs darbības režīms un jāizmanto atbilstoša atslēgu garuma politiku. Tāpat nepieciešama uzmanība pret blakuskanālu uzbrukumiem (piem., laika mērījumi, elektromagnētiskie izmeši) un pret padding oracle tipu kļūdām.

Praktiskie ieteikumi

  • Izvēlieties pārbaudītus algoritmus (piem., AES) un jaunākos drošības standartus.
  • Izvairieties no novecojušiem vai pierādīti nedrošiem algoritmiem (piem., RC4, pat TDES mūsdienās tiek uzskatīts par ierobežotu risinājumu).
  • Ieviesiet AEAD režīmus (piem., GCM), lai nodrošinātu šifrēšanu un autentifikāciju vienlaikus.
  • Veiciet atslēgu rotāciju un auditēšanu, izmantojiet drošus nejaušo skaitļu ģeneratorus un atbilstošus paroli atvasinošos algoritmus.

Pielietojumi

Simetriskie šifri tiek plaši lietoti:

  • Lielapjoma datu šifrēšanai (diska šifrēšana, datubāzes, mākoņkrātuve).
  • Tīkla sesiju aizsardzībai (TLS/SSL — izmanto simetriskās atslēgas, kas tiek nomainītas ar asimetriskiem mehānismiem).
  • VPN, šifrēti protokoli, arhivēšana un droša datu pārsūtīšana.

Secinājumā — simetriskās atslēgas kriptogrāfija nodrošina efektīvu, ātru un praktisku datu aizsardzību, ja tiek pareizi pārvaldītas atslēgas, izvēlēti droši algoritmi un ievērotas drošības prakses. Bieži tiek veidotas hibrīdas sistēmas, kas izmanto asimetrisku kriptogrāfiju atslēgu apmaiņai un simetrisku kriptogrāfiju pašu datu aizsardzībai.