您的位置:首页 > 移动开发 > Android开发

通过加密算法实现数据的完整性、机密性及身份验证

2015-05-15 07:50 357 查看
 一般互联网上加密算法分为三种:

                对称加密、单向加密、非对称加密

下面就来介绍下如何通过上面的三种加密算法实现数据的机密性、完整性及身份验证。

对称机密算法:

     对称加密算法提供加密算法本身并要求用户提供密钥以后,能够结合算法和密钥将明文转换为密文,反之,之所以称它为对称加密,是因为加密和解密使用的密钥是相同的。对称加密算法:加密算法和解密算法,只不过使用的是相同密钥。

 



 

解:

对称加密虽然解决了数据在传输过程得到了数据的完整性,那么如果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

单向加密算法:(保证了数据的完整性,但不能保证数据的机密性)

单向机密算法的特征:

输入一样:输出必然一样

雪崩效应:输入微小改变,将引起结果巨大该表

定长输出:无论原始数据多大,其结果大小一样 www.it165.net

不可逆:无法根据数据的指纹及特征码,还原原始数据

下面通过一个命令来看看雪崩效应的效果:(/etc/passwd为例)

 



 

好了,我就通过下面的图片来了解下,单向加密算法是如何进行的?

 



 

注:如果中间Jerry将Tom发来的数据截获,并将数据重新利用加密算法进行将数据提取指纹及特征码,发送给Jack,Jack并不能保证数据时Tom发送的,也就是说单向加密可以保证数据的完整性,但不能保发送者的身份。

 



 

此时,Jerry将Tom发来的数据截获到本地,并通过Diffie-Hellman进行生成密钥,并将Data数据进行加密,发送给Jack,Jack收到数据 却不能真正判断发送方的身份。   

单向加密类型:

MD4

MD5 128bit

SHA1 160bit

SHA192    SHA256   SHA384

非对称加密算法:(公钥加密算法)

非对称加密算法+CA:保证了用户的身份,并解决了对称加密算法的密钥管理机制

非对称密钥算法通常在本地生成一对密钥,一个是私钥,而另一个是公钥.一般公钥是从

私钥中提取的。所以公钥加密,私钥解密,私钥加密,公钥解密。

我们可以通过一个命令来实现生成私钥,并在私钥中提取公钥(如图)



 

RSA:可以进行数据的加密和签名

DSA:只能用于签名

ElGAMAL

概念补充:什么是CA:

CA:就是一个权威的发证机构,而且是公认,所以在本地生成一对密钥,一个是私钥,另一个是公钥,将公钥发送给CA,让CA机构进行数字签名,这让就可以验证其身份,这样在通过单向机密的结合实现数据的机密性、完整性及身份验证的信息。

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 加密