CN111817857B - 一种基于电子公证和sm2协同签名的电子文件签署方法及其所采用的服务器 - Google Patents
一种基于电子公证和sm2协同签名的电子文件签署方法及其所采用的服务器 Download PDFInfo
- Publication number
- CN111817857B CN111817857B CN202010632148.2A CN202010632148A CN111817857B CN 111817857 B CN111817857 B CN 111817857B CN 202010632148 A CN202010632148 A CN 202010632148A CN 111817857 B CN111817857 B CN 111817857B
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3252—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
技术领域
本发明涉及电子文书的电子签名服务领域,特别是在免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关联,记入数据库;
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(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))进行验签运算SIDS(Su(m0))),验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证签名服务器SS使用与步骤2.7中同样的哈希算法计算H(idu||Kpuu||Su(idu,Kpuu))=H(u),并使用IDS的公钥对SIDS(idu,Kpuu,Su(idu,Kpuu))进行验签计算验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证签名服务器SS使用电子签章合成算法,将签名值SSS(m1,patu)和证书CerSS合成到文件m′1,生成签署完成的做准文件m2;
公证签名服务器SS将做准文件m2、taskm返回至签署业务服务器BS,签署业务服务器BS通知用户U,电子文件m的签署流程完成。
进一步地,步骤S1.4具体为:公证协同服务器Co使用随机算法产生一个符合SM2密码算法规则要求的密钥字符串Kpru,,并使用SM2算法、密钥字符串Kpru、Kpupin以及椭圆曲线公开参数G,计算将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文件上的数字签名得到:数字证书对应的签名、以及由用户U的签名图片posu和公证证书CerSS组合构成的电子签章;其中:数字证书对应的签名是用户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)进行验签运算验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
将签名值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格式数字证书
一种公证协同服务器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进行编码,生成二维码以网页的形式向用户展示文件m0,同步在页面上显示并提示用户使用App扫描
签署业务服务器BS接收公证身份服务器IDS发送的SIDS(Su(m0))、Su(m0)、taskm之后,通过taskm查询获得任务文件m0,使用电子签章合成算法将签名值Su(m0)和合成到文件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))进行验签运算验签结果不成立,通知BS终止任务,验签结果成立,公证签名服务器SS解析文件m1,获取数字证书的信息,得到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))进行验签计算验签结果不成立,通知BS终止任务,验签结果成立,以posu为位置坐标,在文件m1中插入一个签名域,将签名图样patu添加至签名域,生成文件m′1,并使用证书私钥KprSS对包含签名域的文件m′1进行签名运算
公证签名服务器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对进行扫码得到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关联,记入数据库;
签署业务服务器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,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)进行验签运算验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证身份服务器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使用与步骤2.7中同样的哈希算法计算H(idu||Kpuu||Su(idu,Kpuu))=H(u),并使用IDS的公钥KpuIDS对SIDS(idu,Kpuu,Su(idu,Kpuu))进行验签计算验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证签名服务器SS使用电子签章合成算法,将签名值SSS(m1,patu)和证书CerSS合成到文件m′1,生成签署完成的做准文件m2;
公证签名服务器SS将做准文件m2、taskm返回至签署业务服务器BS,签署业务服务器BS通知用户U,电子文件m的签署流程完成。
步骤S2.9之后,还包括用户U访问签署业务服务器BS下载做准文本m2,查验m2文件上的数字签名得到:数字证书对应的签名、以及由用户U的签名图片posu和公证证书CerSS组合构成的电子签章;其中:数字证书对应的签名是用户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)进行验签运算验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
将签名值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格式数字证书
一种公证协同服务器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进行编码,生成二维码以网页的形式向用户展示文件m0,同步在页面上显示并提示用户使用App扫描
签署业务服务器BS接收公证身份服务器IDS发送的SIDS(Su(m0))、Su(m0)、taskm之后,通过taskm查询获得任务文件m0,使用电子签章合成算法将签名值Su(m0)和合成到文件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))进行验签运算验签结果不成立,通知BS终止任务,验签结果成立,公证签名服务器SS解析文件m1,获取数字证书的信息,得到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))进行验签计算验签结果不成立,通知BS终止任务,验签结果成立,以posu为位置坐标,在文件m1中插入一个签名域,将签名图样patu添加至签名域,生成文件m′1,并使用证书私钥KprSS对包含签名域的文件m′1进行签名运算
公证签名服务器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以及签名的图样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关联,记入数据库;
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(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))进行验签运算SIDS(Su(m0))),验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证签名服务器SS使用与步骤2.7中同样的哈希算法计算H(idu||Kpuu||Su(idu,Kpuu))=H(u),并使用IDS的公钥KpuIDS对SIDS(idu,Kpuu,Su(idu,Kpuu))进行验签计算验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
公证签名服务器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)。
6.一种权利要求1所述基于电子公证和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)进行验签运算验签结果不成立,通知BS终止任务,验签结果成立,进行下一步;
将签名值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格式数字证书
7.一种权利要求1所述基于电子公证和SM2协同签名的电子文件签署方法所采用的公证协同服务器Co,其特征在于:它包括
用户注册单元:公证协同服务器Co接收公证身份服务器IDS发送的idu和Kpupin后,启动密钥协同运算,生成密钥字符串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.一种权利要求1所述基于电子公证和SM2协同签名的电子文件签署方法所采用的签署业务服务器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进行编码,生成二维码以网页的形式向用户展示文件m0,同步在页面上显示并提示用户使用App扫描
签署业务服务器BS接收公证身份服务器IDS发送的SIDS(Su(m0))、Su(m0)、taskm之后,通过taskm查询获得任务文件m0,使用电子签章合成算法将签名值Su(m0)和合成到文件m0中,签章的位置坐标为(0,0),完成用户签名,形成新的文件m1;签署业务服务器BS将文件m1、签名图样patu、签名的位置坐标posu、Su(m0)、SIDS(Su(m0))、taskm发送给公证签名服务器SS;
签署业务服务器BS接收公证签名服务器SS发送的做准文件m2、taskm之后,通知用户U,电子文件m的签署流程完成。
9.一种权利要求1所述基于电子公证和SM2协同签名的电子文件签署方法所采用的公证签名服务器SS,其特征在于:它包括:
用户签署单元:公证签名服务器SS接收签署业务服务器BS发送的文件m1、签名图样patu、签名的位置坐标posu、Su(m0)、SIDS(Su(m0))和taskm之后,执行如下操作:计算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使用哈希算法计算H(idu||Kpuu||Su(idu,Kpuu))=H(u),并使用IDS的公钥KpuIDS对SIDS(idu,Kpuu,Su(idu,Kpuu))进行验签计算验签结果不成立,通知BS终止任务,验签结果成立,以posu为位置坐标,在文件m1中插入一个签名域,将签名图样patu添加至签名域,生成文件m′1,并使用证书私钥KprSS对包含签名域的文件m′1进行签名运算
公证签名服务器SS使用电子签章合成算法,将签名值SSS(m1,patu)和证书CerSS合成到文件m′1,生成签署完成的做准文件m2;将做准文件m2、taskm返回至签署业务服务器BS,通知用户U,电子文件m的签署流程完成。
10.一种权利要求1所述基于电子公证和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对进行扫码得到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。
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 CN111817857A (zh) | 2020-10-23 |
CN111817857B true 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) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112929433A (zh) * | 2021-02-03 | 2021-06-08 | 北京深安未来科技有限公司 | 一种基于公证视频签署的安全数据交换方法 |
CN113411184B (zh) * | 2021-05-31 | 2022-06-14 | 胡金钱 | 一体化管理终端装置及一体化管理方法 |
CN113609499B (zh) * | 2021-07-28 | 2024-03-01 | 江苏慧世联网络科技有限公司 | 基于去中心化多方安全计算和多重签名的电子公证文书签署方法及系统 |
Citations (5)
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 | 江苏慧世联网络科技有限公司 | 一种基于屏幕影像记录与识别的远程电子公证服务系统及通信方法 |
-
2020
- 2020-07-03 CN CN202010632148.2A patent/CN111817857B/zh active Active
Patent Citations (5)
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 | 江苏慧世联网络科技有限公司 | 一种基于屏幕影像记录与识别的远程电子公证服务系统及通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111817857A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109756485B (zh) | 电子合同签署方法、装置、计算机设备及存储介质 | |
CN109672539B (zh) | Sm2算法协同签名及解密方法、装置及系统 | |
US6189098B1 (en) | Client/server protocol for proving authenticity | |
CN111817857B (zh) | 一种基于电子公证和sm2协同签名的电子文件签署方法及其所采用的服务器 | |
US8527758B2 (en) | Systems and methods for facilitating user identity verification over a network | |
US7937584B2 (en) | Method and system for key certification | |
US6789193B1 (en) | Method and system for authenticating a network user | |
US7181621B2 (en) | Methods and device for digitally signing data | |
CN101527633B (zh) | 智能密钥设备获取数字证书的方法 | |
TWI718567B (zh) | 二維碼生成方法、資料處理方法、裝置、伺服器及計算機可讀儲存媒體 | |
CN1922816B (zh) | 单向认证 | |
US20100042848A1 (en) | Personalized I/O Device as Trusted Data Source | |
US10887110B2 (en) | Method for digital signing with multiple devices operating multiparty computation with a split key | |
TWI773161B (zh) | 數位簽章私鑰驗證方法 | |
CN105635187B (zh) | 带印模的电子文件的生成方法与装置、认证方法与装置 | |
CN112242993B (zh) | 双向认证方法及系统 | |
KR101253683B1 (ko) | 연쇄 해시에 의한 전자서명 시스템 및 방법 | |
CN114362946B (zh) | 密钥协商方法及系统 | |
TWI593267B (zh) | 具有時戳驗證的免憑證公開金鑰管理方法 | |
JP2006155547A (ja) | 本人認証システム、端末装置、およびサーバ | |
CN111245594B (zh) | 一种基于同态运算的协同签名方法及系统 | |
CN117370952A (zh) | 基于区块链的多重节点身份验证方法及装置 | |
JP7235055B2 (ja) | 認証システム、クライアントおよびサーバ | |
CN110868285A (zh) | 认证方法、服务器、系统和计算机可读存储介质 | |
JP2002300155A (ja) | 相互認証方法及び相互認証システム |
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 |