安全算法
安全算法包含ECIES(ECC P-256和PRESENT-128)、HMAC-SHA256、PKCS#1 V2.1 RSASSA-PSS。
应用场景 | 安全算法 | 密钥长度(bit) |
---|---|---|
系统配置区消息校验 |
HMAC-SHA256 |
256 |
固件加解密 |
ECIES(ECC P-256) |
私钥:256 公钥:256*2+(8) |
ECIES(PRESENT-128) |
128 |
|
数据加解密 |
PRESENT-128 |
128 |
数字签名 |
PKCS#1 V2.1 RSASSA-PSS |
私钥:2048 公钥:2048+32+(2048+32) |
ECIES算法
集成加密方案(Integrated Encryption Scheme,IES)是一种混合加密系统。椭圆曲线集成加密方案(Elliptic Curve Integrated Encryption Scheme,ECIES)是IES的一种变体,该方案通常是利用椭圆曲线密钥协商算法(ECDH)获取共享密钥,然后使用密钥派生函数(KDF)派生出单独的对称加密密钥和MAC密钥进行加解密和消息认证。
安全算法采用通过P-256椭圆曲线获取PRESENT-128密钥的方式构建ECIES混合加密系统,目的是解决密钥配送问题和提高加解密的速度。
椭圆曲线密码(ECC)算法
椭圆曲线密码学(Elliptic Curve Cryptography,ECC)是一种建立公开密钥加密的演算法,基于椭圆曲线数学。其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。ECC的主要优势是在某些情况下它比其他的方法使用更小的密钥提供相当的或更高等级的安全。
RSA/DSA | 512 |
768 |
1024 |
2048 |
21000 |
---|---|---|---|---|---|
ECC | 106 |
132 |
160 |
211 |
600 |
与RSA相比,ECC具有以下优势:
-
安全性能更高:160位ECC相当于1024位RSA、DSA的安全强度。
-
处理速度更快:在私钥的处理速度上,ECC远比RSA、DSA快。
-
带宽要求更低、所占存储空间更小:ECC的密钥大小和系统参数比RSA、DSA更小。
PRESENT-128算法
PRESENT-128是一个轻量级分组密码算法,采用SPN结构设计,分组长度为64 bits,密钥长度128 bits,一共迭代31轮。PRESENT-128密码算法与现有的轻量级分组密码算法TEA、MCRYPTON、HIGHT、SEA和CGEN相比,具有更简单的硬件实现和简洁的轮函数设计。
HMAC-SHA256算法
HMAC-SHA256算法,即基于SHA-256哈希函数构建的HMAC算法。根据HMAC算法和SHA-256算法的要求,HMAC-SHA256算法的明文分组长度为512 bits,可通过任意长度密钥(最小推荐长度为256 bits),计算出长度为256 bits的消息认证码。
RSASSA-PSS算法
RSA数字签名算法(RSASSA)的本质,仍然是RSA加密/解密算法。PSS(Probabilistic Signature Scheme)是私钥签名流程的一种填充模式。RSASSA-PSS算法本质就是在RSA算法的基础上叠加上一种填充算法。
-
填充性质:基于PKCS#1 V1.5签名算法是确定性签名算法,即对于同样的消息和私钥,输出是固定的;PKCS#1 PSS签名算法是概率签名算法,即使对于同样的消息和私钥,每次签名输出完全不一致(因为内部引入了随机数),但均可以通过对应公钥的验签。
-
安全性:对于PKCS#1 V1.5,公开指数过短(如e=3)会导致密文操纵攻击(即密文变换后仍符合填充规范),因此对于PKCS1#V1.5填充方案,公开指数e取值一般为65537;而采用PKCS#1 PSS算法即使公开指数e=3仍然安全。