CN111817857A - 一种基于电子公证和sm2协同签名的电子文件签署方法及其所采用的服务器 - Google Patents

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

Info

Publication number
CN111817857A
CN111817857A CN202010632148.2A CN202010632148A CN111817857A CN 111817857 A CN111817857 A CN 111817857A CN 202010632148 A CN202010632148 A CN 202010632148A CN 111817857 A CN111817857 A CN 111817857A
Authority
CN
China
Prior art keywords
signature
kpu
server
ids
notarization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010632148.2A
Other languages
English (en)
Other versions
CN111817857B (zh
Inventor
葛峰
曹容端
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Weslink Network Technology Co ltd
Original Assignee
Jiangsu Weslink Network Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu Weslink Network Technology Co ltd filed Critical Jiangsu Weslink Network Technology Co ltd
Priority to CN202010632148.2A priority Critical patent/CN111817857B/zh
Publication of CN111817857A publication Critical patent/CN111817857A/zh
Application granted granted Critical
Publication of CN111817857B publication Critical patent/CN111817857B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

一种基于电子公证和SM2协同签名的电子文件签署方法及其所采用的服务器,采用公证身份服务器IDS、公证协同服务器Co、签署业务服务器BS、公证签名服务器SS,以及客户端App,其中,公证身份服务器IDS中预置代表IDS设备身份的公私钥对,其中私钥为KprIDS,公钥为KpuIDS;公证签名服务器SS中预置IDS的公钥KpuIDS,以及代表公证身份的公证证书CerSS,其对应公证签名服务器的证书私钥KprSS,本发明通过公证身份核验和协同签名系统,向公证表明签名人的意思表示,公证通过验签的方法确认了签名人的意愿后,则以公证身份在文书加签,从而直接以第三方公证人的身份证明了签名人签署行为的真实性。

Description

一种基于电子公证和SM2协同签名的电子文件签署方法及其 所采用的服务器
技术领域
本发明涉及电子文书的电子签名服务领域,特别是在免Ukey的情况下,实现在线电子签名的功能,更具体地,涉及一种基于电子公证和SM2协同签名的电子文件签署方法及其所采用的服务器、客户端。
背景技术
电子文件的在线电子签署服务,已经是电子商务环境下日益广泛的应用需求;传统的有效电子签署服务,往往需要依赖于外设Ukey才能进行安全使用,基于公钥密码学的PKI(public key infrastructure)体系保障了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进行编码,生成二维码
Figure BDA0002569408370000031
签署业务服务器BS以网页的形式向用户展示文件m0,同步在页面上显示
Figure BDA0002569408370000032
并提示用户使用App扫描
Figure BDA0002569408370000033
S2.6、用户U使用客户端App对
Figure BDA0002569408370000034
进行扫码得到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)进行验签运算
Figure BDA0002569408370000035
验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证身份服务器IDS计算Su(m0)的哈希得到哈希值H(Su(m0)),使用私钥KprIDS对H(Su(m0))进行签名运算
Figure BDA0002569408370000036
得到签名值SIDS(Su(m0));
公证身份服务器IDS将签名值Su(idu,Kpuu)、用户U的公钥Kpuu、idu,依照国际X509数字证书格式标准规范拼接,并进行哈希运算H(idu||Kpuu||Su(idu,Kpuu))=H(u),使用KprIDS对H(u)进行签名计算
Figure BDA0002569408370000037
Figure BDA0002569408370000038
将idu、Kpuu、Su(idu,Kpuu)、SIDS(idu,Kpuu,Su(idu,Kpuu))按照X509格式标准进行组合,生成X509格式数字证书
Figure BDA0002569408370000039
公证身份服务器IDS将SIDS(Su(m0))、Su(m0)、
Figure BDA00025694083700000310
taskm发送给签署业务服务器BS;
S2.8、签署业务服务器BS通过taskm查询获得任务文件m0,使用电子签章合成算法将签名值Su(m0)和
Figure BDA00025694083700000311
合成到文件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))进行验签运算
Figure BDA0002569408370000041
SIDS(Su(m0))),验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证签名服务器SS解析文件m1,获取数字证书
Figure BDA0002569408370000042
的信息,得到idu、Kpuu、Su(idu,Kpuu)、SIDS(idu,Kpuu,Su(idu,Kpuu));
公证签名服务器SS使用与步骤2.7中同样的哈希算法计算H(idu||Kpuu||Su(idu,Kpuu))=H(u),并使用IDS的公钥
Figure BDA0002569408370000043
对SIDS(idu,Kpuu,Su(idu,Kpuu))进行验签计算
Figure BDA0002569408370000044
验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证签名服务器SS以posu为位置坐标,在文件m1中插入一个签名域,将签名图样patu添加至签名域,生成文件m′1,并使用证书私钥KprSS对包含签名域的文件m′1进行签名运算
Figure BDA0002569408370000045
公证签名服务器SS使用电子签章合成算法,将签名值SSS(m1,patu)和证书CerSS合成到文件m′1,生成签署完成的做准文件m2
公证签名服务器SS将做准文件m2、taskm返回至签署业务服务器BS,签署业务服务器BS通知用户U,电子文件m的签署流程完成。
进一步地,步骤S1.4具体为:公证协同服务器Co使用随机算法产生一个符合SM2密码算法规则要求的密钥字符串Kpru,,并使用SM2算法、密钥字符串Kpru、Kpupin以及椭圆曲线公开参数G,计算
Figure BDA0002569408370000046
将Kpuu发送给用户的App;同时,将idu和Kpru,Kpuu一一对应记入数据库。
进一步地,步骤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,签名值表示签名值的部分参数;
公证协同服务器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)。
进一步地,步骤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′=(e′+x′)modn,签名值r′表示签名值的部分参数;
公证协同服务器Co根据idu查询得到Kpru,计算S2′=Kpruk2-1k3′modn,S3′=Kpru(r′+k3′)modn;S2′、S3′表示签名值S′的中间变量;
公证协同服务器Co将(r′,S2′,S3′)发送给App;
S2.6.3、App提示用户输入密码Pinu,App使用密码Pinu以及密钥派生算法KD计算出Kprpin,使用Kprpin计算签名值S′=Kprpink1′S2′+KprpinS3′-r′modn,得到消息签名(r′,S′),记为签名值Su(m0)。
进一步地,步骤S2.9之后,还包括用户U访问签署业务服务器BS下载做准文本m2,查验m2文件上的数字签名得到:数字证书
Figure BDA0002569408370000051
对应的签名、以及由用户U的签名图片posu和公证证书CerSS组合构成的电子签章;其中:数字证书
Figure BDA0002569408370000052
对应的签名是用户U的真实身份由公证身份审核获取,表明签名是用户U的行为;用户U的签名图片posu和公证证书CerSS组合构成的电子签章,表明用户U对文件的签名行为得到公证确认。
一种公证身份服务器IDS,该公证身份服务器IDS中预置代表IDS设备身份的公私钥对,其中私钥为KprIDS,公钥为KpuIDS,包括:
用户注册单元:公证身份服务器IDS接收到App发送的idu、fu、Kpupin后,核实用户身份的真实性,执行如下操作:将用户身份信息idu和面部识别特征fu与公安公民身份信息数据库进行比对,比对不通过的,身份认证失败,终止任务;比对通过的,IDS将idu和Kpupin发送给公证协同服务器Co;
公证身份服务器IDS接收到App发送的Kpuu、签名值Su(idu,Kpuu)后,将用户数据加密存入数据库,执行如下操作:使用随机数发生器产生一个对称密钥Keyu,并将用户U的的身份信息idu、面部识别特征fu、对称密钥Kpuu、用户U的完整公钥Kpuu、签名值Su(idu,Kpuu)建立关联存入数据库,将Keyu发送至App保存,并通知用户U的身份注册完成;
用户签署单元:公证身份服务器IDS接收到签署业务服务器BS发送的taskm、idu后,确认身份信息为idu的用户是否完成实名认证注册,执行如下操作:查询数据库,idu身份信息未经实名注册的,通知BS终止流程,已经完成注册的,则在数据库中提取与idu对应的对称密钥Keyu,将Keyu发送给BS,并将taskm与idu关联,记入数据库;
公证身份服务器IDS接收到App发送的签名值Su(m0)、H(m0)和taskm后,确认签名结果是否有身份信息为idu的用户产生的,执行如下步骤:以taskm为关键词,在数据库中查询得到关联的idu,并通过idu查询得到用户U的完整公钥Kpuu,使用Kpuu对签名值Su(m0)进行验签运算
Figure BDA0002569408370000061
验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
计算Su(m0)的哈希得到哈希值H(Su(m0)),使用私钥KprIDS对H(Su(m0))进行签名运算
Figure BDA0002569408370000062
得到签名值SIDS(Su(m0));
将签名值Su(idu,Kpuu)、用户U的公钥Kpuu、idu,依照国际X509数字证书格式标准规范拼接,并进行哈希运算H(idu||Kpuu||Su(idu,Kpuu))=H(u),使用KprIDS对H(u)进行签名计算
Figure BDA0002569408370000063
将idu、Kpuu、Su(idu,Kpuu)、SIDS(idu,Kpuu,Su(idu,Kpuu))按照X509格式标准进行组合,生成X509格式数字证书
Figure BDA0002569408370000064
将SIDS(Su(m0))、Su(m0)、
Figure BDA0002569408370000065
taskm发送给签署业务服务器BS。
一种公证协同服务器Co,它包括
用户注册单元:当公证身份服务器IDS对用户身份认证通过后,执行如下操作:将idu和Kpupin发送给公证协同服务器Co;此时,公证协同服务器Co启动密钥协同运算,生成密钥字符串Kpru,采用公钥生成算法获取公钥字符串Kpuu,发送给用户的App;同时,将idu和Kpru,Kpuu一一对应记入数据库;
公证协同服务器Co接收App发送的idu,e以及Q1,与App合作进行SM2签名运算,得到签名值Su(idu,Kpuu);
用户签署单元:公证协同服务器Co接收App发送的idu,e′以及Q1’后,执行如下操作:与App合作进行SM2签名运算,得到签名值Su(m0)。
一种签署业务服务器BS,它包括:
用户签署单元:签署业务服务器BS受用户访问,接收待签署的电子文件m、签名的图样patu、签署人的身份信息idu和签名的位置posu后,执行如下操作:生成任务号taskm,在文件m中插入一个位置坐标为(0,0),宽高为(0,0)的任意图片,并预处理转换为网络浏览器可以显示的格式文件m0,使用哈希算法计算得到文件m0的哈希值H(m0);签署业务服务器BS向公证身份服务器IDS提交taskm、idu,请求确认身份信息为idu的用户是否完成实名认证注册;
签署业务服务器BS接收公证身份服务器IDS发送的终止流程信息或者Keyu,当收到Keyu时,将H(m0)、idu、taskm进行数据拼接,并使用Keyu进行加密运算Enc(Keyu,H(m0)||idu||taskm)=Emu,对Emu进行编码,生成二维码
Figure BDA0002569408370000071
以网页的形式向用户展示文件m0,同步在页面上显示
Figure BDA0002569408370000072
并提示用户使用App扫描
Figure BDA0002569408370000073
签署业务服务器BS接收公证身份服务器IDS发送的SIDS(Su(m0))、Su(m0)、
Figure BDA0002569408370000074
taskm之后,通过taskm查询获得任务文件m0,使用电子签章合成算法将签名值Su(m0)和
Figure BDA0002569408370000075
合成到文件m0中,签章的位置坐标为(0,0),完成用户签名,形成新的文件m1;签署业务服务器BS将文件m1、签名图样patu、签名的位置坐标posu、Su(m0)、SIDS(Su(m0))、taskm发送给公证签名服务器SS;
签署业务服务器BS接收公证签名服务器SS发送的做准文件m2、taskm之后,通知用户U,电子文件m的签署流程完成。
一种公证签名服务器SS,它包括:
用户签署单元:公证签名服务器SS接收签署业务服务器BS发送的文件m1、签名图样patu、签名的位置坐标posu、Su(m0)、SIDS(Su(m0))和taskm之后,执行如下操作:计算Su(m0)的哈希值得到H(Su(m0)),使用IDS的公钥KpuIDS对SIDS(Su(m0))进行验签运算
Figure BDA0002569408370000076
验签结果不成立,通知BS终止任务,验签结果成立,公证签名服务器SS解析文件m1,获取数字证书
Figure BDA0002569408370000077
的信息,得到idu、Kpuu、Su(idu,Kpuu)、SIDS(idu,Kpuu,Su(idu,Kpuu));
公证签名服务器SS使用哈希算法计算H(idu||Kpuu||Su(idu,Kpuu))=H(u),并使用IDS的公钥KpuIDS对SIDS(idu,Kpuu,Su(idu,Kpuu))进行验签计算
Figure BDA0002569408370000081
验签结果不成立,通知BS终止任务,验签结果成立,以posu为位置坐标,在文件m1中插入一个签名域,将签名图样patu添加至签名域,生成文件m′1,并使用证书私钥KprSS对包含签名域的文件m′1进行签名运算
Figure BDA0002569408370000082
公证签名服务器SS使用电子签章合成算法,将签名值SSS(m1,patu)和证书CerSS合成到文件m′1,生成签署完成的做准文件m2;将做准文件m2、taskm返回至签署业务服务器BS,通知用户U,电子文件m的签署流程完成。
一种基于电子公证和SM2协同签名的电子文件签署方法所采用的客户端App,它包括:
用户注册单元:App接收用户输入的身份信息idu、密码Pinu,以及面部识别特征fu后,执行如下操作;使用密码Pinu以及密钥派生算法KD产生一个符合SM2密码算法规则要求的密钥字符串Kprpin,并使用SM2算法、密钥字符串Kprpin以及椭圆曲线公开参数G,计算生成对应的公钥Kpupin=Kprpin -1G;App将idu、fu、Kpupin提交到公证身份服务器IDS;
App接收公证协同服务器Co发送的公钥字符串Kpuu,对idu和Kpuu拼接,并计算哈希H(idu||Kpuu),以H(idu||Kpuu)为消息,与公证协同服务器Co进行SM2签名运算,得到签名值Su(idu,Kpuu);App将Kpuu、签名值Su(idu,Kpuu)发送给公证身份服务器IDS;
用户签署单元:用户U接收签署业务服务器BS以网页的形式展示的文件m0,执行如下操作:使用客户端App对
Figure BDA0002569408370000083
进行扫码得到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。
本发明的有益效果:
本发明的方法使用时,签名人无需使用Ukey,也无需管理自己的公钥和数字证书,用户仅需要通过网页浏览器,每次签名都由第三方公证进行身份确认,结合SM2协同签名技术与可信的第三方公证系统交互,实现电子文件签署过程的完整可信证明;待签名文件无需下载到签名人本地,通过二维码和服务端数据交换,即可实现跨设备的安全签署;签署完成的文件都附加可信第三方公证的确认签名,直接可视化的证明签名行为的真实性。
本发明的方法采用SM2协同签名技术,在协同签名过程中,签名人的完整私钥从未出现,从而很好的保证了私钥的安全性;同时,完整的签名操作必须由签名人的参与才能完成,从而很好的保证了签名的可靠性。
本发明的其它特征和优点将在随后具体实施方式部分予以详细说明。
附图说明
通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施方式中,相同的参考标号通常代表相同部件。
图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一一对应记入数据库;具体为:公证协同服务器Co使用随机算法产生一个符合SM2密码算法规则要求的密钥字符串Kpru,,并使用SM2算法、密钥字符串Kpru、Kpupin以及椭圆曲线公开参数G,计算Kpuu=Kpru -1Kpupin-G,将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;其中,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,签名值表示签名值的部分参数;
公证协同服务器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)。
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进行编码,生成二维码
Figure BDA0002569408370000111
签署业务服务器BS以网页的形式向用户展示文件m0,同步在页面上显示
Figure BDA0002569408370000112
并提示用户使用App扫描
Figure BDA0002569408370000113
S2.6、用户U使用客户端App对
Figure BDA0002569408370000114
进行扫码得到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,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′=(e′+x′)modn,签名值r′表示签名值的部分参数;
公证协同服务器Co根据idu查询得到Kpru,计算S2′=Kpruk2-1k3′modn,S3′=Kpru(r′+k3′)modn;S2′、S3′表示签名值S′的中间变量;
公证协同服务器Co将(r′,S2′,S3′)发送给App;
S2.6.3、App提示用户输入密码Pinu,App使用密码Pinu以及密钥派生算法KD计算出Kprpin,使用Kprpin计算签名值S′=Kprpink1′S2′+KprpinS3′-r′modn,得到消息签名(r′,S′),记为签名值Su(m0)。
S2.7、公证身份服务器IDS以taskm为关键词,在数据库中查询得到关联的idu,并通过idu查询得到用户U的完整公钥Kpuu,使用Kpuu对签名值Su(m0)进行验签运算
Figure BDA0002569408370000121
验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证身份服务器IDS计算Su(m0)的哈希得到哈希值H(Su(m0)),使用私钥KprIDS对H(Su(m0))进行签名运算
Figure BDA0002569408370000122
得到签名值SIDS(Su(m0));
公证身份服务器IDS将签名值Su(idu,Kpuu)、用户U的公钥Kpuu、idu,依照国际X509数字证书格式标准规范拼接,并进行哈希运算H(idu||Kpuu||Su(idu,Kpuu))=H(u),使用KprIDS对H(u)进行签名计算
Figure BDA0002569408370000123
Figure BDA0002569408370000124
将idu、Kpuu、Su(idu,Kpuu)、SIDS(idu,Kpuu,Su(idu,Kpuu))按照X509格式标准进行组合,生成X509格式数字证书
Figure BDA0002569408370000125
公证身份服务器IDS将SIDS(Su(m0))、Su(m0)、
Figure BDA0002569408370000126
taskm发送给签署业务服务器BS;
S2.8、签署业务服务器BS通过taskm查询获得任务文件m0,使用电子签章合成算法将签名值Su(m0)和
Figure BDA00025694083700001210
合成到文件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))进行验签运算
Figure BDA0002569408370000127
验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证签名服务器SS解析文件m1,获取数字证书
Figure BDA0002569408370000128
的信息,得到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))进行验签计算
Figure BDA0002569408370000129
验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证签名服务器SS以posu为位置坐标,在文件m1中插入一个签名域,将签名图样patu添加至签名域,生成文件m′1,并使用证书私钥KprSS对包含签名域的文件m′1进行签名运算
Figure BDA0002569408370000131
公证签名服务器SS使用电子签章合成算法,将签名值SSS(m1,patu)和证书CerSS合成到文件m′1,生成签署完成的做准文件m2
公证签名服务器SS将做准文件m2、taskm返回至签署业务服务器BS,签署业务服务器BS通知用户U,电子文件m的签署流程完成。
步骤S2.9之后,还包括用户U访问签署业务服务器BS下载做准文本m2,查验m2文件上的数字签名得到:数字证书
Figure BDA0002569408370000132
对应的签名、以及由用户U的签名图片posu和公证证书CerSS组合构成的电子签章;其中:数字证书
Figure BDA0002569408370000133
对应的签名是用户U的真实身份由公证身份审核获取,表明签名是用户U的行为;用户U的签名图片posu和公证证书CerSS组合构成的电子签章,表明用户U对文件的签名行为得到公证确认。
本发明的方法使用时,签名人无需使用Ukey,也无需管理自己的公钥和数字证书,用户仅需要通过网页浏览器,每次签名都由第三方公证进行身份确认,结合SM2协同签名技术与可信的第三方公证系统交互,实现电子文件签署过程的完整可信证明;待签名文件无需下载到签名人本地,通过二维码和服务端数据交换,即可实现跨设备的安全签署;签署完成的文件都附加可信第三方公证的确认签名,直接可视化的证明签名行为的真实性。
一种公证身份服务器IDS,该公证身份服务器IDS中预置代表IDS设备身份的公私钥对,其中私钥为KprIDs,公钥为KpuIDS,包括:
用户注册单元:公证身份服务器IDS接收到App发送的idu、fu、Kpupin后,核实用户身份的真实性,执行如下操作:将用户身份信息idu和面部识别特征fu与公安公民身份信息数据库进行比对,比对不通过的,身份认证失败,终止任务;比对通过的,IDS将idu和Kpupin发送给公证协同服务器Co;
公证身份服务器IDS接收到App发送的Kpuu、签名值Su(idu,Kpuu)后,将用户数据加密存入数据库,执行如下操作:使用随机数发生器产生一个对称密钥Keyu,并将用户U的的身份信息idu、面部识别特征fu、对称密钥Keyu、用户U的完整公钥Kpuu、签名值Su(idu,Kpuu)建立关联存入数据库,将Keyu发送至App保存,并通知用户U的身份注册完成;
用户签署单元:公证身份服务器IDS接收到签署业务服务器BS发送的taskm、idu后,确认身份信息为idu的用户是否完成实名认证注册,执行如下操作:查询数据库,idu身份信息未经实名注册的,通知BS终止流程,已经完成注册的,则在数据库中提取与idu对应的对称密钥Keyu,将Keyu发送给BS,并将taskm与idu关联,记入数据库;
公证身份服务器IDS接收到App发送的签名值Su(m0)、H(m0)和taskm后,确认签名结果是否有身份信息为idu的用户产生的,执行如下步骤:以taskm为关键词,在数据库中查询得到关联的idu,并通过idu查询得到用户U的完整公钥Kpuu,使用Kpuu对签名值Su(m0)进行验签运算
Figure BDA0002569408370000141
验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
计算Su(m0)的哈希得到哈希值H(Su(m0)),使用私钥KprIDS对H(Su(m0))进行签名运算
Figure BDA0002569408370000142
得到签名值SIDS(Su(m0));
将签名值Su(idu,Kpuu)、用户U的公钥Kpuu、idu,依照国际X509数字证书格式标准规范拼接,并进行哈希运算H(idu||Kpuu||Su(idu,Kpuu))=H(u),使用KprIDS对H(u)进行签名计算
Figure BDA0002569408370000143
将idu、Kpuu、Su(idu,Kpuu)、SIDS(idu,Kpuu,Su(idu,Kpuu))按照X509格式标准进行组合,生成X509格式数字证书
Figure BDA0002569408370000144
将SIDS(Su(m0))、Su(m0)、
Figure BDA0002569408370000145
taskm发送给签署业务服务器BS。
一种公证协同服务器Co,它包括
用户注册单元:当公证身份服务器IDS对用户身份认证通过后,执行如下操作:将idu和Kpupin发送给公证协同服务器Co;此时,公证协同服务器Co启动密钥协同运算,生成密钥字符串Kpru,采用公钥生成算法获取公钥字符串Kpuu,发送给用户的App;同时,将idu和Kpru,Kpuu一一对应记入数据库;
公证协同服务器Co接收App发送的idu,e以及Q1,与App合作进行SM2签名运算,得到签名值Su(idu,Kpuu);
用户签署单元:公证协同服务器Co接收App发送的idu,e′以及Q1’后,执行如下操作:与App合作进行SM2签名运算,得到签名值Su(m0)。
一种签署业务服务器BS,它包括:
用户签署单元:签署业务服务器BS受用户访问,接收待签署的电子文件m、签名的图样patu、签署人的身份信息idu和签名的位置posu后,执行如下操作:生成任务号taskm,在文件m中插入一个位置坐标为(0,0),宽高为(0,0)的任意图片,并预处理转换为网络浏览器可以显示的格式文件m0,使用哈希算法计算得到文件m0的哈希值H(m0);签署业务服务器BS向公证身份服务器IDS提交taskm、idu,请求确认身份信息为idu的用户是否完成实名认证注册;
签署业务服务器BS接收公证身份服务器IDS发送的终止流程信息或者Keyu,当收到Keyu时,将H(m0)、idu、taskm进行数据拼接,并使用Keyu进行加密运算Enc(Keyu,H(m0)||idu||taskm)=Emu,对Emu进行编码,生成二维码
Figure BDA0002569408370000155
以网页的形式向用户展示文件m0,同步在页面上显示
Figure BDA0002569408370000157
并提示用户使用App扫描
Figure BDA0002569408370000156
签署业务服务器BS接收公证身份服务器IDS发送的SIDS(Su(m0))、Su(m0)、
Figure BDA0002569408370000151
taskm之后,通过taskm查询获得任务文件m0,使用电子签章合成算法将签名值Su(m0)和
Figure BDA0002569408370000152
合成到文件m0中,签章的位置坐标为(0,0),完成用户签名,形成新的文件m1;签署业务服务器BS将文件m1、签名图样patu、签名的位置坐标posu、Su(m0)、SIDS(Su(m0))、taskm发送给公证签名服务器SS;
签署业务服务器BS接收公证签名服务器SS发送的做准文件m2、taskm之后,通知用户U,电子文件m的签署流程完成。
一种公证签名服务器SS,它包括:
用户签署单元:公证签名服务器SS接收签署业务服务器BS发送的文件m1、签名图样patu、签名的位置坐标posu、Su(m0)、SIDS(Su(m0))和taskm之后,执行如下操作:计算Su(m0)的哈希值得到H(Su(m0)),使用IDS的公钥KpuIDS对SIDS(Su(m0))进行验签运算
Figure BDA0002569408370000153
验签结果不成立,通知BS终止任务,验签结果成立,公证签名服务器SS解析文件m1,获取数字证书
Figure BDA0002569408370000158
的信息,得到idu、Kpuu、Su(idu,Kpuu)、SIDS(idu,Kpuu,Su(idu,Kpuu));
公证签名服务器SS使用哈希算法计算H(idu||Kpuu||Su(idu,Kpuu))=H(u),并使用IDS的公钥KpuIDS对SIDS(idu,Kpuu,Su(idu,Kpuu))进行验签计算
Figure BDA0002569408370000154
验签结果不成立,通知BS终止任务,验签结果成立,以posu为位置坐标,在文件m1中插入一个签名域,将签名图样patu添加至签名域,生成文件m′1,并使用证书私钥KprSS对包含签名域的文件m′1进行签名运算
Figure BDA0002569408370000161
公证签名服务器SS使用电子签章合成算法,将签名值SSS(m1,patu)和证书CerSS合成到文件m′1,生成签署完成的做准文件m2;将做准文件m2、taskm返回至签署业务服务器BS,通知用户U,电子文件m的签署流程完成。
一种基于电子公证和SM2协同签名的电子文件签署方法所采用的客户端App,它包括:
用户注册单元:App接收用户输入的身份信息idu、密码Pinu,以及面部识别特征fu后,执行如下操作;使用密码Pinu以及密钥派生算法KD产生一个符合SM2密码算法规则要求的密钥字符串Kprpin,并使用SM2算法、密钥字符串Kprpin以及椭圆曲线公开参数G,计算生成对应的公钥Kpupin=Kprpin -1G;App将idu、fu、Kpupin提交到公证身份服务器IDS;
App接收公证协同服务器Co发送的公钥字符串Kpuu,对idu和Kpuu拼接,并计算哈希H(idu||Kpuu),以H(idu||Kpuu)为消息,与公证协同服务器Co进行SM2签名运算,得到签名值Su(idu,Kpuu);App将Kpuu、签名值Su(idu,Kpuu)发送给公证身份服务器IDS;
用户签署单元:用户U接收签署业务服务器BS以网页的形式展示的文件m0,执行如下操作:使用客户端App对QRm0进行扫码得到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。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。

Claims (10)

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进行编码,生成二维码
Figure FDA0002569408360000021
签署业务服务器BS以网页的形式向用户展示文件m0,同步在页面上显示
Figure FDA0002569408360000022
并提示用户使用App扫描
Figure FDA0002569408360000023
S2.6、用户U使用客户端App对
Figure FDA0002569408360000024
进行扫码得到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)进行验签运算
Figure FDA0002569408360000025
验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证身份服务器IDS计算Su(m0)的哈希得到哈希值H(Su(m0)),使用私钥KprIDS对H(Su(m0))进行签名运算
Figure FDA0002569408360000026
得到签名值SIDS(Su(m0));
公证身份服务器IDS将签名值Su(idu,Kpuu)、用户U的公钥Kpuu、idu,依照国际X509数字证书格式标准规范拼接,并进行哈希运算H(idu||Kpuu||Su(idu,Kpuu))=H(u),使用KprIDS对H(u)进行签名计算
Figure FDA0002569408360000027
Figure FDA0002569408360000028
将idu、Kpuu、Su(idu,Kpuu)、SIDS(idu,Kpuu,Su(idu,Kpuu))按照X509格式标准进行组合,生成X509格式数字证书
Figure FDA0002569408360000031
公证身份服务器IDS将SIDS(Su(m0))、Su(m0)、
Figure FDA0002569408360000032
taskm发送给签署业务服务器BS;
S2.8、签署业务服务器BS通过taskm查询获得任务文件m0,使用电子签章合成算法将签名值Su(m0)和
Figure FDA0002569408360000033
合成到文件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))进行验签运算
Figure FDA0002569408360000034
验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证签名服务器SS解析文件m1,获取数字证书
Figure FDA0002569408360000035
的信息,得到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))进行验签计算
Figure FDA0002569408360000036
验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证签名服务器SS以posu为位置坐标,在文件m1中插入一个签名域,将签名图样patu添加至签名域,生成文件m′1,并使用证书私钥KprSS对包含签名域的文件m′1进行签名运算
Figure FDA0002569408360000037
公证签名服务器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′=(e′+x′)modn,签名值r′表示签名值的部分参数;
公证协同服务器Co根据idu查询得到Kpru,计算S2′=Kpruk2-1k3′modn,S3′=Kpru(r′+k3′)modn;S2′、S3′表示签名值S′的中间变量;
公证协同服务器Co将(r′,S2′,S3′)发送给App;
S2.6.3、App提示用户输入密码Pinu,App使用密码Pinu以及密钥派生算法KD计算出Kprpin,使用Kprpin计算签名值S′=Kprpink1′S2′+KprpinS3′-r′modn,得到消息签名(r′,S′),记为签名值Su(m0)。
5.根据权利要求1所述的基于电子公证和SM2协同签名的电子文件签署方法,其特征在于:步骤S2.9之后,还包括用户U访问签署业务服务器BS下载做准文本m2,查验m2文件上的数字签名得到:数字证书
Figure FDA0002569408360000051
对应的签名、以及由用户U的签名图片posu和公证证书CerSS组合构成的电子签章;其中:数字证书
Figure FDA0002569408360000052
对应的签名是用户U的真实身份由公证身份审核获取,表明签名是用户U的行为;用户U的签名图片posu和公证证书CerSS组合构成的电子签章,表明用户U对文件的签名行为得到公证确认。
6.一种公证身份服务器IDS,其特征在于:该公证身份服务器IDS中预置代表IDS设备身份的公私钥对,其中私钥为KprIDS,公钥为KpuIDS,包括:
用户注册单元:公证身份服务器IDS接收到App发送的idu、fu、Kpupin后,核实用户身份的真实性,执行如下操作:将用户身份信息idu和面部识别特征fu与公安公民身份信息数据库进行比对,比对不通过的,身份认证失败,终止任务;比对通过的,IDS将idu和Kpupin发送给公证协同服务器Co;
公证身份服务器IDS接收到App发送的Kpuu、签名值Su(idu,Kpuu)后,将用户数据加密存入数据库,执行如下操作:使用随机数发生器产生一个对称密钥Keyu,并将用户U的的身份信息idu、面部识别特征fu、对称密钥Keyu、用户U的完整公钥Kpuu、签名值Su(idu,Kpuu)建立关联存入数据库,将Keyu发送至App保存,并通知用户U的身份注册完成;
用户签署单元:公证身份服务器IDS接收到签署业务服务器BS发送的taskm、idu后,确认身份信息为idu的用户是否完成实名认证注册,执行如下操作:查询数据库,idu身份信息未经实名注册的,通知BS终止流程,已经完成注册的,则在数据库中提取与idu对应的对称密钥Keyu,将Keyu发送给BS,并将taskm与idu关联,记入数据库;
公证身份服务器IDS接收到App发送的签名值Su(m0)、H(m0)和taskm后,确认签名结果是否有身份信息为idu的用户产生的,执行如下步骤:以taskm为关键词,在数据库中查询得到关联的idu,并通过idu查询得到用户U的完整公钥Kpuu,使用Kpuu对签名值Su(m0)进行验签运算
Figure FDA0002569408360000053
验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
计算Su(m0)的哈希得到哈希值H(Su(m0)),使用私钥KprIDS对H(Su(m0))进行签名运算
Figure FDA0002569408360000054
得到签名值SIDS(Su(m0));
将签名值Su(idu,Kpuu)、用户U的公钥Kpuu、idu,依照国际X509数字证书格式标准规范拼接,并进行哈希运算H(idu||Kpuu||Su(idu,Kpuu))=H(u),使用KprIDS对H(u)进行签名计算
Figure FDA0002569408360000061
将idu、Kpuu、Su(idu,Kpuu)、SIDS(idu,Kpuu,Su(idu,Kpuu))按照X509格式标准进行组合,生成X509格式数字证书
Figure FDA0002569408360000062
将SIDS(Su(m0))、Su(m0)、
Figure FDA0002569408360000063
taskm发送给签署业务服务器BS。
7.一种公证协同服务器Co,其特征在于:它包括
用户注册单元:当公证身份服务器IDS对用户身份认证通过后,执行如下操作:将idu和Kpupin发送给公证协同服务器Co;此时,公证协同服务器Co启动密钥协同运算,生成密钥字符串Kpru,采用公钥生成算法获取公钥字符串Kpuu,发送给用户的App;同时,将idu和Kpru,Kpuu一一对应记入数据库;
公证协同服务器Co接收App发送的idu,e以及Q1,与App合作进行SM2签名运算,得到签名值Su(idu,Kpuu);
用户签署单元:公证协同服务器Co接收App发送的idu,e′以及Q1’后,执行如下操作:与App合作进行SM2签名运算,得到签名值Su(m0)。
8.一种签署业务服务器BS,其特征在于:它包括:
用户签署单元:签署业务服务器BS受用户访问,接收待签署的电子文件m、签名的图样patu、签署人的身份信息idu和签名的位置posu后,执行如下操作:生成任务号taskm,在文件m中插入一个位置坐标为(0,0),宽高为(0,0)的任意图片,并预处理转换为网络浏览器可以显示的格式文件m0,使用哈希算法计算得到文件m0的哈希值H(m0);签署业务服务器BS向公证身份服务器IDS提交taskm、idu,请求确认身份信息为idu的用户是否完成实名认证注册;
签署业务服务器BS接收公证身份服务器IDS发送的终止流程信息或者Keyu,当收到Keyu时,将H(m0)、idu、taskm进行数据拼接,并使用Keyu进行加密运算Enc(Keyu,H(m0)||idu||taskm)=Emu,对Emu进行编码,生成二维码
Figure FDA0002569408360000064
以网页的形式向用户展示文件m0,同步在页面上显示
Figure FDA0002569408360000065
并提示用户使用App扫描
Figure FDA0002569408360000066
签署业务服务器BS接收公证身份服务器IDS发送的SIDS(Su(m0))、Su(m0)、
Figure FDA0002569408360000067
taskm之后,通过taskm查询获得任务文件m0,使用电子签章合成算法将签名值Su(m0)和
Figure FDA0002569408360000068
合成到文件m0中,签章的位置坐标为(0,0),完成用户签名,形成新的文件m1;签署业务服务器BS将文件m1、签名图样patu、签名的位置坐标posu、Su(m0)、SIDS(Su(m0))、taskm发送给公证签名服务器SS;
签署业务服务器BS接收公证签名服务器SS发送的做准文件m2、taskm之后,通知用户U,电子文件m的签署流程完成。
9.一种公证签名服务器SS,其特征在于:它包括:
用户签署单元:公证签名服务器SS接收签署业务服务器BS发送的文件m1、签名图样patu、签名的位置坐标posu、Su(m0)、SIDS(Su(m0))和taskm之后,执行如下操作:计算Su(m0)的哈希值得到H(Su(m0)),使用IDS的公钥KpuIDS对SIDS(Su(m0))进行验签运算
Figure FDA0002569408360000071
验签结果不成立,通知BS终止任务,验签结果成立,公证签名服务器SS解析文件m1,获取数字证书
Figure FDA0002569408360000072
的信息,得到idu、Kpuu、Su(idu,Kpuu)、SIDS(idu,Kpuu,Su(idu,Kpuu));
公证签名服务器SS使用哈希算法计算H(idu||Kpuu||Su(idu,Kpuu))=H(u),并使用IDS的公钥KpuIDS对SIDS(idu,Kpuu,Su(idu,Kpuu))进行验签计算
Figure FDA0002569408360000073
验签结果不成立,通知BS终止任务,验签结果成立,以posu为位置坐标,在文件m1中插入一个签名域,将签名图样patu添加至签名域,生成文件m′1,并使用证书私钥KprSS对包含签名域的文件m′1进行签名运算
Figure FDA0002569408360000074
公证签名服务器SS使用电子签章合成算法,将签名值SSS(m1,patu和证书CerSS合成到文件m′1,生成签署完成的做准文件m2;将做准文件m2、taskm返回至签署业务服务器BS,通知用户U,电子文件m的签署流程完成。
10.一种基于电子公证和SM2协同签名的电子文件签署方法所采用的客户端App,其特征在于:它包括:
用户注册单元:App接收用户输入的身份信息idu、密码Pinu,以及面部识别特征fu后,执行如下操作;使用密码Pinu以及密钥派生算法KD产生一个符合SM2密码算法规则要求的密钥字符串Kprpin,并使用SM2算法、密钥字符串Kprpin以及椭圆曲线公开参数G,计算生成对应的公钥Kpupin=Kprpin -1G;App将idu、fu、Kpupin提交到公证身份服务器IDS;
App接收公证协同服务器Co发送的公钥字符串Kpuu,对idu和Kpuu拼接,并计算哈希H(idu||Kpuu),以H(idu||Kpuu)为消息,与公证协同服务器Co进行SM2签名运算,得到签名值Su(idu,Kpuu);App将Kpuu、签名值Su(idu,Kpuu)发送给公证身份服务器IDS;
用户签署单元:用户U接收签署业务服务器BS以网页的形式展示的文件m0,执行如下操作:使用客户端App对
Figure FDA0002569408360000081
进行扫码得到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。
CN202010632148.2A 2020-07-03 2020-07-03 一种基于电子公证和sm2协同签名的电子文件签署方法及其所采用的服务器 Active CN111817857B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010632148.2A CN111817857B (zh) 2020-07-03 2020-07-03 一种基于电子公证和sm2协同签名的电子文件签署方法及其所采用的服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010632148.2A CN111817857B (zh) 2020-07-03 2020-07-03 一种基于电子公证和sm2协同签名的电子文件签署方法及其所采用的服务器

Publications (2)

Publication Number Publication Date
CN111817857A true CN111817857A (zh) 2020-10-23
CN111817857B CN111817857B (zh) 2022-08-30

Family

ID=72856067

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010632148.2A Active CN111817857B (zh) 2020-07-03 2020-07-03 一种基于电子公证和sm2协同签名的电子文件签署方法及其所采用的服务器

Country Status (1)

Country Link
CN (1) CN111817857B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112929433A (zh) * 2021-02-03 2021-06-08 北京深安未来科技有限公司 一种基于公证视频签署的安全数据交换方法
CN113609499A (zh) * 2021-07-28 2021-11-05 江苏慧世联网络科技有限公司 基于去中心化多方安全计算和多重签名的电子公证文书签署方法及系统
WO2022252983A1 (zh) * 2021-05-31 2022-12-08 胡金钱 一体化管理终端装置及一体化管理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110098932A (zh) * 2019-05-16 2019-08-06 江苏慧世联网络科技有限公司 一种基于安全电子公证技术的电子文书签署方法
CN110224812A (zh) * 2019-06-12 2019-09-10 江苏慧世联网络科技有限公司 一种基于多方安全计算的电子签名移动客户端与协同服务器通信的方法以及设备
CN110912711A (zh) * 2019-12-11 2020-03-24 江苏慧世联网络科技有限公司 一种基于电子公证技术的跨内外网域电子文书签署方法
CN110943844A (zh) * 2019-11-22 2020-03-31 江苏慧世联网络科技有限公司 一种基于网页客户端本地服务的电子文件安全签署方法及其系统
CN111064751A (zh) * 2019-12-31 2020-04-24 江苏慧世联网络科技有限公司 一种基于屏幕影像记录与识别的远程电子公证服务系统及通信方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110098932A (zh) * 2019-05-16 2019-08-06 江苏慧世联网络科技有限公司 一种基于安全电子公证技术的电子文书签署方法
CN110224812A (zh) * 2019-06-12 2019-09-10 江苏慧世联网络科技有限公司 一种基于多方安全计算的电子签名移动客户端与协同服务器通信的方法以及设备
CN110943844A (zh) * 2019-11-22 2020-03-31 江苏慧世联网络科技有限公司 一种基于网页客户端本地服务的电子文件安全签署方法及其系统
CN110912711A (zh) * 2019-12-11 2020-03-24 江苏慧世联网络科技有限公司 一种基于电子公证技术的跨内外网域电子文书签署方法
CN111064751A (zh) * 2019-12-31 2020-04-24 江苏慧世联网络科技有限公司 一种基于屏幕影像记录与识别的远程电子公证服务系统及通信方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112929433A (zh) * 2021-02-03 2021-06-08 北京深安未来科技有限公司 一种基于公证视频签署的安全数据交换方法
WO2022252983A1 (zh) * 2021-05-31 2022-12-08 胡金钱 一体化管理终端装置及一体化管理方法
CN113609499A (zh) * 2021-07-28 2021-11-05 江苏慧世联网络科技有限公司 基于去中心化多方安全计算和多重签名的电子公证文书签署方法及系统
CN113609499B (zh) * 2021-07-28 2024-03-01 江苏慧世联网络科技有限公司 基于去中心化多方安全计算和多重签名的电子公证文书签署方法及系统

Also Published As

Publication number Publication date
CN111817857B (zh) 2022-08-30

Similar Documents

Publication Publication Date Title
CN109756485B (zh) 电子合同签署方法、装置、计算机设备及存储介质
KR101853610B1 (ko) 생체정보 기반의 전자서명 인증 시스템 및 그의 전자서명 인증 방법
CN109150548B (zh) 一种数字证书签名、验签方法及系统、数字证书系统
US6789193B1 (en) Method and system for authenticating a network user
CN104838629B (zh) 使用移动设备并借助于证书对用户进行认证的方法及系统
US6189098B1 (en) Client/server protocol for proving authenticity
CN111817857B (zh) 一种基于电子公证和sm2协同签名的电子文件签署方法及其所采用的服务器
TWI718567B (zh) 二維碼生成方法、資料處理方法、裝置、伺服器及計算機可讀儲存媒體
US20100042848A1 (en) Personalized I/O Device as Trusted Data Source
US20020176582A1 (en) Technique for obtaining a single sign-on certificate from a foreign PKI system using an existing strong authentication PKI system
CN103679436A (zh) 一种基于生物信息识别的电子合同保全系统和方法
JP2008541633A (ja) プライバシーが強化された電子パスポートの認証プロトコル
GB2434724A (en) Secure transactions using authentication tokens based on a device "fingerprint" derived from its physical parameters
CN106789033B (zh) 一种基于无证书签密的电子合同签署方法
CN105635187B (zh) 带印模的电子文件的生成方法与装置、认证方法与装置
US10887110B2 (en) Method for digital signing with multiple devices operating multiparty computation with a split key
JP2013175040A (ja) 認証権限移譲システム、情報端末、トークン発行局、サービス提供装置、認証権限移譲方法、及びプログラム
CN105376064A (zh) 一种匿名消息认证系统及其消息签名方法
CN110943844A (zh) 一种基于网页客户端本地服务的电子文件安全签署方法及其系统
US7073062B2 (en) Method and apparatus to mutually authentication software modules
TWI773161B (zh) 數位簽章私鑰驗證方法
JP2006155547A (ja) 本人認証システム、端末装置、およびサーバ
CN112035814B (zh) 区块链中基于虹膜识别生成分布式身份的方法和计算机可读介质
CN114205082A (zh) 一种读写器与电子标签的双向身份认证方法及设备
CN114638009A (zh) 一种适用于公钥密码技术和支持商用密码算法的电子签章系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant