对称加密算法、非对称加密算法、散列函数与数字签名的介绍

1.对称加密

对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。

常见算法有:DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法。

2.非对称加密

非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。

常见的算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。

非对称密码体制的主要优点是可以适应开放性的使用环境,密钥管理问题相对简单,可以方便、安全地实现数字签名与验签。RSA是非对称加密的典范

3.散列函数

散列函数,也称作哈希函数,与上述密码体制不同,散列函数的作用不是完成数据加密和解密的工作,它是用来验证数据完整性的重要技术。

通过散列函数,可以为数据创建“数字指纹”(散列值)。散列值通常是一个短的随机字母和数字组成的字符串。信息收发双方在通信前商定了具体的散列算法,并且该算法是公开的。如果消息在传递过程中被篡改,则该消息不能与已获得的数字指纹相匹配。

散列函数广泛应用于信息完整性的验证,是数字签名的核心技术。常见的算法有MD(消息摘要算法)、SHA(消息散列算法)、MAC(消息认证码算法)。

4.数字签名

数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。数字签名是非对称密钥加密技术与数字摘要技术的应用。数字签名是个加密的过程,数字签名验证是个解密的过程。

“发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。

猜你喜欢

转载自blog.csdn.net/liuyongheng1991/article/details/81744051