电子签章过程中的原始数据处理

电子签章中需要对原文数据处理的地方主要存在于三种程中:

  • 签名或验签
  • 电子签章中的原文摘要
  • 电子印章的使用者证书在电子印章中的保存方式

现在我们分别来看这三种情况下对原始数据的处理。

1、签名和验签

按照标准GM/T 0009-2012中规定,对待签名消息需要进行预处理,分成两步:

A、使用签名方用户ID和签名方公钥计算得到z值。

B、使用第一步得到的z值和待签名消息通过sm3运算得到杂凑值。

最后对这个杂凑值进行签名或验签。

2、电子签章结构体中的原文杂凑值

在密码规范GB/T 38540-2020中规定电子签章结构体中要有原文杂凑值一项。如下图:

 

如果从字面意思来说,dataHash中存储的值应该是原文数据通过sm3运算得到的杂凑值。但实际中仍然会有如果签名或验签过程中的数据处理方式,即先使用签名方公钥和签名者ID运算得到Z值,然后使用z值和原文通过sm3运算得到杂凑值。

3、电子印章中的使用者证书项

在密码规范GB/T 38540-2020中规定,电子印章结构体中可以保存使用者签名证书或使用者签名证书的杂凑值:

如果certListType等于2,那么certList的子项肯定要包含签章者证书的杂凑值。那么者签章者证书的杂凑值计算仍然可能会有两种情况:单纯使用sm3运算,或者先计算Z值,然后在使用sm3运算得到杂凑值。

上述三种情况下,如果要计算Z值,用户ID可以使用默认值,这样第三方可以自行开发验签程序,GM/T 0009-2012中规定,用户ID默认值为:

0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38

如果用户ID不使用默认值,那只能视情况而定,或者干脆无法验证了。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值