加密技术是通过位移、置换和代替这三种方式进行灵活组合编制而成。
加密技术分类
对称加密
加密和解密都是通过同一个密钥。
代表算法包括:
DES:数据加密标准,是一种分组密码,以 64 位为分组对数据加密,它的密钥长度是 56 位。位数短,容易遭到暴露破解。
3DES:基于 DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高。
AES:AES 加密算法是密码学中的高级加密标准,该加密算法采用对称分组密码体制,密钥长度的最少支持为 128 位、 192 位、256 位,分组长度 128 位,算法应易于各种硬件和软件实现。
非对称加密
加密使用的密钥和解密使用的密钥是不相同的,分别称为:公钥、私钥,公钥和算法都是公开的,私钥是保密的。
代表算法包括:
RSA:密钥至少为 500 位长,一般推荐使用 1024 位。这就使加密的计算量很大。
哈希算法/摘要算法
将任意长度的信息转换为较短的固定长度的值,通常其长度要比信息小得多,且算法不可逆。
代表算法:SHA-1、MD5、HMAC。
数字签名
通过私钥将哈希算法生成的数据指纹进行非对称加密。其目的不是为了加密,而是用来防止他人篡改数据。
加密算法衡量
(1)加、解密的处理效率
比如DES算法只有56位密钥,加解密速度快,保密度高,可实现高速处理。而RSA算法需进行多位整数乘幂和求模等多倍字长处理,运算量大且复杂,加密和解密数据的速率较低,不适于对较长明文加密。
(2)算法的安全性与保密性
比如DES算法采用单密钥安全性全靠密钥的保密,易受穷举强力攻击。RSA算法采用双密钥产生密钥较麻烦,安全性依赖于大数分解的困难性。
(3)密钥的分配与管理
比如DES算法必须在通信前对密钥进行秘密分配,人多时密钥数量大,由此密钥的定期更换很困难,而RSA算法只对自己的秘密密钥进行保密管理就行了,不需要秘密通道或复杂协议来传送密钥,更换密钥也方便。
加密算法的比较
对称非非对称比较
加密算法 | 加解密效率 | 安全性 | 密钥管理 |
对称加密 | 比非对称加密快几个数量级 | 中 | 比较难,不适合互联网,一般用于内部系统 |
非对称加密 | 比较慢,适合小数据量 加解密或数据签名 | 高 | 密钥容易管理 |
散列算法比较
名称 | 安全性 | 速度 |
SHA-1 | 高 | 慢 |
MD5 | 中 | 快 |
对称加密算法比较
名称 | 密钥名称 | 运行速度 | 安全性 | 资源消耗 |
DES | 56位 | 比较快 | 低 | 中 |
SDES | 112位或者168位 | 慢 | 中 | 高 |
AES | 128/192/256位 | 快 | 高 | 低 |
非对称加密算法比较
名称 | 成熟度 | 安全性 | 运算速度 | 资源消耗 |
RSA | 高 | 高 | 中 | 中 |
ECC | 高 | 高 | 慢 | 高 |
加密技术的应用
1.支付宝加密规则
https://mp.weixin.qq.com/s/8dHuDIMOtJC7N4Fmsv0K6g
2.https
https://blog.csdn.net/H_L_S/article/details/106867332
详细信息参考
1.https://blog.csdn.net/mystudyblog0507/article/details/79710817
3.https://www.wenmi.com/article/pnhmge00e04p.html
说明
本人对加密技术实现并没有什么了解,主要是通过看一些大佬的文章,去了解不同加密技术的应用场景和相关加密算法的比较,本文纯属东凑西凑。主要想记录加密技术的相关知识,以备在使用时,能更好的去选择加密算法。