CN111130786A - 一种多方协同sm2密钥生成、密文解密方法与介质 - Google Patents
一种多方协同sm2密钥生成、密文解密方法与介质 Download PDFInfo
- Publication number
- CN111130786A CN111130786A CN201911024400.5A CN201911024400A CN111130786A CN 111130786 A CN111130786 A CN 111130786A CN 201911024400 A CN201911024400 A CN 201911024400A CN 111130786 A CN111130786 A CN 111130786A
- Authority
- CN
- China
- Prior art keywords
- user
- bit string
- ciphertext
- calculating
- calculate
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
- H04L9/3221—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
Abstract
本发明涉及一种多方协同SM2密钥生成、密文解密方法与介质,通过以下技术方案实现:参加算法产生的t个参与者,在集合{1,...,n}中随机选取xi,并通过交互产生SM2密文的验证公钥Q。t个参与者都计算部分密文C′1发并广播,最后可以由一个或者多个用户计算出最终的明文M′。本发明具有实现复杂度低、安全性高、易验证等特点,使用于多方在不泄漏各自部分私钥的情况下协同解密SM2密文,解密过程必须t方同时参与,解密SM2密文的过程不会泄漏原始的解密私钥,保证了私钥的安全性,提高了多方解密SM2密文的公平性。
Description
技术领域
本发明涉及一种SM2密钥生成、密文解密方法与介质,尤其是涉及一种多方协同SM2密钥生成、密文解密方法与介质。
背景技术
随着科学技术的飞速发展,云计算、雾计算等平台为数据的存储和传输提供了强大的支撑平台,给人们的日常生活提供了更多的便利。新的体系结构给数据的完整性、机密性、可用性带来了新的挑战,数据的安全和隐私问题已经成为人们高度关注的问题。
对于此类问题,比较常见的解决方法是将私钥分割为多份后发给多个参与方,当需要使用私钥进行解密时,t个被分割的密钥份额可以恢复用户的原始私钥,如果低于t个参与者,则无法恢复原始私钥。一旦私钥被恢复,拥有原始私钥的一方都可以在其他参与方不知晓的情况下对密文进行解密。
针对这种情况,本专利设计了一种多方协同解密SM2密文的方案,此方案在多方协同解密的情况下,既能保证解密的正确性,又能保证私钥不被泄露,且产生解密的过程中必须由多方同时参与。
SM2是由国家密码管理局颁布的一种椭圆曲线公钥密码算法(参见《SM2椭圆曲线公钥密码算法》规范,国家密码管理局,2010年12月),基于此算法能实现数字签名、密钥交换及数据加密。在这里,不同于各种普通的密钥分割或门限秘密分割。本专利提出的多方协同解密SM2密文的方法与系统,必须在多方共同运算下才能解密,并且任何一方都无法得到原始解密私钥。
目前现有的普通的密钥分割或门限秘密分割能够将密钥进行分割,但是在解密的阶段,密钥会被恢复并被某一方所掌握,这样降低了多方解密的安全性和公平性,持有完整私钥的一方可以在其他用户不知情的情况下完成解密。
发明内容
本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种多方协同SM2密钥生成方法,其特征在于,包括:
步骤1、用户Ui从{1,...,n}中随机选取一个数xi,计算Qi=x1G,并生成Q1的零知识证明πi,将Qi和πi广播给其他用户;
一种计算机存储介质,其特征在于,存储有计算机程序,运行计算机程序包括以下步骤:
步骤1、用户Ui从{1,...,n}中随机选取一个数xi,计算Qi=x1G,并生成Q1的零知识证明πi,将Qi和πi广播给其他用户;
一种多方协同SM2密文解密方法,其特征在于,包括:
步骤1、从密文C中提取比特串C1,按照SM2规范将C1的数据类型转换成椭圆曲线上的点,验证C1是否满足椭圆曲线方程,若不满足则报错并退出;
步骤2、用户Ui(1≤i≤t)计算Si=xiC1;用户Ui(2≤i≤t)生成Si的零知识证明πt+i,并将Si和πt+i发送给U1;
步骤4、用户U1按照SM2规范,使用SM2原始解密步骤继续计算明文:
步骤4.1、计算S的坐标(sx,sy),将坐标sx、sy的数据类型转换为比特串;
步骤4.2、计算t=KDF(sx||sy,klen),若t为全0比特串,则报错并退出;
步骤4.4、计算u=Hash(sx|M′||sy),从C中提取比特串C3,若u≠C3,则报错并退出;
步骤4.5、输出明文M′。
一种计算机存储介质,其特征在于,存储有计算机程序,运行计算机程序包括以下步骤:
步骤1、从密文C中提取比特串C1,按照SM2规范将C1的数据类型转换成椭圆曲线上的点,验证C1是否满足椭圆曲线方程,若不满足则报错并退出;
步骤2、用户Ui(1≤i≤t)计算Si=xiC1;用户Ui(2≤i≤t)生成Si的零知识证明πt+i,并将Si和πt+i发送给U1;
步骤4、用户U1按照SM2规范,使用SM2原始解密步骤继续计算明文:
步骤4.1、计算S的坐标(sx,sy),将坐标sx、sy的数据类型转换为比特串;
步骤4.2、计算t=KDF(sx|sy,klen),若t为全0比特串,则报错并退出;
步骤4.4、计算u=Hash(sx|M′||sy),从C中提取比特串C3,若u≠C3,则报错并退出;
步骤4.5、输出明文M′。
因此,本发明具有如下优点:本发明具有实现复杂度低、安全性高、易验证等特点,使用于多方在不泄漏各自部分私钥的情况下协同解密SM2密文,解密过程必须t方同时参与,解密SM2密文的过程不会泄漏原始的解密私钥,保证了私钥的安全性,提高了多方解密SM2密文的公平性。。
附图说明
附图1是本发明中多方协同产生密钥对的流程示意图。
附图2是本发明中多方协同SM2解密的流程示意图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
下面结合实施例及附图对本方案做详细的描述,以下实施方案只表示本发明一种可能的实施方式,不是全部可能的实施方案,不作为对本发明的限定。
一、符号及定义
Ui:第i个用户。
x:SM2用户的解密私钥。
e:密码杂凑函数作用于消息m的输出值。
G:椭圆曲线的一个基点,其阶为素数。
HashO:消息摘要长度为v比特的密码杂凑函数。
KDFO:密钥派生函数。
M:待加密的消息。
M′:解密得到的消息。
mod n:模n运算。例如,23mod7≡2。
n:基点G的阶。
O:椭圆曲线上的一个特殊点,称为无穷远点或零点,是椭圆曲线加法群的单位元。
x||y:x与y的拼接,其中x,y可以是比特串或字节串。
kP:椭圆曲线上点P的k倍点,k是正整数。
{x,y}:大于或等于x且小于或等于y的整数的集合。
(rx,ry):某一点的x坐标的值和y坐标的值。
C=(C1,C2,C3):SM2密文
∑iai:将所有的ai都累加起来,即a1+ai+…+an。
∑i,j∈saibj:将所有i,j属于集合S的aibj累加起来,即a1∑j∈sbj+a2∑j∈sbj+…+an∑j∈sbj。
对于本方案,需要t个用户构成的集合S中的所有用户参与,假设第t(2≤t≤n)个用户是Ui。
二、多方协同产生密钥对阶段:
1、用户Ui从{1,...,n}中随机选取一个数xi,计算Qi=x1G,并生成Q1的零知识证明πi,将Qi和πi广播给其他用户。
三、多方协同SM2解密阶段
1、从密文C中提取比特串C1,按照SM2规范将C1的数据类型转换成椭圆曲线上的点,验证C1是否满足椭圆曲线方程,若不满足则报错并退出。
2、用户Ui(1≤i≤t)计算Si=xiC1。用户Ui(2≤i≤t)生成Si的零知识证明πt+i,并将Si和πt+i发送给U1。
4、用户U1按照SM2规范,使用SM2原始解密步骤继续计算明文:
1)计算S的坐标(sx,sy),将坐标sx、sy的数据类型转换为比特串;
2)计算t=KDF(sx||sy,klen),若t为全0比特串,则报错并退出;
4)计算u=Hash(sx||M′||sy),从C中提取比特串C3,若u≠C3,则报错并退出;
5)输出明文M′。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (4)
3.一种多方协同SM2密文解密方法,其特征在于,包括:
步骤1、从密文C中提取比特串C1,按照SM2规范将C1的数据类型转换成椭圆曲线上的点,验证C1是否满足椭圆曲线方程,若不满足则报错并退出;
步骤2、用户Ui(1≤i≤t)计算Si=xiC1;用户Ui(2≤i≤t)生成Si的零知识证明πt+i,并将Si和πt+i发送给U1;
步骤4、用户U1按照SM2规范,使用SM2原始解密步骤继续计算明文:
步骤4.1、计算S的坐标(sx,sy),将坐标sx、sy的数据类型转换为比特串;
步骤4.2、计算t=KDF(sx|sy,klen),若t为全0比特串,则报错并退出;
步骤4.4、计算u=Hash(sx||M′|sy),从C中提取比特串C3,若u≠C3,则报错并退出;
步骤4.5、输出明文M′。
4.一种计算机存储介质,其特征在于,存储有计算机程序,运行计算机程序包括以下步骤:
步骤1、从密文C中提取比特串C1,按照SM2规范将C1的数据类型转换成椭圆曲线上的点,验证C1是否满足椭圆曲线方程,若不满足则报错并退出;
步骤2、用户Ui(1≤i≤t)计算Si=xiC1;用户Ui(2≤i≤t)生成Si的零知识证明πt+i,并将Si和πt+i发送给U1;
步骤4、用户U1按照SM2规范,使用SM2原始解密步骤继续计算明文:
步骤4.1、计算S的坐标(sx,sy),将坐标sx、sy的数据类型转换为比特串;
步骤4.2、计算t=KDF(sx||sy,klen),若t为全0比特串,则报错并退出;
步骤4.4、计算u=Hash(sx|M′||sy||),从C中提取比特串C3,若u≠C3,则报错并退出;
步骤4.5、输出明文M′。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911024400.5A CN111130786A (zh) | 2019-10-25 | 2019-10-25 | 一种多方协同sm2密钥生成、密文解密方法与介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911024400.5A CN111130786A (zh) | 2019-10-25 | 2019-10-25 | 一种多方协同sm2密钥生成、密文解密方法与介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111130786A true CN111130786A (zh) | 2020-05-08 |
Family
ID=70495432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911024400.5A Pending CN111130786A (zh) | 2019-10-25 | 2019-10-25 | 一种多方协同sm2密钥生成、密文解密方法与介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111130786A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111865578A (zh) * | 2020-07-09 | 2020-10-30 | 暨南大学 | 一种基于sm2的多接收方公钥加密方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014120121A1 (en) * | 2013-01-29 | 2014-08-07 | Certicom Corp. | Modified sm2 elliptic curve signature algorithm supporting message recovery |
CN107634836A (zh) * | 2017-09-05 | 2018-01-26 | 何德彪 | 一种sm2数字签名生成方法及系统 |
CN109257176A (zh) * | 2018-10-18 | 2019-01-22 | 天津海泰方圆科技有限公司 | 基于sm2算法的解密密钥分割及解密方法、装置和介质 |
CN109547212A (zh) * | 2018-12-04 | 2019-03-29 | 中国电子科技集团公司第三十研究所 | 一种基于sm2签名算法的门限签名方法 |
CN110278088A (zh) * | 2019-07-18 | 2019-09-24 | 广州安研信息科技有限公司 | 一种sm2协同签名方法 |
-
2019
- 2019-10-25 CN CN201911024400.5A patent/CN111130786A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014120121A1 (en) * | 2013-01-29 | 2014-08-07 | Certicom Corp. | Modified sm2 elliptic curve signature algorithm supporting message recovery |
CN107634836A (zh) * | 2017-09-05 | 2018-01-26 | 何德彪 | 一种sm2数字签名生成方法及系统 |
CN109257176A (zh) * | 2018-10-18 | 2019-01-22 | 天津海泰方圆科技有限公司 | 基于sm2算法的解密密钥分割及解密方法、装置和介质 |
CN109547212A (zh) * | 2018-12-04 | 2019-03-29 | 中国电子科技集团公司第三十研究所 | 一种基于sm2签名算法的门限签名方法 |
CN110278088A (zh) * | 2019-07-18 | 2019-09-24 | 广州安研信息科技有限公司 | 一种sm2协同签名方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111865578A (zh) * | 2020-07-09 | 2020-10-30 | 暨南大学 | 一种基于sm2的多接收方公钥加密方法 |
CN111865578B (zh) * | 2020-07-09 | 2022-11-29 | 暨南大学 | 一种基于sm2的多接收方公钥加密方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107196763B (zh) | Sm2算法协同签名及解密方法、装置与系统 | |
CN109474422B (zh) | 一种多方协同产生sm2数字签名的方法 | |
CN109951443B (zh) | 一种云环境下隐私保护的集合交集计算方法及系统 | |
CN107707358B (zh) | 一种ec-kcdsa数字签名生成方法及系统 | |
CN109088726B (zh) | 基于sm2算法的通信双方协同签名及解密方法和系统 | |
US10122710B2 (en) | Binding a data transaction to a person's identity using biometrics | |
CN108667627B (zh) | 基于两方协同的sm2数字签名方法 | |
CN111510281B (zh) | 一种同态加密方法及装置 | |
CN111106936A (zh) | 一种基于sm9的属性加密方法与系统 | |
CN109639439B (zh) | 一种基于两方协同的ecdsa数字签名方法 | |
CN109547199B (zh) | 一种多方联合生成sm2数字签名的方法 | |
CN112906030B (zh) | 基于多方全同态加密的数据共享方法和系统 | |
CN111010285B (zh) | 一种适用于轻量级客户端的sm2两方协同签名方法及介质 | |
CN113711564A (zh) | 用于加密数据的计算机实现的方法和系统 | |
CN111010276A (zh) | 一种多方联合sm9密钥生成、密文解密方法与介质 | |
CN113297633B (zh) | 一种量子数字签名方法 | |
JP2004336794A (ja) | 暗号システム内でユーザ定義idに基づく公開鍵を発生する方法と機器 | |
CN110855425A (zh) | 一种轻量级多方协同sm9密钥生成、密文解密方法与介质 | |
CN111030801A (zh) | 一种多方分布式的sm9密钥生成、密文解密方法与介质 | |
CN111049738B (zh) | 基于混合加密的电子邮件数据安全保护方法 | |
CN117118617A (zh) | 一种基于模分量同态的分布式门限加解密方法 | |
CN113132104A (zh) | 一种主动安全的ecdsa数字签名两方生成方法 | |
CN117353912A (zh) | 基于双线性映射的三方隐私集合交集基数计算方法及系统 | |
CN111130786A (zh) | 一种多方协同sm2密钥生成、密文解密方法与介质 | |
CN110958114A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200508 |