非对称加密,也称公钥密码学(Public-key Cryptography),是密码学的一种算法。它需要两个密钥,一个是公钥,另一个是私钥。由于加密和解密需要两个不同的密钥,故称为非对称加密。20
在非对称加密系统中,任何人都可以使用接收者的公钥对消息进行加密,但是只能使用接收者的私钥对加密的消息进行解密。
这种密钥的产生基于数学中单向函数的密码算法。常用的密码算法有RSA、ElGamal、背包算法、Rabin(RSA的特例)、D-H(迪菲-赫尔曼密钥交换协议)、ECC(椭圆曲线加密算法)。使用最广泛的是RSA。E1Gamal是另一种常用的非对称加密算法。
非对称加密的两个最著名的用途是:
1.公钥加密,其中消息是使用收件人的公钥加密的。没有匹配私钥的任何人都不能解密该消息,只有私钥持有者能够对消息进行解密,这就保证了消息的机密性。
2.数字签名,其中消息是使用发件人的私钥签名的,并且可以由有权访问发件人公钥的任何人验证。这就验证了该消息有没有被篡改,因为数字签名在数学上绑定了它最初创建的消息,因此无论篡改消息与原始消息有多么相似,验证几乎都会失败。21
与非对称加密相对应的是对称加密(Symmetric Cryptography),指的是加密与解密使用同一个密钥。
非对称加密与对称加密相比,安全性更高。对称加密的通信双方使用相同的密钥,如果一方的密钥遭泄露,那么整个通信就会被破解。非对称加密使用一对密钥,一个用来加密,一个用来解密,而且公钥是公开的,秘钥是自己保存的,不需要像对称加密那样在通信之前先同步密钥。
非对称加密的缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。22(www.xing528.com)
案例 非对称加密的使用
1.A要向B发送消息,A和B都要生成一对密钥用于加密。
2.A的私钥保密,A把A的公钥告诉B;B的私钥保密,B把B的公钥告诉A。
3.A要给B发送消息时,A用B的公钥加密消息,因为A知道B的公钥。
4.A将这个消息发给B(已经用B的公钥加密)。
5.B收到这个消息后,用自己的私钥解密A的消息。其他所有收到这个消息的人都无法解密,因为只有B才有B的私钥。23
B给A发消息,则是相反的过程。
【注释】
[1]劣币驱逐良币是指,当一个国家或地区同时流通两种实际价值不同而法定比价相同的货币时,实际价值高的货币(良币)必然要被熔化、收藏或输出而退出流通领域,而实际价值低的货币(劣币)反而充斥市场。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。