非对称加密算法
涉及公钥,私钥,明文,密文。为何难破解?主要是因为利用了如下数学算法。
1、利用大数分解,给定两个素数p、q 很容易相乘得到n,而对n进行因式分解却相对困难。如3233 = 61×53
2、利用离散对数,给定b计算满足公式b=ga mod p的a是非常困难的,a称为以g为基b的离散对数
3、利用椭圆曲线,数学理论非常深奥和复杂,有点类似离散对数
常用算法有rsa/dsa/ecc/pgp/dh/ecdh
如rsa算法属于块加密算法,块长度=密钥长度
ecc相对于rsa,使用更短的密钥,性能要高,难破解
对称加密算法
一般是基于置换和代替的,置换是数据的重新排列,而代替是用一个单元数据替换另一个。
如aes分为128,192,256加密强度,块长度=密钥长度。
aes128,秘钥长度为128位=16字节
由于是块加密,每16字节为一块,不够一块需要补全
aes-ECB是一种基础的加密方式,将整个明文分成若干段相同的小段,然后对每一小段进行加密
aes-CBC是一种循环模式,先将整个明文切分成若干小段,然后每一小段与初始块或者上一段的密文段进行异或运算后,再与密钥进行加密。初始块叫IV初始向量,IV不同,密文不同。
常用算法有aes/des/rc4
hash算法
hash算法不可逆,目的