加密算法基础与分类
说实话,我刚接触加密时也犯过迷糊——对称、非对称、哈希,到底该用哪个?后面做频次分析才明白,不懂算法原理,你根本看不出流量里的异常。今天我把这些基础理清楚,顺便说说 C_Encrypt 里常用的那几把“刷子”。
对称加密:一把钥匙开一把锁
对称加密,说白了就是加密和解密用同一把钥匙。像你和搭档共用一把门钥匙,谁拿着都能开。速度快,适合大批量数据,但钥匙怎么安全传给对方?这是个问题。
常见的对称算法有 DES、3DES、AES。DES 因为密钥太短(56 位),现在基本被淘汰了。3DES 是 DES 的三重升级,但效率低。现在我推荐用 AES,密钥长度 128/192/256 位,安全性和速度都拿得出手。我在一次金融项目里就用 AES-256 加密交易日志,后期排查频次异常时,连解密都没拖慢查询。
非对称加密:公钥私钥各司其职
非对称加密就聪明多了。公钥可以公开,私钥自己藏着。别人用你的公钥加密数据,只有你的私钥能解开。这解决了密钥传输难题,但速度慢,所以通常只用来加密对称密钥或做数字签名。
RSA 是最经典的非对称算法,密钥长度建议 2048 位以上。ECC(椭圆曲线密码)用更短的密钥达到同等安全等级,比如 256 位 ECC 相当于 3072 位 RSA。C_Encrypt 在握手阶段经常需要识别这两类算法。
哈希函数:不可逆的“指纹”
哈希函数不是加密,而是摘要。你输入任意长数据,它给你固定长度的“指纹”。没法从指纹反推出原文。用途很明确:校验完整性、存储密码、做消息认证。
MD5 已经不安全了,碰撞攻击分分钟伪造。SHA-1 也被 Google 撞过。现在推荐 SHA-256 或 SHA-3。C_Encrypt 的频次分析里,哈希值经常作为会话标识或文件指纹。我遇到过有人把 MD5 当签名用,结果被篡改数据后哈希值对不上,最后发现是用了弱算法。
C_Encrypt 涉及的核心算法一览
在 C_Encrypt 的频次异常分析中,我们会频繁遇到下面这些算法。记住它们的基本特征就够了。
| 算法类别 | 典型算法 | 密钥/输出长度 | 速度 | 用途(C_Encrypt 场景) |
|---|---|---|---|---|
| 对称 | AES-256 | 256 位密钥 | 快 | 加密数据传输,频次统计可直接解密看内容 |
| 对称 | SM4 | 128 位密钥 | 快 | 国密环境,频次模式与 AES 类似 |
| 非对称 | RSA-2048 | 2048 位公钥 | 慢 | 握手协商,频次异常往往出现在握手阶段 |
| 非对称 | SM2 | 256 位公钥 | 较慢 | 国密签名与密钥交换 |
| 哈希 | SHA-256 | 256 位摘要 | 中 | 数据完整性校验,频次变化可反映篡改 |
| 哈希 | SM3 | 256 位摘要 | 中 | 国密哈希,在合规场景里替代 SHA-256 |
嗯,这张图把分类和典型算法串起来了。你在 C_Encrypt 里查日志时,看到算法 ID 就能快速定位是哪种类型。我记得有一次一个客户说网络变慢了,我们一查,发现全是 3DES 握手——那玩意儿效率低,还容易出异常频次,直接换 AES 就解决了。所以打好基础,后面分析才能快准狠。