论文部分内容阅读
随着信息技术的发展,数字签名的技术在诸多领域起到越来越重要的作用,尤其在军事安全、商业贸易等不同领域起到了不可代替的作用。然而签名权利的过度集中或者签名密钥的丢失会带来一些风险,为了解决这些问题,可以采用多重签名或者门限签名。由于门限签名比多重签名方式具有更多的灵活性,门限签名方式更被人们所接受。中国密码管理局于2010年发布了SM2签名算法,门限SM2签名方案的设计受到了众多学者的关注。然而已有的门限SM2方案即使在可信中心的协助下也无法实现计算和通信开销较低的(2,2)门限形式。央行于2016年展开数字货币研讨会,数字货币的发行必然会用到基于SM2签名算法的数字钱包,因此研究基于两方SM2签名方案具有十分重要的意义。针对以上的种种问题,本文提出了一个无可信中心的两方SM2签名方案,具体来说,该方案有以下贡献:(1)以一种新的方式解决了两方SM2方案中无法共享值的问题:常规的乘法分享在两方SM2签名方案中无法共享签名所需的参数值,本文创新性地提出了随机数的方案,并通过此方案解决了共享值的问题。(2)更方便的密钥管理与更高的安全性:在实现无可信中心以及门限最优的情况下,基于所使用的密码原语(部分同态加密、承诺协议和范围证明、知识签名等),进一步提高了系统的安全,同时给出了每个数值执行所需的密码原语计算开销。(3)快速高效:本文优化了在签名过程需要发送随机数的密文值这一步骤,进一步提高了效率。此外,对于随机数的证明和椭圆曲线上离散对数困难性的证明,本文使用更为简单高效的非交互式的基于知识的签名,比传统的零知识证明方案计算开销更小。(4)实现了基于两方SM2签名的数字钱包关键算法以及原型系统:利用Java语言和Bouncy Castle密码函数库,在Windows平台(个人电脑)、Android平台(手机)和Linux平台(树莓派)上实现了两方SM2签名方案的系统原型,并支持任意平台间的签名的生成。当Paillier加密中的模为2048比特时,在三个平台上签名运算所需的时间分别是147ms、367ms和8122ms。达到了跨平台、跨终端、跨网络的目的。