CN110855425A - 一种轻量级多方协同sm9密钥生成、密文解密方法与介质 - Google Patents

一种轻量级多方协同sm9密钥生成、密文解密方法与介质 Download PDF

Info

Publication number
CN110855425A
CN110855425A CN201911024010.8A CN201911024010A CN110855425A CN 110855425 A CN110855425 A CN 110855425A CN 201911024010 A CN201911024010 A CN 201911024010A CN 110855425 A CN110855425 A CN 110855425A
Authority
CN
China
Prior art keywords
key
len
private key
bit
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
Application number
CN201911024010.8A
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.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
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 Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN201911024010.8A priority Critical patent/CN110855425A/zh
Publication of CN110855425A publication Critical patent/CN110855425A/zh
Pending legal-status Critical Current

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/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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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
    • H04L9/3073Public 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 involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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/3218Cryptographic 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

Abstract

本发明涉及一种轻量级多方协同SM9密钥生成、密文解密方法与介质,通过以下技术方案实现:KGC为参与解密的通信方生成对应的部分私钥。收到部分私钥后,第n通信方Un计算第一个临时变量En=[rn]C1并返回给Un‑1。Un‑1收到En后,计算第二个临时变量En‑1=[rn‑1]En并返回给Un‑2,…,如此继续下去,直到U1收到E2后,计算第n个临时变量wn=e(E2,Q1),并按SM9解密算法解密计算,最终输出明文M′。本发明具有安全性高、通信代价小等优点,通信方在不泄漏各自部分私钥的前提下,必须共同参与才能完成对消息的完整解密。在基本操作运算中,双线性映射计算代价比较大,本方案中,双线性操作是由一个通信方来完成的,从而降低其他通信方的计算代价并减少了交互次数。

Description

一种轻量级多方协同SM9密钥生成、密文解密方法与介质
技术领域
本发明涉及一种SM9密钥生成、密文解密方法与介质,尤其是涉及一种轻量级多方协同SM9密钥生成、密文解密方法与介质。
背景技术
随着科学技术的飞速发展,云计算、雾计算等平台为数据的存储和传输提供了强大的支撑平台。新的体系结构给数据的完整性、机密性、可用性带来了新的挑战,数据的安全和隐私问题也同时受到高度关注。
公钥密码算法是实现消息机密性、完整性和不可否认性的关键技术,已经广泛应用于电子商务、电子政务等多个领域。这些算法的安全性取决于对密钥的安全存储和使用,一旦密钥泄露则安全性无从谈起。(t,n)门限秘密共享将用户的私钥分割成n份,只有将t份放在一起,私钥才可以通过一定的算法重构出来,而少于这个数量的份额无法重构私钥,t被称作门限。在(t,n)门限秘密共享方案中,私钥会被其中一个参与方恢复,拥有原始私钥的参与方可以在其他参与方不知晓的情况下对密文进行解密。
针对这种情况,本专利设计了一种多方协同解密SM9密文的方案,此方案在多方协同解密的情况下,既能保证解密的正确执行,又能保证私钥不被泄露,且产生解密的过程中必须由多方同时参与。
SM9标识密码算法是一种基于双线性对的标识密码算法,在该算法中用户的身份标识是用户的公钥,用户的私钥由私钥生成中心KGC根据用户的身份产生。SM9算法该算法于2015年发布为国家密码行业标准(GM/T 0044-2016),主要包括数字签名、加密、密钥交换等内容。
发明内容
本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种轻量级多方协同SM9密钥生成方法,其特征在于,包括:
步骤1、生成主私钥,具体是密钥生成中心选择随机数ke∈{1,...,q-1}作为主私钥,计算Ppub-e=[ke]P1作为系统公钥;密钥生成中心秘密保存ke,公开Ppub-e;密钥生成中心选择并公开用一个字节表示的私钥生成函数识别符hid;对于双线性对及Hash相关的内容,对应《SM9标识密码算法》文档规范;
步骤2、生成私钥,具体是给定用户的身份ID,为产生用户的部分私钥,具体包括:
步骤2.1、密钥生成中心计算一个临时变量t1=H1(ID||hid,q)+ke,若t1=0,则重新产生主密钥,计算和系统公钥,并更新已有用户的部分私钥;否则,计算第二个临时变量
Figure BDA0002248115070000021
其中
Figure BDA0002248115070000022
表示t1模q的逆元,即
Figure BDA0002248115070000023
步骤2.2、密钥生成中心随机选择r2,r3,...,rn∈{1,...,q-1},计算r1=(r2r3…rn)-1t2mod q;
步骤2.3、密钥生成中心设置第1部分私钥
Figure BDA0002248115070000024
第2部分私钥
Figure BDA0002248115070000025
第n-1部分私钥
Figure BDA0002248115070000026
第n部分私钥
Figure BDA0002248115070000027
步骤2.4、密钥生成中心将部分私钥
Figure BDA0002248115070000028
分别发给对应的每个通信方Ui
一种计算机存储介质,其特征在于,存储有计算机程序,运行计算机程序包括以下步骤:
步骤1、生成主私钥,具体是密钥生成中心选择随机数ke∈{1,...,q-1}作为主私钥,计算Ppub-e=[ke]P1作为系统公钥;密钥生成中心秘密保存ke,公开Ppub-e;密钥生成中心选择并公开用一个字节表示的私钥生成函数识别符hid;
步骤2、生成私钥,具体是给定用户的身份ID,为产生用户的部分私钥,具体包括:
步骤2.1、密钥生成中心计算一个临时变量t1=H1(ID||hid,q)+ke,若t1=0,则重新产生主密钥,计算和系统公钥,并更新已有用户的部分私钥;否则,计算第二个临时变量
Figure BDA0002248115070000029
其中
Figure BDA00022481150700000210
表示t1模q的逆元,即
Figure BDA00022481150700000211
步骤2.2、密钥生成中心随机选择r2,r3,...,rn∈{1,...,q-1},计算r1=(r2r3…rn)-1t2 mod q;
步骤2.3、密钥生成中心设置第1部分私钥
Figure BDA00022481150700000212
第2部分私钥
Figure BDA00022481150700000213
第n-1部分私钥
Figure BDA00022481150700000214
第n部分私钥
Figure BDA00022481150700000215
步骤2.4、密钥生成中心将部分私钥
Figure BDA0002248115070000031
分别发给对应的每个通信方Ui
一种轻量级多方协同SM9密文的解密方法,其特征在于,包括:定义密文C=C1||C3||C2的比特长度为mlen,分组密码算法中密钥K1的比特长度为K1_len,函数MAC(K2,Z)中密钥K2的比特长度为K2_len;为了对密文C解密,n个通信方进行如下步骤的交互:
步骤1、第n个通信方Un从密文C中提取出比特串C1,将C1的数据类型转换为椭圆曲线上的点,验证C1∈G1是否成立,如果不成立则报错并退出;否则,Un计算第一个临时变量En=[rn]C1,并将En发送给Un-1
步骤2、Un-1收到En后,计算第二个临时变量En-1=[rn-1]En,并将En-1发送给Un-2;…;
步骤3、U2收到E3后,计算第n-1个临时变量E2=[r2]E3,并将E2发送给U1
步骤4、U1收到E2后,计算第n个临时变量wn=e(E2,Q1),并将wn的数据类型转换为比特串;U1使用SM9解密算法进行解密计算:
步骤4.1、若加密明文的方法是基于密钥派生函数的序列密码算法,则
步骤4.11、计算klen=mlen+K2_len,然后计算K′=KDF(C1||wn||IDB,klen);设K1′为K′前mlen比特,K2′为K′的后K2_len比特,如果K1′为全0比特串,则报错并退出;
步骤4.12、否则,计算
Figure BDA0002248115070000032
步骤4.2、若加密明文的方法是基于密钥派生函数的分组密码算法,则
步骤4.21、计算klen=K1_len+K2_len,然后计算K′=KDF(C1||wn||IDB,klen);设K1′为K′前K1_len比特,K2′为K′的后K2_len比特,如果K1′为全0比特串,则报错并退出;
步骤4.22、否则,计算M′=Dec(K1′,C2),其中Dec(·)为分组解密算法;
步骤4.3、计算u=MAC(K2′,C2),从C中取出比特串C3,如果u≠C3,则报错并退出;
步骤4.4、否则,输出明文M′。
在上述的一种轻量级多方协同SM9密文的解密方法,步骤2中,在每个通信方Ui发送Ei至Ui-1的同时,为了达到更安全的级别,Ui可以产生并发送一个Ei的零知识证明,即证明Ei是关于ri的一个离散对数,同时验证Ei是G1中的元素。
一种计算机存储介质,其特征在于,存储有计算机程序,运行计算机程序包括以下步骤:
定义密文C=C1||C3||C2的比特长度为mlen,分组密码算法中密钥K1的比特长度为K1_len,函数MAC(K2,Z)中密钥K2的比特长度为K2_len;为了对密文C解密,n个通信方进行如下步骤的交互:
步骤1、第n个通信方Un从密文C中提取出比特串C1,将C1的数据类型转换为椭圆曲线上的点,验证C1∈G1是否成立,如果不成立则报错并退出;否则,Un计算第一个临时变量En=[rn]C1,并将En发送给Un-1
步骤2、Un-1收到En后,计算第二个临时变量En-1=[rn-1]En,并将En-1发送给Un-2;…;
步骤3、U2收到E3后,计算第n-1个临时变量E2=[r2]E3,并将E2发送给U1
步骤4、U1收到E2后,计算第n个临时变量wn=e(E2,Q1),并将wn的数据类型转换为比特串;U1使用SM9解密算法进行解密计算:
步骤4.1、若加密明文的方法是基于密钥派生函数的序列密码算法,则
步骤4.11、计算klen=mlen+K2_len,然后计算K′=KDF(C1||wn||IDB,klen);设K1′为K′前mlen比特,K2′为K′的后K2_len比特,如果K1′为全0比特串,则报错并退出;
步骤4.12、否则,计算
Figure BDA0002248115070000041
步骤4.2、若加密明文的方法是基于密钥派生函数的分组密码算法,则
步骤4.21、计算klen=K1_len+K2_len,然后计算K′=KDF(C1||wn||IDB,klen);设K1′为K′前K1_len比特,K2′为K′的后K2_len比特,如果K1′为全0比特串,则报错并退出;
步骤4.22、否则,计算M′=Dec(K1′,C2),其中Dec(·)为分组解密算法;
步骤4.3、计算u=MAC(K2′,C2),从C中取出比特串C3,如果u≠C3,则报错并退出;
步骤4.4、否则,输出明文M′。
在上述的一种计算机存储介质,在每个通信方Ui发送Ei至Ui-1的同时,为了达到更安全的级别,Ui可以产生并发送一个Ei的零知识证明,即证明Ei是关于ri的一个离散对数,同时验证Ei是G1中的元素。
因此,本发明具有如下优点:本发明具有安全性高、通信代价小等优点,通信方在不泄漏各自部分私钥的前提下,必须共同参与才能完成对消息的完整解密。在基本操作运算中,双线性映射计算代价比较大,本方案中,双线性操作是由一个通信方来完成的,从而降低其他通信方的计算代价并减少了交互次数。
附图说明
附图1是本发明的方法解密流程示意图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
在以下对本发明的描述中,密钥生成中心(KGC)是一个可信机构,它主要负责生成系统参数、主私钥以及用户的私钥。
一、符号及定义
KDF(·):密钥派生函数。
MAC(·):消息认证码函数。
G1,G2:阶为素数q的加法循环群。
GT:阶为素数q的乘法循环群。
e:从G1×G2到GT的双线性对。
gu:乘法群GT中g的u次幂,即其中u是正整数。
H1(·),H2(·):由{0,1}*的密码杂凑函数。
IDC:通信方C的标识,可以唯一确定通信方C的公钥。
Figure BDA0002248115070000053
通信方C的解密私钥。
mod q:模q运算。例如,27(mod5)≡2。
q:循环群G1,G2和GT的阶,且q>2191为素数。
P1,P2:分别是群G1和G2的生成元。
[u]P:加法群G1,G2中元素P的u倍。
x||y:x与y的拼接,其中x和y是比特串或字节串。
{x,y}:不小于x且不大于y的整数的集合。
Ui:用户的第i个通信方。
在系统初始化阶段,KGC选择随机数ke∈{1,...,q-1}作为主私钥,计算Ppub-e=[ke]P1作为系统公钥。KGC秘密保存ke,公开Ppub-e。KGC选择并公开用一个字节表示的私钥生成函数识别符hid。对于双线性对及Hash相关的内容,对应《SM9标识密码算法》文档规范。
二、私钥生成算法
给定用户的身份ID,为产生用户的部分私钥,KGC执行下列操作:
1)KGC计算一个临时变量t1=H1(ID||hid,q)+ke,若t1=0,则重新产生主密钥,计算和系统公钥,并更新已有用户的部分私钥;否则,计算第二个临时变量
Figure BDA0002248115070000061
其中
Figure BDA0002248115070000062
表示t1模q的逆元,即
Figure BDA0002248115070000063
2)KGC随机选择r2,r3,...,rn∈{1,...,q-1},计算r1=(r2r3…rn)-1t2mod q。
3)KGC设置第1部分私钥
Figure BDA0002248115070000064
第2部分私钥
Figure BDA0002248115070000065
第n-1部分私钥
Figure BDA0002248115070000066
第n部分私钥
Figure BDA0002248115070000067
4)KGC将部分私锈
Figure BDA0002248115070000068
分别发给对应的每个通信方Ui
三、解密算法
设密文C=C1||C3||C2的比特长度为mlen,分组密码算法中密钥K1的比特长度为K1_len,函数MAC(K2,Z)中密钥K2的比特长度为K2_len。为了对密文C解密,n个通信方进行如下交互:
1)第n个通信方Un从密文C中提取出比特串C1,将C1的数据类型转换为椭圆曲线上的点,验证C1∈G1是否成立,如果不成立则报错并退出;否则,Un计算第一个临时变量En=[rn]C1,并将En发送给Un-1
2)Un-1收到En后,计算第二个临时变量En-1=[rn-1]En,并将En-1发送给Un-2
3)...
4)U2收到E3后,计算第n-1个临时变量E2=[r2]E3,并将E2发送给U1
5)U1收到E2后,计算第n个临时变量wn=e(E2,Q1),并将wn的数据类型转换为比特串。U1使用SM9解密算法进行解密计算:
a)若加密明文的方法是基于密钥派生函数的序列密码算法,则
1、计算klen=mlen+K2_len,然后计算K′=KDF(C1||wn||IDB,klen)。设K1′为K′前mlen比特,K2′为K′的后K2_len比特,如果K1′为全0比特串,则报错并退出;
2、否则,计算
Figure BDA0002248115070000071
b)若加密明文的方法是基于密钥派生函数的分组密码算法,则
3、计算klen=K1_len+K2_len,然后计算K′=KDF(C1||wn||IDB,klen)。设K1′为K′前K1_len比特,K2′为K′的后K2_len比特,如果K1′为全0比特串,则报错并退出;
4、否则,计算M′=Dec(K1′,C2),其中Dec(·)为分组解密算法。
c)计算u=MAC(K2′,C2),从C中取出比特串C3,如果u≠C3,则报错并退出;
d)否则,输出明文M′。
在每个通信方Ui发送Ei至Ui-1的同时,为了达到更安全的级别,Ui可以产生并发送一个Ei的零知识证明,即证明Ei是关于ri的一个离散对数,同时验证Ei是G1中的元素。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (6)

1.一种轻量级多方协同SM9密钥生成方法,其特征在于,包括:
步骤1、生成主私钥,具体是密钥生成中心选择随机数ke∈{1,...,q-1}作为主私钥,计算Ppub-e=[ke]P1作为系统公钥;密钥生成中心秘密保存ke,公开Ppub-e;密钥生成中心选择并公开用一个字节表示的私钥生成函数识别符hid;
步骤2、生成私钥,具体是给定用户的身份ID,为产生用户的部分私钥,具体包括:
步骤2.1、密钥生成中心计算一个临时变量t1=H1(ID||hid,q)+ke,若t1=0,则重新产生主密钥,计算和系统公钥,并更新已有用户的部分私钥;否则,计算第二个临时变量
Figure FDA0002248115060000011
其中
Figure FDA0002248115060000012
表示t1模q的逆元,即
Figure FDA0002248115060000013
步骤2.2、密钥生成中心随机选择r2,r3,...,rn∈{1,...,q-1},计算r1=(r2r3…rn)- 1t2mod q;
步骤2.3、密钥生成中心设置第1部分私钥
Figure FDA0002248115060000014
第2部分私钥
Figure FDA0002248115060000015
第n-1部分私钥
Figure FDA0002248115060000016
第n部分私钥
Figure FDA0002248115060000017
步骤2.4、密钥生成中心将部分私钥分别发给对应的每个通信方Ui
2.一种计算机存储介质,其特征在于,存储有计算机程序,运行计算机程序包括以下步骤:
步骤1、生成主私钥,具体是密钥生成中心选择随机数ke∈{1,...,q-1}作为主私钥,计算Ppub-e=[ke]P1作为系统公钥;密钥生成中心秘密保存ke,公开Ppub-e;密钥生成中心选择并公开用一个字节表示的私钥生成函数识别符hid;
步骤2、生成私钥,具体是给定用户的身份ID,为产生用户的部分私钥,具体包括:
步骤2.1、密钥生成中心计算一个临时变量t1=H1(ID||hid,q)+ke,若t1=0,则重新产生主密钥,计算和系统公钥,并更新已有用户的部分私钥;否则,计算第二个临时变量
Figure FDA0002248115060000019
其中
Figure FDA00022481150600000110
表示t1模q的逆元,即
Figure FDA00022481150600000111
步骤2.2、密钥生成中心随机选择r2,r3,...,rn∈{1,...,q-1},计算r1=(r2r3…rn)- 1t2mod q;
步骤2.3、密钥生成中心设置第1部分私钥
Figure FDA0002248115060000021
第2部分私钥
Figure FDA0002248115060000022
第n-1部分私钥
Figure FDA0002248115060000023
第n部分私钥
步骤2.4、密钥生成中心将部分私钥分别发给对应的每个通信方Ui
3.一种轻量级多方协同SM9密文的解密方法,其特征在于,包括:定义密文C=C1||C3||C2的比特长度为mlen,分组密码算法中密钥K1的比特长度为K1_len,函数MAC(K2,Z)中密钥K2的比特长度为K2_len;为了对密文C解密,n个通信方进行如下步骤的交互:
步骤1、第n个通信方Un从密文C中提取出比特串C1,将C1的数据类型转换为椭圆曲线上的点,验证C1∈G1是否成立,如果不成立则报错并退出;否则,Un计算第一个临时变量En=[rn]C1,并将En发送给Un-1
步骤2、Un-1收到En后,计算第二个临时变量En-1=[rn-1]En,并将En-1发送给Un-2;…;
步骤3、U2收到E3后,计算第n-1个临时变量E2=[r2]E3,并将E2发送给U1
步骤4、U1收到E2后,计算第n个临时变量wn=e(E2,Q1),并将wn的数据类型转换为比特串;U1使用SM9解密算法进行解密计算:
步骤4.1、若加密明文的方法是基于密钥派生函数的序列密码算法,则
步骤4.11、计算klen=mlen+K2_len,然后计算K′=KDF(C1||wn||IDB,klen);设K1′为K′前mlen比特,K2′为K′的后K2_len比特,如果K1′为全0比特串,则报错并退出;
步骤4.12、否则,计算
Figure FDA0002248115060000026
步骤4.2、若加密明文的方法是基于密钥派生函数的分组密码算法,则
步骤4.21、计算klen=K1_len+K2_len,然后计算K′=KDF(C1||wn||IDB,klen);设K1′为K′前K1_len比特,K2′为K′的后K2_len比特,如果K1′为全0比特串,则报错并退出;
步骤4.22、否则,计算M′=Dec(K1′,C2),其中Dec(·)为分组解密算法;
步骤4.3、计算u=MAC(K2′,C2),从C中取出比特串C3,如果u≠C3,则报错并退出;
步骤4.4、否则,输出明文M′。
4.根据权利要求3所述的一种轻量级多方协同SM9密文的解密方法,其特征在于,步骤2中,在每个通信方Ui发送Ei至Ui-1的同时,为了达到更安全的级别,Ui可以产生并发送一个Ei的零知识证明,即证明Ei是关于ri的一个离散对数,同时验证Ei是G1中的元素。
5.一种计算机存储介质,其特征在于,存储有计算机程序,运行计算机程序包括以下步骤:
定义密文C=C1||C3||C2的比特长度为mlen,分组密码算法中密钥K1的比特长度为K1_len,函数MAC(K2,Z)中密钥K2的比特长度为K2_len;为了对密文C解密,n个通信方进行如下步骤的交互:
步骤1、第n个通信方Un从密文C中提取出比特串C1,将C1的数据类型转换为椭圆曲线上的点,验证C1∈G1是否成立,如果不成立则报错并退出;否则,Un计算第一个临时变量En=[rn]C1,并将En发送给Un-1
步骤2、Un-1收到En后,计算第二个临时变量En-1=[rn-1]En,并将En-1发送给Un-2;…;
步骤3、U2收到E3后,计算第n-1个临时变量E2=[r2]E3,并将E2发送给U1
步骤4、U1收到E2后,计算第n个临时变量wn=e(E2,Q1),并将wn的数据类型转换为比特串;U1使用SM9解密算法进行解密计算:
步骤4.1、若加密明文的方法是基于密钥派生函数的序列密码算法,则
步骤4.11、计算klen=mlen+K2_len,然后计算K′=KDF(C1||wn||IDB,klen);设K1′为K′前mlen比特,K2′为K′的后K2_len比特,如果K1′为全0比特串,则报错并退出;
步骤4.12、否则,计算
Figure FDA0002248115060000031
步骤4.2、若加密明文的方法是基于密钥派生函数的分组密码算法,则
步骤4.21、计算klen=K1_len+K2_len,然后计算K′=KDF(C1||wn||IDB,klen);设K1′为K′前K1_len比特,K2′为K′的后K2_len比特,如果K1′为全0比特串,则报错并退出;
步骤4.22、否则,计算M′=Dec(K1′,C2),其中Dec(·)为分组解密算法;
步骤4.3、计算u=MAC(K2′,C2),从C中取出比特串C3,如果u≠C3,则报错并退出;
步骤4.4、否则,输出明文M′。
6.根据权利要求1所述的一种计算机存储介质,其特征在于,步骤2中,在每个通信方Ui发送Ei至Ui-1的同时,为了达到更安全的级别,Ui可以产生并发送一个Ei的零知识证明,即证明Ei是关于ri的一个离散对数,同时验证Ei是G1中的元素。
CN201911024010.8A 2019-10-25 2019-10-25 一种轻量级多方协同sm9密钥生成、密文解密方法与介质 Pending CN110855425A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911024010.8A CN110855425A (zh) 2019-10-25 2019-10-25 一种轻量级多方协同sm9密钥生成、密文解密方法与介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911024010.8A CN110855425A (zh) 2019-10-25 2019-10-25 一种轻量级多方协同sm9密钥生成、密文解密方法与介质

Publications (1)

Publication Number Publication Date
CN110855425A true CN110855425A (zh) 2020-02-28

Family

ID=69598059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911024010.8A Pending CN110855425A (zh) 2019-10-25 2019-10-25 一种轻量级多方协同sm9密钥生成、密文解密方法与介质

Country Status (1)

Country Link
CN (1) CN110855425A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111614456A (zh) * 2020-05-06 2020-09-01 武汉大学 一种针对sm4算法的多方协同加/解密方法及介质
CN111901111A (zh) * 2020-08-06 2020-11-06 成都卫士通信息产业股份有限公司 Sm9密钥生成方法、装置、系统及可读存储介质
CN112910647A (zh) * 2021-04-13 2021-06-04 三未信安科技股份有限公司 一种基于sm9的分布式协同解密方法及系统
CN113381850A (zh) * 2021-06-25 2021-09-10 成都卫士通信息产业股份有限公司 一种sm9用户密钥生成方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170222807A1 (en) * 2014-01-13 2017-08-03 South China University Of Technology Hypersphere-based multivariable public key encryption/decryption system and method
CN107566128A (zh) * 2017-10-10 2018-01-09 武汉大学 一种两方分布式sm9数字签名生成方法与系统
CN108418686A (zh) * 2017-11-23 2018-08-17 矩阵元技术(深圳)有限公司 一种多分布式的sm9解密方法与介质及密钥生成方法
CN108551392A (zh) * 2018-04-13 2018-09-18 武汉大学 一种基于sm9数字签名的盲签名生成方法及系统
CN109194478A (zh) * 2018-11-19 2019-01-11 武汉大学 一种非对称环境下多方联合生成sm9数字签名的方法
CN110011802A (zh) * 2019-02-27 2019-07-12 武汉大学 一种高效的sm9两方协同生成数字签名的方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170222807A1 (en) * 2014-01-13 2017-08-03 South China University Of Technology Hypersphere-based multivariable public key encryption/decryption system and method
CN107566128A (zh) * 2017-10-10 2018-01-09 武汉大学 一种两方分布式sm9数字签名生成方法与系统
CN108418686A (zh) * 2017-11-23 2018-08-17 矩阵元技术(深圳)有限公司 一种多分布式的sm9解密方法与介质及密钥生成方法
CN108551392A (zh) * 2018-04-13 2018-09-18 武汉大学 一种基于sm9数字签名的盲签名生成方法及系统
CN109194478A (zh) * 2018-11-19 2019-01-11 武汉大学 一种非对称环境下多方联合生成sm9数字签名的方法
CN110011802A (zh) * 2019-02-27 2019-07-12 武汉大学 一种高效的sm9两方协同生成数字签名的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
何德彪等: "基于区块链的物联网密钥协商协议", 《中兴通讯技术》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111614456A (zh) * 2020-05-06 2020-09-01 武汉大学 一种针对sm4算法的多方协同加/解密方法及介质
CN111614456B (zh) * 2020-05-06 2022-04-01 武汉大学 一种针对sm4算法的多方协同加密方法
CN111901111A (zh) * 2020-08-06 2020-11-06 成都卫士通信息产业股份有限公司 Sm9密钥生成方法、装置、系统及可读存储介质
CN111901111B (zh) * 2020-08-06 2023-07-25 成都卫士通信息产业股份有限公司 Sm9密钥生成方法、装置、系统及可读存储介质
CN112910647A (zh) * 2021-04-13 2021-06-04 三未信安科技股份有限公司 一种基于sm9的分布式协同解密方法及系统
CN112910647B (zh) * 2021-04-13 2022-07-29 三未信安科技股份有限公司 一种基于sm9的分布式协同解密方法及系统
CN113381850A (zh) * 2021-06-25 2021-09-10 成都卫士通信息产业股份有限公司 一种sm9用户密钥生成方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN108418686B (zh) 一种多分布式的sm9解密方法与介质及密钥生成方法与介质
CN111106936B (zh) 一种基于sm9的属性加密方法与系统
CN107707358B (zh) 一种ec-kcdsa数字签名生成方法及系统
JP4712017B2 (ja) ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法
US7363496B2 (en) Authenticated ID-based cryptosystem with no key escrow
CN111010276A (zh) 一种多方联合sm9密钥生成、密文解密方法与介质
CN107395368B (zh) 无介质环境中的数字签名方法及解封装方法与解密方法
KR100930577B1 (ko) 스트림 암호를 이용한 메시지 인증 코드 생성 방법과스트림 암호를 이용한 인증 암호화 방법 및 스트림 암호를이용한 인증 복호화 방법
CN110855425A (zh) 一种轻量级多方协同sm9密钥生成、密文解密方法与介质
CN112564907B (zh) 密钥生成方法及装置、加密方法及装置、解密方法及装置
CN111030801A (zh) 一种多方分布式的sm9密钥生成、密文解密方法与介质
CN112699394B (zh) 一种基于sm9算法的密钥应用方法
CN112152813B (zh) 一种支持隐私保护的无证书内容提取签密方法
CN113132104A (zh) 一种主动安全的ecdsa数字签名两方生成方法
CN110943845A (zh) 一种轻量级两方协同产生sm9签名的方法及介质
Hoobi Efficient hybrid cryptography algorithm
Schaefer An introduction to cryptography and Cryptanalysis
JP4563037B2 (ja) 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法
CN116318636A (zh) 一种基于sm2的门限签名方法
CN110224835B (zh) 一种无证书的身份隐藏认证加密方法
Bohli et al. On subliminal channels in deterministic signature schemes
Rogobete et al. Hashing and Message Authentication Code Implementation. An Embedded Approach.
Tseng et al. An efficient anonymous key agreement protocol based on chaotic maps
CN115037441B (zh) 一种基于同态运算的sm2协同签名方法、装置及系统
Al-Doori et al. Securing IoT Networks with NTRU Cryptosystem: A Practical Approach on ARM-based Devices for Edge and Fog Layer Integration.

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: 20200228