美文网首页
常用加密算法介绍及https加密原理

常用加密算法介绍及https加密原理

作者: 剑老师 | 来源:发表于2021-05-17 22:10 被阅读0次

对称加密

特点:加密、解密采用同一密钥。
优点:加密速度快
缺点:因用同一密钥加解密,在密文传输过程中需要把密钥也进行传输,这样增加了密钥的泄漏风险。
代表:DES、AES

  • DES
    DES,中文为“数据加密标准”。是一种分组加密算法,密钥长度为56位,该算法每次处理固定长度的数据段,称之为分组。DES分组的大小是64位,如果加密的数据长度不是64位的倍数,可以按照某种具体的规则来填充位。

  • AES
    AES中文名为“高级加密标准”。是一种区块加密标准,这个标准用来替代原先的DES。原因就在于其使用56位密钥,比较容易被破解。而AES可以使用128、192、256位密钥,并且用128位分组加密和解密数据,相对来说安全很多。完善的加密算法在理论上是无法破解的,除非使用穷尽法。据说,即使使用目前世界上运算速度最快的计算机,穷尽128位密钥也要花上几十亿年的时间。

非对称加密算法

特点:非对称加密又可称为公私钥加密,即用公钥加密只能用对应的私钥解密,私钥加密只能用对应的公钥解密。
优点:安全,公钥可以公开,只需保证私钥不被泄露即可。
缺点:加密速度慢
代表:RSA、ECC

  • RSA
    RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。一般用于加密数据或者数字签名,因加密速度慢,一般只用于小数据加密。

  • ECC
    ECC 算法的单位安全强度高于RSA算法,也就是说,要达到同样的安全强度,ECC算法所需的密钥长度远比RSA算法低。在私钥的加密解密速度上ECC算法比RSA速度更快。

hash算法

hash算法不是严格意义上的加密算法。一般来说加密算法是可逆的,即:能加密必能解密。而hash算法是有损加密,是不可逆的。hash算法加密后位数固定。因加密后的字符串是不变的。所以一般用于密码、信息等完整性校验。
缺点:可能存在hash碰撞(不同的明文可能会有相同的hash密文),但概率极低。
代表:SHA、md5

混合加密

由于对称加密的密钥容易泄漏,非对称加密的加解密速度较慢,而hash算法不可逆,各自有各自的优缺点。所以一般情况下,我们会把几种算法结合使用。如:

  • AES+RSA
    用RSA加密AES的密钥,AES算法加密正文。把用RSA加密后的AES密钥,与AES加密后的密文进行传输。接收方再用RSA算法解出AES的密钥,然后再用AES的密钥解密正文。
    AES+RSA是平常最常用的加密方式之一,它综合了两种算法的优点,并有效避免了两种算法各自的缺点。这样既保证了加解密的速度,又保证了密钥的安全性

  • 数字签名(非对称+Hash算法)
    数字签名是利用Hash算法的加密后字符串不变的特点进行验证的。其流程如下:

1.将明文进行用hash算法加密形成摘要,然后用“非对称加密算法私钥”加密形成签名。然后将签名和明文一起发送给接收方。
2.接收方接到之后用本地的“非对称加密算法公钥”解密签名获取摘要
3.把接收到的明文用同样的hash算法进行加密与第二步获得的摘要进行对比。

但是问题来了:数字签名的公钥容易被篡改,无法保证是合法的。所以我们引入了证书颁发机构颁发数字证书。

  • 数字证书验证流程

1.向第三方CA机构提交公钥、组织信息、域名等信息申请证书
2.CA机构验证提交信息的真实性后,用hash算法把申请者信息进行加密生成摘要,然后用CA私钥把摘要进行加密形成签名,此签名和服务器公钥、申请者信息、签发机构信息、有效时间等一同保存在证书中,并签发给申请方。
3.客户端向服务器请求,服务器返回证书。客户端验证证书相关域名、有效时间等信息是否与本地证书信息对应。(客户端一般会内置被信任的证书信息,包含证书公钥)
4.客户端读取证书中的明文信息,并用相同的hash算法加密得到摘要。
5.客户端从本地取出证书的公钥对签名解密,并与上一步得到的摘要对比,如果一致,则可以确认证书的合法性。那么对应的服务器公钥也是值得信赖的

关注公众号【一个老码农】,更多优质技术文章等你来

  • https

https是身披SSL/TLS外壳的http。https是一种通过计算机网络进行安全通信的传输协议,经由http进行通信,利用建立全信道,加密数据包。
而SSL/TLS正是混合了对称、非对称、hash三种算法所形成的。其包含了上面所说的“数字证书验证流程”和”AES+RSA混合加密”。
所以也可以说:https是由对称加密、非对称加密、hash算法三种算法共同实现的。

https的大致工作流程如下:

1.客户端发起https请求。
2.服务端把申请好的公钥证书返回给客户端。
3.客户端通过上面的“数字证书验证流程”验证证书的合法性,如果通过则继续第4步,不通过则显示警告信息。
4.客户端生成一个“对称加密”所使用的密钥,然后用证书中的服务器公钥加密这个密钥,发送给服务端
5.服务端用自己的私钥解密,得到“对称加密”密钥。
6.服务端用得到的“对称加密”密钥加密一段明文,发送给客户端。客户端使用对称密钥解密得到的明文
7.客户端发起请求,使用对称密钥加密一段明文,服务端收到后用对称密钥进行解密,得到明文。

最后附一张https流程图:

本文首发于公众号【一个老码农】

相关文章

  • 常用加密算法介绍及https加密原理

    对称加密 特点:加密、解密采用同一密钥。优点:加密速度快缺点:因用同一密钥加解密,在密文传输过程中需要把密钥也进行...

  • 常见的三种加密算法及区别

    1.常见的三种加密算法及区别 2.加密算法在HTTPS中的应用3.MD5的实现原理 常见的加密算法 1.摘要...

  • 加密算法原理&&DNS服务原理及配置

    1).简述常见加密算法及常见加密算法原理,最好使用图例解说 加密算法类型: 对称加密、公钥加密、单向加密 各加密算...

  • 加密算法原理简述以及DNS主从服务器的搭建过程

    1、简述常见加密算法及常见加密算法原理,最好使用图例解说 加密算法类型:对称加密、非对称加密、单向加密、密钥交换 ...

  • 常用加密算法

    1 常用加密算法 常用加密算法有 对称加密算法、非对称加密算法、Hash算法 对称加密算法 加密和解密使用相同的秘...

  • Diffie-Hellman密钥协商算法

    加密算法介绍 目前常用的加密算法主要有:哈希算法(比如MD5、SHA族、Hmac),对称加密算法(比如AES),非...

  • HTTPS的加密原理

    1.常见的三种加密算法及区别 2.加密算法在HTTPS中的应用3.MD5的实现原理 http明文传输 明文传...

  • 加密和Kerberos鉴权

    这篇主要介绍常用的加密算法和鉴权协议,关于Kerbose的详细介绍,可以参考这篇https://blog.csdn...

  • Chapter 9——通信加密解密技术和DNS服务

    一、简述常见加密算法及常见加密算法原理,最好使用图例解说 常见的加密方式有四种:对称加密、密钥加密、单向加密和密钥...

  • Android 加密算法

    主要内容 1.加密算法分类 2.常用的加密算法实现 今天主要讲些加密算法的事。相关代码:https://githu...

网友评论

      本文标题:常用加密算法介绍及https加密原理

      本文链接:https://www.haomeiwen.com/subject/nzdsjltx.html