这是一个一般的加密问题而不是IPSec问题,所以我已经回答了一般情况:
密码学通常用于提供三个主要属性;身份验证,混淆(加密)和数据完整性(我认为你的意思是"消息集成")。
要了解这些属性是什么,为什么我们想要它们,加密如何提供它们以及它们如何相互关联,请考虑以下示例:
Alice是一家贸易公司的经纪人,并希望向她的一位交易员Bob发送一份购买特定数量某种股票的订单。爱丽丝是一个细心的经纪人,她有一些顾虑:
- 她需要确保Bob得到正确的信息;如果他购买错误的数量,错误的股票或其他东西,爱丽丝会损失很多钱。
- 她需要确保Bob知道该消息来自她,而且只有她。除非爱丽丝告诉他,否则鲍勃不会进行交易,但他需要一种方法来确保爱丽丝正在下订单。
- 她需要确保在交易订单制作之前没有人知道交易订单,否则另一个经纪人会打败她。
醇>
通过明智地应用密码术,我们可以减轻Alice所有三个问题。总而言之,我们需要确保Bob获得正确的信息; Bob可以验证Alice发送了订单;并且只有Bob才能阅读订单。让我们一次处理这些问题。
- 为了确保Bob获得正确的顺序,他需要某种方式来验证他收到的消息实际上是Alice打算发送的消息。一个(相对)简单的方法是让Alice发送她的消息的哈希以及所述消息。消息的散列是什么叫做散列函数的输出,消息作为输入。散列函数具有各种有用的属性,但我们会专注于一个;改变乘法。也就是说,改变输入中的一位将产生截然不同的输出;改变"倍增"从单个交换位到大量分歧。因此,当Alice向Bob发送消息及其散列时,Bob可以重新计算他所拥有的消息的散列,并将其与Alice发送给他的消息进行比较。如果他们匹配,那么他有正确的信息。然而,如果在他收到的消息中翻转了一位,他将计算一个大不相同的散列,并能够告诉某些事情导致他得到错误的消息。这就是我们如何使用加密(散列函数)来确保数据完整性。
- 我们需要确保Bob知道来自Alice的消息。欺骗IP或电子邮件地址相对容易,因此我们需要一些比查看&#34; From:&#34;更复杂的东西。领域;我们需要加密!我们需要让Alice对她发送的消息做一些事情,只有Alice可以做,并且Bob可以轻松验证。我们最常用的工具是非对称加密。在非对称加密系统中,Alice有两个可用于加密数据的密钥。加密只是使用密钥和算法将数据转换为另一种形式,这样转换可以在以后进行反向(解密)。在传统(对称)加密系统中,相同的密钥用于加密和解密数据。然而,非对称加密系统如此棒的原因在于,使用A和B加密的两个密钥,使用A加密的任何内容都可以 使用B解密,使用B加密的任何内容都可以仅使用A解密。此外,B只能解密使用A加密的邮件,A只能解密使用B加密的邮件。因此,如果您收到邮件并且能够使用B解密,则知道发件人使用A加密了它。所以Alice可以保持A私有(她的#34;私钥&#34;)并在互联网上发布B以供任何人查找。然后,当她向Bob发送消息时,她使用A对其进行加密(在大多数现代密码系统中,她实际上会用A加密消息的散列,并将其附加到明文消息;这称为签名< /强>)。 Bob然后可以上网,获取B,并尝试使用它来解密他认为是从Alice获得的消息;如果它有效,那么他知道她发送了它,因为只有Alice可以访问A.这就是我们使用加密(非对称加密)来提供身份验证的方式。
- 我们仍然需要从窥探中获取此信息。一个简单的方法(以及今天最常用的一种方法)是让Bob生成他自己的一对非对称密钥X和Y,并在互联网上发布Y.然后,当她发送消息时,Alice可以获取Y并使用它来加密她的订单。由于Bob是唯一可以访问X的人,因此他是唯一可以解密该消息的人。另一种简单的方法是使用对称加密系统,其中相同的密钥可用于加密和解密数据。然后,只要Alice和Bob都知道密钥,而没有其他人知道密钥,他们就可以使用他们的共享密钥来保护他们的通信。这就是我们如何使用加密(非对称和对称密码系统)来提供消息模糊处理。
醇>