1. 程式人生 > 其它 >Android O中對TEE加解密演算法的新要求

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::NONE
      PaddingMode::PKCS7。採用“無填充”時,如果輸入的不是分塊大小的倍數,CBC 或 ECB 模式的加密會失敗。
  • HMAC SHA-256,其中任意金鑰均不短於 32 個位元組。