Hogyan működik a Rijndael titkosítási algoritmus?
Más néven AES rövidítéssel is ismert
Szigorúan bizalmas információkat úgy továbbítani biztonságosan, hogy ahhoz illetéktelenek ne férhessenek hozzá, mindig is kihívást jelentett. A korai „titkos írásmódok” – például az egyszerű betűeltolások – a mai számítási kapacitás mellett triviálisan feltörhetők. Ma már olyan kriptográfiai eljárásokkal védjük az adatokat, amelyek matematikailag precízen definiáltak, és amelyek biztonságát nyilvánosan felülvizsgálták.
Az ilyen eljárások egy olyan kulcsot használnak, amelyet csak a küldő és a fogadó ismer. A titkosítás és a visszafejtés egy titkosítási algoritmust követ – egy egyértelműen leírt matematikai eljárást.
Password Depot az Ön bizalmas adatait a Rijndael algoritmussal titkosítja, amelyet AES (Advanced Encryption Standard) néven szabványosítottak.
Az alábbiakban ismertetjük az algoritmust, és technikai szempontból is kontextusba helyezzük.
Advanced Encryption Standard (AES) – a Rijndael szabványosított változata
Az Egyesült Államok National Bureau of Standards-e (ma NIST) 1977-ben szabványosította a DES-t; ezt a szabványt 2005-ben visszavonták, mivel már nem számított kellően biztonságosnak (NIST-közlemény). Utódjaként a NIST 2001-ben a Rijndael algoritmust választotta ki, és ebből szabványosította a Advanced Encryption Standard (AES)-t (FIPS 197).
Fontos: az AES a Rijndael-család egy részhalmaza. Az AES a blokkméretet 128 biten rögzíti, és 128, 192 vagy 256 bites kulcsokat enged meg (NIST-közlemény, FIPS 197 (PDF)).
Az AES az Egyesült Államok kormányzati információinak védelmére egészen a TOP SECRET minősítési szintig engedélyezett (lásd a CNSSP-15 Fact Sheet dokumentumot, valamint a CNSA-2.0 GYIK-et az NSA-tól).
Így működik a Rijndael/AES (rövid áttekintés)
A Rijndael egy helyettesítés-permuntációs hálózat-rejtjel. A fő építőelemei a bájtszintű helyettesítések, a lineáris transzformációk és az XOR-műveletek.
A feldolgozás blokkszinten (128 bites „State”)
- Kulcsbővítés (Key Schedule): A főkulcsból Nr + 1 körkulcsot származtatunk (például 11 az AES-128, 13 az AES-192, 15 az AES-256 esetén). Forrás: FIPS 197.
- Inicializáló kör: AddRoundKey – a nyílt szöveg blokkja (4×4 bájtos mátrixként) XOR-ral kerül kombinálásra az első körkulccsal.
- 1 … Nr. kör:
- SubBytes: Minden bájt egy S-Box segítségével kerül helyettesítésre (multiplikatív inverz a GF(28) testben, majd affin transzformáció a
0x63konstanssal). Forrás: FIPS 197. - ShiftRows: A State-mátrix sorai ciklikusan eltolásra kerülnek.
- MixColumns: Az oszlopok GF(28) feletti mátrixszorzással kerülnek összekeverésre.
- AddRoundKey: XOR a megfelelő körkulccsal.
Megjegyzés: Az utolsó körben nincs MixColumns lépés. A körök száma 10/12/14 a 128/192/256 bites kulcsok esetén (FIPS 197). - SubBytes: Minden bájt egy S-Box segítségével kerül helyettesítésre (multiplikatív inverz a GF(28) testben, majd affin transzformáció a
Az AES szoftverben, firmware-ben vagy hardverben egyaránt megvalósítható (FIPS 197). A gyakorlati használathoz különböző üzemmódokat alkalmazunk, például CBC, CTR vagy GCM (hitelesített titkosítás). Ajánlásokat a NIST SP 800-38A és a NIST SP 800-38D (GCM/GMAC) dokumentum tartalmaz.
Fontos a megfelelő besoroláshoz: az AES egy szimmetrikus rejtjel adatok titkosítására. A kulcscsere általában aszimmetrikus eljárásokkal történik ((EC)DH/RSA). Az AES azonban képes a kulcsok biztonságos „becsomagolására” („Key Wrap”) is – lásd a NIST SP 800-38F dokumentumot.
Hivatalos specifikáció
A referencia itt érhető el: https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf
Brute-Force-támadások
Brute-force alatt azt értjük, hogy a támadó az összes lehetséges kulcsot végigpróbálja. A klasszikus eljárások, például a mindössze 56 bites kulcsot használó DES, ma már gyakorlatilag így feltörhetők – a NIST ezért 2005-ben a DES szabványt hivatalosan visszavonta (NIST).
A modern eljárások, például az AES 128/192/256 bites kulcsokkal, ezzel szemben csillagászati méretű kulcsteret biztosítanak. A gyakorlatban azonban kevésbé maga az algoritmus, sokkal inkább a jelszavakból történő kulcsszármaztatás és a mesterjelszó minősége a döntő.
Password Depot további védelmet nyújt a brute-force támadásokkal szemben egy késleltető funkcióval: a mesterjelszó hibás megadása után a program néhány másodpercre zárolva marad.
Összegzés: megfelelő implementáció, megfelelő üzemmódok (például GCM) és elegendő kulcshossz mellett az AES a mai ismereteink szerint nagyon hosszú távon biztonságosnak tekinthető.
További információk a brute-force támadásokról.
További források
- FIPS 197 – Advanced Encryption Standard (AES)
- FIPS 197 – PDF (eredeti specifikáció)
- NIST: az AES a Rijndael részhalmaza (128 bites blokkméret)
- NIST SP 800-38A – üzemmódok (ECB/CBC/CFB/OFB/CTR)
- NIST SP 800-38D – GCM/GMAC (hitelesített titkosítás)
- NIST SP 800-38F – AES Key Wrap
- CNSSP-15 Fact Sheet – az AES alkalmazása titkos/„top secret” minősítésű információkhoz
- NSA: CNSA 2.0 GYIK – aktuális követelmények
- NIST: a DES visszavonása (háttérinformációk)