理解加密算法

理解加密算法和 DH算法

理解加密算法

,,,,,一个完整的加密方法由很多因素组成,但是最关键的两个因素是加密算法和密钥。加密算法通常是非常复杂的数学公式,这些公式确定如何将明文转化为密文的运作过程与规则。密钥是一串被加入到算法中的随机比特,若要使两个加密点之间进行加密的通信,必须使用相同的加密算法。而且在某些时候他们需要使用相同的密钥(对称式加密),当然在很多时候两者使用不同的密钥来进行加密或者解密(非对称加密)。

下面描述对称式加密算法和非对称式加密算法:

对称式加密:会使用同一把密钥来加密和解密数据。

举一个简单的例子来说明这个问题,就是好比一把锁和一把钥匙,大家都知道,锁门的时候用的时候用哪一把锁头,就要用锁门时用的钥匙来开这一把锁,这就是对称式加密算法。其实对称式加密算法挺简单的,那我们来看一下:

<强>对称式加密算法的优点:

    <李>相对非对称加密而言,他的加密速度更快李 <>李密钥的位数大的会话很难攻破李

<强>对称式加密算法的缺点:

, 对称式加密算法需要一个安全的机制来分发密钥。。为什么呢?因为每一个使用者都需要一对唯一的密钥,因此密钥的数量会随着使用者增加成倍的增加,这对密钥的管理造成了很大难度。

,,,,,使用对称式加密只能保证数据的机密性,也就是说只能保证数据不被看的到,但是他不能提供对数据的认证和防抵赖性。什么意思呢?你用对称式加密对数据加密以后,不能保证数据在传输的过程中被更改,也不能确定这数据是不是你需要的那个用户一个加密的。

对称式加密的标准:des、3 des、aes

非对称式加密

非对称加密算法使用两把不同的密钥,一把叫做公开的密钥,一把叫做私有密钥,那么这两把密钥是不同的密钥,但是他们必须成对使用,如果你用公钥来加密数据,那么只能使用这把公钥对应的私钥来解密,如果用私钥来加密了数据,那么只能使用这把私钥对应的公钥来解密。虽然他们是两把不同的密钥,但是他们之间存在着复杂的数学关联,他们是有关系的,因为加密的过程中,我们使用了两把不同的密钥,所以我们把这种加密方式称之为非对称加密算法。

那非对称式加密是怎么用的呢?具体过程中需要注意一些什么呢?

首先要说明一个问题,在非对称加密算法中指的加密还有更深层的意义:

    <李>加密这个词包含了对数据提供了机密性李 <>李加密这个词包含了如何确保数据的完整性和防抵赖性李

以下通过两个例子来说明两个问题:

1。如何利用非对称式秘钥来保证数据的机密性

2。如何利用非对称式密钥来保证数据的完整性和防抵赖性

使用非对称式密钥来保证数据的机密性

第一步:首先在用户一个和用户B保存自己使用的公钥和私钥,然后,他们俩将彼此的公钥进行交换,这个过程叫密钥交换。事实上,公钥是可公开的,所以交换公钥不会造成任何安全威胁。注意私钥不能用作公开,交换,或者是网络传递。

第二步:经过公开密钥(公钥)的交换后,用户一个成功的获得用户B的公钥,然后使用用户B的公钥来加密数据,然后将加密后的数据通过网络传给用户B,此时如果网络上有第三方的窃听者截获了这段加密的数据,他将无法获取数据的内容,因为第三方没有用户B的私钥,使用用户B的公钥加密的数据只有用户B的私钥可解密。用户B的私钥是不可公开的,所以这个过程保障了数据的机密性。

第三步:当数据到达用户B处时,用户B使用自己的私钥解密文件,可读取文件的内容,如果用户B要回送机密消息给用户一个则使用用户一个的公钥来加密回送文件。

这是一种使用接收方的公钥来加密数据的方式,他的特点如下:

1。能保障消息的私密性,只有接受者可以阅读消息内容,因为只有接收者具备解密的私钥

2。无法提供来源可靠性的认证,因为公钥是可以公开的,任何人都可能得到接收者的公钥,那么如何保障来源的可靠性呢?

第二个例子

用户一个要给用户B发送一个文档,但是这个文档不需要太高的机密保障但是绝对不能让人修改,并且要让用户B相信这个文档就是用户一个发的,而不是张三李四发的,那这个怎么做呢?用户一个可以使用自己的私钥去加密这个文档,注意,用私钥加密,私钥是不会再网络上传输的,其实这个加密的过程,是对数据内容作了一个完整性验证和防抵赖的认证,并不是确保它的私密性。然后在网络上去传输数据,但不会传输私钥。如果网络上有中间人* * *,截获数据,拥有用户一个的公钥就可以读到这个文档,因为公钥具有公开性,任何人都可能会获得用户一个的公钥,拿到用户一个的公钥就可以读到这个文档了。但是读归读,但是你不能修改文档的内容,不能改变一个事实,这个文档是用户一个发出来的,现在的电子交易就要用到了这个特性,当用户B收到数据之后拿用户一个的公钥解密这个文档,确认文档没有被篡改,也确认是用户一个发送的文档。

理解加密算法