密码学的简短发展历史(基础向)
----------------------------------主要内容的学习来源为课堂所学&书籍《现代密码学》(原书第四版,清华大学出版社,杨波编著)---------------------------------------------
密码学的发展大致经过了三个时代。即古典密码时期(19世纪末期之前)、近代密码时期(20世纪初~1948年)和现代密码时期(1949年至今),其中现代密码学又可以由公钥密码学的出现分为前后两个时期。
1.古典密码时期:加密主要通过手工作业的方式完成,如典型的“纸条缠绕”加密,凯撒密码等。
2.近代密码时期:随着两次工业革命的进行和发展,在加密方法中,人们开始逐步使用机电技术,如转轮机(Rotor)等,使得加密、解密的过程相对于手工加密来说更加快速,同时加密方式也可以变得很复杂,如二战中德军使用的ENIGMA密码等。
3.现代密码时期:密码学真正成为一门科学,在加密的研究过程中,逐步发展出严密而又科学的准则,如Kerckhoffs准则(算法本身无需保密,关键只在于密钥),Shannon提出的明文密文长度一致准则等。

由于计算机技术的发展,在设计现代密码方案时,必须要考虑到密钥的变化量的大小,以防止计算机的算力对于密码的穷举攻击,例如:
假设密钥变化量为2128≈10128×0.301=1038.5
考查该密码算法的抗穷举攻击能力:假想为计算机速度为10亿次/秒
10亿=109 1年=365×24×3600=3.15×107秒
1年可以穷举的密钥量为: 3.15×107× 109= 3.15×1016个密钥
所以2128个密钥需要1038.5/ 3.15×1016≈1022年(一万亿亿年)才能穷举完,因此该密码方案是健壮的,能够抗穷举攻击。
另外还有一点,我们现在更常见的大多数密码方案都属于开放式密码学,即基于Kerckhoffs准则,相对于传统将加密方法也保密的方法,这样做的优势在于:
(1)公开的设计承受公开的钻研和分析,因此可能更加健壮。
(2)安全缺陷(若存在的话),广泛的提前发现比被敌方默默发现会更好。
(3)基于算法保密性的系统安全,会因为代码逆向工程而导致严重威胁。相比之下,密钥不是代码的一部分,不存在逆向工程的弱点。
(4)公开设计使标准的建立成为可能。

浙公网安备 33010602011771号