Производительность не является общим свойством ни криптографической операции, ни типа среды выполнения. Это свойство конкретной реализации в конкретной среде. Таким образом, в целом неверно утверждение, что «для расшифровки одного и того же файла с 256-битным RSA в TEE требуется больше времени, чем в REE». Однако есть правдоподобные причины, по которым это могло произойти.
(Предыстория: TEE (Trusted Execution Environment) — это среда, изолированная от основной операционной системы (REE: Rich Execution Environment) комбинацией аппаратных и программных средств. Это может означать работу на другом процессоре или на том же процессор в другой виртуальной машине или на том же процессоре с какой-либо технологией изоляции, такой как SGX на x86 или TrustZone на руке.Обычно люди, которые склонны использовать термины «TEE» и «REE», работают с TrustZone или SGX.)
TEE, работающий на основном процессоре, обладает всей вычислительной мощностью процессора, поэтому, если он выполняет точно такой же код, он будет работать так же быстро. Однако на практике вполне вероятно, что TEE не выполняет тот же код, что и REE.
SGX и TrustZone защищают TEE от прямых атак, таких как попытка кода REE прочитать память, используемую TEE. Но это не защищает от атак по сторонним каналам. Например, кэш совместно используется TEE и REE; REE не может прочитать строку кэша TEE, но он может наблюдать, когда TEE смещает строку кэша, поэтому он может проводить атаки по времени кэширования. Как следствие, программное обеспечение, работающее в TEE, должно защищать себя от атак синхронизации кэша.TEE особенно уязвим против временных атак, потому что операционная система REE имеет доступ к таймерам с высокой степенью детализации, в большей степени, чем непривилегированный процесс REE, атакующий другой процесс. Защита от утечки побочного канала требует производительности.
В дополнение к контрмерам в реализации криптографии TEE, операционная система TEE может иметь контрмеры, такие как более частое вытеснение кэша, которые также повышают безопасность в ущерб производительности.
Также возможно, что реализация криптографии TEE просто хуже оптимизирована, чем реализация REE. REE, вероятно, использует OpenSSL или ответвление OpenSSL, а OpenSSL — это место, где большая часть усилий по оптимизации выходит за рамки оптимизированного вручную ассемблерного кода для конкретного процессора и алгоритма. На криптографическую оптимизацию в TEE уходит меньше рабочей силы.
Если вы измеряете время из приложения REE, отправка операции в TEE сопряжена с затратами. Однако эта стоимость обычно незначительна для асимметричной криптографии, особенно для расшифровки RSA, которая требует большого объема вычислений. Для симметричной криптографии это может быть существенно.
Вы не говорите, какой тип TEE вы смотрите. ТРОЙНИК может быть реализован в виде отдельного чипа, который, как правило, менее производительный, поскольку он специального назначения и, следовательно, должен быть дешевым. Например, дискретный TPM намного медленнее, чем даже самый дешевый процессор приложений, к которому его можно подключить, и даже специальные ускорители для асимметричной криптографии не полностью компенсируют это.
P.S. 256-битный RSA был смехотворно слабым даже в 1980-х. 2048 бит (256 байт) — типичный размер ключа RSA в наши дни.