CN107425971B - 无证书的数据加/解密方法和装置、终端 - Google Patents
无证书的数据加/解密方法和装置、终端 Download PDFInfo
- Publication number
- CN107425971B CN107425971B CN201710277898.0A CN201710277898A CN107425971B CN 107425971 B CN107425971 B CN 107425971B CN 201710277898 A CN201710277898 A CN 201710277898A CN 107425971 B CN107425971 B CN 107425971B
- Authority
- CN
- China
- Prior art keywords
- decryption
- key
- encryption
- calculating
- identification
- 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.)
- Active
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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/3247—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 involving digital signatures
- H04L9/3252—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 involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Abstract
本发明揭示了一种无证书的数据加/解密的方法和装置、终端,其中方法包括:加密端通过解密端获取密钥生成中心公开的系统参数,生成加密公钥和解密私钥的密钥对;利用随机数、所述系统参数和解密端的标识ID_B生成基于标识加密方法的加密密钥U,以及利用所述随机数、所述加密公钥生成基于公钥加密方法的加密密钥V,并使用所述加密密钥U、加密密钥V和密钥派生函数KDF派生数据加密密钥对消息M进行加密,生成消息M的加密密文;通过所述解密端利用所述系统参数、标识ID_B对应的标识解密私钥D_B和所述解密私钥对所述加密密文进行解密。本发明无需证书管理系统,同时又保证只有确定的密文接收方才能解密密文。
Description
技术领域
本发明涉及到数据加密领域,特别是涉及到一种无证书的数据加/解密的方法和装置、终端。
背景技术
传统的公钥加密系统,需要有安全的公钥发布机制,如基于证书的PKI(PublicKeyInfrastructure的首字母缩写,公钥基础设施)来将用户的身份和用户的公钥关联。标识密码系统中用户的标识就可以用做用户的公钥,更加准确地说是:用户的公钥利用用户的指定标识和一个公开的系统参数,通过指定的一个方法计算得出。在这种情况下,用户不需要申请和交换证书,从而很大地简化了标识密码系统管理的复杂性。
用户的私钥由标识密码系统中的一受信任的第三方如“密钥生成中心”使用标识私钥生成方法计算生成。标识密码系统是一种密钥委托的系统,即“密钥生成中心”的控制方可以生成任意标识的私钥,进而解密所有的密文。
如何无需证书,又保证只有确定的密文接收方才能解密密文,是需要解决的问题。
发明内容
本发明的主要目的为提供一种方法简单的无证书的数据加/解密的方法和装置。
为了实现上述发明目的,本发明提出一种无证书的数据加/解密的方法,包括:
加密端通过解密端获取密钥生成中心公开的系统参数,生成加密公钥和解密私钥的密钥对;
利用随机数、所述系统参数和解密端的标识ID_B生成基于标识加密方法的加密密钥U,以及利用所述随机数、所述加密公钥生成基于公钥加密方法的加密密钥V,并使用所述加密密钥U、加密密钥V和密钥派生函数KDF派生数据加密密钥对消息M进行加密,生成消息M的加密密文;
通过所述解密端利用所述系统参数、标识ID_B对应的标识解密私钥D_B和所述解密私钥对所述加密密文进行解密。
进一步地,所述密钥生成中心公开的系统参数为<E,e,P1,P2,[s]P1,H,KDF,MAC>;其中,
E为密钥生成中心选择的一条椭圆曲线;
e为双线性对;
P1和P2为点群G1和G2中的两个点;G1和G2为椭圆曲线E上的两个阶为素数q的点群;
s为主私钥,其为随机选择的0到q之间的整数;
[s]P1为s个P1相加;
H为映射函数,其将一个比特串O映射到[1,q-1]上;
KDF为标准的密钥派生函数;
MAC为标准的消息认证码函数。
进一步地,所述解密端的标识解密私钥D_B为:
D_B=[s/(H(1||ID_B)+s)]P2。
进一步地,所述加密端获取密钥生成中心公开的系统参数,生成加密公钥和解密私钥的密钥对的步骤,包括:
所述加密端通过解密端获取密钥生成中心公开的系统参数为<E,e,P1,P2,[s]P1,H,KDF,MAC>;
通过解密端随机选择0<x<q的整数x,将所述x作为所述解密私钥;
通过解密端选择G1中的一个点F1,计算[x]F1,将[x]F1作为所述加密公钥。
进一步地,所述F1=P1。
进一步地,所述利用随机数、所述系统参数和解密端的标识ID_B生成基于标识加密方法的加密密钥U,以及利用所述随机数、所述加密公钥生成基于公钥加密方法的加密密钥V,并使用所述加密密钥U、加密密钥V和密钥派生函数KDF派生数据加密密钥对消息M进行加密,生成消息M的加密密文的步骤,包括:
计算整数h1=H(1||ID_B);
计算解密端的公钥Q_B=[h1]P1+[s]P1;
产生随机数r∈[1,q-1];
计算X=[r]Q_B,将X数据类型转换为比特串C1;
计算Y=[r]F1,将Y数据类型转换为比特串C2;
计算w=gr,将w的数据类型转换为比特串U,其中g=e([s]P1,P2);
计算Z=[r][x]F1,将Z的数据类型转换为比特串V;
准备密钥派生输入XI,其中,所述XI包含U和V的拼接;
计算K1||K2=KDF(XI);
计算C3=M⊕K1;
计算C4=MAC(K2,M);
将<C1,C2,C3,C4>作为输出。
进一步地,所述通过所述解密端利用所述系统参数、标识ID_B对应的标识解密私钥D_B和所述解密私钥对所述加密密文进行解密的步骤,包括:
通过所述解密端将C1的数据类型转换为椭圆曲线上的点X,检验X∈G1是否成立;
若X∈G1不成立,则通过所述解密端直接判定验证失败;
通过所述解密端将C2的数据类型转换为椭圆曲线上的点Y,检验Y∈G1是否成立;
若Y∈G1不成立,则通过所述解密端直接判定验证失败;
若X∈G1和Y∈G1均成立,则通过所述解密端计算w=e(X,D_B);将w的数据类型转换为比特串U;
通过所述解密端计算Z=[x]Y;将Z的数据类型转换为比特串V;
通过所述解密端准备密钥派生输入XI,其中,所述XI包含U和V的拼接;
通过所述解密端计算K1||K2=KDF(XI);
通过所述解密端计算M=C3⊕K1;
通过所述解密端计算C'=MAC(K2,M);
通过所述解密端检验C'=C4是否成立,若成立,则验证通过,输出M;否则验证失败,输出错误。
本发明还提供一种无证书的数据加/解密的装置,包括:
生成单元,用于加密端通过解密端获取密钥生成中心公开的系统参数,生成加密公钥和解密私钥的密钥对;
加密单元,用于利用随机数、所述系统参数和解密端的标识ID_B生成基于标识加密方法的加密密钥U,以及利用所述随机数、所述加密公钥生成基于公钥加密方法的加密密钥V,并使用所述加密密钥U、加密密钥V和密钥派生函数KDF派生数据加密密钥对消息M进行加密,生成消息M的加密密文;
解密单元,用于通过所述解密端利用所述系统参数、标识ID_B对应的标识解密私钥D_B和所述解密私钥对所述加密密文进行解密。
进一步地,所述密钥生成中心公开的系统参数为<E,e,P1,P2,[s]P1,H,KDF,MAC>;其中,
E为密钥生成中心选择的一条椭圆曲线;
e为双线性对;
P1和P2为点群G1和G2中的两个点;G1和G2为椭圆曲线E上的两个阶为素数q的点群;
s为主私钥,其为随机选择的0到q之间的整数;
[s]P1为s个P1相加;
H为映射函数,其将一个比特串O映射到[1,q-1]上;
KDF为标准的密钥派生函数;
MAC为标准的消息认证码函数。
进一步地,所述解密端的标识解密私钥D_B为:
D_B=[s/(H(1||ID_B)+s)]P2。
进一步地,所述生成单元,包括:
获取模块,用于所述加密端通过解密端获取密钥生成中心公开的系统参数为<E,e,P1,P2,[s]P1,H,KDF,MAC>;
第一选择模块,用于通过解密端随机选择0<x<q的整数x,将所述x作为所述解密私钥;
第二选择模块,用于通过解密端选择G1中的一个点F1,计算[x]F1,将[x]F1作为所述加密公钥。
进一步地,所述F1=P1。
进一步地,所述加密单元,包括:
加密第一计算模块,用于计算整数h1=H(1||ID_B);
加密第二计算模块,用于计算解密端的公钥Q_B=[h1]P1+[s]P1;
选择模块,用于产生随机数r∈[1,q-1];
加密第三计算模块,用于计算X=[r]Q_B,将X数据类型转换为比特串C1;
加密第四计算模块,用于计算Y=[r]F1,将Y数据类型转换为比特串C2;
加密第五计算模块,用于计算w=gr,将w的数据类型转换为比特串U,其中g=e([s]P1,P2);
加密第六计算模块,用于计算Z=[r][x]F1,将Z的数据类型转换为比特串V;
加密派生模块,用于准备密钥派生输入XI,其中,所述XI包含U和V的拼接
加密第七计算模块,用于计算K1||K2=KDF(C1||C2||U||V||ID_B);
加密第八计算模块,用于计算C3=M⊕K1;
加密第九计算模块,用于计算C4=MAC(K2,M);
输出模块,用于将<C1,C2,C3,C4>作为输出。
进一步地,所述解密单元,包括:
第一选择判断模块,用于通过所述解密端将C1的数据类型转换为椭圆曲线上的点X,检验X∈G1是否成立;
第一验证模块,用于若X∈G1不成立,则通过所述解密端直接判定验证失败;
第二选择判断模块,用于通过所述解密端将C2的数据类型转换为椭圆曲线上的点Y,检验Y∈G1是否成立;
第二验证模块,用于若Y∈G1不成立,则通过所述解密端直接判定验证失败;
解密第一计算模块,用于若X∈G1和Y∈G1均成立,则通过所述解密端计算w=e(X,D_B);将w的数据类型转换为比特串U;
解密第二计算模块,用于通过所述解密端计算Z=[x]Y;将Z的数据类型转换为比特串V;
解密派生模块,用于通过所述解密端准备密钥派生输入XI,其中,所述XI包含U和V的拼接;
解密第三计算模块,用于通过所述解密端计算K1||K2=KDF(XI);
解密第四计算模块,用于通过所述解密端计算M=C3⊕K1;
解密第五计算模块,用于通过所述解密端计算C'=MAC(K2,M);
第三验证模块,用于通过所述解密端检验C'=C4是否成立,若成立,则验证通过,输出M;否则验证失败,输出错误。
本发明还提供一种无证书的数据加/解密的终端,包括存储器和处理器;所述存储器用于存储支持无证书的数据加/解密的装置执行上述任一项所述的无证书的数据加/解密的方法的程序;所述处理器被配置为用于执行所述存储器中存储的程序。
本发明的无证书的数据加/解密的方法和装置、终端,利用随机数、所述系统参数和解密端的标识ID_B生成基于标识加密方法的加密密钥U,以及利用所述随机数、所述加密公钥生成基于公钥加密方法的加密密钥V,并使用所述加密密钥U、加密密钥V和密钥派生函数KDF派生数据加密密钥对消息M进行加密,无需证书管理系统,同时又保证只有确定的密文接收方才能解密密文。
附图说明
图1为本发明一实施例的无证书的数据加/解密的方法的流程示意图;
图2为本发明一实施例的生成加密公钥和解密私钥的密钥对的方法流程示意图;
图3为本发明一实施例的生成加密文件的方法流程示意图;
图4为本发明一实施例的对加密文件解密的方法流程示意图;
图5为本发明一时实施例的无证书的数据加/解密的装置的结构示意框图;
图6为本发明一实施例的生成单元的结构示意框图;
图7为本发明一实施例的加密单元的结构示意框图;
图8为本发明一实施例的解密单元的结构示意框图;
图9为本发明一实施例的终端的结构示意框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,本发明实施例提供一种无证书的数据加/解密的方法,包括:
S1、加密端通过解密端获取密钥生成中心公开的系统参数,生成加密公钥和解密私钥的密钥对;
S2、利用随机数、所述系统参数和解密端的标识ID_B生成基于标识加密方法的加密密钥U,以及利用所述随机数、所述加密公钥生成基于公钥加密方法的加密密钥V,并使用所述加密密钥U、加密密钥V和密钥派生函数KDF派生数据加密密钥对消息M进行加密,生成消息M的加密密文;
S3、通过所述解密端利用所述系统参数、标识ID_B对应的标识解密私钥D_B和所述解密私钥对所述加密密文进行解密。
如上述步骤S1所述,上述加密端和解密端均为智能电子设备,如电脑、笔记本电脑、智能手机、平板电脑等;智能电子设备在加密时,即为加密端,在解密时,即为解密端。上述密钥生成中心即为密钥管理中心,是公钥基础设施中的一个重要组成部分,提供密钥的生成、保存、备份、更新、恢复、查询等密钥服务,可以解决分布式企业应用环境中大规模密码技术应用所带来的密钥管理问题。上述密钥生成中心公开的系统参数为<E,e,P1,P2,[s]P1,H,KDF,MAC>;其中,
E为密钥生成中心选择的一条椭圆曲线;
e为双线性对;
P1和P2为点群G1和G2中的两个点;G1和G2为椭圆曲线E上的两个阶为素数q的点群;
s为主私钥,其为随机选择的0到q之间的整数;
[s]P1为s个P1相加;
H为映射函数,其将一个比特串O映射到[1,q-1]上;
KDF为标准的密钥派生函数;
MAC为标准的消息认证码函数。
在上述系统参数中还可以加g=e([s]P1,P2),即系统参数为<E,e,P1,P2,[s]P1,g=e([s]P1,P2),H,KDF,MAC>,因为g=e([s]P1,P2)可以通过已知的参数计算得出,所以,可以根据需要加入或不加入上述系统参数中。
上述加密公钥和解密私钥均使用系统参数中的参数计算而成,但是无需在密钥生成中心生成,而是在加密签名端完成,无需将消息M发送至密钥生成中心进行加密处理等。
如上述步骤S2所述,上述加密密文是通过加密密钥U和加密密钥V以及密钥派生函数KDF派生数据加密密钥对消息M进行加密而成,密钥派生函数KDF派生数据加密密钥对消息M进行加密而成,可以保证消息不会被篡改。而且加密密文长度较短。
如上述步骤S3所述,通过解密端利用预设的规则,获取指定的参数对加密密文进行解密。在解密过程中,上述标识解密私钥D_B即为利用解密验签端的标识ID_B和预设的计算规则而获得,本实施例中,D_B=[s/(H(1||ID_B)+s)]P2。在解密过程中,无需调用第三方的数值证书等,无需证书管理系统。
参照图2,上述加密端通过解密端获取密钥生成中心公开的系统参数,生成加密公钥和解密私钥的密钥对的步骤S1,包括:
S101、所述加密端通过解密端获取密钥生成中心公开的系统参数为<E,e,P1,P2,[s]P1,H,KDF,MAC>;
S102、通过解密端随机选择0<x<q的整数x,将所述x作为所述解密私钥;
S103、通过解密端选择G1中的一个点F1,计算[x]F1,将[x]F1作为所述加密公钥。
如上述步骤S101至S103所述,即为生成加密公钥和加密私钥的密钥对过程。本实施例中,可以选择将F1=P1,方便后期加密和解密等。
参照图3,本实施例中,上述利用随机数、所述系统参数和解密端的标识ID_B生成基于标识加密方法的加密密钥U,以及利用所述随机数、所述加密公钥生成基于公钥加密方法的加密密钥V,并使用所述加密密钥U、加密密钥V和密钥派生函数KDF派生数据加密密钥对消息M进行加密,生成消息M的加密密文的步骤S2,包括:
S201、计算整数h1=H(1||ID_B);
S202、计算解密端的公钥Q_B=[h1]P1+[s]P1;
S203、产生随机数r∈[1,q-1];
S204、计算X=[r]Q_B,将X数据类型转换为比特串C1;
S205、计算Y=[r]F1,将Y数据类型转换为比特串C2;
S206、计算w=gr,将w的数据类型转换为比特串U,其中g=e([s]P1,P2);
S207、计算Z=[r][x]F1,将Z的数据类型转换为比特串V;
S208、准备密钥派生输入XI,其中,所述XI包含U和V的拼接,可选地,还可包括C1、C2、ID_B;
S209、计算K1||K2=KDF(XI);
S210、计算C3=M⊕K1;
S211、计算C4=MAC(K2,M);
S212、将<C1,C2,C3,C4>作为输出。
如上述步骤S201至S212所述,即为利用上述加密公钥和加密私钥等参数给消息M进行加密的具体过程,加密密文的长度较小。而且相对现有技术而言,恶意攻击方获取到加密密文后,即使得到上述系统参数和加密密钥U等,因为无法获取加密密钥V而无法解密。
参照图4,上述通过所述解密端利用所述系统参数、标识ID_B对应的标识解密私钥D_B和所述解密私钥对所述加密密文进行解密的步骤S3,包括:
S301、通过所述解密端将C1的数据类型转换为椭圆曲线上的点X,检验X∈G1是否成立;
S302、若X∈G1不成立,则通过所述解密端直接判定验证失败;
S303、通过所述解密端将C2的数据类型转换为椭圆曲线上的点Y,检验Y∈G1是否成立;
S304、若Y∈G1不成立,则通过所述解密端直接判定验证失败;
S305、若X∈G1和Y∈G1均成立,则通过所述解密端计算w=e(X,D_B);将w的数据类型转换为比特串U;
S306、通过所述解密端计算Z=[x]Y;将Z的数据类型转换为比特串V;
S307、通过所述解密端准备密钥派生输入XI,其中,所述XI包含U和V的拼接,可选地还可包括C1、C2、ID_B;
S308、通过所述解密端计算K1||K2=KDF(XI);
S309、通过所述解密端计算M=C3⊕K1;
S310、通过所述解密端计算C'=MAC(K2,M);
S311、通过所述解密端检验C'=C4是否成立,若成立,则验证通过,输出M;否则验证失败,输出错误。
如上述步骤S301至S311所述,即为解密加密密文的过程,解密过程无需调用证书等,简单而安全。
在一具体实施例中,整个加密解密过程中,需要三方协作,即密钥生成中心、加密端和解密端,其过程具体为:
双线性对是一种具有以下三个特性的二元映射e:G1xG2→Gt
1.二元线性:e([s]P,[t]Q)=e(P,Q)st.s,t∈Z/Zq.P∈G1,Q∈G2,G1是一个阶为q的循环群,G2是一个幂为q群,其子群阶为q.[s]P表示s个P相加。
2.非退化性:存在非0元P和Q,e(P,Q)≠1.
3.可计算性:有多项式时间方法计算e(P,Q).
现在已知的双线性对有椭圆曲线上的Weil、Tate、Ate、R-ate、优化Ate对等。
步骤A、密钥生成中心选择一条椭圆曲线E,其特征是有可高效计算的双线性对e。确定曲线E上的两个阶为素数q的点群G1和G2。分别选择G1和G2中的两个点P1和P2。随机选择0<s<q的整数s作为主私钥,计算[s]P1以及g=e([s]P1,P2)。其中[s]P表示标准的s个P相加。密钥生成中心公开参数<E,e,P1,P2,[s]P1,g=e([s]P1,P2),H,KDF,MAC>。其中消息映射函数H将一个比特串O映射到[1,q-1]上,KDF是标准的密钥派生函数,MAC是标准的消息认证码函数。
步骤B、密钥生成中心生成解密端的标识ID_B对应的标识解密私钥:D_B=[s/(H(1||ID_B)+s)]P2。
步骤C、解密端获得密钥生成中心公开参数<E,e,P1,P2,[s]P1,g=e([s]P1,P2),H,KDF,MAC>后,随机选择0<x<q的整数x,选择G1中的一个点F1,计算[x]F1,将[x]F1作为其公钥数据,x作为解密私钥。可选的方法是设置F1=P1。
步骤D、加密端获得系统参数<E,e,P1,P2,[s]P1,g=e([s]P1,P2),H,KDF,MAC>以及加密公钥[x]F1后,对消息M进行加密给标识ID_B。加密方法为:
D1:计算整数h1=H(1||ID_B);
D2:计算Q_B=[h1]P1+[s]P1;
D3:产生随机数r[1,q-1];
D4:计算X=[r]Q_B,将X数据类型转换为比特串C1;
D5:计算Y=[r]F1,将Y数据类型转换为比特串C2;
D6:计算w=gr,将w的数据类型转换为比特串U;
D7:计算Z=[r][x]F1,将Z的数据类型转换为比特串V;
D8:计算K1||K2=KDF(C1||C2||U||V||ID_B);
D9:计算C3=M⊕K1;
D10:计算C4=MAC(K2,M);
D11:将<C1,C2,C3,C4>作为输出。
步骤E、解密端使用系统参数<E,e,P1,P2,[s]P1,g=e([s]P1,P2),H,KDF,MAC>以及标识解密私钥x,对密文<C1,C2,C3,C4>解密。
E1:将C1的数据类型转换为椭圆曲线上的点X,检验X∈G1是否成立,若不成立则解密失败;
E2:将C2的数据类型转换为椭圆曲线上的点Y,检验Y∈G1是否成立,若不成立则解密失败;
E3:计算w=e(X,D_B);将w的数据类型转换为比特串U;
E4:计算Z=[x]Y;将Z的数据类型转换为比特串V;
Z=[r][x]F1=[x][r]F1=[x]Y
E5:计算K1||K2=KDF(C1||C2||U||V||ID_B);
E6:计算M=C3⊕K1;
E7:计算C'=MAC(K2,M);
E8:检验C'=C4是否成立,若成立则验证通过,输出M;否则验证不通过,输出错误。
本发明实施例的无证书的数据加/解密的方法,利用随机数、所述系统参数和解密端的标识ID_B生成基于标识加密方法的加密密钥U,以及利用所述随机数、所述加密公钥生成基于公钥加密方法的加密密钥V,并使用所述加密密钥U、加密密钥V和密钥派生函数KDF派生数据加密密钥对消息M进行加密,无需证书管理系统,同时又保证只有确定的密文接收方才能解密密文。
参照图5,本发明实施例还提供一种无证书的数据加/解密的装置,包括:
生成单元10,用于加密端通过解密端获取密钥生成中心公开的系统参数,生成加密公钥和解密私钥的密钥对;
加密单元20,用于利用随机数、所述系统参数和解密端的标识ID_B生成基于标识加密方法的加密密钥U,以及利用所述随机数、所述加密公钥生成基于公钥加密方法的加密密钥V,并使用所述加密密钥U、加密密钥V和密钥派生函数KDF派生数据加密密钥对消息M进行加密,生成消息M的加密密文;
解密单元30,用于通过所述解密端利用所述系统参数、标识ID_B对应的标识解密私钥D_B和所述解密私钥对所述加密密文进行解密。
如上述生成单元10,上述加密端和解密端均为智能电子设备,如电脑、笔记本电脑、智能手机、平板电脑等;智能电子设备在加密时,即为加密端,在解密时,即为解密端。上述密钥生成中心即为密钥管理中心,是公钥基础设施中的一个重要组成部分,提供密钥的生成、保存、备份、更新、恢复、查询等密钥服务,可以解决分布式企业应用环境中大规模密码技术应用所带来的密钥管理问题。上述密钥生成中心公开的系统参数为<E,e,P1,P2,[s]P1,H,KDF,MAC>;其中,
E为密钥生成中心选择的一条椭圆曲线;
e为双线性对;
P1和P2为点群G1和G2中的两个点;G1和G2为椭圆曲线E上的两个阶为素数q的点群;
s为主私钥,其为随机选择的0到q之间的整数;
[s]P1为s个P1相加;
H为映射函数,其将一个比特串O映射到[1,q-1]上;
KDF为标准的密钥派生函数;
MAC为标准的消息认证码函数。
在上述系统参数中还可以加g=e([s]P1,P2),即系统参数为<E,e,P1,P2,[s]P1,g=e([s]P1,P2),H,KDF,MAC>,因为g=e([s]P1,P2)可以通过已知的参数计算得出,所以,可以根据需要加入或不加入上述系统参数中。
上述加密公钥和解密私钥均使用系统参数中的参数计算而成,但是无需在密钥生成中心生成,而是在加密签名端完成,无需将消息M发送至密钥生成中心进行加密处理等。
如上述加密单元20,上述加密密文是通过加密密钥U和加密密钥V以及密钥派生函数KDF派生数据加密密钥对消息M进行加密而成,密钥派生函数KDF派生数据加密密钥对消息M进行加密而成,可以保证消息不会被篡改。而且加密密文长度较短。
如上述解密单元30,通过解密端利用预设的规则,获取指定的参数对加密密文进行解密。在解密过程中,上述标识解密私钥D_B即为利用解密验签端的标识ID_B和预设的计算规则而获得,本实施例中,D_B=[s/(H(1||ID_B)+s)]P2。在解密过程中,无需调用第三方的数值证书等,无需证书管理系统。
参照图6,上述生成单元10,包括:
获取模块101,用于所述加密端通过解密端获取密钥生成中心公开的系统参数为<E,e,P1,P2,[s]P1,H,KDF,MAC>;
第一选择模块102,用于通过解密端随机选择0<x<q的整数x,将所述x作为所述解密私钥;
第二选择模块103,用于通过解密端选择G1中的一个点F1,计算[x]F1,将[x]F1作为所述加密公钥。
上述获取模块101、第一选择模块102和第二选择模块103,即为生成加密公钥和加密私钥的模块。本实施例中,可以选择将F1=P1,方便后期加密和解密等。
参照图7,上述加密单元20,包括:
加密第一计算模块201,用于计算整数h1=H(1||ID_B);
加密第二计算模块202,用于计算解密端的公钥Q_B=[h1]P1+[s]P1;
选择模块203,用于产生随机数r∈[1,q-1];
加密第三计算模块204,用于计算X=[r]Q_B,将X数据类型转换为比特串C1;
加密第四计算模块205,用于计算Y=[r]F1,将Y数据类型转换为比特串C2;
加密第五计算模块206,用于计算w=gr,将w的数据类型转换为比特串U,其中g=e([s]P1,P2);
加密第六计算模块207,用于计算Z=[r][x]F1,将Z的数据类型转换为比特串V;
加密派生模块208,用于准备密钥派生输入XI,其中,所述XI包含U和V的拼接,可选地还可包括C1、C2、ID_B;
加密第七计算模块209,用于计算K1||K2=KDF(XI);
加密第八计算模块210,用于计算C3=M⊕K1;
加密第九计算模块211,用于计算C4=MAC(K2,M);
输出模块212,用于将<C1,C2,C3,C4>作为输出。
上述即为利用上述加密公钥和加密私钥等参数给消息M进行加密的具体模块,加密密文的长度较小。而且相对现有技术而言,恶意攻击方获取到加密密文后,即使得到上述系统参数和加密密钥U等,因为无法获取加密密钥V而无法解密。
参照图8,上述解密单元30,包括:
第一选择判断模块301,用于通过所述解密端将C1的数据类型转换为椭圆曲线上的点X,检验X∈G1是否成立;
第一验证模块302,用于若X∈G1不成立,则通过所述解密端直接判定验证失败;
第二选择判断模块303,用于通过所述解密端将C2的数据类型转换为椭圆曲线上的点Y,检验Y∈G1是否成立;
第二验证模块304,用于若Y∈G1不成立,则通过所述解密端直接判定验证失败;
解密第一计算模块305,用于若X∈G1和Y∈G1均成立,则通过所述解密端计算w=e(X,D_B);将w的数据类型转换为比特串U;
解密第二计算模块306,用于通过所述解密端计算Z=[x]Y;将Z的数据类型转换为比特串V;
解密派生模块307,用于通过所述解密端解密第三计算模块准备密钥派生输入XI,其中,所述XI包含U和V的拼接,可选地,还可包括C1、C2、ID_B;
解密第三计算模块308,用于通过所述解密端计算K1||K2=KDF(XI);
解密第四计算模块309,用于通过所述解密端计算M=C3⊕K1;
解密第五计算模块310,用于通过所述解密端计算C'=MAC(K2,M);
第三验证模块311,用于通过所述解密端检验C'=C4是否成立,若成立,则验证通过,输出M;否则验证失败,输出错误。
上述即为解密加密密文的模块,解密过程无需调用证书等,简单而安全。
本发明实施例的无证书的数据加/解密的装置,利用随机数、所述系统参数和解密端的标识ID_B生成基于标识加密方法的加密密钥U,以及利用所述随机数、所述加密公钥生成基于公钥加密方法的加密密钥V,并使用所述加密密钥U、加密密钥V和密钥派生函数KDF派生数据加密密钥对消息M进行加密,无需证书管理系统,同时又保证只有确定的密文接收方才能解密密文。
参照图9,本发明实施例还提供一种无证书的数据加/解密的终端400,包括存储器401和处理器402;所述存储器401用于存储支持无证书的数据加/解密的装置执行上述任一实施例中所述的无证书的数据加/解密的方法的程序;所述处理器402被配置为用于执行所述存储器中存储的程序.
上述终端400可以为智能电子设备,如电脑、笔记本电脑、智能手机、平板电脑等。
上述终端400,在加密时,即为加密端,在解密时,即为解密端。
本发明实施例的终端400,利用随机数、所述系统参数和解密端的标识ID_B生成基于标识加密方法的加密密钥U,以及利用所述随机数、所述加密公钥生成基于公钥加密方法的加密密钥V,并使用所述加密密钥U、加密密钥V和密钥派生函数KDF派生数据加密密钥对消息M进行加密,无需证书管理系统,同时又保证只有确定的密文接收方才能解密密文。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种无证书的数据加/解密的方法,其特征在于,包括:
加密端通过解密端获取密钥生成中心公开的系统参数,生成加密公钥和解密私钥的密钥对;所述密钥生成中心公开的系统参数为<E,e,P1,P2,[s]P1,H,KDF,MAC>;其中,E为密钥生成中心选择的一条椭圆曲线;e为双线性对;P1和P2为点群G1和G2中的两个点;G1和G2为椭圆曲线E上的两个阶为素数q的点群;s为主私钥,其为随机选择的0到q之间的整数;[s]P1为s个P1相加;H为映射函数,其将一个比特串O映射到[1,q-1]上;KDF为标准的密钥派生函数;MAC为标准的消息认证码函数;
利用随机数、所述系统参数和解密端的标识ID_B生成基于标识加密方法的加密密钥U,以及利用所述随机数、所述加密公钥生成基于公钥加密方法的加密密钥V,并使用所述加密密钥U、加密密钥V和密钥派生函数KDF派生数据加密密钥对消息M进行加密,生成消息M的加密密文;其中,所述密钥派生函数KDF的派生输入包含加密密钥U和加密密钥V的拼接;
通过所述解密端利用所述系统参数、标识ID_B对应的标识解密私钥D_B和所述解密私钥对所述加密密文进行解密;
其中,所述加密端通过解密端获取密钥生成中心公开的系统参数,生成加密公钥和解密私钥的密钥对的步骤,包括:
所述加密端通过解密端获取密钥生成中心公开的系统参数为<E,e,P1,P2,[s]P1,H,KDF,MAC>;
通过解密端随机选择0<x<q的整数x,将所述x作为所述解密私钥;
通过解密端选择G1中的一个点F1,计算[x]F1,将[x]F1作为所述加密公钥,且所述F1=P1。
2.根据权利要求1所述的无证书的数据加/解密的方法,其特征在于,所述解密端的标识解密私钥D_B为:
D_B=[s/(H(1||ID_B)+s)]P2。
3.根据权利要求1所述的无证书的数据加/解密的方法,其特征在于,所述利用随机数、所述系统参数和解密端的标识ID_B生成基于标识加密方法的加密密钥U,以及利用所述随机数、所述加密公钥生成基于公钥加密方法的加密密钥V,并使用所述加密密钥U、加密密钥V和密钥派生函数KDF派生数据加密密钥对消息M进行加密,生成消息M的加密密文的步骤,包括:
计算整数h1=H(1||ID_B);
计算解密端的公钥Q_B=[h1]P1+[s]P1;
产生随机数r∈[1,q-1];
计算X=[r]Q_B,将X数据类型转换为比特串C1;
计算Y=[r]F1,将Y数据类型转换为比特串C2;
计算w=gr,将w的数据类型转换为比特串U,其中g=e([s]P1,P2);
计算Z=[r][x]F1,将Z的数据类型转换为比特串V;
准备密钥派生输入XI,其中,所述XI包含U和V的拼接;
计算K1||K2=KDF(XI);
计算C3=M⊕K1;
计算C4=MAC(K2,M);
将<C1,C2,C3,C4>作为输出。
4.根据权利要求3所述的无证书的数据加/解密的方法,其特征在于,所述通过所述解密端利用所述系统参数、标识ID_B对应的标识解密私钥D_B和所述解密私钥对所述加密密文进行解密的步骤,包括:
通过所述解密端将C1的数据类型转换为椭圆曲线上的点X,检验X∈G1是否成立;
若X∈G1不成立,则通过所述解密端直接判定验证失败;
通过所述解密端将C2的数据类型转换为椭圆曲线上的点Y,检验Y∈G1是否成立;
若Y∈G1不成立,则通过所述解密端直接判定验证失败;
若X∈G1和Y∈G1均成立,则通过所述解密端计算w=e(X,D_B);将w的数据类型转换为比特串U;
通过所述解密端计算Z=[x]Y;将Z的数据类型转换为比特串V;
通过所述解密端准备密钥派生输入XI,其中,所述XI包含U和V的拼接;
通过所述解密端计算K1||K2=KDF(XI);
通过所述解密端计算M=C3⊕K1;
通过所述解密端计算C'=MAC(K2,M);
通过所述解密端检验C'=C4是否成立,若成立,则验证通过,输出M;否则验证失败,输出错误。
5.一种无证书的数据加/解密的装置,其特征在于,包括:
生成单元,用于加密端通过解密端获取密钥生成中心公开的系统参数,生成加密公钥和解密私钥的密钥对;所述密钥生成中心公开的系统参数为<E,e,P1,P2,[s]P1,H,KDF,MAC>;其中,E为密钥生成中心选择的一条椭圆曲线;e为双线性对;P1和P2为点群G1和G2中的两个点;G1和G2为椭圆曲线E上的两个阶为素数q的点群;s为主私钥,其为随机选择的0到q之间的整数;[s]P1为s个P1相加;H为映射函数,其将一个比特串O映射到[1,q-1]上;KDF为标准的密钥派生函数;MAC为标准的消息认证码函数;
加密单元,用于利用随机数、所述系统参数和解密端的标识ID_B生成基于标识加密方法的加密密钥U,以及利用所述随机数、所述加密公钥生成基于公钥加密方法的加密密钥V,并使用所述加密密钥U、加密密钥V和密钥派生函数KDF派生数据加密密钥对消息M进行加密,生成消息M的加密密文;其中,所述密钥派生函数KDF的派生输入包含加密密钥U和加密密钥V的拼接;
解密单元,用于通过所述解密端利用所述系统参数、标识ID_B对应的标识解密私钥D_B和所述解密私钥对所述加密密文进行解密;
其中,所述生成单元,包括:
获取模块,用于所述加密端通过解密端获取密钥生成中心公开的系统参数为<E,e,P1,P2,[s]P1,H,KDF,MAC>;
第一选择模块,用于通过解密端随机选择0<x<q的整数x,将所述x作为所述解密私钥;
第二选择模块,用于通过解密端选择G1中的一个点F1,计算[x]F1,将[x]F1作为所述加密公钥,且所述F1=P1。
6.根据权利要求5所述的无证书的数据加/解密的装置,其特征在于,所述解密端的标识解密私钥D_B为:
D_B=[s/(H(1||ID_B)+s)]P2。
7.根据权利要求5所述的无证书的数据加/解密的装置,其特征在于,所述加密单元,包括:
加密第一计算模块,用于计算整数h1=H(1||ID_B);
加密第二计算模块,用于计算解密端的公钥Q_B=[h1]P1+[s]P1;
选择模块,用于产生随机数r∈[1,q-1];
加密第三计算模块,用于计算X=[r]Q_B,将X数据类型转换为比特串C1;
加密第四计算模块,用于计算Y=[r]F1,将Y数据类型转换为比特串C2;
加密第五计算模块,用于计算w=gr,将w的数据类型转换为比特串U,其中g=e([s]P1,P2);
加密第六计算模块,用于计算Z=[r][x]F1,将Z的数据类型转换为比特串V;
加密派生模块,用于准备密钥派生输入XI,其中,所述XI包含U和V的拼接;
加密第七计算模块,用于计算K1||K2=KDF(XI);
加密第八计算模块,用于计算C3=M⊕K1;
加密第九计算模块,用于计算C4=MAC(K2,M);
输出模块,用于将<C1,C2,C3,C4>作为输出。
8.根据权利要求7所述的无证书的数据加/解密的装置,其特征在于,所述解密单元,包括:
第一选择判断模块,用于通过所述解密端将C1的数据类型转换为椭圆曲线上的点X,检验X∈G1是否成立;
第一验证模块,用于若X∈G1不成立,则通过所述解密端直接判定验证失败;
第二选择判断模块,用于通过所述解密端将C2的数据类型转换为椭圆曲线上的点Y,检验Y∈G1是否成立;
第二验证模块,用于若Y∈G1不成立,则通过所述解密端直接判定验证失败;
解密第一计算模块,用于若X∈G1和Y∈G1均成立,则通过所述解密端计算w=e(X,D_B);将w的数据类型转换为比特串U;
解密第二计算模块,用于通过所述解密端计算Z=[x]Y;将Z的数据类型转换为比特串V;
解密派生模块,用于通过所述解密端准备密钥派生输入XI,其中,所述XI包含U和V的拼接;
解密第三计算模块,用于通过所述解密端计算K1||K2=KDF(XI);
解密第四计算模块,用于通过所述解密端计算M=C3⊕K1;
解密第五计算模块,用于通过所述解密端计算C'=MAC(K2,M);
第三验证模块,用于通过所述解密端检验C'=C4是否成立,若成立,则验证通过,输出M;否则验证失败,输出错误。
9.一种无证书的数据加/解密的终端,其特征在于,包括存储器和处理器;
所述存储器用于存储支持无证书的数据加/解密的装置执行所述权利要求1-4中任一项所述的无证书的数据加/解密的方法的程序;
所述处理器被配置为用于执行所述存储器中存储的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710277898.0A CN107425971B (zh) | 2017-04-25 | 2017-04-25 | 无证书的数据加/解密方法和装置、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710277898.0A CN107425971B (zh) | 2017-04-25 | 2017-04-25 | 无证书的数据加/解密方法和装置、终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107425971A CN107425971A (zh) | 2017-12-01 |
CN107425971B true CN107425971B (zh) | 2020-06-05 |
Family
ID=60424324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710277898.0A Active CN107425971B (zh) | 2017-04-25 | 2017-04-25 | 无证书的数据加/解密方法和装置、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107425971B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109361506B (zh) * | 2018-09-21 | 2021-06-15 | 无锡润盟软件有限公司 | 信息处理方法 |
CN109560931B (zh) * | 2018-11-30 | 2020-11-24 | 江苏恒宝智能系统技术有限公司 | 一种基于无证书体系的设备远程升级方法 |
CN110224835B (zh) * | 2019-05-29 | 2022-05-03 | 电子科技大学 | 一种无证书的身份隐藏认证加密方法 |
CN111010277B (zh) * | 2019-12-27 | 2021-06-25 | 北京海泰方圆科技股份有限公司 | 密钥交换方法、装置和存储介质、计算装置 |
CN111245619B (zh) * | 2020-03-27 | 2023-03-24 | 上海汽车集团股份有限公司 | 车联网的密钥派生方法、装置及系统、车端、中间层 |
CN111934858B (zh) * | 2020-07-09 | 2022-03-18 | 中国电子科技集团公司第三十研究所 | 一种可监管的随机公钥派生方法 |
CN113301035B (zh) * | 2021-05-18 | 2023-04-18 | 重庆川仪自动化股份有限公司 | 一种不信任对象间数据传输方法及系统 |
CN113794560A (zh) * | 2021-11-05 | 2021-12-14 | 深邦智能科技(青岛)有限公司 | 一种治超仪表数据传输加密方法及其系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2341724A2 (en) * | 2010-01-04 | 2011-07-06 | Tata Consultancy Services Limited | System and method for secure transaction of data between wireless communication device and server |
EP2416524A2 (en) * | 2010-07-09 | 2012-02-08 | Tata Consultancy Services Limited | System and method for secure transaction of data between wireless communication device and server |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102201920B (zh) * | 2011-07-12 | 2013-06-12 | 北京中兴通数码科技有限公司 | 一种无证书公钥密码系统的构造方法 |
CN104052608B (zh) * | 2014-07-07 | 2017-04-19 | 西安电子科技大学 | 云应用中基于第三方的无证书远程匿名认证方法 |
-
2017
- 2017-04-25 CN CN201710277898.0A patent/CN107425971B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2341724A2 (en) * | 2010-01-04 | 2011-07-06 | Tata Consultancy Services Limited | System and method for secure transaction of data between wireless communication device and server |
EP2416524A2 (en) * | 2010-07-09 | 2012-02-08 | Tata Consultancy Services Limited | System and method for secure transaction of data between wireless communication device and server |
Also Published As
Publication number | Publication date |
---|---|
CN107425971A (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107425971B (zh) | 无证书的数据加/解密方法和装置、终端 | |
CN108989053B (zh) | 一种基于椭圆曲线的无证书公钥密码体制实现方法 | |
CN111314089B (zh) | 一种基于sm2的两方协同签名方法及解密方法 | |
CN109088726B (zh) | 基于sm2算法的通信双方协同签名及解密方法和系统 | |
CN107483212B (zh) | 一种双方协作生成数字签名的方法 | |
CN109309569B (zh) | 基于sm2算法的协同签名的方法、装置及存储介质 | |
CN101789865B (zh) | 一种用于加密的专用服务器及加密方法 | |
CN104270249B (zh) | 一种从无证书环境到基于身份环境的签密方法 | |
CN107395368B (zh) | 无介质环境中的数字签名方法及解封装方法与解密方法 | |
CN110120939B (zh) | 一种基于异构系统的可否认认证的加密方法和系统 | |
US11223486B2 (en) | Digital signature method, device, and system | |
CN110113150B (zh) | 基于无证书环境的可否认认证的加密方法和系统 | |
CN108989054B (zh) | 一种密码系统及数字签名方法 | |
US20150288527A1 (en) | Verifiable Implicit Certificates | |
CN104767612A (zh) | 一种从无证书环境到公钥基础设施环境的签密方法 | |
CN110535626B (zh) | 基于身份的量子通信服务站保密通信方法和系统 | |
CN104301108A (zh) | 一种从基于身份环境到无证书环境的签密方法 | |
US20130091362A1 (en) | Generating implicit certificates | |
CN105610773A (zh) | 一种电能表远程抄表的通讯加密方法 | |
CN114726546B (zh) | 数字身份认证方法、装置、设备和存储介质 | |
CN104767611A (zh) | 一种从公钥基础设施环境到无证书环境的签密方法 | |
CN107104788B (zh) | 终端及其不可抵赖的加密签名方法和装置 | |
CN114448641A (zh) | 一种隐私加密方法、电子设备、存储介质以及芯片 | |
CN110519040B (zh) | 基于身份的抗量子计算数字签名方法和系统 | |
CN114257374B (zh) | 一种用于标识密码体制的可验证安全外包计算方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |