CN110971411A - 一种基于sotp技术对私钥乘加密的sm2同态签名方法 - Google Patents

一种基于sotp技术对私钥乘加密的sm2同态签名方法 Download PDF

Info

Publication number
CN110971411A
CN110971411A CN201911212116.0A CN201911212116A CN110971411A CN 110971411 A CN110971411 A CN 110971411A CN 201911212116 A CN201911212116 A CN 201911212116A CN 110971411 A CN110971411 A CN 110971411A
Authority
CN
China
Prior art keywords
signature
private key
client
sotp
user
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
CN201911212116.0A
Other languages
English (en)
Other versions
CN110971411B (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.)
Nanjing One Identity Express Information Technology Co ltd
Original Assignee
Nanjing One Identity Express Information 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 Nanjing One Identity Express Information Technology Co ltd filed Critical Nanjing One Identity Express Information Technology Co ltd
Priority to CN201911212116.0A priority Critical patent/CN110971411B/zh
Publication of CN110971411A publication Critical patent/CN110971411A/zh
Application granted granted Critical
Publication of CN110971411B publication Critical patent/CN110971411B/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于SOTP技术对私钥乘加密的SM2同态签名方法,用户的私钥使用基于模乘加密后保存在客户端,客户端可周期性的对私钥做模乘加密更新私钥密文,签名时无需解密私钥密文,可直接使用密文私钥进行签名;客户端做签名操作时使用最新的签名私钥密文做签名运算。验证签名的时候验签服务中心接收用户uid,签名私钥密文生成时的时间戳T、公钥证书、签名值、签名数据。使用SOTP算法恢复出对应用户私钥模乘加密时用到的乱数u,用该乱数与原始公钥做倍点计算得到验签公钥,用验签公钥来验证签名是否合法。本发明中,私钥保护可实质性融合诸如口令之类的基于记忆的简单防护措施,以增强抗设备盗用之类攻击的能力,有比较好的可移植性。

Description

一种基于SOTP技术对私钥乘加密的SM2同态签名方法
技术领域
本发明属于信息安全、数据业务领域,具体而言,本发明涉及一种基于SOTP技术对私钥乘加密的SM2同态签名方法。
背景技术
现有的SM2私钥保护的方法:
不存储签名私钥原文,存储私钥和预先生成乱数的混合结果,使用存储的私钥模乘结果来生成签名。例如公开号为CN201810133887.X的发明专利公开了一种SM2白盒密码实现方法,该专利提出了私钥加密存储的方案,但没有解决存储的密文私钥被盗用后的防止伪造签名的问题。
现有技术方案分析:
现有SM2私钥保护方案通过不存储签名私钥原文,签名时使用存储的中间私钥直接计算,按照自定义流程验证签名,存在如下问题:
存在问题一:改变了标准SM2签名流程步骤和签名验证步骤,和SM2标准算法不兼容。
存在问题二:第三方攻击者获取到了存储的私钥中间结果,运用方案中的签名流程可以生成任意合法签名。
发明内容
针对现有技术中存在的问题,本发明提出一种基于SOTP技术对私钥乘加密的SM2同态签名方法,SOTP算法保证不同用户其加解密算法不同。它依据数学原理将密码算法与用户密钥有机融合,利用用户密钥对原本共同的算法进行重构,使得不同用户使用不同加解密算法,用户密钥融合在自己的算法中,可以有效的解决上述问题。
为了实现上述发明目的,本发明采用的技术方案是:一种基于SOTP技术对私钥乘加密的SM2同态签名方法,具体步骤为:
步骤一、用户在使用初期,必须在安全环境下向服务器进行注册,以完成初始化操作;客户端U提供用户标识uid,用户口令特征P,设备识别码M;服务器为U产生一个随机密钥—用户密钥k,将k注入SOTP算法发生器E,生成一个与密钥k相关的加密函数Sk;服务器存储E、k、uid和M、P,用户U下载Sk;服务器每次生成的函数Sk都不相同,动态变化,保证每个用户下载Sk算法各不相同;
步骤二、客户端进行身份认证;
步骤三、基于动态可重构的密码体制SOTP、时间戳,融合用户口令,计算出一个乱数u,使用u对原来存储的私钥密文做模乘加密,然后用SOTP算法根据上一次加密的时间戳恢复出上次加密乱数u`,模乘u`模n的逆元得到新的私钥密文dA;
步骤四、基于SM2算法,定义椭圆曲线C,基点G,阶为素数n,
用户私钥:dA∈[1,n-1]是一个大整数,客户端只保存和使用加密后的私钥d'A,其中d'A=u.dA,u由客户端使用可重构的密码体制SOTP、时间戳,融合用户口令得到;
原始公钥:PA=[dA]G;
使用d'A用SM2标准签名流程步骤生成签名值;
服务中心使用u和原始公钥的倍点计算结果[u]PA作为验签公钥来验证签名;
步骤五、服务中心接受签名验证请求,包括签名证书、签名值、签名私钥密文生成时的时间戳T和签名数据;用户uid包含在证书主题项中,根据用户uid、签名私钥密文生成时的时间戳T和用户注册时记录的信息恢复出用户SOTP算法代码S,使用算法代码S,根据签名私钥密文生成时的时间戳T,融合用户口令计算出签名时的私钥保护因子乱数u,使用u点倍乘证书中的公钥得到验签公钥[u]PA,用验签公钥按照SM2标准流程进行签名验证。
用户的私钥使用基于模乘加密后保存在客户端,客户端可周期性的对私钥做模乘加密更新私钥密文,签名时无需解密私钥密文,可直接使用密文私钥进行签名;可选的,需要增强安全性时,客户端可在每次签名操作前对私钥密文进行更新。客户端做签名操作时使用最新的签名私钥密文做签名运算。验证签名的时候验签服务中心接收用户uid,签名私钥密文生成时的时间戳T、公钥证书、签名值、签名数据。使用SOTP算法恢复出对应用户私钥模乘加密时用到的乱数u,用该乱数与原始公钥做倍点计算得到验签公钥,用验签公钥来验证签名是否合法。可选的,需要增强安全性时,客户端可在签名时使用SOTP算法通过服务中心认证后,保存签名原文摘要和签名私钥密文生成时的时间戳T到服务中心;服务中心验证时查找待验证的签名数据摘要是否有记录,如没有记录则判断签名为非法签名。
基于乘法加密保护签名私钥的原理为,基于动态可重构的密码体制SOTP、时间戳,融合用户口令,计算出一个乱数u,使用u对私钥做模乘加密,加密过程中先使用u模乘原私钥密文,再模乘上一次的加密乱数逆元得到新的私钥密文,整个过程中私钥明文不出现。
客户端保存最近生成的私钥模乘密文和时间戳,签名直接使用私钥密文计算,任何时候私钥明文不会出现;可根据安全等级要求设置不同的私钥密文更新周期,对用户私钥进行不断变化的加密保存,避免用户私钥的直接泄露。不断变化的加密保存也使得攻击者即使非法获取了加密私钥也会很快过时失效。
客户端和服务中心的认证和协商乱数算法使用SOTP算法,保证不同用户拥有的算法不同。在用户端初次注册到系统中的时候,系统根据用户的名称、客户端设备标识码、用户口令特征值生成对应的算法代码S。认证的时候用此加密代码处理一个输入发送给对方,对方使用自己对应的代码段处理同样的输入,根据处理结果是否相同判断认证是否通过。用算法代码S处理一个约定输入的结果可作为协商的共同的乱数数据使用。
整个签名过程私钥密文只在客户端出现,服务中心没有私钥的任何信息。
本发明同时公开了一种实现上述基于SOTP技术对私钥乘加密的SM2同态签名方法的系统,包括:签名方和验证方,其中:签名方包含用于保存签名参数的存储模块以及用于签名的计算模块;验证方包含用于保存验证参数的存储模块和用于验证签名的计算模块。
与现有技术相比,本发明的有益效果:
1、本发明中的私钥加密保存,并且这种加密是动态的、可变的,可根据系统安全等级要求改变加密乱数的更新周期。增强没有安全硬件存贮私钥和没有硬件完成解密运算的抗攻击能力。
2、本发明中,私钥保护可实质性融合诸如口令之类的基于记忆的简单防护措施,以增强抗设备盗用之类攻击的能力。
3、本发明中,签名和验签算法保持SM2标准一致,有比较好的兼容性和可移植性。
附图说明
图1是本发明实施例的私钥密文加密流程图。
图2本发明实施例的客户端签名流程流程图。
图3是本发明实施例的服务中心验证签名第一流程图。
图4是本发明实施例的保存签名摘要到服务中心的客户端签名流程图。
图5是本发明实施例的服务中心保存签名摘要流程图。
图6是本发明实施例的服务中心验证签名第二流程图。
图7是本发明实施例的乱数生成示意图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。
SOTP算法保证不同用户其加解密算法不同。它依据数学原理将密码算法与用户密钥有机融合,利用用户密钥对原本共同的算法进行重构,使得不同用户使用不同加解密算法,用户密钥融合在自己的算法中。
注册过程
用户在使用初期,必须在安全环境下向服务器进行注册,以完成初始化操作。客户端U提供用户标识uid,用户口令特征P,设备识别码M;服务器为U产生一个随机密钥—用户密钥k,将k注入SOTP算法发生器E,生成一个与密钥k相关的加密函数Sk。服务器存储E、k、uid和M、P,用户U下载Sk。服务器每次生成的函数Sk都不相同,动态变化,保证每个用户下载Sk算法各不相同。
认证过程
(1)客户端身份认证请求:发送用户标识uid|时间T,,T>上次通联时间;
(2)服务端响应:回发随机数R;
(3)客户端身份认证:计算并发送S(S(S(R)+P)+M);
(4)服务端验证:服务端对客户端消息解密,获得R,与发过去的R比对,如果相同,则认证通过,否则,认证失败;
(5)服务端身份认证:计算并发送S(S(S(T)+P)+M);
(6)客户端验证:客户端计算S(S(S(T)+P)+M),与服务器端发来结果进行对比,如果相同,则认证通过,否则,认证失败;认证通过后单独计算S(S(S(T)+uid)+P)作为本次协商的乱数u。
乘法加密私钥原理过程
基于动态可重构的密码体制SOTP、时间戳,融合用户口令,计算出一个乱数u,使用u对原来存储的私钥密文做模乘加密,然后用SOTP算法根据上一次加密的时间戳恢复出上次加密乱数u`,模乘u`模n的逆元得到新的私钥密文。(私钥dA∈[1,n-1]是一个大整数,模乘加密时原来私钥密文为d`A=u`dA,其中u`为上次模乘加密时使用的乱数,使用SOTP算法恢复出u`并计算模n的逆元u`-1,计算(u`-1.u.d`A)模n即得到新的私钥密文u.dA,其中n为SM2椭圆曲线基点G的阶)。
计算正确性证明:
u`-1.u.d`A=u`-1.u.u`.dA=u.(u`-1.u`).dA=u.dA。
加密流程如图1所示,整个加密过程中,私钥明文没有出现,使用了上一次加密乱数的逆元,为了恢复上一次加密乱数,需要用到上一次加密的时间戳。每次加密后,客户端保存最新的私钥密文,另外客户端需要保存本次加密的时间戳留作后续加密时恢复加密乱数使用。
本实施例的基于STOP技术对私钥乘加密的SM2同态签名方法,用户的私钥使用基于模乘加密后保存在客户端,客户端可周期性的对私钥做模乘加密更新私钥密文,签名时无需解密私钥密文,可直接使用密文私钥进行签名;可选的,需要增强安全性时,客户端可在每次签名操作前对私钥密文进行更新。客户端做签名操作时使用最新的签名私钥密文做签名运算。验证签名的时候验签服务中心接收用户uid,签名私钥密文生成时的时间戳T、公钥证书、签名值、签名数据。使用SOTP算法恢复出对应用户私钥模乘加密时用到的乱数u,用该乱数与原始公钥做倍点计算得到验签公钥,用验签公钥来验证签名是否合法。可选的,需要增强安全性时,客户端可在签名时使用SOTP算法通过服务中心认证后,保存签名原文摘要和签名私钥密文生成时的时间戳T到服务中心;服务中心验证时查找待验证的签名数据摘要是否有记录,如没有记录则判断签名为非法签名。
基于乘法加密保护签名私钥的原理为,基于动态可重构的密码体制SOTP、时间戳,融合用户口令,计算出一个乱数u,使用u对私钥做模乘加密,加密过程中先使用u模乘原私钥密文,再模乘上一次的加密乱数逆元得到新的私钥密文,整个过程中私钥明文不出现。
客户端保存最近生成的私钥模乘密文和时间戳,签名直接使用私钥密文计算,任何时候私钥明文不会出现;可根据安全等级要求设置不同的私钥密文更新周期,对用户私钥进行不断变化的加密保存,避免用户私钥的直接泄露。不断变化的加密保存也使得攻击者即使非法获取了加密私钥也会很快过时失效。
客户端和服务中心的认证和协商乱数算法使用SOTP算法,保证不同用户拥有的算法不同。在用户端初次注册到系统中的时候,系统根据用户的名称、客户端设备标识码、用户口令特征值生成对应的算法代码S。认证的时候用此加密代码处理一个输入发送给对方,对方使用自己对应的代码段处理同样的输入,根据处理结果是否相同判断认证是否通过。用算法代码S处理一个约定输入的结果可作为协商的共同的乱数数据使用。
整个签名过程私钥密文只在客户端出现,服务中心没有私钥的任何信息。
本实施例的基于STOP技术对私钥乘加密的SM2同态签名方法,其基于SM2算法,定义椭圆曲线C,基点G,阶为素数n。
用户私钥:dA∈[1,n-1]是一个大整数,客户端只保存和使用加密后的私钥d'A,其中d'A=u.dA,u由客户端使用可重构的密码体制SOTP、时间戳,融合用户口令得到。
原始公钥:PA=[dA]G。
使用d'A用SM2标准签名流程步骤生成签名值。
服务中心使用u和原始公钥的倍点计算结果[u]PA作为验签公钥来验证签名。
客户端签名流程如图2所示,客户端直接使用私钥密文进行签名运算,保存签名值和私钥密文生成时的时间戳T,服务中心进行签名验证时需要使用。
服务中心验证签名流程如图3所示,服务中心接受签名验证请求,包括签名证书、签名值、签名私钥密文生成时的时间戳T和签名数据。用户uid可包含在证书主题项中,根据用户uid、签名私钥密文生成时的时间戳T和用户注册时记录的信息恢复出用户SOTP算法代码S,使用算法代码S,根据签名私钥密文生成时的时间戳T,融合用户口令计算出签名时的私钥保护因子乱数u,使用u点倍乘证书中的公钥得到验签公钥[u]PA,用验签公钥按照SM2标准流程进行签名验证。
可选择安全增强的实现方案:根据安全等级要求,需要增强安全性时,可实现为签名时客户端必须通过服务中心的认证,保存签名数据的杂凑值和签名私钥密文生成时的时间戳T到服务中心,服务中心对没有通过认证的客户端的数据不予记录;签名验证时服务中心先查找是否有匹配签名数据杂凑值的记录,没有找到记录则判断为非法签名。
保存签名摘要到服务中心的客户端签名流程如图4所示,客户端签名前先使用SOTP算法和服务中心互相进行身份认证,同时将签名私钥密文生成时的时间戳T和待签名数据摘要值m保存至服务中心。(可选择认证通过后生成本次私钥保护因子乱数u,使用u对原来保存的签名私钥密文进行模乘运算得到新私钥密文);使用最新私钥密文进行签名运算,保存签名私钥密文生成时的时间戳T和签名值。签名验证的时候服务中心需要签名值对应的时间戳来恢复出保护因子乱数用来计算验签公钥。
服务中心保存签名摘要的流程如图5所示,服务中心使用SOTP算法对客户端进行认证,认证通过后保存本次签名用到的签名私钥密文生成时的时间戳T和待签名原文摘要值m到用户uid对应的记录中。没有通过认证则不保存T和m。认证用户身份除了上述SOTP外,还可以是其他如人像比对,短信验证等方式。签名验证时,只有在服务中心用户签名记录中存在的摘要值和时间戳才进行验证,否则直接判断签名非法。
服务中心验证签名流程如图6所示,服务中心接受签名验证请求,包括签名证书、签名值、签名私钥密文生成时的时间戳T和签名数据。用户uid可包含在证书主题项中,首先根据uid和签名私钥密文生成时的时间戳T查找签名杂凑值记录是否存在,不存在则判断签名非法。存在则根据用户uid、签名私钥密文生成时的时间戳T和用户注册时记录的信息恢复出用户SOTP算法代码S,使用算法代码S,根据签名私钥密文生成时的时间戳T,融合用户口令计算签名时的私钥保护因子乱数序u,使用u点倍乘证书中的公钥得到验签公钥[u]PA,用验签公钥按照SM2标准流程进行签名验证。
基于SOTP乘法保护签名私钥,签名,验证实施例:
1、客户端用户私钥dA:
446A82FDDBB1035945126A61186914EEBA63C5DE3EFE6264D5135032C6AF062C;
公钥PA:
04049D300EE23B874A7566E30028C64702743A3806F56D5B6D2BF889A0FD9EE7869E73ECFBE4D7B3EFE59EF1559EC9B4241BF7127A47B0C635A014E2A9C206B7E4;
2、客户端签名过程:
时间戳T:1577807999
客户端和服务中心验证后协商出乘法加密保护因子乱数u:
A4D528F4D6493F4B114AA9251EACC59DC498E792F957754CC99CCFFC33503FAA;
使用乱数u对用户私钥dA乘法加密后得到udA:
E7D685AD9D8AFE37AB21BB80B4685DAA95840ED81A0D6A9C7A5AC1354ACC4C07;
待签名原文杂凑值m为:
C3918C3903209181097C2B75207C49D69C23F0D35F5B220810AEF860E281A032;
使用udA对m进行SM2签名得到签名值sig为:304502204542EF51AED0B2648297726A1834C7D7733E0E3FAD502CE4151DF5ADAB972E2E022100B70720CAC5A6426A07AEA2B78ABEB17E530B5301208F3486553B0DED58A07CBD。
3、服务中心验证签名过程:
3.1接收验证请求,用户uid,时间戳T,签名值sig,公钥证书,原文杂凑值m;查找m和T是否存在于用户签名记录中
3.2根据用户uid生成SOTP代码S,使用SOTP算法S(S(T)+uid)得到密钥模乘保护因子乱数u:
A4D528F4D6493F4B114AA9251EACC59DC498E792F957754CC99CCFFC33503FAA
3.3使用乱数u点乘公钥得到验签公钥[u]PA:
045EA0341AE9C131EC426120BD9BD1BE6C2310214C4F64859FE91709A9657BE70705FB69118B696364CB70792D39D5EB668C36540246383752AFF034574B9B4B11
3.4使用上一步得到的验签公钥验证签名值通过。
本实施例的乱数U生成如图7所示。
本发明使用SOTP算法来生成私钥保护乱数,SOTP算法是现有的密码算法方案,也可使用其他类似算法替换使用。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明的权利要求书的保护范围之内。本发明未涉及的技术均可通过现有技术加以实现。

Claims (13)

1.一种基于SOTP技术对私钥乘加密的SM2同态签名方法,其特征在于:
用户的私钥使用基于模乘加密后保存在客户端,客户端可周期性的对私钥做模乘加密更新私钥密文,签名时无需解密私钥密文,直接使用密文私钥进行签名;
客户端做签名操作时使用最新的签名私钥密文做签名运算;验证签名的时候验签服务中心接收用户uid,签名私钥密文生成时的时间戳T、公钥证书、签名值、签名数据;使用SOTP算法恢复出对应用户私钥模乘加密时用到的乱数u,用该乱数与原始公钥做倍点计算得到验签公钥,用验签公钥来验证签名是否合法。
2.根据权利要求1所述的基于SOTP技术对私钥乘加密的SM2同态签名方法,其特征在于:
客户端在每次签名操作前对私钥密文进行更新;客户端保存最近生成的私钥模乘密文和时间戳,签名直接使用私钥密文计算,任何时候私钥明文不会出现;
客户端在签名时使用SOTP算法通过服务中心认证后,保存签名原文摘要和签名私钥密文生成时的时间戳T到服务中心;服务中心验证时查找待验证的签名数据摘要是否有记录,如没有记录则判断签名为非法签名。
3.根据权利要求1所述的基于SOTP技术对私钥乘加密的SM2同态签名方法,其特征在于:
客户端和服务中心的认证和协商乱数算法使用的SOTP算法,在用户端初次注册到系统中的时候,系统根据用户的名称、客户端设备标识码、用户口令特征值生成对应的算法代码S;认证的时候用此加密代码处理一个输入发送给对方,对方使用自己对应的代码段处理同样的输入,根据处理结果是否相同判断认证是否通过;用算法代码S处理一个约定输入的结果可作为协商的共同的乱数数据使用。
4.根据权利要求1至3之一所述的基于SOTP技术对私钥乘加密的SM2同态签名方法,其特征在于,具体步骤为:
步骤一、用户在使用初期,必须在安全环境下向服务器进行注册,以完成初始化操作;客户端U提供用户标识uid,用户口令特征P,设备识别码M;服务器为U产生一个随机密钥—用户密钥k,将k注入SOTP算法发生器E,生成一个与密钥k相关的加密函数Sk;服务器存储E、k、uid和M、P,用户U下载Sk;服务器每次生成的函数Sk都不相同,动态变化,保证每个用户下载Sk算法各不相同;
步骤二、客户端进行身份认证;
客户端和服务中心进行身份认证后,保存签名原文摘要和签名私钥密文生成时的时间戳T到服务中心,服务中心对通过认证的客户端数据进行记录,认证失败的不予记录;
步骤三、基于动态可重构的密码体制SOTP、时间戳,融合用户口令,计算出一个乱数u,使用u对原来存储的私钥密文做模乘加密,然后用SOTP算法根据上一次加密的时间戳恢复出上次加密乱数u`,模乘u`模n的逆元得到新的私钥密文u.dA;
基于SM2算法,定义椭圆曲线C,基点G,阶为素数n,
用户私钥:dA∈[1,n-1]是一个大整数,客户端只保存和使用加密后的私钥d'A,其中d'A=u.dA,u由客户端使用可重构的密码体制SOTP、时间戳,融合用户口令得到;
原始公钥:PA=[dA]G;
使用d'A用SM2标准签名流程步骤生成签名值;
服务中心使用u和原始公钥的倍点计算结果[u]PA作为验签公钥来验证签名;
步骤四、客户端直接使用私钥密文进行签名运算,在客户端保存签名值和私钥密文生成时的时间戳T;
步骤五、服务中心接受签名验证请求,包括签名证书、签名值、签名私钥密文生成时的时间戳T和签名数据;用户uid包含在证书主题项中,根据用户uid、签名私钥密文生成时的时间戳T和用户注册时记录的信息恢复出用户SOTP算法代码S,使用算法代码S,根据签名私钥密文生成时的时间戳T,融合用户口令计算出签名时的私钥保护因子乱数u,使用u点倍乘证书中的公钥得到验签公钥[u]PA,用验签公钥按照SM2标准流程进行签名验证。
5.根据权利要求1至3之一所述的基于SOTP技术对私钥乘加密的SM2同态签名方法,其特征在于,服务端验证签名具体步骤为:
步骤1、服务中心接受签名验证请求,包括签名证书、签名值、签名私钥密文生成时的时间戳T和签名数据;用户uid包含在证书主题项中,根据用户uid、签名私钥密文生成时的时间戳T和用户注册时记录的信息恢复出用户SOTP算法代码S,使用算法代码S;
步骤2、根据签名私钥密文生成时的时间戳T,融合用户口令计算出签名时的私钥保护因子乱数u,使用u点倍乘证书中的公钥得到验签公钥[u]PA;
步骤3、用验签公钥按照SM2标准流程进行签名验证。
6.根据权利要求4所述的基于SOTP技术对私钥乘加密的SM2同态签名方法,其特征在于,所述步骤一中:
接受验签签名验证请求,包括签名证书、签名值、签名私钥密文生成时的时间戳T 和签名数据,在配置了服务中心保存签名数据的杂凑值和签名私钥密文生成时的时间戳T时,只有在服务中心用户签名记录中存在的摘要值和时间戳才进行验证,否则直接判断签名非法。
7.根据权利要求4所述的基于SOTP技术对私钥乘加密的SM2同态签名方法,其特征在于,所述步骤二具体包括:
步骤2-1、客户端身份认证请求:发送用户标识uid|时间T,,T>上次通联时间;
步骤2-2、服务端响应:回发随机数R;
步骤2-3、客户端身份认证:计算并发送S(S(S(R)+P)+M);
步骤2-4、服务端验证:服务端对客户端消息解密,获得R,与发过去的R比对,如果相同,则认证通过,否则,认证失败;
步骤2-5、服务端身份认证:计算并发送S(S(S(T)+P)+M);
步骤2-6、客户端验证:客户端计算S(S(S(T)+P)+M),与服务器端发来结果进行对比,如果相同,则认证通过,否则,认证失败;认证通过后单独计算S(S(S(T)+uid)+P)作为本次协商的乱数u。
8.根据权利要求4所述的一种基于SOTP技术对私钥乘加密的SM2同态签名方法,其特征在于,所述步骤三中:
私钥dA∈[1,n-1]是一个大整数,模乘加密时原来私钥密文为d`A=u`dA,其中u`为上次模乘加密时使用的乱数,使用SOTP算法恢复出u`并计算模n的逆元u`-1,计算(u`-1.u.d`A)模n即得到新的私钥密文u.dA,其中n为SM2椭圆曲线基点G的阶;
计算正确性证明:
u`-1.u.d`A=u`-1.u.u`.dA=u.(u`-1.u`).dA=u.dA。
9.根据权利要求4所述的基于SOTP技术对私钥乘加密的SM2同态签名方法,其特征在于,所述步骤四中:
客户端直接使用私钥密文进行签名运算,保存签名值和私钥密文生成时的时间戳T。
10.根据权利要求4所述的基于SOTP技术对私钥乘加密的SM2同态签名方法,其特征在于,所述步骤五中:
客户端签名前先使用SOTP算法和服务中心互相进行身份认证,同时将签名私钥密文生成时的时间戳T和待签名数据摘要值m保存至服务中心;使用最新私钥密文进行签名运算,保存签名私钥密文生成时的时间戳T和签名值;签名验证的时候服务中心需要签名值对应的时间戳来恢复出保护因子乱数用来计算验签公钥。
11.根据权利要求4所述的基于SOTP技术对私钥乘加密的SM2同态签名方法,其特征在于:根据安全等级要求,需要增强安全性时,可实现为签名时客户端必须通过服务中心的认证,保存签名数据的杂凑值和签名私钥密文生成时的时间戳T到服务中心,服务中心对没有通过认证的客户端的数据不予记录;签名验证时服务中心先查找是否有匹配签名数据杂凑值的记录,没有找到记录则判断为非法签名。
12.根据权利要求4所述的基于SOTP技术对私钥乘加密的SM2同态签名方法,其特征在于:服务中心使用SOTP算法对客户端进行认证,认证通过后保存本次签名用到的签名私钥密文生成时的时间戳T和待签名原文摘要值m到用户uid对应的记录中;没有通过认证则不保存T和m;签名验证时,只有在服务中心用户签名记录中存在的摘要值和时间戳才进行验证,否则直接判断签名非法。
13.一种实现权利要求1至12任一所述方法的系统,其特征在于,包括:签名方和验证方,其中:签名方包含用于保存签名参数的存储模块以及用于签名的计算模块;验证方包含用于保存验证参数的存储模块和用于验证签名的计算模块。
CN201911212116.0A 2019-12-02 2019-12-02 一种基于sotp技术对私钥乘加密的sm2同态签名方法 Active CN110971411B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911212116.0A CN110971411B (zh) 2019-12-02 2019-12-02 一种基于sotp技术对私钥乘加密的sm2同态签名方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911212116.0A CN110971411B (zh) 2019-12-02 2019-12-02 一种基于sotp技术对私钥乘加密的sm2同态签名方法

Publications (2)

Publication Number Publication Date
CN110971411A true CN110971411A (zh) 2020-04-07
CN110971411B CN110971411B (zh) 2022-07-12

Family

ID=70032566

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911212116.0A Active CN110971411B (zh) 2019-12-02 2019-12-02 一种基于sotp技术对私钥乘加密的sm2同态签名方法

Country Status (1)

Country Link
CN (1) CN110971411B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111614467A (zh) * 2020-04-29 2020-09-01 深圳奇迹智慧网络有限公司 系统后门防御方法、装置、计算机设备和存储介质
CN111988147A (zh) * 2020-08-20 2020-11-24 上海万向区块链股份公司 组合签名及验证签名方法、系统及存储介质
CN113472793A (zh) * 2021-07-01 2021-10-01 中易通科技股份有限公司 一种基于硬件密码设备的个人数据保护系统
CN113573304A (zh) * 2020-04-28 2021-10-29 刘琦 签名实现、验签方法以及签名终端、验签终端和存储介质
CN114499871A (zh) * 2021-12-23 2022-05-13 成都卫士通信息产业股份有限公司 一种签名加密方法、装置、系统及计算机可读存储介质
CN114978549A (zh) * 2022-05-25 2022-08-30 武汉理工大学 签名者掌控签名制作数据的sm2数字签名生成方法及系统
CN117786734B (zh) * 2023-11-16 2024-06-04 人力资源和社会保障部人事考试中心 考生个人敏感信息防泄漏的方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105049400A (zh) * 2014-03-19 2015-11-11 恩智浦有限公司 在白盒实现方案中拆分s盒以防止攻击
US9231925B1 (en) * 2014-09-16 2016-01-05 Keypasco Ab Network authentication method for secure electronic transactions
CN105323062A (zh) * 2014-06-03 2016-02-10 北京收付宝科技有限公司 移动终端数字证书电子签名方法
CN109672539A (zh) * 2019-03-01 2019-04-23 深圳市电子商务安全证书管理有限公司 Sm2算法协同签名及解密方法、装置及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105049400A (zh) * 2014-03-19 2015-11-11 恩智浦有限公司 在白盒实现方案中拆分s盒以防止攻击
CN105323062A (zh) * 2014-06-03 2016-02-10 北京收付宝科技有限公司 移动终端数字证书电子签名方法
US9231925B1 (en) * 2014-09-16 2016-01-05 Keypasco Ab Network authentication method for secure electronic transactions
CN109672539A (zh) * 2019-03-01 2019-04-23 深圳市电子商务安全证书管理有限公司 Sm2算法协同签名及解密方法、装置及系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113573304A (zh) * 2020-04-28 2021-10-29 刘琦 签名实现、验签方法以及签名终端、验签终端和存储介质
CN111614467A (zh) * 2020-04-29 2020-09-01 深圳奇迹智慧网络有限公司 系统后门防御方法、装置、计算机设备和存储介质
CN111614467B (zh) * 2020-04-29 2022-08-19 深圳奇迹智慧网络有限公司 系统后门防御方法、装置、计算机设备和存储介质
CN111988147A (zh) * 2020-08-20 2020-11-24 上海万向区块链股份公司 组合签名及验证签名方法、系统及存储介质
CN111988147B (zh) * 2020-08-20 2022-06-03 上海万向区块链股份公司 组合签名及验证签名方法、系统及存储介质
CN113472793A (zh) * 2021-07-01 2021-10-01 中易通科技股份有限公司 一种基于硬件密码设备的个人数据保护系统
CN113472793B (zh) * 2021-07-01 2023-04-28 中易通科技股份有限公司 一种基于硬件密码设备的个人数据保护系统
CN114499871A (zh) * 2021-12-23 2022-05-13 成都卫士通信息产业股份有限公司 一种签名加密方法、装置、系统及计算机可读存储介质
CN114499871B (zh) * 2021-12-23 2024-01-09 成都卫士通信息产业股份有限公司 一种签名加密方法、装置、系统及计算机可读存储介质
CN114978549A (zh) * 2022-05-25 2022-08-30 武汉理工大学 签名者掌控签名制作数据的sm2数字签名生成方法及系统
CN114978549B (zh) * 2022-05-25 2024-03-22 北京天威诚信电子商务服务有限公司 签名者掌控签名制作数据的sm2数字签名生成方法及系统
CN117786734B (zh) * 2023-11-16 2024-06-04 人力资源和社会保障部人事考试中心 考生个人敏感信息防泄漏的方法、装置及存储介质

Also Published As

Publication number Publication date
CN110971411B (zh) 2022-07-12

Similar Documents

Publication Publication Date Title
CN110971411B (zh) 一种基于sotp技术对私钥乘加密的sm2同态签名方法
US11323276B2 (en) Mutual authentication of confidential communication
CN109274503B (zh) 分布式协同签名方法及分布式协同签名装置、软盾系统
CN109067524B (zh) 一种公私钥对生成方法及系统
CN106548345B (zh) 基于密钥分割实现区块链私钥保护的方法及系统
US9882717B2 (en) System and method for generating a server-assisted strong password from a weak secret
Xue et al. A lightweight dynamic pseudonym identity based authentication and key agreement protocol without verification tables for multi-server architecture
US11212094B2 (en) Joint blind key escrow
US8464058B1 (en) Password-based cryptographic method and apparatus
CN110519046B (zh) 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统
US9531540B2 (en) Secure token-based signature schemes using look-up tables
US8422670B2 (en) Password authentication method
CN110020524B (zh) 一种基于智能卡的双向认证方法
Cheon et al. Ghostshell: Secure biometric authentication using integrity-based homomorphic evaluations
CN112351037B (zh) 用于安全通信的信息处理方法及装置
CN114726546B (zh) 数字身份认证方法、装置、设备和存储介质
Yao et al. An inter-domain authentication scheme for pervasive computing environment
CN115865520B (zh) 移动云服务环境中具有隐私保护的认证和访问控制方法
Keleman et al. Secure firmware update in embedded systems
KR20080005344A (ko) 인증서버가 사용자단말기를 인증하는 시스템
CN111245611A (zh) 基于秘密共享和可穿戴设备的抗量子计算身份认证方法及系统
CN114189338B (zh) 基于同态加密技术的sm9密钥安全分发和管理系统及方法
CN110572257B (zh) 基于身份的数据来源鉴别方法和系统
EP3185504A1 (en) Security management system for securing a communication between a remote server and an electronic device
CN115114648A (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