遨游密码世界(二)

密码工具箱

上一篇介绍了消息传递存在的问题:机密性完整性认证不能否认性。本篇介绍解决这些问题的方案,咱们形象的把它们统称为 密码工具箱,工具箱里的 工具 列举以下:算法

  • 对称加密: 解决 机密性 的工具;
  • 公钥加密(也叫非对称加密): 解决 机密性 的工具;
  • 单向散列函数 :解决 完整性 的工具

(接上文:遨游密码世界(一)安全

2、密码学工具箱

1. 对称加密

1)异或运算

层叠消融

最强大脑有个 层叠消融 的项目,本质上就是属于密码学中的对称加密。函数

层叠消融 把两个图形重叠在一块儿,相同的部分会消失,不一样的部分会显示。若是这么说不太理解的话,能够看下面的 异或 运算,和 加减 运算同样简单。工具

0 XOR 0 = 0;
0 XOR 1 = 1;
1 XOR 0 = 1;
1 XOR 1 = 0;

XOR+- 都是数学里面的运算符号,叫作 异或运算符。它的规则是相同的数字作运算以后结果为 0,不一样的数字作异或运算以后结果为 1。这里便可看出 层叠消融 的本质即异或运算。加密

2)对称加密的核心就是异或运算

随机生成两个相同位数的数字 01001100 和 10101010,对第一个数字记作 A,第二个数字记作 B,对它两进行异或运算。code

0 1 0 0 1 1 0 0        // A
1 0 1 0 1 0 1 0        // B
1 1 1 0 0 1 1 0        // 结果

将结果 11100110 在与 B 作一次异或运算。视频

1 1 1 0 0 1 1 0         // 结果
1 0 1 0 1 0 1 0         // B
0 1 0 0 1 1 0 0         // 第二次的结果 === A

第一次对 A 和 B 作 异或运算 能够当作是 加密行为图片

// 加密过程
0 1 0 0 1 1 0 0        // A:消息
1 0 1 0 1 0 1 0        // B:密钥
1 1 1 0 0 1 1 0        // 结果:密文,加密以后看不懂的东东

第二次对第一次运算的结果再与 B 作 异或运算 能够当作是 解密行为get

// 解密行为
1 1 1 0 0 1 1 0         // 结果:密文
1 0 1 0 1 0 1 0         // B:密钥
0 1 0 0 1 1 0 0         // A:密文经过密钥处理以后又获得密文 A

电脑里的视频,图片,文本文件等若是要作加密,都是先转化为计算机识别的二进制数据,也就是 0 和 1 组成的数据,而后再作异或运算。数学

密钥

这个过程 B(密钥) 及其重要,加密时候使用它进行加密,解密也要使用它进行解密,若是你的密钥泄露了,那么别人就能够垂手可得的破解你的加密信息。

3)当前使用的对称加密算法

异或运算只是对称加密的最底层,实际使用的对称加密算法都是在这基础上发展的,而且要复杂的多,这里介绍这个是为了之后吹逼的时候增长光环属性。

前面介绍了异或运算加/解密消息,那么加密算法如何理解呢。好比有个算法对消息进行 16 次异或操做,这是一种算法,另外一个将消息拆分两半,只对其中一半进行加密,这又是一种加密算法。

**我的总结:**加密算法就是加密的具体行为。好比上面使用异或运算加密中,异或加密这个行为就是个算法。对于消息加密,只有同时知道 加密算法密钥 这两个东东才能正确获得明文。

  • DES 对称加密算法

DES 加密算法是 1977 年美联邦使用的标准,在那个年代被政府和银行普遍使用。

老外整出了加密算法以后,为了验证加密算法的安全性,会按期举办个密码比赛邀请全世界的密码学大师来破译加密算法。在 1999 年举办的 DES challenge 第三次比赛中被人用了 22 个小时就给破译了(在 1997 年举办的 DES challenge 第一次比赛就被人用 96 天给破译了),自此以后安全性存在严重问题,新的加密算法应运而生。

  • 三重 DES 对称加密算法

因为 DES 存在安全性问题,不久 三重 DES 加密算法 就诞生了,在 DES 基础上作细微修改,而且重复三次 DES 加密,因此叫 三重

固然,DES 底层作了 16 次异或运算,三重 DES 也就作了 48 次异或运算(不只仅作异或运算,还有其它行为),运算次数变得更复杂,致使加/解密速度并不高。有了不爽的东西人们就会寻求替代品。

  • AES 对称加密算法

1997 年的时候,米国标准化机构 NIST 对外海选新的加密算法,以求替代 DES 带来的尴尬境遇。并提早指定了新的密码算法的名称就叫作 AES

直到 2000 年,在世界各地的密码学专家竞争中,最终筛选出 15 个最终可能选择的加密算法;这 15 个加密算法通过又一轮的生死搏杀,最终比利时密码学家带来的加密算法 Rijndael 成为 AES 的最终选择。

最在用的最多的对称加密算法仍是 AES,固然没有绝对安全的算法,被破解也是时间问题,只不过这个时间来的会比较晚一点。

4)对称密码实际应用中的缺陷

办公室

你将用对称密码加密后的纸条扔给你的同事,他须要知道密钥才能解密出明文,因为大家都在一个办公室里,能够很方便的告诉他密钥是什么(这里举例好傻,都能告诉他密钥是啥了,怎么不直接告诉他明文信息,只是举例而已~~)。

若是你在上海,你的好朋友在北京,你用对称加密给他写了封信,你的好朋友须要密钥,你只好将密钥与信件一块儿塞进信封寄给好朋友。这样又显得很傻,信件被任何人拿到均可以经过密钥获得明文,加密失去意义。

很不爽,去叫人

最初看到这个场景的时候,我没忍住破口大骂,花了十分钟读到这里原来是个自相矛盾的东东,纯属浪费时间。对称加密的密钥传递是个老大难的问题,但能够经过其它技术弥补

2. 公钥加密(也叫非对称加密)






(未完待续,简书不能设置文章顺序,关于密码工具箱其它工具还需查阅资料完善,这里先发布文章占个位置,避免后续文章切断了遨游密码世界两篇文章的连续性)

相关文章
相关标签/搜索