SCMS中的链接值算法(CCSA版本)

背景

为了以最小的空间开销实现PC证书的撤销,SCMS采用了链接值算法来生成PC证书中的CN字段:

用一个种子 l s ( 0 ) ls(0) ls(0)扩展生成某设备指定周期 i i i的链接值种子 l s ( i ) ls(i) ls(i),在使用该种子生成周期 i i i J J J个链接值,这 J J J个链接值作为设备在第 i i i周期内的 J J J张假名证书的CN字段。
当要吊销该设备的第 i i i周期及之后的所有PC时,只需要在CRL中添加该设备的 l v ( i ) lv(i) lv(i)即可。

本文简述链接值算法。

具体过程

l a i d la_{id} laid为LA的32bit标识字符串。
为每一组假名证书生成一个128bit的随机数,作为该组假名证书第i=0周期的初始链接种子 l s ( 0 ) ls(0) ls(0)
在这里插入图片描述

文字描述

  1. LA选取32bit的随机字符串: L a _ i d {La\_id} La_id
  2. 对于一套假名证书,LA生成128bit的随机字符串,称为i=0周期时的初始化链接种子 l s ( 0 ) ls(0) ls(0)
    i i i表示时间周期(比如一周)
    j j j表示一个时间周期内的证书(比如一周20张证书)
  3. 之后对于每一个时间周期 i > 0 i>0 i>0, 计算链接值种子** l s ( i ) ls(i) ls(i)**:
    l s ( i ) = H u ( l a _ i d ( 16 b i t ) ∣ ∣ l s ( i − 1 ) ( 128 b i t ) ∣ ∣ 0 ( 112 b i t ) ) ls(i) = H_u\Bigl(la\_id(16bit) || ls(i-1)(128bit) || 0(112bit)\Bigr) ls(i)=Hu(la_id(16bit)ls(i1)(128bit)0(112bit))
    H u ( m ) H_u(m) Hu(m):表示m的SM3运算后的结果的u字节的最高有效位。CCSA中取u=16
    a ∣ ∣ b a || b ab:表示a和b字符串的拼接
    l s ( 0 ) , l s ( 1 ) , . . . , l s ( i ) ls(0), ls(1), ..., ls(i) ls(0),ls(1),...,ls(i) 构成了一个链接值种子的伪随机序列,称为linkage chain,LC
    性质 l s ( i − 1 ) ls(i-1) ls(i1)可以很容易推导出 l s ( i ) ls(i) ls(i),反过来却不行
  4. 计算链接值linkage value
    l v ( i , j ) = [ S M 4 l s ( i ) ( l a _ i d ( 16 b i t ) ∣ ∣ j ( 32 b i t ) ∣ ∣ 0 ( 80 b i t ) ) ⊕ ( l a _ i d ( 16 b i t ) ∣ ∣ j ( 32 b i t ) ∣ ∣ 0 ( 80 b i t ) ) ] v lv(i,j) = \Bigl[SM4_{ls(i)}\Bigl(la\_id(16bit) || j(32bit) || 0(80bit)\Bigr) \oplus\Bigl(la\_id(16bit) || j(32bit) || 0(80bit)\Bigr) \Bigr]_v lv(i,j)=[SM4ls(i)(la_id(16bit)j(32bit)0(80bit))(la_id(16bit)j(32bit)0(80bit))]v
    S M 4 k ( m ) SM4_k(m) SM4k(m):使用密钥k对输入m进行SM4加密。
    a ⊕ b a\oplus b ab:a和b的异或
    [ a ] v [a]_v [a]v:a的v字节的最高有效位。CCSA中取72
    在PCA生成PC证书,以及设备处理CRL时,都要执行该操作
  5. 上述步骤中,LA会用PCA的公钥证书加密lv后提供给RA。RA将其与PC的证书请求关联后发送给PCA。PCA解密后,将lv写入PC证书。PCA在生成PC时,使用蝴蝶密钥扩展算法来为每个证书生成签名密钥和加密密钥,并对证书进行加密,RA拿到的是加密后的PC证书。
  6. 整个过程中,RA洗牌,LA生成lv,PCA对PC加密,没有任何一个组件可以获取假名证书、lv、设备标识的映射关系,保护了设备(主要是OBU)的隐私
  7. 撤销时,只需要在CRL中公示** L a _ i d , l v ( i ) 以 及 i 值 {La\_id},lv(i)以及i值 La_idlv(i)i**,设备端即可计算出所有i及i之后周期的链接值

PS:在美国的SCMS中,链接值权威机构(LA)有两个,称为LA1和LA2,国内的CCSA标准中,LA只有一个。对于两个LA的情况,每个LA的计算过程与上述描述类似,只不过其生成的结果不是链接值,而是成为预链接值,由PCA使用两个预链接值异或得到最终的链接值。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值