Files
SiMengWebSite_Notes/docs/notes/theory/cryptography/README.md
祀梦 566b6cd385 feat(docs): 添加密码学基础文档和mermaid支持
新增密码学基础文档,包含古典加密算法和现代密码学介绍
添加mermaid图表支持以展示密码学概念
在导航栏新增技术理论分类
更新package.json添加mermaid依赖
2025-10-27 19:29:40 +08:00

7.3 KiB
Raw Blame History

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→DB→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