1.对称加密

AES,密钥长度有128/256/192。高级加密标准,是下一代的加密算法标准,速度快,安全级别高;
DES:密钥为56, 数据加密标准,速度较快,适用于加密大量数据的场合。
3DES: 密钥为168.是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
IDES: 密钥为128
SM1: 密钥为128
SM4: 密钥为128
RC4, RC5, RC6
DESX

两边用同一个密钥来加解密。

1.1 对称加密的有优缺点
  • 加解密速度快
  • 会出现密钥分配问题;密钥容易复制,不便于安全保管
1.2 密钥分配问题

对称加密的存在密钥分配问题,A的密钥怎么才能安全的传输到B手里不被X获取到?A直接发送密钥给B还是可能被X窃取到这个密钥.

只有用密钥加密后的信息才能安全传输,但是只有保证安全传输的前提下才能发送这个密钥。

2.非对称加密

RSA,: 由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;
SM2,
ECC: 椭圆曲线密码编码学。移动设备用。
DSA:数字签名算法,是一种标准的 DSS(数字签名标准)

双方使用不同的密钥来加解密,并且不能通过一个密钥推算出另一个密钥

  • 公钥加密,私钥解密
  • 私钥加密(数字签名),公钥解密

A把事先准备好了非对称密钥对,分别为公钥和私钥,这一套非对称密钥对能相互加解密。公钥是公开的,私钥只有自己才有。然后A把公钥发送给B,或者公钥放在服务器B自行下载。B拿到了公钥后用公钥的一套算法加密信息后传输给A,A用私钥执行另一个算法解密获得明文信息。

2.1 非对称加密的优缺点
  • 不会出现密钥分配问题
  • 加解密速度慢,仍有被窃听的隐患

3.混合加密

传输大量数据的时候使用对称加密,因为加解密速度快。但是由于对称加密有秘钥分配问题,所以我们用非对称加密来加密这个对称密钥再传递给对方。

  • A:这是我的公钥public_A,你收好,你生成对称密钥也给我一下
  • B:好的,收到public_A,你收好对称密钥secretKey。然后用public_A加密这个secretKey
  • A:收到消息,private_A解密出来是secretKey。

中间人攻击:
在这里插入图片描述

  • A:这是我的公钥public_A,你收好,你生成对称密钥也给我一下
  • X获得了A的公钥,把自己的公钥public_X发给B… B这傻子还以为真的是A的公钥呢
  • B:好的,公钥public_X已收到,生成一个对称密钥secretKey,然后用public_X加密这个对称密钥。
  • X截获了这个消息,用自己私钥private_X解密出对称密钥secretKey,自己再生成一个secretKeyXXX用public_A加密一下发送给A。A这傻子还以为你们接下来会安全的用secretKey通信吗哈哈哈
  • A:收到消息,private_A解密出来对称密钥secretKeyXXX(其实是X篡改了)
    在这里插入图片描述上图中,中间人X能不仅获取A和B之间通信内容,还能任意修改,相当于一个代理抓包,修改数据。

4.常见的摘要算法

单向散列函数一般用于产生消息摘要,密钥加密等,常见的Hash算法:
MD5, SHA1, SHA2 (SHA224, SHA256, SHA384),HMAC,HMAC-MD5,HMAC-SHA1
MD5,SHA1不具有很强的碰撞性,用的比较多的是SHA2

摘要算法:

在这里插入图片描述
1.不可逆性
2.难题友好性:想要破解,只可以暴力破解
3.发散性:只要对原文有一点修改,摘要会有巨大的改变
4.碰撞性:原文不同,计算后的摘要也不同

Logo

为所有Web3兴趣爱好者提供学习成长、分享交流、生态实践、资源工具等服务,作为Anome Land原住民可不断优先享受各种福利,共同打造全球最大的Web3 UGC游戏平台。

更多推荐