WindowsC/C++加密解密实战
上QQ阅读APP看书,第一时间看更新

1.2 密码学简史

密码学是研究通信安全保密的科学,其目的是保护信息在信道上传输的过程中不被他人窃取、解读和利用,它主要包括密码编码学和密码分析学两个相互独立又相互促进的分支。前者研究将发送的信息(明文)变换成没有密钥不能解或很难解的密文的方法,而后者则研究分析破译密码的方法。其发展经历了相当长的时期。第一次世界大战之前,密码学的重要进展根本是不为人知的,很少有文献披露这方面的信息。直到1918年,由W.F. Friendnmn论述了重合指数及其在密码学中的应用以及转轮机专利的发表才引起了人们的重视,但仅仅由军事和秘密部门所控制。

第一次世界大战之后到20世纪40年代末期,密码学家们将信息论、密码学和数学结合起来研究,使信息论成为研究密码编码学和密码分析学的重要理论基础。完全处于秘密工作状态的研究机构,开始在密码学方面取得根本性的进展,具有代表性的有Shannon(香农)的论文—《保密系统的通信理论》和《通信的数学理论》,他将安全保密的研究引入了科学的轨道,从而创立了信息论的一个新学科。

从20世纪50年代初期到60年代末期的20年中,在密码学的研究方面公开发表的论文极少,但David Kahn于1967年出版的著作—《破译者》使密码学的研究涉及了相当广泛的领域,使不知道密码学的人了解了密码学,因此密码学的研究有了新的进展。

自20世纪70年代初期到现在,随着计算机科学与技术的发展,促进了密码学研究的兴起和发展,人们使用密码学技术来保护计算机系统中信息的安全。因此,在密码学的研究和应用等方面取得了许多惊人的成果和理论。具有代表性的有:

(1)Diffie和Hellman于1976年发表的“密码学的新方向”一文提出了公开密钥密码学(公开密钥或双密钥体制),打破了长期沿用单密钥体制的束缚,提出了一种新的密码体制。公开密钥体制可使收、发信息的双方无须事先交换密钥就可以秘密通信。

(2)Horst Festal研究小组于20世纪70年代初着手研究美国数据加密标准(Data Encryption Standard,DES),并于1973年发表了“密码学与计算机保密”等有价值的论文,该文论述了他们的研究成果并被美国标准局(National Bureau of Standards,NBS)采纳,于1977年正式公布实施为美国数据加密标准,并被简称为DES标准。

上述密码学的发展可粗略地划分为三个阶段:第一阶段(1949年之前)的密码学可以说不是什么学科,仅为一门艺术;第二阶段(1949年到1975年)可以说是密码学研究的“冬天”,成果和论文少且为单密钥体制,但在这一阶段有如Shaman的理论和David Kahn的著作并为密码学奠定了坚实的理论基础;第三阶段(1976年到现在)可以说是密码学研究的“春天”,密码学的各种理论和观点百花齐放,应用硕果累累。

我们也可以看一下密码历史长河中的年份流水表:

公元前400年,希腊人发明了置换密码。

1881年,世界上第一个电话保密专利出现。

二战期间,德国军方启用“恩尼格玛”密码机。

1976年,由于对称加密算法已经不能满足需要,Diffie和Hellman发表了一篇叫《密码学新动向》的文章,介绍了公钥加密的概念,由Rivet、Shamir、Adelman提出了RSA算法。

1985年,N.Koblitz和Miller提出将椭圆曲线用于密码算法,根据是有限域上的点群中的离散对数问题ECDLP,它比因子分解更难(指数级)。

ECC产生背景:随着分解大整数方法的进步和完善、计算机速度的提高以及计算机网络的发展,RSA的密钥需要不断增加长度才能保证数据安全。但是,这导致了RSA加密速度大为降低,对使用RSA的应用带来了很大的负担,需要一种新的算法来替代RSA。

1993年,美国国家标准和技术协会(National Institute of Standards and Technology,NIST)提出安全散列算法(SHA)。

1995年,又发布了修订版FIPS PUB 180-1,通常称之为SHA-1。

1997年,美国国家标准局公布实施了美国数据加密标准(DES)。

1997年,利用各国7万台计算机历时96天破解了DES的密钥。

1998年,电子边境基金会(Electronic Frontier Foundation,EFF)用25万美元制造的专用计算机花费56小时破解了DES的密钥。

1999年,EFF用22小时15分完成了DES的破解工作。

1999年年底,有人把512位的整数分解因子,512位的RSA密钥被破解。

2000年10月,美国国家标准和技术协会(NIST)宣布选择Rijndael作为将来的AES。注:Rijndael是在1999年由研究员Joan Daemen和Vincent Rijmen创建的。

2004年,在国际密码学会议(Crypto’2004)上,来自山东大学的王小云教授的报告介绍了破译MD5、HAVAL-128、MD4和RIPEMD算法。随后SHA-1也被宣告破解。

2009年年底,768位的整数也被成功分解,威胁到了现在流行的1024位密钥的安全性。