一种SM2签名的生成方法、存储介质和终端技术

技术编号:26262547 阅读:20 留言:0更新日期:2020-11-06 18:01
本申请提供一种SM2签名的生成方法,在第一通信方和第二通信方协同签名阶段不再使用同态加密,而调用额外随机数实现加密,以得到SM2签名的第一部分签名和第二部分签名,最终利用第一部分签名和第二部分签名对待加密消息进行SM2签名。本申请通过在签名生成过程中不需要进行同态加密操作,大大减少了第一通信方和第二通信方协同签名时间,提高了SM2签名的生成效率。本申请还提供一种计算机可读存储介质和终端,具有上述有益效果。

【技术实现步骤摘要】
一种SM2签名的生成方法、存储介质和终端
本申请涉及数字签名领域,特别涉及一种SM2签名的生成方法、存储介质和终端。
技术介绍
SM2签名是数字签名算法国家商密标准,也是ISO国际标准,具有广泛的应用前景。两方协同SM2签名作为SM2签名的增强版,它提高了SM2密钥的安全性,具有更好的应用前景。然而,现有的两方SM2签名方案都存在签名过程需要进行同态加密的操作,使得签名效率比原SM2签名下降很多。
技术实现思路
本申请的目的是提供一种SM2签名的生成方法、存储介质和终端,能够提高SM2签名效率。为解决上述技术问题,本申请提供一种SM2签名的生成方法,具体技术方案如下:第一通信方确认第一随机数和预设随机数,并计算所述第一随机数对应的第一公钥;所述第一通信方获取基于同态加密的公私钥对;所述第一通信方利用所述公私钥对中的公钥分别对所述第一随机数和所述预设随机数进行同态加密计算,分别得到第一同态加密公钥和第二同态加密公钥;所述第一通信方将所述第一公钥、所述公钥、所述第一同态加密公钥和所述第二同态加密公钥发送至所第二通信方;第二通信方确认第二随机数,并计算所述第二随机数对应的第二公钥;所述第一通信方收到所述第二通信方发送的所述第二公钥后,根据所述第一随机数和所述第二公钥生成第一对外公钥并公布;所述第二通信方收到所述第一公钥后,根据所述第二随机数和所述第一公钥生成第二对外公钥并公布;所述第二通信方利用同态加密的加密算法并根据第三随机数、所述第二随机数和所述第一同态加密公钥得到子公钥;并将所述子公钥发送至所述第一通信方;所述第一通信方利用所述公私钥对中的私钥解密所述子公钥,得到明文;并基于所述明文和第四随机数得到签名公钥,并公开所述签名公钥;所述第一通信方利用第一随机选择数计算第三公钥,并利用所述第一随机选择数和所述预设随机数计算第一子公钥,再将所述第三公钥和所述第一子公钥发送至所述第二通信方;所述第二通信方利用第二随机选择数计算得到第四公钥,利用所述第四公钥和待加密消息得到第一部分签名;所述第二通信方根据根据所述第四随机数、所述第二随机选择数、所述第一子公钥、所述第二同态加密公钥、所述第一部分签名、所述第二随机数、所述第一同态加密公钥计算得到第二部分签名密文;所述第一通信方利用所述公私钥对的私钥对所述第二部分签名密文解密,并根据所述第三随机数和所述签名公钥得到第二部分签名;利用所述第一部分签名和所述第二部分签名对所述待加密消息进行SM2签名。可选的,还包括:所述第一通信方通过所述目标公钥Q对所述目标数字签名进行验证;若验证成功,输出所述目标数字签名。可选的,所述第一随机数、所述第二随机数、所述第三随机数、所述第四随机数、所述第一随机选择数、所述第二随机选择数均为SM2加密标准随机数。可选的,所述第一随机数、所述第二随机数、所述第三随机数、所述第四随机数、所述第一随机选择数和所述第二随机选择数均为非零元素。可选的,所述第一通信方和所述第二通信方的通信信道均为认证信道。本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。本申请还提供一种终端,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。本申请提供一种SM2签名的生成方法,包括:第一通信方确认第一随机数和预设随机数,并计算所述第一随机数对应的第一公钥;所述第一通信方获取基于同态加密的公私钥对;所述第一通信方利用所述公私钥对中的公钥分别对所述第一随机数和所述预设随机数进行同态加密计算,分别得到第一同态加密公钥和第二同态加密公钥;所述第一通信方将所述第一公钥、所述公钥、所述第一同态加密公钥和所述第二同态加密公钥发送至所第二通信方;第二通信方确认第二随机数,并计算所述第二随机数对应的第二公钥;所述第一通信方收到所述第二通信方发送的所述第二公钥后,根据所述第一随机数和所述第二公钥生成第一对外公钥并公布;所述第二通信方收到所述第一公钥后,根据所述第二随机数和所述第一公钥生成第二对外公钥并公布;所述第二通信方利用同态加密的加密算法并根据第三随机数、所述第二随机数和所述第一同态加密公钥得到子公钥;并将所述子公钥发送至所述第一通信方;所述第一通信方利用所述公私钥对中的私钥解密所述子公钥,得到明文;并基于所述明文和第四随机数得到签名公钥,并公开所述签名公钥;所述第一通信方利用第一随机选择数计算第三公钥,并利用所述第一随机选择数和所述预设随机数计算第一子公钥,再将所述第三公钥和所述第一子公钥发送至所述第二通信方;所述第二通信方利用第二随机选择数计算得到第四公钥,利用所述第四公钥和待加密消息得到第一部分签名;所述第二通信方根据根据所述第四随机数、所述第二随机选择数、所述第一子公钥、所述第二同态加密公钥、所述第一部分签名、所述第二随机数、所述第一同态加密公钥计算得到第二部分签名密文;所述第一通信方利用所述公私钥对的私钥对所述第二部分签名密文解密,并根据所述第三随机数和所述签名公钥得到第二部分签名;利用所述第一部分签名和所述第二部分签名对所述待加密消息进行SM2签名。本申请通过在签名生成过程中不再进行同态加密操作,解决了在第一通信方和第二通信方协同签名过程由于采用同态加密操作带来的签名时间过长的问题,大大减少了第一通信方和第二通信方协同签名时间,提高了SM2签名的生成效率。本申请还提供一种计算机可读存储介质和终端,具有上述有益效果,此处不再赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例所提供的一种SM2签名的生成方法的流程图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。请参考图1,图1为本申请实施例所提供的一种SM2签名的生成方法的流程图,需要注意的是,图1中两个步骤中的实线表示可以在上一步骤执行完毕后可以直接执行下一步骤,而虚线表示上一步骤执行完毕后需等待对方完成相应步骤后才可执行下一步骤,同时各步骤之间的上下位置关系反映了步骤之间的执行顺序,其过程如下:第一通信方确认第一随机数和预设随机数,并计算第一随机数对应的第一公钥;第一通信方获取基于同态加密的公私钥对;第一通信方利用公私钥对中的公钥分别对第一随机数和本文档来自技高网...

【技术保护点】
1.一种SM2签名的生成方法,其特征在于,包括:/n公私钥生成阶段:/n第一通信方确认第一随机数和预设随机数,并计算所述第一随机数对应的第一公钥;/n所述第一通信方获取基于同态加密的公私钥对;/n所述第一通信方利用所述公私钥对中的公钥分别对所述第一随机数和所述预设随机数进行同态加密计算,分别得到第一同态加密公钥和第二同态加密公钥;/n所述第一通信方将所述第一公钥、所述公钥、所述第一同态加密公钥和所述第二同态加密公钥发送至所第二通信方;/n第二通信方确认第二随机数,并计算所述第二随机数对应的第二公钥;/n所述第一通信方收到所述第二通信方发送的所述第二公钥后,根据所述第一随机数和所述第二公钥生成第一对外公钥并公布;/n所述第二通信方收到所述第一公钥后,根据所述第二随机数和所述第一公钥生成第二对外公钥并公布;/n签名阶段:/n所述第二通信方利用同态加密的加密算法并根据第三随机数、所述第二随机数和所述第一同态加密公钥得到子公钥;并将所述子公钥发送至所述第一通信方;/n所述第一通信方利用所述公私钥对中的私钥解密所述子公钥,得到明文;并基于所述明文和第四随机数得到签名公钥,并公开所述签名公钥;/n所述第一通信方利用第一随机选择数计算第三公钥,并利用所述第一随机选择数和所述预设随机数计算第一子公钥,再将所述第三公钥和所述第一子公钥发送至所述第二通信方;/n所述第二通信方利用第二随机选择数计算得到第四公钥,利用所述第四公钥和待加密消息得到第一部分签名;/n所述第二通信方根据根据所述第四随机数、所述第二随机选择数、所述第一子公钥、所述第二同态加密公钥、所述第一部分签名、所述第二随机数、所述第一同态加密公钥计算得到第二部分签名密文;/n所述第一通信方利用所述公私钥对的私钥对所述第二部分签名密文解密,并根据所述第三随机数和所述签名公钥得到第二部分签名;/n利用所述第一部分签名和所述第二部分签名对所述待加密消息进行SM2签名。/n...

【技术特征摘要】
1.一种SM2签名的生成方法,其特征在于,包括:
公私钥生成阶段:
第一通信方确认第一随机数和预设随机数,并计算所述第一随机数对应的第一公钥;
所述第一通信方获取基于同态加密的公私钥对;
所述第一通信方利用所述公私钥对中的公钥分别对所述第一随机数和所述预设随机数进行同态加密计算,分别得到第一同态加密公钥和第二同态加密公钥;
所述第一通信方将所述第一公钥、所述公钥、所述第一同态加密公钥和所述第二同态加密公钥发送至所第二通信方;
第二通信方确认第二随机数,并计算所述第二随机数对应的第二公钥;
所述第一通信方收到所述第二通信方发送的所述第二公钥后,根据所述第一随机数和所述第二公钥生成第一对外公钥并公布;
所述第二通信方收到所述第一公钥后,根据所述第二随机数和所述第一公钥生成第二对外公钥并公布;
签名阶段:
所述第二通信方利用同态加密的加密算法并根据第三随机数、所述第二随机数和所述第一同态加密公钥得到子公钥;并将所述子公钥发送至所述第一通信方;
所述第一通信方利用所述公私钥对中的私钥解密所述子公钥,得到明文;并基于所述明文和第四随机数得到签名公钥,并公开所述签名公钥;
所述第一通信方利用第一随机选择数计算第三公钥,并利用所述第一随机选择数和所述预设随机数计算第一子公钥,再将所述第三公钥和所述第一子公钥发送至所述第二通信方;
所述第二通信方利用第二随机选择数计算得到第四公钥,利用所述第四公钥和待加密消息得到第一部分签名;
所述第二通信方根据根据所述第四随机数、所述第二随机选...

【专利技术属性】
技术研发人员:袁国平张月明
申请(专利权)人:浙江军盾信息科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1