加密 体系
RedMagicBox 采用 混合加密 体系,结合对称加密与非对称加密的优点,兼顾性能与安全性。本页从底层解析加密体系设计。
本技术文档仅供参考,非投资建议,自担风险。加密技术并不能消除所有风险,请理解体系并合理使用。
01混合加密体系
RedMagicBox 不采用单一加密算法,而是设计为「混合加密」架构:用对称加密处理主体数据,用非对称加密(口令 / 密钥派生)保护对称密钥。
混合加密流程
- 生成随机的会话密钥(对称加密密钥)。
- 使用会话密钥对原文件 / 数据进行对称加密。
- 使用由口令或钱包密钥派生的密钥加密保护会话密钥。
- 密文 = 加密头 + 保护后的会话密钥 + 加密主体 + 完整性校验值。
对称加密快,适合大文件;非对称加密灵活,适合密钥交换和身份绑定。混合加密兼顾了性能、灵活性与安全性,是现代加密应用的主流方案。
02算法选择
RedMagicBox 选用经过严格密码学检验的标准算法,并维护其实现与安全性。
| 用途 | 算法 | 密钥长度 | 说明 |
|---|---|---|---|
| 对称加密 | AES-256-GCM | 256 位 | 认证加密,提供保密性与完整性 |
| 哈希 | SHA-256 | 256 位 | 完整性校验与密钥派生 |
| 密钥派生 | PBKDF2-HMAC-SHA256 / Argon2 | 可配置 | 慢哈希抵抗字典攻击 |
| 椭圆曲线 | secp256k1 | 256 位 | 与 BSC 钱包兼容 |
03密钥派生与轮换
口令是用户输入的低熵字符串,需要通过慢哈希算法「拉伸」为高熵加密密钥。
- 口令输入用户输入口令字符串,长度可由用户自定义。
- 生成盐值随机生成 128 位盐值,写入加密头。
- 密钥派生通过 PBKDF2 / Argon2 慢哈希将口令 + 盐值拉伸为 AES 密钥。
- 加密会话密钥派生得到的密钥用于加密保护随机会话密钥。
慢哈希大幅度提高攻击者的字典攻击成本,让暴力猜测口令在计算上变得不可行。请使用高熵口令(长 + 复杂度)与慢哈希配合,安全性最佳。
04加密文件格式
.rbox 加密文件格式设计为序列化、可验证、向后兼容。
文件结构
- Magic 字节(4 字节):
0x52 0x42 0x4f 0x58("RBOX") - 版本号(1 字节):格式大版本,用于向后兼容。
- 加密头:包含盐值、算法参数、非ce(初始化向量)、加密后会话密钥。
- 密文主体:AES-GCM 加密后的原数据。
- 认证标签:AES-GCM 认证标签,用于密文完整性校验。
- 顶层哈希:SHA-256 完整性摘要,用于全局校验。
05完整性度量与校验
RedMagicBox 设计了两层完整性校验,确保密文在存储或传输过程中不被篡改。
内层:AES-GCM 认证标签
解密时由 AES-GCM 算法自动校验密文完整性,任何比特篡改都会导致认证失败,解密被拒绝。
外层:SHA-256 摘要
加密头 + 密文整体计算 SHA-256 写入文件末尾,解密时重新计算比对,发现文件被篡改。
两层校验均通过才认为解密可信,任何一层不通过都会提示完整性错误并拒绝输出明文。
06密钥与钱包绑定
除口令加密外,RedMagicBox 支持将加密密钥与钱包私钥绑定,实现「只有持有对应钱包的用户才能解密」。
- 绑定钱包公钥加密时使用当前钱包的公钥对会话密钥进行加密。
- 签名解锁解密时,钱包需对挑战签名以证明持有私钥,从而推导得到解密密钥。
- 本地解密推导出会话密钥后,在本地完成主体解密。
RedMagicBox 不会要求钱包签署交易(除购买 / 核销等链上操作),绑定解密仅涉及对随机挑战签名,不消耗 Gas 也不改变链上状态。请始终确认签名内容。
本技术文档内容仅供学习与参考,非投资建议,自担风险。密码学设计不能保证绝对安全,合理使用与管理密钥是你的责任。