CN112019335A - 一种基于sm2算法的多方协同加解密方法及装置、系统、介质 - Google Patents

一种基于sm2算法的多方协同加解密方法及装置、系统、介质 Download PDF

Info

Publication number
CN112019335A
CN112019335A CN202010989468.3A CN202010989468A CN112019335A CN 112019335 A CN112019335 A CN 112019335A CN 202010989468 A CN202010989468 A CN 202010989468A CN 112019335 A CN112019335 A CN 112019335A
Authority
CN
China
Prior art keywords
temp
algorithm
server
decryption
group
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
CN202010989468.3A
Other languages
English (en)
Other versions
CN112019335B (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.)
Shanghai Digital Certificate Certification Center Co ltd
Original Assignee
Shanghai Digital Certificate Certification Center 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 Shanghai Digital Certificate Certification Center Co ltd filed Critical Shanghai Digital Certificate Certification Center Co ltd
Priority to CN202010989468.3A priority Critical patent/CN112019335B/zh
Publication of CN112019335A publication Critical patent/CN112019335A/zh
Application granted granted Critical
Publication of CN112019335B publication Critical patent/CN112019335B/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/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • 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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及数据加解密技术领域,更具体的说,涉及一种基于SM2算法的多方协同加解密方法及装置、系统、介质。本方法包括以下步骤:S1、小组成员,向可信中心注册组成群组;S2、小组成员和可信中心,分别生成私钥分量,基于SM2算法的安全计算协议,可信中心依次与小组成员轮询通信生成共同的公钥,所述公钥用于消息发送方进行数据加密;S3、可信中心,接收加密数据,依次与小组成员轮询通信,基于SM2算法与小组成员采用私钥分量对加密数据进行协同解密,获取解密数据。本发明加解密过程需要群组中每个小组成员参与才能有效解密,保证每个小组成员的公平参与,通过可信中心注册验证,有效避免参与者的冒名顶替,保证解密信息在小组成员间的共享。

Description

一种基于SM2算法的多方协同加解密方法及装置、系统、介质
技术领域
本发明涉及数据加解密技术领域,更具体的说,涉及一种基于SM2算法的多方协同加解密方法及装置、系统、介质。
背景技术
随着密码技术和计算技术的发展,目前常用的1024位RSA算法面临严重的安全威胁。国家密码局发在2010年12月17日发布了SM2椭圆曲线公钥密码算法。相对于RSA算法,SM2在安全性、性能上都更具有优势。
在公钥密码体制中,保证私钥的安全性是一个非常重要的问题。用户的私钥通常需要在专门的硬件安全模块(HSM,Hardware Security Module)中安全存储和使用,私钥不能从密码硬件中导出。常见的HSM包括USBKEY(U盾)、智能卡、TF卡(Trans-flash Card,闪存卡)、密码芯片等。
为了提高私钥的安全性,可以将私钥进行分割,由多成员协同进行加解密,多人同时在场时秘密才能得以恢复,同时也满足一份文件多人参与解密的应用场景需求。
针对此类问题,常见的解决方法是采用门限秘密共享方案,将私钥被分割成t个子私钥,并安全地分给t个参与者掌管,这些t个参与者中的k(k≤t)个及以上所构成的子集可以重构私钥,少于k个参与者则无法获得完整私钥。这会存在以下两个问题:
一方面、恢复出完整私钥之后,拥有完整私钥的一方,就可以不经由其他成员同意即可以解密文件;
另一方面、小组成员之间不是完全公平参与,且存在参与者被中途冒名顶替的可能。
发明内容
本发明的目的是提供一种基于SM2算法的多方协同加解密方法及装置、系统、介质,解决现有技术中多个参与方之间协同完成加解密数据的安全性低的问题。
为了实现上述目的,本发明提供了一种基于SM2算法的多方协同加解密方法,包括以下步骤:
S1、小组成员,向可信中心注册组成群组;
S2、小组成员和可信中心,分别生成私钥分量,基于SM2算法的安全计算协议,可信中心依次与小组成员轮询通信生成共同的公钥,所述公钥用于消息发送方进行数据加密;
S3、可信中心,接收加密数据,依次与小组成员轮询通信,基于SM2算法与小组成员采用私钥分量对加密数据进行协同解密,获取解密数据。
在一实施例中,所述步骤S2,进一步包括以下步骤:
S21、可信中心,设置临时点Ptemp,初始值设为dserver[*]G,其中,G为椭圆曲线上选取的基点,dserver为可信中心生成的私钥分量;
在群组中任意选取一个小组成员Ui,将临时点Ptemp发送给小组成员Ui
S22、小组成员Ui,选择生成一个随机数di,作为小组成员Ui的私钥分量,其中di∈[1,n-1],n为椭圆曲线的阶;
根据私钥分量di以及临时点Ptemp,计算生成公开秘密Pi=di -1[*]Ptemp,并将公开秘密Pi发送至可信中心;
S23、可信中心,接收到小组成员Ui发送的公开秘密Pi后,更新临时点Ptemp=Pi
S24、可信中心,依次与每一个小组成员轮询通信,重复上述步骤计算得到临时点
Figure BDA0002690357860000021
m为小组成员数;
S25、可信中心,根据临时点与基点,计算生成公钥PA,公钥的表达式为:
Figure BDA0002690357860000022
在一实施例中,所述步骤S3,进一步包括以下步骤:
S31、可信中心,接收加密数据C=C1||C3||C2
S32、可信中心,设置缓存项C1_temp,从加密数据C提取第一比特串C1,作为缓存项C1_temp的初始值,依次与每一个小组成员轮询通信,小组成员使用私钥分量基于SM2算法计算更新缓存项;
S33、可信中心,根据私钥分量dserver和最终获得的缓存项,计算获得椭圆曲线群元素(x2,y2);
S34、可信中心,基于SM2算法解密,获取解密结果。
在一实施例中,所述步骤S32,进一步包括以下步骤:
S321、可信中心,设置缓存项C1_temp,从加密数据C提取第一比特串C1,作为缓存项C1_temp的初始值;
在群组记录信息中任意选取一个小组成员Ui,将缓存项C1_temp发送给小组成员Ui
S322、小组成员Ui,使用私钥分量di,计算生成公开秘密C′1_temp=di[*]C1_temp,并将公开秘密C′1_temp发送给可信中心;
S323、可信中心,接收到小组成员Ui发送的公开秘密C′1_temp后,更新缓存项C1_temp=C′1_temp
S324、可信中心,依次与每一个小组成员轮询通信,重复上述步骤,接收最后小组成员的公开秘密C′m_temp=dm[*]Cm_temp,m为小组成员数。
在一实施例中,所述步骤S33,进一步包括以下步骤:
可信中心,使用私钥分量dserver,计算椭圆曲线群元素(x2,y2)=dserver[*]C′m_temp[-]C1,其中,C′m_temp为最后一个小组成员Um计算生成的公开秘密。
在一实施例中,所述步骤S34,进一步包括以下步骤:
S341、可信中心,根据椭圆曲线群元素(x2,y2)得到中间结果t=KDF(x2||y2,klen),其中,||表示拼接,KDF(*)为预先定义的密钥派生函数,klen为输出的比特串长度;
S342、可信中心,从加密数据C提取第二比特串C2,根据中间结果t,计算获取解密结果
Figure BDA0002690357860000041
其中
Figure BDA0002690357860000042
表示按位异或运算。
在一实施例中,所述步骤S32之后、步骤S33之前,进一步包括以下步骤:
可信中心,检查验证第一比特串C1是否为椭圆曲线上的点,如果C1为非椭圆曲线上的点,则提示出现错误,并退出解密流程。
在一实施例中,所述步骤S34之后,进一步包括以下步骤:
可信中心,计算校验值U=HASH(x2||M||y2),其中,HASH为哈希算法函数,M为解密结果;
从加密结果C中提取第三比特串C3
如果U≠C3则提示错误,并退出解密流程;
如果U=C3,则输出解密结果M。
为了实现上述目的,本发明提供了一种基于SM2算法的多方协同加解密装置,包括数个成员端与服务端:
所述成员端,向服务端注册组成群组,分别生成私钥分量;
所述服务端,生成私钥分量,基于SM2算法的安全计算协议,依次与成员端轮询通信生成共同的公钥,所述公钥用于消息发送方进行数据加密;
所述服务端,接收加密数据,依次与成员端轮询通信,基于SM2算法与成员端采用私钥分量对加密数据进行协同解密,获取解密数据。
在一实施例中,所述成员端和服务端的私钥分量和公钥,通过以下方式获得:
服务端,设置临时点Ptemp,初始值设为dserver[*]G,其中,G为椭圆曲线上选取的基点,dserver为服务端生成的私钥分量;
在群组中任意选取一个成员端Ui,将临时点Ptemp发送给小组成员Ui
成员端Ui,选择生成一个随机数di,作为成员端Ui的私钥分量,其中di∈[1,n-1],n为椭圆曲线的阶;
根据私钥分量di以及临时点Ptemp,计算生成公开秘密Pi=di -1[*]Ptemp,并将公开秘密Pi发送至服务端;
服务端,接收到成员端Ui发送的公开秘密Pi后,更新临时点Ptemp=Pi
服务端,依次与每一个成员端轮询通信,最终计算得到临时点
Figure BDA0002690357860000051
m为成员端数量;
服务端,根据临时点与基点,计算生成公钥PA,公钥的表达式为:
Figure BDA0002690357860000052
在一实施例中,所述服务端与成员端进行协同解密,进一步包括:
服务端,接收加密数据C=C1||C3||C2
服务端,设置缓存项C1_temp,从加密数据C提取第一比特串C1,作为缓存项C1_temp的初始值,依次与每一个成员端轮询通信,成员端使用私钥分量基于SM2算法计算更新缓存项;
服务端,根据私钥分量dserver和最终获得的缓存项,计算获得椭圆曲线群元素(x2,y2);
服务端,基于SM2算法解密,获取解密结果。
在一实施例中,所述服务端,设置缓存项C1_temp,从加密数据提取第一比特串C1,作为缓存项C1_temp的初始值;
在群组记录信息中任意选取一个成员端Ui,将缓存项C1_temp发送给成员端Ui
成员端Ui,使用私钥分量di,计算生成公开秘密C1_temp=di[*]C1_temp,并将公开秘密C′1_temp发送给服务端;
服务端,接收到成员端Ui发送的公开秘密C′1_temp后,更新缓存项C1_temp=C′1_temp
服务端,依次与每一个成员端轮询通信,接收最后的成员端的公开秘密C′m_temp=dm[*]Cm_temp,m为成员端数量。
在一实施例中,所述服务端,使用私钥分量dserver,计算椭圆曲线群元素(x2,y2)=dserver[*]C′m_temp[-]C1,其中,C′m_temp为最后一个组成端Um计算生成的公开秘密。
在一实施例中,所述服务端,根据椭圆曲线群元素(x2,y2)得到中间结果t=KDF(x2||y2,klen),其中,||表示拼接,KDF(*)为预先定义的密钥派生函数,klen为输出的比特串长度;
所述服务端,从加密数据C提取第二比特串C2,根据中间结果t,计算获取解密结果
Figure BDA0002690357860000061
其中
Figure BDA0002690357860000062
表示按位异或运算。
在一实施例中,所述服务端,检查验证第一比特串1是否为椭圆曲线上的点,如果C1为非椭圆曲线上的点,则提示出现错误,并退出解密流程。
在一实施例中,所述服务端,计算U=HASH(x2||M||y2),其中,HASH为哈希算法函数,M为解密结果;
从加密结果C中提取第三比特串C3
如果U≠C3则提示错误,并退出解密流程;
如果U=C3,则输出解密结果M。
为了实现上述目的,本发明提供了一种基于SM2算法的多方协同加解密系统,包括:
存储器,用于存储可由处理器执行的指令;
处理器,用于执行所述指令以实现如上述任一项所述的方法。
为了实现上述目的,本发明提供了一种计算机可读介质,其上存储有计算机指令,其中当计算机指令被处理器执行时,执行如上述任一项所述的方法。
本发明提供的一种基于SM2算法的多方协同加解密方法及装置、系统、介质,与现有其他方案相比,加解密过程需要群组中每个小组成员参与才能有效解密,保证每个小组成员的公平参与,同时,为了验证小组成员是否被授权,小组成员必须向可信中心注册验证,可有效避免参与者的冒名顶替,可信中心作为链接每个小组成员的中心,作为解密的最后一步,可在解密后将明文同时发送给每一个小组成员,避免了在小组成员处完成解密后,该小组成员拒绝向组内其他成员分享信息的问题。
附图说明
本发明上述的以及其他的特征、性质和优势将通过下面结合附图和实施例的描述而变的更加明显,在附图中相同的附图标记始终表示相同的特征,其中:
图1揭示了根据本发明一实施例的基于SM2算法的多方协同加解密方法流程图;
图2揭示了根据本发明一实施例的基于SM2算法的多方协同加解密装置的结构示意图;
图3揭示了根据本发明一实施例的基于SM2算法的多方协同加解密系统的框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释发明,并不用于限定发明。
椭圆曲线密码(ECC,Elliptic curve cryptography)是一种基于在有限域上定义的椭圆曲线算法的公开密钥体制。SM2算法是是ECC密码体制的一种具体算法。在国家标准《GB/T 32918信息安全技术SM2椭圆曲线公钥密码算法》标准中规定了一种椭圆曲线公钥密码算法,基于SM2的加解密的生成算法符合该标准的规定。
规定以下符号,以下符号同样参照了国家标准《GB/T 32918信息安全技术SM2椭圆曲线公钥密码算法》规定的参数:
G,椭圆曲线的一个基点,其阶为素数。
n,基点G的阶。
xP,点P的x坐标;yP,点P的y坐标;x‖y,x与y的拼接,其中x和y是比特串或字节串。
M,为解密的原始消息。
[*]表示椭圆曲线点乘运算。
[-]表示椭圆曲线点减运算。
所有的运算都包括取模运算,mod n,模n运算。
图1揭示了根据本发明一实施例的基于SM2算法的多方协同加解密方法流程图,如图1所示,本发明提出了一种基于SM2算法的多方协同加解密方法,包括以下步骤:
S1、小组成员,向可信中心注册组成群组;
S2、小组成员和可信中心,分别生成私钥分量,基于SM2算法的安全计算协议,可信中心依次与小组成员轮询通信生成共同的公钥,所述公钥用于消息发送方进行数据加密;
S3、可信中心,接收加密数据,依次与小组成员轮询通信,基于SM2算法与小组成员采用私钥分量对加密数据进行协同解密,获取解密数据。
可信中心是本发明的一个默认前提,小组成员如参与协同解密功能需要向可信中心进行注册,注册成功后,由可信中心维护成员列表。
下面以服务器作为可信中心,对每一步进行详细的说明。
S1、小组成员,向可信中心注册组成群组。
参与解密的成员方共m个小组成员向服务器注册申请,通过身份认证组成群组。
服务器记录群组。
S2、小组成员和可信中心,分别生成私钥分量,基于SM2算法的安全计算协议,可信中心依次与小组成员轮询通信生成共同的公钥,所述公钥用于消息发送方进行数据加密。
所述步骤S2,进一步包括以下步骤:
S21、服务器,发起生成公钥请求。
服务器,选择生成一个随机数dserver∈[1,n-1],n为椭圆曲线的阶,作为服务器的私钥分量dserver,并计算其模逆
Figure BDA0002690357860000081
服务器,设置临时点Ptemp,在椭圆曲线上选取的基点G,设初始值Ptemp=dserver[*]G。
在群组记录信息中任意选取一个小组成员Ui,将临时点Ptemp发送给小组成员Ui,i∈[1,m-1]。
S22、小组成员Ui,接收到该临时点Ptemp后,选择生成一个随机数di,作为小组成员Ui的私钥分量,其中di∈[1,n-1],n为椭圆曲线的阶。
小组成员Ui,根据私钥di计算模逆di -1,生成公开秘密Pi=di -1[*]Ptemp,并将公开秘密Pi发送至服务器。
S23、服务器,接收到小组成员Ui发送的公开秘密Pi后,更新临时点Ptemp=Pi
S24、服务器,依次与每一个小组成员轮询通信,小组成员重复上述步骤S22处理。
服务器,根据小组成员发送的公开秘密更新临时点,最后得到临时点
Figure BDA0002690357860000091
m为小组成员数。
S25、服务器,根据临时点Ptrmp与基点G,计算生成公钥PA,将公钥发送给每一个小组成员。
其中,公钥的表达式为:
Figure BDA0002690357860000092
小组成员的私钥分量为各自保存的di,di∈[1,n-1],n为椭圆曲线的阶。
消息发送方,如果想给小组所有成员发送加密数据,可以使用公钥PA,按照SM2算法对所需数据进行加密,并将加密后的消息发送到服务端。
S3、可信中心,接收加密数据,依次与小组成员轮询通信,基于SM2算法与小组成员采用私钥分量对加密数据进行协同解密,获取解密数据。
所述步骤S3,进一步包括以下步骤:
S31、服务器,接收加密数据C=C1||C3||C2,对该加密数据进行操作,从加密结果C中提取第一比特串C1,缓存第二比特串C2和第三比特串C3
S32、服务器,设置缓存项C1_temp,从加密数据C提取第一比特串C1,作为缓存项C1_temp的初始值,依次与每一个小组成员轮询通信,小组成员使用私钥分量基于SM2算法计算更新缓存项;
S33、服务器,根据私钥分量dserver和最终获得的缓存项,计算获得椭圆曲线群元素(x2,y2)=dserver[*]C′m_temp[-]C1;
S34、服务器,基于SM2算法解密,获取解密结果。
所述步骤S32,进一步包括以下步骤:
S321、服务端,设置缓存项C1_temp,从加密数据C选取第一比特串C1,作为缓存项C1_temp的初始值。
在群组记录信息中任意选取一个小组成员Ui,将缓存项C1_temp发送给小组成员Ui
S322、小组成员Ui,根据私钥分量di,计算生成公开秘密C′1_temp=di[*]C1_temp,并将公开秘密C′1_temp发送给服务器。
S323、服务器,接收到小组成员Ui发送的公开秘密C′1_temp后,更新缓存项C1_temp=C′1_temp
S324、服务器,依次与每一个小组成员轮询通信,将缓存项C1_temp发给下一个小组成员Ui+1
最后一个小组成员Um,根据私钥分量dm,计算生成公开秘密C′m_temp=dm[*]Cm_temp,将公开秘密C′m_temp发送给服务器,服务器更新缓存项。
更进一步的,服务器与每个小组成员的轮询通信顺序可以预设,较佳的,按照服务器中群组记录信息的维护用户列表顺序逐次通信。
所述步骤S34,进一步包括以下步骤:
S341、服务器,根据椭圆曲线群元素(x2,y2)得到中间结果t=KDF(x2||y2,klen),其中,||表示拼接,KDF(*)代表使用预先定义的密钥派生函数,klen表述输出的比特串长度。
密钥派生函数的作用是对输入数据进行处理并获得密钥数据。
可选的,密钥派生函数采用的相关标准为GB/T 32918.4-2016《信息安全技术SM2椭圆曲线公钥密码算法第4部分:公钥加密算法》。
S342、服务器,从加密结果C中提取第二比特串C2,根据中间结果t,计算获取解密结果
Figure BDA0002690357860000101
其中,
Figure BDA0002690357860000102
表示按位异或运算。
更进一步的,步骤S32之后、步骤S33之前,进一步包括以下步骤:服务器,检查验证第一比特串C1是否为椭圆曲线上的点,如果C1为非椭圆曲线上的点,则提示出现错误,并退出解密流程。
上述验证步骤可以参照国家标准《GB/T32918.4》。
更进一步的,所述步骤S34之后,服务器校验是否解密成功,进一步包括以下步骤:
服务器,计算校验值U=HASH(x2||M||y2),其中,HASH为哈希算法函数,M为解密结果;
从加密结果C中提取第三比特串C3
若U≠C3则提示错误,并退出解密流程;
若U=C3,则输出解密结果M。
该步骤对解密结果进行校验,保证解密结果的正确性。
本发明还提供了一种可以实现上述基于SM2算法的多方协同加解密装置。图2揭示了根据本发明一实施例的基于SM2算法的多方协同加解密装置的结构示意图,如图2所示,该多方协同加解密装置,包括服务端100和成员端201,...,成员端20m,其中,m为成员端的数量。
所述成员端201,...,成员端20m,向服务端100注册组成群组,分别生成私钥分量;
所述服务端100,生成私钥分量,基于SM2算法的安全计算协议,依次与成员端201,...,成员端20m轮询通信生成共同的公钥,所述公钥用于消息发送方进行数据加密;
所述服务端100,接收加密数据,依次与成员端201,...,成员端20m轮询通信,基于SM2算法与成员端201,...,成员端20m采用私钥分量对加密数据进行协同解密,获取解密数据。
更进一步的,所述成员端201,...,成员端20m和服务端100的私钥分量和公钥,通过上述方法的步骤S2实现。
更进一步的,所述服务端100与成员端201,...,成员端20m进行协同解密,通过上述方法的步骤S3实现。
成员端201,...,成员端20m对应于小组成员端U1,...,成员端Um
图3揭示了根据本发明一实施例的基于SM2算法的多方协同加解密系统的框图,如图3所示的多方协同加解密系统,可包括内部通信总线301、处理器(processor)302、只读存储器(ROM)303、随机存取存储器(RAM)304、通信端口305、输入/输出端306以及硬盘307。内部通信总线301可以实现协同解密系统组件间的数据通信。处理器302可以进行判断和发出提示。在一些实施例中,处理器302可以由一个或多个处理器组成。
通信端口305可以实现多方协同加解密系统与外部的输入/输出设备之间进行数据传输与通信。在一些实施例中,多方协同加解密系统可以通过通信端口305从网络发送和接收信息及数据。在一些实施例中,多方协同加解密系统可以通过输入/输出端306以有线的形式与外部的输入/输出设备之间进行数据传输与通信。在一些实施例中,输入端为虚拟键盘,在解密过程中供用户在移动终端输入验证信息,验证信息可以是PIN码。
多方协同加解密系统还可以包括不同形式的程序储存单元以及数据储存单元,例如硬盘307,只读存储器(ROM)303和随机存取存储器(RAM)304,能够存储计算机处理和/或通信使用的各种数据文件,以及处理器302所执行的可能的程序指令。处理器302执行这些指令以实现方法的主要部分。处理器302处理的结果通过通信端口305传给外部的输出设备,在输出设备的用户界面上显示。
举例来说,上述的多方协同加解密系统的实施过程文件可以为计算机程序,保存在硬盘307中,并可记载到处理器302中执行,以实施本申请的方法。
需要指出的是,术语“计算机”应该做广义的理解,可以包括但不限于云计算服务器,智能移动终端,物联网设备,计算机电脑等。对于移动端,私钥分量/公钥可以储存在本地介质中,对于服务端,私钥分量/公钥可以选择储存在数据库、HSM内部。
多方协同加解密方法的实施过程文件为计算机程序时,也可以存储在计算机或移动设备的可读存储介质中作为制品。例如,计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩盘(CD)、数字多功能盘(DVD))、智能卡和闪存设备(例如,电可擦除可编程只读存储器(EPROM)、卡、棒、键驱动)。此外,本文描述的各种存储介质能代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可以包括但不限于能存储、包含和/或承载代码和/或指令和/或数据的无线信道和各种其它介质(和/或存储介质)。
本发明提供的一种基于SM2算法的多方协同加解密方法及装置、系统、介质,与现有其他方案相比,具体具有以下有益效果:
1)加解密过程需要群组中每个小组成员参与才能有效解密,保证每个小组成员的公平参与;
2)为了验证小组成员是否被授权,小组成员必须向可信中心注册验证,可有效避免参与者的冒名顶替;
3)可信中心作为链接每个小组成员的中心,作为解密的最后一步,可在解密后将明文同时发送给每一个小组成员,避免了在小组成员处完成解密后,该小组成员拒绝向组内其他成员分享信息的问题。
尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
上述实施例是提供给熟悉本领域内的人员来实现或使用本发明的,熟悉本领域的人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。

Claims (18)

1.一种基于SM2算法的多方协同加解密方法,其特征在于,包括以下步骤:
S1、小组成员,向可信中心注册组成群组;
S2、小组成员和可信中心,分别生成私钥分量,基于SM2算法的安全计算协议,可信中心依次与小组成员轮询通信生成共同的公钥,所述公钥用于消息发送方进行数据加密;
S3、可信中心,接收加密数据,依次与小组成员轮询通信,基于SM2算法与小组成员采用私钥分量对加密数据进行协同解密,获取解密数据。
2.根据权利要求1所述的基于SM2算法的多方协同加解密方法,其特征在于,所述步骤S2,进一步包括以下步骤:
S21、可信中心,设置临时点Ptemp,初始值设为dserver[*]G,其中,G为椭圆曲线上选取的基点,dserver为可信中心生成的私钥分量;
在群组中任意选取一个小组成员Ui,将临时点Ptemp发送给小组成员Ui
S22、小组成员Ui,选择生成一个随机数di,作为小组成员Ui的私钥分量,其中di∈[1,n-1],n为椭圆曲线的阶;
根据私钥分量di以及临时点Ptemp,计算生成公开秘密Pi=di -1[*]Ptemp,并将公开秘密Pi发送至可信中心;
S23、可信中心,接收到小组成员Ui发送的公开秘密Pi后,更新临时点Ptemp=Pi
S24、可信中心,依次与每一个小组成员轮询通信,重复上述步骤计算得到临时点
Figure FDA0002690357850000011
m为小组成员数;
S25、可信中心,根据临时点与基点,计算生成公钥PA,公钥的表达式为:
Figure FDA0002690357850000012
3.根据权利要求2所述的基于SM2算法的多方协同加解密方法,其特征在于,所述步骤S3,进一步包括以下步骤:
S31、可信中心,接收加密数据C=C1||C3||C2
S32、可信中心,设置缓存项C1_temp,从加密数据C提取第一比特串C1,作为缓存项C1_temp的初始值,依次与每一个小组成员轮询通信,小组成员使用私钥分量基于SM2算法计算更新缓存项;
S33、可信中心,根据私钥分量dserver和最终获得的缓存项,计算获得椭圆曲线群元素(x2,y2);
S34、可信中心,基于SM2算法解密,获取解密结果。
4.根据权利要求3所述的基于SM2算法的多方协同加解密方法,其特征在于,所述步骤S32,进一步包括以下步骤:
S321、可信中心,设置缓存项C1_temp,从加密数据C提取第一比特串C1,作为缓存项C1_temp的初始值;
在群组记录信息中任意选取一个小组成员Ui,将缓存项C1_temp发送给小组成员Ui
S322、小组成员Ui,使用私钥分量di,计算生成公开秘密C′1_temp=di[*]C1_temp,并将公开秘密C′1_temp发送给可信中心;
S323、可信中心,接收到小组成员Ui发送的公开秘密C′1_temp后,更新缓存项C1_temp=C′1_temp
S324、可信中心,依次与每一个小组成员轮询通信,重复上述步骤处理,接收最后小组成员的公开秘密C′m_temp=dm[*]Cm_temp,m为小组成员数,更新缓存项。
5.根据权利要求4所述的基于SM2算法的多方协同加解密方法,其特征在于,所述步骤S33,进一步包括以下步骤:
可信中心,使用私钥分量dserver,计算椭圆曲线群元素(x2,y2)=dserver[*]C′m_temp[-]C1,其中,C′m_temp为最后一个小组成员Um计算生成的公开秘密。
6.根据权利要求3所述的基于SM2算法的多方协同加解密方法,其特征在于,所述步骤S34,进一步包括以下步骤:
S341、可信中心,根据椭圆曲线群元素(x2,y2)得到中间结果t=KDF(x2||y2,klen),其中,||表示拼接,KDF(*)为预先定义的密钥派生函数,klen为输出的比特串长度;
S342、可信中心,从加密数据C提取第二比特串C2,根据中间结果t,计算获取解密结果
Figure FDA0002690357850000031
其中
Figure FDA0002690357850000032
表示按位异或运算。
7.根据权利要求3所述的基于SM2算法的多方协同加解密方法,其特征在于,所述步骤S32之后、步骤S33之前,进一步包括以下步骤:
可信中心,检查验证第一比特串C1是否为椭圆曲线上的点,如果C1为非椭圆曲线上的点,则提示出现错误,并退出解密流程。
8.根据权利要求3所述的基于SM2算法的多方协同加解密方法,其特征在于,所述步骤S34之后,进一步包括以下步骤:
可信中心,计算校验值U=HASH(x2||M||y2),其中,HASH为哈希算法函数,M为解密结果;
从加密结果C中提取第三比特串C3
如果U≠C3则提示错误,并退出解密流程;
如果U=C3,则输出解密结果M。
9.一种基于SM2算法的多方协同加解密装置,其特征在于,包括数个成员端与服务端:
所述成员端,向服务端注册组成群组,分别生成私钥分量;
所述服务端,生成私钥分量,基于SM2算法的安全计算协议,依次与成员端轮询通信生成共同的公钥,所述公钥用于消息发送方进行数据加密;
所述服务端,接收加密数据,依次与成员端轮询通信,基于SM2算法与成员端采用私钥分量对加密数据进行协同解密,获取解密数据。
10.根据权利要求9所述的基于SM2算法的多方协同加解密装置,其特征在于,所述成员端和服务端的私钥分量和公钥,通过以下方式获得:
服务端,设置临时点Ptemp,初始值设为dserver[*]G,其中,G为椭圆曲线上选取的基点,dserver为服务端生成的私钥分量;
在群组中任意选取一个成员端Ui,将临时点Ptemp发送给小组成员Ui
成员端Ui,选择生成一个随机数di,作为成员端Ui的私钥分量,其中di∈[1,n-1],n为椭圆曲线的阶;
根据私钥分量di以及临时点Ptemp,计算生成公开秘密Pi=di -1[*]Ptemp,并将公开秘密Pi发送至服务端;
服务端,接收到成员端Ui发送的公开秘密Pi后,更新临时点Ptemp=Pi
服务端,依次与每一个成员端轮询通信,最终计算得到临时点
Figure FDA0002690357850000041
m为成员端数量;
服务端,根据临时点与基点,计算生成公钥PA,公钥的表达式为:
Figure FDA0002690357850000042
11.根据权利要求9所述的基于SM2算法的多方协同加解密装置,其特征在于,所述服务端与成员端进行协同解密,进一步包括:
服务端,接收加密数据C=C1||C3||C2
服务端,设置缓存项C1_temp,从加密数据C提取第一比特串C1,作为缓存项C1_temp的初始值,依次与每一个成员端轮询通信,成员端使用私钥分量基于SM2算法计算更新缓存项;
服务端,根据私钥分量dserver和最终获得的缓存项,计算获得椭圆曲线群元素(x2,y2);
服务端,基于SM2算法解密,获取解密结果。
12.根据权利要求10所述的基于SM2算法的多方协同加解密装置,其特征在于:
所述服务端,设置缓存项C1_temp,从加密数据C提取第一比特串C1,作为缓存项C1_temp的初始值;
在群组记录信息中任意选取一个成员端Ui,将缓存项C1_temp发送给成员端Ui
成员端Ui,使用私钥分量di,计算生成公开秘密C′1_temp=di[*]C1_temp,并将公开秘密C′1_temp发送给服务端;
服务端,接收到成员端Ui发送的公开秘密C′1_temp后,更新缓存项C1_temp=C′1_temp
服务端,依次与每一个成员端轮询通信,接收最后的成员端的公开秘密C′m_temp=dm[*]Cm_temp,m为成员端数量。
13.根据权利要求11所述的基于SM2算法的多方协同加解密装置,其特征在于:
所述服务端,使用私钥分量dserver,计算椭圆曲线群元素(x2,y2)=dserver[*]C′m_temp[-]C1,,其中,C′m_temp为最后一个成员端Um计算生成的公开秘密。
14.根据权利要求10所述的基于SM2算法的多方协同加解密装置,其特征在于:
所述服务端,根据椭圆曲线群元素(x2,y2)得到中间结果t=KDF(x2||y2,klen),其中,||表示拼接,KDF(*)为预先定义的密钥派生函数,klen为输出的比特串长度;
所述服务端,从加密数据C提取第二比特串C2,根据中间结果t,计算获取解密结果
Figure FDA0002690357850000051
其中
Figure FDA0002690357850000052
表示按位异或运算。
15.根据权利要求10所述的基于SM2算法的多方协同加解密装置,其特征在于:
所述服务端,检查验证第一比特串C1是否为椭圆曲线上的点,如果C1为非椭圆曲线上的点,则提示出现错误,并退出解密流程。
16.根据权利要求10所述的基于SM2算法的多方协同加解密装置,其特征在于:
所述服务端,计算U=HASH(x2||M||y2),其中,HASH为哈希算法函数,M为解密结果;
从加密结果C中提取第三比特串C3
如果U≠C3则提示错误,并退出解密流程;
如果U=C3,则输出解密结果M。
17.一种基于SM2算法的多方协同群签名系统,其特征在于,包括:
存储器,用于存储可由处理器执行的指令;
处理器,用于执行所述指令以实现如权利要求1-8任一项所述的方法。
18.一种计算机可读介质,其上存储有计算机指令,其中当计算机指令被处理器执行时,执行如权利要求1-8任一项所述的方法。
CN202010989468.3A 2020-09-18 2020-09-18 一种基于sm2算法的多方协同加解密方法及装置、系统、介质 Active CN112019335B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010989468.3A CN112019335B (zh) 2020-09-18 2020-09-18 一种基于sm2算法的多方协同加解密方法及装置、系统、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010989468.3A CN112019335B (zh) 2020-09-18 2020-09-18 一种基于sm2算法的多方协同加解密方法及装置、系统、介质

Publications (2)

Publication Number Publication Date
CN112019335A true CN112019335A (zh) 2020-12-01
CN112019335B CN112019335B (zh) 2023-12-29

Family

ID=73522554

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010989468.3A Active CN112019335B (zh) 2020-09-18 2020-09-18 一种基于sm2算法的多方协同加解密方法及装置、系统、介质

Country Status (1)

Country Link
CN (1) CN112019335B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112926074A (zh) * 2021-03-26 2021-06-08 成都卫士通信息产业股份有限公司 一种sm9密钥门限化生成方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11317734A (ja) * 1998-02-13 1999-11-16 Hitachi Ltd デ―タの暗号化復号化方法および、それを用いたネットワ―クシステム
WO2003017559A2 (en) * 2001-08-13 2003-02-27 Board Of Trustees Of The Leland Stanford Junior University Systems and methods for identity-based encryption and related cryptographic techniques
CN106506156A (zh) * 2016-12-15 2017-03-15 北京三未信安科技发展有限公司 一种基于椭圆曲线的分布式门限签名方法
CN107017993A (zh) * 2017-04-01 2017-08-04 北京江南天安科技有限公司 一种多方联合密钥产生和数字签名方法及系统
CN108199835A (zh) * 2018-01-19 2018-06-22 北京江南天安科技有限公司 一种多方联合私钥解密方法及系统
EP3447667A1 (de) * 2017-08-23 2019-02-27 Bundesdruckerei GmbH Kryptographische sicherung für eine verteilte datenspeicherung
CN110636151A (zh) * 2019-10-25 2019-12-31 新华三信息安全技术有限公司 一种报文处理方法、装置、防火墙及存储介质
CN111010276A (zh) * 2019-10-25 2020-04-14 武汉大学 一种多方联合sm9密钥生成、密文解密方法与介质
CN111049650A (zh) * 2019-12-27 2020-04-21 上海市数字证书认证中心有限公司 一种基于sm2算法的协同解密方法及装置、系统、介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11317734A (ja) * 1998-02-13 1999-11-16 Hitachi Ltd デ―タの暗号化復号化方法および、それを用いたネットワ―クシステム
WO2003017559A2 (en) * 2001-08-13 2003-02-27 Board Of Trustees Of The Leland Stanford Junior University Systems and methods for identity-based encryption and related cryptographic techniques
CN106506156A (zh) * 2016-12-15 2017-03-15 北京三未信安科技发展有限公司 一种基于椭圆曲线的分布式门限签名方法
CN107017993A (zh) * 2017-04-01 2017-08-04 北京江南天安科技有限公司 一种多方联合密钥产生和数字签名方法及系统
EP3447667A1 (de) * 2017-08-23 2019-02-27 Bundesdruckerei GmbH Kryptographische sicherung für eine verteilte datenspeicherung
CN108199835A (zh) * 2018-01-19 2018-06-22 北京江南天安科技有限公司 一种多方联合私钥解密方法及系统
CN110636151A (zh) * 2019-10-25 2019-12-31 新华三信息安全技术有限公司 一种报文处理方法、装置、防火墙及存储介质
CN111010276A (zh) * 2019-10-25 2020-04-14 武汉大学 一种多方联合sm9密钥生成、密文解密方法与介质
CN111049650A (zh) * 2019-12-27 2020-04-21 上海市数字证书认证中心有限公司 一种基于sm2算法的协同解密方法及装置、系统、介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112926074A (zh) * 2021-03-26 2021-06-08 成都卫士通信息产业股份有限公司 一种sm9密钥门限化生成方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112019335B (zh) 2023-12-29

Similar Documents

Publication Publication Date Title
CN111639361B (zh) 一种区块链密钥管理方法、多人共同签名方法及电子装置
US10785019B2 (en) Data transmission method and apparatus
US20210111877A1 (en) Systems and methods for generating signatures
CN111049650B (zh) 一种基于sm2算法的协同解密方法及装置、系统、介质
Lin et al. A new remote user authentication scheme for multi-server architecture
CN107395368B (zh) 无介质环境中的数字签名方法及解封装方法与解密方法
CN107483212A (zh) 一种双方协作生成数字签名的方法
CN110519046B (zh) 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统
CN112118113B (zh) 一种基于sm2算法的多方协同群签名方法及装置、系统、介质
CN111130804B (zh) 一种基于sm2算法的协同签名方法及装置、系统、介质
CN110969431B (zh) 区块链数字币私钥的安全托管方法、设备和系统
CN113691502B (zh) 通信方法、装置、网关服务器、客户端及存储介质
US20110145576A1 (en) Secure method of data transmission and encryption and decryption system allowing such transmission
CN108418686A (zh) 一种多分布式的sm9解密方法与介质及密钥生成方法
US20150288527A1 (en) Verifiable Implicit Certificates
CN106941404B (zh) 密钥保护方法及装置
CN107360002B (zh) 一种数字证书的申请方法
CN108199847B (zh) 数字安全处理方法、计算机设备及存储介质
CN110855667A (zh) 一种区块链加密方法、装置及系统
TW202232913A (zh) 共享金鑰產生技術
CN118160275A (zh) 阈值签名方案
CN114117406A (zh) 一种数据处理方法、装置、设备及存储介质
CN112019335B (zh) 一种基于sm2算法的多方协同加解密方法及装置、系统、介质
CN110266483B (zh) 基于非对称密钥池对和qkd的量子通信服务站密钥协商方法、系统、设备
CN116318654A (zh) 融合量子密钥分发的sm2算法协同签名系统、方法及设备

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