Android O中對TEE加解密演算法的新要求
阿新 • • 發佈:2022-04-28
我們都知道,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 個位元組。