Miten Rijndael-salausalgoritmi toimii?

Tunnetaan myös lyhenteellä AES

Erittäin luottamuksellisten tietojen turvallinen siirtäminen siten, etteivät asiattomat pääse niihin käsiksi, on ollut aina haaste. Varhaiset «salakielet» – kuten yksinkertaiset kirjainsiirrot – on nykyisellä laskentateholla helppo murtaa. Nykyään suojaamme tietoja kryptografisilla menetelmillä, jotka on määritelty matemaattisesti täsmällisesti ja joiden turvallisuus on arvioitu julkisesti.

Tällaiset menetelmät käyttävät avainta, jonka tuntevat vain lähettäjä ja vastaanottaja. Salaus ja salauksen purku toteutetaan salausalgoritmilla – tarkasti kuvatulla matemaattisella menettelyllä.

Password Depot salaa luottamukselliset tietonne Rijndael-algoritmilla, joka on standardoitu muodossa AES (Advanced Encryption Standard).

Seuraavassa kuvaamme algoritmia ja sijoitamme sen tekniseen kontekstiinsa.

Advanced Encryption Standard (AES) – Rijndael-algoritmin standardoitu muoto

Yhdysvaltain National Bureau of Standards (nykyinen NIST) standardoi vuonna 1977 DES-algoritmin; tämä standardi poistettiin käytöstä vuonna 2005, koska sitä ei enää pidetty riittävän turvallisena (NIST-tiedote). Seuraajaksi NIST valitsi vuonna 2001 Rijndael-algoritmin ja standardoi siihen perustuvan Advanced Encryption Standardin (AES) (FIPS 197).

Tärkeää: AES on Rijndael-perheen osajoukko. AES kiinnittää lohkokooksi 128 bittiä ja sallii avaimet, joiden pituus on 128, 192 tai 256 bittiä (NIST-huomautus, FIPS 197 (PDF)).

AES on hyväksytty Yhdysvaltain viranomaistietojen suojaamiseen aina TOP SECRET -luokkaan asti (ks. CNSSP-15 Fact Sheet sekä ajantasainen CNSA 2.0 FAQ -asiakirja NSA:lta).

Näin Rijndael/AES toimii (lyhyt yleiskuvaus)

Rijndael on substitution–permutation network -tyyppinen lohkosalaus. Sen keskeisiä periaatteita ovat tavutasoiset substituutiot, lineaariset muunnokset ja XOR-operaatiot.

Käsittely lohkotasolla (128-bittinen ”state”)

  • Avaimen laajennus (Key Schedule): Lähtöavaimesta johdetaan Nr + 1 kierrosavainta (esimerkiksi 11 AES-128:ssa, 13 AES-192:ssa ja 15 AES-256:ssa). Lähde: FIPS 197.
  • Alkukierros: AddRoundKey – selkotekstiblokki (4×4-tavumatriisina) yhdistetään XOR-operaatiolla ensimmäiseen kierrosavaimeen.
  • Kierrokset 1 … Nr:
    • SubBytes: Jokainen tavu korvataan S-boxin avulla (multiplikatiivinen käänteisluku kentässä GF(28) ja sitä seuraava affinimuunnos vakiolla 0x63). Lähde: FIPS 197.
    • ShiftRows: State-matriisin rivejä siirretään syklisesti.
    • MixColumns: Sarakkeet sekoitetaan matriisikertolaskulla kentässä GF(28).
    • AddRoundKey: XOR-operaatio vastaavan kierrosavaimen kanssa.
    Huomautus: Viimeisellä kierroksella vaihe MixColumns jätetään pois. Kierrosten lukumäärä on 10/12/14 avaimen pituuksille 128/192/256 bittiä (FIPS 197).

AES voidaan toteuttaa ohjelmisto-, firmware- tai laitetasolla (FIPS 197). Käytännön toteutuksissa käytetään erilaisia toimintatiloja, kuten CBC, CTR tai GCM (todennettu salaus). Suosituksia on esitetty julkaisuissa NIST SP 800-38A ja NIST SP 800-38D (GCM/GMAC).

Tärkeää kontekstin kannalta: AES on symmetrinen salausmenetelmä datan salaamiseen. Avainten vaihto toteutetaan yleensä epäsymmetrisillä menetelmillä ((EC)DH/RSA). AES:ää voidaan kuitenkin käyttää avainten turvalliseen kapselointiin («Key Wrap») – ks. NIST SP 800-38F.

Virallinen spesifikaatio

Viitespesifikaatio 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 kaikkia mahdollisia avaimia. Klassiset menetelmät, kuten DES, jossa avainpituus on vain 56 bittiä, voidaan nykyään käytännössä murtaa tällä tavalla – NIST poisti DES-standardin virallisesti vuonna 2005 (NIST).

Nykyaikaiset menetelmät, kuten AES, käyttävät 128/192/256-bittisiä avaimia ja tarjoavat siten astronomisen suuren avaruuden mahdollisille avaimille. Käytännössä ratkaisevaa ei ole niinkään itse algoritmi, vaan avaimen johdattaminen salasanoista sekä valitun pääsalasanan laatu.

Password Depot vaikeuttaa brute force -hyökkäyksiä entisestään viive-toiminnolla: virheellisen pääsalasanan syötön jälkeen ohjelma on lukittuna useiden sekuntien ajan.

Johtopäätös: Kun AES on toteutettu oikein, käytössä on sopivia toimintatiloja (esimerkiksi GCM) ja avaimen pituus on riittävä, menetelmää pidetään tämänhetkisen tietämyksen perusteella pitkällä aikavälillä erittäin turvallisena.

Lisätietoja aiheesta brute force -hyökkäykset.

Lisälähteet