在密码学中,有许多常用的术语和概念,这些术语帮助我们理解如何保护数据和信息的机密性、完整性、认证性等。以下是一些常见的密码学术语及其简要解释:
1. 加密(Encryption)
- 将明文数据通过某种算法转化为密文的过程。加密的目的是保护数据免受未经授权的访问。加密算法使用密钥来进行加密。
2. 解密(Decryption)
- 将密文还原为明文的过程。解密通常需要一个密钥(有时是同一个密钥或不同的密钥,取决于加密算法)。
3. 明文(Plaintext)
- 原始未加密的数据,通常是需要保护的敏感信息,如密码、信用卡号、文件内容等。
4. 密文(Ciphertext)
- 被加密后的数据。密文是明文的加密形式,无法被非授权用户理解或恢复,除非他们拥有正确的密钥进行解密。
5. 对称加密(Symmetric Encryption)
- 加密和解密使用相同密钥的加密算法。常见的对称加密算法包括 AES(Advanced Encryption Standard) 和 DES(Data Encryption Standard)。对称加密的优点是速度快,但密钥的管理和分发是一个挑战。
6. 非对称加密(Asymmetric Encryption)
- 加密和解密使用不同的密钥。在这种方式中,使用一对密钥:公钥和私钥。公钥用于加密,私钥用于解密。非对称加密常用于数字签名和密钥交换。常见的非对称加密算法包括 RSA 和 ECC(Elliptic Curve Cryptography)。
7. 密钥(Key)
- 加密和解密过程中使用的关键数据。密钥的长度和复杂性直接影响加密的安全性。密钥可以是对称加密算法中的单个密钥,或非对称加密算法中的公钥和私钥对。
8. 数字签名(Digital Signature)
- 使用私钥加密信息摘要(哈希值)生成的签名,用于验证数据的真实性和完整性。数字签名可以确保数据在传输过程中未被篡改,并验证信息的来源。常用于电子邮件、文档签名和区块链等场景。
9. 哈希函数(Hash Function)
- 将任意长度的输入(通常是消息或文件)转换为固定长度的输出(哈希值或消息摘要)的函数。哈希值具有不可逆性,因此无法从哈希值推算出原始数据。常见的哈希算法包括 MD5、SHA-1、SHA-256。
10. 消息认证码(MAC, Message Authentication Code)
- 一种附加到消息上的短小的数据(通常是使用密钥和哈希函数生成的),用于验证消息的完整性和认证消息的发送者。与数字签名不同,MAC 使用的是对称密钥加密。常见的 MAC 算法包括 HMAC(基于哈希的消息认证码)。
11. 公钥基础设施(PKI, Public Key Infrastructure)
- 是一种管理公钥加密系统的架构,它包括证书颁发机构(CA)、注册机构(RA)、证书、密钥管理等组成部分,用于支持非对称加密和数字签名等安全操作。
12. 证书(Certificate)
- 证书是由 证书颁发机构(CA) 签名的文件,用于绑定公钥与身份。它证明了公钥属于某个特定的主体(如用户、组织或网站)。常见的证书格式是 X.509。
13. 加密算法(Cipher)
- 执行加密操作的数学函数或过程。常见的加密算法包括 对称加密算法(如 AES、DES)和 非对称加密算法(如 RSA、ECC)。
14. 对称密钥交换(Symmetric Key Exchange)
- 在对称加密中,双方需要共享相同的密钥。对称密钥交换算法如 Diffie-Hellman 密钥交换,允许两方安全地交换共享密钥而无需事先共享密钥。
15. 密钥长度(Key Length)
- 密钥的位数或字节数,通常越长越安全,但也意味着计算量更大。对称加密算法的密钥长度通常是 128 位、192 位或 256 位,非对称加密算法的密钥长度通常较长,可能是 2048 位或更长。
16. 盐值(Salt)
- 是一种随机生成的值,通常与密码一起使用,以防止密码哈希被暴力破解。通过将盐值加入到密码中,再进行哈希计算,能有效防止预计算的哈希表(如彩虹表)攻击。
17. 彩虹表(Rainbow Table)
- 是一种通过预先计算并存储大量常见密码的哈希值表,以便于通过哈希值快速推算出原始密码的攻击方法。使用盐值可以有效防止彩虹表攻击。
18. 碰撞(Collision)
- 在哈希函数中,如果两个不同的输入数据产生相同的哈希值,则称为哈希碰撞。理想的哈希函数应该尽量避免碰撞。
19. 中间人攻击(Man-in-the-Middle, MITM)
- 攻击者在客户端和服务器之间拦截和篡改通信内容。通过加密和身份认证机制(如使用 SSL/TLS),可以有效防止中间人攻击。
20. 前向保密性(Forward Secrecy)
- 是一种加密特性,即使攻击者在某一时刻获得了服务器的私钥,仍然无法解密以前的通信记录。现代的加密协议(如 TLS 1.2 及以上版本)实现了前向保密性。
21. 重放攻击(Replay Attack)
- 攻击者截获并重发有效的通信数据,从而造成欺骗。防止重放攻击的一种常见方法是使用 时间戳 或 随机数。
22. 侧信道攻击(Side-Channel Attack)
- 攻击者通过分析加密算法的执行过程中的某些物理特征(如时间、功耗、磁场等)来获取加密密钥或其他信息。
23. 数字证书(Digital Certificate)
- 由 证书颁发机构(CA) 签发的证书,包含了公钥、证书持有者的身份信息等,并由 CA 的私钥签名以保证证书的有效性。
24. 身份验证(Authentication)
- 验证通信双方身份的过程。常见的身份验证方法有基于密码、基于生物特征(如指纹、面部识别)或基于密钥的认证。
25. 非对称加密密钥对(Key Pair)
- 包含一个 公钥 和一个 私钥。公钥用于加密,私钥用于解密,或私钥用于签名,公钥用于验证签名。