一种基于电子公证和SM2协同签名的电子文件签署方法及其所采用的服务器技术

技术编号:26040582 阅读:41 留言:0更新日期:2020-10-23 21:19
一种基于电子公证和SM2协同签名的电子文件签署方法及其所采用的服务器,采用公证身份服务器IDS、公证协同服务器Co、签署业务服务器BS、公证签名服务器SS,以及客户端App,其中,公证身份服务器IDS中预置代表IDS设备身份的公私钥对,其中私钥为Kpr

【技术实现步骤摘要】
一种基于电子公证和SM2协同签名的电子文件签署方法及其所采用的服务器
本专利技术涉及电子文书的电子签名服务领域,特别是在免Ukey的情况下,实现在线电子签名的功能,更具体地,涉及一种基于电子公证和SM2协同签名的电子文件签署方法及其所采用的服务器、客户端。
技术介绍
电子文件的在线电子签署服务,已经是电子商务环境下日益广泛的应用需求;传统的有效电子签署服务,往往需要依赖于外设Ukey才能进行安全使用,基于公钥密码学的PKI(publickeyinfrastructure)体系保障了Ukey电子签名的可靠性;但通过CA机构给每一个签名人颁发Ukey数字证书,不但成本过高,也几乎是不现实的,特别是随着信息化技术在社会生活、特别是移动互联网的发展,Ukey的使用已经越来越不便于移动互联网的需求。而如果为了摆脱Ukey的束缚,直接将智能移动设备作为数字证书的密钥载体,又会导致证书密钥的安全性存在重大风险,使得数字证书不再具有电子签名必须具备的可靠属性。因此,亟需一种方法能够解决上述问题。
技术实现思路
本专利技术的目的是针对电子签名可靠性的问题,提出一种基于电子公证和SM2协同签名的电子文件签署方法及其所采用的服务器,本专利技术的核心思想是由用户(签名人)通过公证身份核验和协同签名系统,向公证表明签名人的意思表示,公证通过验签的方法确认了签名人的意愿后,则以公证身份在文书加签,从而直接以第三方公证人的身份证明了签名人签署行为的真实性。本专利技术的技术方案是:本专利技术提供一种基于电子公证和SM2协同签名的电子文件签署方法,该方法采用公证身份服务器IDS、公证协同服务器Co、签署业务服务器BS、公证签名服务器SS,以及客户端App,其中,公证身份服务器IDS中预置代表IDS设备身份的公私钥对,其中私钥为KprIDS,公钥为KpuIDS;公证签名服务器SS中预置IDS的公钥KpuIDS,以及代表公证身份的公证证书CerSS,其对应公证签名服务器的证书私钥KprSS,该签署方法包括以下步骤:S1、用户注册步骤:S1.1、用户U使用智能终端,下载客户端App并运行,输入用户身份信息idu,设置密码Pinu,并使用智能终端的摄像头获取用户U的面部识别特征fu;S1.2、App使用密码Pinu以及密钥派生算法KD产生一个符合SM2密码算法规则要求的密钥字符串Kprpin,并使用SM2算法、密钥字符串Kprpin以及椭圆曲线公开参数G,计算生成对应的公钥Kpupin=Kprpin-1G;App将idu、fu、Kpupin提交到公证身份服务器IDS;S1.3、公证身份服务器IDS将用户身份信息idu和面部识别特征fu与公安公民身份信息数据库进行比对,比对不通过的,身份认证失败,终止任务;比对通过的,IDS将idu和Kpupin发送给公证协同服务器Co;S1.4、公证协同服务器Co启动密钥协同运算,生成密钥字符串Kpru,采用公钥生成算法获取公钥字符串Kpuu,发送给用户的App;同时,将idu和Kpru,Kpuu一一对应记入数据库;S1.5、App对idu和Kpuu拼接,并计算哈希H(idu||Kpuu),以H(idu||Kpuu)为消息,与公证协同服务器Co进行SM2签名运算,得到签名值Su(idu,Kpuu);App将Kpuu、签名值Su(idu,Kpuu)发送给公证身份服务器IDS;S1.6、公证身份服务器IDS使用随机数发生器产生一个对称密钥Keyu,并将用户U的的身份信息idu、面部识别特征fu、对称密钥Keyu、用户U的完整公钥Kpuu、签名值Su(idu,Kpuu)建立关联存入数据库,将Keyu发送至App保存,并通知用户U的身份注册完成;S2、用户签署步骤:S2.1、用户使用网络浏览器访问签署业务服务器BS,将待签署的电子文件m以及签名的图样patu上传至BS,并且录入指定签署人的身份信息idu和签名的位置posu;S2.2、签署业务服务器BS接受任务,生成任务号taskm,在文件m中插入一个位置坐标为(0,0),宽高为(0,0)的任意图片,并预处理转换为网络浏览器可以显示的格式文件m0,使用哈希算法计算得到文件m0的哈希值H(m0);签署业务服务器BS向公证身份服务器IDS提交taskm、idu,请求确认身份信息为idu的用户是否完成实名认证注册;S2.4、公证身份服务器IDS查询数据库,idu身份信息未经实名注册的,通知BS终止流程,已经完成注册的,则在数据库中提取与idu对应的对称密钥Keyu,将Keyu发送给BS,并将taskm与idu关联,记入数据库;S2.5、签署业务服务器BS将H(m0)、idu、taskm进行数据拼接,并使用Keyu进行加密运算Enc(Keyu,H(m0)||idu||taskm)=Emu,对Emu进行编码,生成二维码签署业务服务器BS以网页的形式向用户展示文件m0,同步在页面上显示并提示用户使用App扫描S2.6、用户U使用客户端App对进行扫码得到Emu,调用App中保存的对称密钥Keyu对Emu进行解密运算Dec(Keyu,Emu),得到明文H(m0)、idu、taskm;App以H(m0)为消息,与公证协同服务器Co进行SM2签名运算,得到签名值Su(m0);App将签名值Su(m0)、H(m0)、taskm发送给公证身份服务器IDS;S2.7、公证身份服务器IDS以taskm为关键词,在数据库中查询得到关联的idu,并通过idu查询得到用户U的完整公钥Kpuu,使用Kpuu对签名值Su(m0)进行验签运算验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;公证身份服务器IDS计算Su(m0)的哈希得到哈希值H(Su(m0)),使用私钥KprIDS对H(Su(m0))进行签名运算得到签名值SIDS(Su(m0));公证身份服务器IDS将签名值Su(idu,Kpuu)、用户U的公钥Kpuu、idu,依照国际X509数字证书格式标准规范拼接,并进行哈希运算H(idu||Kpuu||Su(idu,Kpuu))=H(u),使用KprIDS对H(u)进行签名计算将idu、Kpuu、Su(idu,Kpuu)、SIDS(idu,Kpuu,Su(idu,Kpuu))按照X509格式标准进行组合,生成X509格式数字证书公证身份服务器IDS将SIDS(Su(m0))、Su(m0)、taskm发送给签署业务服务器BS;S2.8、签署业务服务器BS通过taskm查询获得任务文件m0,使用电子签章合成算法将签名值Su(m0)和合成到文件m0中,签章的位置坐标为(0,0),完成用户签名,形成新的文件m1;签署业务服务器BS将文件m1、签名图样patu、签名的位置坐标posu、Su(m0)、SIDS(Su(m0))、taskm发送给公证签名服务器SS;S2.9、公证签名服务器SS计算Su(m0)的哈希值得到H(Su(m0)),使用IDS的公钥KpuIDS对本文档来自技高网...

【技术保护点】
1.一种基于电子公证和SM2协同签名的电子文件签署方法,其特征在于,该方法采用公证身份服务器IDS、公证协同服务器Co、签署业务服务器BS、公证签名服务器SS,以及客户端App,其中,公证身份服务器IDS中预置代表IDS设备身份的公私钥对,其中私钥为Kpr

【技术特征摘要】
1.一种基于电子公证和SM2协同签名的电子文件签署方法,其特征在于,该方法采用公证身份服务器IDS、公证协同服务器Co、签署业务服务器BS、公证签名服务器SS,以及客户端App,其中,公证身份服务器IDS中预置代表IDS设备身份的公私钥对,其中私钥为KprIDS,公钥为KpuIDS;公证签名服务器SS中预置IDS的公钥KpuIDS,以及代表公证身份的公证证书CerSS,其对应公证签名服务器的证书私钥KprSS,该签署方法包括以下步骤:
S1、用户注册步骤:
S1.1、用户U使用智能终端,下载客户端App并运行,输入用户身份信息idu,设置密码Pinu,并使用智能终端的摄像头获取用户U的面部识别特征fu;
S1.2、App使用密码Pinu以及密钥派生算法KD产生一个符合SM2密码算法规则要求的密钥字符串Kprpin,并使用SM2算法、密钥字符串Kprpin以及椭圆曲线公开参数G,计算生成对应的公钥Kpupin=Kprpin-1G;App将idu、fu、Kpupin提交到公证身份服务器IDS;
S1.3、公证身份服务器IDS将用户身份信息idu和面部识别特征fu与公安公民身份信息数据库进行比对,比对不通过的,身份认证失败,终止任务;比对通过的,IDS将idu和Kpupin发送给公证协同服务器Co;
S1.4、公证协同服务器Co启动密钥协同运算,生成密钥字符串Kpru,采用公钥生成算法获取公钥字符串Kpuu,发送给用户的App;同时,将idu和Kpru,Kpuu一一对应记入数据库;
S1.5、App对idu和Kpuu拼接,并计算哈希H(idu||Kpuu),以H(idu||Kpuu)为消息,与公证协同服务器Co进行SM2签名运算,得到签名值Su(idu,Kpuu);App将Kpuu、签名值Su(idu,Kpuu)发送给公证身份服务器IDS;
S1.6、公证身份服务器IDS使用随机数发生器产生一个对称密钥Keyu,并将用户U的的身份信息idu、面部识别特征fu、对称密钥Keyu、用户U的完整公钥Kpuu、签名值Su(idu,Kpuu)建立关联存入数据库,将Keyu发送至App保存,并通知用户U的身份注册完成;
S2、用户签署步骤:
S2.1、用户使用网络浏览器访问签署业务服务器BS,将待签署的电子文件m以及签名的图样potu上传至BS,并且录入指定签署人的身份信息idu和签名的位置posu;
S2.2、签署业务服务器BS接受任务,生成任务号taskm,在文件m中插入一个位置坐标为(0,0),宽高为(0,0)的任意图片,并预处理转换为网络浏览器可以显示的格式文件m0,使用哈希算法计算得到文件m0的哈希值H(m0);签署业务服务器BS向公证身份服务器IDS提交taskm、idu,请求确认身份信息为idu的用户是否完成实名认证注册;
S2.4、公证身份服务器IDS查询数据库,idu身份信息未经实名注册的,通知BS终止流程,已经完成注册的,则在数据库中提取与idu对应的对称密钥Keyu,将Keyu发送给BS,并将taskm与idu关联,记入数据库;
S2.5、签署业务服务器BS将H(m0)、idu、taskm进行数据拼接,并使用Keyu进行加密运算Enc(Keyu,H(m0)||idu||taskm)=Emu,对Emu进行编码,生成二维码
签署业务服务器BS以网页的形式向用户展示文件m0,同步在页面上显示并提示用户使用App扫描
S2.6、用户U使用客户端App对进行扫码得到Emu,调用App中保存的对称密钥Keyu对Emu进行解密运算Dec(Keyu,Emu),得到明文H(m0)、idu、taskm;
App以H(m0)为消息,与公证协同服务器Co进行SM2签名运算,得到签名值Su(m0);App将签名值Su(m0)、H(m0)、taskm发送给公证身份服务器IDS;
S2.7、公证身份服务器IDS以taskm为关键词,在数据库中查询得到关联的idu,并通过idu查询得到用户U的完整公钥Kpuu,使用Kpuu对签名值Su(m0)进行验签运算验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证身份服务器IDS计算Su(m0)的哈希得到哈希值H(Su(m0)),使用私钥KprIDS对H(Su(m0))进行签名运算得到签名值SIDS(Su(m0));
公证身份服务器IDS将签名值Su(idu,Kpuu)、用户U的公钥Kpuu、idu,依照国际X509数字证书格式标准规范拼接,并进行哈希运算H(idu||Kpuu||Su(idu,Kpuu))=H(u),使用KprIDS对H(u)进行签名计算将idu、Kpuu、Su(idu,Kpuu)、SIDS(idu,Kpuu,Su(idu,Kpuu))按照X509格式标准进行组合,生成X509格式数字证书公证身份服务器IDS将SIDS(Su(m0))、Su(m0)、taskm发送给签署业务服务器BS;
S2.8、签署业务服务器BS通过taskm查询获得任务文件m0,使用电子签章合成算法将签名值Su(m0)和合成到文件m0中,签章的位置坐标为(0,0),完成用户签名,形成新的文件m1;签署业务服务器BS将文件m1、签名图样patu、签名的位置坐标posu、Su(m0)、SIDS(Su(m0))、taskm发送给公证签名服务器SS;
S2.9、公证签名服务器SS计算Su(m0)的哈希值得到H(Su(m0)),使用IDS的公钥KpuIDS对SIDS(Su(m0))进行验签运算验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证签名服务器SS解析文件m1,获取数字证书的信息,得到idu、Kpuu、Su(idu,Kpuu)、SIDS(idu,Kpuu,Su(idu,Kpuu));
公证签名服务器SS使用与步骤2.7中同样的哈希算法计算H(idu||Kpuu||Su(idu,Kpuu))=H(u),并使用IDS的公钥KpuIDS对SIDS(idu,Kpuu,Su(idu,Kpuu))进行验签计算验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证签名服务器SS以posu为位置坐标,在文件m1中插入一个签名域,将签名图样patu添加至签名域,生成文件m′1,并使用证书私钥KprSS对包含签名域的文件m′1进行签名运算
公证签名服务器SS使用电子签章合成算法,将签名值SSS(m1,patu)和证书CerSS合成到文件m′1,生成签署完成的做准文件m2;
公证签名服务器SS将做准文件m2、taskm返回至签署业务服务器BS,签署业务服务器BS通知用户U,电子文件m的签署流程完成。


2.根据权利要求1所述的基于电子公证和SM2协同签名的电子文件签署方法,其特征在于:步骤S1.4具体为:公证协同服务器Co使用随机算法产生一个符合SM2密码算法规则要求的密钥字符串Kpru,,并使用SM2算法、密钥字符串Kpru、Kpupin以及椭圆曲线公开参数G,计算Kpuu=Kpru-1Kpupin-G,将Kpuu发送给用户的App;同时,将idu和Kpru,Kpuu一一对应记入数据库。


3.根据权利要求1所述的基于电子公证和SM2协同签名的电子文件签署方法,其特征在于:步骤S1.5中,SM2签名运算具体为:
S1.5.1、App将H(idu||Kpuu)转化为整数e,使用随机数发生器生成随机数k1,计算第一中间变量Q1=k1G,并将idu,e以及Q1一起发送给公证协同服务器Co;
S1.5.2、公证协同服务器Co使用随机数发生器生成随机数k2,k3,计算第二中间变量Q2=k2-1Q1,第三中间变量Q3=k3G+k3Q2=(x,y);
公证协同服务器Co使用椭圆曲线公开参数n,计算签名值r=(e+x)modn,签名值r表示签名值的部分参数;
公证协同服务器Co根据idu查询得到Kpru,计算S2=Kpruk2-1k3modn,S3=Kpru(r+k3)modn;S2、S3表示签名值S的中间变量;
公证协同服务器Co将(r,S2,S3)发送给App;
S1.5.3、App提示用户输入密码Pinu,App使用密码Pinu以及密钥派生算法KD计算出Kprpin,使用Kprpin计算签名值S=Kprpink1S2+KprpinS3-rmodn,得到消息签名(r,S)记为签名值Su(idu,Kpuu)。


4.根据权利要求1所述的基于电子公证和SM2协同签名的电子文件签署方法,其特征在于:步骤S2.6中,SM2签名运算具体为:
S2.6.1、App将H(m0)转化为整数e′,使用随机数发生器生成随机数k1’,计算第一中间变量Q1′=k1′G,并将idu,e′以及Q1’一起发送给公证协同服务器Co;
S2.6.2、公证协同服务器Co使用随机数发生器生成随机数k2’,k3’,计算第二中间变量Q2′=k2′-1Q1′,第三中间变量Q3′=k3′G+k3′Q2′=(x′,y′);
公证协同服务器Co使用椭圆曲线公开参数n,计算签名值r...

【专利技术属性】
技术研发人员:葛峰曹容端
申请(专利权)人:江苏慧世联网络科技有限公司
类型:发明
国别省市:江苏;32

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

1