世界上不存在100% 安全的系统, 所以系统架构师会部署"多层防御"
加密算法(Cipher) 加密(encryption) 解密 (decryption)
替换加密: 把每个字母替换成其他字母
列移位加密
英格玛 加密算法 后来 被 图灵破解了.
1977年 IBM 和 NSA 开发了 “数据加密标准”
DES 最初使用 56 bit长度的二进制秘钥, 意味着 2个56次方. 但是 1999年 一台售价 25W美元的计算机在两天内把DES所有可能都试了一遍.
2001年高级加密标准 AES, 使用 128位/192位/256位, 让暴力破解更加困难
AES 将数据切成一块一块的, 每块16字节, 然后用秘钥进行一系列替换加密和移位加密, 再加上一些其他操作, 进一步加密, 可能会加密 10步左右. 需要考虑性能, 加密一整天的话, 估计人们会疯掉.
密钥交换, 用于在网络中公开传递密钥, 是一种不发送密钥, 但依然让两台计算机在密钥上达成共识的算法.
使用 单向函数来做, 很容易算出结果, 但是想要反推算出输入 非常困难.
迪菲-赫尔曼密钥交换, 单向函数是 模幂运算,
先做 幂运算, 然后除以某个数, 得到余数.
例如 我们想算 3的5次方, 模31
3的5次方 = 243
243 除31 取余得到26
3 的 5次方 mod 31 =26
如果有 余数 和 基数, 很难得知 指数是什么
如果 这个基数是上百位, 那么想要找到秘密指数是几乎不可能的.
我们公开 基数 和 模数
P1选择一个 秘密指数x, 计算 B^x mod M 结果 , 发给 P2
双方使用一样的密钥加密和解密消息, 这叫 “对称加密”, 因为密钥一样
还有非对称加密:
人们用公开密钥加密, 只有私钥可以解密.
反之用私钥解密, 用公钥解密 , 用于签名, 服务器可以用私钥加密, 任何人都可以用服务器的公钥解密
任何人都不能伪造, 因为只有服务器可以加密, 证明数据来源正确可信.
最流行的的 非对称加密 技术是 RSA