Itse asiassa väitteellä, jonka mukaan epäsymmetrinen salaus on hitaampaa kuin symmetrinen, ei ole paljon järkeä. He eivät tee samaa. Mitä epäsymmetrinen salaus tekee, symmetrinen salaus ei voi tehdä; vähemmän intuitiivisesti tämä toimii myös päinvastoin: mitä symmetrinen salaus tekee, epäsymmetrinen salaus ei voi tehdä.
Asymmetrinen salaus sallii salausavaimen julkistamisen paljastamatta salauksen avainta; tämä on epäsymmetrisen salauksen ilmeinen etu symmetriseen salaukseen nähden, ja syy miksi se keksittiin ensinnäkin.
Toiseen suuntaan: epäsymmetrinen salaus käsittelee vain rajoitetun kokoisia viestejä ja aiheuttaa kiinteäkokoinen yleiskustannus. Esimerkiksi 2048-bittisellä RSA-avaimella ja noudattaen PKCS # 1 -standardia ( RSAES-PKCS1-v1_5
) syötesanomat eivät voi ylittää 245 tavua pitkä, ja silti tuottaa 256 tavun ulostulon. On epäselvää, kuinka pidempi viesti tulisi jakaa alaviesteihin, jotka käsitellään erikseen RSA: n kanssa; tämä näyttää pinnallisesti "ketjutus" -ongelmalta lohkosalaimilla, joille on määritelty toimintatilat, mikä sallii syötetietojen joukkokäsittelyn. Lohkosalaukset ovat kuitenkin helppoja: ne toimivat hienoilla bittisekvensseillä, ja salattuja lohkoja ei voida erottaa yhtenäisestä satunnaisuudesta. Sama ei päde esimerkiksi RSA: han, jossa salatut viestit ovat kokonaislukuja modulo iso kokonaisluku, joka ei ole 2: n teho, mikä aiheuttaa puolueellisuutta. Tätä RSA-salausten ketjutuksen ongelmaa ei ole tutkittu hyvin, eikä sillä näytä olevan ilmeisen turvallisia ratkaisuja.
Epäsymmetrisen salauksen yleiskustannukset ovat olennaisia sen epäsymmetrialle: koska salausavain on julkinen, kaikki voivat yrittää salata tietoja salausavaimella. Jos salaus on deterministinen, se sallii välittömän raakavoiman hyökkäyksen selväkieliseen tekstiin (hyökkääjä yrittää mahdollisia selväkielisiä arvoja, kunnes osuma on löydetty). Tämän estämiseksi salauksen PITÄÄ olla ei-deterministinen, mikä puolestaan merkitsee koon kasvua ( kyyhkysreikien vuoksi).
Raaka seuraus on, että epäsymmetrinen salaus ei ole hyvä joukkosalaus. Kun salattava data on suurempi kuin algoritmin alkeiskoko, emme todellakaan tiedä, miten se tehdään turvallisesti, mutta meillä on melko perustavanlaatuiset syyt uskoa, että se olisi kallista verkon kaistanleveyden kannalta.
Mikään yllä olevista ei koske laskennallisia kustannuksia. Laskennalliset kustannukset huomioon ottava mielekäs vertailu on tehtävä tilanteessa, jossa symmetrisen ja epäsymmetrisen salauksen välillä on todellakin valintaa. Pohjimmiltaan tämä olisi tilanne, jossa:
- Haluat epäsymmetrisen salauksen viestille m.
- Voit halutessasi käyttää ns. "hybridisalaus": epäsymmetrinen salaus satunnaisen avaimen K salaamiseksi, jota käytetään sitten tietojen käsittelyyn symmetrisen salausalgoritmin avulla.
- Viesti m voidaan käsitellä suoraan epäsymmetrisen salausalgoritmin avulla.
Kolmas ehto tarkoittaa, että m on tarpeeksi pieni toimiakseen yhtenä epäsymmetrisen salausalgoritmin kutsuna, koska muuten et tiedä miten sitä käsitellään. Siinä tapauksessa raaka epäsymmetrinen salaus välttämättä voittaa, koska valinta on "yhden asymmetrisen salauksen" ja "yhden asymmetrisen salauksen ja jonkin verran symmetrisen salauksen välillä". Toisaalta, jos m koko voi olla suurempi kuin mitä voidaan käsitellä yhdellä kutsulla salausalgoritmille, olet palannut ketjutusongelmaan ja puhuminen suorituskyvystä on parhaimmillaan ennenaikaista: määritä ensin, mitä haluat tehdä, katso, onko se turvallinen, ja sitten (vasta sitten) voimme puhua nopeudesta.
Vertailun tekemiseksi: voit kysyä, mikä ajoneuvo on nopeammin, tämän välillä:
ja tämä:
Jos luulet vastauksen olevan selvä, aja ajo Ferrarillasi järvelle ...