0%

crypto系列1-密码体制算法

密码体制算法介绍

密码体制算法是实现信息加密、解密、签名、验证等安全功能的核心技术,主要用于保障数据的机密性、完整性、认证性和不可否认性。根据加密密钥与解密密钥的关系,密码体制可分为对称密码体制非对称密码体制混合密码体制三大类,每类包含多种经典算法。

一、对称密码体制(Symmetric Cryptography)

对称密码体制又称“单钥密码体制”,其核心特点是加密和解密使用相同的密钥(或加密密钥与解密密钥可相互推导)。由于密钥需要共享,因此密钥的安全分发是该体制的主要挑战。

核心特点

  • 加密/解密速度快,适合处理大量数据(如文件、流媒体)。
  • 密钥长度较短(通常128位、256位),但需严格保密。
  • 密钥管理复杂:n个用户间通信需n(n-1)/2个密钥。

典型算法

  1. DES(Data Encryption Standard)

    • 分组密码,1977年成为美国联邦标准,分组长度64位,有效密钥长度56位(含8位校验位)。
    • 缺点:密钥过短(56位),安全性不足,已被淘汰。
  2. 3DES(Triple DES)

    • DES的改进版,通过对数据执行三次DES加密(加密-解密-加密)增强安全性,密钥长度168位(56位×3)。
    • 兼容性好,但速度较慢,逐渐被AES取代。
  3. AES(Advanced Encryption Standard)

    • 2001年取代DES成为新国际标准,分组长度128位,支持128/192/256位密钥。
    • 采用SP网络结构(替代-置换),安全性高、效率优异,是目前应用最广泛的对称算法(如HTTPS、WiFi加密)。
  4. RC4(Rivest Cipher 4)

    • 流密码,生成伪随机密钥流与明文异或加密,密钥长度可变(1-256位)。
    • 实现简单、速度快,但存在安全漏洞(如WEP协议被破解),逐渐被淘汰。
  5. ChaCha20

    • 流密码,由Google设计,无需硬件加速即可高效运行,抗攻击性强。
    • 广泛用于移动端和嵌入式设备(如HTTPS的TLS 1.3、SSH)。

二、非对称密码体制(Asymmetric Cryptography)

非对称密码体制又称“公钥密码体制”,其核心特点是加密和解密使用不同的密钥:一个是公开的“公钥”(用于加密或验证签名),一个是保密的“私钥”(用于解密或生成签名),且从公钥无法推导出私钥。

核心特点

  • 无需共享密钥,解决了对称密码的密钥分发问题。
  • 加密速度较慢,适合处理少量数据(如密钥加密、数字签名)。
  • 密钥长度较长(通常1024位以上),安全性依赖数学难题。

典型算法

  1. RSA(Rivest-Shamir-Adleman)

    • 基于“大整数分解”难题:将两个大质数相乘容易,但分解乘积得到原始质数极难。
    • 支持加密和签名,应用广泛(如HTTPS证书、数字签名、SSH密钥)。
    • 推荐密钥长度:2048位(安全)、4096位(高安全场景)。
  2. ECC(Elliptic Curve Cryptography,椭圆曲线密码)

    • 基于“椭圆曲线离散对数”难题:在椭圆曲线上的点群中,求解离散对数比大整数分解更困难。
    • 同等安全强度下,密钥长度远短于RSA(如256位ECC≈3072位RSA),计算效率更高。
    • 适合资源受限场景(如移动设备、物联网),是未来主流(如比特币、5G安全)。
  3. DSA(Digital Signature Algorithm)

    • 基于“离散对数”难题,仅用于数字签名(不支持加密),美国联邦标准。
    • 改进版为ECDSA(椭圆曲线DSA),结合ECC优势,签名效率更高。
  4. ElGamal

    • 基于“离散对数”难题,支持加密和签名,但签名结果不唯一(概率性算法)。
    • 应用较少,被RSA和ECC替代。

三、混合密码体制(Hybrid Cryptography)

混合密码体制结合了对称密码和非对称密码的优势:用非对称密码加密对称密钥,用对称密码加密实际数据,既解决了密钥分发问题,又保证了加密效率。

典型应用流程(如HTTPS)

  1. 发送方生成一个临时对称密钥(会话密钥,如AES密钥)。
  2. 用接收方的公钥(RSA/ECC)加密会话密钥,确保只有接收方能解密。
  3. 用会话密钥加密大量原始数据(如网页内容),效率极高。
  4. 接收方用私钥解密得到会话密钥,再用会话密钥解密原始数据。

优势

  • 兼顾安全性(非对称密钥分发)和效率(对称加密大数据),是互联网安全的主流方案(如HTTPS、VPN、邮件加密)。

四、其他重要密码技术

1. 哈希函数(Hash Function)

  • 不属于加密算法,但与密码体制紧密配合,用于生成数据摘要(固定长度哈希值),确保完整性。
  • 特点:单向性(无法从哈希值反推原文)、抗碰撞性(不同原文难生成相同哈希值)。
  • 典型算法:SHA-256(应用最广)、SHA-3、MD5(已不安全,淘汰)。

2. 数字签名(Digital Signature)

  • 基于非对称密码和哈希函数,发送方用私钥对数据哈希值加密生成签名,接收方用公钥验证,确保数据未篡改且来源可信。
  • 核心算法:RSA签名、ECDSA签名。

五、总结:密码体制的选择依据

场景需求 推荐体制/算法 理由
加密大量数据(文件、流) 对称密码(AES-256、ChaCha20) 速度快,适合大数据量
密钥分发、数字签名 非对称密码(ECC、RSA-2048+) 无需共享密钥,保障身份认证
互联网通信(如HTTPS) 混合密码(AES+RSA/ECC) 兼顾密钥安全分发和数据加密效率
资源受限设备(物联网) ECC+轻量级对称算法(如AES-128) 密钥短、计算量小,适合低功耗设备

密码体制的安全性不仅依赖算法本身,还取决于密钥管理(如密钥生成、存储、销毁)和实现细节(如抗侧信道攻击)。随着量子计算的发展,抗量子密码(如格基密码)正成为新的研究热点。

更多

好久没写博客了,或者是有些忙,终归是懒。

希望重新搞起来,就像跑步那样,每周一次,坚持下来,锻炼脑力!

得有八九个月了,其实也攒了挺多素材了,趁着即将到来的国庆,一股脑全给他倒出来。


行动,才不会被动!

欢迎关注个人公众号 微信 -> 搜索 -> fishmwei,沟通交流。

欢迎关注

博客地址: https://fishmwei.github.io

掘金主页: https://juejin.cn/user/2084329776486919