RSA 可不一样,RSA 的长度是 2^2048,也就是有 309 位数字。
RSA 512 在 1999 年被破解
RSA 768 在 2009 年被破解,耗时几个月
RSA 1024 有望会在今年被破解
每增加一个 256 位,破解难度增加 1000 倍
如果采用 RSA 建议密钥长度在 2048 bits
这种破解也不是普通人能够搞的,都是两个大素数相乘后的数作因式分解
非对称加密算法比对称加密算法少很多,因为每一个非对称加密算法对应着一个数学难题
像 RSA 对应着大素数的因式分解困难
像 DH 对应着求离散对数的问题,a = k^n (mod p),已经 a, k 和 p 求 n 是极其困难的 ,特别是 p 是一个很大素数的时候
像 ECC 对应着求椭圆曲线离散对数的问题,能发现 ECC 的人都不是人脑的,感觉想都想不到的。
椭圆曲线离散对数比离散对数、因式分解 求解更复杂,所以 256 位密钥长度的 ECC 强度跟 RSA 3072 位相当的
椭圆曲线算法计算比RSA快很多
没人会用 RSA 去加密数据,如果用来加密那说明对非对称密码学的应用不熟悉
非对称密码算法一般用于数字签名、交换对称密钥用,密钥交换完成后数据加密使用对称加密算法来做
RSA 虽然说可以做加密,但一般不会这么用。因为 RSA 1024 的话,待加密的原文不能超过 117 个字节(1024 / 8 - 11)
RSA 加密是很慢的,比对称加密算法慢 100~500 倍
在 TLS 中,RSA 用于密钥交换、数字签名,TLS 握手成功后还是使用对称密钥来做的
TLS 网站握后的加密套件
TLS 是协议
ECDHE 是密钥交换算法(椭圆曲线密码交换算法)
RSA 是数字签名算法
AES_128_GCM 是用于数据传的对称加密算法、密钥长度和加密模式
SHA256 是消息摘要算法
SM1 和 SM4 是对称算法,SM1 只能用加密机实现
SM3 是消息摘要算法
SM2 是非对称加密算法,实际上就是 ECC
SM3 是消息摘要算法,跟 SHA 之类的类似