CN109257176A - 基于sm2算法的解密密钥分割及解密方法、装置和介质 - Google Patents

基于sm2算法的解密密钥分割及解密方法、装置和介质 Download PDF

Info

Publication number
CN109257176A
CN109257176A CN201811216779.5A CN201811216779A CN109257176A CN 109257176 A CN109257176 A CN 109257176A CN 201811216779 A CN201811216779 A CN 201811216779A CN 109257176 A CN109257176 A CN 109257176A
Authority
CN
China
Prior art keywords
decruption key
point
key component
product
algorithm
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.)
Pending
Application number
CN201811216779.5A
Other languages
English (en)
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.)
Tianjin Haitai Fangyuan Technology Co Ltd
Original Assignee
Tianjin Haitai Fangyuan 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 Tianjin Haitai Fangyuan Technology Co Ltd filed Critical Tianjin Haitai Fangyuan Technology Co Ltd
Priority to CN201811216779.5A priority Critical patent/CN109257176A/zh
Publication of CN109257176A publication Critical patent/CN109257176A/zh
Pending legal-status Critical Current

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/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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (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算法的解密密钥分割及解密方法、装置和介质,涉及信息处理技术领域,用以保护解密密钥的安全。该方法中,将SM2解密密钥在区间[1,N]分割为n份,并发送给不同的密钥管理设备存储。其中,N为SM2椭圆曲线上点群的阶;n为大于等于2的正整数。解密时,密钥管理设备只需提供所持解密密钥分量与密文中包含的椭圆曲线上的点C1的乘积即可,解密设备依照国家密码管理局发布的SM2算法中的解密算法,进行后续解密操作。这样,密钥管理设备无法获得完整的解密密钥分量和所有的解密密钥分量与点C1的乘积,而解密设备也无法获得全部的解密密钥分量,从而保证了解密密钥和敏感数据的安全性。

Description

基于SM2算法的解密密钥分割及解密方法、装置和介质
技术领域
本申请涉及信息处理技术领域,尤其涉及基于SM2算法的解密密钥分割及解密方法、装置和介质。
背景技术
加密技术使得敏感数据安全传输。国家研发了一系列国密标准的密钥算法,使得敏感信息有了自己的密钥算法,对敏感信息进行加密。
在公钥密码体制中,加密所用的公钥是公开的,任何人都可以利用公钥对数据进行加密运算。而只有公钥对应的解密密钥的拥有者的参与,才能对加密数据进行解密,但是解密密钥并非每个人都可以获取。因此,如何保护解密密钥的安全性成为业内关注的问题。
发明内容
本申请实施例提供一种基于SM2算法的解密密钥分割及解密方法、装置和介质,用以保护解密密钥和敏感数据的安全。
第一方面,本申请实施例提供一种基于SM2算法的解密密钥分割方法,该方法包括:
在SM2解密密钥所在的区间[1,N]中选取n-1个大数;其中,N为SM2椭圆曲线上点群的阶;n为大于等于2的正整数;
根据选取的大数,将SM2解密密钥在区间[1,N]中分割为n个解密密钥分量;
将n个解密密钥分量,发送给不同的密钥管理设备存储。
进一步的,将SM2解密密钥在区间[1,N]中分割为n个解密密钥分量,具体包括:
将选取的每个大数确定为一个解密密钥分量,得到n-1个解密密钥分量;
确定SM2解密密钥在所述区间[1,N]中的点与所述n-1个解密密钥分量之和的差值,并对差值取模后得到第n个解密密钥分量。
本申请实施例还提供一种基于SM2算法的解密方法,该方法包括:
在需要对基于SM2算法的公钥加密后的密文进行解密时,验证密文中包含的椭圆曲线上的点C1是否满足椭圆曲线方程;
若不满足,结束解密操作;
若满足,则获取各解密密钥分量与点C1的乘积;其中,点C1是由密文C中的比特串C1转换得到的,点C1是SM2椭圆曲线上的点;
将各解密密钥分量与点C1的乘积的和,确定为SM2解密密钥与点C1的乘积;
依照国家密码管理局发布的SM2算法中的解密算法、根据计算的SM2解密密钥与点C1的乘积进行后续解密处理,得到所述密文的明文。
进一步的,获取各解密密钥分量与点C1的乘积,具体包括:
获取各解密密钥分量的密钥管理设备计算的解密密钥分量与点C1的乘积。
基于相同构思,本申请实施例还提供密钥管理设备侧的一种基于SM2算法的解密方法,该方法包括:
接收到获取各解密密钥分量与点C1的乘积的指令;
计算所持解密密钥分量与椭圆曲线上的点C1的乘积;其中,所述解密密钥分量为SM2解密密钥在区间[1,N]中分割得到的大数;点C1是密文中包含的椭圆曲线上的点;
发送计算的解密密钥分量与椭圆曲线上的点C1的乘积给解密设备。
另一方面,本申请实施例还提供一种基于SM2算法的解密密钥分割装置。该装置包括:
选点模块,用于在SM2解密密钥所在的区间[1,N]中选取n-1个大数;其中,N为SM2椭圆曲线上点群的阶;n为大于等于2的正整数;
分割模块,用于根据选取的大数,将SM2解密密钥在区间[1,N]中分割为n个解密密钥分量;
第一发送模块,用于将n个解密密钥分量,发送给不同的密钥管理设备存储。
进一步的,分割模块具体包括:
确定单元,用于将选取的每个大数确定为一个解密密钥分量,得到n-1个解密密钥分量;
计算单元,用于确定SM2解密密钥在所述区间[1,N]中的点与所述n-1个解密密钥分量之和的差值,并对差值取模后得到第n个解密密钥分量。
本申请实施例还提供一种基于SM2算法的解密装置,该装置包括:
验证模块,用于在需要对基于SM2算法的公钥加密后的密文进行解密时,验证密文中包含的椭圆曲线上的点C1是否满足椭圆曲线方程;
结束模块,用于若不满足,结束解密操作;
获取模块,用于若满足,则获取各解密密钥分量与点C1的乘积;其中,点C1是由密文C中的比特串C1转换得到的,点C1是SM2椭圆曲线上的点;
确定模块,用于将各解密密钥分量与点C1的乘积的和,确定为SM2解密密钥与点C1的乘积;
解密模块,用于依照国家密码管理局发布的SM2算法中的解密算法、根据计算的SM2解密密钥与点C1的乘积进行后续解密处理,得到所述密文的明文。
进一步的,获取模块具体包括:获取单元,用于获取各解密密钥分量的密钥管理设备计算的解密密钥分量与点C1的乘积。
本申请实施例还提供密钥管理设备侧的一种基于SM2算法的解密装置,该装置包括:
计算模块,用于计算所持解密密钥分量与椭圆曲线上的点C1的乘积;其中,所述解密密钥分量为SM2解密密钥在区间[1,N]中分割得到的大数;点C1是密文中包含的椭圆曲线上的点;
第二发送模块,用于发送计算的解密密钥分量与椭圆曲线上的点C1的乘积给解密设备。
本申请另一实施例还提供了一种计算装置,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请实施例提供的任一电子资源处理方法。
本申请另一实施例还提供了一种计算机存储介质,其中,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行本申请实施例中的任一基于SM2算法的解密密钥分割及解密方法。
本申请实施例提供的基于SM2算法的解密密钥分割及解密方法、装置和介质,无论是解密设备还是密钥管理设备都无法获得完整的解密密钥分量,所以无法将解密密钥重组,保证了解密密钥的安全,保护了敏感数据的安全。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为国家密码管理局发布的SM2算法中的解密算法流程示意图;
图2为本实施例中基于SM2算法的解密密钥分割及解密方法的应用场景示意图;
图3为基于SM2算法的解密密钥分割方法流程示意图;
图4为基于SM2算法的解密方法流程示意图;
图5为基于SM2算法的解密方法的另一流程示意图;
图6为基于SM2算法的解密密钥分割装置示意图;
图7为基于SM2算法的解密装置示意图;
图8为基于SM2算法的密钥管理设备侧的解密装置示意图;
图9为根据本申请实施方式的计算装置的结构示意图。
具体实施方式
为了解密密钥与敏感信息的安全,本申请实施例中提供一种SM2算法的解密密钥分割及解密方法、装置、介质。为了更好的理解本申请实施例提供的技术方案,这里首先对SM2国密的解密算法进行简要说明:
如图1所示,图1为国家密码管理局发布的SM2算法中的解密算法流程示意图。该算法包括以下步骤,设密文C=C1||C2||C3,由C1、C2、C3三部分组成。其中,C1是密文中包含的椭圆曲线上的点,C2是与明文同长度的密文,C3是密文校验参数。设密文C的解密密钥为d。
步骤A1:从密文C中取出C1,验证C1是否满足SM2椭圆曲线方程,若不满足则执行步骤A10,若满足则执行步骤A2。
步骤A2:计算椭圆曲线点S=[h]C1,若S是无穷远点,则执行步骤A10,否则执行步骤A3。
需要说明的是,对于SM2解密算法,这里的h=1,所以也可以省略此步骤。
步骤A3:计算[d]C1=(x2,y2)。这里的(x2,y2)是点[d]C1的坐标。
步骤A4:计算t=KDF(x2||y2,klen)。其中,klen为密文中C2的比特长度,KDF是密钥派生函数。
步骤A5:判断t是否为全0比特串,若是则执行步骤A10,若否则执行步骤A6。
步骤A6:从C中取出比特串C2,计算
步骤A7:计算u=Hash(x2||M’||y2)。Hash一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。
步骤A8:从C中取出比特串C3,若u≠C3,则执行步骤A10,否则执行步骤A9。
步骤A9:输出明文M’。
步骤A10:结束解密操作。
综上可知,解密过程中解密密钥的一个重要作用是得到与密文C中包含的SM2椭圆曲线上的点C1的乘积,有鉴于此,本申请实施例中,在SM2解密密钥所在的区间[1,N]中选取多个大数;根据选取的大数,将SM2解密密钥在区间[1,N]中分割为n个解密密钥分量;然后将n个解密密钥分量发送给不同的密钥管理设备存储。在需要对基于SM2算法的密文进行解密时,通过图1所示的解密步骤可知,确定解密密钥与点C1的乘积是一个关键步骤,有了解密密钥与点C1的乘积就可以根据国密标准进行后续的解密操作。
解密时,本申请中可以先获取各解密密钥分量与点C1的乘积;将各解密密钥分量与点C1的乘积的和,确定为SM2解密密钥与点C1的乘积,依照国密标准SM2解密算法、根据计算的SM2解密密钥与点C1的乘积进行后续解密处理,得到所述密文的明文。这样,通过将解密密钥在区间[1,N]分割为n个分量,密钥管理设备只能获取解密密钥分量而不能获取完整的解密密钥,而解密设备也不能获取到完整、所有的解密密钥,其仅能获取到解密密钥分量与点C1的乘积,从而保证了解密密钥的安全,也就保护了用户需要加密的敏感数据的安全。
如图2所示,其为本申请实施例中的应用场景的示意图。该场景中包括:密钥管理设备01、02……直至0n,密钥分割设备10,服务器11。
首先密钥分割设备10在SM2解密密钥所在的区间[1,N]中将SM2解密密钥分割为n份,并将n份解密密钥分量交由不同的密钥管理设备01,02,直至0n保管,也即一个密钥管理设备存储一份解密密钥分量。具体实施时,密钥管理设备的数量可以大于2同时小于n,也就是允许一个密钥管理设备存储多份解密密钥分量,具体如何实施,可以根据实际需求确定,本申请实施例对此不作限定。
在需要对基于SM2算法的密文进行解密时,解密设备(如图2中所示服务器11)验证密文中包含的椭圆曲线上的点C1是否满足椭圆曲线方程,若满足则获取各个解密密钥分量与点C1的乘积,将各解密密钥分量与点C1的乘积的和,确定为SM2解密密钥与点C1的乘积,并依照国密标准SM2解密算法、服务器11输出密文的明文。
密钥管理设备01,02直至0n,在接收到服务器11要获取各解密密钥分量与点C1的乘积的指令时,计算所持解密密钥分量与椭圆曲线上的点C1的乘积之后,发送给服务器11。
需要说明的是,解密设备可以由不同于密钥管理设备的第三方充当,也可以由密钥管理设备中的某一方兼任,本申请实施例对此不作限定。
其中,密钥管理设备和服务器可通过通信网络进行通信连接,该网络可以为局域网、广域网等,当然也可以通过无线连接。
下面结合附图介绍本发明实施例提供的SM2解密密钥分割及解密方法,进行说明。如图3所示,其为本申请实施例中的流程示意图,包括以下步骤:
步骤301:在SM2解密密钥所在的区间[1,N]中选取n-1个大数;其中,N为SM2椭圆曲线上点群的阶;n为大于等于2的正整数。
步骤302:根据选取的大数,将SM2解密密钥在区间[1,N]中分割为n个解密密钥分量。
步骤303:将n个解密密钥分量,发送给不同的密钥管理设备存储。
具体实施时,分割的数量n没有要求,但不宜太多,若解密密钥分割太多,会增加密钥分量管理工作以及由管理问题带来的解密密钥分量被泄露的危险。另一面,解密密钥的分割数量与密钥管理设备的数量可以相同,也可以不同,本申请不做具体的限定。
通过上述实施例,将SM2的解密密钥分割为n份,并由不同的密钥管理设备存储,保证了解密密钥的安全性,从而保证了用户需要加密的敏感数据的安全性。
进一步的,步骤302可以具体执行为:将选取的每个大数确定为一个解密密钥分量,得到n-1个解密密钥分量。确定SM2解密密钥在区间[1,N]中的点与n-1个解密密钥分量之和的差值,并对差值取模后得到第n个解密密钥分量。以将SM2解密密钥d分割为2份为例,进行解释说明。在区间[1,N]选取一个大数d1,那么首先计算d-d1,之后对该差值取模,结果即为d2。需要说明的是,在区间[1,N]选取大数时,可以随机选取。假设将SM2解密密钥d分割为3份,在区间[1,N]选取两个大数d1和d2,那么d3=(d-d1-d2)mod N(即对差值取模)。
基于相同的发明构思,本申请实施例还提供了相应的解密方法,可应用于解密设备。如图4所示,其为本申请实施例中的解密方法的流程示意图。包括以下步骤:
步骤401:验证密文中包含的椭圆曲线上的点C1是否满足椭圆曲线方程,若满足则执行步骤402,若不满足则执行步骤405。
步骤402:获取各解密密钥分量与点C1的乘积。
需要说明的是,点C1是SM2椭圆曲线上的点,其x、y坐标由密文C中(不考虑点的压缩标识)的前64字节构成,其中前32字节表示x坐标,余下32字节表示y坐标。
步骤403:将各解密密钥分量与点C1的乘积的和,确定为SM2解密密钥与点C1的乘积。
步骤404:依照国家密码管理局发布的SM2算法中的解密算法、根据计算的SM2解密密钥与点C1的乘积进行后续解密处理,得到所述密文的明文。
步骤405:结束解密操作。
其中国家密码管理局发布的SM2算法中的解密算法流程在图1中已给出。
通过上述实施例,解密时解密设备也无法获得完整的SM2解密密钥,只能获得各解密密钥分量与点C1的乘积,保证了解密密钥的安全性,从而保护了用户需要加密的敏感数据安全。
进一步的,为了进一步保障解密密钥的安全性,各解密密钥分量与点C1的乘积是各密钥管理设备计算的。上述步骤402中的获取各解密密钥分量与点C1的乘积,可具体实施为:获取各解密密钥分量的密钥管理设备计算的解密密钥分量与点C1的乘积。
在该实施例中,解密设备和密钥管理设备,没有一个设备能够获得完整的解密密钥,即使在解密过程中,各设备能够得到的也只是各解密密钥分量与点C1的乘积。所以解密过程中解密密钥也没有重组,能够保证解密密钥的安全。
为了进一步理解本申请实施例提供的方案,这里进行举例说明:
假设SM2解密密钥为d,将SM2解密密钥d分割为d1和d2两个分量,发送给不同的密钥管理设备保管。解密密钥分量d1与点C1的乘积为D1=[d1]C1。同样的解密密钥分量d2与点C1的乘积为D2=[d2]C1。有多个解密密钥分量时,原理以此类推,这里不再赘述。
根据各解密密钥分量与点C1的乘积,可以确定解密密钥与点C1的乘积。假设解密密钥d与点C1的乘积为D,则D=D1+D2=[d1]C1+[d2]C1=[(d1+d2)]C1=[d]C1
通过上述方法,解密时,密钥管理设备只需要提供所持解密密钥分量与点C1的乘积即可,无需提供解密密钥分量。所以,解密设备和密钥管理设备都无法获得完整的解密密钥。这样,就保证了SM2解密密钥的安全性,即保证了敏感数据的安全性。
相应的,基于相同的发明构思,下面参照图5对本申请实施例中密钥管理设备侧的基于SM2算法的解密方法做进一步说明,该方法包括以下步骤:
步骤501:接收到获取各解密密钥分量与点C1的乘积的指令。
步骤502:计算所持解密密钥分量与椭圆曲线上的点C1的乘积;其中,所述解密密钥分量为SM2解密密钥在区间[1,N]中分割得到的大数;点C1是密文中包含的椭圆曲线上的点。
步骤503:发送计算的解密密钥分量与椭圆曲线上的点C1的乘积给解密设备。
通过上述实施例,在需要对基于SM2算法的密文进行解密时,密钥管理设备只提供所持解密密钥分量与点C1的乘积给解密设备,解密设备根据解密密钥分量与点C1的乘积,确定解密密钥与点C1的乘积。这样,无论是密钥管理设备还是解密设备,都无法获得完整的解密密钥,保证了SM2解密密钥和密文数据的安全性。
基于相同的发明构思,本实施例提供了一种基于SM2算法的解密密钥分割装置,如图6所示,其为基于SM2算法的解密密钥分割装置示意图。该装置包括:
选点模块1001,用于在SM2解密密钥所在的区间[1,N]中选取n-1个大数;其中,N为SM2椭圆曲线上点群的阶;n为大于等于2的正整数;
分割模块1002,用于根据选取的大数,将SM2解密密钥在区间[1,N]中分割为n个解密密钥分量;
第一发送模块1003,用于将n个解密密钥分量,发送给不同的密钥管理设备存储。
进一步的,分割模块1002具体包括:
确定单元,用于将选取的每个大数确定为一个解密密钥分量,得到n-1个解密密钥分量;
计算单元,用于确定SM2解密密钥在所述区间[1,N]中的点与所述n-1个解密密钥分量之和的差值,并对差值取模后得到第n个解密密钥分量。
本实施例还提供一种基于SM2算法的解密装置,如图7所示,其为基于SM2算法的解密装置示意图。该装置包括:
验证模块2001,用于在需要对基于SM2算法的公钥加密后的密文进行解密时,验证密文中包含的椭圆曲线上的点C1是否满足椭圆曲线方程;
结束模块2002,用于若不满足,结束解密操作;
获取模块2003,用于若满足,则获取各解密密钥分量与点C1的乘积;其中,点C1是由密文C中的比特串C1转换得到的,点C1是SM2椭圆曲线上的点;
确定模块2004,用于将各解密密钥分量与点C1的乘积的和,确定为SM2解密密钥与点C1的乘积;
解密模块2005,用于依照国家密码管理局发布的SM2算法中的解密算法、根据计算的SM2解密密钥与点C1的乘积进行后续解密处理,得到所述密文的明文。
进一步的,获取模块2003具体包括:
获取单元,用于获取各解密密钥分量的密钥管理设备计算的解密密钥分量与点C1的乘积。
本申请实施例还提供了密钥管理设备侧的基于SM2算法的解密装置,如图8所示,其为本申请实施例的装置示意图。该装置包括:
计算模块3001,用于计算所持解密密钥分量与椭圆曲线上的点C1的乘积;其中,所述解密密钥分量为SM2解密密钥在区间[1,N]中分割得到的大数;点C1是密文中包含的椭圆曲线上的点;
第二发送模块3002,用于发送计算的解密密钥分量与椭圆曲线上的点C1的乘积给解密设备。
在介绍了本申请示例性实施方式的基于SM2算法的解密密钥分割及解密方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的计算装置。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本申请的计算装置可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本申请各种示例性实施方式的基于SM2算法的解密密钥分割及解密方法中的步骤。例如,处理器可以执行如图3中所示的步骤301-303。
下面参照图9来描述根据本申请的这种实施方式的计算装置130。图9显示的计算装置130仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图9所示,计算装置130以通用计算装置的形式表现。计算装置130的组件可以包括但不限于:上述至少一个处理器131、上述至少一个存储器132、连接不同系统组件(包括存储器132和处理器131)的总线133。
总线133表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器132可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1321和/或高速缓存存储器1322,还可以进一步包括只读存储器(ROM)1323。
存储器132还可以包括具有一组(至少一个)程序模块1324的程序/实用工具1325,这样的程序模块1324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置130也可以与一个或多个外部设备134(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置130交互的设备通信,和/或与使得该计算装置130能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口135进行。并且,计算装置130还可以通过网络适配器136与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器136通过总线133与用于计算装置130的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置130使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的基于SM2算法的解密密钥分割及解密方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的基于SM2算法的解密密钥分割及解密方法中的步骤,例如,计算机设备可以执行如图3中所示的步骤301-303。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的基于SM2算法的解密密钥分割及解密的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算装置,或者,可以连接到外部计算装置(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种基于SM2算法的解密密钥分割方法,其特征在于,所述方法包括:
在SM2解密密钥所在的区间[1,N]中选取n-1个大数;其中,N为SM2椭圆曲线上点群的阶;n为大于等于2的正整数;
根据选取的大数,将SM2解密密钥在区间[1,N]中分割为n个解密密钥分量;
将n个解密密钥分量,发送给不同的密钥管理设备存储。
2.根据权利要求1所述的方法,其特征在于,根据选取的大数,将SM2解密密钥在区间[1,N]中分割为n个解密密钥分量,具体包括:
将选取的每个大数确定为一个解密密钥分量,得到n-1个解密密钥分量;
确定SM2解密密钥在所述区间[1,N]中的点与所述n-1个解密密钥分量之和的差值,并对差值取模后得到第n个解密密钥分量。
3.一种基于SM2算法的解密方法,其特征在于,所述方法包括:
在需要对基于SM2算法的公钥加密后的密文进行解密时,验证密文中包含的椭圆曲线上的点C1是否满足椭圆曲线方程;
若不满足,结束解密操作;
若满足,则获取各解密密钥分量与点C1的乘积;其中,点C1是由密文C中的比特串C1转换得到的,点C1是SM2椭圆曲线上的点;
将各解密密钥分量与点C1的乘积的和,确定为SM2解密密钥与点C1的乘积;
依照国家密码管理局发布的SM2算法中的解密算法、根据计算的SM2解密密钥与点C1的乘积进行后续解密处理,得到所述密文的明文。
4.根据权利要求3所述的方法,其特征在于,获取各解密密钥分量与点C1的乘积,具体包括:
获取各解密密钥分量的密钥管理设备计算的解密密钥分量与点C1的乘积。
5.一种基于SM2算法的解密方法,其特征在于,所述方法包括:
接收到获取各解密密钥分量与点C1的乘积的指令;
计算所持解密密钥分量与椭圆曲线上的点C1的乘积;其中,所述解密密钥分量为SM2解密密钥在区间[1,N]中分割得到的大数;点C1是密文中包含的椭圆曲线上的点;
发送计算的解密密钥分量与椭圆曲线上的点C1的乘积给解密设备。
6.一种基于SM2算法的解密密钥分割装置,其特征在于,所述装置包括:
选点模块,用于在SM2解密密钥所在的区间[1,N]中选取n-1个大数;其中,N为SM2椭圆曲线上点群的阶;n为大于等于2的正整数;
分割模块,用于根据选取的大数,将SM2解密密钥在区间[1,N]中分割为n个解密密钥分量;
第一发送模块,用于将n个解密密钥分量,发送给不同的密钥管理设备存储。
7.根据权利要求6所述的装置,其特征在于,分割模块具体包括:
确定单元,用于将选取的每个大数确定为一个解密密钥分量,得到n-1个解密密钥分量;
计算单元,用于确定SM2解密密钥在所述区间[1,N]中的点与所述n-1个解密密钥分量之和的差值,并对差值取模后得到第n个解密密钥分量。
8.一种基于SM2算法的解密装置,其特征在于,所述装置包括:
验证模块,用于在需要对基于SM2算法的公钥加密后的密文进行解密时,验证密文中包含的椭圆曲线上的点C1是否满足椭圆曲线方程;
结束模块,用于若不满足,结束解密操作;
获取模块,用于若满足,则获取各解密密钥分量与点C1的乘积;其中,点C1是由密文C中的比特串C1转换得到的,点C1是SM2椭圆曲线上的点;
确定模块,用于将各解密密钥分量与点C1的乘积的和,确定为SM2解密密钥与点C1的乘积;
解密模块,用于依照国家密码管理局发布的SM2算法中的解密算法、根据计算的SM2解密密钥与点C1的乘积进行后续解密处理,得到所述密文的明文。
9.根据权利要求8所述的装置,其特征在于,获取模块具体包括:
获取单元,用于获取各解密密钥分量的密钥管理设备计算的解密密钥分量与点C1的乘积。
10.一种基于SM2算法的解密装置,其特征在于,所述装置包括:
计算模块,用于计算所持解密密钥分量与椭圆曲线上的点C1的乘积;其中,所述解密密钥分量为SM2解密密钥在区间[1,N]中分割得到的大数;点C1是密文中包含的椭圆曲线上的点;
第二发送模块,用于发送计算的解密密钥分量与椭圆曲线上的点C1的乘积给解密设备。
CN201811216779.5A 2018-10-18 2018-10-18 基于sm2算法的解密密钥分割及解密方法、装置和介质 Pending CN109257176A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811216779.5A CN109257176A (zh) 2018-10-18 2018-10-18 基于sm2算法的解密密钥分割及解密方法、装置和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811216779.5A CN109257176A (zh) 2018-10-18 2018-10-18 基于sm2算法的解密密钥分割及解密方法、装置和介质

Publications (1)

Publication Number Publication Date
CN109257176A true CN109257176A (zh) 2019-01-22

Family

ID=65045569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811216779.5A Pending CN109257176A (zh) 2018-10-18 2018-10-18 基于sm2算法的解密密钥分割及解密方法、装置和介质

Country Status (1)

Country Link
CN (1) CN109257176A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110958114A (zh) * 2019-10-25 2020-04-03 武汉大学 一种两方协同sm2密钥生成、密文解密方法与介质
CN111130786A (zh) * 2019-10-25 2020-05-08 武汉大学 一种多方协同sm2密钥生成、密文解密方法与介质
CN112131593A (zh) * 2020-09-29 2020-12-25 深圳壹账通智能科技有限公司 基于信息的特征的加密方法、装置、设备及储存介质
CN112737783A (zh) * 2019-10-28 2021-04-30 航天信息股份有限公司 一种基于sm2椭圆曲线的解密方法及设备
CN114861191A (zh) * 2022-04-27 2022-08-05 北京计算机技术及应用研究所 一种嵌入式设备安全启动架构及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090290707A1 (en) * 2008-05-22 2009-11-26 James Paul Schneider Generating and Securing Multiple Archive Keys
CN106549770A (zh) * 2017-01-13 2017-03-29 武汉理工大学 Sm2数字签名生成方法及系统
CN106603246A (zh) * 2017-01-22 2017-04-26 武汉理工大学 一种sm2数字签名分割生成方法及系统
CN106850229A (zh) * 2017-01-22 2017-06-13 武汉理工大学 基于乘积秘密分割的sm2数字签名生成方法及系统
CN106961336A (zh) * 2017-04-18 2017-07-18 北京百旺信安科技有限公司 一种基于sm2算法的密钥分量托管方法和系统
CN107294720A (zh) * 2017-07-07 2017-10-24 广东工业大学 一种素域Fp下的SM2椭圆曲线公钥加密算法的硬件实现系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090290707A1 (en) * 2008-05-22 2009-11-26 James Paul Schneider Generating and Securing Multiple Archive Keys
CN106549770A (zh) * 2017-01-13 2017-03-29 武汉理工大学 Sm2数字签名生成方法及系统
CN106603246A (zh) * 2017-01-22 2017-04-26 武汉理工大学 一种sm2数字签名分割生成方法及系统
CN106850229A (zh) * 2017-01-22 2017-06-13 武汉理工大学 基于乘积秘密分割的sm2数字签名生成方法及系统
CN106961336A (zh) * 2017-04-18 2017-07-18 北京百旺信安科技有限公司 一种基于sm2算法的密钥分量托管方法和系统
CN107294720A (zh) * 2017-07-07 2017-10-24 广东工业大学 一种素域Fp下的SM2椭圆曲线公钥加密算法的硬件实现系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110958114A (zh) * 2019-10-25 2020-04-03 武汉大学 一种两方协同sm2密钥生成、密文解密方法与介质
CN111130786A (zh) * 2019-10-25 2020-05-08 武汉大学 一种多方协同sm2密钥生成、密文解密方法与介质
CN112737783A (zh) * 2019-10-28 2021-04-30 航天信息股份有限公司 一种基于sm2椭圆曲线的解密方法及设备
CN112737783B (zh) * 2019-10-28 2022-08-12 航天信息股份有限公司 一种基于sm2椭圆曲线的解密方法及设备
CN112131593A (zh) * 2020-09-29 2020-12-25 深圳壹账通智能科技有限公司 基于信息的特征的加密方法、装置、设备及储存介质
CN114861191A (zh) * 2022-04-27 2022-08-05 北京计算机技术及应用研究所 一种嵌入式设备安全启动架构及方法
CN114861191B (zh) * 2022-04-27 2024-04-05 北京计算机技术及应用研究所 一种嵌入式设备安全启动架构及方法

Similar Documents

Publication Publication Date Title
CN109257176A (zh) 基于sm2算法的解密密钥分割及解密方法、装置和介质
CN109039611B (zh) 基于sm9算法的解密密钥分割及解密方法、装置、介质
CN110061845A (zh) 区块链数据加密方法、装置、计算机设备及存储介质
CN110061840A (zh) 数据加密方法、装置、计算机设备及存储介质
US20120269340A1 (en) Hierarchical encryption/decryption device and method thereof
US10880100B2 (en) Apparatus and method for certificate enrollment
CN107196907B (zh) 一种安卓so文件的保护方法及装置
CN109067528A (zh) 密码运算、创建工作密钥的方法、密码服务平台及设备
JP2023531241A (ja) ポスト量子暗号アルゴリズムのtls統合
CN108632031B (zh) 密钥生成装置及方法、加密装置及方法
WO2020155812A1 (zh) 一种数据存储方法、装置及设备
CN107612683A (zh) 一种加解密方法、装置、系统、设备和存储介质
CN104967693A (zh) 面向云存储的基于全同态密码技术的文档相似度计算方法
US11431489B2 (en) Encryption processing system and encryption processing method
CN107222759A (zh) 媒体文件加解密的方法、系统、设备和介质
WO2021129470A1 (zh) 基于多项式完全同态的二进制数据加密系统及方法
CN105721156A (zh) 用于模幂加密方案的通用编码函数
CN110312054A (zh) 图像的加解密方法、及相关装置、存储介质
CN109687966A (zh) 加密方法及其系统
CN105306212B (zh) 一种身份隐藏且强安全的签密方法
CN116601914A (zh) 混合密钥导出以保护数据
CN109474616A (zh) 多平台数据共享方法和装置及计算机可读存储介质
CN109600225B (zh) 一种密钥交换方法、装置和存储介质
CN109981551A (zh) 一种基于区块链的数据传输系统、方法及相关设备
JP2009267900A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190122

RJ01 Rejection of invention patent application after publication