加密就是把我们看得懂的字符(明文)转变成无法看懂的字符(密文),解密则相反,将无法看懂的字符(密文)还原成我们看得懂的字符(明文)。加密的目的是为了在信息传递过程中即便他人截取信息也看不出来是什么东西,整个过程可看作谍战剧中的间谍,为逃脱敌方的包围圈,打扮化妆成另一个人,逃出抵达安全地后再换回原样。

加解密的本质是数学,其核心为算法与密钥。算法好比选取快递公司,密钥犹如生成的快递单号,知道这两项便能还原内容(查到当前快递状态)。
加解密从公元前起历经数千年发展。古典密码:置换密码、栅栏密码、猪圈密码、斯巴达密码棒等等,其中最著名的当属置换密码中的凯撒移位,将明文按照字母表顺序向前或向后移N位,比如“code”每字母分别向后移动三位变成“frgh”或向前移动四位变成“ykza”,“frgh”与“ykza”便成了密文,截获密文消息的人不知所云。这种加解密如今破解起来易如反掌,即便不知道密钥移动多少位,将密文全文按字母表向后移动1、2、3、4、5......25,将其所有可能性遍历一次,哪个还原出的明文能够正常阅读便是原文,这就是所谓的暴力破解。

在计算机还未诞生的年代,暴力破解需耗费大量人力时间,如今加解密进入电子密码时代,即便不到一百年前二战时期发明的Enigma编码机,当年被誉为不可破解的神话,如今随便一台家用PC即可做到秒级运行破解。
网络传输数据必然使用到加解密,谁也不希望自己的微信、支付宝、京东、美团、抖音等账号明文出现在网络上,传输过程中有人偷看一眼不全泄露了吗?当代电子密码无论对称非对称,DES、AES、RSA、DSA、国密算法SM系列等等,没有一个算法过程简单易懂,拿算法相对最简单的DES来说,其加解密过程简图也令一般人看得头皮发麻:

电子密码无论采用哪种加解密方式,都可统一理解为两人间每次传递信息把信息放入一密不透风铁盒里,铁盒上挂一把锁,这把锁的钥匙全世界仅两把,一把发信方,一把收信方。

每次通讯,写信->放入铁盒里锁上->寄出->收到铁盒->用钥匙打开->拿出信阅读,回信亦如此,这样我们与对方的全部通讯信息有铁盒严密保护,其它人没钥匙无法打开看到。
加解密常用术语:
数据分组:待加密的数据好比学校里的所有学生,加密操作为上同一类课,当学生太多时一间教室坐不下,只能分多个班分别在多间教室上课。
初始向量IV:可理解为开始加密计算前的准备,犹如每天上第一堂课前,给教室打扫卫生摆正桌椅。
工作模式:ECB/CBC/OFB/CFB等等,每种工作模式运算流程大相径庭。好比学校考试,可全年级学生同时考同一份试卷;也可全年级每位学生同时考完全不同的试卷;还能以班为单位分批次考试,老师根据前一批学生考试成绩调整后一批试卷题难度。
填充补位:分班完毕后,某教室上课的学生太少,需要撑场面补足教室里人头,于是坐一些无关人员来凑数(填充无效数据)。
XOR异或运算:这是计算机使用最广最频繁的一种运算方式,两输入值相同为假、相异为真。犹如老师审批考卷,与标答一样则对,与标答不一样则错,一套固定不变的处理流程。
线性/非线性:线性满足f(ax+by)=af(x)+bf(y),简单理解为一次函数,线性以外统称非线性。线性好比考卷试题,不分难度,每题同样分数为5分;题目由简单到困难,分值由1分到20分则为非线性。
对称/非对称:对称可以理解锁门与开锁为同一把钥匙,非对称锁门的为一把钥匙,它却不能用来开锁,必须得用另一把钥匙来打开。
单向散列函数:网络传输中应用最广泛,网站上MD5、SHA值便属于hash的一种。其特性正向计算容易,反向计算非常困难。犹如单向门只能朝一个方向出,反过来进自动锁住。它由若干个十六进制数组成,只会出现0-9、a-f字符。

数字证书:由权威机构颁发的证书,通常用于https站点。相当于工商局给个体户开通营业执照,每个摊位(站点)独一份,营业执照有期限,快过期得去续签。如果某网站证书过期或使用非权威机构颁发的证书(自签证书),则打开它会显示如下风险信息,我们可以选择信任并继续,或者不信任不再访问。

数字签名:与现实中签名类似,不同的是其他人无法模仿伪造。
未来发展方向:
生物特征加密:将人的指纹、声纹、虹膜转换成全世界独一无二的数字密钥。用于将个人重要资产如银行卡、房产证等绑定,犹如DNA鉴定,其他人无法复制伪造,使用起来更加简便快捷安全。
量子密码:目前被称为绝对安全,一旦遭受监听、复制、篡改则留下痕迹(犹如听歌时突然出现滋滋滋杂音),坏人再也无法悄无声息地黑入别人设备。