云漫圈 | 漫画:什么是加密算法?

戳蓝字“CSDN云计算”关注我们哦!

文章来自:程序员小灰作者:小灰

640?wx_fmt=jpeg


640?wx_fmt=jpeg

640?wx_fmt=jpeg


640?wx_fmt=jpeg

640?wx_fmt=jpeg


640?wx_fmt=jpeg



加密算法的历史


加密算法最早诞生在什么时候?是在计算机出现之后吗?不不不,早在古罗马时期,加密算法就被应用于战争当中。


640?wx_fmt=png


在大规模的战争中,部队之间常常需要信使往来,传递重要的军事情报。


640?wx_fmt=png


可是,一旦信使被敌军抓获,重要的军事情报就完全暴露给了敌方。


640?wx_fmt=png


甚至,狡猾的敌人有可能篡改军事情报,并收买信使把假情报传递给我方部队。



640?wx_fmt=png


这样一来,我方部队就完全落入到了敌方的陷阱之中。这种拦截并篡改信息的手法,在网络安全领域被称为中间人攻击


怎样防止这种情况的发生呢?不让信使被敌人抓获?这个肯定是无法绝对避免的。


那么我们不妨换个角度,让敌人即使截获了军事情报,也看不懂里面的内容,这就是对信息的加密


640?wx_fmt=png


如何进行加密呢?古人想出了一种非常朴素的加密方法,被称为凯撒密码。加密的原理就像下图这样:


640?wx_fmt=png



如图所示,图中第一行的字母代表信息的“明文”,第二行字母代表信息的密文。这个加密算法十分简单,就是选择一个偏移量(这里的偏移量是2),把明文当中的所有字母按照字母表的顺序向后偏移两位,从而生成密文。比如:


原文的字母A,对应的密文是字母C

原文的字母D,对应的密文是字母F

原文的单词Java,对应的密文是Lcxc


这样一来,敌方看到信使的情报内容,就彻底蒙逼了。相应的,我军事先约定好了密文通信的偏移量,当友军收到情报以后,把密文的所有字母向前偏移两位,就还原成了明文,这个过程叫做解密


但是,这种加密方法真的百分百保险吗?并不是。


在英语的26个字母中,出现频率最高的字母是e。如果敌人截获了情报,发现这段看不懂的密文当中出现频率最高的字母是g,由于e和g相差两个字母,就可以猜测出我军的密文通信很可能选择2作为偏移量。这样一来,我军的密码就被破解了。


最不济,敌人可以把每一种偏移量都尝试一遍(26个字母,最多25种偏移),终究可以试出符合正常语法的偏移量。这种方式被称为暴力破解


640?wx_fmt=jpeg


640?wx_fmt=jpeg



加密算法的种类


在如今的信息安全领域,有各种各样的加密算法凝聚了计算机科学家门的智慧。从宏观上来看,这些加密算法可以归结为三大类:哈希算法、对称加密算法、非对称加密算法。


1.哈希算法

从严格意义上来说,哈希算法并不属于加密算法,但它在信息安全领域起到了很重要的作用。


哈希算法能做什么用呢?其中一个重要的作用就是生成信息摘要,用以验证原信息的完整性和来源的可靠性。


让我们来举个栗子:


在某个互联网应用上,有用户下单买了东西,于是应用需要通知支付宝,并告诉支付宝商户ID、支付金额等等信息。


640?wx_fmt=png


支付宝怎么知道这个请求是真的来自该应用,并且没有被篡改呢?


请求的发送方把所有参数,外加双方约定的Key(例子中Key=abc)拼接起来,并利用哈希算法生成了一段信息摘要:


Hash(1234_100_abc) = 948569CD3466451F


而请求的接收方在接到参数和摘要之后,按照同样的规则,也把参数和Key拼接起来并生成摘要:


Hash(1234_100_abc) = 948569CD3466451F


如果最终发现两端信息摘要一致,证明信息没有被篡改,并且来源确实是该互联网应用。(只要参数修改了一点点,或者Key不一样,那么生成的信息摘要就会完全不同)


生成信息摘要的过程叫做签名,验证信息摘要的过程叫做验签


哈希算法包含哪些具体的算法呢?其中最著名的当属MD5算法。后来,人们觉得MD5算法生成的信息摘要太短(128位),不够安全,于是又有了SHA系列算法



2.对称加密算法


哈希算法可以解决验签的问题,却无法解决明文加密的问题。这时候,就需要真正的加密算法出场了。


什么是对称加密呢?这个概念很好理解:


640?wx_fmt=png


如图所示,一段明文通过密钥进行加密,可以生成一段密文;这段密文通过同样的密钥进行解密,可以还原成明文。这样一来,只要双方事先约定好了密钥,就可以使用密文进行往来通信。


除了通信过程中的加密以外,数据库存储的敏感信息也可以通过这种方式进行加密。这样即使数据泄露到了外界,泄露出去的也都是密文。


对称加密包含哪些具体的算法呢?在早期,人们使用DES算法进行加密解密;后来,人们觉得DES不够安全,发明了3DES算法;而如今,最为流行的对称加密算法是AES算法


不知道读者中有多少人曾经接触过欧盟的GDPR法案,为了遵从该法案,有的企业就曾经将数据库中的敏感信息使用3DES进行加密。


总而言之,对称算法的好处是加密解密的效率比较高。相应的,对称算法的缺点是不够安全。为什么呢?通信双方约定的密钥是相同的,只要密钥本身被任何一方泄露出去,通信的密文就会被破解;此外,在双方建立通信之初,服务端把密钥告诉给客户端的时候,也有被拦截到的危险。


为了解决这一痛点,非对称加密就登场了。



3.非对称加密算法


什么又是非对称加密呢?在刚刚接触到的时候,或许你会觉得这种算法有些古怪:


640?wx_fmt=png


如图所示,在非对称加密中存在一对密钥,其中一个叫做公钥,另一个叫做私钥。在加密解密的过程中,我们既可以使用公钥加密明文,使用私钥解密密文;也可以使用私钥加密明文,使用公钥解密密文。


这样设计有什么好处呢?看看通信的过程就知道了:


1.在双方建立通信的时候,服务端只要把公钥告诉给客户端,自己保留私钥。

2.客户端利用获得的公钥。加密另外一个密钥X(可以是对称加密的密钥),发送给服务端。

3.服务端获得消息后,用自己的私钥解密,得到里面隐含的密钥X。

4.从此以后,双方可以利用密钥X进行对称加密的通信了。


640?wx_fmt=png


在这个过程中,即使公钥被第三方截获,甚至后续的所有通信都被截获,第三方也无法进行破解。因为第二步利用公钥加密的消息,只有私钥才能解开,所以第三方永远无法知道密钥X是什么。


非对称加密算法的代表有哪些呢?最著名的当属RSA算法


既然非对称加密这么强大,是不是没有缺点呢?也不是。非对称加密最大的问题,就是性能较差,无法应用于长期的通信。


640?wx_fmt=jpeg


640?wx_fmt=jpeg


关于加密算法,小灰之前曾经写过一部分相关漫画,没看过的小伙伴可以看看哦:


漫画:什么是MD5算法?

漫画:如何破解MD5算法?

什么是AES算法?(整合版)



推荐阅读

  • 5G大规模商用来临之前,你必须知道的几个知识点

  • “离开360时,它只给了我一块钱”

  • AI找Bug,一键快速预测

  • 原子互换:一统公链江湖的神来之笔

  • 春晚鬼畜 B 站日排行最高,赵本山:我的时代还没有结束!

  • PDF翻译神器,再也不担心读不懂英文Paper了

  • 新闻联播也可以拿来做数据分析?

  • 高晓松侃5G!2019开年大讲揭示运营商的秘密



1.微信群:

添加小编微信:color_ld,备注“进群+姓名+公司职位”即可,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


2.征稿:

投稿邮箱:liudan@csdn.net;微信号:color_ld。请备注投稿+姓名+公司职位。

640?wx_fmt=png喜欢就点击“好看”吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524747.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入浅出大数据:到底什么是Hadoop?

戳蓝字“CSDN云计算”关注我们哦!作者:小枣君来源:鲜枣课堂1998年9月4日,Google公司在美国硅谷成立。正如大家所知,它是一家做搜索引擎起家的公司。无独有偶,一位名叫Doug Cutting的美国工程师&#xff0c…

趣挨踢 | 30 个让程序员崩溃的瞬间,笑死我了!

戳蓝字“CSDN云计算”关注我们哦!文章来自:程序员最幽默前方高能,看完不笑的来找我。我自己看了好几遍,程序员真的是一群逗比的人才!1. 公司实习生找 Bug2. 在调试时,将断点设置在错误的位置3. 当我有一个很…

“史上最强春节档”来袭!数据解读值得看的影片是......

戳蓝字“CSDN云计算”关注我们哦!作者介绍:徐麟,目前就职于互联网公司数据部,哥大统计数据狗,从事数据挖掘&分析工作,喜欢用R&Python玩一些不一样的数据个人公众号:数据森麟&#xff08…

大厂必问的分布式究竟是什么鬼?

戳蓝字“CSDN云计算”关注我们哦!新的一年又开始了,各大招聘咨询机构都会对过去一年市场上的人才供需进行盘点。根据高端招聘平台100 offer发布的Java人才盘点报告,在过去的2018年,Java仍然是最流行、招聘供需量最大的技术语言。在…

为什么不用原生Spring-Cloud-Config

戳蓝字“CSDN云计算”关注我们哦!引言近几年传统应用架构已经逐渐朝着微服务架构演进。那么随着业务的发展,微服务越来越庞大,此时服务配置的管理变得会复杂起来。为了方便服务配置文件统一管理,实时更新,配置中心应运…

cesium实现区域贴图及加载多个gif动图

1、cesium加载多个gif动图 Cesium的Billboard支持单帧纹理贴图,如果能够将gif动图进行解析,获得时间序列对应的每帧图片,然后按照时间序列动态更新Billboard的纹理,即可实现动图纹理效果。为此也找到了相对于好一点的第三方库libg…

DevOps“兵器”60样,你都会使哪几样?

戳蓝字“CSDN云计算”关注我们哦!编前按:获得开发者社区支持的自动化,开源的工具是大家梦寐以求的。这里列举了 60 多款最棒的开源工具,可以帮助你很好的实行 DevOps。一、开发工具版本控制&协作开发1.版本控制系统 GitGit是一…

云漫圈 | 腾讯面试,我竟然输给了final关键字

戳蓝字“CSDN云计算”关注我们哦!作者:乔戈里来源:程序员乔戈里腾讯面试现场——————final 在 Java 中是一个保留的关键字,可以声明变量、方法、类。什么是final变量 / 类 / 方法?任何变量前被 final 修饰就是 fin…

学习微服务网关zuul,看这篇就够了

戳蓝字“CSDN云计算”关注我们哦!作者:爱撒谎的男孩 原文:https://chenjiabing666.github.io/2018/12/25/zuul%E6%9C%8D%E5%8A%A1%E7%BD%91%E5%85%B3/本文系读者投稿,已获作者原创授权。如果你有好文章,可以戳这里投稿…

写给程序员的裁员防身指南

戳蓝字“CSDN云计算”关注我们哦!大家都知道 18 年底许多大公司都开始了「人员优化」动作,不仅仅美团等大厂有所行动,就连一些平时求贤若渴的小公司也有所动作。本来我以为关于劳动法的事情,许多人应该多多少少都应该了解。但最近…

使用Kubernetes和Docker将Spring Boot与MongoDB作为容器部署

戳蓝字“CSDN云计算”关注我们哦!对于本教程,您将拥有一个Docker化Spring-Boot实例程序,该应用程序与MongoDB通信以获取GET/POST API请求,并部署在Kubernetes集群中。前提条件MinikubeKubectlDockerMavenDocker是一个具有"社…

5种数据分析常用的思维方法!

戳蓝字“CSDN云计算”关注我们哦!转自:中国统计网来源:网络大数据在数据分析中,数据分析思维是框架式的指引,实际分析问题时还是需要很多“技巧工具”的。就好比中学里你要解一元二次方式,可以用公式法、配…

分布式系统与消息投递

戳蓝字“CSDN云计算”关注我们哦!原文:https://draveness.me/message-delivery消息是一个非常有趣的概念,它是由来源发出一个离散的通信单元,被发送给一个或者一群接受者,无论是单体服务还是分布式系统中都有消息的概念…

“迁移策略+新容器运行时”应对有状态应用的冷热迁移挑战

戳蓝字“CSDN云计算”关注我们哦!作者:稻农来源:阿里系统软件技术稻农(叶磊)阿里云智能事业群高级技术专家参与主导容器运行时及网络创新工作;目前的工作侧重于基于进程虚拟化的研究及增强(网络…

C语言 main 函数参数 main(int argc, char *argv[]) - C语言零基础入门教程

目录 一.main 函数写法二.main 函数参数简介三.使用 main 函数参数 1.打印 main 函数参数 a.直接运行 exe 文件b.打开 cmd 命令行窗口执行 exe 文件c.打开 cmd 命令行窗口执行 exe 文件并设置 main 函数参数 2.使用 main 函数参数 三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C …

网络通信的两个要素

如何实现网络通信? 通信双方地址: ip 端口号 192.168.16.124:5900 规则:网络通信的协议 TCP/IP参考模型: 小结: 1.网络编程两个主要问题: 定位一台或多台主机 找到主机如何通信 2.网络编程要素 …

讲讲亿级PV的负载均衡架构!

戳蓝字“CSDN云计算”关注我们哦!来源:孤独烟引言本来没想写这个题材的,为了某某童鞋能够更好的茁壮成长,临时写一篇负载均衡的。负载均衡,大家可能听过什么3层负载均衡、4层负载均衡、7层负载均衡什么的?那…

云漫圈 | 学Python还是Java, 8张漫画带你全面分析

戳蓝字“CSDN云计算”关注我们哦!作者:Leoxin来源:菜鸟学PythonJava和Python两门语言都是目前非常热门的语言,可谓北乔峰南慕容,二者不分上下,棋逢对手。但是对于初学者来说,非常困惑&#xff0…

史上最全SQL优化方案

戳蓝字“CSDN云计算”关注我们哦!作者:惨绿少年来源:Hollis在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而…

趣挨踢栏目精华汇总

出品 | CSDN云计算 有问有答,一问一答的形式,帮助大家快速解决更多专业难题。 出品 | CSDN云计算 趣挨踢,用最轻松活泼的形式,让你看尽生活百态。 趣挨踢 | 30 个让程序员崩溃的瞬间,笑死我了! 趣挨踢 …