数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。它的核心是密码学。
数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。
情景假设
发送方:李雷
接收方:韩梅梅
发送内容:一封很长很长的信。
1.准备阶段
首先,李雷想发邮件给韩梅梅先要经过韩梅梅的授权,韩梅梅要事先把含有自己公钥的数字证书发送给李雷。这就引出了数字证书的概念。
1.1数字证书:
数字证书简称CA,又叫公钥证书(对公钥和私钥概念不清楚的可以参考这篇文章。《公钥与私钥》),是由权威机构颁发的一种电子证书,这里的权威机构一般都是官方认证的机构,里面包含了使用者的公钥和一些其他的信息。当然,Windows系统里也自带证书服务器,也就是说,如果你自己想给别人颁发证书的话也可以,但因为你并不具有权威,所以不会有人用你颁发的证书,除非你想自己建一个网站(例如电商网站),需要安全数据传输,如果别人使用你的网站,需要在你这里注册证书,但你的证书还是不会被操作系统信任,一般都要去官方的机构注册还能有效。
和防火墙配合使用的数据加密技术,是为提高信息系统和数据的安全性和保密性,防止秘密数据被外部破译而采用的主要技术手段之一。在技术上分别从软件和硬件两方面采取措施。按照作用的不同,数据加密技术可分为数据传输加密技术、数据存储加密技术、数据完整性的鉴别技术和密钥管理技术。
数据传输加密技术的目的是对传输中的数据流加密,通常有线路加密与端—端加密两种。线路加密侧重在线路上而不考虑信源与信宿,是对保密信息通过各线路采用不同的加密密钥提供安全保护。端—端加密指信息由发送端自动加密,并且由TCP/IP进行数据包封装,然后作为不可阅读和不可识别的数据穿过互联网,当这些信息到达目的地,将被自动重组、解密,而成为可读的数据。
注意,证书的颁发机构,使用者和拥有者是不同的三个人。
颁发机构是第三方官方认证机构,保证证书的权威性。
使用者是颁发给的那个人,是真正的证书持有者,数字证书就相当于该人的身份证,里面记录了他的公钥。
拥有者可以是很多人,证书的使用者可以把自己的证书发送给他人,用来和他人发生安全的通信。
数字证书里面含有身份认证的相关信息:持有者的公钥、证书指纹、加密所有算法,证书有效期等等。下图为我电脑windows系统下的一个微软颁发的证书。我们在图中可以看到上述所说的信息,这里的颁发机构是MicrosoftWindowsHardwareCompatibilityPCA,使用者是MicrosoftWindowsHardwareCompatibilityPublisher,拥有者当然是我啦。所以,一个人如果拥有了对方的数字证书,也就拥有了对方的公钥。
1.2获取接收方证书
所以,在发送方想发送加密信息之前,要先从接收方那里获得数字证书。这里的情景也就是韩梅梅要事先把自己的证书发送给李雷。
2.加密阶段
2.1制作信息摘要
如上图(可以参考文章最开始大图),加密的第一步就是将原文的明文信息利用Hash函数制作出一个加密的信息摘要,这个信息要比原文小的多,因为Hash函数式不可逆的,所以无法从加密的摘要信息反推回原文。这个信息将作为解密时的校验信息。
2.2制作数字签名
将上一步得到的信息用发送方李雷的私钥加密,制作出数字签名。数字签名就是最后解密是接收方韩梅梅校验发送方身份的所利用的信息。
2.3制作正文密文。
将信件明文,上一步得到的数字签名,和发送方李雷自己的数字证书方在一起进行对称加密。这里介绍下对称加密的概念,首先说公钥和私钥的加密形式叫做非对称加密,是两把不同的秘钥不想加锁和开锁,自己不能开自己。而对称加密就是只有一个秘钥,用它来枷锁也用它来解锁。对称加密存在安全隐含,因为你必须让发送方和接收方都知道这个秘钥,这就必然要把这个秘钥在网络上传输,这就存在风险。但对称加密也有优点,就是算法是时间复杂度底,加密过程快,而非对称加密的时间复杂度很高,如果对一段很长的全文都进行非对称加密显然是不现实的。所以聪明的人们相出了用非对称加密算法加密对称加密秘钥的方法,就可以做到两者兼得,在下一步中,就可以看到这个奇迹发生。
2.4制作数字信封
用接收方韩梅梅数字证书中的公钥对这把对称加密的秘钥进行加密,形成数字信封,这样在传输过程中,黑客就无法截取到加密正文所用的对称秘钥,达到了效率和安全性上的兼顾。
2.5打包数据,可以上路了!
将第3步制作的密文和第4步制作的数字信封打包在一起,发送出去。这样固若金汤的加密过程就结束了!
3.解密阶段
韩梅梅这时候已经收到了李雷发来的信件。解密阶段基本是加密阶段的反过程。
3.1解密数字信封
韩梅梅利用自己的私钥解开数字信封,数字信封是用韩梅梅的公钥加密的,得到对称秘钥。
3.2解密正文、数字签名、发送方数字证书。
利用上一步解密得到的对称秘钥,解开密文。得到明文、数字签名、含有李雷公钥的数字证书。
3.3解密数字签名
利用上一步得到的发送方李雷的公钥解密数字签名,数字签名是用李雷的私钥加密的,得到发送方李雷利用Hash函数制作的信息摘要。
3.4接收方制作信息摘要
接收方韩梅梅利用第二步解密得到的信件明文利用Hash函数再次制作信息摘要。
3.5校验原文
将第3步和第4步得到的两份信息摘要进行对比,如果一样,说明接收数据正确且完整。至此,一套完整的加密传输流程结束了!
4.总结
如果你细细体味,会发现这里有很多巧妙的地方。
1、利用非对称加密确保了数据的绝对安全性。
2、利用对称加密加密原文,简化了时间复杂度,同时有用非对称加密加密对称秘钥,让对称秘钥的传输绝对安全。也许你会想,原文最终还是只用对称加密算法加的密,我们只需要暴力破解这个对称密码就可以了。这里要说明的是,这个对称秘钥是随机生成的,对用户透明,一般应该也会很长,要破解这个基本上也是不现实的。
3、利用Hash函数的不可逆性、结果唯一性对数据进行校验,有效的保证了数据的完整性。
这篇文章,小编写的很详细,你一定有了不少的收获了,如果想了解更多更好的知识,随时可以登录编程学习网哦~