一种双方协作生成数字签名的方法与流程

本发明属于信息安全领域,更具体地,涉及一种双方协作生成数字签名的方法。

背景技术:

目前,业务系统多采用基于数字证书的公钥基础架构(publickeyinfrastructure,简称pki)系统来保障业务数据安全,数字证书是由自建认证实体(certificateauthority,简称ca)或第三方ca签发的,以数字证书为核心的公钥密码机制可以对网络上传输的信息进行加密和解密、数字签名和验证,确保网络上传递消息的机密性、完整性以及交易实体的真实性,签名的不可否认性,从而保障网络应用的安全性。

在以数字证书为核心的pki系统中,数字签名由客户端调用用户数字证书对应的私钥来独立计算完成。常用的数字签名算法包括rsa签名算法和椭圆曲线数字签名算法,其中椭圆曲线数字签名算法包括国际上使用最广泛的椭圆曲线数字签名算法(ellipticcurvedigitalsignaturealgorithm,简称ecdsa)和中国国家密码标准的sm2数字签名算法。

然而,现有的数字签名算法存在以下问题:

第一,由于现有方法是通过单独一方参与生成数字签名,会导致数字签名安全性较低;

第二,数字证书对应的用户私钥由用户生成,并由用户保管,容易被黑客窃取;为了保障用户私钥的安全,现在通行的做法是使用专门的安全硬件设备譬如智能卡、u盾、智能密钥设备等来存储和保护用户私钥,但是这就要求用户必须随身携带相应的硬件安全设备才能完成数字签名操作,既增加了用户使用的成本,也增加了用户使用的复杂度。

第三,现有方法无法针对sm2或ecdsa数字签名算法提供相应的两方协作生成数字签名的机制,从而导致其应用范围较窄。

技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种客户端和服务端协作生成数字签名的方法,其目的在于,解决现有方法中存在的由于单独一方生成签名导致数字签名安全性较低的技术问题,用户需要随身携带硬件安全设备导致用户成本高、使用复杂度高的技术问题,以及由于不能针对sm2或ecdsa数字签名算法提供相应的两方协作生成数字签名的机制而导致的应用范围较窄的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种双方协作生成数字签名的方法,其特征在于,包括以下步骤:

(1)第一设备产生随机数k1∈[1,n-1],根据ecc算法计算椭圆曲线上的点r1=k1*g,并将待签名消息m、椭圆曲线上的点r1打包发送给第二设备,其中n为椭圆曲线的阶,g为椭圆曲线基点,*为椭圆曲线点乘运算。

(2)第二设备产生随机数k2∈[1,n-1],根据ecc算法计算椭圆曲线上的点r2=k2*g,利用其第二私钥d2对待签名消息进行签名,以生成第一签名信息s1,并将s1和r2打包发送给第一设备。

(3)第一设备利用其第一私钥d1对待签名消息和第一签名信息s1的组合进行数字签名,以生成完整签名信息s。

按照本发明的另一方面,提供了一种双方协作生成数字签名的方法,其特征在于,包括以下步骤:

(1)第一设备产生随机数k1∈[1,n-1],根据ecc算法计算椭圆曲线上的点r1=k1*g,根据第一设备的同态加密公钥获取第一密文信息ck=encpk(k1),并将待签名消息m、点r1、以及第一密文信息ck打包发送给第二设备,其中n为椭圆曲线的阶,g为椭圆曲线基点,*为椭圆曲线点乘运算,enc为同态加密算法,pk为第一设备的同态加密公钥;

(2)第二设备产生随机数k2∈[1,n-1],根据ecc算法计算椭圆曲线上的点r2=k2*g,利用其第二私钥d2对待签名消息进行签名,以生成第一签名信息s1,并将s1和r2打包发送给第一设备;

优选地,步骤(2)中第二设备利用第二私钥d2对待签名消息进行签名,以生成第一签名信息s1的过程包括如下子步骤:

(2-1)第二设备根据随机数k2和椭圆曲线上的点r1计算椭圆曲线上的点r=k2*r1=(rx,ry),其中rx和ry分别为椭圆曲线点r的横坐标和纵坐标。

(2-2)第二设备根据sm2签名算法预处理规则对待签名消息进行预处理,以得到杂凑值e,并根据杂凑值e获取完整签名信息的第一分量r=(e+rx)modn;

(2-3)第二设备根据其第二私钥d2和完整签名信息的第一分量r计算第二密文信息c1=encpk(d2-1·r);

(2-4)第二设备根据随机数k2及其第二私钥d2获取中间值v=k2·d2-1,根据v和第一密文信息ck获取第三密文信息c2=v⊙ck,并根据第三密文信息和第二密文信息获取第一签名信息其中⊙为同态乘运算,为同态加运算。

(2-3)第二设备产生随机数ρ,使用该随机数、第二私钥d2以及r获取第二密文信息:c1=encpk(ρ·n+d2-1·r);

优选地,步骤(3)具体包括以下子步骤:

(3-1)第一设备根据第一设备的同态解密私钥sk和第一签名信息s1获取解密结果s′=decsk(s1),其中dec为与同态加密算法enc对应的同态解密算法。

(3-2)第一设备根据解密结果s′、其第一私钥d1以及完整签名信息的第一分量r获取完整签名信息的第二分量s=d1-1·s′-r;

(3-3)第一设备根据完整签名信息的第一分量s和第二分量r生成完整签名信息s=(r,s)。

优选地,所述方法进一步包括在步骤(2)之后、步骤(3)之前,第一设备对收到的数字签名信息s1进行验证,以判断该数字签名信息s1是否为第二设备生成的数字签名,验证通过则进入步骤(3),否则过程结束的步骤。

优选地,第一私钥d1可以是在密钥建立阶段由第一设备随机生成并保存,或者第一设备通过执行密钥派生函数生成,或者第一设备直接从外部导入并保存,第二私钥d2可以是在密钥建立阶段由第二设备随机生成并保存,或者第二设备通过执行密钥派生函数生成,或者第二设备直接从外部导入并保存。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

1、本发明的方法由于采用了两个设备同时生成和保存用户的部分私钥,任意一方均不能合成用户的完整私钥,从而保证了用户私钥的安全性,即使一方密钥被黑客窃取,黑客也不能恢复出完整密钥,从而增加了用户签名的安全性;

2、本发明的方法由于采用了两个设备同时参与签名运算流程,用户私钥的两个分散部分只在满足条件下参与运算,生成部分签名,任意一方均不能生成完整的签名,从而进一步保证了用户签名的安全性。

3、本发明用户完整私钥分散保存,任意一方不需要专门的硬件安全设备来保存密钥,从而降低了用户的使用成本和复杂度。

4、本发明针对sm2或ecdsa数字签名算法提供了相应的两方协作生成数字签名的机制,应用范围广。

附图说明

图1是根据本发明一种实施方式的双方协作生成数字签名的方法的流程图。

图2是根据本发明另一种实施方式的双方协作生成数字签名的方法的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

如图1所示,根据本发明一种实施方式的双方协作生成数字签名的方法包括以下步骤:

(2)第一设备产生随机数k1∈[1,n-1],根据椭圆曲线算法(ellipticcurvecryptography,简称ecc)计算椭圆曲线上的点r1=k1*g,并将待签名消息m、椭圆曲线上的点r1打包发送给第二设备,其中n为椭圆曲线的阶,g为椭圆曲线基点,*为椭圆曲线点乘运算。

具体而言,本发明中的第一设备,可以是客户端,诸如桌面电脑(desktopcomputer)、笔记本(laptop)、智能手机(smartphone)等,也可以是服务端,例如服务器等。

具体而言,本发明中的第二设备,可以是客户端,诸如桌面电脑(desktopcomputer)、笔记本(laptop)、智能手机(smartphone)等,也可以是服务端,例如服务器等,当第一设备是客户端时,第二设备是服务端,当第一设备是服务端时,第二设备是客户端。

第二私钥d2可以是在密钥建立阶段由第二设备随机生成并保存,或者第二设备通过执行密钥派生函数生成,或者第二设备直接从外部导入并保存。

具体而言,第一私钥d1可以是在密钥建立阶段由第一设备随机生成并保存,或者第一设备通过执行密钥派生函数生成,或者第一设备直接从外部导入并保存。

作为本发明的进一步改进,本发明的方法还可以包括在上述步骤(1)之前的如下步骤:

作为本发明的进一步改进,本发明的方法还可以包括在上述步骤(1)之后,步骤(2)之前的以下步骤:

作为本发明的进一步改进,本发明的方法还可以包括在上述步骤(2)之后,步骤(3)之前的以下步骤:

(3’)第一设备对收到的数字签名信息s1进行验证,以判断该数字签名信息s1是否为第二设备生成的数字签名,验证通过则进入步骤(3),否则过程结束。

如图2所示,根据本发明另一种实施方式的双方协作生成数字签名的方法包括以下步骤:

在本实施方式下,步骤(2)中第二设备利用第二私钥d2对待签名消息进行签名,以生成第一签名信息s1的过程包括如下步骤:

具体而言,本步骤的具体实现方式可参见gm/t0009-2012《sm2密码算法使用规范》中第8节的预处理过程。

作为本发明实施例的进一步改进,上述步骤(2-3)也可被替换为下述步骤(2-3’):

(2-3’)第二设备产生随机数ρ,使用该随机数、第二私钥d2以及r获取第二密文信息:c1=encpk(ρ·n+d2-1·r)。

步骤(3)具体包括以下子步骤:

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

THE END
1.数字签名的生成和验证数字签名生成验证过程在数字签名中,生成签名和验证签名这两个行为需要使用各自专用的密钥来完成。 Alice使用“签名密钥”来生成消息的签名,而Bob和Victor则使用“验证签名”来验证消息的签名。 数字签名对签名密钥和验证密钥进行了区分,使用验证密钥是无法生成签名的。此外,签名密钥只能由签名人持有,而验证密钥则是任何需要验证签名的人都可以https://blog.csdn.net/chengqiuming/article/details/82831781
2.艺术签名在线生成器艺术签名在线生成器使用非常方便,只需输入你的名字并选择款式就可以一键生成了,完全免费,不限制次数,你可以完全自由发挥. 最高支持四个字的中文名字设计,如果是英文名请进入英文签名设计专用页面,这里只能输入中文,英文显示乱码。 艺术签名在线生成软件经过多年的迭代,现在是7.0版本,更新了多处细节,如调整签名字与字的http://www.kachayv.cn/
3.设计师签名免费签名设计生成器在线签名生成转换设计师签名网是中国领先的艺术签名制作平台,免费签名生成转换器支持硬笔签、时尚签、立体签、行楷签等效果,集成草体签、瘦金签、板书签、童体签等功能智能实现在线签名设计,可生成png,svg,pdf格式,请牢记设计师签名 www.ssjjss.comhttp://www.ssjjss.com/?refer=ggcore_seal_font
4.艺术签名在线生成一笔签名设计在线艺术字体在线生成器花鸟艺术签名 将您的姓名转换为花鸟图画! 用名字写诗词 作一首名字诗词! 生日快乐诗词 生日快乐的藏头诗词生成器! 谐音梗生成器 有意思的谐音梗文案生成器! 火星文转换器 简繁体字、火星文一键转换! 流光字表情包 炫彩文字表情包! ②取图,长按或右击图片保存。 http://www.yishuzi.com/?1553407373
5.数字签名在线生成在线生成字体分类发现字体简介: 数字签名在线生成 Rebecca 语言:英文 下载 RhumbaScript 语言:英文 下载 ringpin trial version 语言:英文 下载 Baruta Black 语言:英文 下载 Road Hoe 语言:英文 下载 Rough Draft 语言:英文 下载 RunTron 1983 语言:英文 下载传图识别字体 免费下载字体http://www.qiuziti.com/fontlist2?id=788139
6.一笔签名设计在线生成潇洒实用的顶尖手写艺术签名设计,完全免费,在线生成,让您受益终生! 在线生成后一笔签名拥有的清晰度很高:780*520像素,请直接输入您的姓名,接着免费在线设计即可。 特别提醒:一笔签和连笔签字库齐全,已经更新了姓名中的偏僻汉字,请放心设计。http://jiqie.zhenbi.com/a/m15.htm
7.电子签名免费生成器电子签名软件在线电子签名生成器5画笔颜色 背景颜色 Base64 下载图片 下载SVG 撤销 清空 关于电子签名使用介绍: 1、PC端请方框内按住鼠标“右键”进行书写。 2、移动端直接在上面方框内手写即可。 3、下载图片:可以将书写的内容以透明PNG图片的形式下载到本地 。 4、生成Base64:可将书写的内容以图片Base64编码进行显示。 https://www.ccava.net/toolbox/dianziqianming.html
8.最新数字签名证书生成器码农集市专业分享IT编程学习资源最新数字签名证书生成器风情**万种 上传1.94 MB 文件格式 rar 数字签名 证书 生成器 轻松易懂,方便安装,占用空间较小,操作简单,适合对数字签名有一定了解的人群。亲手打造一款具有自己风格的证书吧!点赞(0) 踩踩(0) 反馈 所需:3 积分 电信网络下载 https://www.coder100.com/index/index/content/id/322231
9.有哪些数字签名在线生成器?分享签名设计妙招教育视频教育视频:在日常生活中,签名不仅是身份的象征,签名也可以作为个人品牌的一部分,可以帮助区分自己和其他人。https://tv.sohu.com/v/dXMvNDA5NTQyODk0LzQ1OTc0MDMzNy5zaHRtbA==.html
10.在线签名生成器app是干啥的?在这个数字化时代,我们经常需要在文件、网站或电子邮件中加入个性化的签名。在线签名生成器App正是应运而生,帮助许多用户在线生成app测试版轻松创建独特的电子签名。那么这些应用程序是如何工作的呢? 本文将详细介绍在线签名生成器App的原理及相关知识。 1. 什么是在线签名生成器App? https://www.yimenyun.cn/emen/7691/
11.如何用最简单的方法绘制签名除了许多其他有用的功能外,CocoSign 还向我们介绍了签名生成器。这是一个在线工具,也称为签名创建器或签名制作器。此工具可让您自定义自己的签名并使用这些签名签署您的文档。您只需上传 DOC 和 PDF 文件,然后下载您的数字文档即可完成此操作。 嗯,签名生成器也是一个专业的电子邮件签名工具。全世界有数百万人使http://www.justwebworld.com/zh-CN/how-to-draw-a-signature-with-the-easiest-way/
12.量子随机数生成器在密码学中的应用.pptxQRSS可以为密码学应用提供安全可靠的随机数源,提高密码系统的安全性。3.量子密码学硬件设备:开发基于QRNG的量子密码学硬件设备,如量子密钥分发器(QKD)、量子随机数发生器(QRNG)和量子数字签名生成器(QDSG)。这些设备可以为密码学应用提供物理层面的安全性,提高密码系统的抗攻击性。https://max.book118.com/html/2024/0402/5210033140011133.shtm
13.软件授权码怎么生产出来的零代码企业数字化知识站在软件授权码生成过程中,数字签名可以确保授权码未被篡改。数字签名通常使用非对称加密算法生成,公钥用于验证签名,私钥用于生成签名。通过在授权码中加入数字签名,开发者可以有效地防止授权码被恶意修改或伪造。数字签名的使用不仅提高了授权码的安全性,还简化了验证过程,因为授权服务器只需验证签名的合法性即可。https://www.jiandaoyun.com/blog/article/436449/
14.AISignatureGenerator:在线AI签名生成器,轻松创建专业电子签名4.环保:使用数字签名生成器减少纸张浪费以及与打印、运输和存储纸质文件相关的碳足迹。这是一种更可持续的环境选择。 使用AI签名生成器的使用教程 第一步:输入你的名字首先输入您的名字或首字母。这是我们直观的AI签名生成器开始为您制作个性化数字签名的过程。 https://pidoutv.com/sites/25085.html
15.MD5哈希生成器在线为什么要使用 MD5 哈希生成器? MD5 哈希生成器是开发人员、IT 专业人员以及任何需要为各种目的生成 MD5 哈希的人的宝贵工具。无论您在进行文件验证、密码哈希处理还是数字签名,生成 MD5 哈希都是创建数据独特而紧凑表示的可靠方法。 使用MD5 哈希生成器的主要好处: https://www.strongpasswordgenerator.org/zh-cn/md5-hash-generator/
16.AISignatureGenerator一款免费的AI签名生成工具,用户可以使用它生成不同风格的AI签名,并将其用于数字方式的文档签署中。 网站提供:Ai工具箱,Ai办公应用,AI签名生成器,AISignatureGenerator,AI签名生成器,AI签名制作器,免费AI签名生成器,免费在线签名生成器,在线签名生成器,在线签名制作器,电子签名,数字签名。 AI Signature Generator简介 使https://openi.cn/sites/258815.html
17.电子印章生成器下载PDF电子盖章工具V3.16最终版中文免费绿色4、尝试增加数字签名模式盖章,个别环境可能会签名失败,建议提前生成签名文件后在选择签名 5、本版为最终版,以后基本不会在更新了,在不确定时间会彻底删帖! 使用说明 绿色单文件版,可以对PDF文档首页盖章,尾页盖章,全部多页一次性盖章,选择是否同时加盖骑缝章,灵活便捷,自由调整大家https://m.jb51.net/softs/806212.html
18.数字签名生成akskgoaksk生成华为云为你分享云计算行业信息,包含产品介绍、用户指南、开发指南、最佳实践和常见问题等文档,方便快速查找定位问题与能力成长,并提供相关资料和解决方案。本页面关键词:数字签名 生成aksk。https://www.huaweicloud.com/theme/97104-2-S-undefined
19.电子票据签名服务器是什么?Worktile社区签名生成器:用于生成电子票据的数字签名。签名生成器将票据的关键信息与服务器生成的私钥进行计算,生成一个独特的数字签名。这个签名将作为票据的一部分,并用于验证票据的真实性。 签名验证器:用于验证电子票据的数字签名。签名验证器将票据的关键信息与服务器的公钥进行计算,以验证签名的有效性。如果验证成功,就可以确定https://worktile.com/kb/ask/1530957.html
20.CAD签名在线生成器3d溜溜设计问答平台为广大设计师们提供各种CAD签名在线生成器问题解答,3d溜溜素材问答平台汇聚全球各地的设计师、名师名司、设计爱好者等设计灵感和经验,迅速为您解决CAD签名在线生成器的困惑。https://www.3d66.com/answers_relation/relation_3314006_98.html