AES (Advanced Encryption Standard) on symmetrisen avaimen lohkosalausalgoritmi, jonka National Institute of Standards and Technology (NIST) valitsi vuonna 2001. Se valittiin tietojen salaamiseen. Sitä käytetään yleisesti kaikkialla maailmassa. Advanced Encryption Standard on korvannut Data Encryption Standardin (DES).
Vuodesta 2008 lähtien AES on yksi suosituimmista symmetrisen avaimen salausalgoritmeista. Se on ohjelmoijien ja suuren yleisön saatavilla useissa ohjelmistopaketeissa.
Miten AES toimii
AES on lohkosalaus: se käsittelee dataa kiinteän kokoisina lohkoina. AES:n lohkokoko on 128 bittiä. Algoritmi määrittelee kolme sallitua avainpituutta: 128, 192 ja 256 bittiä. Avainpituudesta riippuen myös salauskierrosten määrä muuttuu:
- AES-128: 10 kierrosta
- AES-192: 12 kierrosta
- AES-256: 14 kierrosta
Yksi AES:n perusrakenteen ominaisuuksista on niin sanottu Substitution–Permutation Network (SPN). Yksi kierros sisältää yleensä seuraavat vaiheet:
- SubBytes – paikalliset korvausoperaatiot (S-laatikko)
- ShiftRows – rivien kierto tietyllä tavalla
- MixColumns – sarakkeiden lineaarinen sekoitus (ei viimeisessä kierroksessa)
- AddRoundKey – kierrosavain x-orataan tilaan
Kierrosavaimet johdetaan alkuperäisestä salausavaimesta avainajurilla (key schedule). Purkamisessa (decryption) suoritetaan näiden vaiheiden käänteiset toimet.
Käyttötavat ja toimintatilat
AES by itself on lohkosalaus; sitä käytetään aina yhdessä jonkin toimintatilan (mode of operation) kanssa, jotta voidaan salata pidempiä datavirtoja tai tarjota suojausta tietynlaisia hyökkäyksiä vastaan. Yleisimpiä toimintatiloja ovat:
- ECB – yksinkertainen mutta turvaton: identtiset lohkot antavat identtiset salauslohkoja; ei suositella käytettäväksi.
- CBC – blokit kytketään ketjuun ja tarvitsee satunnaisen alustusvektorin (IV).
- CTR – virta-simulaatio, hyödynnettävissä rinnakkaiseen käsittelyyn.
- GCM – tarjoilee sekä salauksen että autentikoinnin (authenticated encryption), yleisesti suositeltu nykyaikaisissa sovelluksissa.
Nykykäytännössä suositaan aina autentikoivaa salausta (esim. AES-GCM tai yhdistetty algoritmi kuten AES-CCM), koska pelkkä salaus ei estä muun muassa viestien manipulointia.
Turvallisuus
Kun AES:iä käytetään oikein (pitkät avaimet tarpeen mukaan, turvallinen avainten hallinta, uniikit IV:t, autentikoiva toimintatila), se on osoittautunut turvalliseksi monenlaisia käytännön hyökkäyksiä vastaan. AES:n matemaattisia heikkouksia ei ole löytynyt käytännöllisellä monimutkaisuudella murtamiskelpoisessa muodossa: paras tunnettu tapa murtaa AES on kokeellinen avaimenmurtaminen (brute force), joka on käytännössä mahdotonta riittävän pitkillä avaimilla.
Kuitenkin toteutuksiin liittyvät sivukanava-hyökkäykset (esim. aika- tai virta-analyyseihin perustuvat hyökkäykset) voivat vaarantaa järjestelmän, jos laitteissa ei oteta suojaavia vastatoimia. Myös avainten hallinta ja satunnaisuuden laatu ovat kriittisiä tekijöitä.
Toteutus ja suorituskyky
AES on suunniteltu tehokkaaksi sekä ohjelmisto- että laiteratkaisuissa. Monet modernit suorittimet sisältävät AES-NI -käskynkokoelman, joka nopeuttaa AES-operaatioita laitteistotason tuella. Ohjelmistoissa käytetään yleisesti hyväksi optimoituja kirjastoja (esim. OpenSSL, libsodium), jotka tarjoavat turvallisen ja nopean toteutuksen.
Hyvät käytännöt
- Käytä riittävän pitkää avainta (vähintään AES-128, mutta AES-256 tarjoaa enemmän varmuutta tulevaisuuden uhkia vastaan).
- Käytä autentikoivia toimintatiloja (esim. AES-GCM) tai yhdistä salaus ja MAC oikein.
- Varmista IV:ien/noncejen oikea käsittely — usein ne on oltava uniikkeja ja joskus satunnaisia.
- Älä käytä ECB-tilaa tuotantokäytössä.
- Älä “tee omaa” kryptografiaa: käytä hyväksi todettuja kirjastoja ja standardeja.
- Huolehdi avainten elinkaaresta ja suojauksesta (avainhallinta, vaihtaminen, varmuuskopiointi turvallisesti).
Käyttökohteet
AES:ää käytetään laajalti esimerkiksi HTTPS/TLS-yhteyksissä, VPN-yhteyksissä, levynsalauksessa (kuten BitLocker ja LUKS), tiedostojen salaamisessa ja monissa sulautetuissa järjestelmissä. Sen leviäminen perustuu yhdistettyyn turvallisuuteen ja tehokkuuteen.
Yhteenvetona: AES on nykystandardi symmetriselle lohkosalaukselle, joka tarjoaa vahvan suojan oikein käytettynä. Oikea toimintatila, avainhallinta ja toteutuksen turvallisuus ovat kuitenkin yhtä tärkeitä kuin itse algoritmin valinta.

