Performanța nu este o proprietate generică nici a unei operațiuni criptografice, nici a unui tip de mediu de execuție. Este o proprietate a unei implementări specifice într-un mediu specific. Deci nu este general adevărat că „este nevoie de mai mult timp pentru a decripta același fișier cu RSA de 256 de biți în TEE decât în REE”. Cu toate acestea, există motive plauzibile pentru care acest lucru ar putea fi cazul.
(Background: un TEE (Trusted Execution Environment) este un mediu care este izolat de sistemul de operare principal (REE: Rich Execution Environment) printr-o combinație de mijloace hardware și software. Aceasta poate însemna rularea pe un procesor diferit sau pe același procesor într-o mașină virtuală diferită sau pe același procesor cu o tehnologie de izolare, cum ar fi SGX pe x86 sau TrustZone pe braț. De obicei, oamenii care tind să folosească termenii „TEE” și „REE” lucrează cu TrustZone sau SGX.)
Un TEE care rulează pe procesorul principal are toată puterea de calcul a procesorului, așa că dacă rulează exact același cod, va merge la fel de repede. Cu toate acestea, în practică, este probabil ca TEE să nu ruleze același cod ca REE.
SGX și TrustZone protejează TEE împotriva atacurilor directe, cum ar fi codul REE care încearcă să citească memoria utilizată de TEE. Dar nu protejează împotriva atacurilor pe canale laterale. De exemplu, memoria cache este partajată între TEE și REE; REE nu poate citi o linie de cache TEE, dar poate observa când TEE-ul înlocuiește o linie de cache, astfel încât să poată efectua atacuri de sincronizare a memoriei cache. În consecință, software-ul care rulează în TEE trebuie să se protejeze împotriva atacurilor de sincronizare a memoriei cache.TEE este deosebit de vulnerabil împotriva atacurilor de sincronizare, deoarece sistemul de operare REE are acces la cronometre cu granulație fină, mai mult decât un proces REE neprivilegiat care atacă un alt proces. Apărarea împotriva scurgerilor de canal lateral costă performanța.
Pe lângă contramăsurile în implementarea criptografiei TEE, sistemul de operare TEE poate avea contramăsuri, cum ar fi evacuarea mai frecventă a cache-ului, care îmbunătățesc și securitatea în detrimentul performanței.
De asemenea, este posibil ca implementarea criptografiei TEE să fie pur și simplu mai puțin bine optimizată decât implementarea REE. REE rulează probabil OpenSSL sau un furk de OpenSSL, iar OpenSSL este locul în care cel mai mare efort de optimizare merge în afara codului de asamblare optimizat manual specific procesorului și algoritmului. Mai puțină forță de muncă tinde să intre în optimizarea criptografică într-un TEE.
Dacă măsurați timpul dintr-o aplicație REE, există un cost pentru trimiterea operațiunii către TEE. Acest cost este de obicei neglijabil pentru criptografia asimetrică, în special pentru decriptarea RSA, care necesită o cantitate mare de calcul. Pentru criptografia simetrică, poate fi substanțială.
Nu spui la ce tip de TEE te uiți. UN TEE poate sa să fie implementat ca un cip separat, care este de obicei unul cu performanță scăzută, deoarece are un scop special și, prin urmare, trebuie să fie ieftin. De exemplu, un TPM discret este mult mai lent decât cel mai ieftin procesor de aplicație la care poate fi conectat și chiar acceleratoarele dedicate pentru criptografia asimetrică nu compensează pe deplin.
P.S. RSA pe 256 de biți a fost ridicol de slab chiar și în anii 1980. 2048 de biți (256 de octeți) este o dimensiune tipică a cheii RSA în zilele noastre.