常见加密区别
0-前言
之前认为sm2和RSA的公钥密码体系、sm4和aes的对称分组密码算法、sm3和SHA-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 n 和 m=c^d mod n(模幂运算) |