思维导图:
一.引言
这篇文章的主要内容是关于计算机网络的安全,其主要的手段则是加密.加密的种类和方法也不唯一.主要会为了四点而进行加密
- 机密性:为了保证发送的内容不被别人了解.
- 完整性:为了保证内容不被篡改
- 端点鉴别:为了保证不会收到冒名顶替者的报文
- 运行安全性:为了识别一个组织或机构所收发的报文内容的合法性
如上所述,这篇文章的内容主要分为两个大的部分来叙述,第一部分是原理,包括密码学的原则,然后更进一步的描述了如何实现机密性,完整性,端点鉴别和运行安全性.第二部分则是应用,分别以应用层,运输层,网络层,链路层的一个例子来说明网络安全是如何实现的.
二.原理
这一小节会介绍加密的原理和安全通行的实现方式
2.1密码学原则
在网络安全的概念中,我们所发送的报文如果是任何人都可读的,称之为明文,即不加密内容,如果对发送内容进行加密,获得的加密结构就称之为密文,因为加密所使用的算法大家都是公用的,所以需要一些秘密信息以组织密文被破解,这个秘密信息就是密钥.
我们常用的密钥系统分为两种,一种是对称密钥系统,一种是公开密钥系统.
2.1.1对称密钥系统
对称密钥系统有两种加密方式,块密码和流密码,这里主要介绍块密码
- 块密码
块密码的主要原理是间明文分为固定大小的块,对每一种块都维护一个映射表以加密数据.比如如果块的大小为3的话,那么,我们就会把一段明文分为n块,每块3比特大小,所以,一共有2^3=8中映射.明文通过映射取值后,就变成了密文.而密钥就是这张映射表.如下图:
所以,如果使用块密码的话,块的大小不能太小,否则非常容易破解,一般的,块的大小为64.但是,出现了新的问题,如果块的大小是64的或,那么交互的双方都必须维护一张长达2^64大小的映射表,更可怕的情况是如果映射有所修改,那么这将是一个非常大的工作量,所以,我们会使用一个置乱函数,在将64大小的块分为8块,即每个快大小为8并进行加密后,使用此置乱函数,这样就不用维护过大的映射表了,如图:
现在又有了新的问题,因为报文是有固定的格式的,即当我们加密了报文后,不法分子很有可能利用已知的内容(报文格式,重复内容等)来反推密钥,所以,需要一种方法来使得即使是相同的数据也有不同的加密结果,这种方法就是密码块连接<