GP TEE规范规定了TEE所需支持的加解密算法标准,一张图表示如下(点击看大图)
密码学博大精深,而且在不断发展研究我们今天只是简要介绍一下,后期会有针对性的详细介绍!
从上图来看,首先普及几个基本概念:
分组密码(block cipher)
简单说,就是先把文件分块,按数据块来进行加解密。
DES,Data Encryption Algorithm,一种加密算法。
3DES(Triple DES)它以DES为基本模块,通过组合分组方法设计出分组加密算法,更为安全。
AES Advanced Encryption Standard 来替代原先的DES,已经被多方分析且广为全世界所使用,成为对称密钥加密中最流行的算法之一。AES就是对16byte(128bit)数据进行加密的过程,可以使用128、192 和 256 位密钥。
操作模式
也就是加解密的方式。工作模式描述了加密每一数据块的过程。
也就是说既要解决加密的需求,又要解决认证的需求,解决完全性和完整性。工作模式有三种:
1、先加密后对密文签名(encrypt-then-mac)。
2、先对明文签名,然后对明文和签名进行加密(mac-then-encrypt)。
3、先对明文签名,然后对明文加密,最后将签名附在密文之后(mac-and-encrypt)
CCM 首先使用CBC-MAC模式来认证传输帧,然后使用CTR模式来加密帧.
GCM ( Galois/Counter Mode) 指的是该对称加密采用Counter模式,并带有GMAC消息认证码。
Hashing Function(哈希函数)
一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。hash是找到一种数据内容和数据存放地址之间的映射关系。
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的摘要算法之一。
SHA (Secure Hash Algorithm,译作安全散列算法) 是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数。其中规定了SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512这几种单向散列算法。SHA-1,SHA-224和SHA-256适用于长度不超过2^64二进制位的消息。SHA-384和SHA-512适用于长度不超过2^128二进制位的消息。
非对称算法
RSA,前面文章介绍过,请参考:
DSA Digital Signature Algorithm. based on discrete logarithms computation.DSA 用于签名,而 RSA 可用于签名和加密。
EC-DSA是ECC与DSA的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC。
PKCS#1 RSA密码学规范,版本2.1
标准的椭圆曲线 ECC算法,包含ECC密钥产生、ECDSA签名、ECKA-EG、ECKA-DH协商,支持的曲线如:
NIST P-256,brainpoolP256r1,FRP256V1等。