【他山之石】大话密码学·入坑系列·章一 启程
且子独不闻夫寿陵余子之学行于邯郸与?未得国能;又失其故行矣;直匍匐而归耳!
《庄子·秋水》
章一 · 启程
什么是密码学
密码学是对安全通信技术的研究,要能够有效的防范潜在攻击。-- 维基百科
说白了,就是研究一些能私密的传递信息的协议。密码学是数学和计算机科学的一个交叉。
主要有两个方面的应用:
- 加密通信,防止被篡改和窃听;
- 数字签名,数字签名可以用来认证签署人身份,防止抵赖。
密码学最基础的几个概念是 加密,解密,密文和密钥。
理论基础
再来说一点点密码学的理论基础。
首先,当代密码学是“互联网上的密码学”。历史上,从 Caesar 年代,就有秘密通信的概念,所以也诞生了Caesar 密码这样的加密方式。后来电气革命兴起,人们也发名了专门用于加密的硬件器材。但是真正密码学的大发展其实是计算机兴起之后。尤其是互联网到来后,所有的信息都是在公共区域进行传输,任何人都可以截取我们的数据,于是在数据传输之前进行加密就显得尤其重要,当代的密码学也是在这个情景下来发展的。
密码学发展史
- 古典密码学(1949年前)
代表 :凯(恺)撒密码 算法保密
古典密码学最佳实例就是军情,凯撒密码(Caesar 密码)
我们以凯撒密码为例,凯撒要给他的将军发一封密信,这里凯撒使用的算法是把字母按照字母表顺序往后移动一定的位数,比如信息本来是 A ,现在往后移动3个位数,就变成了 D ,这样生成的密文就谁也看不懂了。那这个过程中算法是“字母偏移”,而 key 就是3。将军收到密文后,根据同样的算法和 key 反推就可以解密。
- 近代密码学 · (1949-1975年)
代表:对称加密
利用 陷门因素保密,例如单向函数参数保密。
目前流行的加密解密算法一般都是公开的,因为不公开一般也没人敢用,怕有后门。安全完全在于加密人和解密人手里握有的 key 是否泄密。即对称加密在加密密码不泄露情况下是可以保证计算安全的。
二战之后,政府也严格控制密码学的发展。直到八九十年代,密码学才逐渐转为民用。
模仿游戏
- 现代密码学(1976年-至今)
代表:非对称加密 RSA
当代密码学一直以来是分两套系统:对称加密和非对称加密。其中非对称加密也被叫做公钥加密,密码学的最核心技术。
对称加密和非对称加密是如何区分的呢?刚刚咱们提过,加密和解密过程中都是要有 key 参与,如果加密和解密使用同一个 key ,这就是对称加密技术,否则则是非对称加密技术。非对称加密略有一些反直觉。具体做法是首先生成一对 key ,其中一个是公钥,Public Key ,公钥是可以公开给任何人的,另外一个是私钥,Private Key ,要严格保密。发送方首先拿到接收方的公钥,用公钥把信息加密,接收方收到密文后,用私钥解密获得信息。之所以公钥和私钥能够这样配合工作,是因为它们两个天生就是一对儿,有着天然的数学联系。具体的联系方式就跟使用的具体的加密算法有关了。非对称加密中最著名的算法有两种,一个是 RSA ,这是用三个作者的名字的缩写命名的算法, 另外一个是 ECC ,也就是椭圆曲线算法。RSA 是非对称加密技术的开山鼻祖。ECC 是更高效的一种加密算法,比特币就是使用了这种加密算法。
对称加密在发送方和接收方使用相同的 key ,所以建立安全通信的前提是双方先要有共享的 key ,那么没有加密通道的情况下,key 应该如何安全的传递给对方呢?这个在互联网上是非常有挑战性的。相对比之下,公钥加密技术要分享的是公钥,不用担心泄露问题,相对要安全一些,另外公钥加密技术也衍生出了数字签名技术。
当然,公钥加密技术也需要考虑如何确认公钥所有人等技术问题,所以就有了 CA 也就是发证机构,以及 PKI 公钥基础设施等等这些的概念,这里我们就不展开了。
总结
本节我们对密码学做了一个简要的介绍,大体上要点有这么几个:第一,密码学是对安全通信技术的研究,要能抵御各种恶意攻击。第二,密码学的底层是数学,密码学的安全取决于一个难度足够高的数学问题,保证计算机在可接受的时间跨度内根本不可能运算出密钥。第三,当代密码学是互联网环境下的密码学,关键性技术是公钥加密技术。
参考: