常见加密区别

0-前言

​ 之前认为sm2RSA公钥密码体系sm4aes对称分组密码算法sm3SHA-256密码哈希函数这些差不多,后面发现这些在表现效果上虽然差不多,但一些底层原理不一样可能会影响到一部分的应用形式;

​ 例如:sm2基于椭圆曲线离散对数,虽然也是对应两个数,但结果是点与线的对应关系,底层与RSA区别在于,RSA是两个数对应的值;导致的应用效果差别是:RSA密钥长,所以只能加密短数字(密钥),sm2密钥短,能直接加密请求体

1-公钥密码体系

维度 RSA SM2
数学基础 大整数分解 椭圆曲线离散对数
密钥长度 很长(通常 2048 位或 3072 位) 很短(通常 256 位)
性能 慢(尤其私钥操作) 快(尤其私钥操作)
证书格式 传统X.509 证书多用 RSA 国密证书专用 OID 标识
加密能力 只能加密短数据 混合加密,可加密任意长数据
标准方程 y^2 = x^3 + ax + b \ mod p (无穷远点 O) c=m^e mod nm=c^d mod n(模幂运算)

2-对称分组密码算法

3-密码哈希函数