Salausprosessoriarkkitehtuurit - Myllynen, Ohto (fi=Turun yliopisto|en=University of Turku|, 2016)
Salausprosessorin tehtävä on suorittaa yhtä tai useampaa salausalgoritmia. Salauksen laskeminen on tarkoin rajattu ongelma, jonka ympärille salausprosessori rakennetaan. Algoritmien väliset erot ovat merkittäviä, joten sopivan algoritmin valinta riippuu täysin sovelluksesta. Yleensä salausalgoritmeja voidaan käyttää myös eri moodeissa, jotka vaikuttavat salauksen luotettavuuteen ja nopeuteen. On olemassa muutamia standardoituja laajasti käytettyjä algoritmeja, jotka ovat luotettavaksi todettuja ja joista ei toistaiseksi ole löytynyt vakavia heikkouksia. Algoritmin luotettavuuden lisäksi myös suorituskyky ja skaalautuvuus ovat usein tärkeitä kriteerejä. Eri käyttökohteilla saattaa olla hyvin erilaiset vaatimukset. Suunnittelun alkuvaiheessa täytyy päättää muun muassa kuinka korkealle tietoturvan vaatimukset laitetaan, kuinka monta erilaista algoritmia halutaan tukea ja kuinka nopea järjestelmän täytyisi vähintään olla. Laitteiston joustavuus, suorituskyky ja tietoturvallisuus ovat toisiaan osittain poissulkevia ominaisuuksia. Joustavuus on erittäin suotava ominaisuus. Joustavan järjestelmän viat voidaan paremmin korjata jälkikäteen, sen ohjelmistoa on mahdollista muokata tarpeen vaatiessa ja useamman salausalgoritmin tukeminen on helpompaa. Salausprosessorin suorituskykyä mitataan ennen kaikkea salausprosessorin nopeudessa, mutta myös virrankulutus liittyy suorituskykyyn olennaisesti. Virrankulutus on erityisen tärkeä langattomissa ja pienissä laitteissa. Tietoturvan mittaaminen on haastavaa ja se tulisi ottaa huomioon jokaisessa vaiheessa suunnittelusta valmistukseen. Pienikin virhe saattaa pahimmillaan tehdä koko järjestelmästä tietoturvattoman. Salausprosessoriarkkitehtuuri ei ole terminä alan kirjallisuudessa yksikäsitteinen. Erilaisia salausprosessoriratkaisuja voidaan erotella ainakin niiden valmistustavan tai rakenteen perustella. Yleisimmät valmistustavat ovat räätälöity mikropiiri, uudelleenohjelmoitava porttimatriisi ja ohjelmistototeutus. Räätälöidyillä mikropiireillä saavutetaan paras suorituskyky, mutta ne ovat muita vaihtoehtoja huomattavasti vaikeampia valmistaa, kalliimpia ja joustamattomampia. Ohjelmistototeutus tarkoittaa tavallisella yleiskäyttöisellä prosessorilla ajettavaa salausohjelmistoa. Ohjelmistototeutuksen hyvänä puolena on sen suuri joustavuus, mutta se on myös tietoturvattomampi ja hitaampi kuin muut vaihtoehdot. Uudelleenohjelmoitavilla porttimatriiseilla saavutetaan samoja suorituskyvyn hyötyjä joita saadaan räätälöidyistä mikropiireistä ja ne ovat myös uudelleenohjelmoitavuutensa ansiosta joustavia.