RSA/DSA/ECDSA数字签名
RSA
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。
算法分类信息:
算法 密钥长度 默认长度 签名长度 实现的方 MD2withRSA 512-65536
(64的整数倍)1024 同密钥 JDK MD5withRSA 同上 1024 同密钥 JDK SHA1withRSA … 1024 同密钥 JDK SHA224withRSA … 2048 同密钥 BC SHA256withRSA … 2048 同密钥 BC SHA384withRSA … 2048 同密钥 BC SHA512withRSA … 2048 同密钥 BC RIPEMD128withRSA 2048 同密钥 BC RIPEMD160withRSA 同上 2048 同密钥 BC DSA:
DSA是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSfS(DigitalSignature Standard)。
DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。DSA的一个重要特点是两个素数公开,这样,当使用别人的p和q时,即使不知道私钥,你也能确认它们是否是随机产生的,还是作了手脚。RSA却做不到。
算法分类信息:
算法 密钥长度 默认长度 签名长度 实现的方 SHA1withDSA 512-65536
(64的整数倍)1024 同密钥 JDK SHA224withDSA 同上 1024 同密钥 BC SHA256withDSA … 1024 同密钥 BC SHA384withDSA … 1024 同密钥 BC SHA512withDSA … 1024 同密钥 BC
ECC算法(Elliptic curve cryptography,椭圆曲线密码学)
ECDSA签名
基于ECC与DSA签名算法分类信息,ECDSA(elliptic curve digital signature algorithm) 椭圆曲线数字签名算法:速度快,强度高,签名短
算法 | 密钥长度 | 默认长度 | 签名长度 | 实现的方 |
NONEwithECDSA | 112-571 | 256 | 128 | JDK/BC |
RIPEMD160withECDSA | 同上 | 256 | 160 | BC |
SHA1withECDSA | ... | 256 | 160 | JDK/BC |
SHA224withECDSA | ... | 256 | 224 | BC |
SHA256withECDSA | ... | 256 | 256 | JDK/BC |
SHA384withECDSA | ... | 256 | 384 | JDK/BC |
SHA512withECDSA | ... | 256 | 512 | JDK/BC |