加密算法
一、对称加密算法
1、DES、3DES
DES:替换加位移,56位密钥、64位数据块、速度快、密钥易产生
3DES:两个56位密钥K1、K2,加密过程:K1加密——>K2解密——>K1加密; 解密过程:K1解密——>K2加密——>K1解密
2、RC-5
RSA数据安全公司的很多产品都使用了 RC-5 加密
3、IDEA算法
128位密钥,64位数据块,比DES的加密性好,对计算机功能要求较低,PGP
4、AES
AES 加密算法替代了 DES ,它更安全。
它有 ECB\CBC\CTR\OFB\CFB 模式,但一般认为 ECB 是不安全的,CBC 模式比较常用。
填充方式有 PKCS7/PKCS5,严格来说,PKCS5 并不能和 AES 一起使用,因为 PKCS5 是仅限于 8 字节块大小的,而 PKCS7 可以在 1~255 之间,而 AES 算法规定使用 128bit 即 16字节大小块。除此之外,PKCS7 和 PKCS5 的填充方式并没有区别,都是把数据填充到块的整数倍,不足则补上余数对应的值,比如使用 AES + PKCS7 填充长度为 30 的数据块,就要补上 2个 0x02,填充长度为20的数据块,就要补上 12 个 0x0C。如果数据长度正好是块长度的整数倍,则需要再填充一个数据块长度,如 AES + PKCS7 填充长度为 16 的数据时,就要补上 16个 0x10。
密码可以为 16、24、32 位,对应不同的复杂度。
偏移量需要唯一,一般表示为 iv。
二、非对称加密
1、RSA
512位(或1024位)密钥,计算量极大,难破解
2、ECC
椭圆曲线算法
三、数字签名与证书
公钥、私钥
CA证书
X.509 数字证书
DSA签名算法,DSA用于签名,RSA可用于签名和加密。