Lohkosalausten turvallisuus perustuu pohjimmiltaan sekaannus- ja diffuusiooperaatioiden iteratiiviseen soveltamiseen. Claude Shannon muotoili tämän käsitteen ensimmäisen kerran uraauurtavassa työssään salaisuusjärjestelmien kommunikaatioteoriasta, jossa hän ilmaisi sekä sekaannus- että diffuusio-operaatioiden tarpeen kryptografisissa järjestelmissä tilastollisten ja rakenteellisten hyökkäysten estämiseksi. Sen ymmärtäminen, miksi näitä operaatioita tarvitaan useita kierroksia ja miten ne liittyvät toisiinsa, on ratkaisevan tärkeää nykyaikaisten lohkosalausten, kuten Data Encryption Standardin (DES) ja Advanced Encryption Standardin (AES), suunnittelun ja turvallisuuden ymmärtämiseksi.
Sekavuus ja diffuusio: Määritelmät ja roolit
Sekaannuksella pyritään tekemään salatekstin ja avaimen välisestä suhteesta mahdollisimman monimutkainen. Se tekee tämän peittämällä selkotekstin tilastollisen rakenteen, usein epälineaaristen korvausten avulla (esim. S-laatikot DES:ssä ja AES:ssä). Mitä epälineaarisempi ja monimutkaisempi tämä vastaavuus on, sitä vaikeammaksi hyökkääjän on päätellä tietoja avaimesta, vaikka hänellä olisi pääsy useisiin selkoteksti-salausteksti-pareihin.
Diffuusio puolestaan pyrkii levittämään kunkin selkotekstin bitin vaikutusta useille salatekstin biteille siten, että yhden syöttöbitin muutos johtaa muutoksiin useissa lähtöbiteissä. Tämä ominaisuus varmistaa, että selkotekstin tilastolliset ominaisuudet häviävät salatekstin läpi, mikä tekee hyökkääjille mahdottomaksi hyödyntää kuvioita taajuusanalyysin tai vastaavien tekniikoiden avulla. Diffuusio saavutetaan tyypillisesti lineaarisilla sekoitusoperaatioilla, kuten permutaatiolla, bittikohtaisilla XOR-operaatioilla tai matriisikertolaskuilla (kuten AES:n MixColumns-operaatiossa).
Iteratiivisten lohkosalausten rakenne
Useimmat lohkosalaukset on jäsennelty iteroituiksi salauksiksi, mikä tarkoittaa, että ne soveltavat yksinkertaista pyöreää funktiota useita kertoja korkean turvallisuustason saavuttamiseksi. Pyöreä funktio yhdistää tyypillisesti sekä sekaannuksen (esim. S-box-sovellusten kautta) että diffuusion (esim. permutaatio- tai sekoitusvaiheiden kautta). Useiden kierrosten käytön perustelu on, että yksi sekaannuksen ja diffuusion sovellus ei riitä hämärtämään kaikkia selkotekstin, salatekstin ja avaimen välisiä rakenteellisia suhteita. Jokainen kierros lisää vähitellen näiden suhteiden monimutkaisuutta, ja vasta useiden kierrosten jälkeen salaus saavuttaa halutun turvallisuustason tunnettuja kryptoanalyyttisiä hyökkäyksiä vastaan.
Esimerkiksi AES-salausta käytettäessä jokainen salauskierros koostuu seuraavista keskeisistä vaiheista:
1. SubBytes (Sekavuus): Jokainen tilamatriisin tavu korvataan toisella kiinteän epälineaarisen S-laatikon mukaisesti, mikä tuo mukanaan epälineaarisuuden.
2. ShiftRows (Diffuusio): Tilamatriisin rivejä siirretään syklisesti, mikä siirtää tavuja eri sarakkeisiin ja helpottaa arvojen sekoittumista.
3. MixColumns (Diffuusio): Tilan sarakkeet sekoitetaan käyttämällä matriisikertolaskua äärellisessä kentässä, mikä levittää edelleen kunkin syötetavun vaikutusta.
4. AddRoundKey (Sekavuus): Tilamatriisi yhdistetään pääavaimesta johdettuun aliavaimeen, mikä tuo mukanaan avainriippuvuuden jokaisella kierroksella.
Salauksen tehokkuus ei riipu ainoastaan yksittäisen operaation vahvuudesta, vaan myös siitä, kuinka monta kertaa näitä operaatioita käytetään. Kryptanalyytikot ovat osoittaneet, että salauksen, kuten AES:n tai DES:n, kierrosten määrän vähentäminen voi tehdä siitä alttiin hyökkäyksille, kuten differentiaaliselle ja lineaariselle kryptoanalyysille. Esimerkiksi täysi AES-128 käyttää 10 kierrosta, kun taas versiot, joissa on vain 6 kierrosta, ovat alttiita tietyille kryptoanalyysitekniikoille.
Useiden kierrosten tarpeellisuus
Selventääksemme asiaa tarkemmin, mitä tapahtuu, jos käytetään vain yhtä hämmennys- ja diffuusiokierrosta. Vaikka käytettäisiin vahvoja S-laatikoita ja sekoituskerroksia, tilastolliset suhteet ja kuviot voivat säilyä. Hyökkääjät voisivat hyödyntää näitä jäännöskuvioita käyttämällä valitun selkotekstin tai tunnetun selkotekstin hyökkäyksiä. Useat kierrokset varmistavat, että jokaisen avaimen ja selkotekstin bitin vaikutus leviää perusteellisesti koko salatekstiin, mikä tekee tällaisten hyökkäysten toteuttamisen mahdottomaksi.
"Lumivyöryvaikutuksen" käsite on tässä keskeinen. Vahva salaus varmistaa, että pieni muutos selkotekstissä (kuten yhden bitin kääntäminen) johtaa muutokseen noin puolessa salatekstin biteistä, ja tämä ominaisuus saavutetaan vasta useiden sekaannus- ja diffuusiokierrosten jälkeen. Nykyaikaisten lohkosalausten iteratiivinen rakenne on erityisesti suunniteltu vahvistamaan tätä vaikutusta, mikä tekee salauksesta vastustuskykyisen hyökkäyksille, jotka perustuvat syöte-tulostussuhteiden jäljittämiseen.
Esimerkkejä: DES ja AES
Historiallinen DES-salaus havainnollistaa tätä periaatetta hyvin. DES käyttää Feistel-verkkorakenteessaan 16 kierrosta, joista jokainen koostuu laajennuksesta, S-laatikon korvaamisesta (sekavuus) ja permutaatiosta (diffuusio). Laaja kryptoanalyysi on osoittanut, että alle 16 kierroksen käyttö johtaa heikkouksiin; differentiaalinen kryptoanalyysi on tehokas versioita vastaan, joissa on vähemmän kierroksia. Suunnittelijat valitsivat 16 kierrosta tarjotakseen turvamarginaalin kryptoanalyysin edistysaskeleita vastaan, mikä korostaa useiden iteraatioiden merkitystä.
Vuosikymmeniä myöhemmin suunniteltu AES käyttää 10, 12 tai 14 kierrosta avaimen koosta riippuen (vastaavasti 128, 192 tai 256 bittiä). Jokainen kierros ottaa huomioon sekaannuksen ja diffuusion yhdistetyt vaikutukset SubBytes-, ShiftRows- ja MixColumns-vaiheidensa kautta. Kierrosten lukumäärä valittiin huolellisesti kryptoanalyysin havaintojen perusteella turvallisuuden ja suorituskyvyn tasapainottamiseksi.
Toimintatavat ja niiden suhde
Vaikka lohkosalausten sisäinen turvallisuus määräytyy toistuvan sekaannuksen ja leviämisen perusteella, toimintatila (esim. ECB, CBC, CFB, OFB, CTR) määrittää, miten lohkosalauksia sovelletaan yhtä lohkoa suurempiin tietoihin. Lohkosalauksen turvallisuusominaisuudet tietyssä tilassa riippuvat pohjimmiltaan lohkosalauksen hyökkäysten vastustuskyvystä, joka puolestaan riippuu siitä, kuinka perusteellisesti sekaannukset ja leviäminen saavutetaan useiden kierrosten aikana. Jos taustalla oleva lohkosalaus on heikko (esimerkiksi liian harvassa kierroksessa), mikään toimintatila ei voi kompensoida tätä puutetta.
Kryptoanalyyttiset hyökkäykset ja kierrokset
Useat kryptoanalyyttiset hyökkäykset hyödyntävät lohkosalausten riittämätöntä hämmennystä ja diffuusiota. Esimerkiksi differentiaalinen kryptoanalyysi tutkii, miten selkotekstien erot vaikuttavat tuloksena oleviin salatekstien eroihin. Jos salaus ei ole diffuusioinut syöteeroja riittävästi, hyökkääjä voi ennustaa, miten nämä erot leviävät, ja käyttää tätä tietoa avaimen palauttamiseen. Vastaavasti lineaarinen kryptoanalyysi pyrkii lineaarisiin approksimaatioihin selkotekstin, salatekstin ja avainbittien välillä. Näiden hyökkäysten tehokkuus heikkenee kierrosten määrän kasvaessa, edellyttäen, että jokainen kierros toteuttaa tehokkaasti hämmennystä ja diffuusiota.
Havainnollistamiseksi DES, jossa on 8 kierrosta (puolet standardimäärästä), on altis differentiaaliselle kryptanalyysille, mutta 16 kierroksella hyödyllisen differentiaalisen jäljen etenemisen todennäköisyys kaikkien kierrosten yli on merkityksetön. Tämä osoittaa, että iteratiivinen rakenne ja erityisesti kierrosten lukumäärä ovat olennaisia käytännön turvallisuuden saavuttamiseksi.
Kompromissit suunnittelussa
Salaussuunnittelijoiden on tasapainotettava salauskierrosten määrä suorituskykyvaatimusten kanssa. Useampi kierros tarkoittaa yleensä suurempaa turvallisuutta, mutta myös suurempia laskentakustannuksia. Kierrosten määrä valitaan tyypillisesti siten, että se tarjoaa turvallisuusmarginaalin, joka on suurempi kuin suunnitteluhetkellä tunnetuimmilla hyökkäyksillä, ja oletetaan, että kryptoanalyysin tuleva kehitys saattaa heikentää tätä marginaalia. Tämä konservatiivinen lähestymistapa varmistaa, että salaus pysyy turvallisena koko odotetun käyttöikänsä ajan.
Matemaattinen perustelu
Teoreettisesta näkökulmasta iteroituja lohkosalauksia voidaan tarkastella "iteroitujen tuotteiden salausmallin" linssin läpi. Tietyin oletuksin on osoitettu, että useiden heikkojen salausmenetelmien (joista jokainen toteuttaa heikkoa sekaannusta ja/tai diffuusiota) yhdistäminen voi tuottaa vahvan kokonaissalauksen, edellyttäen, että komponentit ovat riittävän riippumattomia ja kierrosten lukumäärä on suuri. Tämä oikeuttaa iteratiivisen lähestymistavan sekaannuksen ja diffuusion käsittelyyn käytännön salausmenetelmien suunnittelussa.
Käytännön esimerkkejä
Opettavainen esimerkki on AES:n käyttämä substituutio-permutaatioverkko (SPN). SPN:ssä selkoteksti altistetaan vuorotteleville substituutio- (sekaannus) ja permutaatio- (diffuusio) kerroksille. Useiden kierrosten jälkeen jokainen lähtöbitti riippuu jokaisesta syötebitistä erittäin epälineaarisella tavalla. Tätä ominaisuutta ei saavuteta yhdellä kierroksella; useiden kierrosten kumulatiivinen vaikutus varmistaa, että jokainen salatekstin bitti on selkotekstin jokaisen bitin ja avaimen kompleksinen funktio, ominaisuus, joka tunnetaan täydellisenä diffuusiona.
DES-menetelmässä käytetty Feistel-verkko saavuttaa samanlaisen turvallisuuden soveltamalla iteratiivisesti pyöreää funktiota, joka yhdistää substituution ja permutaation, jolloin jokaisen kierroksen tulos syöttää seuraavaan. Tällaisten konstruktioiden turvallisuus kasvaa eksponentiaalisesti kierrosten lukumäärän myötä olettaen, että pyöreä funktio itsessään ei ole triviaalisti invertoitavissa tai lineaarinen.
Johtopäätös: Turvallisuusriippuvuus iteraatiosta
Lohkosalausten vahvuus on monimutkaisesti sidoksissa sekaannus- ja diffuusiooperaatioiden toistuvaan soveltamiseen. Nykyaikaiset salaukset suunnitellaan riittävällä määrällä kierroksia sen varmistamiseksi, että kaikki selkotekstin tai avaimen jäännöstilastolliset suhteet eliminoidaan ja että jokainen selkotekstin ja avaimen bitti vaikuttaa jokaiseen salatekstin bittiin. Tämä iteratiivinen prosessi ei ole pelkästään toteutuksen yksityiskohta, vaan salausturvallisuuden perusperiaate. Kierrosten lukumäärä valitaan laajan kryptoanalyysin perusteella turvamarginaalin aikaansaamiseksi, ja sitä arvioidaan säännöllisesti uudelleen uusien hyökkäysten ilmaantuessa. Kaikissa käytännön ja teoreettisissa suhteissa lohkosalausten turvallisuus riippuu todellakin sekaannus- ja diffuusiooperaatioiden yhdistämisestä useita kertoja.
Muita viimeaikaisia kysymyksiä ja vastauksia liittyen Lohkosalausten sovellukset:
- Mitä lohkosalauksen tulisi sisältää Shannonin mukaan?
- Tarkoittaako diffuusio sitä, että salatekstin yksittäisiin bitteihin vaikuttavat useat selkotekstin bitit?
- Jakaako ECB-tila suuren syötetyn pelkkätekstin seuraaviin lohkoihin
- Voimmeko käyttää lohkosalausta tiivistefunktion tai MAC:n rakentamiseen?
- Voidaanko OFB-tilaa käyttää avainvirtageneraattoreina?
- Voiko salaus olla deterministinen?
- Mitkä ovat toimintatavat?
- Mitä ECB-tila tekee yksinkertaisille lohkosalauksille
- Voidaanko PSRNG tehdä lohkosalauksilla?
- Voiko MAC:n rakentaa lohkosalauksilla?
Katso lisää kysymyksiä ja vastauksia kohdassa Lohkosalausten sovellukset

