密码学入门
约 2049 字大约 7 分钟
2025-11-02
密码学入门:从古典密码到现代加密
第一部分:古典密码学(详细解析)
古典密码主要依赖手工或简单机械实现,核心思想是「字符替换」与「顺序置换」,虽已不再安全,但奠定了密码学的基本逻辑。
一、移位密码(Shift Cipher)—— 最简单的字符偏移
1. 核心原理
将明文字母表按固定密钥(位移位数)循环移位,形成密文字母表,数字、符号可类比处理。密钥范围通常为1-25(26个字母的循环特性)。
2. 典型代表:凯撒密码(Julius Caesar 专用)
默认密钥为3(即字母向后移3位),是古罗马凯撒用于军事通信的密码。
- 加密规则:明文字母 + 3 → 密文字母(循环处理:Z→C)
- 实例:明文「ATTACK AT DAWN」→ 加密后「DWWDFN DW GDZQ」
- 解密规则:密文字母 - 3 → 明文字母(反向移位)
- 扩展:自定义密钥(如密钥=5,A→F),但本质逻辑不变。
3. 安全性分析
极低,属于「弱密码」。因密钥仅25种可能,可通过「穷举法」快速破解(尝试25次即可覆盖所有可能);同时未改变字母频率,易通过统计分析定位。
二、替代密码(Substitution Cipher)—— 一对一字符映射
核心是构建明文字符与密文字符的「唯一映射表」,比移位密码更复杂,但仍依赖字符本身的替换。
1. 单表替代密码(固定映射)
- 原理:将26个字母随机重排,形成唯一替换表(如A→M、B→X、C→Q...),整个加密过程使用同一映射表。
- 优点:密钥空间扩大(26! 种可能,约4×10²⁶),比移位密码难穷举。
- 致命弱点:未破坏明文字母的频率特征。英语中「E」「T」「A」是高频字母,密文中对应高频字符可直接关联,通过「频率分析法」快速破解。
- 实例:简单替换密码「猪圈密码」(用图形符号替代字母),本质仍是单表替代。
2. 多表替代密码(动态映射)—— 古典密码的巅峰
为解决单表替代的频率漏洞,引入「多组映射表」,由密钥控制映射表的切换,核心代表是维吉尼亚密码(Vigenère Cipher)。
- 原理: 密钥为一个单词(如「KEY」),每个字母对应一个移位值(A=0、B=1...Z=25,即K=10、E=4、Y=24);
- 将明文按密钥长度分组,每组对应密钥的一个字母,按该字母的移位值进行加密;
- 循环使用密钥,直到明文完全加密。
- 实例:明文「ATTACK」,密钥「KEY」 分组:A T T A C K(与密钥K E Y一一对应,循环密钥);
- 加密:A+10=K、T+4=X、T+24=R、A+10=K、C+4=G、K+24=I;
- 密文:K X R K G I。
- 安全性:掩盖了单字母频率特征,在19世纪前长期未被破解,直到「卡西斯基试验」出现(通过寻找重复密文片段推断密钥长度)。
三、置换密码(Transposition Cipher)—— 字符顺序重排
与替换密码的核心区别:不改变字符本身,仅打乱字符的排列顺序,通过「位置置换」实现加密。
1. 栅栏密码(Rail Fence Cipher)—— 直观的顺序重组
- 原理:将明文按「之」字形书写在指定栏数的栅栏上,再按行依次读取得到密文。
- 实例:明文「HELLO WORLD」,密钥(栏数)=2 「之」字形排列: 第1行(奇数位):H . . . O . . . L 第2行(偶数位):. E . L . W . R . D
- 按行读取:H O L E L W R D → 密文「HOLELWRD」(简化版,完整版需保留所有字符)。
- 破解关键:通过尝试不同栏数,结合语言语义(如英文单词拼写)还原顺序。
2. 密钥置换密码—— 按密钥规则重排
- 原理:将明文分成固定长度的组,按密钥指定的顺序重排每组内的字符。
- 实例:明文「SECURITY」,密钥「3124」(表示重排顺序为第3位→第1位→第2位→第4位) 分组:按密钥长度4分组,补全空位(如「SEC URI TY_」,_为填充符);
- 重排:第一组「SEC」(补为「SEC_」)按3→1→2→4顺序取:C→S→E→_;
- 最终密文:「CSE_ URI_ YT__」(实际使用中会去除填充符或用特定符号替代)。
四、古典密码的共性与局限
- 核心共性:均基于字符层面的操作,依赖人工计算,无复杂数学支撑。
- 主要局限:密钥空间有限、易被统计分析或穷举破解、无法抵抗已知明文攻击(若获取部分明文与密文对应,可快速推导出密钥)。
- 历史意义:提出「替换」「置换」两大核心思想,为现代密码学提供了基础逻辑;证明了「密钥保密性」是密码安全的核心(古典密码的密钥一旦泄露,加密即失效)。
第二部分:现代加密算法
现代加密以「复杂数学函数」为核心(如大整数分解、椭圆曲线问题),密钥空间极大,需计算机实现,分为对称加密、非对称加密、哈希算法三大类。
一、对称加密(共享密钥加密)
1. 核心原理
加密与解密使用「同一把密钥」,密钥需严格保密,仅授权双方知晓。
2. 代表算法
- AES(高级加密标准):当前主流,密钥长度128/192/256位,安全性极高,计算效率好。
- DES/3DES:早期标准,DES密钥仅56位已被破解,3DES是DES的三重加密,现逐渐被AES取代。
3. 核心用途(高频场景)
- 大量数据快速加密:如硬盘全盘加密(BitLocker、FileVault)、数据库敏感字段加密(信用卡号、手机号)。
- 通信链路加密:如VPN数据传输、即时通讯内容加密(Signal、Telegram的秘密聊天)。
- 文件加密:如压缩文件加密、企业内部敏感文档加密存储。
二、非对称加密(公钥加密)
1. 核心原理
使用「一对密钥」——公钥(公开,可随意分发)和私钥(保密,仅所有者持有)。公钥加密的内容仅私钥可解密,私钥加密的内容仅公钥可解密。
2. 代表算法
- RSA:基于大整数分解难题,应用最广,密钥长度通常2048/4096位。
- ECC(椭圆曲线加密):同等安全性下密钥更短(如256位ECC≈3072位RSA),计算效率高,适合移动设备、IoT设备。
3. 核心用途(解决对称加密的密钥分发问题)
- 安全密钥交换:如HTTPS握手时,用公钥加密对称密钥,避免密钥在传输中被窃取。
- 数字签名:用私钥对文件/数据签名,他人用公钥验证,确保内容未被篡改且来源合法(如软件安装包的签名验证)。
- 身份认证:如SSH登录(用私钥验证身份)、区块链钱包地址(公钥生成地址,私钥控制资产)。
三、哈希算法(单向加密)
1. 核心原理
将任意长度的数据「单向映射」为固定长度的哈希值(摘要),无法通过哈希值反推原始数据,原始数据微小改变会导致哈希值完全不同(雪崩效应)。
2. 代表算法
- SHA-256:主流算法,输出256位哈希值,安全性高。
- MD5:输出128位哈希值,已被证明存在碰撞(不同数据生成相同哈希值),仅用于兼容性场景。
3. 核心用途(数据完整性与验证)
- 密码存储:用户密码不直接存储,仅存储加盐后的哈希值(防止数据库泄露导致密码暴露)。
- 文件完整性校验:如软件下载包提供SHA-256值,用户下载后计算哈希值对比,确认文件未被篡改或感染病毒。
- 区块链应用:比特币挖矿、区块哈希值计算(确保账本不可篡改)。