先说TEE OS中都支持哪些密码学算法?需要支持哪些密码学算法?
我们从GP规范的角度来看。在一般的tee中,都号称支持GP规范。GP规范里要求的强制支持的算法,一般都会实现。对于GP规范里可选的算法,并不是每一家TEE都能支持的。
强制要求的算法
可选支持的算法有
再来看TEE OS厂商都是如何实现呢? 密码学算法都可以怎样实现呢?
事实上密码学算法的实现多种多样话,可以是调用密码学算法库实现(这也是大多数厂商喜欢这么玩的),也可以自己写代码实现。自己写代码实现的方式又分为:
- 纯软件实现:即CPU使用ALU加加减减计算实现。
- 调用ARM NEON指令实现:矢量运算,算得比特更大写,效率更好些。但不管怎么说,还是CPU调用指令实现。
- 调用ARM CE指令实现:ARM CE指令,是arm cryptography extension中支持的,并不是所有arm core都支持的。ARM CE扩展指令简称硬件加速指令,虽然也还是CPU计算,但是他一条指令就能完成一个block数据的加密或解密,效率倍数提升。