该博客部分图片源自 慕课—山东大学《密码学引论》
发展阶段
- 古代~1949,朴素的古典密码:密码的设计主要依赖人们的直觉和经验。
- 如古希腊斯巴达密码器、凯撒密码、维吉尼亚密码(凯撒密码的升级版)以及我国古代的虎符、阴书等。
- 二战时期的密码:如 E n i g m a Enigma Enigma密码机、日本 “ “ “紫密 ” ” ”等。
- 1949~1975,密码学理论开始得到发展。
- Shannon发表《保密系统的通信理论》,建立私钥密码系统的理论基础,使密码学成为一门学科。
- IBM技术报告
- 1976$至今:密码理论和应用得到蓬勃发展。
- DES$加密成为标准,该标准是历史上第一个公开算法技术细节的商用密码标准。
- Diffie、Hellman发表 《密码学的新方向》
- Rivest、Shamir、Adleman提出RSA密码体制。
基本概念
- 明文 ( p l a i n t e x t ) (plaintext) (plaintext):未加密的消息
- 密文( c i p h e r t t e x t cipherttext cipherttext):加密后的消息
- 发送者( s e n d e r sender sender):生成并发送密文
- 接收者( r e c e i v e r receiver receiver):接受并解密密文
- 加密( e n c r y p t i o n encryption encryption):讲明文变换成密文的过程
- 解密( d e c r y p t i o n decryption decryption):由密文恢复成明文的过程
- 加密算法( E n c r y p t i o n A l g o r i t h m Encryption\ Algorithm Encryption Algorithm):发送者对铭文进行加密时所采用的规则
- 解密算法( D e c r y p t i o n A g o r i t h m Decryption\ Agorithm Decryption Agorithm):接收者对密文进行解密时所采用的规则
- 密钥( k e y key key):加密与解密通常在一组 k e y key key的控制下进行,加密密钥( E n c r y p t i o n K e y Encryption\ Key Encryption Key)、解密密钥( D e c r y p t i o n K e y Decryption\ Key Decryption Key)
密码体制的分类
根据密钥( k e y key key)分类
- 对称密码 ( S y m m e t r i c C i p h e r ) (Symmetric\ Cipher) (Symmetric Cipher):加密密钥和解密密钥相等,即 E n c r y p t i o n K e y = D e c r y p t i o n K e y Encryption\ Key=Decryption\ Key Encryption Key=Decryption Key,也称为私钥 ( P r i v a t e K e y ) (Private\ Key) (Private Key)密码
- 非对称密码 ( A s y m m e t r i c C i p h e r ) (Asymmetric\ Cipher) (Asymmetric Cipher):加密密钥和解密密钥不等,即 E n c r y p t i o n K e y ≠ D e c r y p t i o n K e y Encryption\ Key≠Decryption\ Key Encryption Key=Decryption Key,也称为公钥 ( P u b l i c K e y ) (Public\ Key) (Public Key)密码
根据加密方式划分
- 流密码:对明文进行逐比特加密
- 分组密码:顾名思义,对明文先分组后加密
密码的安全性
攻击方法
按攻击类型进行划分
- 被动攻击:攻击者能动性较弱,主要有监听,截获密文后分析等手段
- 主动攻击:攻击者能动性较强,主要有串扰系统,删除,更改,增填,重放,伪造等手段
按攻击者已具备的条件
- 唯密文攻击 ( C i p h e r t e x t O n l y A t t a c k ) (Ciphertext\ Only\ Attack) (Ciphertext Only Attack):攻击者仅掌握密文,对密文进行分析以获得密钥进而分析出明文
- 已知明文攻击 ( K n o w n P l a i n t e x t A t t a c k ) (Known\ Plaintext\ Attack) (Known Plaintext Attack):攻击者掌握若干组明文-密文对,以此来分析获得密钥或目标明文
- 选择明文攻击 ( C h o s e n P l a i n t e x t A t t a c k ) (Chosen\ Plaintext\ Attack) (Chosen Plaintext Attack):相较于已知明文攻击,攻击者能动性更强,从已知的明文-密文对中选择若干组进行分析。如二战期间美国破解日军 “ “ “紫密 ” ” ”算法。
- 选择密文攻击 ( C h o s e n C i p h e r t e x t A t t a c k ) (Chosen\ Ciphertext\ Attack) (Chosen Ciphertext Attack):除了已知明文攻击的基础,攻击者还可以任意制造或者选择一些密文,并得到其解密后的明文
密码学安全观点
- 密码系统安全性基于密钥的保密性,而非算法的保密性。即算法应该是公开的,密钥则是要保密的。
- 破译密码的成本应超过加密信息的价值,破译的时间超过该信息的生命周期。