CN110224812A - 一种基于多方安全计算的电子签名移动客户端与协同服务器通信的方法以及设备 - Google Patents

一种基于多方安全计算的电子签名移动客户端与协同服务器通信的方法以及设备 Download PDF

Info

Publication number
CN110224812A
CN110224812A CN201910506529.3A CN201910506529A CN110224812A CN 110224812 A CN110224812 A CN 110224812A CN 201910506529 A CN201910506529 A CN 201910506529A CN 110224812 A CN110224812 A CN 110224812A
Authority
CN
China
Prior art keywords
key
sdk
business module
parameter
uuid
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
CN201910506529.3A
Other languages
English (en)
Other versions
CN110224812B (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 Hui Lasalle Network Technology Co Ltd
Original Assignee
Jiangsu Hui Lasalle 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 Hui Lasalle Network Technology Co Ltd filed Critical Jiangsu Hui Lasalle Network Technology Co Ltd
Priority to CN201910506529.3A priority Critical patent/CN110224812B/zh
Publication of CN110224812A publication Critical patent/CN110224812A/zh
Application granted granted Critical
Publication of CN110224812B publication Critical patent/CN110224812B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • 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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

一种基于多方安全计算的电子签名移动客户端与协同服务器通信的方法以及设备,本发明涉及电子签名领域,采用签名人持有的客户端与系统提供的服务端协助配合,在相互不暴露机密信息的情况下,完成电子签名;在签名人之外增加一个协助签名人完成签名任务的公共服务端,签名人通过移动智能终端与公共服务端分别存储管理部分私钥的因子,在签名时需要双方联合计算才能完成对消息的完整签名,在此过程中,任何一方均无法获取到关于另一方私钥的任何信息,因此即使攻击者能入侵其中任何一方,攻击者仍然不能伪造合法的签名,安全性好,可靠性高。

Description

一种基于多方安全计算的电子签名移动客户端与协同服务器 通信的方法以及设备
技术领域
本发明涉及电子签名领域,特别是为了保证云计算环境中私钥的安全性,采用签名人持有的客户端与系统提供的服务端协助配合,在相互不暴露机密信息的情况下,完成电子签名的应用系统。
背景技术
常规的电子签名是基于公钥密码学,以签名人私钥对数据消息进行签名,而以公钥对签名值进行验证签名的一种方式,在电子签名过程中,由于私钥直接代表了签名人的身份,因此私钥的安全管理成为了非常重要的任务,为了能够保证私钥安全,常见的做法是使用Ukey,但由于Ukey在使用上存在不够便捷的缺陷,使用门槛高,并且在现在移动互联环境下,对手机等智能移动终端的支持不足,如何在免Ukey的情况下,保证私钥的签名安全性是一个问题。
发明内容
本发明的目的是构造一个在不使用USB Key、Smart Card等外设密码硬件设备的情况下,用户(签名人)可以安全使用其基于SM2密码标准的私钥,进行数字签名的方法,并提供可以克服传统技术无法保护用户隐私、抵抗恶意攻击等问题的SM2算法协同签名系统。
本发明的技术方案是:
本发明提供一种基于多方安全计算的电子签名移动客户端与协同服务器通信的方法,该方法包括以下步骤;
注册步骤
S1.1用户U智能手机安装并运行客户端App,App中业务模块使用统一规则,通过移动终端的硬件信息特征,计算设备唯一标识UUID;
S1.2业务模块调用助记词模块随机向U显示词组,用户U选择相应词组作为助记词字符串Ph,并要求用户按顺序记住助记词明文;
S1.3业务模块请用户U提交身份信息IDu,并设置一个PIN码;
S1.4业务模块向SDK发出a指令包括参数Ph、PIN、UUID、IDu
S1.5 SDK执行计算:
使用密钥派生算法KDFS以Ph为输入参数进行计算,生成第一私钥分量d1∈[1,2,…,n-1];
计算公钥第一分量P1
使用密钥派生算法KDFS,以PIN为输入参数进行计算,产生对称密钥keyp1;
使用Keys、keyp1、UUID对d1进行加密运算En(keys,keyp1,UUID),
得到Cd1s,其中keys表示SDK预置的密钥。
S1.6 SDK向业务模块输出Cd1s,并使用安全信道,向协同服务器Ser输出P1、IDu
S1.7业务模块使用密钥派生算法KDFy以PIN码为输入,生成对称密钥keyp2,使用keyp2对Cd1s进行加密运算,得到密文Cd1y,将Cd1y保存;
S1.8执行S1.7的同时,协同服务器Ser收到P1后,保存P1、IDu,执行如下运算:
Ser选取一个随机安全参数作为输入,使用KDFser密钥派生算法生成私钥第二分量d2
d2∈[1,2,…,n-1];
结合P1和椭圆曲线参数G,进一步计算出完整的公钥
S1.9 Ser保存P,将P与IDu关联,并通过安全信道将完整公钥P发送给SDK,SDK将P交付给业务模块,业务模块保存P,用户U获得完整公钥,系统注册完成;
签名步骤:
S1.10用户U将拟签名的文件M导入App业务模块,发起一个签名请求;
S1.11 App业务模块计算e=H(M),将e发送给SDK,并提交b指令;
S1.12 SDK随机产生一个安全随机参数k1∈[1,2,…,n-1],计算Q1=k1G,并将e、Q1通过安全信道发送给协同服务器Ser;
S1.13 Ser收到SDK发来的e、Q1,执行如下运算:
Ser产生随机安全参数k2,k3,k2∈[1,2,…,n-1],
k3∈[1,2,…,n-1],结合Q1
计算x,y是椭圆曲线上的坐标;
计算r=(e+x)modn,n是椭圆曲线的参数;
计算S3=d2(r+k3)modn;
S1.14 Ser通过安全信道发送(r,S2,S3)到SDK;
S1.15在S1.12~1.14执行的同时,业务模块使用统一规则,通过移动终端的硬件信息计算设备唯一标识UUID,并请用户U输入PIN码,使用密钥派生算法KDFy以PIN码为输入,生成对称密钥keyp2;
S1.16业务模块使用keyp2对Cd1y进行解密,得到Cd1s,将参数PIN、UUID、Cd1s提交给SDK,并请求执行c指令;
S1.17 SDK接收到业务模块的c指令和参数PIN、UUID、Cd1s,并结合S1.14中Ser通过安全信道发送(r,S2,S3)执行如下运算:
使用密钥派生算法KDFS,以PIN为输入参数进行计算得到keyp1;
使用keys、keyp1、UUID对Cd1s进行解密,De(keys,keyp1,UUID),
得到d1
计算S=d1k1S2+d1S3-rmodn
S1.18 SDK得到文件M的签名值(r,S),签名流程结束。
进一步地,步骤S1.2中,助记词模块随机向U显示词组的具体步骤如下:助记词模块中内置m个汉字词组组成的词典Dic,给每一个词组配置相应的编号,该编号为0~m-1;
助记词产生的流程如下:
生成一个长度j位的随机序列作为熵str’,j为32的倍数,m=8j;
对随机序列str’计算哈希值H(str’),取H(str’)的前n’位作为校验和,n’=j/32;将校验和连接到Str’的末尾,得到完整序列str;
将str按照每11位为一个单位进行分割,得到至少(j+n’)/11个分块,将每个分块转换为十进制,得到0~m-1的整数;
以前述整数为索引,在词典Dic中按顺序找到对应的(j+n’)/11个关键词,并按顺序拼接在一起,产生词组提交给业务模块,供用户选择作为助记词Ph。
进一步地,该方法还包括:
密钥恢复步骤:
用户U运行客户端App,提交恢复密钥的请求;
助记词模块请用户按顺序明文输入需要妥善保存的助记词Ph;
业务模块请用户输入身份信息IDu’,重置PIN码,同时业务模块计算设备的唯一标识符UUID,并将Ph、PIN、UUID、IDu’作为参数发送给SDK,请求执行a指令,SDK向业务模块输出Cd1s。业务模块使用密钥派生算法KDFy以PIN码作为输入,生成业务模块的对称密钥keyp2;业务模块使用keyp2对Cd1s进行加密运算,得到密文Cd1y并保存;
SDK模块执行a指令进行运算,得到P1’,并通过安全信道将P1’、IDu’发送给系统服务器Ser;
协同服务器Ser收到SDK模块提交的P1’、IDu’后,与步骤S1.6中保存的P1、IDu进行比对;比对一致,则Ser通过安全信道将之前保存的用户U的完整公钥P发送给SDK,SDK将P交付给业务模块,用户U的密钥恢复完成;比对不一致,则恢复失败。
一种基于多方安全计算的电子签名移动客户端设备处执行的方法,该方法包括以下步骤;
注册步骤:
S2.1、用户U智能手机安装并运行客户端App,客户端中业务模块通过移动终端的硬件信息特征获取设备唯一标识UUID;
S2.2、业务模块调用助记词模块随机向U显示词组,用户U选择显示的相应词组作为助记词字符串Ph,并要求用户按顺序记住助记词明文Ph;
S2.3、业务模块请用户U提交身份信息IDu,u表示用户编号,并设置一个PIN码;
S2.4、业务模块向SDK发出a指令包含参数Ph、PIN、UUID、IDu
S2.5、SDK执行计算:
使用密钥派生算法KDFS以Ph为输入参数进行计算,生成第一私钥分量d1∈[1,2,…,n-1],n表示椭圆曲线参数;
计算公钥第一分量P1G表示椭圆曲线参数;
使用密钥派生算法KDFS,以PIN为输入参数进行计算,产生对称密钥keyp1;
使用Keys、keyp1、UUID对d1进行加密运算En(keys,keyp1,UUID),
得到d1的密文Cd1s,Keys表示预设的对称密钥;
S2.6、SDK向业务模块输出Cd1s,并使用安全信道,向协同服务器Ser输出公钥第一分量P1、IDu
S2.7、业务模块将Ph、PIN、UUID发送至SDK模块,同时使用密钥派生算法KDFy以PIN码作为输入,生成业务模块的对称密钥keyp2;业务模块使用keyp2对Cd1s进行加密运算,得到密文Cd1y并保存;
签名步骤:
S2.8、用户U将拟签名的文件M导入App的业务模块,发起一个签名请求;
S2.9、业务模块计算e=H(M),将e发送给SDK,并向SDK提交b指令;
SDK随机产生一个安全随机参数k1∈[1,2,…,n-1],计算中间参数Q1=k1G,并将e、Q1通过安全信道发送给协同服务器Ser;
同时,业务模块请用户U输入PIN码,使用密钥派生算法KDFy以PIN码为输入,生成对称密钥keyp2;
S2.10、业务模块使用keyp2对步骤2.7获取的密文Cd1y进行解密,得到Cd1s,将参数PIN、UUID、Cd1s提交给SDK,并请求执行c指令;
SDK接收到业务模块的c指令和参数PIN、UUID、Cd1s,并结合Ser通过安全信道发送的中间参数(r,S2,S3)执行如下运算:
使用密钥派生算法KDFs,以PIN为输入参数进行计算得到keyp1;
使用keys、keyp1、UUID对Cd1s进行解密,De(keys,keyp1,UUID),得到d1
计算S=d1k1S2+d1S3-rmodn
S2.11、SDK得到文件M的签名值(r,S),签名流程结束。
进一步地,移动客户端设备处执行的方法还包括:
密钥恢复步骤:
用户U运行客户端App,提交恢复密钥的请求;
助记词模块请用户按顺序明文输入需要妥善保存的助记词Ph;
业务模块请用户输入身份信息IDu’,重置PIN码,同时业务模块计算设备的唯一标识符UUID,并将Ph、PIN、UUID、IDu’作为参数发送给SDK,请求执行a指令,SDK向业务模块输出Cd1s。业务模块使用密钥派生算法KDFy以PIN码作为输入,生成业务模块的对称密钥keyp2;业务模块使用keyp2对Cd1s进行加密运算,得到密文Cd1y并保存;
SDK模块执行a指令进行运算,得到P1’,并通过安全信道将P1’、IDu’发送给系统服务器Ser。
一种基于多方安全计算的电子签名移动客户端设备,该设备包括SDK模块、助记词模块和业务模块,其中;
助记词模块:用于向U显示词组,用户U选择显示的相应词组作为明文助记词字符串Ph;
SDK模块:
初始化单元:初始化SDK,产生并保存一个用于加密和解密对称密钥keys,预设SDK用于非对称签名的SM2椭圆曲线公钥密码算法的椭圆曲线参数G、n;
a指令执行单元:当SDK收到业务模块输入a指令,执行计算:SDK使用密钥派生算法KDFS以Ph为输入参数进行计算,生成第一私钥分量d1∈[1,2,…,n-1];计算公钥第一分量使用密钥派生算法KDFs,以PIN为输入参数进行计算,产生对称密钥keyp1;使用Keys、keyp1、UUID对d1进行加密运算En(keys,keyp1,UUID),得到d1的密文Cd1s;SDK向业务模块输出Cd1s;同时,使用安全信道,向协同服务器Ser输出P1、IDu
b指令执行单元:当SDK收到业务模块输入的b指令和文件M的哈希值e,执行计算:SDK随机产生一个安全随机参数k1∈[1,2,…,n-1],计算中间参数Q1=k1G,并将e、Q1通过安全信道发送给协同服务器Ser;
c指令执行单元:当SDK接收到业务模块的c指令、参数PIN、UUID、Cd1s和来自于协调服务器Ser的中间参数r,S2,S3,执行计算:SDK使用密钥派生算法KDFs,以PIN为输入参数进行计算得到keyp1;使用keys、keyp1、UUID对Cd1s进行解密,De(keys,keyp1,UUID),得到d1;计算中间参数S=d1k1S2+d1S3-rmodn;SDK向业务模块输出(r,S);
公钥交付单元:当SDK收到协同服务器Ser发送的完整公钥P,将P交付给业务模块;
业务模块:
设备唯一标识获取单元:业务模块以移动终端的硬件信息为特征,获取设备唯一标识UUID;
身份信息获取单元:当助记词模块产生助记词Ph后,业务模块请用户U提交身份信息IDu,u表示用户编号,并设置PIN码;
a指令发送单元:业务模块调用助记词模块产生Ph,并将Ph、PIN、UUID、IDu和a指令发送至SDK模块处理;
加密单元:业务模块接收到SDK模块输出的Cd1s,使用密钥派生算法KDFy以PIN码作为输入,生成业务模块的对称密钥keyp2;使用keyp2对Cd1s进行加密运算En(keyp2,Cd1s)=Cd1y,保存密文Cd1y;
注册完成单元:业务模块收到SDK交付的用户U的完整公钥P后,U的身份注册完成;
b指令发送单元:签名时,业务模块收到用户U提交的待签名文件M之后,计算M的哈希值e=H(M),发送给SDK模块,并发出b指令;
解密单元:业务模块向用户U申请输入PIN码,使用密钥派生算法KDFy以PIN码为输入,生成对称密钥keyp2,并以keyp2为密钥对保存的Cd1y进行解密,De(keyp2,Cd1y)=Cd1s;
c指令发送单元:业务模块向SDK请求执行c指令,并发送参数PIN、UUID和Cd1s;
签名完成单元:业务模块收到SDK返回的文件M的签名值(r,S),签名流程完成。
一种基于多方安全计算的电子签名协同服务器设备处执行的方法,该方法包括以下步骤;
注册步骤
S3.1、协同服务器Ser收到SDK发出的公钥第一分量P1和用户身份信息IDu后,执行如下运算;选取一个随机安全参数作为输入,使用KDFser密钥派生算法生成私钥第二分量d2,d2∈[1,2,…,n-1],n表示椭圆曲线参数;结合P1和椭圆曲线参数G,进一步计算出完整的公钥;
S3.2、Ser保存P,将P与IDu关联,并通过安全信道将完整公钥P发送给SDK;
签名步骤:
S3.3、Ser收到SDK发来的e、Q1,产生随机安全参数k2,k3,k2∈[1,2,…,n-1],k3∈[1,2,…,n-1],结合Q1,计算中间参数Q2、Q3、r和S2、S3
x,y是椭圆曲线上的坐标;
r=(e+x)modn,n是椭圆曲线的参数;
S3=d2(r+k3)modn;
S3.4、Ser通过安全信道发送中间参数(r,S2,S3)到SDK。
进一步地,协同服务器设备处执行的方法该方法还包括:
密钥恢复步骤:协同服务器Ser收到SDK模块提交的P1’、IDu’后,与步骤
S3.2中保存的P1、IDu进行比对;比对一致,则Ser通过安全信道将之前保存的用户U的完整公钥P发送给SDK,SDK将P交付给业务模块,用户U的密钥恢复完成;比对不一致,则恢复失败。
一种基于多方安全计算的电子签名协同服务器设备,该设备包括:公钥获取单元:当收到SDK发出的公钥第一分量P1和用户身份信息IDu后,用于执行如下运算;选取一个随机安全参数作为输入,使用KDFser密钥派生算法生成私钥第二分量d2,d2∈[1,2,…,n-1],n表示椭圆曲线参数;结合P1和椭圆曲线参数G,进一步计算出完整的公钥;
公钥发送单元:用于保存P,将P与IDu关联,并通过安全信道将完整公钥P发送给SDK;
中间参数获取单元:当收到SDK发来的e、Q1,产生随机安全参数k2,k3,k2∈[1,2,…,n-1],k3∈[1,2,…,n-1],结合Q1,用于计算中间参数Q2、Q3、r和S2、S3
x,y是椭圆曲线上的坐标;
r=(e+x)modn,n是椭圆曲线的参数;
S3=d2(r+k3)modn;
中间参数发送单元:用于通过安全信道发送中间参数(r,S2,S3)到SDK。
本发明的有益效果:
本发明安全多方计算可以抽象的理解为两方分别拥有各自的私有数据,在不泄漏各自私有数据的情况下,能够计算出关于公共函数的结果。整个计算完成时,只有计算结果对双方可知,且双方均不知对方的数据以及计算过程的中间数据。
本发明基于安全多方计算的思想,在签名人之外增加一个协助签名人完成签名任务的公共服务端,签名人通过移动智能终端与公共服务端分别存储管理部分私钥的因子,在签名时需要双方联合计算才能完成对消息的完整签名,在此过程中,任何一方均无法获取到关于另一方私钥的任何信息,因此即使攻击者能入侵其中任何一方,攻击者仍然不能伪造合法的签名。
本发明的其它特征和优点将在随后具体实施方式部分予以详细说明。
附图说明
通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了本发明的助记词产生流程图。
图2示出了本发明的流程图。
具体实施方式
下面将参照附图更详细地描述本发明的优选实施方式。虽然附图中显示了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。
如图2所示,一种基于多方安全计算的电子签名移动客户端与协同服务器通信的方法,该方法包括以下步骤;
注册步骤
S1.1用户U智能手机安装并运行客户端App,App中业务模块使用统一规则,通过移动终端的硬件信息特征,计算设备唯一标识UUID;
S1.2业务模块调用助记词模块随机向U显示词组,用户U选择相应词组作为助记词字符串Ph,并要求用户按顺序记住助记词明文,如图1所示;
m:词典中词组的数量(始终为熵的8倍,比如熵为128位,则m为1024;如熵为256位,则m为2048;)
n’:校验和,长度始终等于熵的长度/32,比如熵为128位,则n’为4;如熵为256位,则n’为8;
助记词模块中内置m个汉字词组组成的词典Dic,给每一个词组配置相应的编号,该编号为0~m-1;助记词产生的流程如下:
生成一个长度j位的随机序列作为熵str’,j为32的倍数,j取值以256为例,m为2048;
对随机序列str’计算哈希值H(str’),取H(str’)的前n’位作为校验和,n’=j/32,取值为8;将8位校验和连接到srr’的末尾,得到264位完整序列str;
将str按照每11位为一个单位进行分割,得到至少24个分块,将每个分块转换为十进制,得到0~m-1的整数;
以前述整数为索引,在词典Dic中按顺序找到对应的24个关键词,并按顺序拼接在一起,产生词组提交给业务模块,供用户选择作为助记词Ph。
S1.3业务模块请用户U提交身份信息IDu,并设置一个PIN码;
S1.4业务模块向SDK发出a指令和参数Ph、PIN、UUID、IDu
S1.5 SDK执行计算:
使用密钥派生算法KDFS以Ph为输入参数进行计算,生成第一私钥分量d1∈[1,2,…,n-1];
计算公钥第一分量P1
使用密钥派生算法KDFS,以PIN为输入参数进行计算,产生对称密钥keyp1;
使用Keys、keyp1、UUID对d1进行加密运算En(keys,keyp1,UUID),
得到Cd1s,其中Keys表示SDK预置密钥;
S1.6 SDK向业务模块输出Cd1s,并使用安全信道,向协同服务器Ser输出P1、IDu
S1.7业务模块使用密钥派生算法KDFy以PIN码为输入,生成对称密钥keyp2,使用keyp2对Cd1s进行加密运算,得到密文Cd1y,将Cd1y保存;
S1.8执行S1.7的同时,协同服务器Ser收到P1后,保存P1、IDu,执行如下运算:
Ser选取一个随机安全参数作为输入,使用KDFser密钥派生算法生成私钥第二分量d2
d2∈[1,2,…,n-1];
结合P1和椭圆曲线参数G,进一步计算出完整的公钥
S1.9 Ser保存P,将P与IDu关联,并通过安全信道将完整公钥P发送给SDK,SDK将P交付给业务模块,业务模块保存P,用户U获得完整公钥,系统注册完成;
签名步骤:
S1.10用户U将拟签名的文件M导入App业务模块,发起一个签名请求;
S1.11 App业务模块计算e=H(M),将e发送给SDK,并提交b指令;
S1.12 SDK随机产生一个安全随机参数k1∈[1,2,…,n-1],计算Q1=k1G,并将e、Q1通过安全信道发送给协同服务器Ser;
S1.13 Ser收到SDK发来的e、Q1,执行如下运算:
Ser产生随机安全参数k2,k3,k2∈[1,2,…,n-1],k3∈[1,2,…,n-1],结合Q1
计算x,y是椭圆曲线上的坐标;
计算r=(e+x)modn,n是椭圆曲线的参数;
计算S3=d2(r+k3)modn;
S1.14 Ser通过安全信道发送(r,S2,S3)到SDK;
S1.15在S1.12~1.14执行的同时,业务模块使用统一规则,通过移动终端的硬件信息计算设备唯一标识UUID,并请用户U输入PIN码,使用密钥派生算法KDFy以PIN码为输入,生成对称密钥keyp2;
S1.16业务模块使用keyp2对Cd1y进行解密,得到Cd1s,将参数PIN、UUID、Cd1s提交给SDK,并请求执行c指令;
S1.17 SDK接收到业务模块的c指令和参数PIN、UUID、Cd1s,并结合S1.14中Ser通过安全信道发送(r,S2,S3)执行如下运算:
使用密钥派生算法KDFS,以PIN为输入参数进行计算得到keyp1;
使用keys、keyp1、UUID对Cd1s进行解密,De(keys,keyp1,UUID),
得到d1,其中Keys表示SDK预置密钥;
计算S=d1k1S2+d1S3-rmodn
S1.18 SDK得到文件M的签名值(r,S),签名流程结束。
进一步地,该方法还包括:
密钥恢复步骤:
用户U运行客户端App,提交恢复密钥的请求;
助记词模块请用户按顺序明文输入需要妥善保存的助记词Ph;
业务模块请用户输入身份信息IDu’,重置PIN码,同时业务模块计算设备的唯一标识符UUID,并将Ph、PIN、UUID、IDu’作为参数发送给SDK,请求执行a指令,SDK向业务模块输出Cd1s。业务模块使用密钥派生算法KDFy以PIN码作为输入,生成业务模块的对称密钥keyp2;业务模块使用keyp2对Cd1s进行加密运算,得到密文Cd1y并保存;
SDK模块执行a指令进行运算,得到P1’,并通过安全信道将P1’、IDu’发送给系统服务器Ser;
协同服务器Ser收到SDK模块提交的P1’、IDu’后,与步骤S1.6中保存的P1、IDu进行比对;比对一致,则Ser通过安全信道将之前保存的用户U的完整公钥P发送给SDK,SDK将P交付给业务模块,用户U的密钥恢复完成;比对不一致,则恢复失败。
一种基于多方安全计算的电子签名移动客户端设备,该设备包括SDK模块、助记词模块和业务模块,其中;
助记词模块:用于向U显示词组,用户U选择显示的相应词组作为明文助记词字符串Ph;
SDK模块:
初始化单元:初始化SDK,产生并保存一个用于加密和解密对称密钥keys,预设SDK用于非对称签名的SM2椭圆曲线公钥密码算法的椭圆曲线参数G、n;
a指令执行单元:当SDK收到业务模块输入a指令,执行计算:SDK使用密钥派生算法KDFS以Ph为输入参数进行计算,生成第一私钥分量d1∈[1,2,…,n-1];计算公钥第一分量使用密钥派生算法KDFs,以PIN为输入参数进行计算,产生对称密钥keyp1;使用Keys、keyp1、UUID对d1进行加密运算En(keys,keyp1,UUID),得到d1的密文Cd1s;SDK向业务模块输出Cd1s;同时,使用安全信道,向协同服务器Ser输出P1、IDu
b指令执行单元:当SDK收到业务模块输入的b指令和文件M的哈希值e,执行计算:SDK随机产生一个安全随机参数k1∈[1,2,…,n-1],计算中间参数Q1=k1G,并将e、Q1通过安全信道发送给协同服务器Ser;
c指令执行单元:当SDK接收到业务模块的c指令、参数PIN、UUID、Cd1s和来自于协调服务器Ser的中间参数r,S2,S3,执行计算:SDK使用密钥派生算法KDFs,以PIN为输入参数进行计算得到keyp1;使用keys、keyp1、UUID对Cd1s进行解密,De(keys,keyp1,UUID),得到d1;计算中间参数S=d1k1S2+d1S3-rmodn;SDK向业务模块输出(r,S);
公钥交付单元:当SDK收到协同服务器Ser发送的完整公钥P,将P交付给业务模块;
业务模块:
设备唯一标识获取单元:业务模块以移动终端的硬件信息为特征,获取设备唯一标识UUID;
身份信息获取单元:当助记词模块产生助记词Ph后,业务模块请用户U提交身份信息IDu,u表示用户编号,并设置PIN码;
a指令发送单元:业务模块调用助记词模块产生Ph,并将Ph、PIN、UUID、IDu和a指令发送至SDK模块处理;
加密单元:业务模块接收到SDK模块输出的Cd1s,使用密钥派生算法KDFy以PIN码作为输入,生成业务模块的对称密钥keyp2;使用keyp2对Cd1s进行加密运算En(keyp2,Cd1s)=Cd1y,保存密文Cd1y;
注册完成单元:业务模块收到SDK交付的用户U的完整公钥P后,U的身份注册完成;
b指令发送单元:签名时,业务模块收到用户U提交的待签名文件M之后,计算M的哈希值H(M)=e,发送给SDK模块,并发出b指令;
解密单元:业务模块向用户U申请输入PIN码,使用密钥派生算法KDFy以PIN码为输入,生成对称密钥keyp2,并以keyp2为密钥对保存的Cd1y进行解密,De(keyp2,Cd1y)=Cd1s;
c指令发送单元:业务模块向SDK请求执行c指令,并发送参数PIN、UUID和Cd1s;
签名完成单元:业务模块收到SDK返回的文件M的签名值(r,S),签名流程完成。
一种基于多方安全计算的电子签名协同服务器设备,该设备包括:公钥获取单元:当收到SDK发出的公钥第一分量P1和用户身份信息IDu后,用于执行如下运算;选取一个随机安全参数作为输入,使用KDFser密钥派生算法生成私钥第二分量d2,d2∈[1,2,…,n-1],n表示椭圆曲线参数;结合P1和椭圆曲线参数G,进一步计算出完整的公钥;
公钥发送单元:用于保存P,将P与IDu关联,并通过安全信道将完整公钥P发送给SDK;
中间参数获取单元:当收到SDK发来的e、Q1,产生随机安全参数k2,k3,k2∈[1,2,…,n-1],k3∈[1,2,…,n-1],结合Q1,用于计算中间参数Q2、Q3、r和S2、S3
x,y是椭圆曲线上的坐标;
r=(e+x)modn,n是椭圆曲线的参数;
S3=d2(r+k3)modn;
中间参数发送单元:用于通过安全信道发送中间参数(r,S2,S3)到SDK。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。

Claims (9)

1.一种基于多方安全计算的电子签名移动客户端与协同服务器通信的方法,其特征在于,该方法包括以下步骤;
注册步骤
S1.1用户U智能手机安装并运行客户端App,App中业务模块使用统一规则,通过移动终端的硬件信息特征,计算设备唯一标识UUID;
S1.2业务模块调用助记词模块随机向U显示词组,用户U选择相应词组作为助记词字符串Ph,并要求用户按顺序记住助记词明文;
S1.3业务模块请用户U提交身份信息IDu,并设置一个PIN码;
S1.4业务模块向SDK发出a指令包括参数Ph、PIN、UUID、IDu
S1.5 SDK执行计算:
使用密钥派生算法KDFS以Ph为输入参数进行计算,生成第一私钥分量d1∈[1,2,…,n-1];
计算公钥第一分量P1
使用密钥派生算法KDFS,以PIN为输入参数进行计算,产生对称密钥keyp1;
使用Keys、keyp1、UUID对d1进行加密运算En(keys,keyp1,UUID),得到Cd1s;其中Keys为SDK预置密钥;
S1.6 SDK向业务模块输出Cd1s,并使用安全信道,向协同服务器Ser输出P1、IDu
S1.7业务模块使用密钥派生算法KDFy以PIN码为输入,生成对称密钥keyp2,对Cd1s进行加密运算,得到密文Cd1y,将Cd1y保存;
S1.8执行S1.7的同时,协同服务器Ser收到P1后,保存P1、IDu,执行如下运算:
Ser选取一个随机安全参数作为输入,使用KDFser密钥派生算法生成私钥第二分量d2
d2∈[1,2,…,n-1];
结合P1和椭圆曲线参数G,进一步计算出完整的公钥
S1.9 Ser保存P,将P与IDu关联,并通过安全信道将完整公钥P发送给SDK,SDK将P交付给业务模块,业务模块保存P,用户U获得完整公钥,系统注册完成;
签名步骤:
S1.10用户U将拟签名的文件M导入App业务模块,发起一个签名请求;
S1.11 App业务模块计算e=H(M),将e发送给SDK,并提交b指令;
S1.12 SDK随机产生一个安全随机参数k1∈[1,2,…,n-1],计算Q1=k1G,并将e、Q1通过安全信道发送给协同服务器Ser;
S1.13 Ser收到SDK发来的e、Q1,执行如下运算:
Ser产生随机安全参数k2,k3,k2∈[1,2,…,n-1],k3∈[1,2,…,n-1],结合Q1
计算Q3=k3G+k3Q2=(x,y),x,y是椭圆曲线上的坐标;
计算r=(e+x)modn,n是椭圆曲线的参数;
计算S3=d2(r+k3)modn;
S1.14 Ser通过安全信道发送(r,S2,S3)到SDK;
S1.15在S1.12~1.14执行的同时,业务模块使用统一规则,通过移动终端的硬件信息计算设备唯一标识UUID,并请用户U输入PIN码,使用密钥派生算法KDFy以PIN码为输入,生成对称密钥keyp2;
S1.16业务模块使用keyp2对Cd1y进行解密,得到Cd1s,将参数PIN、UUID、Cd1s提交给SDK,并请求执行c指令;
S1.17 SDK接收到业务模块的c指令和参数PIN、UUID、Cd1s,并结合S1.14中Ser通过安全信道发送(r,S2,S3)执行如下运算:
使用密钥派生算法KDFs,以PIN为输入参数进行计算得到keyp1;
使用keys、keyp1、UUID对Cd1s进行解密,De(keys,keyp1,UUID),得到d1;其中keys表示SDK预置密钥;
计算S=d1k1S2+d1S3-rmodn
S1.18 SDK得到文件M的签名值(r,S),签名流程结束。
2.根据权利要求1所述的基于多方安全计算的电子签名移动客户端设备处执行的方法,其特征在于步骤S1.2中,助记词模块随机向U显示词组的具体步骤如下:
助记词模块中内置m个汉字词组组成的词典Dic,给每一个词组配置相应的编号,该编号为0~m-1;
助记词产生的流程如下:
生成一个长度j位的随机序列作为熵str’,j为32的倍数,m=8j;
对随机序列str’计算哈希值H(str’),取H(str’)的前n’位作为校验和,n’=j/32;将校验和连接到str’的末尾,得到完整序列str;
将str按照每11位为一个单位进行分割,得到至少(j+n’)/11个分块,将每个分块转换为十进制,得到0~m-1的整数;
以前述整数为索引,在词典Dic中按顺序找到对应的(j+n’)/11个关键词,并按顺序拼接在一起,产生词组提交给业务模块,供用户选择作为助记词Ph。
3.根据权利要求1所述的基于多方安全计算的电子签名移动客户端与协同服务器通信的方法,其特征在于该方法还包括:
密钥恢复步骤:
用户U运行客户端App,提交恢复密钥的请求;
助记词模块请用户按顺序明文输入需要妥善保存的助记词Ph;
业务模块请用户U输入身份信息IDu’,重置PIN码,同时业务模块计算设备的唯一标识符UUID,并将Ph、PIN、UUID、IDu’作为参数发送给SDK,请求执行a指令,SDK向业务模块输出Cd1s。业务模块使用密钥派生算法KDFy以PIN码作为输入,生成业务模块的对称密钥keyp2;业务模块使用keyp2对Cd1s进行加密运算,得到密文Cd1y并保存;
SDK模块执行a指令进行运算,得到P1’,并通过安全信道将P1’、IDu’发送给系统服务器Ser;
协同服务器Ser收到SDK模块提交的P1’、IDu’后,与步骤S1.6中保存的P1、IDu进行比对;比对一致,则Ser通过安全信道将之前保存的用户U的完整公钥P发送给SDK,SDK将P交付给业务模块,用户U的密钥恢复完成;比对不一致,则恢复失败。
4.一种基于多方安全计算的电子签名移动客户端设备处执行的方法,其特征在于,该方法包括以下步骤;
注册步骤:
S2.1、用户U智能手机安装并运行客户端App,客户端中业务模块通过移动终端的硬件信息特征获取设备唯一标识UUID;
S2.2、业务模块调用助记词模块随机向U显示词组,用户U选择显示的相应词组作为助记词字符串Ph,并要求用户按顺序记住助记词明文Ph;
S2.3、业务模块请用户U提交身份信息IDu,u表示用户编号,并设置一个PIN码;
S2.4、业务模块向SDK发出a指令包含参数PIN、UUID、Cd1s;
S2.5、SDK执行计算:
使用密钥派生算法KDFS以Ph为输入参数进行计算,生成第一私钥分量d1∈[1,2,…,n-1],n表示椭圆曲线参数;
计算公钥第一分量P1G表示椭圆曲线参数;
使用密钥派生算法KDFS,以PIN为输入参数进行计算,产生对称密钥keyp1;
使用Keys、keyp1、UUID对d1进行加密运算En(keys,keyp1,UUID),得到d1的密文Cd1s,Keys表示SDK预设的对称密钥;
S2.6、SDK向业务模块输出Cd1s,并使用安全信道,向协同服务器Ser输出公钥第一分量P1、IDu
S2.7、业务模块使用密钥派生算法KDFy以PIN码作为输入,生成业务模块的对称密钥keyp2;业务模块使用keyp2对Cd1s进行加密运算,得到密文Cd1y并保存;
签名步骤:
S2.8、用户U将拟签名的文件M导入App的业务模块,发起一个签名请求;
S2.9、业务模块计算e=H(M),将e发送给SDK,并向SDK提交b指令;
SDK随机产生一个安全随机参数k1∈[1,2,…,n-1],计算中间参数Q1=k1G,并将e、Q1通过安全信道发送给协同服务器Ser;
同时,业务模块请用户U输入PIN码,使用密钥派生算法KDFy以PIN码为输入,生成对称密钥keyp2;
S2.10、业务模块使用keyp2对步骤2.7获取的密文Cd1y进行解密,得到Cd1s,将参数PIN、UUID、Cd1s提交给SDK,并请求执行c指令;
SDK接收到业务模块的c指令和参数PIN、UUID、Cd1s,并结合Ser通过安全信道发送的中间参数(r,S2,S3)执行如下运算:
使用密钥派生算法KDFs,以PIN为输入参数进行计算得到keyp1;
使用keys、keyp1、UUID对Cd1s进行解密,De(keys,keyp1,UUID),得到d1,Keys表示SDK预设的对称密钥;
计算S=d1k1S2+d1S3-rmodn
S2.11、SDK得到文件M的签名值(r,S),签名流程结束。
5.根据权利要求4所述的基于多方安全计算的电子签名移动客户端设备处执行的方法,其特征在于该方法还包括:
密钥恢复步骤:
用户U运行客户端App,提交恢复密钥的请求;
助记词模块请用户按顺序明文输入需要妥善保存的助记词Ph;
业务模块请用户输入身份信息IDu’,重置PIN码,同时业务模块计算设备的唯一标识符UUID,并将Ph、PIN、UUID、IDu’作为参数发送给SDK,请求执行a指令,SDK向业务模块输出Cd1s。业务模块使用密钥派生算法KDFy以PIN码作为输入,生成业务模块的对称密钥keyp2;业务模块使用keyp2对Cd1s进行加密运算,得到密文Cd1y并保存;
SDK模块执行a指令进行运算,得到P1’,并通过安全信道将P1’、IDu’发送给系统服务器Ser。
6.一种基于多方安全计算的电子签名移动客户端设备,其特征在于,该设备包括SDK模块、助记词模块和业务模块,其中;
助记词模块:用于向U显示词组,用户U选择显示的相应词组作为明文助记词字符串Ph;
SDK模块:
初始化单元:初始化SDK,产生并保存一个用于加密和解密对称密钥keys,预设SDK用于非对称签名的SM2椭圆曲线公钥密码算法的椭圆曲线参数G、n;
a指令执行单元:当SDK收到业务模块输入a指令,执行计算:SDK使用密钥派生算法KDFS以Ph为输入参数进行计算,生成第一私钥分量d1∈[1,2,…,n-1];计算公钥第一分量P1使用密钥派生算法KDFs,以PIN为输入参数进行计算,产生对称密钥keyp1;使用Keys、keyp1、UUID对d1进行加密运算En(keys,keyp1,UUID),得到d1的密文Cd1s;SDK向业务模块输出Cd1s;同时,使用安全信道,向协同服务器Ser输出P1、IDu
b指令执行单元:当SDK收到业务模块输入的b指令和文件M的哈希值e,执行计算:SDK随机产生一个安全随机参数k1∈[1,2,…,n-1],计算中间参数Q1=k1G,并将e、Q1通过安全信道发送给协同服务器Ser;
c指令执行单元:当SDK接收到业务模块的c指令、参数PIN、UUID、Cd1s和来自于协调服务器Ser的中间参数r,S2,S3,执行计算:SDK使用密钥派生算法KDFs,以PIN为输入参数进行计算得到keyp1;使用keys、keyp1、UUID对Cd1s进行解密,De(keys,keyp1,UUID),得到d1;计算中间参数S=d1k1S2+d1S3-rmodn;SDK向业务模块输出(r,S);
公钥交付单元:当SDK收到协同服务器Ser发送的完整公钥P,将P交付给业务模块;
业务模块:
设备唯一标识获取单元:业务模块以移动终端的硬件信息为特征,获取设备唯一标识UUID;
身份信息获取单元:当助记词模块产生助记词Ph后,业务模块请用户U提交身份信息IDu,u表示用户编号,并设置PIN码;
a指令发送单元::业务模块调用助记词模块产生Ph,并将Ph、PIN、UUID、IDu和a指令发送至SDK模块处理,同时使用密钥派生算法KDFy以PIN码作为输入,生成业务模块的对称密钥keyp2;
加密单元:业务模块接收到SDK模块输出的Cd1s,使用keyp2对Cd1s进行加密运算En(keyp2,Cd1s)=Cd1y,保存密文Cd1y;
注册完成单元:业务模块收到SDK交付的用户U的完整公钥P后,U的身份注册完成;
b指令发送单元:签名时,业务模块收到用户U提交的待签名文件M之后,计算M的哈希值e=H(M),发送给SDK模块,并发出b指令;
解密单元:业务模块向用户U申请输入PIN码,使用密钥派生算法KDFy,以PIN码为输入,生成对称密钥keyp2,并以keyp2为密钥对保存的Cd1y进行解密,De(keyp2,Cd1y)=Cd1s;
c指令发送单元:业务模块向SDK请求执行c指令,并发送参数PIN、UUID和Cd1s;
签名完成单元:业务模块收到SDK返回的文件M的签名值(r,S),签名流程完成。
7.一种基于多方安全计算的电子签名协同服务器设备处执行的方法,其特征在于,该方法包括以下步骤;
注册步骤
S3.1、协同服务器Ser收到SDK发出的公钥第一分量P1和用户身份信息IDu后,执行如下运算;选取一个随机安全参数作为输入,使用KDFser密钥派生算法生成私钥第二分量d2,d2∈[1,2,…,n-1],n表示椭圆曲线参数;
结合P1和椭圆曲线参数G,进一步计算出完整的公钥;
S3.2、Ser保存P,将P与IDu关联,并通过安全信道将完整公钥P发送给SDK;
签名步骤:
S3.3、Ser收到SDK发来的e、Q1,产生随机安全参数k2,k3,k2∈[1,2,…,n-1],k3∈[1,2,…,n-1],结合Q1,计算中间参数Q2、Q3、r和S2、S3
Q3=k3G+k3Q2=(x,y),x,y是椭圆曲线上的坐标;
r=(e+x)modn,n是椭圆曲线的参数;
S3=d2(r+k3)modn;
S3.4、Ser通过安全信道发送中间参数(r,S2,S3)到SDK。
8.根据权利要求7所述的基于多方安全计算的电子签名协同服务器设备处执行的方法,其特征在于,该方法还包括:
密钥恢复步骤:协同服务器Ser收到SDK模块提交的P1’、IDu’后,与步骤S3.2中保存的P1、IDu进行比对;比对一致,则Ser通过安全信道将之前保存的用户U的完整公钥P发送给SDK,SDK将P交付给业务模块,用户U的密钥恢复完成;比对不一致,则恢复失败。
9.一种基于多方安全计算的电子签名协同服务器设备,其特征在于,该设备包括:
公钥获取单元:当收到SDK发出的公钥第一分量P1和用户身份信息IDu后,用于执行如下运算;选取一个随机安全参数作为输入,使用KDFser密钥派生算法生成私钥第二分量d2,d2∈[1,2,…,n-1],n表示椭圆曲线参数;结合P1和椭圆曲线参数G,进一步计算出完整的公钥;
公钥发送单元:用于保存P,将P与IDu关联,并通过安全信道将完整公钥P发送给SDK;
中间参数获取单元:当收到SDK发来的e、Q1,产生随机安全参数k2,k3,k2∈[1,2,…,n-1],k3∈[1,2,…,n-1],结合Q1,用于计算中间参数Q2、Q3、r和S2、S3
Q3=k3G+k3Q2=(x,y),x,y是椭圆曲线上的坐标;
r=(e+x)modn,n是椭圆曲线的参数;
S3=d2(r+k3)modn;
中间参数发送单元:用于通过安全信道发送中间参数(r,S2,S3)到SDK。
CN201910506529.3A 2019-06-12 2019-06-12 一种基于多方安全计算的电子签名移动客户端与协同服务器通信的方法以及设备 Active CN110224812B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910506529.3A CN110224812B (zh) 2019-06-12 2019-06-12 一种基于多方安全计算的电子签名移动客户端与协同服务器通信的方法以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910506529.3A CN110224812B (zh) 2019-06-12 2019-06-12 一种基于多方安全计算的电子签名移动客户端与协同服务器通信的方法以及设备

Publications (2)

Publication Number Publication Date
CN110224812A true CN110224812A (zh) 2019-09-10
CN110224812B CN110224812B (zh) 2023-03-14

Family

ID=67816660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910506529.3A Active CN110224812B (zh) 2019-06-12 2019-06-12 一种基于多方安全计算的电子签名移动客户端与协同服务器通信的方法以及设备

Country Status (1)

Country Link
CN (1) CN110224812B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110752924A (zh) * 2019-10-30 2020-02-04 四川长虹电器股份有限公司 一种基于安全多方计算的密钥安全管理方法
CN110839026A (zh) * 2019-11-12 2020-02-25 深圳市网心科技有限公司 基于区块链的数据处理方法及相关设备
CN110932851A (zh) * 2019-11-29 2020-03-27 四川省数字证书认证管理中心有限公司 一种基于pki的多方协同运算的密钥保护方法
CN111045797A (zh) * 2019-10-31 2020-04-21 华控清交信息科技(北京)有限公司 任务调度执行方法、相关装置和介质
CN111817857A (zh) * 2020-07-03 2020-10-23 江苏慧世联网络科技有限公司 一种基于电子公证和sm2协同签名的电子文件签署方法及其所采用的服务器
CN112131610A (zh) * 2020-09-07 2020-12-25 百望股份有限公司 一种版式文件数字签名方法及电子设备
CN112311549A (zh) * 2020-03-26 2021-02-02 神州融安科技(北京)有限公司 生成或协助签名方法、装置、系统、电子设备及存储介质
CN113259095A (zh) * 2021-04-27 2021-08-13 博雅中科(北京)信息技术有限公司 协同公钥生成方法、多方协同签名方法和系统
CN115314205A (zh) * 2022-10-11 2022-11-08 中安网脉(北京)技术股份有限公司 一种基于密钥分割的协同签名系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160065370A1 (en) * 2014-08-29 2016-03-03 Eric Le Saint Methods for secure cryptogram generation
CN107124274A (zh) * 2017-05-18 2017-09-01 深圳奥联信息安全技术有限公司 基于sm2的数字签名方法和装置
CN109246129A (zh) * 2018-10-12 2019-01-18 天津赢达信科技有限公司 一种可验证客户端身份的sm2协同签名方法及系统
CN109672539A (zh) * 2019-03-01 2019-04-23 深圳市电子商务安全证书管理有限公司 Sm2算法协同签名及解密方法、装置及系统
CN109756343A (zh) * 2019-01-31 2019-05-14 平安科技(深圳)有限公司 数字签名的认证方法、装置、计算机设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160065370A1 (en) * 2014-08-29 2016-03-03 Eric Le Saint Methods for secure cryptogram generation
CN107124274A (zh) * 2017-05-18 2017-09-01 深圳奥联信息安全技术有限公司 基于sm2的数字签名方法和装置
CN109246129A (zh) * 2018-10-12 2019-01-18 天津赢达信科技有限公司 一种可验证客户端身份的sm2协同签名方法及系统
CN109756343A (zh) * 2019-01-31 2019-05-14 平安科技(深圳)有限公司 数字签名的认证方法、装置、计算机设备和存储介质
CN109672539A (zh) * 2019-03-01 2019-04-23 深圳市电子商务安全证书管理有限公司 Sm2算法协同签名及解密方法、装置及系统

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110752924A (zh) * 2019-10-30 2020-02-04 四川长虹电器股份有限公司 一种基于安全多方计算的密钥安全管理方法
CN111045797A (zh) * 2019-10-31 2020-04-21 华控清交信息科技(北京)有限公司 任务调度执行方法、相关装置和介质
CN110839026A (zh) * 2019-11-12 2020-02-25 深圳市网心科技有限公司 基于区块链的数据处理方法及相关设备
CN110839026B (zh) * 2019-11-12 2022-04-01 深圳市迅雷网络技术有限公司 基于区块链的数据处理方法及相关设备
CN110932851A (zh) * 2019-11-29 2020-03-27 四川省数字证书认证管理中心有限公司 一种基于pki的多方协同运算的密钥保护方法
CN110932851B (zh) * 2019-11-29 2022-09-23 四川省数字证书认证管理中心有限公司 一种基于pki的多方协同运算的密钥保护方法
CN112311549A (zh) * 2020-03-26 2021-02-02 神州融安科技(北京)有限公司 生成或协助签名方法、装置、系统、电子设备及存储介质
CN111817857B (zh) * 2020-07-03 2022-08-30 江苏慧世联网络科技有限公司 一种基于电子公证和sm2协同签名的电子文件签署方法及其所采用的服务器
CN111817857A (zh) * 2020-07-03 2020-10-23 江苏慧世联网络科技有限公司 一种基于电子公证和sm2协同签名的电子文件签署方法及其所采用的服务器
CN112131610A (zh) * 2020-09-07 2020-12-25 百望股份有限公司 一种版式文件数字签名方法及电子设备
CN113259095A (zh) * 2021-04-27 2021-08-13 博雅中科(北京)信息技术有限公司 协同公钥生成方法、多方协同签名方法和系统
CN113259095B (zh) * 2021-04-27 2022-12-20 博雅中科(北京)信息技术有限公司 协同公钥生成方法、多方协同签名方法和系统
CN115314205A (zh) * 2022-10-11 2022-11-08 中安网脉(北京)技术股份有限公司 一种基于密钥分割的协同签名系统及方法
CN115314205B (zh) * 2022-10-11 2023-01-03 中安网脉(北京)技术股份有限公司 一种基于密钥分割的协同签名系统及方法

Also Published As

Publication number Publication date
CN110224812B (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
CN110224812A (zh) 一种基于多方安全计算的电子签名移动客户端与协同服务器通信的方法以及设备
US10499243B2 (en) Authentication of phone caller identity
US8930704B2 (en) Digital signature method and system
Chen et al. Mobile device integration of a fingerprint biometric remote authentication scheme
EP3319292A1 (en) Method for checking security based on biological features, client and server
AU2013101034A4 (en) Registration and authentication of computing devices using a digital skeleton key
US20160080157A1 (en) Network authentication method for secure electronic transactions
CN108347419A (zh) 数据传输方法和装置
US10826711B2 (en) Public key infrastructure and method of distribution
CN110971411B (zh) 一种基于sotp技术对私钥乘加密的sm2同态签名方法
CN109756893A (zh) 一种基于混沌映射的群智感知物联网匿名用户认证方法
CN109347626B (zh) 一种具有反跟踪特性的安全身份认证方法
CN109040060B (zh) 终端匹配方法和系统、计算机设备
KR102157695B1 (ko) 익명 디지털 아이덴티티 수립 방법
CN110572392A (zh) 一种基于Hyperledger网络的身份认证方法
US20030097559A1 (en) Qualification authentication method using variable authentication information
CN113545004A (zh) 具有减少攻击面的认证系统
CN115150072A (zh) 云网签发认证方法、设备、装置及存储介质
CN114692120B (zh) 国密认证方法、虚拟机、终端设备、系统及存储介质
CN108512832A (zh) 一种针对OpenStack身份认证的安全增强方法
CN114282254A (zh) 加密、解密方法及装置、电子设备
CN115277074B (zh) 一种加密和解密方法、装置、设备和存储介质
CN115396085B (zh) 基于生物特征和第三密钥的协商认证方法及设备
Barman et al. Cryptanalysis and improvement of three-factor-based confidentiality-preserving remote user authentication scheme in multi-server environment
Choudhury et al. Cryptanalysis of ‘A novel user-participating authentication scheme’

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