Skip to content

Latest commit

 

History

History
70 lines (49 loc) · 2.53 KB

FEATURE.md

File metadata and controls

70 lines (49 loc) · 2.53 KB

CrypVol 功能特性

核心架构

自举数据卷(Self-Contained Volume)

每个 .cvp 数据卷是独立可读的单元:

  • 一个卷 = 一个自包含的加密数据块,提取该卷数据不需要其他卷在场
  • 文件尽量完整放入单卷;仅当单文件超过卷大小或当前卷剩余空间无法存放完整数据时才跨卷分段
  • 丢失/损坏某个卷,只影响该卷内的数据,其他卷完全几乎不受影响(跨卷数据例外)
  • 适合分布式存储、离线传输、不完整集合也能部分提取

密钥与数据分离

  • .cvp — 数据卷,CEK 加密
  • .cvk — 密钥信封,包裹 CEK,自身可用密码/公钥保护
  • 换密钥保护、加接收者不动数据卷(rekey 命令的基础)
  • 块级重加密:不解压,仅用新 CEK 重加密数据块(convert 命令的基础)

密钥二态输入

数据产出命令(pack、convert)均支持两种密钥来源:

方式 说明
--key-file <cvk> 复用已有 .cvk 的 CEK,跳过密钥生成
--mode / --password 生成新 CEK + 新 .cvk

并行处理管线

打包流程:扫描 → 预分配 → [读文件 → 压缩/加密 → 按卷写入],基于 Channel 的多级流水线,读写和计算并行。

加密模式

模式 CEK 保护方式 解密需要
None 数据明文,无 .cvk —
PlainKey CEK 明文存 .cvk .cvk 文件
Password Argon2id + AES-256-GCM 包裹 密码
Asymmetric RSA 公钥包裹 对应私钥

文件格式

  • .cvp — 加密数据卷,<前缀>.<卷号>.cvp
  • .cvk — 密钥信封,<前缀>.cvk,Base64 编码

命令列表

命令 功能 层级
pack 打包为加密卷 数据产出
extract 从卷还原文件 数据消费
browse 浏览卷内文件列表 数据消费
info 查看密钥文件元数据 密钥查询
verify 校验卷完整性 数据消费
repair 尝试修复损坏卷 数据修复
rekey 重新封装密钥信封(CEK 不变) 密钥层
convert 块级密钥轮换(旧CEK→新CEK) 数据层

压缩

  • GZip 压缩(可选),级别 0-9
  • 压缩在加密之前进行

完整性校验

  • 打包时可选嵌入 CRC32(块级)/ SHA256(文件级/卷级)
  • verify 命令逐块验证
  • repair 命令利用校验信息定位损坏区域