密码体制算法介绍
密码体制算法是实现信息加密、解密、签名、验证等安全功能的核心技术,主要用于保障数据的机密性、完整性、认证性和不可否认性。根据加密密钥与解密密钥的关系,密码体制可分为对称密码体制、非对称密码体制和混合密码体制三大类,每类包含多种经典算法。
一、对称密码体制(Symmetric Cryptography)
对称密码体制又称“单钥密码体制”,其核心特点是加密和解密使用相同的密钥(或加密密钥与解密密钥可相互推导)。由于密钥需要共享,因此密钥的安全分发是该体制的主要挑战。
核心特点
- 加密/解密速度快,适合处理大量数据(如文件、流媒体)。
- 密钥长度较短(通常128位、256位),但需严格保密。
- 密钥管理复杂:n个用户间通信需n(n-1)/2个密钥。
典型算法
DES(Data Encryption Standard)
- 分组密码,1977年成为美国联邦标准,分组长度64位,有效密钥长度56位(含8位校验位)。
- 缺点:密钥过短(56位),安全性不足,已被淘汰。
3DES(Triple DES)
- DES的改进版,通过对数据执行三次DES加密(加密-解密-加密)增强安全性,密钥长度168位(56位×3)。
- 兼容性好,但速度较慢,逐渐被AES取代。
AES(Advanced Encryption Standard)
- 2001年取代DES成为新国际标准,分组长度128位,支持128/192/256位密钥。
- 采用SP网络结构(替代-置换),安全性高、效率优异,是目前应用最广泛的对称算法(如HTTPS、WiFi加密)。
RC4(Rivest Cipher 4)
- 流密码,生成伪随机密钥流与明文异或加密,密钥长度可变(1-256位)。
- 实现简单、速度快,但存在安全漏洞(如WEP协议被破解),逐渐被淘汰。
ChaCha20
- 流密码,由Google设计,无需硬件加速即可高效运行,抗攻击性强。
- 广泛用于移动端和嵌入式设备(如HTTPS的TLS 1.3、SSH)。
二、非对称密码体制(Asymmetric Cryptography)
非对称密码体制又称“公钥密码体制”,其核心特点是加密和解密使用不同的密钥:一个是公开的“公钥”(用于加密或验证签名),一个是保密的“私钥”(用于解密或生成签名),且从公钥无法推导出私钥。
核心特点
- 无需共享密钥,解决了对称密码的密钥分发问题。
- 加密速度较慢,适合处理少量数据(如密钥加密、数字签名)。
- 密钥长度较长(通常1024位以上),安全性依赖数学难题。
典型算法
RSA(Rivest-Shamir-Adleman)
- 基于“大整数分解”难题:将两个大质数相乘容易,但分解乘积得到原始质数极难。
- 支持加密和签名,应用广泛(如HTTPS证书、数字签名、SSH密钥)。
- 推荐密钥长度:2048位(安全)、4096位(高安全场景)。
ECC(Elliptic Curve Cryptography,椭圆曲线密码)
- 基于“椭圆曲线离散对数”难题:在椭圆曲线上的点群中,求解离散对数比大整数分解更困难。
- 同等安全强度下,密钥长度远短于RSA(如256位ECC≈3072位RSA),计算效率更高。
- 适合资源受限场景(如移动设备、物联网),是未来主流(如比特币、5G安全)。
DSA(Digital Signature Algorithm)
- 基于“离散对数”难题,仅用于数字签名(不支持加密),美国联邦标准。
- 改进版为ECDSA(椭圆曲线DSA),结合ECC优势,签名效率更高。
ElGamal
- 基于“离散对数”难题,支持加密和签名,但签名结果不唯一(概率性算法)。
- 应用较少,被RSA和ECC替代。
三、混合密码体制(Hybrid Cryptography)
混合密码体制结合了对称密码和非对称密码的优势:用非对称密码加密对称密钥,用对称密码加密实际数据,既解决了密钥分发问题,又保证了加密效率。
典型应用流程(如HTTPS)
- 发送方生成一个临时对称密钥(会话密钥,如AES密钥)。
- 用接收方的公钥(RSA/ECC)加密会话密钥,确保只有接收方能解密。
- 用会话密钥加密大量原始数据(如网页内容),效率极高。
- 接收方用私钥解密得到会话密钥,再用会话密钥解密原始数据。
优势
- 兼顾安全性(非对称密钥分发)和效率(对称加密大数据),是互联网安全的主流方案(如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