数字钥匙系统通过多种密码学算法协同工作,实现设备身份认证、密钥协商、指令加密、距离验证及隐私保护等核心安全能力。相关算法分布于应用层、安全通道、配对流程以及近场通信与物理层测距等多个环节,彼此之间存在明确的使用边界和依赖关系。
本文对 CCC 数字钥匙体系中涉及的主要密码学算法进行统一梳理,按功能类别对其用途和应用场景进行归纳说明,旨在为架构设计、实现开发及安全评审提供一份清晰、完整的算法参考。
1. 非对称加密与签名算法 (Asymmetric Cryptography)
这类算法构建了系统的信任根,用于身份鉴别和初始密钥交换。
- NIST P-256 (secp256r1)
- 描述: 规范唯一指定的椭圆曲线参数,提供约 128 位安全强度。
- 应用: 生成端点私钥(endpoint.SK)与公钥(endpoint.PK),是所有证书体系的数学根基 [2190, 14.1.2]。
- ECDSA (with SHA-256)
- 描述: 结合 SHA-256 摘要的椭圆曲线数字签名算法。
- 应用: 签署端点证书、证明包(Attestation Package)以及交易中的挑战值(Challenge)响应 [2190, 5.1.4.3]。
- ECDH / ECKA-DH
- 描述: 椭圆曲线密钥协商协议,允许双方在公开信道协商共享秘密。
- 应用: 在标准交易 中生成 32 字节共享秘密 KdhK_{dh}Kdh,用于派生后续会话密钥 [2191, 15.3.3.1]。
- ECIES_v1
- 描述: 椭圆曲线集成加密方案,结合了 ECDH 和对称加密。
- 应用: 专用于移动设备与车企服务器间的**钥匙追踪(Key Tracking)**请求及机密数据保护 [2191, 17.11]。
2. 对称加密与消息认证算法 (Symmetric Cryptography)
用于在身份确立后,保障指令传输的高速、机密与完整。
- AES-128 / AES-256
- 描述: 高级分组加密标准,CCC 体系的基础加密模块。
- 应用场景: AES-CBC 用于 SCP03 安全通道指令加密;AES-GCM 用于 ECIES 场景;AES-CCM* 专用于 UWB SP0 帧加密。
- AES-CMAC-128
- 描述: 基于 AES 的消息认证码算法。
- 应用: 计算快速交易的身份验证密文(Cryptogram)、SPAKE2+ 协议证据 [2192, 15.3.3.1]。
- Retail MAC
- 描述: 符合 GlobalPlatform 规范的链式 MAC 算法。
- 应用: 应用于 SCP03 安全通道 ,通过
MacChainValue防止指令流被重放或篡改。
3. 密钥派生与散列算法 (KDF & Hashing)
负责将原始秘密"加工"成用途隔离的多种功能密钥。
- HKDF-SHA256
- 描述: 基于 HMAC 的密钥派生函数,包含"提取"和"扩展"阶段。
- 应用: 从共享秘密中派生**系统密钥(Kenc,Kmac,KrmacK_{enc}, K_{mac}, K_{rmac}Kenc,Kmac,Krmac)**及测距用的长期共享秘密 [2193, 18.4.9]。
- ANSI X9.63 KDF
- 描述: 专为 ECDH 场景设计的密钥派生标准。
- 应用: 在 ECDH 流程中将共享秘密点转换为固定长度的关键算法材料 [2194, 17.11.4]。
- NIST SP 800-108 (Counter Mode)
- 描述: 计数器模式密钥派生函数。
- 应用: 专门用于派生**机密信箱(Confidential Mailbox)**保护密钥 KEencKE_{enc}KEenc 和 KEmacKE_{mac}KEmac [2194, 15.3.3.1]。
- SHA-256 / SHA-1
- 描述: 安全散列算法。SHA-256 为主,SHA-1 仅限特定场景。
- 应用: SHA-256 用于所有摘要计算和 KDF 输入;SHA-1 仅用于计算 Subject Key Identifier (KeyID) [2194, 4.2]。
4. 增强安全与物理层特定算法
Release 3 规范特有的算法,旨在对抗物理层攻击和离线穷举攻击。
- SPAKE2+ (PAKE)
- 描述: 增强型密码验证密钥交换协议。
- 应用: 核心应用于车主配对(Owner Pairing),在不暴露明文的情况下基于 8 位 PIN 码建立安全连接 [2194, 18.1]。
- Scrypt
- 描述: 内存密集型哈希算法。
- 应用: 将低熵密码强化为高熵验证器,防御针对配对密码的暴力破解 [2195, 18.1.2]。
- DRBG (AES-CTR)
- 描述: 确定性随机位生成器。
- 应用: 驱动 UWB 物理层生成 STS(混淆时间戳序列),提供抗中继攻击的时间指纹 [2195, 22.1.1]。
- 纠错编码 (Reed-Solomon & SECDED)
- 描述: 包含 RS (63, 55) 编码、SECDED 汉明码及卷积码 G(2,5)G(2,5)G(2,5)。
- 应用: 应用于 UWB 物理层(PHY),保护 SP0 帧负载和 PHR 头的传输稳健性。
- Address Rotation (UAD)
- 描述: UWB 地址派生与旋转算法。
- 应用: 周期性更换 UWB 通讯地址,防止第三方通过固定硬件地址追踪设备物理位置 [1895, 22.1.4.1]。
5. 安全通道协议算法 (Secure Channel Protocols)
- GlobalPlatform SCP03 / SCP11
- 描述: 工业标准的 SE 通讯保护协议。
- 应用: 用于在 SE 与手机框架层之间建立加密传输通道,保护内部 APDU 指令隐私。