当前位置: 首页 > news >正文

DES、3DES、SM4 加密算法简介

1. DES(Data Encryption Standard)
  • 设计时间:1975 年(IBM 开发,1977 年被 NIST 采纳为美国联邦标准)。

  • 密钥长度:64 位(实际有效 56 位 + 8 位校验)。

  • 分组长度:64 位。

  • 加密轮数:16 轮 Feistel 结构。

  • 安全性

    • 被破解(暴力破解可在数小时内完成)。

    • 密钥过短(56 位),无法抵抗现代算力攻击。

  • 应用场景

    • 已淘汰,仅用于历史系统或教学。

    • 被 AES 取代。


2. 3DES(Triple DES)
  • 设计时间:1998 年(DES 的增强版)。

  • 密钥长度:168 位(实际有效 112 位,因存在中间相遇攻击)。

  • 加密流程:三次 DES 操作(加密-解密-加密,即 EDE)。

  • 分组长度:64 位。

  • 安全性

    • 安全性优于 DES,但效率低。

    • 2023 年后被 NIST 禁用(SP 800-171 Rev.5)。

  • 应用场景

    • 传统金融系统(如 POS 机、ATM)。

    • 逐步被 AES 或 SM4 替代。


3. SM4(国密算法)
  • 设计时间:2012 年(中国国家密码管理局发布)。

  • 密钥长度:128 位。

  • 分组长度:128 位。

  • 加密轮数:32 轮非线性迭代结构。

  • 安全性

    • 抗差分和线性分析能力与 AES 相当。

    • 符合中国商用密码标准(GMT 0002-2012)。

  • 应用场景

    • 中国政府、金融、电力等关键领域。

    • 国产化替代(如 VPN、物联网设备)。


对比总结

特性DES3DESSM4
密钥长度56 位(64 位存储)112 位有效128 位
分组长度64 位64 位128 位
安全性已破解已淘汰高(国密标准)
性能快(但已过时)慢(三次加密)与 AES 相当
应用现状完全淘汰逐步淘汰中国强制推广

选择建议

  1. 历史系统兼容

    • 使用 3DES 过渡,尽快迁移至 AES 或 SM4

  2. 国内合规要求

    • 必须使用 SM4(如政务、金融系统)。

  3. 国际通用场景

    • 优先选择 AES-256(高安全性)或 AES-128(高性能)。


代码示例(Python)

3DES 加密(PyCryptodome)

from Crypto.Cipher import DES3  
from Crypto.Random import get_random_bytes  key = get_random_bytes(24)  # 3DES 需 24 字节密钥  
data = b"Data to encrypt"  # 加密  
cipher = DES3.new(key, DES3.MODE_CBC)  
ciphertext = cipher.encrypt(data.ljust(8 * (len(data)//8 + 1)))  # 填充至 8 字节倍数  # 解密  
decipher = DES3.new(key, DES3.MODE_CBC, iv=cipher.iv)  
plaintext = decipher.decrypt(ciphertext).strip()  
SM4 加密(需国密库,如 gmssl

from gmssl import sm4  key = get_random_bytes(16)  
data = b"Sensitive data"  # 加密  
cipher = sm4.CryptSM4()  
cipher.set_key(key, sm4.SM4_ENCRYPT)  
ciphertext = cipher.crypt_ecb(data)  # 解密  
cipher.set_key(key, sm4.SM4_DECRYPT)  
plaintext = cipher.crypt_ecb(ciphertext)  

注意事项

  1. 加密模式

    • 避免使用 ECB 模式(不安全),优先选 CBC 或 GCM

  2. 密钥管理

    • 使用硬件安全模块(HSM)或密钥管理系统(KMS)。

  3. 合规性

    • 在中国境内,优先遵循 《密码法》 使用 SM2/SM3/SM4 组合。


替代方案

  • AES:国际通用标准,性能与安全性俱佳。

  • ChaCha20:适用于移动设备(如 TLS 1.3)。


总结

  • DES 和 3DES 已过时,仅用于兼容旧系统。

  • SM4 是中国自主密码标准,需在国内合规场景中使用。

  • 新系统应优先选择 AES 或 SM4,并关注算法演进(如抗量子加密)。

相关文章:

  • 【RuleUtil】适用于全业务场景的规则匹配快速开发工具
  • Post-Processing PropertySource instance详解 和 BeanFactoryPostProcessor详解
  • 信息系统项目管理师_第十三章 项目干系人管理
  • MySQL 双主复制架构入门
  • Sentinel数据S2_SR_HARMONIZED连续云掩膜+中位数合成
  • JDK安装超详细步骤
  • Java中实现单例模式的多种方法:原理、实践与优化
  • 【Git】fork 和 branch 的区别
  • 复盘2025北京副中心马拉松赛
  • 大模型面经 | 春招、秋招算法面试常考八股文附答案(四)
  • IDEA 创建Maven 工程(图文)
  • MCP Host、MCP Client、MCP Server全流程实战
  • 【安装部署】Linux下最简单的 pytorch3d 安装
  • 查看Spring Boot项目所有配置信息的几种方法,包括 Actuator端点、日志输出、代码级获取 等方式,附带详细步骤和示例
  • 2025年特种作业操作证考试题库及答案(登高架设作业)
  • Ubuntu数据连接访问崩溃问题
  • Electron主进程渲染进程间通信的方式
  • UWB与GPS技术融合的室内外无缝定位方案
  • 【MCP Node.js SDK 全栈进阶指南】利用TypeScript-SDK打造高效MCP应用
  • 程序生成随机数
  • 当隐身13年的北小京决定公开身份 ,专业戏剧评论依然稀缺
  • 谁将主导“视觉大脑”?中国AI的下一个超级赛道
  • 俄军方:已完成库尔斯克地区全面控制行动
  • “70后”通化市委书记孙简已任吉林省政府领导
  • 合同约定拿850万保底利润?重庆市一中院:约定无效,发回重审
  • 谷歌一季度利润增超四成:云业务利润率上升,宏观环境可能影响广告业务