Know-how / Šifriranje

Kako funkcionira algoritam šifriranja Rijndael?

Poznat i pod kraticom AES

Siguran prijenos strogo povjerljivih informacija bez pristupa neovlaštenih osoba oduvijek je bio izazov. Rani „tajni jezici” – poput jednostavnih pomaka slova – uz modernu računalnu snagu trivijalno se razbijaju. Danas podatke štitimo kriptografskim postupcima, koji su matematički precizno definirani i čija je sigurnost javno provjerena.

Takvi postupci koriste ključ, koji poznaju samo pošiljatelj i primatelj. Šifriranje i dešifriranje pritom slijede algoritam šifriranja – jasno opisan matematički postupak.

Password Depot šifrira Vaše povjerljive podatke algoritmom Rijndael, koji je standardiziran kao AES (Advanced Encryption Standard).

U nastavku objašnjavamo algoritam i smještamo ga u tehnički kontekst.

Advanced Encryption Standard (AES) – standardizirana varijanta algoritma Rijndael

Američki National Bureau of Standards (danas NIST) standardizirao je 1977. godine DES; taj je standard 2005. povučen, jer više nije bio dovoljno siguran (NIST-ova objava). Kao nasljednika NIST je 2001. odabrao Rijndael i iz njega standardizirao Advanced Encryption Standard (AES) (FIPS 197).

Važno: AES je podskup obitelji Rijndael. AES definira veličinu bloka na 128 bita i dopušta ključeve od 128, 192 ili 256 bita (Napomena NIST-a, FIPS 197 (PDF)).

AES je odobren za zaštitu informacija američkih državnih tijela do razine TOP SECRET (vidi CNSSP‑15 Fact Sheet kao i aktualni CNSA‑2.0‑FAQ NSA-e).

Kako funkcionira Rijndael/AES (kratak pregled)

Rijndael je supstitucijsko-permutacijska mrežna šifra. Temeljne ideje su supstitucije na razini bajta, linearne transformacije i XOR operacije.

Tijek na razini bloka (128-bitni „state“)

  • Proširenje ključa (Key Schedule): Iz ključa se izvodi Nr + 1 ključeva rundi (npr. 11 kod AES-128, 13 kod AES-192, 15 kod AES-256). Izvor: FIPS 197.
  • Početna runda: AddRoundKey – blok otvorenog teksta (kao matrica 4×4 bajta) povezuje se putem XOR-a s prvim ključem runde.
  • Runde 1 … Nr:
    • SubBytes: Svaki bajt zamjenjuje se preko S-Box-a (multiplikativni inverz u GF(28) plus afina transformacija s konstantom 0x63). Izvor: FIPS 197.
    • ShiftRows: redci matrice stanja ciklički se pomiču.
    • MixColumns: stupci se množenjem matrica preko GF(28) miješaju.
    • AddRoundKey: XOR s odgovarajućim ključem runde.

Napomena: U posljednjoj rundi izostavlja se MixColumns. Broj rundi iznosi 10/12/14 za ključeve od 128/192/256 Bit (FIPS 197).

AES se može implementirati u softveru, firmveru ili hardveru (FIPS 197). Za praktičnu primjenu Načini rada upotrebljavaju se, npr. CBC, CTR ili GCM (autentificirana enkripcija). Preporuke možete pronaći u NIST SP 800–38A i NIST SP 800–38D (GCM/GMAC).

Važno za razumijevanje: AES je simetrična šifra za enkripciju podataka. Razmjena ključeva obično se provodi asimetričnim postupcima ((EC)DH/RSA). Međutim, AES može sigurno zapakirati ključeve („Key Wrap“) – usp. NIST SP 800–38F.

Službena specifikacija

Referencu možete pronaći ovdje: https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf

Brute-Force napadi

Brute-Force znači da napadač isprobava sve moguće ključeve. Klasični postupci poput DES sa samo 56-bitnim ključevima danas se na taj način praktično mogu probiti – zato je NIST 2005. službeno povukao (NIST).

Suvremeni postupci poput AES s ključevima duljine 128/192/256 bita, nasuprot tome, imaju astronomski velik prostor ključeva. U praksi je manje presudan sam algoritam, a više izvođenje ključa iz lozinki i kvaliteta glavne lozinke.

Password Depot dodatno otežava brute-force napade pomoću funkcije odgode: nakon pogrešnog unosa glavne lozinke program ostaje zaključan nekoliko sekundi.

Zaključak: Uz pravilnu implementaciju, odgovarajuće načine rada (npr. GCM) i dovoljnu duljinu ključa, AES se iz današnje perspektive smatra vrlo dugoročno sigurnim.

Više o brute-force napadima.

Razumijevanje brute-force napada

Saznajte zašto je duljina lozinke presudna i kako se zaštititi.

Više o brute-force napadima