当前位置:   article > 正文

浅谈加密算法(对称加密、非对称加密、混合加密、数字签名、哈希函数)_对称加密 非对称加秘 混合加密

对称加密 非对称加秘 混合加密

1、对称加密

        对称加密只有一个密钥,直接使用这一个密钥对信息进行加密或解密。这样子就使得对称加密解密十分高效,计算量也相较于非对称加密小很多,适合有大量数据的场合。

        密钥只有一个且他一定不能泄漏。由此分发密钥,讲这个密钥传递给客户端是一件很有挑战性的事情。所以相较于非对称加密,对称加密的安全性低一些,因为再传递过程中密钥可能被他人获取。

常见对称加密算法:

  1. DES(Data Encryption Standard)

    • DES 是一种经典的对称加密算法,最早于 1976 年由美国联邦政府确定为数据加密标准。
    • 它将明文按 64 位进行分组加密,每组生成 64 位的密文。
    • DES 的密钥长度为 56 位,但实际上只有 48 位用于加密,其余用于错误检查。
    • 由于计算机的进步,DES 已经能够被暴力破解,因此已不再安全。
  2. 3DES(Triple Data Encryption Algorithm)

    • 3DES 是对 DES 的增强版,相当于对每组数据应用了三次 DES 算法。
    • 它使用三把独立的密钥,总长度为 168 比特。
    • 加密过程是以密钥 1、密钥 2、密钥 3 的顺序进行的。
  3. AES(Advanced Encryption Standard)

    • AES 是取代 DES 的一种新的对称加密算法。
    • 它的分组长度为 128 比特,密钥长度可以是 128、192 或 256 比特。
    • AES 是目前安全性较高、应用范围较广的对称加密算法。

2、非对称加密

        非对称加密再服务端时会生成一对密钥,分别为公钥私钥,这个公钥可以明文发送给客户端,之后所有客户端给服务端发送消息前,都先用公钥对消息进行加密,那么请求再网络中被非法获取,没有私钥的话也无法获取信息。之后客户端就可以放心的发送请求给服务端了。等请求打到服务端,服务端再用私钥将信息解密。

        两个密钥中,公钥可以公开,而私钥不在网络中传输,则没有被截取的危险。则安全性得到了很大的提升。当然计算效率相较于对称加密会慢。为什么公钥和私钥可以互相解密呢,这是数学上问题。

RSA加密算法:

  1. 密钥生成

    • 首先,选择两个大素数,通常记为 p 和 q
    • 计算 n = p * q
    • 根据欧拉函数,计算 r = (p - 1) * (q - 1)
    • 选择一个与 r 互质的整数 e,使得 e 与 r 满足 e * d ≡ 1 (mod r),其中 d 是 e 的模反元素。
    • 公开密钥为 (e, n),私有密钥为 (d, n)
  2. 加密方法

    • 将明文看作比特串,将明文划分成 k 位的块 P
    • 对每个数据块 P,计算 C = P^e (mod n),其中 C 即为 P 的密文。
  3. 解密方法

    • 对每个密文块 C,计算 P = C^d (mod n),其中 P 即为明文。


总之,RSA算法使用平方运算,明文以分组为单位进行加密,每个分组的二进制值小于 n。密钥的长度决定了加密的安全性,通常 n 的大小为1024位或309位十进制数。

3、混合加密

        混合加密就是为了利用对称加密的高效性和非对称加密的安全性。

  • 小明这边创建出公钥和私钥。
  • 小明将公钥发送给小红。
  • 小红随机生成一个密钥。并使用公钥对这个密钥进行加密
  • 此时小红再将这个密钥发送给小明,此时密钥再传递过程中处于加密状态,不怕配截取。
  • 小明、小红再通过这个密钥进行高效的对称加密通话了。

4、数字签名和哈希函数

        数字签名并不是对想要传递的信息进行加密,主要用途是用来身份验证的,判断这个信息是否由特定发送方发送。

        哈希函数是对一段信息产生内容摘要,待客户端接收信息后,再对信息原文进行哈希函数计算,对比两个内容摘要是否一样,防止信息再传输过程中被篡改

        而数字签名和哈希函数结合起来。此时和非对称加密反过来,是使用公钥进行加密的。

  • 先使用哈希函数对原文进行内容摘要。
  • 使用私钥对内容摘要和原文一起进行加密,发送给客户端。
  • 此时使用公钥对内容摘要进行解密,再对原文进行哈希函数生成内容摘要。
  • 两个内容摘要进行对比,如果相同则正确。

作用:

  • 身份认证:数字签名实现了用户的身份认证,确保消息是由特定发送方发送的。
  • 完整性保护:数字签名保证了数据在传输过程中的完整性,防止数据被篡改。
  • 不可否认性:数字签名使发送方无法否认发送过的消息,因为只有发送方的私钥能够生成有效的签名。

 

        

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/814057
推荐阅读
相关标签
  

闽ICP备14008679号