网络安全的历史,原理和实现

信息系统在交换数据的过程中,会出现一些安全的问题。 总结一下,主要包括以下几个问题:

 1. 保密性(不允许第3者看到): A向B发送一个文件,文件的内容可能是银行卡号等敏感信息,在信息传输的过程中,不能被第三者看到。

 2.完整性(不允许第3者修改): A向B发送一个文件,A不希望该文件在半路被第三者修改,这样会让B收到一个被更改了的错误的内容。

 3.不可否认性(明确发送者,也称为抗抵赖性):B收到一个号称是A的人发过来的一个文件,但是,究竟是不是真的是A发送的呢,B需要通过收到的文件能够真实地判断是否真是A发送过来的。

 

   4. 可用性:这个是很让人生气的术语,什么叫可用,根本没有说明白。 其实,在这里,它指的就是控制什么人有权访问,什么人无权访问的问题以及当系统崩溃了以后,快速恢复的功能, 是面向使用者来说的,属于系统的权限控制(确定不同的登录的账户分别能访问系统的那些特定资源),包括认证:确定什么样的人才能登录系统和健壮性的问题了。 

    5. 可控性:这个就属于管理方面的问题了,意思就是说,要保证当加密算法交由第三方管理时,必须严格按规定可控执行。

 

 

 

其实,后2点都是废话。 真正我们需要关注的是前面的3点安全需求。下面我们主要来说一说人们是通过什么样的方式来实现前3点的安全需求。

     要想让信息保密,不让他人看,是通过采用加密来实现的。 最开始, 采用一些很基本的方式,就是在发信人和收信人之间约定好一个变换规则,然后,按照该规则对信息进行加密,将加密后的信息发送给收信方,然后收信方根据约定好的规则解密就可以看到原文了。    最开始的加密采用的是置换加密,也就是说将明文中的字符按照一定的密码表的对应规则替换成密文,者就好像那些黑道人物的黑话一样,他们使用一些隐语,表面上是说的这个东西实质上指的是另一个东西。采用这种加密方式的话,加密规则就变得很重要了,不管是谁,只要知道了加密规则,就能破解密文了。这样的加密很不安全, 人们把明文样本和密文样本结果多次比较研究就很容易推断出加密方法来。而且这样的加密规则,时间一长,也就容易暴露,一旦暴露,人们就不得不重新想其它的加密方法了。 所以,这种加密不是很好。

   后来, 加密的方法慢慢发展,采用了更加复杂的变换方式,虽然变换方式变复杂了,但是基本思想还是一样的,就是将明文打乱,让别人看不懂。一般是采用变换函数来进行变换的了,这些变换函数处理的都是二进制的数据, 也就是说,首先要将明文的字符串转变成二进制编码,然后利用变换函数进行处理得到密文。这种变换函数都有一个特点,就是在处理的过程中,都需要输入一个长长的字符串作为参数,而且输入的参数不同,产生的密文也完全不同。

    上述是现代密码中的对称加密,对称加密的加密算法很重要,因为对称加密加密得到的密文结果相同的加密算法出来后就可以得到明文了。

       后来,人们发明了非对称加密(公/私匙加密),使用的数学原理是单向函数和单向暗门函数。 在这种加密算法中,存在公匙和私匙。

每个人都有一个个人特定的唯一的公匙/私匙对。 公匙是开放的,任何人都可以获得,而私匙是自己身份的代表,只有自己才有。假设A要向B发送文件,但是又想获得保密性的需求,那么A就向B索取B的公匙,当然,如果B在认证中心(CA)注册了的话,B也可以去认证中心的网站下载B的公匙。

      注: 具体的过程是这样的:A首先需要从CA的网站上下载CA的RootCA(也就是认证中心自身的公匙),然后,去下载B的数字证书(数字证书实质上就是B的公匙和数字签名的一个打包),当然,B的这个数字证书是用CA的私匙签名过了的,也就是说,CA以其自身的信用向A保证该数字证书是CA自己发布的,而且不可否认。 这样,A得到可以信任的B的数字证书了以后,就是要CA的公匙解密该数字证书,于是就可以得到B的值得信任的数字证书。 从该数字证书中就可以得到B的真实的公匙。  

 

      A得到B的公匙后, 使用该公匙加密要发送的明文得到只有B才能解密的密文(因为只有B采用私匙)。B收到密文用自己的私匙解密即可得到明文了。

      如果A除了要求保密性以外,还要保证传输的完整性,那么A可以在传输之前,先利用一个哈希函数(哈希算法)对明文进行处理,得到一个消息摘要,该消息摘要是根据明文的内容生成的一个很短的字符片段,而且,只要明文的内容稍微有一点点的改动的话,生成的消息摘要就会有很大的差异。 这样,当B获得解密以后的明文了以后,他自己就可以使用相同的哈希函数通过明文得到一个消息摘要(也称为散列码),通过对比得到的消息摘要与A所发送过来的消息摘要是否相同,就可以得知文件在传输的过程中是否被改动了。这样就能保证文件在传输过程中的完整性了。

    当然,为了安全起见,A在传输消息摘要的时候往往使用自己的私匙进行加密,然后B接受到了以后再使用A的公匙解密得到传送过来的消息摘要。这一方面保证了消息摘要在传输过程中的保密性,同时,也相当于使用了A的私匙(A身份的唯一标识)对消息摘要进行了数字签名,这样,当B使用可信任的A的公匙解密时,如果能加密成功,那么就可以证明信息的确是从A传送过来的了,也就可以认定发信人的身份了(具有不可抵赖性)。

 

    实际上,我们就是通过数字签名(电子签名的一种,所谓签名,就好比合同上的签字和盖章,主要目的是为了证明确实是某个人所发送的)来确认发信人的真实身份的。 因为私匙是个人身份的唯一标识(这个是由CA 认证机构所保证的),所以,只有其本人才有相应的私匙,那么使用该私匙签名的人只可能是他自己了。由此,当我们看到特定私匙签名的文件的时候,就可以认定该文件是其本人所发送的,而且具有不可否认性。

 

 

 

 

 

这就是保证信息安全的三个需求:隐密性,完整性,不可否认性(身份确认性)的方法,通过这些方法,我们就可以确定某个文件的确是某人发出的,而且在传送的过程中没有被修改,而且该文件的内容不会被第三者所看到。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

walkingmanc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值