Mine sisu juurde

Riistvaraline krüpteering

Allikas: Vikipeedia

Riistvaraline krüpteering (inglise hardware-based encryption) on riistvaraline seade ja/või moodul, mis on ette nähtud tarkvaralise krüpteeringu lihtsustamiseks või täielikuks asendamiseks.

Üldjuhul tehakse krüpteering protsessori käsustikus. Näiteks täiustatud krüpteerimisstandardit (moodne šiffer) on võimalik rakendada üldlevinud x86[1] ning ka ARM-arhitektuuris[2]. Vähem levinud riistvaraline krüptograafiamoodul on eraldiseisev protsessor keskprotsessorist, mis on disainitud kiiresti ja turvaliselt tegema krüptograafilisi arvutusi. Näiteks IBM 4758 ja tema edasiarendused IBM 4764 ning IBM 4768[3].

Riistvaraliselt optimeeritud turvamoodulid võivad olla oma spetsiifilistes arvutustes kiiremad kui üldlevinud protsessorite käsustikud ning neid on teoreetiliselt keerulisem rünnata kui tarkvaraliselt rakendatud krüpteeringut.

Kasutuskohti

[muuda | muuda lähteteksti]

Käsustikes

[muuda | muuda lähteteksti]
 Pikemalt artiklis täiustatud krüpteerimisstandard

CISC arhitektuurina leidub x86 arhitektuuris riistvaralisel tasemel keerukaid algoritme, sealhulgas ka krüptograafilisi. Lisaks täiustatud krüpteerimisstandardi funktsioonidele toetab x86 arhitektuur ka SHA räsifunktsioone, mida kasutatakse näiteks paroolide turvalisel talletamisel.

AES-NI (inglise keeles Advanced Encryption Standard New Instructions) on x86 käsustik Inteli ja AMD keskseadmetele. Tehnoloogia sai alguse Inteli eestvedamisel 2008. aasta märtsis.[4]

Masinkäsk Kirjeldus[5]
AESENC Tee üks AES krüpteerimisetapp
AESENCLAST Tee viimane AES krüpteerimisetapp
AESDEC Tee üks AES dekrüpteerimisetapp
AESDECLAST Tee viimane AES dekrüpteerimisetapp
AESKEYGENASSIST Abista AES vooruvõtme lisamisel
AESIMC Abista AES veergude segamisel
PCLMULQDQ ülekandeta korrutamine (CLMUL)[6]

ARM-protsessorid on arhitektuuriliselt RISC-protsessorid seega on nende käsustikku kärbitud. Sellegipoolest võib ARM arhitektuur omada laiendusi, mis toetavad krüptograafilisi arvutusi.[2][7]

ARMv8-A käsustikus

Valikuliselt võivad ARM Cortex-A30/50/70 keskprotsessorid toetada AES käsustikke. Selle keskseadme generatsiooni kuulub näiteks alates mudel B versioon 1.2 Raspberry Pi väikeraalid, aga ka paljud Android operatsioonisüsteemi kasutavad nutitelefonid.

Masinkäsk Kirjeldus[8]
AESE Tee üks AES krüpteerimisetapp
AESD Tee üks AES dekrüpteerimisetapp
AESIMC AES veergude pöördsegamine
AESMC AES veergude segamine
VMULL Pikk vektorkorrutis[9]

Eraldi turvamoodulina

[muuda | muuda lähteteksti]
 Pikemalt artiklis riistvaraline turvamoodul

Olenevalt nõudlusest võivad spetsiifiliste infoturbealaste funktsioonidega raalid vajada eraldiseisvat riistvaralist turvamoodulit, et vabastada keskprotsessorit, mis ei ole optimeeritud puhtalt täiustatud krüpteerimisstandardite etappide täitmiseks.

Viies krüptograafiline arvutusvajadus riistvaralisele tasemele vabastab see protsessorit tegema oma tavapärast tööd, kuna osa protsessorist on disainitud tegelemaks krüpteerimisalaste arvutustega. Seega teeb see protsessorid kasutajale kiiremaks.[14] Protsessorid, mis toetavad toru, suudavad sageli krüpteerimisoperatsioone teha samaaegselt teiste käskude täitmisega. On olemas ka tehnoloogiaid, mis suudavad kaitsta andmeid ka operatsioonisüsteemi enda eest. See tähendab, et isegi juhul kui operatsioonisüsteem on kompromiteeritud, siis andmed võivad olla jätkuvalt kaitstud. Kõnealune tehnoloogia on tuntud nimega Intel SGX (inglise keeles Software Guard Extensions)[15]

Kui näiteks tarkvaralisel tasemel leitakse krüptograafias turbealane viga, siis üldjuhul on võimalik see paigata läbi tarkvarauuenduse. Kui aga peaks juhtuma, et leitakse viga riistvaralisel tasemel, siis selle parandamine on sageli väga vaevaline, kuna probleem on juba füüsiline mitte loogiline. Sellise vea korral on oht, et ainuke abinõu on kas riistvara väljavahetamine või terve kõnealuse riistvaralise funktsiooni väljalülitamine operatsioonisüsteemi tasemel.

  1. Intel® 64 and IA-32 Architectures Software Developer’s Manual (PDF). Intel. Detsember 2017. Lk 303–309, 410.
  2. 2,0 2,1 ARM® Cortex®-A57 MPCore Processor Cryptography Extension (PDF). ARM Holdings. 17. detsember 2017. Originaali arhiivikoopia (PDF) seisuga 13.12.2016.
  3. "4764 Cryptographic Coprocessor". IBM. Vaadatud 29.04.2019.{{cite web}}: CS1 hooldus: url-olek (link)
  4. "Intel Software Network". Intel. Originaali arhiivikoopia seisuga 7.04.2008. Vaadatud 5.04.2008.
  5. Shay Gueron (2010). "Intel Advanced Encryption Standard (AES) Instruction Set White Paper" (PDF). Intel. Vaadatud 20.09.2012.
  6. "Carry-Less Multiplication". Intel.
  7. "Cryptographic Hardware Accelerators". OpenWRT.org. 17. mai 2016. Originaali arhiivikoopia seisuga 21.01.2018. Vaadatud 25.01.2018.
  8. "ARM Cortex-A57 MPCore Processor Cryptography Extension Technical Reference Manual". ARM Holdings. 2013. Vaadatud 28.04.2019.
  9. "ARM® Compiler armasm User Guide". ARM Holdings. 2010. Vaadatud 28.04.2019.
  10. 10,0 10,1 "IBM 4765 Cryptographic Coprocessor Security Module" (PDF). National Institute of Standards and Technology. 10. detsember 2012. Originaali arhiivikoopia (PDF) seisuga 25.01.2018. Vaadatud 20.01.2018.
  11. "IBM 4758 Models 2 and 23 PCI Cryptographic Coprocessor" (PDF). IBM. Mai 2004. Vaadatud 24.01.2018.[alaline kõdulink]
  12. "4764 Cryptographic Coprocessor". IBM. Originaali arhiivikoopia seisuga 21.01.2018. Vaadatud 20.01.2018.
  13. https://www.ibm.com/security/cryptocards/pciecc3/overview%7Ctitle=IBM PCIe Crypto Card V3 (PCIeCC3)|publisher=IBM|date=20. märts 2018|accessdate=29.04.2019}}
  14. P. Schmid and A. Roos (2010). "AES-NI Performance Analyzed". Tom's Hardware. Vaadatud 20.01.2018.
  15. "Intel SGX for Dummies (Intel SGX Design Objectives)". intel.com. 26. september 2013. Originaali arhiivikoopia seisuga 29.04.2014.