7.3 KiB
7.3 KiB
title, createTime, permalink
| title | createTime | permalink |
|---|---|---|
| 密码学基础 | 2025/10/27 10:38:57 | /theory/cryptography/ |
密码学基础
1. 密码学的定义
1.1 基本概念
密码学(Cryptography) 是一门研究信息安全的学科,主要关注如何在不安全的环境中实现安全通信。其核心是通过数学方法对信息进行变换,使得只有授权方能够理解信息内容。
1.2 核心目标
密码学追求以下四个主要安全目标:
- 机密性(Confidentiality):确保信息只能被授权的人访问
- 完整性(Integrity):确保信息在传输过程中不被篡改
- 认证性(Authentication):确认通信双方的身份真实性
- 不可否认性(Non-repudiation):防止发送方事后否认发送过信息
1.3 重要作用
密码学在现代信息安全中扮演着至关重要的角色:
- 保护个人隐私和商业机密
- 确保金融交易的安全性
- 维护国家安全和军事通信
- 支撑互联网基础设施的安全运行
1.4 主要应用场景
- 网络安全:HTTPS、VPN、SSL/TLS协议
- 数字身份认证:数字证书、数字签名、双因素认证
- 区块链技术:加密货币、智能合约、分布式账本
- 移动通信:SIM卡加密、移动支付安全
- 物联网安全:设备身份认证、数据传输加密
2. 密码学历史简述
2.1 古代密码学(公元前-15世纪)
凯撒密码(Caesar Cipher)
- 时间:公元前1世纪
- 原理:字母移位加密
- 示例:将字母向后移动3位,A→D,B→E
斯巴达密码棒(Scytale)
- 时间:公元前5世纪
- 原理:缠绕在特定直径木棒上的皮条
2.2 文艺复兴时期(15-18世纪)
维吉尼亚密码(Vigenère Cipher)
- 时间:16世纪
- 原理:多表替换密码
- 特点:比单表替换更安全
博福特密码(Beaufort Cipher)
- 时间:18世纪
- 原理:改进的维吉尼亚密码
2.3 近代密码学(19-20世纪中期)
恩尼格玛密码机(Enigma)
- 时间:二战时期
- 原理:机械转子密码机
- 重要性:推动了现代密码分析的发展
香农的信息论
- 时间:1949年
- 贡献:为密码学奠定了数学理论基础
2.4 现代密码学(1970年代至今)
DES算法
- 时间:1977年
- 意义:第一个公开的加密标准
RSA算法
- 时间:1977年
- 意义:第一个实用的公钥密码系统
AES算法
- 时间:2001年
- 意义:取代DES的新一代加密标准
2.5 关键历史时间线
公元前5世纪:斯巴达密码棒
公元前1世纪:凯撒密码
16世纪:维吉尼亚密码
1918年:一次一密密码本
1949年:香农信息论
1977年:DES和RSA算法
2001年:AES标准
3. 密码分类
3.1 古典密码
3.1.1 替换密码(Substitution Cipher)
原理:将明文中的每个字符替换为另一个字符
凯撒密码示例:
明文:HELLO
密钥:移位3
密文:KHOOR
加密公式:C = (P + K) mod 26
解密公式:P = (C - K) mod 26
单表替换密码:
- 特点:每个明文字符对应固定的密文字符
- 弱点:频率分析攻击
3.1.2 移位密码(Transposition Cipher)
原理:重新排列明文字符的顺序
栅栏密码示例:
明文:CRYPTOGRAPHY
写入: 读取:
C R Y P C Y R H A R Y
T O G R T O G P P
A P H Y
密文:CYRHARYTOGPP
3.1.3 维吉尼亚密码
原理:使用关键词进行多表替换
加密过程:
明文:ATTACKATDAWN
密钥:LEMON
密文:LXFOPVEFRNHR
计算:
A(0) + L(11) = L(11)
T(19) + E(4) = X(23)
T(19) + M(12) = F(5)
...
3.1.4 古典密码的局限性
- 易受频率分析攻击
- 密钥空间有限
- 缺乏严格的数学证明
- 无法抵抗现代计算攻击
3.2 现代密码
3.2.1 对称加密(Symmetric Cryptography)
定义:加密和解密使用相同密钥的密码系统
基本原理:
加密:C = E(K, P)
解密:P = D(K, C)
其中:
C - 密文
P - 明文
K - 密钥
E - 加密函数
D - 解密函数
常见算法:
AES(高级加密标准)
- 密钥长度:128/192/256位
- 分组大小:128位
- 轮数:10/12/14轮
- 结构:SPN网络
DES(数据加密标准)
- 密钥长度:56位(实际64位)
- 分组大小:64位
- 轮数:16轮
- 结构:Feistel网络
3DES(三重DES)
- 原理:三次DES加密
- 密钥长度:168位
- 兼容DES但更安全
对称加密优缺点:
优点:
- 加密速度快
- 计算资源需求低
- 适合大量数据加密
缺点:
- 密钥分发困难
- 密钥管理复杂
- 不支持数字签名
应用场景:
- 文件加密
- 数据库加密
- 网络通信加密
- 磁盘加密
3.2.2 非对称加密(Asymmetric Cryptography)
公钥密码体系概念:
使用一对数学相关的密钥:
- 公钥(Public Key):公开分发,用于加密
- 私钥(Private Key):秘密保存,用于解密
加密过程示意图:
发送方 接收方
| |
明文 + 接收方公钥 → 密文 → 密文 + 接收方私钥 → 明文
| |
加密 解密
典型算法:
RSA算法
- 基于大数分解难题
- 密钥生成:选择两个大质数p,q,计算n=pq,φ(n)=(p-1)(q-1)
- 公钥:(e, n),其中1<e<φ(n)且gcd(e,φ(n))=1
- 私钥:(d, n),其中d≡e⁻¹ mod φ(n)
RSA加密示例:
假设:
p=61, q=53, n=3233, φ(n)=3120
选择e=17, 计算d=2753
公钥:(17, 3233)
私钥:(2753, 3233)
加密:C = M¹⁷ mod 3233
解密:M = C²⁷⁵³ mod 3233
ECC(椭圆曲线加密)
- 基于椭圆曲线离散对数问题
- 相同安全强度下密钥更短
- 计算效率更高
ElGamal加密
- 基于离散对数问题
- 可用于加密和数字签名
数字签名应用:
签名过程:
1. 对消息计算哈希值 H(M)
2. 使用私钥加密哈希值 S = Sign(私钥, H(M))
3. 发送 (M, S)
验证过程:
1. 对消息计算哈希值 H(M)
2. 使用公钥解密签名 Verify(公钥, S) = H'(M)
3. 比较 H(M) == H'(M)
密钥交换应用:
- Diffie-Hellman密钥交换
- 在不安全信道建立共享密钥
与对称加密的比较分析:
| 特性 | 对称加密 | 非对称加密 |
|---|---|---|
| 密钥数量 | 1个 | 2个(公钥+私钥) |
| 加密速度 | 快 | 慢 |
| 密钥分发 | 困难 | 容易 |
| 数字签名 | 不支持 | 支持 |
| 适用场景 | 大量数据 | 小量数据、密钥交换 |
混合加密系统:
实际应用中常结合两种加密方式:
1. 使用非对称加密交换对称密钥
2. 使用对称加密加密实际数据
3. 结合两种加密的优势
总结
密码学作为信息安全的基石,经历了从简单替换到复杂数学算法的漫长发展历程。现代密码学建立在严格的数学基础之上,通过对称加密、非对称加密等多种技术手段,为数字世界提供了可靠的安全保障。
理解密码学的基本原理和分类,有助于我们更好地应用这些技术来保护信息安全,同时也为深入学习更高级的密码学概念奠定基础。
本篇笔记的所有代码开源于:https://gitea.simengweb.com/si-meng-spec/cryptography-example-code