Android O中对TEE加解密算法的新要求

时间:2022-04-28
本文章向大家介绍Android O中对TEE加解密算法的新要求,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

我们都知道,Android中keystore机制中的keymaster需要在TEE实现。Google关于Android后续版本中keymaster中的加解密算法要求如下:

  • RSA
    • 无填充
    • RSAES-OAEP (PaddingMode::RSA_OAEP)
    • RSAES-PKCS1-v1_5 (PaddingMode::RSA_PKCS1_1_5_ENCRYPT)
    • SHA-256
    • RSASSA-PSS (PaddingMode::RSA_PSS)
    • RSASSA-PKCS1-v1_5 (PaddingMode::RSA_PKCS1_1_5_SIGN)
    • 支持 2048 位、3072 位和 4096 位密钥
    • 支持公开指数 F4 (2^16+1)
    • RSA 签名所需的填充模式:
    • RSA 签名所需的摘要模式:
    • RSA 加密/解密所需的填充模式:
  • ECDSA
    • 无摘要(已弃用,将于日后移除)
    • SHA-256
    • 支持 224 位、256 位、384 位和 521 位密钥,分别使用 NIST P-224、P-256、P-384 和 P-521 曲线
    • ECDSA 所需的摘要模式:
  • AES
    • 支持 128 位和 256 位密钥
    • CBC、CTR、ECB 和 GCM。GCM 实现不允许使用少于 96 位的标记,也不允许使用 96 位以外的随机数长度。
    • CBC 和 ECB 模式支持填充模式 PaddingMode::NONEPaddingMode::PKCS7。采用“无填充”时,如果输入的不是分块大小的倍数,CBC 或 ECB 模式的加密会失败。
  • HMAC SHA-256,其中任意密钥均不短于 32 个字节。