Diffuusio ja konfuusio
Yleinen informaatioteoreettinen tavoite salausalgoritmeissa on "diffusion and confusion". Näillä tarkoitetaan keinoja, joilla
selvätekstin (ilmiteksti, 'cleartext') redundanssia (toisteisuutta) kätketään, kun se algoritmissa muunnetaan
salatekstiksi eli
kryptotekstiksi. Konfuusio hämärtää selvä- ja salatekstin välistä yhteyttä suorittamalla korvauksia (yksinkertaisimmillaan). Diffuusiossa puolestaan hajotetaan selvätekstin jakaumia koko kryptotekstiin permutaatioiden avulla (taaskin yksinkertaisimmillaan).
Edellä mainitut kaksi periaatetta tulevat selvimmin esille
lohkosalauksessa, jossa algoritmia sovelletaan yhteen viestilohkoon eli kiinteään määrään viestibittejä kerrallaan. Kyseessä on siis funktio, jolla on parametrina avain ja joka muuntaa jokaisen n-bittisen vektorin joksikin toiseksi samanmittaiseksi. Pidentäminen olisi tilan haaskausta ja lyhentävää funktiota taas ei voisi kääntää. Kompressio ennen kryptausta on sitten eri juttu -- ja varsin suositeltava, koska se vähentää selvätekstin redundanssia. Tyypillinen n eli lohkon koko on 64 tai 128.
Oheisessa kuvassa sovelletaan yksinkertaista lohkoalgoritmia viiden tavun mittaiseen selkotekstiin. Avaimena tässä on (tai sellaiseksi voidaan tulkita) lukunelikko (25413, 1, 3, 2). Ensimmäinen ilmaisee permutaation (yhden 120 mahdollisesta), kaksi seuraavaa siirtojen pituudet ja neljäs kierrosten lukumäärän.
Kuva hyvin yksinkertaisesta salausalgoritmista
Lohkoalgoritmilla salattaessa ajetaan siis aina yksi tekstilohko kerrallaan koko algoritmin läpi. Algoritmin käyttötavasta (
moodista?) riippuen tekstinä voi tosin olla muutakin kuin pelkkää selvätekstiä tai ei lainkaan sitä ja kryptotekstiä voi kerralla muodostua vähemmän kuin lohkon verran.
--
JukkaKoskinen?