CCC数字钥匙标准3.0版本解读(24)

本文详细介绍了CCC数字钥匙标准3.0中SPAKE2+协议的安全特性,包括协议执行流程、验证过程、加密算法和错误处理。通过SPAKE2+协议,实现了设备与车辆之间的安全认证,使用ECC和Scrypt算法确保密码的安全存储和传输,保护用户隐私。此外,还讨论了NFC交互、车辆制造商服务器的隐私属性和安全组件(SE)的角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


18 安全

18.1 SPAKE2+协议描述

18.1.1 概述

本节介绍SPAKE2+协议的原理。有关实施细节,请参阅第18.4节。
该系统使用SPAKE2+,这是一种基于ECC的配对算法协议,基于客户端(即设备)提供的密码和永久存储在服务器(即车辆)中的验证器的信息,对两个实体进行相互认证。有关更多详细信息,请参见[10]。
理解说明:SPAKE2+即Simple Password Authenticated Key Exchange的缩写。
应使用NIST P-256曲线[8]。
车辆制造商服务器应在车主配对开始之前生成密码并将必要的元素(w0,L;见18.1.2)提供到车辆中,以便即使车主配对时车辆处于离线状态,也可以进行配对。
Scrypt密钥推导在服务器和设备上执行,这允许服务器和设备随着时间的推移调整推导<>参数,以对抗攻击者性能的提高。
密码pwd应通过车辆制造商帐户提供给车主,并由车主已知的登录凭据保护。密码是UTF-8编码的,应该用此编码传递给Scrypt函数。
假设所有值都是以大端字节顺序排列的。x和y随机生成器应在所需范围内具有均匀分布,并且在加密方面是安全的。

18.1.2 执行

车辆制造商服务器根据密码导出L和w0,如下所示:
z0=Scrypt(pwd, s, Nscrypt, r, p, dkLen)结果的左40字节
z1=Scrypt(pwd, s, Nscrypt, r, p, dkLen)结果的右40字节
使用FIPS 186-4,B.5.1方法导出w0和w1:
w0 = (z0 mod (n-1)) + 1,其中n是为NIST P-256定义的基点G的阶数n
w1 = (z1 mod (n-1)) + 1,其中n是为NIST P-256定义的基点G的阶数n
w0和w1不应相等。
然后,应计算:
L = w1 × G
其中G是为所选择的椭圆曲线定义的。
在[11]中描述了scrypt算法。
Scrypt函数由以下参数定义:
 Salt: 16个字节,根据[12]为每个新的验证器随机生成;
 Cost parameter Nscrypt: 4096或更高;
 Block size r:8;
 Parallelization parameter p: 1;
 Output length dkLen: 80
车辆制造商服务器然后向车辆安全且保密地提供构成验证器的salt、L和w0。
本规范未指定将来将这些参数升级到更快硬件的方法。一个简单的解决方案是服务器也向车辆提供这些参数。
当配对开始或在错误尝试后重新开始时,车辆应在所选曲线上随机生成有效标量y,然后计算:
Y = y × G + w0 × N
其中N是第18.1.5节中规定的所用椭圆曲线上的一个点。当达到失败配对尝试的最大次数时(参见第5.1.2节中SPAKE2+REQUEST命令的使用),应生成一个新的密码和验证器,以允许重试配对。
Y不应是无穷远处的点,并且应在所选曲线上。在继续协议之前,应生成新的y,并计算新的y,直到满足y的要求。
车辆应将Y与Scrypt配置参数一起传输至设备。
当车主配对开始时,密码会提供给要配对的设备,使其能够计算:
z0 = Scrypt(pwd, s, Nscrypt, r, p, dkLen) )结果的左40字节
z1=Scrypt(pwd, s, Nscrypt, r, p, dkLen)结果的右40字节
s、Nscrypt、r和p由车辆发送,dkLen在双方都是众所周知的。。
使用FIPS 186-4,B.5.1方法导出w0和w1:
w0 = (z0 mod (n-1)) + 1,其中n是为NIST P-256定义的基点G的阶数n
w1 = (z1 mod (n-1)) + 1,其中n是为NIST P-256定义的基点G的阶数n
然后,设备应在所选曲线上随机生成有效标量x,然后计算:
X = x × G + w0 × M

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jason.rr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值