张森ZS

write code everyday

导航

计算机速成课 第三十三集 加密

1. 背景:世界上不存在 100% 安全的系统,总会有漏洞存在

  • 应对方式:多层防御
  • 使用多层不同的安全机制来阻碍攻击者

2. 密码学 cryptography

  • 计算机安全中最常见的防御方式
  • 来自 crypto 和 graphy,大致翻译为「秘密写作」
  • 加密算法早在计算机出现前就有了
  • 加密(encryption):把明文转成秘文
  • 解密(decryption):把密文恢复回明文

3. 凯撒加密

  • 把信件中的字母,向前移动三个位置
  • 是一大类算法「替换加密」中的一种

4. 替换加密

  • 原理:把每个字母替换为其他字母
  • 缺点:字母出现的频率是一样的。例如:E 是英语中最常见的字母,如果把 E 加密成 X,则 X 出现的频率就会非常高。熟练的密码破译师可以从统计数据中发现规律,进而破译密码。

5. 移位加密

  • 举例:列移位加密
  • 把明文填入一个表格,然后换个顺序来读取明文,例如从左边开始,从下往上,一次一列,加密后字母的排列不同了,解密的关键是:知道读取方向和网格大小

6. 德国英格玛 Enigma 加密机

  • 1900 年,人们用密码学做了加密机器
  • 最有名的是 Enigma
  • 纳粹在战时使用英格玛加密通讯信息
  • 「转子」是加密的关键

7. 数据加密标准

  • 随着计算机的出现,加密从硬件转往软件
  • 1977 年,IBM 和 NSA 开发了「数据加密标准」
  • 到 1999 年,一台 25 完美元的计算机能在两天内把 DES 的所有可能密钥都试一遍,让 DES 算法不再安全
  • 因此,2001 年,出现了高级加密标准(AES)

8. 密钥交换

  • 出现背景:随着技术的发展,需要某种方法,在公开的互联网上传递密钥给对方,为了防止密钥被黑客获取,出现了解决方案「密钥交换」
  • 概念:密钥交换是一种不发送密钥,但依然让两台计算机在密钥上达成共识的算法
  • 核心:单项函数:是一种数学操作,很容易算出结果,但是想从结果逆向推算出输入非常困难
  • 用颜色来举例 「单向函数」 和 「密钥加密」 的原理
    • 比如:把颜色混合在一起很容易,但是想知道 混了什么颜色很难,要试很多种才知道

9. 迪菲-郝尔曼密钥交换

  • 单向函数是模幂运算
  • 使用模幂运算算出双方共享的密钥

10. 对称加密

  • 双方用一样的密钥加密和解密消息
  • 举例:凯撒加密、英格玛、AES

11. 非对称加密

  • 有两个不同的密钥,一个是公开的,另一个是私有的。人们用公钥加密消息,只有有私钥的人能解密,
  • 知道公钥只能加密,但是不能解密,它是不对称的
  • 也可以用私钥加密,用公钥解密,这种情况可以用于签名,服务器可以用私钥加密,任何人都可以用服务器的公钥解密
  • 举例:RSA,名字来自发明者 Rivest, Shamir, Adleman

12. 现代密码学关键部分

  • 对称加密
  • 密钥交换
  • 公钥密码学

posted on 2022-05-30 23:38  张森ZS  阅读(94)  评论(0编辑  收藏  举报