ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

网络安全简述-加密技术

网络安全简述-加密技术

网络安全简述

  • 网络安全概述
  • 加密技术/算法
    • 对称加密技术/算法
      • 3DES加密流程详解
        • 流程说明
        • 密钥使用总结
        • 安全性特点
    • 非对称加密技术/算法
      • RSA加密流程详解
        • RSA加密流程图(信息保密场景)
        • RSA签名流程图(身份认证场景)
        • 公钥私钥使用顺序对比
        • 关键区别
    • 混合加密
    • 哈希算法
      • 特点
      • 常见算法
      • 应用场景

网络安全概述

网络安全就是信息安全。而信息安全的核心就在于密码技术,很多高校开设的有密码学,实际上就是研究数学领域内如何保证信息安全。

Kerckhoffs原则:密码系统的安全性不应依赖于其算法的保密性,而是应该建立在密钥的保密之上。

理论上来说,密码都是可以破解的,但是不同的密码技术所需要的成本截然不同。

密码技术的常见手段有三类:
1、替换
2、换位
3、一次性填充

加密技术/算法

分类:

加密技术例子
对称加密DES 3DES 2DEA AES DC4/5
非对称加密RSA SM2
哈希MD5 SHA SM3

对称加密技术/算法

简而言之就是:加解密的密钥相同

常见有: DES 3DES AES 等等

其中值得一提的是:
AES是可以使用硬件来实现的,因此在运算速度上具备优势,分组为128位,密钥长度(120/192/256位)。

3DES的加密流程是 先使用Key1对信息加密 再使用Key2对信息解密 再使用Key1进行加密,总共有三步,但是只使用了两个密钥。

3DES加密流程详解

3DES(Triple DES)是对DES算法的增强,通过三次DES操作来提高安全性。其加密流程如下:

流程说明
  1. 第一步:DES加密

    • 使用Key1对明文进行DES加密
    • 这是标准的DES加密操作
  2. 第二步:DES解密

    • 使用Key2对第一步的结果进行DES解密
    • 注意:这里使用的是解密操作,但密钥不同
  3. 第三步:DES加密

    • 再次使用Key1对第二步的结果进行DES加密
    • 最终得到密文
密钥使用总结
  • Key1: 用于第一步加密和第三步加密
  • Key2: 用于第二步解密
  • 总共使用两个密钥完成三次DES操作
安全性特点
  • 有效密钥长度:112位(两个56位DES密钥)
  • 抗暴力破解能力:2¹¹²次尝试
  • 兼容性:可以解密使用单DES加密的数据

注意:在实际应用中,Key1和Key2应该是两个不同的密钥,如果使用相同的密钥,3DES会退化为单DES。

非对称加密技术/算法

公钥加密 + 私钥解密 = 信息保密
私钥加密 + 公钥解密 = 数字签名

公钥和私钥是一对钥匙,类似于电视剧中,男女主通过玉佩相识。这一对钥匙均属于一个主体,且私钥要保存妥当,原则上只有主体知道。
常见有RSA加密 其密钥长度为512位或者1024位

RSA加密流程详解

RSA是目前最经典的非对称加密算法,其核心在于公钥和私钥的使用顺序决定了加密的目的。下面通过流程图和对比来说明。

RSA加密流程图(信息保密场景)

接收方操作

发送方操作

发送方

使用接收方的公钥加密

密文传输

接收方使用自己的私钥解密

接收方获得明文

RSA签名流程图(身份认证场景)

接收方操作

发送方操作

发送方

使用自己的私钥加密(签名)

签名+原文传输

接收方使用发送方的公钥解密(验签)

确认发送方身份

公钥私钥使用顺序对比
场景加密方使用的密钥解密方使用的密钥目的
信息保密接收方的公钥接收方的私钥保证只有接收方才能解密
数字签名发送方的私钥发送方的公钥保证信息确实来自发送方
关键区别
  1. 信息保密场景:先公钥后私钥

    • 发送方用接收方的公钥加密
    • 接收方用自己的私钥解密
    • 公钥公开,任何人都能加密,但只有持有私钥的接收方才能解密
  2. 数字签名场景:先私钥后公钥

    • 发送方用自己的私钥加密(签名)
    • 接收方用发送方的公钥解密(验签)
    • 私钥只有发送方持有,因此能证明信息确实来自发送方

核心要点:公钥加密、私钥解密用于保密通信;私钥加密、公钥解密用于身份认证。两者的使用顺序恰好相反,这正是非对称加密的精髓所在。

混合加密

既然对称加密加密信息具备优势,而非对称加密在传递信息上具备优势,因此结合起来,利用*对称密钥加密信息,使用非对称加密加密密钥,既能加密信息又保障了密钥不易第三方获取。

哈希算法

哈希最出名的特点就在于:
将任意长度的内容转化为固定长度的哈希值

特点

1、不可逆性无法通过哈希值还原原内容
2、抗碰撞性 很难找到两个不同的输入使得它们的哈希值相同
3、雪崩效应 原信息变动一个比特也会使得哈希值大变

常见算法

算法数据分组哈希值长度
MD5512位128位
SHA512位160位
SM3512位256位

应用场景

1、文件校验

下载软件或大文件时,官方会同时公布文件的哈希值(如 MD5、SHA-256)。下载完成后本地计算哈希值,与官方公布值比对,一致则说明文件在传输过程中未被篡改或损坏。

2、密码存储

网站存储用户密码时,不保存明文,而是保存密码的哈希值。用户登录时,将输入的密码做同样的哈希运算,与数据库中的哈希值比对。即使数据库泄露,攻击者也无法直接得到明文密码。

3、用户身份认证(HMAC)

HMAC(Hash-based Message Authentication Code,基于哈希的消息认证码)是哈希在身份认证中的典型应用。它结合了哈希函数共享密钥,既能验证消息的完整性,又能确认消息确实来自持有密钥的合法用户。

HMAC 认证流程

一致

不一致

用户

输入账号密码

服务端生成随机挑战值 nonce

用户用共享密钥计算 HMAC(密钥, nonce)

用户将 HMAC 值发送给服务端

服务端用同一密钥计算 HMAC

比对两个 HMAC 值

认证通过

认证失败

HMAC 认证示例

以用户登录为例:

  1. 用户发起登录请求:用户输入账号和密码,向服务端请求登录。
  2. 服务端下发挑战值:服务端生成一个随机数nonce并发送给用户。
  3. 用户计算 HMAC:用户使用共享密钥(登录时协商好的密钥)对nonce计算 HMAC 值,连同账号一起发送给服务端。
  4. 服务端验证:服务端用数据库中保存的同一共享密钥,对同一个nonce计算 HMAC 值,与用户发来的 HMAC 值比对。
  5. 判定结果:两个 HMAC 值一致 → 认证通过;不一致 → 认证失败。

关键点:HMAC 的安全性同时依赖哈希函数的单向性共享密钥的保密性。攻击者即使截获了 HMAC 值,也无法反推出密钥;没有密钥,也无法伪造出合法的 HMAC 值。因此 HMAC 常用于 API 接口签名、Token 校验等身份认证场景。

返回列表