一般互联网上加密算法分为三种:
对称加密、单向加密、非对称加密
下面就来介绍下如何通过上面的三种加密算法实现数据的机密性、完整性及身份验证。
对称机密算法:
对称加密算法提供加密算法本身并要求用户提供**以后,能够结合算法和**将明文转换为密文,反之,之所以称它为对称加密,是因为加密和解密使用的**是相同的。对称加密算法:加密算法和解密算法,只不过使用的是相同**。
个人理解:
对称加密虽然解决了数据在传输过程得到了数据的完整性,那么如果Tom给许多用户发送数据Data时,都要在本地生成对称**并通过一种**交换方式(Hiffie-Hellman)传送给对方,这样的话Tom用户必须记住所有**对吧!不然的话,如果其中一个用户截取到数据,也可以查看数据内容,为了保证数据的机密性,Tom必须为每个用户生成一组**来保证数据的机密性。
所以说对称**解决了数据的机密性,但不便于管理**。
常见的对称加密算法有:
DES:Data Encrption Standard (默认为56bit)
3DES:经过3词DES加密方式
AES:Advanced Encrption Standard (高级加密标准)
AES192(192bit) AES256(256bit) AES512(512bit)
Blowfish
单向加密算法:(保证了数据的完整性,但不能保证数据的机密性)
单向机密算法的特征:
输入一样:输出必然一样
雪崩效应:输入微小改变,将引起结果巨大该表
定长输出:无论原始数据多大,其结果大小一样
不可逆:无法根据数据的指纹及特征码,还原原始数据
下面通过一个命令来看看雪崩效应的效果:(/etc/passwd为例)
好了,我就通过下面的图片来了解下,单向加密算法是如何进行的?
注:如果中间Jerry将Tom发来的数据截获,并将数据重新利用加密算法进行将数据提取指纹及特征码,发送给Jack,Jack并不能保证数据时Tom发送的,也就是说单向加密可以保证数据的完整性,但不能保发送者的身份。
此时,Jerry将Tom发来的数据截获到本地,并通过Diffie-Hellman进行生成**,并将Data数据进行加密,发送给Jack,Jack收到数据 却不能真正判断发送方的身份。
单向加密类型:
MD4
MD5 128bit
SHA192 SHA256 SHA384
非对称加密算法:(公钥加密算法)
非对称加密算法+CA:保证了用户的身份,并解决了对称加密算法的**管理机制
非对称**算法通常在本地生成一对**,一个是私钥,而另一个是公钥.一般公钥是从
私钥中提取的。所以公钥加密,私钥解密,私钥加密,公钥解密。
我们可以通过一个命令来实现生成私钥,并在私钥中提取公钥(如图)
概念补充:什么是CA:
CA:就是一个权威的发证机构,而且是公认,所以在本地生成一对**,一个是私钥,另一个是公钥,将公钥发送给CA,让CA机构进行数字签名,这让就可以验证其身份,这样在通过单向机密的结合实现数据的机密性、完整性及身份验证的信息。
转载于:https://blog.51cto.com/guodayong/1174234