Salausavain onparametri, tiedonpalanen, joka määrittää salausalgoritmin toiminnan. Salausalgoritmin salausavain määrittää selkotekstin muuntamisen salakirjoitukseksi, ja salauksenpurkualgoritmin avain määrittää salakirjoituksen muuntamisen selkotekstiksi. Salausavaimilla määritetään myös muiden salausalgoritmien muunnoksia, kutensähköisten allekirjoitusten kaavoja ja viestienvarmenteita.[1]
Turvajärjestelmiä suunnitellessa on viisasta olettaa, että salausalgoritmien yksityiskohdat ovat jo hyökkääjien saatavilla. Tämä tunnetaan Kerckhoffin periaatteena: ”vain salausavaimen salassapito tarjoaa turvallisuutta”, tai,Shannonin uudelleenmuotoilemana ”vihollinen tuntee järjestelmän”. Historia on todistanut, että laajasti käytettyjen salausalgoritmien yksityiskohdat on hankala pitää salassa, mutta avain on usein helpompi suojata (se on pieni tiedonpalanen) kuin salausalgoritmi, ja helpompi vaihtaa tietomurron sattuessa.Salausjärjestelmän turvallisuus perustuukin yleensä salausavainten salassapitoon.[2]
Käytännöllisen salauksen suurimpia ongelmia on yrittää pitää salausavaimet salassa. Hyökkääjä, jolla on hallussaan salausavain (esimerkiksi varkauden,kiristyksen,dyykkauksen, hyökkäyksen,kidutuksen taikäyttäjän manipuloinnin seurauksena) voi palauttaa salatusta tiedosta alkuperäisen viestin ja allekirjoittaa sen.
Salausavaimet luodaan käytettäväksi tiettyjen algoritmien, salausjärjestelmän, kanssa. Salausalgoritmejä, joissa käytetään samaa avainta sekä salaamiseen että salauksen purkamiseen, kutsutaansymmetrisiksi salausalgoritmeiksi. Uudempijulkisen avaimen salauksen algoritmien luokka keksittiin 1970-luvulla. Näissä epäsymmetrisissä salausalgoritmeissa käytetään salausavainparia: julkista ja yksityistä avainta. Julkisia salausavaimia käytetään salaukseen tai allekirjoituksentodentamiseen ja yksityisiä salauksen purkuun ja allekirjoittamiseen. Salaus on suunniteltu siten, että yksityisen avaimen löytäminen on äärimmäisen hankalaa, vaikka sitä vastaava julkinen avain olisi tiedossa. Koska järjestelmä sisältää pitkäkestoisia laskutoimituksia, avainparia käytetään usein vain vaihtamaan lennossa oleva symmetrinen salausavain, jota käytetään ainoastaan nykyiseenistuntoon. EsimerkiksiRSA on yleisesti käytetty julkisen avaimen salausjärjestelmä.
Osa salauksen tuottamasta turvallisuudesta liittyy luottamukseen siitä, kuka allekirjoitti annetun asiakirjan, ja kuka vastaanotti sen yhteyden toisessa päässä. Olettaen, että salausavaimia ei ole murrettu, tämä tarkoittaa asiaankuuluvan julkisen salausavaimen omistajan määrittämistä. Jotta avaimen omistajan kertominen olisi mahdollista, julkisiin avaimiin lisätään usein määritteitä kuten nimiä, osoitteita tai muita vastaavia. Julkisen salausavaimen pakattu kokoelma määritteineen voi olla yhden tai useamman tukijan sähköisesti allekirjoittama.PKI-mallissa tuloksena olevaa kohdetta kutsutaan varmenteeksi ja se on varmentajan allekirjoittama.PGP-mallissa sitä kutsutaan avaimeksi, ja se on useiden henkilöiden allekirjoittama. He varmistavat henkilökohtaisesti, että määrite ja kohde täsmäävät keskenään.[3]
Murretut salausavaimet voidaan kumota sekä PKI- että PGP-mallissa. Kumoamisen sivuvaikutuksena avaimen määritteiden ja kohteen suhde katkeaa, mutta kohde saattaa olla yhä kelvollinen. Allekirjoittajat käyttävät usein eri salausavaimia päivittäisiin tehtäviin voidakseen toipua tällaisesta häiriöstä: kirjautuminen välivarmenteella (PKI:ssa) tai aliavaimella (PGP:ssä) helpottaa pääasiallisen yksityisen salausavaimen pitämistä verkkoyhteydettömässä tallessa.
Salausavaimen poistamista, jonka tarkoituksena on estää tiedostoihin pääsy, kutsutaan salausavaimen silppuamiseksi.
OTP-salausjärjestelmässä salausavaimen tulee olla vähintään viestin pituinen. Salakirjoitusalgoritmia käyttävissä salausjärjestelmissä viestit voivat olla paljon avainta pidempiä. Salausavaimen on oltava kuitenkin niin pitkä, ettei hyökkääjä voi kokeilla kaikkia mahdollisia yhdistelmiä.
Salausavaimen 80 bitin pituutta pidetään vahvan salauksen vähimmäisvaateena käytettäessä symmetristä salausalgoritmia. 128-bittisiä avaimia käytetään yleisesti, ja niitä pidetään todella vahvoina.
Julkisen avaimen salauksessa käytettävillä salausavaimilla on tietty matemaattinen rakenne. Esimerkiksi RSA-järjestelmässä käytettävät avaimet ovat kahdenalkuluvun tuloja. Tämän vuoksi julkisen avaimen salauksessa tarvitaan pidempiä avaimia kuin symmetrisissä salausjärjestelmissä, jotta tietoturvan taso olisi sama. Faktorointiin ja kokonaislukujen diskreetteihinlogaritmeihin perustuvien järjestelmien salausavainten suositeltu pituus on 3072 bittiä, jolloin niiden tietoturva vastaa 128 bittistä symmetristä salausavainta.Elliptisten käyrien salausmenetelmillä voidaan saavuttaa yhtä hyvä tietoturva pienempikokoisilla avaimilla, mutta nämä algoritmit ovat olleet olemassa vasta suhteellisen vähän aikaa eivätkä nykyiset arviot niiden avainten etsimisen vaikeudesta välttämättä päde. Esimerkiksi 109-bittistä salausavainta ja elliptisten käyrien salausta käyttänyt algoritmi murrettiin raa'alla voimalla jo vuonna 2004.[4] Nykyinen suositus on käyttää kaksi kertaa niin pitkää elliptisten käyrien salausavainta kuin symmetristä avainta. Satunnaista OTP-salausta lukuun ottamatta näiden järjestelmien tietoturvaa ei oletodistettu matemaattisesti (vuonna 2018), joten teoreettinen läpimurto voisi tehdä mitä tahansa avoimelle salaukselle. Tämä on toinen syy erehtymiselle pidempiä salausavaimia valitessa.
Jotta salausavainten arvaamista voidaan ehkäistä, avaimet on luotava aidostisatunnaisesti ja niidenhajeen (eli entropian) on oltava riittävä. Aidosti satunnaisten avainten turvallinen luominen on vaativa tehtävä, mikä on osoitettu monin tavoin eri salausjärjestelmissä.[5][6] Satunnaisuuden luomisesta on olemassaRFC-standardi (RFC 4086, "tietoturvan satunnaisuusvaateet"). Joissakin käyttöjärjestelmissä on työkaluja hajeen "keräämiseen" ennakoimattomien toimintojen, kuten kiintolevynpään liikkeiden ajoituksesta. Tavallisetnopat tarjoavat hyvän korkealaatuisen satunnaisuuden lähteen, jos salausavaimia on tarpeen tuottaa vain pienehkö määrä.
Useimmissa tietokoneen tietoturvatapauksissa ja useimmilla käyttäjillä salausavain ei tarkoita samaa kuinsalasana (tai salalause), vaikka salasanaa voikin käyttää avaimena. Salausavainten ja salasanojen suurin käytännön ero on se, että jälkimmäisten on tarkoitus olla ihmiskäyttäjien luomia, lukemia, muistamia ja kirjoittamia (tosin käyttäjä voi antaa nämä tehtävätsalasananhallintaohjelmalle). Salausavain on sen sijaan tarkoitettusalausohjelmiston käyttöön, joten sen ei tarvitse olla ihmiselle lukukelpoinen yms. Monet käyttäjät eivät ole itse asiassa edes tietoisia salausavainten olemassaolosta, koska niitä käyttävät heidän puolestaan ohjelmiston tietoturvasta vastaavat osat ja algoritmit.
Mikäli salasanaa käytetään salausavaimena, sitä ei käytetä tällöin yksinään hyvässä salausjärjestelmässä, koska salasanojen on tapana olla ihmisille lukukelpoisia eikä täten erityisen vahvoja. Hyvät salausjärjestelmät hyvittävät tämän heikkouden olemalla käyttämättä salasanoja avaimina varsinaisessa salauksessa, vaan sen sijaan salausavaimen derivointifunktiolle syötettävinä koodeina. Funktio käyttää salasanaa lähtöpisteenä, josta se luo varsinaisen turvallisen salausavaimen. Luonnissa voidaan käyttää erilaisia menetelmiä kuten suolaamista ja avaimen venyttämistä.[7]