哈希,对称加密,非对称加密

为了让你更清晰地掌握目前信息安全领域的核心技术,我将这些主流算法分为三大类进行详细解析:哈希算法(数据指纹)、对称加密(一把钥匙开一把锁)和非对称加密(公钥与私钥)。

以下是目前工业界最主流、最常用的算法及其具体细节:

📋 一、哈希算法(Hash Algorithms)

哈希算法用于生成数据的"指纹",特点是不可逆(无法从指纹还原数据)。

🔥 1. SHA-2 系列(目前的绝对主流)

  • 代表算法:SHA-256(最常用)、SHA-512。
  • 具体特性:
    • 输出长度:SHA-256 输出 256 位(32字节),通常表示为 64 位的 16 进制字符串。
    • 安全性:目前全球最广泛接受的标准,抗碰撞性极强,尚未发现有效的攻击方法。
    • 应用场景:SSL/TLS 证书、区块链(如比特币)、软件发布校验、数字签名。
  • 注意:SHA-1(160位)已被证实存在碰撞漏洞,已被淘汰,不应再用于安全场景。

🛡️ 2. 国密 SM3(中国标准)

  • 具体特性:
    • 输出长度:256 位,与 SHA-256 长度一致。
    • 安全性:由中国国家密码管理局发布,安全性设计上与 SHA-256 相当或略高,主要用于抵御针对 SHA 系列的特定攻击。
    • 应用场景:中国政府、金融、政务系统的数据完整性校验,配合 SM2/SM4 算法使用。

🗝️ 3. 专用密码哈希算法(用于存密码)

  • 代表算法:bcrypt、Argon2、scrypt、PBKDF2。
  • 具体特性:
    • 设计哲学:故意设计得很慢,消耗大量内存或 CPU。
    • 核心优势:防暴力破解。虽然 SHA-256 很快,但这些算法通过迭代计算(如 Argon2)让黑客无法使用显卡集群快速穷举。
    • 应用场景:存储用户登录密码(这是存储密码的最佳实践,而不是直接用 SHA-256)。

🔒 二、对称加密算法(Symmetric Encryption)

加密和解密使用同一个密钥。特点是速度快,适合加密大量数据。

🏆 1. AES(Advanced Encryption Standard)

  • 具体参数:支持 128位、192位、256位 三种密钥长度。分组长度固定为 128 位。
  • 工作模式:
    • CBC(常用,需初始化向量 IV)。
    • GCM(推荐,同时提供加密和认证,用于 TLS 1.3)。
  • 应用场景:Wi-Fi 加密(WPA2/WPA3)、数据库字段加密、文件加密(如 WinZip)、TLS 握手后的会话加密。

🇨🇳 2. 国密 SM4

  • 具体特性:
    • 分组长度和密钥长度均为 128 位。
    • 原名 SMS4,是中国国家标准的分组密码算法。
  • 应用场景:中国国内的无线局域网(WAPI)、金融 IC 卡、政务云数据加密。

📉 3. 3DES(Triple DES)

  • 具体特性:对数据执行三次 DES 加密操作。
  • 现状:正在被淘汰。速度慢(约为 AES 的 1/3),安全性不如 AES。目前仅在一些老旧的金融系统(如老式 POS 机)中为了兼容性而存在。

🔑 三、非对称加密算法(Asymmetric Encryption)

使用一对密钥(公钥和私钥)。公钥加密,私钥解密;或者私钥签名,公钥验证。特点是安全性高(解决密钥分发问题),但速度慢。

🗿 1. RSA(最经典、最普及)

  • 具体参数:密钥长度通常为 2048位 或 4096位。
  • 数学原理:基于"大整数分解难题"(将两个大质数的乘积还原成原来的质数非常困难)。
  • 应用场景:
    • 数字签名:软件发布签名、SSL 证书签名。
    • 密钥交换:在 TLS 握手初期,用 RSA 加密对称密钥(虽然现在更多用 ECDHE 做密钥交换)。

🚀 2. ECC(Elliptic Curve Cryptography)

  • 具体参数:常用曲线如 P-256(也叫 secp256r1),密钥长度仅 256 位。
  • 核心优势:短小精悍。256 位的 ECC 安全性相当于 3072 位的 RSA,但运算速度更快,占用带宽更少。
  • 应用场景:移动支付(Apple Pay)、区块链(比特币/以太坊使用的是 secp256k1 曲线)、物联网设备(资源受限)。

🇨🇳 3. 国密 SM2

  • 具体特性:基于椭圆曲线的公钥密码算法。
  • 对比:相比 RSA,SM2 的签名更短(比 RSA 短约 60%),运算速度更快。
  • 应用场景:中国电子政务、税务 UKey、银行数字证书。

📊 总结对比表

为了方便你记忆,我整理了一个核心算法速查表:

算法类型 国际主流算法 中国国密算法 核心用途

哈希 (Hash) SHA-256 SM3 数据完整性校验、数字签名摘要

对称加密 AES-128/256 SM4 文件加密、数据库加密、通信会话加密

非对称加密 RSA-2048 / ECC SM2 数字证书、身份认证、加密传输对称密钥

💡 给你的建议:

  • 如果你在开发面向全球的应用:优先使用 AES + RSA + SHA-256 组合。
  • 如果你在开发国内政务或金融应用:必须使用 SM2 + SM3 + SM4 组合。
  • 如果你需要存储用户密码:请使用 Argon2 或 bcrypt,不要直接用 SHA-256。
相关推荐
码不停蹄Zzz2 天前
密码学算法之数字签名和认证协议篇(一)
密码学
じ☆冷颜〃4 天前
交换代数的解析延拓及在CS的应用
c语言·数据结构·笔记·线性代数·密码学
要做朋鱼燕5 天前
【AES加密专题】3.工具函数的编写(1)
笔记·密码学·嵌入式·aes
lightningyang6 天前
利用 OpenSSL 进行国际算法加密通信实验
服务器·密码学·openeuler·天枢一体化虚拟仿真靶场平台·openssl国际算法加密通信·密码实训
番茄灭世神8 天前
密码学入门基础
网络安全·区块链·密码学·哈希算法
weixin_465790919 天前
基于Matlab的车牌识别系统:模板匹配与神经网络的探索
密码学
搬砖魁首11 天前
密码学系列 - 零知识证明(ZKP) - Schnorr协议
区块链·密码学·零知识证明·schnorr·fiat-shamir
MQLYES14 天前
02-BTC-密码学原理
区块链·密码学·哈希算法
小李独爱秋16 天前
计算机网络经典问题透视:不重数(Nonce)是否就是随机数?一场深入骨髓的密码学思辨
服务器·网络·计算机网络·安全·web安全·密码学
kp0000017 天前
SM系列国密算法全面对比与解析
网络安全·信息安全·密码学·国密·sm加密