基于SM2的协同签名与协同加密方案

一、协同签名

在业务应用中,两方或多方的协同签名一般采用门限签名方案可以用来构造。相比传统的数字签名方案,整个签名过程避免了由单一主体保管密钥带来的系统性单点故障以及跨机构信任问题。

门限签名方案是门限密码最常见的应用,其基于秘密分享的核心理念,将私钥切分成多个秘密分片,实现如下效果:

  • 只有当不少于门限值的秘密分片持有者共同协作,才可以生成有效的签名。
  • 即便部分秘密分片丢失,只要剩余秘密分片不少于门限值,依旧可以生成有效的签名。
  • 联合生成的签名中,并没有透露具体哪些持有者参与了签名过程。

多方协作完成签名,涉及到如下几个方面:

  • 如何将单个密钥安全地切分成多个密钥分片?(单个主体拥有的密钥分片不被其他主体所知)
  • 如何让单个主体能独立安全地使用自己的密钥分片?
  • 如何协同完成签名与验签操作?

解决上述问题的关键在于门限密码算法的巧妙构造。

门限密码算法在多方协作的相关场景中应用十分广泛,可以实现数据联合授权、认证、密钥安全恢复、密钥安全交换等需求,在诸多分布式多方计算协议中均可见其身影。

以下从两方协同签名方案介绍入手,介绍门限密码在协同签名中的应用。

二、两方协同签名方案

两方协同签名指客户端与服务端协同完成签名、验签操作,具体实现方案参考了信工所专利[3]。协同签名整体遵循SM2标准数字签名规范,其内核思想亦是借鉴了SM2算法——以s分量校验r分量是否一致;其次,在设计联合公钥综合考虑两方私钥。

协同签名公钥生成流程如下&#x

你可能感兴趣的:(密码学,密码学)