You are here: TUTWiki>Tietoturva>Sisällysluettelo?>JohdantoSymmetriseenSalaukseen

Johdanto symmetriseen salaukseen

Hyvin yksinkertainen symmetrisen avaimen kryptosysteemi saadaan aikaan soveltamalla XOR-operaatiota. Bittien välistä operaatiota XOR (eli eXclusive OR, 'poissulkeva tai') merkitään yleensä rengastetulla plussalla, mutta kirjoitetaan tässä pelkkä +. Tällöin 0+0 = 1+1 = 0 ja 0+1 = 1+0 = 1.

Esimerkki 1. Viesti eli selväteksti (tai ilmiteksti, 'plaintext') p = jono bittejä = 1010110 ..., avain k = 0110101.... (keksi itse lisää), kryptoteksti c lasketaan biteittäin XOR-summana: c = p XOR k = 1100011 .... . Kryptotekstistä c saadaan helposti takaisin selväteksti p XOR-summaamalla siihen biteittäin avain k:

c+k = (p+k)+ k = p + (k + k) = p + 0-jono = p.

Jos edellä avain k oli tosiaan kokonaan keksitty esim. lanttia heittämällä, niin kyseessä oli "one-time pad" eli kerta-avainjärjestelmä. Se (ja muunnelmat) on ainoa täysin turvallinen salausalgoritmi. Siinä avain on siis satunnainen, sen pituus on sama kuin viestin ja kryptoteksti = viesti XOR avain. Oleellista on että kukin avainbitti tulee käyttöön vain kerran.

Kerta-avainjärjestelmiin viitataan joskus nimellä 'Vernam-cipher', sillä Gilbert Vernam oli toinen sen keksijöistä vuonna 1917. Silloinen järjestelmä muunsi tekstiä kirjain kerrallaan laskemalla avaimen ja selkotekstin kirjaimia (järjestyslukuja) yhteen modulo 26.

Täydellinen turvallisuus tarkoittaa tässä vain luottamuksellisuutta. Eheyttä ei saavuteta lainkaan (eikä pelkällä salauksella yleensäkään kovin hyvin). Nämä asiat ovat tekemisissä keskenään. Turvallisuutta on se, että salatekstin murtaja ei voi periaatteessakaan tietää selkotekstistä mitään (paitsi pituuden), jos ei tiedä avainta. Samaa salatekstiä vastaa nimittäin sopivalla avaimella mikä tahansa selkoteksti. Vastaavasti, oikea vastaanottaja ei pysty havaitsemaan salatekstiin tehtyjä muutoksia. Jos viestin kaappaaja sattui taannoin arvaamaan, että vakoilijan viesti aina päättyi sanoihin "Heil Hitler!", niin sopiva muutos salatekstiin kirjainten "eil" kohdalla muutti tervehdyksen muotoon "Hang Hitler!" ja saattoi aiheuttaa ongelmia lähettäjälleen.

Esimerkki 2. Pitkää avainta on hankala käsitellä. Samaa lyhyttä avainta, esim. k1 = 0110101 voisi tietysti toistaa, jolloin k olisi 0110101 0110101 0110101 0110101 ... . Jos viestin ajatellaan koostuvan samanmittaisista lohkoista p = p1p2p3..., muodostuu kryptotekstistä c=c1c2c3... sellainen, että c1 XOR c2 = p1 XOR p2 jne. Avaimen vaikutus eliminoituu siis täysin pareittain XOR-summatuista kryptolohkoista. Kryptoanalyytikolta ei kulu kauaakaan selvittää selvätekstiä p tilastollisilla analyyseilla, sillä varsinkin luonnollisen kielisissä viesteissä on runsaasti redundanssia - eli sitä samaa "ylimäärätietoa", jonka ansiosta luennoitsijan taululle kirjoittamasta tekstistä saa yleensä selvää, vaikka mistään yksittäin nähdystä kirjaimesta ei ehkä saisikaan, jos muut on pyyhitty pois sen ympäriltä. (vrt. myös "Cmadbrigde" ) Tilastollinen analyysi on yleisemminkin kryptoanalyysin työvälineitä.

Esimerkki 3. Jotain muuntelua voisi järjestää avaimelle k1 = 0110101, jotta äskeiseltä ongelmalta vältyttäisiin. Muodostetaanpa "pseudoavain" k = k1k2k3... seuraavasti: ki+1 = luvun a * ki seitsemän alinta bittiä, missä a on jokin k1:stä riippuva luku, vaikkapa a = k1. Saadaan k = 53, (2809 ==>) 121, (6413 ==>) 13, (699 ==>) 49, ... eli binäärijonona k = 0110101 1111001 0001101 0110001 ... . Seitsemän alimman bitin ottamisen voisi ilmaista hienommin jakojäännöksenä modulo 128 (=27). Vastaavaa menettelyä käytetään näennäissatunnaislukujen muodostamisessa, joskaan jakajana ei silloin ole kakkosen potenssi.

Äskeinen avainta "venyttävä" salausperiaate on esimerkki vuokryptauksesta (stream cipher). Käytännössä venytysperiaatteen pitää olla mutkikkaampi (avainvuo, "key stream" vaikeammin arvattavissa) ja lähtökohtana olevan avaimen tietenkin paljon pitempi (esim. 128 bittiä).

Symmetrinen salaus hyvällä algoritmilla antaa yksinkertaisella tavalla tehokkaan suojan tiedon luottamuksellisuudelle ja osittain eheydelle. Paljon konstikkaampaa onkin sitten se, mitä pitää tehdä ennen kuin symmetristä salausta voidaan käyttää. On nimittäin sovittava yhteisestä avaimesta ja sitähän ei voida tehdä ainakaan symmetrisen salauksen avulla. (No, hyvä on, jos käytössä on entinen symmetrinen avain, niin mistä se sitten saatiin, tai sen edeltäjä jne ... ja jos tällaisessa tapauksessa jokin aiempi paljastuu, niin miten on turvallisuuden laita?).

-- JukkaKoskinen?

SivuTiedotLaajennettu edit

Vaativuus Perus
Valmius Valmis
Tyyppi Ydin
Luokitus Krypto
Mitä Useita
Miltä Useita
Missä Järjestelmä
Kuka Titu-ammattilainen
Milloin Ennakolta
Miksi Hyvä tapa
Print version |  PDF  | History: r2 < r1 | 
Topic revision: r2 - 22 Apr 2010 - 12:02:02 - MaijuLehtonen?
 

TUTWiki

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TUTWiki? Send feedback