Miten Rijndael-salausalgoritmi toimii?
Tunnetaan myös lyhenteellä AES
Erittäin luottamuksellisten tietojen turvallinen siirtäminen niin, etteivät asiattomat pääse niihin käsiksi, on aina ollut haaste. Varhaiset ”salakielet” – kuten yksinkertaiset kirjainten siirrot – on nykyaikaisella laskentateholla helppo murtaa. Nykyään suojaamme tietoja kryptografisilla menetelmillä, jotka on määritelty matemaattisesti tarkasti ja joiden turvallisuus on arvioitu julkisesti.
Tällaiset menetelmät käyttävät avainta, jonka vain lähettäjä ja vastaanottaja tuntevat. Salaus ja purku perustuvat tällöin salausalgoritmiin – eli selkeästi kuvattuun matemaattiseen menetelmään.
Password Depot salaa luottamukselliset tietosi algoritmilla Rijndael, joka on standardoitu nimellä AES (Advanced Encryption Standard).
Seuraavassa selitämme algoritmin toiminnan ja sijoitamme sen tekniseen kontekstiin.
Advanced Encryption Standard (AES) – Rijndaelin standardoitu versio
Yhdysvaltain National Bureau of Standards (nykyisin NIST) standardoi vuonna 1977 DES; tämä standardi poistettiin käytöstä, koska se ei ollut enää riittävän turvallinen (NIST-ilmoitus). Sen seuraajaksi NIST valitsi vuonna 2001 Rijndael ja standardoi siitä Advanced Encryption Standard (AES) (FIPS 197).
Tärkeää: AES on osajoukko Rijndael-perheestä. AES määrittää lohkokoon kiinteästi 128 bittiin ja sallii avaimet, joiden pituus on 128, 192 tai 256 bittiä (NIST-huomautus, FIPS 197 (PDF)).
AES on hyväksytty suojaamaan Yhdysvaltain viranomaistietoja aina TOP SECRET -tasolle asti (katso CNSSP-15 Fact Sheet sekä NSA:n ajantasainen CNSA-2.0-FAQ).
Näin Rijndael/AES toimii (lyhyt katsaus)
Rijndael on substituutio-permutaatioverkko-salaus. Keskeiset periaatteet ovat tavutasolla tehtävät substituutiot, lineaariset muunnokset ja XOR-operaatiot.
Toiminta lohkotasolla (128 bitin ”tila”)
- Avaimen laajennus (Key Schedule): Avaimesta johdetaan Nr + 1 kierrosavainta (esim. 11 AES‑128:ssa, 13 AES‑192:ssa, 15 AES‑256:ssa). Lähde: FIPS 197.
- Alkukierros: AddRoundKey – selkotekstilohko (4×4 tavun matriisina) yhdistetään XOR-operaatiolla ensimmäiseen kierrosavaimeen.
- Kierrokset 1 … Nr:
- SubBytes: Jokainen tavu korvataan S‑Box-arvolla (multiplikatiivinen käänteisluku kohteessa GF(28) plus affiini muunnos vakiolla
0x63). Lähde: FIPS 197. - ShiftRows: state-matriisin rivejä siirretään syklisesti.
- MixColumns: sarakkeet sekoitetaan matriisikertolaskulla kohteessa GF(28).
- AddRoundKey: XOR vastaavan kierrosavaimen kanssa.
- SubBytes: Jokainen tavu korvataan S‑Box-arvolla (multiplikatiivinen käänteisluku kohteessa GF(28) plus affiini muunnos vakiolla
Huomautus: Viimeisellä kierroksella jätetään pois MixColumns. Kierrosten määrä on 10/12/14 avaimille, joiden pituus on 128/192/256 bittiä (FIPS 197).
AES voidaan toteuttaa ohjelmistona, firmware-ohjelmistona tai laitteistona (FIPS 197). Käytännön käyttöä varten Toimintatilat käytetään, esim. CBC, CTR tai GCM (todennettu salaus). Suosituksia löydätte julkaisusta NIST SP 800–38A ja NIST SP 800–38D (GCM/GMAC).
Tärkeää huomioida: AES on symmetrinen salausalgoritmi tiedon salaukseen. Avaintenvaihto toteutetaan tavallisesti asymmetrisillä menetelmillä ((EC)DH/RSA). AES voi kuitenkin turvallisesti paketoida avaimia (”Key Wrap”) – vrt. NIST SP 800–38F.
Virallinen spesifikaatio
Lähde löytyy täältä: https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf
Brute-Force-hyökkäykset
Brute-Force tarkoittaa, että hyökkääjä kokeilee kaikki mahdolliset avaimet. Klassiset menetelmät, kuten DES vain 56 bitin avaimilla, voidaan nykyään käytännössä murtaa – siksi NIST poisti DES:n virallisesti käytöstä (NIST).
Nykyaikaisilla menetelmillä, kuten AES 128/192/256 bitin avaimilla, on sen sijaan astronomisen suuri avainavaruus. Käytännössä ratkaisevampaa kuin itse algoritmi on avaimen johtaminen salasanoista ja pääsalasanan.
Password Depot vaikeuttaa brute-force-hyökkäyksiä lisäksi viivetoiminnolla: virheellisen pääsalasanan syöttämisen jälkeen ohjelma pysyy lukittuna muutaman sekunnin ajan.
Yhteenveto: Oikein toteutettuna, sopivia toimintatiloja (esim. GCM) käytettäessä ja riittävällä avainpituudella AES:ää pidetään nykykäsityksen mukaan erittäin turvallisena pitkälle tulevaisuuteen.
Lisää aiheesta brute-force-hyökkäykset.
Lisälähteet
- FIPS 197 – Advanced Encryption Standard (AES)
- FIPS 197 – PDF (alkuperäinen spesifikaatio)
- NIST: AES on Rijndaelin osajoukko (128 bitin lohkokoko)
- NIST SP 800–38A – toimintatilat (ECB/CBC/CFB/OFB/CTR)
- NIST SP 800–38D – GCM/GMAC (todennettu salaus)
- NIST SP 800–38F – AES Key Wrap
- CNSSP–15 Fact Sheet – AES:n käyttö salaisille/erittäin salaisille tiedoille
- NSA: CNSA 2.0 FAQ – ajankohtaiset vaatimukset
- NIST: DES:n poistaminen käytöstä (taustaa)
Ymmärrä brute-force-hyökkäykset
Lue, miksi salasanan pituus on ratkaisevan tärkeä ja miten voit suojautua.
Lisätietoja brute-force-hyökkäyksistä