密码学入门:历史与基础概念
1. 密码学简介
密码学是安全工程与数学的交汇点,它为现代安全协议提供了基础工具,是保护分布式系统的关键技术,但实际运用中却很难做好。过去25年,计算机安全和密码学领域逐渐分离,安全人员不一定了解可用的密码工具,密码学人员也不一定理解现实世界的问题。这就像医生不仅要懂外科手术,还要了解生理学一样,安全工程师需要熟悉密码学和计算机安全等多方面知识。
密码学相关的基本术语如下:
- 密码学(Cryptography):设计密码的科学与艺术。
- 密码分析(Cryptanalysis):破解密码的科学与艺术。
- 密码学(Cryptology,常缩写为Crypto):对上述两者的研究。
- 明文(Plaintext):加密过程的输入。
- 密文(Ciphertext):加密过程的输出。
此外,还有一些密码学原语,如分组密码、流密码和哈希函数等。分组密码又可分为共享密钥(也叫秘密密钥或对称密钥)和公钥(或非对称密钥)两种类型,数字签名方案是一种特殊的非对称密码原语。
2. 历史背景
2.1 早期的替换密码
- 凯撒密码 :尤利乌斯·凯撒将信件中的 ‘A’ 写成 ‘D’,‘B’ 写成 ‘E’ 等进行加密。奥古斯都·凯撒继位后,将密钥从 ‘D’ 改为 ‘C’。令人惊讶的是,西西里黑手党头目贝尔纳多·普罗文扎诺也曾使用类似代码,最终因警方截获并破译其部分消息而于2006年被捕。
- 单字母替换密码 :阿拉伯人将这一思想推广为单字母替换,使用关键字