rsa
要点
RSA是一种块加密,一个具体的RSA算法对应一个N(模数)
块加密:
密钥长度为工作长度
明文不足,则需填充(一般都有几种填充方式)
密文长度同密钥长度一致
N(模数)的二进制位数,称之为RSA长度(对应openssl函数,
RSA_size(rsa)
),常用1024(128B),2048(256B)公钥(N, E)
私钥(N, D)
RSA(1024)的D:3, 65537(0x10001),当N值大于65537时,默认用65537!
RSA ASN.1定义
加密和签名
加密:公钥用来加密,私钥解密,保证信息被唯一持有私钥的接收((仅你可读但别人不可读,任何人都可写))
签名:私钥用来加密,公钥解密,保证信息是由唯一持有私钥的发送(仅你可写但别人不可写,任何人都可读)
填充模式
RSA_PKCS1_PADDING
(最常用的模式)RSA_PKCS1_OAEP_PADDING
RSA_NO_PADDING