第12篇-勒索软件加密技术解析"

admin 2026-10-19 19:14:16 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

第12篇-勒索软件加密技术解析

原创

pandazhengzheng
pandazhengzheng

安全分析与研究

2026年8月17日 22:00
广东

在小说阅读器读本章

去阅读

深度剖析勒索软件加密体系的技术实现,从密码学数学基础到实战加密架构,全面解析 AES、ChaCha20、RSA、ECC 及混合加密模型在勒索软件中的运用。


一、密码学基础

1.1 对称加密与非对称加密

勒索软件的加密体系建立在两大密码学分支之上:对称加密与非对称加密。理解二者的差异是分析勒索软件加密机制的起点。

对称加密使用同一密钥完成加密与解密操作,其核心特征如下:

特性 说明
密钥数量 加密与解密使用同一密钥
加密速度 极快,适合大体积数据加密
密钥分发 密钥必须安全传输,否则可被截获
典型算法 AES、ChaCha20、Salsa20、3DES
密钥长度 AES-128/192/256;ChaCha20-256
应用场景 勒索软件中对文件数据的批量加密

非对称加密使用密钥对(公钥/私钥),公钥加密、私钥解密,其核心特征如下:

特性 说明
密钥数量 公钥与私钥组成密钥对,互不相同
加密速度 极慢,仅适合小数据量加密
密钥分发 公钥可公开分发,私钥由持有者保管
典型算法 RSA、ECC(ECDH/ECIES)、ElGamal
密钥长度 RSA-2048/4096;ECC-256/384
应用场景 勒索软件中对对称密钥的封装保护

勒索软件之所以必须采用混合加密体系,根源在于两种加密方式的互补特性:对称加密速度快但密钥无法安全传输,非对称加密可安全传输密钥但速度过慢。二者结合即可实现\"快速加密大量文件 + 安全保护加密密钥\"的目标。

1.2 哈希函数与密钥派生函数

哈希函数在勒索软件加密体系中承担多重角色:密钥派生、完整性校验、密钥标识生成。

密码学哈希函数的核心性质:

性质 数学描述 安全意义
原像抗性 给定 ,计算上不可行找到  使得 防止从哈希值反推原始数据
第二原像抗性 给定 ,计算上不可行找到  使得 防止替换攻击
碰撞抗性 计算上不可行找到任意  使得 防止生日攻击
雪崩效应 输入微小变化导致输出剧烈变化 确保哈希分布的随机性

勒索软件中常用的哈希函数:

哈希算法 输出长度 勒索软件应用场景
SHA-256 256 bit LockBit 3.0 密钥派生、文件完整性校验
SHA-1 160 bit 部分旧版勒索软件的密钥标识(已不安全)
MD5 128 bit 早期勒索软件的受害者标识生成
SHA-3 可变 新型勒索软件的密钥派生
BLAKE2 256/512 bit 部分基于 Rust 的勒索软件(如 BlackCat)

密钥派生函数(KDF)将低熵输入(如密码、主密钥种子)转化为高熵的密码学密钥:

KDF 的核心设计目标包括:

  • 密钥拉伸(Key Stretching):通过迭代计算增加暴力破解的时间成本
  • 盐值(Salt)引入:防止彩虹表攻击和预计算攻击
  • 可调计算成本:适应硬件性能增长,动态调整安全参数

1.3 勒索软件中的混合加密模型

现代勒索软件普遍采用\"对称加密 + 非对称加密\"的混合加密模型,其工作流程如下:

┌─────────────────────────────────────────────────────────────────┐
│                    勒索软件混合加密模型                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  [受害者系统]                      [攻击者C2服务器]              │
│                                                                 │
│  1. 生成随机对称密钥 SK                                          │
│       │                                                         │
│       ▼                                                         │
│  2. 使用 SK 加密文件 ──────────► 加密文件 (AES/ChaCha20)        │
│       │                                                         │
│       ▼                                                         │
│  3. 使用攻击者公钥 PK_enc 加密 SK                                │
│       │                                                         │
│       ▼                                                         │
│  4. 加密后的 SK 存储在本地                                       │
│       │                     私钥 SK_dec 安全存储在 C2            │
│       ▼                     │                                   │
│  5. 销毁明文 SK           ◄─┘                                   │
│                                                                 │
│  [解密流程]                                                      │
│  受害者支付赎金 → 攻击者用 SK_dec 解密 SK → 发送明文 SK          │
│  → 受害者用 SK 解密文件                                          │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

混合加密模型的关键安全属性:

安全属性 实现方式 勒索软件意义
机密性 对称密钥加密文件数据 确保受害者无法自行解密
密钥保护 非对称加密封装对称密钥 确保对称密钥仅攻击者可恢复
前向安全 每次感染使用独立密钥对 防止一个密钥泄露影响所有受害者
密钥销毁 安全擦除内存中的明文密钥 防止内存取证恢复密钥
完整性 HMAC/GCM 认证标签 防止文件被篡改导致解密失败

二、AES加密技术深度解析

2.1 数学基础

AES(Advanced Encryption Standard)的数学基础建立在有限域(Galois Field) 之上。

有限域  的定义:

是由所有 8 位二进制数组成的有限域,其上的运算定义如下:

  • 加法:对应比特位的异或(XOR)运算

其中
* 乘法:基于不可约多项式的模乘运算

其中不可约多项式为:

对应十六进制值 0x11B

xtime 运算(乘以  的运算)是 AES 乘法的基础:

其中  表示左移位运算。任意乘法  可通过反复调用 xtime 和 XOR 实现。

AES 的 SPN(Substitution-Permutation Network)结构:

AES 采用代换-置换网络(SPN)结构,每一轮包含以下操作:

┌──────────────────────────────────────────┐
│           AES 单轮结构 (SPN)              │
│                                          │
│  输入状态 (16字节)                        │
│       │                                  │
│       ▼                                  │
│  SubBytes (S盒代换)  ← 非线性混淆        │
│       │                                  │
│       ▼                                  │
│  ShiftRows (行移位)  ← 线性扩散          │
│       │                                  │
│       ▼                                  │
│  MixColumns (列混合)  ← 线性扩散         │
│       │                                  │
│       ▼                                  │
│  AddRoundKey (轮密钥加) ← 密钥引入       │
│       │                                  │
│       ▼                                  │
│  输出状态 (16字节)                        │
└──────────────────────────────────────────┘

2.2 AES-128/192/256 算法详解

AES 支持三种密钥长度,对应不同的轮数:

参数 AES-128 AES-192 AES-256
密钥长度 128 bit 192 bit 256 bit
轮数 10 12 14
轮密钥长度 128 bit 128 bit 128 bit
扩展密钥字数 44 52 60
安全级别 足够 高 极高

AES 状态矩阵:

AES 将 16 字节的输入数据组织为  的字节矩阵(State),按列优先排列:

其中  表示第  行第  列的字节。

2.2.1 SubBytes 变换

SubBytes 对状态矩阵中的每个字节通过 S 盒(S-Box)进行非线性代换:

S 盒的构造过程:

  1. 求字节在  中的乘法逆元:
  2. 对逆元字节进行仿射变换:

其中 。

S 盒的部分值(十六进制):

0 1 2 3 4 5 6 7 8 9 A B C D E F
0 63 7C 77 7B F2 6B 6F C5 30 01 67 2B FE D7 AB 76
1 CA 82 C9 7D FA 59 47 F0 AD D4 A2 AF 9C A4 72 C0
2 B7 FD 93 26 36 3F F7 CC 34 A5 E5 F1 71 D8 31 15
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

S 盒的设计提供了良好的非线性特性,其非线性度为 112(最大可能值为 128),差分分布表的最大值为 4,有效抵抗差分密码分析和线性密码分析。

2.2.2 ShiftRows 变换

ShiftRows 对状态矩阵的每一行进行不同偏移量的循环左移:

行号 偏移量
0 0
1 1
2 2
3 3

变换效果示意:

原始状态:                    ShiftRows 后:
┌───┬───┬───┬───┐          ┌───┬───┬───┬───┐
│s00│s01│s02│s03│          │s00│s01│s02│s03│  (不移动)
├───┼───┼───┼───┤          ├───┼───┼───┼───┤
│s10│s11│s12│s13│   ──►    │s11│s12│s13│s10│  (左移1)
├───┼───┼───┼───┤          ├───┼───┼───┼───┤
│s20│s21│s22│s23│          │s22│s23│s20│s21│  (左移2)
├───┼───┼───┼───┤          ├───┼───┼───┼───┤
│s30│s31│s32│s33│          │s33│s30│s31│s32│  (左移3)
└───┴───┴───┴───┘          └───┴───┴───┴───┘

ShiftRows 的作用是在列方向上实现扩散,确保一列中的字节被分散到不同的列中,与 MixColumns 配合实现\"宽轨迹\"扩散策略。

2.2.3 MixColumns 变换

MixColumns 对状态矩阵的每一列进行  上的矩阵乘法:

其中矩阵元素为  中的值,乘法基于前述的不可约多项式 。

展开计算:

MixColumns 矩阵是 MDS(Maximum Distance Separable)矩阵,其分支数为 5(最大可能值),确保每轮变换后输出字节与输入字节的最大关联数为 4,提供最优的扩散效果。

2.2.4 AddRoundKey 变换

AddRoundKey 将轮密钥与状态矩阵进行逐字节异或:

其中  为第  轮轮密钥的第  行第  列字节。

2.2.5 密钥扩展算法

AES 密钥扩展将原始密钥扩展为  个 128 位轮密钥。以 AES-128 为例:

初始密钥划分: 将 128 位密钥分为 4 个 32 位字

扩展规则:

其中:

  • RotWord:将 4 字节字循环左移一字节,即
  • SubWord:对 4 字节字的每个字节应用 S 盒代换
  • Rcon:轮常量,定义为 ,其中 ,
轮常量 值
Rcon[1] 01000000
Rcon[2] 02000000
Rcon[3] 04000000
Rcon[4] 08000000
Rcon[5] 10000000
Rcon[6] 20000000
Rcon[7] 40000000
Rcon[8] 80000000
Rcon[9] 1B000000
Rcon[10] 36000000

完整 AES 加密流程:

明文 (128 bit)
    │
    ▼
AddRoundKey (轮密钥 0)        ← 初始轮密钥加
    │
    ▼
┌──────────────────────────┐
│  第 1 到 Nr-1 轮循环      │
│  ┌────────────────────┐  │
│  │ SubBytes           │  │
│  │ ShiftRows          │  │
│  │ MixColumns         │  │
│  │ AddRoundKey        │  │
│  └────────────────────┘  │
└──────────────────────────┘
    │
    ▼
SubBytes                      ← 最后一轮(无 MixColumns)
ShiftRows
AddRoundKey (轮密钥 Nr)
    │
    ▼
密文 (128 bit)

2.3 AES 工作模式对比

AES 分组密码本身只能加密固定长度(128 bit)的数据,工作模式定义了如何处理超过一个分组的数据。

工作模式 全称 并行加密 并行解密 随机访问 认证 典型勒索软件
ECB Electronic Codebook 是 是 是 否 WannaCry(部分)
CBC Cipher Block Chaining 否 是 否 否 Ryuk、Conti
CTR Counter 是 是 是 否 LockBit 2.0
GCM Galois/Counter 是 是 是 是 部分新型家族
XTS XEX-based Tweaked-codebook 是 是 是 否 部分磁盘加密
CFB Cipher Feedback 否 是 否 否 早期家族

2.3.1 CBC 模式详解

CBC(Cipher Block Chaining)模式通过将前一密文分组与当前明文分组异或后再加密,实现分组间的链接:

加密:

解密:


第12篇-勒索软件加密技术解析" 网络安全文章

第12篇-勒索软件加密技术解析"

本文深度剖析勒索软件加密体系,从密码学基础到混合加密模型,详细解析AES、ChaCha20、RSA、ECC等算法在勒索软件中的运用。核心结论是勒索软件采用对称加密快速加密文件,非对称加密保护密钥,实现高效且安全的加密。理解这些技术有助于安全分析人员识别和防御勒索软件攻击。
我,AI员工,操作多个安全产品" 网络安全文章

我,AI员工,操作多个安全产品"

本文介绍斗象智能安全AI员工操作系统CowboyOS,强调AI在安全运营中需遵循安全可控原则。AI员工可处理告警降噪、漏洞收敛、事件研判等任务,但高风险操作必须经人类授权。系统通过凭证保险箱管理权限,所有操作被审计记录。核心结论是机器负责快速寻证与执行,人类负责关键决策,实现高效协同。
三维架构、四种盈利、五重赋能:纳米Work企业版渠道生态正式起航" 网络安全文章

三维架构、四种盈利、五重赋能:纳米Work企业版渠道生态正式起航"

360纳米Work企业版发布渠道生态政策,以安全为基、渠道为脉、服务为核,解决企业AI落地难问题。产品内置20年安全积淀,通过三维伙伴架构、四种盈利模式和五重赋能体系,让合作伙伴轻量化切入千亿蓝海。同时依托1000+FDE工程师和AikerWorld社区,提供陪跑与服务包模式,打通AI落地最后一公里。
评论:0   参与:  0