加密学常识

2025-09-08 09:07:24 17阅读

以下是加密学(Cryptography)的一些基本常识,涵盖核心概念、常见算法类型及其应用场景,适合初学者了解:

一、什么是加密学?

加密学(Cryptography) 是研究如何保护信息安全的科学,主要目的是确保信息的机密性(Confidentiality)、完整性(Integrity)、认证性(Authentication)和不可否认性(Non-repudiation)。

二、加密学的基本术语

- 明文(Plaintext):原始的、未加密的信息。

- 密文(Ciphertext):经过加密处理后的信息,看起来是乱码,只有授权者才能还原。

- 加密(Encryption):将明文转换为密文的过程。

- 解密(Decryption):将密文还原为明文的过程。

- 密钥(Key):用于加密或解密的特殊信息,是保证安全的关键。

- 算法(Algorithm):执行加密/解密的数学规则或步骤。

三、加密学的主要分类

1. 对称加密(Symmetric Cryptography)

- 特点:加密和解密使用同一个密钥。

- 优点:速度快,适合大量数据加密。

- 缺点:密钥分发困难,一旦密钥泄露,安全性丧失。

- 常见算法:

- DES(Data Encryption Standard,已不安全)

- AES(Advanced Encryption Standard,目前最常用的对称加密算法)

- 3DES、RC4、Blowfish 等

例子:你和你的朋友共享一个密码(密钥),用这个密码加密消息发给对方,对方用同一个密码解密。

2. 非对称加密(Asymmetric Cryptography) / 公钥加密

- 特点:使用一对密钥:公钥(Public Key)和私钥(Private Key)

- 公钥可公开,用于加密或验证签名

- 私钥必须保密,用于解密或生成签名

- 优点:解决了密钥分发问题,更安全。

- 缺点:速度较慢,不适合加密大量数据。

- 常见算法:

- RSA(最经典的非对称加密算法)

- ECC(椭圆曲线加密,效率高,安全性强)

- DSA、ElGamal 等

例子:你把公钥发给别人,别人用你的公钥加密消息,只有你用对应的私钥才能解密。或者你用私钥签名,别人用你的公钥验证是你发的。

3. 哈希函数(Hash Function) / 散列函数

- 特点:将任意长度的数据映射为固定长度的哈希值(摘要)

- 特点与用途:

- 不可逆:无法从哈希值还原出原始数据

- 唯一性:输入稍有不同,哈希值差别很大(雪崩效应)

- 用于验证数据完整性、密码存储、数字签名等

- 常见算法:

- MD5(已不安全,易碰撞)

- SHA-1(已不推荐)

- SHA-2(如 SHA-256,目前广泛使用)

- SHA-3

- bcrypt、scrypt、PBKDF2(常用于密码哈希)

例子:你下载一个文件,官方提供了该文件的 SHA-256 哈希值,你下载后自己计算哈希,对比是否一致,确保文件未被篡改。

四、加密学的实际应用

1. HTTPS(SSL/TLS):保障网页浏览的安全,使用非对称加密交换密钥,然后用对称加密传输数据。

2. 数字签名:确保消息来源真实且未被篡改,常用 RSA 或 ECC 实现。

3. 身份认证:如使用公钥基础设施(PKI)、数字证书。

4. 区块链与加密货币:如比特币使用椭圆曲线加密和哈希算法保证交易安全和不可篡改性。

5. 密码存储:网站不直接存用户密码原文,而是存储其哈希值(通常还加盐 salt)。

6. VPN、数据加密、安全通信等

五、加密学中的重要原则

- 柯克霍夫原则(Kerckhoffs's Principle):一个加密系统即便算法公开,只要密钥保密,也应保持安全。

- 密钥管理:再强的算法,如果密钥生成、存储、分发、轮换管理不当,整个系统依然不安全。

- 不要自行设计加密算法:加密算法设计极其复杂,一般应使用经过广泛验证的标准算法(如 AES、RSA、SHA-256)。

六、常见误区

- 使用 MD5 或 SHA-1 存储密码或验证完整性(已不安全)

- 使用弱密钥或重复使用密钥

- 认为“加密了就绝对安全”(还需考虑实现、协议、密钥管理等)

- 自己造轮子设计加密算法或协议(极容易有漏洞)

七、学习资源推荐(入门)

- 书籍:

- 《图解密码技术》(结城浩 著,适合入门)

- 《Applied Cryptography》 by Bruce Schneier(经典,偏技术)

- 在线课程:

- Coursera / edX 上的 Cryptography 相关课程(如斯坦福的 Cryptography I)

- 工具:

- OpenSSL(命令行加密工具)

- GPG / PGP(用于邮件和文件加密)

如果你对某个具体领域(如 HTTPS 原理、数字签名、区块链加密、密码存储等)感兴趣,我可以进一步详细讲解!

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。