加密
什么是非对称加密
对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个**来进行加密和解密,这两个秘钥是公开**(public key,简称公钥)和私有**(private key,简称私钥)
与对称加密算法不同,非对称加密算法需要两个**:公开**(publickey)和私有**(privatekey)。公开**与私有**是一对,如果用公开**对数据进行加密,只有用对应的私有**才能解密;如果用私有**对数据进行加密,那么只有用对应的公开**才能解密。因为加密和解密使用的是两个不同的**,所以这种算法叫作非对称加密算法。
非对称加密工作原理
1、A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。
2、A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
3、A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。
4、A将这个消息发给B(已经用B的公钥加密消息)。
5、B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。
优缺点
非对称加密与对称加密相比,其安全性更好:对称加密的通信双方使用相同的秘钥,如果一方的秘钥遭泄露,那么整个通信就会被**。而非对称加密使用一对秘钥,一个用来加密,一个用来解密,而且公钥是公开的,秘钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥。
非对称加密的缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
在非对称加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。
不同算法的实现机制不同,可参考对应算法的详细资料。