Objašnjenje šifriranja AES-256: što znači za vaše podatke

Objašnjenje šifriranja AES-256: što znači za vaše podatke

AES-256 objašnjen: kako šifra radi, zašto su važni 256-bitni ključevi, što dodaje način GCM i što provjeriti kad aplikacija tvrdi da koristi šifriranje AES-256.


Što je AES-256?

AES-256 je simetrična blokovna šifra: Advanced Encryption Standard s 256-bitnim ključem. Isti ključ šifrira i dešifrira. Podatke obrađuje u blokovima od 128 bita kroz 14 rundi, a NIST ga je standardizirao kao FIPS 197 2001. godine.

Naziv spaja tri činjenice. AES označava algoritam koji je NIST 2001. odabrao iz prijedloga Rijndael. 256 je duljina ključa u bitovima, koja određuje koliko ključeva napadač grubom silom mora isprobati. Način rada poput GCM ili CBC, koji se obično piše iza naziva kao AES-256-GCM, određuje kako se blokovi povezuju i provjerava li se šifrirani tekst na neovlaštene izmjene. Sam naziv AES-256 govori vam šifru i veličinu ključa. Ne govori vam način rada i ne govori vam tko drži ključ.

AES-256 je Advanced Encryption Standard s 256-bitnim ključem, koji je NIST standardizirao kao FIPS 197 2001. godine. To je simetrični algoritam šifriranja kojim se američka vlada služi za tajne podatke, banke za financijske transakcije, a sigurnosno usmjerene aplikacije za zaštitu podataka u pohrani i u prijenosu. AES-256 ima 2^256 mogućih ključeva, što je broj veći od procijenjenog broja atoma u vidljivom svemiru. Nijedan poznati napad ne smanjuje taj prostor ključeva na pretragu izvedivu u praksi.

Ovaj vodič objašnjava što AES-256 zapravo radi, zašto je važna veličina ključa, što znače različiti načini rada (ECB, CBC, GCM) i na što paziti kad aplikacija tvrdi da koristi šifriranje AES-256.

Što AES zapravo radi

AES je simetrična blokovna šifra. „Simetrična“ znači da isti ključ šifrira i dešifrira. „Blokovna šifra“ znači da podatke obrađuje u blokovima stalne veličine od 128 bita (16 bajtova).

Algoritam uzima vaše podatke (otvoreni tekst), kombinira ih s ključem i nizom matematičkih transformacija proizvodi ispremiješan izlaz (šifrirani tekst). Te transformacije (zamjena, pomak, miješanje i dodavanje ključa) ponavljaju se kroz stalan broj rundi. AES-256 koristi 14 rundi.

Svaka runda primjenjuje četiri operacije:

  1. SubBytes: Svaki bajt zamjenjuje se prema stalnoj tablici zamjene (S-box), što uvodi nelinearnost.
  2. ShiftRows: Bajtovi u svakom retku pomiču se za različite pomake i tako raspršuju podatke po položajima.
  3. MixColumns: Stupci se miješaju množenjem matrica u konačnom polju, pa se promjene šire preko bajtova.
  4. AddRoundKey: Ključ runde (izveden iz glavnog ključa) kombinira se s podacima operacijom XOR.

Nakon 14 rundi otvoreni tekst temeljito je ispremiješan. Obrnutim operacijama uz ispravan ključ vraćaju se izvorni podaci. Bez ključa šifrirani tekst ne može se razlikovati od nasumičnog šuma.

Zašto je važno 256 bita

„256“ u AES-256 odnosi se na duljinu ključa: 256 bita. Ona određuje broj mogućih ključeva koje napadač mora isprobati da bi šifriranje probio grubom silom.

Veličina ključa Mogući ključevi Vrijeme probijanja grubom silom (bilijun pokušaja u sekundi)
56-bitni (DES) 7.2 x 10^16 ~20 sati
128-bitni (AES-128) 3.4 x 10^38 10^13 godina (10 bilijuna godina)
256-bitni (AES-256) 1.16 x 10^77 10^51 godina

Za usporedbu: svemir je star približno 1,38 x 10^10 godina. Probijanje AES-256 grubom silom trajalo bi otprilike 10^41 puta dulje od starosti svemira, čak i uz bilijun pokušaja u sekundi.

AES-128 već je u praksi neizvedivo probiti grubom silom. AES-256 daje dodatnu rezervu protiv budućeg napretka računalstva, uključujući kvantno računalstvo. Groverov algoritam (kvantni napad) u praksi prepolovljuje duljinu ključa, pa AES-256 svodi na razinu AES-128, što je i dalje neizvedivo. AES-128 bi se sveo na 64-bitnu stvarnu sigurnost, što bi moglo biti ranjivo. Zato aplikacije kojima je sigurnost ključna biraju AES-256.

Načini rada AES-a: zašto su važni

AES sam po sebi šifrira samo jedan 128-bitni blok odjednom. Za stvarne podatke (fotografije, dokumente, videozapise) potreban je „način rada“ koji obrađuje podatke veće od 16 bajtova. Način rada određuje kako se blokovi povezuju i ima velike sigurnosne posljedice.

ECB (Electronic Codebook): ne koristiti

Svaki blok šifrira se zasebno istim ključem. Jednaki blokovi otvorenog teksta daju jednake blokove šifriranog teksta. Tako se otkrivaju uzorci u podacima. Klasičan primjer: bitmapna slika šifrirana ECB-om zadržava strukturu u šifriranom tekstu, pa je sadržaj prepoznatljiv. ECB je dio standarda, ali ga nikad ne treba koristiti za podatke koji imaju strukturu ili ponavljanja (a to su gotovo svi stvarni podaci).

CBC (Cipher Block Chaining): zastarjelo

Svaki blok prije šifriranja kombinira se operacijom XOR s prethodnim blokom šifriranog teksta. Time nestaje otkrivanje uzoraka kakvo ima ECB. CBC je desetljećima bio standardni način rada, ali ga je u većini primjena zamijenio GCM. CBC zahtijeva nasumični inicijalizacijski vektor (IV) i nema ugrađenu autentikaciju (ne možete otkriti je li šifrirani tekst neovlašteno izmijenjen).

GCM (Galois/Counter Mode): današnji standard

GCM spaja šifriranje u načinu brojača s autentikacijom u Galoisovu polju. Pruža autentificirano šifriranje: šifrira podatke I stvara autentikacijsku oznaku koja otkriva svaku izmjenu šifriranog teksta. Ako se promijeni i jedan bit, dešifriranje ne uspijeva umjesto da vrati oštećeni otvoreni tekst.

NIST je GCM standardizirao u SP 800-38D (2007.). To je preporučeni način rada za nove implementacije.

AES-256-GCM je AES s 256-bitnim ključem u načinu Galois/Counter. To bi trebale koristiti aplikacije kojima je sigurnost ključna, a Vaultaire ga koristi za šifriranje sadržaja fotografija i datoteka.

Način rada Otkrivanje uzoraka Autentikacija Današnja preporuka
ECB Da (ozbiljno) Ne Ne koristiti
CBC Ne Ne (treba zaseban MAC) Zastarjelo; prihvatljivo uz HMAC
GCM Ne Da (ugrađena) Preporučeno za nove implementacije

Što AES-256 znači za pohranu fotografija

Kad aplikacija za trezor fotografija tvrdi da koristi „šifriranje AES-256“, trebaju vrijediti tri stvari:

  1. Sadržaj datoteka šifriran je AES-256. Sirovi podaci fotografije (pikseli, metapodaci, sličica) pretvaraju se u šifrirani tekst 256-bitnim ključem.

  2. Svaka datoteka ima vlastiti inicijalizacijski vektor (IV). Ako se dvije jednake fotografije šifriraju istim ključem, šifrirani tekst mora biti različit. Za to je potreban jedinstveni IV po datoteci. Bez njega statistička analiza može otkriti uzorke.

  3. Način rada pruža autentikaciju (GCM ili ekvivalent). Bez autentikacije napadač bi mogao neopaženo izmijeniti šifrirani tekst. Rezultat dešifriranja tada bi bili oštećeni podaci, a ne pogreška.

Što vam „AES-256“ na marketinškoj stranici ne govori

AES-256 je nužan, ali nije dovoljan. Nekoliko ključnih čimbenika određuje štiti li šifriranje stvarno vaše podatke:

Izvođenje ključa je važno. Kako nastaje 256-bitni ključ? Ako se izvodi iz četveroznamenkastog PIN-a slabom funkcijom za izvođenje ključa, stvarna sigurnost iznosi 4 znamenke (10.000 kombinacija), a ne 256 bita. Snažna implementacija koristi PBKDF2 s velikim brojem iteracija ili Argon2 s primjerenim parametrima memorije i vremena. Vaultaire koristi PBKDF2 s HMAC-SHA512 i 600.000 iteracija kako bi iz odabranog uzorka 5x5 i soli uređaja izveo lokalni ključ trezora. PBKDF2 čini svaki pokušaj skupljim; ne podiže entropiju uzorka na 256 bita.

Pohrana ključa je važna. Gdje se ključ nalazi? Ako je spremljen kao otvoreni tekst u sandboxu aplikacije, zlonamjerni softver s pristupom datotekama može ga pročitati. Appleov Secure Enclave podržava određene operacije s ključevima koji se ne mogu izvesti, a ne proizvoljne AES ključeve koje dostavi aplikacija. Dizajni sa simetričnim ključem mogu se umjesto toga oslanjati na Keychain i Data Protection, pa dokumentacija treba navesti točan API i razred zaštite, a ne samo neodređenu tvrdnju o hardverskoj zaštiti.

Važno je što se šifrira. Neke aplikacije šifriraju sadržaj datoteka, ali nazive datoteka, sličice i metapodatke ostavljaju nešifrirane. Forenzičar možda neće vidjeti vašu fotografiju, ali u popisu datoteka vidjet će „vacation-beach-2025.jpg“. Cjelovito šifriranje zasebno pokriva i metapodatke.

Životni ciklus ključa je važan. Koliko dugo dešifrirani ključni materijal ostaje dostupan? Vaultaire odbacuje stanje aktivnog trezora i glavnog ključa kad se zaključa ili zatvori i traži novo otključavanje. Bajtovi simetričnog ključa nužno postoje u memoriji aplikacije dok je trezor otvoren, a Swift i iOS ne dopuštaju aplikaciji da dokaže kako je svaka privremena kopija prebrisana.

AES-256 u praksi: tko ga koristi

Subjekt Namjena Način rada
Američka vlada (NSA) Tajni podaci GCM (ili CTR sa zasebnom autentikacijom)
Apple (iCloud ADP) iCloud šifriranje s kraja na kraj GCM
Signal Šifriranje poruka CBC (s HMAC-om za autentikaciju)
Banke Šifriranje financijskih transakcija GCM
1Password Trezor lozinki GCM
Vaultaire Trezor fotografija i datoteka GCM
VeraCrypt Šifriranje diska XTS (prilagođen blokovima diska)

Česte zablude

Šifriranje „vojnog stupnja“ ne znači ništa određeno. Marketinške stranice koriste taj izraz jer zvuči dojmljivo. Vojske koriste AES-256. Koriste i AES-128. Izraz vam ne govori način rada, izvođenje ključa, pohranu ključa ni koji su podaci stvarno šifrirani.

„256-bitno šifriranje“ ne mora značiti AES-256. I druge šifre koriste 256-bitne ključeve (ChaCha20, Twofish, Serpent). Provjerite koji je algoritam naveden. AES-256-GCM je današnji standard.

AES-256 ne štiti od slabe lozinke. Ako vam je lozinka „1234“, a izvođenje ključa slabo, šifriranje u praksi ima sigurnost četiri znamenke, bez obzira na snagu šifre. Lanac puca na najslabijoj karici.

AES-256 ne štiti podatke u uporabi. Kad gledate fotografiju, ona mora biti dešifrirana u memoriji. U tom trenutku postoji kao otvoreni tekst u RAM-u. Dobre implementacije skraćuju taj prozor i brzo brišu dešifrirane podatke.

Često postavljana pitanja

Što znači AES-256?

Advanced Encryption Standard s 256-bitnim ključem. AES je šifra koju je NIST standardizirao kao FIPS 197 2001. godine, nakon što je odabrao dizajn Rijndael. Broj 256 je duljina ključa u bitovima. Nastavak poput AES-256-GCM dodaje način rada, a to je izbor odvojen od šifre i veličine ključa.

Može li se AES-256 probiti?

Nijedan poznati napad ne probija AES-256 smanjenjem punog prostora ključeva. Najbolji poznati napad (biclique napad autora Bogdanova, Khovratovicha i Rechbergera iz 2011.) smanjuje AES-256 s 2^256 operacija na 2^254,4, što je teorijsko poboljšanje bez ikakvog praktičnog značenja. AES-256 i dalje nije probijen.

Je li AES-256 otporan na kvantna računala?

Uglavnom da. Groverov kvantni algoritam prepolovljuje stvarnu duljinu ključa: AES-256 postaje jednak 128-bitnoj sigurnosti protiv kvantnih napada. AES-128 bi se sveo na 64-bitnu stvarnu sigurnost, što bi moglo biti ranjivo. Groverova pretraga protiv AES-256 i dalje bi trebala oko 2^128 operacija, što nije izvedivo u praksi.

Koja je razlika između AES-128 i AES-256?

AES-128 koristi 128-bitni ključ (10 rundi). AES-256 koristi 256-bitni ključ (14 rundi). Oba se smatraju sigurnima protiv današnjih napada. AES-256 daje veću rezervu protiv budućeg napretka, osobito kvantnog računalstva. AES-256 je zbog dodatnih rundi otprilike 40 % sporiji od AES-128, ali hardversko ubrzanje tu razliku na modernim uređajima čini zanemarivom.

Usporava li šifriranje AES-256 moj telefon?

Ne primjetno pri uobičajenoj uporabi. Moderni Appleovi procesori pružaju hardversko ubrzanje AES-a kroz sistemske kriptografske biblioteke. To ne znači da se AES operacija aplikacije izvodi u Secure Enclaveu. Trajanje i dalje ovisi o veličini datoteke, uređaju, pohrani i implementaciji, pa se sigurnosna tvrdnja treba oslanjati na mjerenja, a ne na univerzalnu brojku u milisekundama.

Kako znati koristi li aplikacija stvarno AES-256?

Provjerite sigurnosnu dokumentaciju aplikacije, a ne samo njezinu marketinšku stranicu. Tražite točan algoritam i način rada, hijerarhiju ključeva, parametre izvođenja, točnu uporabu Keychaina ili Secure Enclavea, rukovanje jednokratnim vrijednostima (nonce), put oporavka i jesu li šifrirani i metapodaci. Otvoreni kod i neovisne revizije olakšavaju provjeru tih tvrdnji.

Zaključak

AES-256 je široko korištena simetrična šifra koju je standardizirao NIST, bez poznatog praktičnog napada; kvantno računalo s Groverovim algoritmom i dalje bi se suočilo s oko 2^128 operacija. Kad procjenjujete aplikacije koje tvrde da koriste šifriranje AES-256, gledajte dalje od same šifre: provjerite način rada (GCM), izvođenje ključa (PBKDF2/Argon2 s velikim brojem iteracija), pohranu ključa (točan API i razred zaštite) i koji su podaci stvarno šifrirani (sadržaj + metapodaci).

Vaultaire koristi AES-256-GCM za sadržaj datoteka, zaglavlja, metapodatke, indekse i sličice. PBKDF2 s HMAC-SHA512 izvodi lokalni ključ trezora iz uzorka i soli u Keychainu zajedničke cijelom uređaju; taj ključ otpakirava nasumični glavni ključ kojim se šifriraju datoteke. Simetrične operacije izvode se u procesu aplikacije putem CryptoKita, dok iOS Keychain i Data Protection štite stanje oporavka kad je uređaj zaključan. Cijela hijerarhija opisana je u sigurnosnom modelu.

Reference