- 私钥个人持有,公钥多人持有。
- 公钥加密,私钥解密;用于加密传输,防止信息被破解,但是不防止信息被篡改。因为其他公钥持有者可以使用公钥加密一份内容替换原来的。
- 私钥加密,公钥解密;用于签名和验签,防止信息被篡改,但不防止信息被破解。
- 实际使用中为了防止信息被破解和篡改,A给B发消息通常为A使用B的公钥加密信息,并使用A的私钥为信息签名。
RSA原理
RSA算法原理(一) - 阮一峰的网络日志 (ruanyifeng.com)
RSA格式说明:
RFC 2437: PKCS #1: RSA Cryptography Specifications Version 2.0 (rfc-editor.org)
公钥:
RSAPublicKey ::= SEQUENCE {
modulus INTEGER, -- n
publicExponent INTEGER -- e
}
私钥:
RSAPrivateKey ::= SEQUENCE {
version Version,
modulus INTEGER, -- n
publicExponent INTEGER, -- e
privateExponent INTEGER, -- d
prime1 INTEGER, -- p
prime2 INTEGER, -- q
exponent1 INTEGER, -- d mod (p-1)
exponent2 INTEGER, -- d mod (q-1)
coefficient INTEGER -- (inverse of q) mod p
}