加密的类型及其相关算法--公钥加密(非对称加密)

前面讲了几节,对称加密(解决:机密性),单向加密(解决:完整性),密钥交换(解决:完整性)。但总是能被E在从中捣乱,有没有一种办法能解决验证对方身份的方法呢?

这个时候公钥加密算法出来了。众所周知公钥加密算法是密钥对:公钥(公开出去的,从私钥中按照某种算法或机制提取出来);私钥(自己随机生成的,一般密钥都很长,1024,2056等)。

公钥加密本身也可以用于信息加密,假设A将信息用自己的私钥进行加密,并传递给B,B用A的公钥解密,既然是公钥,那么在网络上传输的时候,E这个坏家伙也能得到A的公钥,从而E也能解密A发送给B的信息。这样就不能解决信息的机密性。

那么要实现A发送给B的信息的机密性,A就拿着B的公钥进行信息加密,并发送给B,那么B拿着自己的私钥进行解密,E这个家伙就无法打开A发送给B的信息了。但E可以拿着B的公钥伪造A发送的信息,发送给B。这样无法解决身份验证。

让我们来想想:

1、用自己的私钥来加密,对方可以实现身份验证的问题,可是无法实现数据机密性的问题。

2、用对方的公钥来加密,对方可以实现数据机密性的问题,可是无法实现身份验证的问题。

但事实上,极少用公钥来对信息进行加密,因为密钥实在是太长了,加密的速度极度慢。所以一般用来实现身份验证。那怎么能快速的实现身份验证呢?用单向加密+公钥加密的方法

1、A先用单向加密算出指纹

2、A再用自己的私钥对指纹进行加密

想一下:

如果E这个家伙又截获了A发送的信息,E能解密不?能!!!E能篡改信息不?能!!!

但E想篡改信息后将“指纹”也修改了,只能用E自己私钥加密,那么B能用A的公钥解密这段数据不?不能!!!

E只修改信息的内容,B用A的公钥解密了“指纹”,能将内容与“指纹”匹对了不?不能!!!

虽然信息的机密性无法得到保证,但是这样就完成了信息的完整性与身份验证的问题了。

这样就万事大吉了吗?不!!A与B此前都未曾有过通讯, E这个家伙是不是又可以乘机在中间伪装A与B(之前讲了这么多次E,我们可以将这个家伙叫做“中间人攻击”,Man-in-the-MiddleAttack,简称“MITM攻击”)。那这样还是又掉进坑里了。人生到处都是坑,不是吗?^_^我们的目的是想办法,解决这些“坑”。欲知下一个办法,请听下回分解。^_^

原文地址:http://blog.51cto.com/lythjq/2089336

时间: 2024-11-07 09:23:20

加密的类型及其相关算法--公钥加密(非对称加密)的相关文章

加密的类型及其相关算法--简介

在计算机的发展之初,互联网发展是非常缓慢,普及面非常小,能实现两台机之间通讯已经是非常了不起的了.所以在TCP/IP协议开发的时候并没有过多的考虑安全性,都是明文传输的.随着互联网的发展,同时也验证了"林子大了之啥鸟都有"的理论,在互联网存在了各种网络攻击,使得两机之间通讯的安全问题日益突出. 假设A与B之间需要相互通信.在此之前A与B是没有通信过的,两者之间需要建立通讯的时候会面临什么风险呢? 假设A与B之在谈恋爱,他们之间通讯是通过明信片联系的,那么在明信片投递的过程中,每个环节的

加密的类型及其相关算法--对称加密

上节我们讲到加密所围绕的三个方面:机密性.完整性.身份验证 为了实现A与B之间通讯是机密,让第三者即便截获了信息都无法看得懂,那就要对明文数据进行加密. 我们知道加密其实就是运用一些算法去实现的(这也就是为啥计算机与数学家之间关系是这么紧密的了,计算机就是各种逻辑运算^_^).例如最简单的算法就例如将a-e向又移动5位成为f-j,那么解密就是向左移动5位,这样加密和解密使用同一套算法的就称之为对称加密算法. 又例如,大家有没有看过<风语者>里纳瓦霍密码,"战斗机"被称为&q

加密的类型及其相关算法--单向加密

上一节我们讲到对称加密能解决通讯机密性的问题,可是无法保证信息的完整性. 那我们引入一种算法--单向加密.单向加密就如人的指纹,会独一无二. A向B传递信息的时候会在末尾附加这个信息的单向加密结果,B接收到以后用同样的单向加密算法,计算加密的结果与传递过来的密码对比.如果一致,证明信息是完整的. 那么单向加密需要有什么特性呢? 1.输入的一样,计算结果必定是一样 2.雪崩效应,一点点的不同,就会导致计算结果完全不同 3.定长输出,无论原信息的大小,输出的结果长度必定一致 4.不可逆,不可以通过结

加密的类型及其相关算法--密钥交换

前两节讲到了信息的加密和信息的完整性,可是无法解决密码(密钥)传输保密的问题.如何在不安全的网络上来进行协商密码(密钥)呢? 1976年,W.Diffie和M.Hellman在发表的论文中提出了公钥加密算法思想,但当时并没有给出具体的实施方案,原因在于没有找到单向函数(也就是消息摘要算法),但在该论文中给出了通信双方通过信息交换协商密钥的算法,即Diffie-Hellman密钥交换算法(简称为DH算法).该算法的目的在于让消息的收发双方可以在安全的条件下交换密钥,以备后续加密/解密使用.因此,D

加密类型及其相关算法

在互联网通信过程中,如何保证数据的安全性? 在通信过程中,数据安全主要从三个方面考虑:机密性(数据的内容不能被窃取) 完整性(数据的内容不能被修改) 身份验证(确定通信双方的身份) 加密类型:1.对称加密,加密和解密使用同一个密钥,但是密钥如何安全传输比较重要,对称加密数度较快,适于加密数据 2.单向加密,提取数据指纹,主要用于保证数据的完整性 单向加密的特点:输入相同则输出一定相同 雪崩效应:输入的微小改变会引起结果的巨大反差 定长输出 3.非对称加密,使用一对密钥(public-key和pr

linux学习之路之加密类型及其相关算法

加密类型及其相关算法 随着互联网越演越烈,互联网上的各种攻击层出不穷,因此在互联网上相互传递的信息越来越不安全,因此为了防止用户在互联网上传递的数据被窃取,因此我们很有必须加强传递的数据的安全性. 数据的安全性主要包括以下三个方面: 数据的机密性:保证传递的数据不被读取 要想使传递的数据不被读取,可以对这些数据进行加密,因为默认这些数据是以明文来传递的 整个加密过程可以这么来理解: 加密:plaintext--->转换规则--->ciphertext 解密:ciphertext--->转

加密类型以及相关算法

让我们从一个简单的故事说起. 1.很久很久以前,在笔友盛行的年代,小明交到了笔友小红,然而有件事让他们很苦恼,他们的信封总是被他们家人偷看,青春期的小年轻们总是想有点自己的小秘密的,所以这对于他们来说是无法容忍的,于是呢,小明和小红想了一个办法,他们约定以后写的书信每个字母往后两位,比如a-->c,b-->d,这样 i love you 就变成了 k nqxg aqw ,就这样,他们的父母拿到书信后百思不得其解,然而小红看到脸上却泛起了红晕... 上面的例子就是互联网安全通信的第一个特性:保密

C#数据Encrypt加密Encrypt解密的算法使用--非对称算法RSACryptoServiceProvider

C#数据加密解密的非对称算法使用---RSACryptoServiceProvider   Asymmetric algorithms--Encrypt Encrypt C#数据Encrypt加密Encrypt解密的相关算法可以参考System.Security.Cryptography,这个类库中包含MD5,SHA1,SHA256,SHA384,SHA512 MD5 and SHA256 are two of the HashAlgorithm subtypes provided by the

最全加密算法之对称加密和非对称加密

常见加密算法 : DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合: 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高: RC2和 RC4:用变长密钥对大量数据进行加密,比 DES 快: IDEA(International Data Encryption Algorithm)国际数据加密算法:使用 128 位密钥提供非常强的安全性: RSA:由 RSA 公司发明,是一个支持变长密钥的公共