加密、解密 基础原理
由于现在网络非常发达,所以网络的安全性也是需要关注的,如果网络上的传输都是明文的,将会很容易被***截获文件,从而破解你传输的文件是什么。
所以,所有的网络传输文件都要加密才是最安全的,既然加密了就要解密,这个大家应该都猜到了把。
本人可能写的不是很好希望大家见谅啊。
我们先来说下现在的加密有些什么分类:
1、对称加密:加密和解密方用的是同一个密码
2、公钥加密(非对称加密):加密和解密使用的不通的密码
3、单向加密(数据完整性算法):如MD5,用算法重新加密已确保密码相同
4、认证协议:用基于某些特定的算法,来实施网络上双方通信实体的真实性
认证协议的证书一般公共的都是又CA提供的,而CA就是一个公证机构,提供公证证书
也有一个单位自己制作自己的CA证书在内部使用,但是一般这样的证书系统上是没
有默认安装的,所有有时候会遇到无法认证的证书
看了以上的算法是不是感觉自己身边所有的网络交互式,都有涉及到呢。
我们常用的加密由Openssl协议的NIST来定义
NIST:保证计算机的安全性,需要以下定义
保密性:C
数据保密性:确保隐私,秘密信息不会被泄漏
隐私性:确保个人能够控制,哪些个人信息不会被搜集
完整性:I
数据完整性:确保信息和程序只能以特定授权的方式改变
系统完整性:确保系统以一种正常的方式以运行预定的功能
可用性:A
确保系统能够工作迅速,对授权用户不要拒绝服务确保系统能够工作迅速,对授权用户不要拒绝服务
真实性:一个实例是真实的是可被验证的,数据发送者不会被冒名顶替
可追溯性:发生***事件之后,可找到***者的源数据在哪
可称之为CIA
还有一种安全架构为
OSI:X.800,安全框架(一下简称为800)
安全***:任何威胁系统信息安全的行为都称为安全***
被动***:主要是窃听操作
主动***:1、伪装,2、重播,3、消息修改,4、拒绝服务(DOS***)
安全机制:用来检测阻止***或者从***状态恢复到正常状态
加密、数字签名、访问控制、数据完整性、认证交换、流量填充、路由控制、公证
安全服务:确保本身不具备安全特性的通信协议,能够以一种安全的方式通信
认证:1、同等识别认证,2、数据源认证
访问控制:阻止对资源的非授权访问
数据保密性:保护数据免于非授权泄漏
连接保密性:保密连接中的所有数据
无连接保密性:保证非tcp协议的所有数据单个都是加密的
选择域保密性:只保密期望保密的那一块
流量保密性:哪些数据可以让人观测到,哪些不行
数据完整性:
保证发送方所发送的数据没有被非授权的修改、插入、删除、重放
不可否认性:
防止整个或部分通信中,任意通信实体否认他的行为
看了以上的东西大家可能晕了,不过没关系,一次看不懂可以慢慢看,我们的安全法则都是基于以上两种架构定义的,接下来我来解释下加密与解密的过程。
加密解密过程:
1、双方互换CA证书,CA的证书公钥,一般都安装在系统上了,CA完全被认可,不可被质疑
2、证书上有交换方的公钥
3、发送数据方先用自己的私钥加密一段数据,放在需要发送的数据前端,来验证身份
4、然后用单向加密算法来生成密码,将密码放在加密数据的前端
5、最后用对方的公钥来加密整个数据
6、对方收到数据之后,用自己的私钥来解密最外围的数据,来获得单向加密之后的密码
7、获得单向加密之后的密码用自己这边的当向加密算法算一遍之后来比对是否相同
8、相同之后代表,确认数据完整性,最后在用对方的公钥解密最后已成来确认身份是否正确
9、身份验证之后才读取发送过来的数据
看了加密解密过程大家可能会了解一下上面的框架了。
第一:双方互换CA证书,这是为了确定双方是否是你需要找的人,这就确定了OSI:X.800,里面的安全服务,认证与访问控制,不会让随便什么人都可以通过你的认证,既然不能通过认证就不能访问了,所以也完成了访问控制
第二:而且证书上带了交换双方的公钥,而这个公钥是相当于个人的指纹一样的,你可以用自己的私钥加密文件,让对方验证是否是你本人发出的,这样可以保证数据是否被人破解过,对应了OSI:X.800的,数据保密性与连接保密性
第三:用单向加密算法来生成密码,将密码放在加密数据的前端,这一部分都是对应了OSI:X.800的数据完整性,如果数据被修改数据的单向加密之后的密码将会不一样。
第四:用对方的公钥来加密文件,这样就可以保证你发送的数据只有对方能接,一样是数据保密得以实现。
第五:发送过去之后对方再以逆向解密从最外成开始解密加密之后的数据,一步一步验证数据是否是由认证的一方发送的,并别是没有被修改过的数据。
参考图示:
双方互换CA证书
获取证书上有交换方的公钥
发送数据方先用自己的私钥加密一段数据,放在需要发送的数据前端,来验证身份
然后用单向加密算法来生成密码,将密码放在加密数据的前端
最后用对方的公钥来加密整个数据
解密过程就是从下网上解密就OK了
这就是加密,与解密的基础知识了。
转载于:https://blog.51cto.com/kmk0226/1675871