CN112564907B - 密钥生成方法及装置、加密方法及装置、解密方法及装置 - Google Patents

密钥生成方法及装置、加密方法及装置、解密方法及装置 Download PDF

Info

Publication number
CN112564907B
CN112564907B CN202110222493.3A CN202110222493A CN112564907B CN 112564907 B CN112564907 B CN 112564907B CN 202110222493 A CN202110222493 A CN 202110222493A CN 112564907 B CN112564907 B CN 112564907B
Authority
CN
China
Prior art keywords
key
public key
random number
symmetric
generated
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
Application number
CN202110222493.3A
Other languages
English (en)
Other versions
CN112564907A (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.)
Beijing Infosec Technologies Co Ltd
Original Assignee
Beijing Infosec Technologies 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 Beijing Infosec Technologies Co Ltd filed Critical Beijing Infosec Technologies Co Ltd
Priority to CN202110222493.3A priority Critical patent/CN112564907B/zh
Publication of CN112564907A publication Critical patent/CN112564907A/zh
Application granted granted Critical
Publication of CN112564907B publication Critical patent/CN112564907B/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • H04L63/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明实施例提供一种密钥生成方法及装置、加密方法及装置、解密方法及装置。其中,解密方接收密钥生成中心发送的第一私钥及第一公钥;所述第一私钥及第一公钥由所述密钥生成中心基于系统参数及所述解密方的身份信息生成;所述系统参数由所述密钥生成中心生成;生成第一随机数;结合所述第一私钥与所述第一随机数,生成第二私钥;以及结合所述第一公钥与所述第一随机数,生成第二公钥;将所述第二公钥发送至加密方,以供所述加密方利用所述第二公钥对待加密消息进行加密,获得密文;其中,所述第二私钥用于对所述密文进行解密,以获得所述待加密消息。本发明实施例提供的技术方案提高了数据安全性。

Description

密钥生成方法及装置、加密方法及装置、解密方法及装置
技术领域
本发明实施例涉及计算机应用技术领域,尤其涉及一种密钥生成方法及装置、加密方法及装置、解密方法及装置。
背景技术
为了保证数据传输的安全性,密码算法是不可或缺的。
传统方案中的一种加密方式是采用基于身份的密码算法对传输数据进行加密。利用基于身份的密码算法进行加密时,可以由可信的密钥生成中心基于加密方和解密方的身份信息生成对应的公钥及私钥,并将该公钥及私钥发送至对应的加密方和解密方,在进行数据传输时,加密方可以利用解密方的公钥对数据进行加密,解密方可以利用自己的私钥对加密的数据进行解密,从而实现数据安全传输。
然而,上述方法中,由于私钥是由密钥生成中心生成的,则密钥生成中心可以对用户私钥进行保存,因此会存在密钥生成中心随意使用用户私钥窃取用户数据的风险,影响数据安全性。
发明内容
本发明实施例提供一种密钥生成方法及装置、加密方法及装置、解密方法及装置,用以提高数据的安全性。
第一方面,本发明实施例提供了一种密钥生成方法,包括:
解密方接收密钥生成中心发送的第一私钥及第一公钥;所述第一私钥及第一公钥由所述密钥生成中心基于系统参数及所述解密方的身份信息生成;所述系统参数由所述密钥生成中心生成;
生成第一随机数;
结合所述第一私钥与所述第一随机数,生成第二私钥;以及结合所述第一公钥与所述第一随机数,生成第二公钥;
将所述第二公钥发送至加密方,以供所述加密方利用所述第二公钥对待加密消息进行加密,获得密文;其中,所述第二私钥用于对所述密文进行解密,以获得所述待加密消息。
第二方面,本发明实施例提供了一种加密方法,包括:
接收解密方发送的身份信息及第二公钥;所述第二公钥由所述解密方结合第一公钥与第一随机数生成;所述第一公钥由密钥生成中心基于系统参数及所述解密方的身份信息生成;所述第一随机数由所述解密方生成;所述系统参数由所述密钥生成中心生成;
利用所述身份信息及所述第二公钥对待加密消息进行加密,获得密文;
将所述密文发送至所述解密方,以供所述解密方利用所述身份信息及第二私钥对所述密文进行解密,获得所述待加密消息;所述第二私钥由所述解密方结合第一私钥与所述第一随机数生成;所述第一私钥由所述密钥生成中心基于所述系统参数及所述解密方的身份信息生成。
第三方面,本发明实施例提供了一种解密方法,包括:
将身份信息及第二公钥发送至加密方,以供所述加密方利用所述身份信息及所述第二公钥对待加密消息进行加密获得密文;所述第二公钥由解密方结合第一公钥与第一随机数生成;所述第一公钥由密钥生成中心基于系统参数及所述解密方的身份信息生成;所述第一随机数由所述解密方生成;所述系统参数由所述密钥生成中心生成;
接收所述加密方发送的密文;
利用所述身份信息及第二私钥对所述密文进行解密,获得所述待加密消息;所述第二私钥由所述解密方结合第一私钥与所述第一随机数生成;所述第一私钥由所述密钥生成中心基于所述系统参数及所述解密方的身份信息生成。
第四方面,本发明实施例提供了一种密钥生成装置,包括:
第一接收模块,解密方用于接收密钥生成中心发送的第一私钥及第一公钥;所述第一私钥及第一公钥由所述密钥生成中心基于系统参数及所述解密方的身份信息生成;所述系统参数由所述密钥生成中心生成;
第一生成模块,用于生成第一随机数;
第二生成模块,用于结合所述第一私钥与所述第一随机数,生成第二私钥;以及结合所述第一公钥与所述第一随机数,生成第二公钥;
第一发送模块,用于将所述第二公钥发送至加密方,以供所述加密方利用所述第二公钥对待加密消息进行加密,获得密文;其中,所述第二私钥用于对所述密文进行解密,以获得所述待加密消息。
第五方面,本发明实施例提供了一种加密装置,包括:
第二接收模块,用于接收解密方发送的身份信息及第二公钥;所述第二公钥由所述解密方结合第一公钥与第一随机数生成;所述第一公钥由密钥生成中心基于系统参数及所述解密方的身份信息生成;所述第一随机数由所述解密方生成;所述系统参数由所述密钥生成中心生成;
加密模块,用于利用所述身份信息及第二公钥对待加密消息进行加密,获得密文;
第二发送模块,用于将所述密文发送至所述解密方,以供所述解密方利用所述身份信息及第二私钥对所述密文进行解密,获得所述待加密消息;所述第二私钥由所述解密方结合第一私钥与所述第一随机数生成;所述第一私钥由所述密钥生成中心基于所述系统参数及所述解密方的身份信息生成。
第六方面,本发明实施例提供了一种解密装置,包括:
第三发送模块,用于将身份信息及第二公钥发送至加密方,以供所述加密方利用所述身份信息及第二公钥对待加密消息进行加密获得密文;所述第二公钥由所述解密方结合第一公钥与第一随机数生成;所述第一公钥由密钥生成中心基于系统参数及所述解密方的身份信息生成;所述第一随机数由所述解密方生成;所述系统参数由所述密钥生成中心生成;
第三接收模块,用于接收所述加密方发送的密文;
解密模块,用于利用所述身份信息及第二私钥对所述密文进行解密,获得所述待加密消息;所述第二私钥由所述解密方结合第一私钥与所述第一随机数生成;所述第一私钥由所述密钥生成中心基于所述系统参数及所述解密方的身份信息生成。
本发明实施例中,用于对待加密消息进行加密的第二公钥以及用于解密的第二私钥中包含了由解密方生成的第一随机数,不再是完全基于密钥生成中心生成的第一私钥及第一公钥,避免存在由密钥生成中心生成第一私钥,并随意使用该第一私钥窃取数据的风险,提高了数据安全性。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例或传统方案中的技术方案,下面将对实施例或传统方案描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明提供的一种密钥生成方法一个实施例的流程图;
图2示出了本发明提供的一种加密方法一个实施例的流程图;
图3示出了本发明提供的一种解密方法一个实施例的流程图;
图4示出了本发明提供的一种密钥生成装置一个实施例的结构示意图;
图5示出了本发明提供的一种加密装置一个实施例的结构示意图;
图6示出了本发明提供的一种解密装置一个实施例的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本发明实施例的技术方案可以应用于通信方之间的数据传输。为了确保数据的安全传输,通常会对传输的数据进行加密。
传统方案中的一种加密方式是采用基于身份的密码算法对传输数据进行加密。采用基于身份的密码算法进行加密时,可以由可信的密钥生成中心基于加密方和解密方的身份信息生成对应的公钥及私钥,并将该公钥及私钥发送至对应的加密方和解密方,在进行数据传输时,加密方可以利用解密方的公钥对数据进行加密,解密方可以利用自己的私钥对加密的数据进行解密,从而实现数据安全传输。
然而,上述加密方法中,由于私钥是由密钥生成中心生成的,则密钥生成中心可以对用户私钥进行保存,因此会存在密钥生成中心随意使用用户私钥窃取用户数据的风险,影响数据安全性。因此,为了实现数据的安全传输,发明人经过一系列研究提出了本发明的技术方案,本发明实施例提供了一种密钥生成方法,解密方接收密钥生成中心发送的第一私钥及第一公钥;所述第一私钥及第一公钥由所述密钥生成中心基于系统参数及所述解密方的身份信息生成;所述系统参数由所述密钥生成中心生成;生成第一随机数;结合所述第一私钥与所述第一随机数,生成第二私钥;以及结合所述第一公钥与所述第一随机数,生成第二公钥;将所述第二公钥发送至加密方,以供所述加密方利用所述第二公钥对待加密消息进行加密,获得密文;其中,所述第二私钥用于对所述密文进行解密,以获得所述待加密消息。
本发明实施例中,用于对待加密消息进行加密的第二公钥以及用于解密的第二私钥中包含了由解密方生成的第一随机数,不再是完全基于密钥生成中心生成的第一私钥及第一公钥,避免存在由密钥生成中心生成第一私钥,并随意使用该第一私钥窃取数据的风险,提高了数据安全性。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明实施例提供的一种密钥生成方法一个实施例的流程图,该方法可以包括以下几个步骤:
101:解密方接收密钥生成中心发送的第一私钥及第一公钥。
其中,该第一私钥及第一公钥由密钥生成中心基于系统参数及解密方的身份信息生成。该系统参数可以由密钥生成中心生成。
在数据传输的过程中,可以分别以加密方和解密方来表示参与通信的两方。加密方可以利用解密方的公钥对待加密消息进行加密,并将其发送至解密方,由解密方利用私钥进行解密,获得待加密消息,实现数据传输。其中,解密方可以为与加密方不同的客户端。
本实施例中,可以应用于解密方,解密方可以接收密钥生成中心(key generationcenter,简称KGC)发送的第一私钥及第一公钥。该密钥生成中心可以基于系统参数及各加密方或解密方的身份信息生成与各加密方或解密方对应的第一私钥及第一公钥。
该系统参数可以由密钥生成中心生成,可以用于各加密方或解密方的第一私钥及第一公钥的生成,以及参与各加密方与解密方之间的加密、解密过程。具体地,该系统参数可以包括安全参数,阶为素数N的第一加法循环群,阶为素数N的第二加法循环群,阶为素数N的乘法循环群,第一加法循环群的第一生成元,第二加法循环群的第二生成元,哈希函数,主私钥,主公钥以及加密私钥生成函数识别符。
其中,安全参数可以由z表示,该安全参数可以用于确定阶为素数N的第一加法循环群,阶为素数N的第二加法循环群,阶为素数N的乘法循环群,第一加法循环群的第一生成元以及第二加法循环群的第二生成元。
哈希函数可以由密钥生成中心进行定义。例如,密钥生成中心可以定义哈希函数H1:{0,1}*→Zn*,其中,H1可以表示哈希函数,Zn*可以表示不包括数值0的剩余类,Zn可以表示该剩余类,具体可以表示正整数模n的剩余类,n可以表示正整数。
主私钥可以由密钥生成中心生成,可以用于计算第一私钥。具体地,可以由密钥生成中心选择一个随机数作为主私钥,或者从不包括数值0的剩余类中随机选择主私钥。例如,可以由密钥生成中心随机选择ke∈Zn*,其中,ke可以表示主私钥,Zn*可以表示不包括数值0的剩余类。
主公钥可以由密钥生成中心生成,可以用于计算第一公钥。具体地,可以由密钥生成中心基于主私钥及第一生成元生成。例如,密钥生成中心可以按照如下所示的主公钥计算公式生成主公钥。
该主公钥计算公式可以为:Ppub-e=ke×P1
其中,Ppub-e可以表示主公钥,ke可以表示主私钥,P1可以表示第一生成元。
加密私钥生成函数识别符可以由密钥生成中心确定,可以用hid来表示,可以用于计算第一私钥及第一公钥,以及参与各加密方或解密方的加密、解密过程。
上述系统参数中,除主私钥由密钥生成中心生成并保存外,其他的系统参数可以由密钥生成中心生成后进行公开。
基于上述系统参数,密钥生成中心可以结合解密方的身份信息,生成该解密方对应的第一私钥及第一公钥。
可选地,该方法还可以包括:
将身份信息发送至密钥生成中心,以供该密钥生成中心基于系统参数及该身份信息生成第一私钥及第一公钥。
其中,身份信息可以指可以标识各加密方或解密方的用户身份的信息,可以包括用户姓名、IP地址、手机号码等。例如,加密方的身份信息可以由IDA表示,解密方的身份信息可以由IDB表示等。
基于解密方的身份信息及系统参数,密钥生成中心可以优先按照如下所示的第一临时变量计算公式生成第一临时变量,其中,该第一临时变量可以用于生成第一私钥及第一公钥。
该第一临时变量计算公式可以为:t1 =H1(IDB‖hid,N)+kemodN;
其中,t1可以表示第一临时变量,H1可以表示哈希函数,IDB可以表示解密方的身份信息,hid可以表示加密私钥生成函数识别符,N可以表示第一加法循环群、第二加法循环群及乘法循环群的阶,ke可以表示主私钥,modN可以表示模N运算,‖可以表示字符串连接符。
获得第一临时变量之后,可以对该第一临时变量是否为0进行判断。若该第一临时变量为0,则此该第一临时变量无法用于第一私钥及第一公钥的生成。此时,需要由密钥生成中心重新生成主私钥及主公钥。
若该第一临时变量不为0,则可以由密钥生成中心基于该第一临时变量与主私钥计算第二临时变量,该第二临时变量可以用于生成第一私钥及第一公钥。密钥生成中心可以按照如下所示的第二临时变量计算公式生成第二临时变量。
该第二临时变量计算公式可以为:t2=t1 -1kemodN;
其中,t2可以表示第二临时变量,t1可以表示第一临时变量,ke可以表示主私钥,modN可以表示模N运算,N可以表示第一加法循环群、第二加法循环群及乘法循环群的阶。
获得第二临时变量之后,可以由密钥生成中心按照如下所示的第一私钥计算公式生成第一私钥,以及按照第一公钥计算公式生成第一公钥。
该第一私钥计算公式可以为:dB-e=t2P2
其中,dB-e可以表示第一私钥,t2可以表示第二临时变量,P2可以表示第二生成元。
该第一公钥生成公式可以为:PB-e=t1P1=H1(IDB‖hid,N)P1+Ppub-e;
其中,PB-e可以表示第一公钥,t1可以表示第一临时变量,P1可以表示第一生成元,H1可以表示哈希函数,IDB可以表示解密方的身份信息,hid可以表示加密私钥生成函数识别符,N可以表示第一加法循环群、第二加法循环群及乘法循环群的阶,Ppub-e可以表示主公钥。
上述第一私钥及第一公钥可以由密钥生成中心发送至解密方,解密方接收到该第一私钥及第一公钥之后,可以基于该第一私钥及第一公钥进行后续的密钥生成操作。
102:生成第一随机数。
解密方可以生成第一随机数。具体地,解密方可以随机选择第一随机数,或者可以从不包括数值0的剩余类中选择第一随机数。例如,可以随机选择xB-e∈Zn*,其中,xB-e可以表示第一随机数,Zn*可以表示不包括数值0的剩余类。
103:结合第一私钥与第一随机数,生成第二私钥;以及结合第一公钥与第一随机数,生成第二公钥。
基于获得的第一私钥及第一随机数,解密方可以生成第二私钥,以及基于获得的第一公钥与第一随机数,解密方可以生成第二公钥。其中,该第二公钥可以用于加密,第二私钥可以用于解密。
104:将第二公钥发送至加密方,以供加密方利用第二公钥对待加密消息进行加密,获得密文。其中,该第二私钥用于对密文进行解密,以获得待加密消息。
解密方可以将该第二公钥发送至加密方,以供加密方利用该第二公钥对待加密消息进行加密,获得密文。之后,解密方可以接收加密方发送的密文,并利用第二私钥对该密文进行解密,以获得待加密消息,从而实现数据安全传输。
本实施例中,用于对待加密消息进行加密的第二公钥以及用于解密的第二私钥中包含了由解密方生成的第一随机数,不再是完全基于密钥生成中心生成的第一私钥及第一公钥,避免存在由密钥生成中心生成第一私钥,并随意使用该第一私钥窃取数据的风险,提高了数据安全性。
在某些实施例中,结合第一私钥与第一随机数,生成第二私钥的方法,可以包括:
将第一随机数与第一私钥组合构成第二私钥。
以及,结合第一公钥与第一随机数,生成第二公钥的方法,可以包括:
利用第一随机数与第一生成元生成第三公钥;该第一公钥与第三公钥构成第二公钥。
具体地,将该第一随机数与第一私钥组合构成的第二私钥可以是(xB-e,dB-e)。此时,(xB-e,dB-e)可以表示第二私钥,xB-e可以表示第一随机数,dB-e可以表示第一私钥。
以及,可以将第一随机数与第一生成元按照如下所示的第三公钥计算公式生成第三公钥。
该第三公钥计算公式可以为:PKB-e=xB-eP1
其中,PKB-e可以表示第三公钥,xB-e可以表示第一随机数,P1可以表示第一生成元。
该第一公钥与第三公钥构成的第二公钥可以是(PB-e,PKB-e)。此时,(PB-e,PKB-e)可以表示第二公钥,PB-e可以表示第一公钥,PKB-e可以表示第三公钥。
获得第二私钥及第二公钥后,解密方可以将第二公钥发送至加密方,以由加密方进行加密。如图2所示,为本发明实施例提供的一种加密方法一个实施例的流程图,该方法可以包括以下几个步骤:
201:获取解密方发送的身份信息及第二公钥。
本实施例中,可以应用于加密方。加密方可以获取解密方发送的身份信息及第二公钥。其中,该第二公钥由解密方结合第一公钥与第一随机数生成;该第一公钥由密钥生成中心基于系统参数及解密方的身份信息生成;第一随机数由解密方生成;系统参数由密钥生成中心生成。上述第一随机数、第一公钥、第二公钥以及系统参数的生成方式可以参考图1所示实施例中对应的第一随机数、第一公钥、第二公钥及系统参数的生成方式,此处不再进行赘述。
202:利用身份信息及第二公钥对待加密消息进行加密,获得密文。
203:将密文发送至解密方,以供解密方利用身份信息及第二私钥对密文进行解密,获得待加密消息。
其中,第二私钥由解密方结合第一私钥与第一随机数生成;该第一私钥由密钥生成中心基于系统参数及解密方的身份信息生成。上述第一私钥及第二私钥的生成方式可以参考图1所示实施例中对应的第一私钥及第二私钥的生成方式,此处不再进行赘述。
本实施例中,加密方利用解密方的身份信息及第二公钥对待加密消息进行加密获得密文,由于该第二公钥是由解密方结合第一公钥与第一随机数生成的,则若要对该密文进行解密,用于解密的第二私钥也要结合第一私钥与第一随机数生成,确保单独使用第一私钥无法完成解密,避免存在由密钥生成中心生成第一私钥,并随意使用该第一私钥窃取数据的风险,提高了数据安全性。
在某些实施例中,利用身份信息及第二公钥对待加密消息进行加密,获得密文的方法可以包括:
利用身份信息及第二公钥生成对称密钥;
利用对称密钥对待加密消息进行加密,获得密文。
其中,该对称密钥可以由加密方生成,可以用于对待加密消息进行加密。可选地,加密方利用身份信息及第二公钥生成对称密钥的方法可以包括:
生成第二随机数;
对第一公钥及第二随机数进行相乘计算,生成第一对称密钥向量;
对第一生成元及第二随机数进行相乘计算,生成第二对称密钥向量;
利用第二生成元、双线性对映射、主公钥、第三公钥及第二随机数生成第三对称密钥向量;
利用密钥派生函数对第一对称密钥向量、第二对称密钥向量、第三对称密钥向量及身份信息进行计算,生成对称密钥。
本实施例中,双线性对映射也属于系统参数,可以由密钥生成中心生成。具体地,密钥生成中心可以定义双线性对映射为e:G1×G2→GT;其中,e可以表示双线性对映射,G1可以表示第一加法循环群,G2可以表示第二加法循环群,GT可以表示乘法循环群。
加密方可以生成第二随机数。具体地,加密方可以随机选择第二随机数,或者可以从不包括数值0的剩余类中选择第二随机数。例如,可以随机选择r∈Zn*,其中,r可以表示第二随机数,Zn*可以表示不包括数值0的剩余类。
加密方对第一公钥及第二随机数进行相乘计算,生成第一对称密钥向量可以是C1=rPB-e;其中,C1可以表示第一对称密钥向量,C1可以是第一加法循环群中的元素,r可以表示第二随机数,PB-e可以表示第一公钥。
加密方对第一生成元及第二随机数进行相乘计算,生成第二对称密钥向量可以是C1ˊ=rP1;其中,C1ˊ可以表示第二对称密钥向量,C1ˊ可以是第一加法循环群中的元素,r可以表示第二随机数,P1可以表示第一生成元。
加密方可以利用第二生成元、双线性对映射、主公钥、第三公钥及第二随机数,按照如下所示的第一公式及第二公式生成第三对称密钥向量。
该第一公式可以为:g=e(Ppub-e +PKB-e,P2);
第二公式可以为:w=gr
其中,w可以表示第三对称密钥向量,g可以表示乘法循环群中的元素,r可以表示第二随机数,e可以表示双线性对映射,Ppub-e可以表示主公钥,PKB-e可以表示第三公钥,P2可以表示第二生成元。
进一步地,获得第三对称密钥向量后,可以将该第三对称密钥向量转换为比特串,以便于计算对称密钥。具体地,加密方可以利用密钥派生函数对上述生成的第一对称密钥向量、第二对称密钥向量、第三对称密钥向量及身份信息,按照如下所示的对称密钥计算公式生成对称密钥。
该对称密钥计算公式可以是:K=KDF(C1‖C1ˊ‖w‖IDB,klen);
其中,K可以表示对称密钥,KDF可以表示密钥派生函数,C1可以表示第一对称密钥向量,C1ˊ可以表示第二对称密钥向量,w可以表示第三对称密钥向量,IDB可以表示身份信息,klen可以表示该对称密钥的比特长度。
可选地,利用对称密钥对待加密消息进行加密,获得密文的方法可以包括:
利用对称密钥对待加密消息进行加密,获得加密的明文;
利用消息认证码函数对加密的明文进行计算,获得消息认证码;
将第一对称密钥向量、第二对称密钥向量、加密的明文及消息认证码进行拼接,获得密文。
其中,利用对称密钥对待加密消息进行加密可以有多种实现方式。作为一种可选的实现方式,加密方可以采用基于密钥派生函数的序列密码算法对待加密消息进行加密,获得加密的明文。
具体地,加密方可以基于对称密钥,确定序列密码算法的算法密钥;
利用序列密码算法的算法密钥对待加密消息进行加密,获得加密的明文。
其中,对称密钥可以为K=KDF(C1‖C1ˊ‖w‖IDB,klen),对于上述序列密码算法,该对称密钥的比特长度可以为klen=mlen+K2_len;
其中,klen可以表示对称密钥的比特长度,mlen可以表示待加密消息的比特长度,K2_len可以表示消息认证码函数的密钥的比特长度。
此时,可以令序列密码算法的算法密钥为该对称密钥的mlen比特,以及令消息认证码函数的密钥为该对称密钥的K2_len比特。获得序列密码算法的算法密钥后,可以对该序列密码算法的算法密钥是否为0进行判断,若该序列密码算法的算法密钥为0,则返回利用身份信息及第二公钥生成对称密钥的步骤重新执行。
若该序列密码算法的算法密钥不为0,则可以利用该序列密码算法的算法密钥,按照如下所示的第一加密公式对待加密消息进行加密,获得加密的明文。
该第一加密公式可以为:C2 =M
Figure 828209DEST_PATH_IMAGE001
K1
其中,C2可以表示加密的明文,M可以表示待加密消息,K1可以表示序列密码算法的 算法密钥,
Figure 280050DEST_PATH_IMAGE001
可以表示异或运算。
可选地,获得加密的明文后,可以利用消息认证码函数,按照如下所示的消息认证码计算公式对该加密的明文进行计算,生成消息认证码。其中,该消息认证码可以用于表明待加密消息的来源以及确保待加密消息的完整性。
该消息认证码计算公式可以为:C3 =MAC(K2,C2);
其中,C3可以表示消息认证码,MAC可以表示消息认证码函数,K2可以表示消息认证码函数的密钥,C2可以表示加密的明文。
作为另一种可选的加密的实现方式,加密方可以采用基于密钥派生函数的分组密码算法对待加密消息进行加密,获得加密的明文。
具体地,加密方可以基于对称密钥,确定分组密码算法的算法密钥;
利用分组密码算法的算法密钥对待加密消息进行加密,获得加密的明文。
其中,对称密钥可以为K=KDF(C1‖C1ˊ‖w‖IDB,klen),对于上述分组密码算法,该对称密钥的比特长度可以为klen=K1_len +K2_len
其中,klen可以表示对称密钥的比特长度,K1_len可以表示分组密码算法的算法密钥的比特长度,K2_len可以表示消息认证码函数的密钥的比特长度。
此时,可以令分组密码算法的算法密钥为该对称密钥的K1_len比特,以及令消息认证码函数的密钥为该对称密钥的K2_len比特。获得分组密码算法的算法密钥后,可以对该分组密码算法的算法密钥是否为0进行判断,若该分组密码算法的算法密钥为0,则返回利用身份信息及第二公钥生成对称密钥的步骤重新执行。
若该分组密码算法的算法密钥不为0,则可以利用该分组密码算法的算法密钥,按照如下所示的第二加密公式对待加密消息进行加密,获得加密的明文。
该第二加密公式可以为:C2=Enc(K1,M);
其中,C2可以表示加密的明文,Enc可以表示分组加密算法,K1可以表示分组密码算法的算法密钥,M可以表示待加密消息。
可选地,获得加密的明文后,可以利用消息认证码函数,按照如下所示的消息认证码计算公式对该加密的明文进行计算,生成消息认证码。
该消息认证码计算公式可以为:C3 =MAC(K2,C2);
其中,C3可以表示消息认证码,MAC可以表示消息认证码函数,K2可以表示消息认证码函数的密钥,C2可以表示加密的明文。
获得上述加密的明文及消息认证码之后,加密方可以将第一对称密钥向量及第二对称密钥向量转换为比特串,并将该第一对称密钥向量、第二对称密钥向量、加密的明文及消息认证码进行拼接,获得密文。具体地,该密文可以为C=C1‖C1ˊ‖C3‖C2。其中,C可以表示密文,C1可以表示第一对称密钥向量,C1ˊ可以表示第二对称密钥向量,C3可以表示消息认证码,C2可以表示加密的明文。
在实际应用中,加密方接收到第二公钥后,为了确保该第二公钥是解密方发送的,在某些实施例中,该方法还可以包括:
利用哈希函数对身份信息及加密私钥生成函数识别符进行哈希计算获得计算结果,并利用该计算结果、第一生成元及主公钥生成验证公钥;
将验证公钥与第一公钥进行比较。
具体地,可以按照如下所示的验证公钥计算公式生成验证公钥。
该验证公钥计算公式可以为:PB-eˊ=H1(IDB‖hid,N)P1+Ppub-e;
其中,PB-eˊ可以表示验证公钥,H1可以表示哈希函数,IDB可以表示解密方的身份信息,hid可以表示加密私钥生成函数识别符,N可以表示第一加法循环群、第二加法循环群及乘法循环群的阶,P1可以表示第一生成元,Ppub-e可以表示主公钥。
将上述生成的验证公钥与第一公钥进行比较,若验证公钥与第一公钥一致,则可以表明加密方接收到的第二公钥是解密方发送的,则可以利用该身份信息及第二公钥生成对称密钥,以进行后续的加密过程。若验证公钥与第一公钥不一致,则表明加密方接收到的第二公钥并非是由解密方发送的,此时则终止加密过程。
生成密文后,加密方可以将该密文发送至解密方,以由解密方进行解密。如图3所示,为本发明实施例提供的一种解密方法一个实施例的流程图,该方法可以包括以下几个步骤:
301:将身份信息及第二公钥发送至加密方,以供加密方利用身份信息及第二公钥对待加密消息进行加密获得密文。
其中,第二公钥由解密方结合第一公钥与第一随机数生成;该第一公钥由密钥生成中心基于系统参数及解密方的身份信息生成;该第一随机数由解密方生成;该系统参数由密钥生成中心生成。上述第一随机数、第一公钥、第二公钥及系统参数的生成方式可以参考图1所示实施例中对应的第一随机数、第一公钥、第二公钥及系统参数的生成方式,此处不再进行赘述。
302:接收加密方发送的密文。
303:利用身份信息及第二私钥对密文进行解密,获得待加密消息。
其中,第二私钥由解密方结合第一私钥与第一随机数生成;该第一私钥由密钥生成中心基于系统参数及解密方的身份信息生成。上述第一私钥及第二私钥的生成方式可以参考图1所示实施例中对应的第一私钥及第二私钥的生成方式,此处不再进行赘述。
本实施例中,解密方接收到加密方发送的密文,由于该密文是由加密方利用解密方的身份信息及第二公钥对待加密消息进行加密获得的,且该第二公钥是由解密方结合第一公钥与第一随机数生成的,则若要对该密文进行解密,用于解密的第二私钥也要结合第一私钥与第一随机数生成,确保单独使用第一私钥无法完成解密,避免存在由密钥生成中心生成第一私钥,并随意使用该第一私钥窃取数据的风险,提高了数据安全性。
在某些实施例中,利用身份信息及第二私钥对密文进行解密,获得待加密消息的方法可以包括:
利用身份信息及第二私钥生成对称密钥;
利用对称密钥对密文进行解密,获得待加密消息。
其中,该对称密钥可以由解密方生成,可以用于对密文进行解密。具体地,密文可以包括第一对称密钥向量及第二对称密钥向量;第一对称密钥向量由加密方对第一公钥及第二随机数进行相乘生成;第二对称密钥向量由加密方对第一生成元及第二随机数进行相乘计算生成。该第二随机数可以由加密方生成,第二随机数的生成方式可以参考图2实施例所示的第二随机数的生成方式,此处不再进行赘述。
可选地,解密方利用身份信息及第二私钥生成对称密钥的方法可以包括:
利用第二生成元、双线性对映射、第一私钥、第一随机数、第一对称密钥向量及第二对称密钥向量生成第三对称密钥向量;
利用密钥派生函数对第一对称密钥向量、第二对称密钥向量、第三对称密钥向量及身份信息进行计算,生成对称密钥。
本实施例中,解密方从密文中获得比特串形式的第一对称密钥向量及第二对称密钥向量后,可以优先将其进行形式转换,并判断C1∈G1以及C1ˊ∈G1是否成立。其中,C1可以表示第一对称密钥向量,C1ˊ可以表示第二对称密钥向量,G1可以表示第一加法循环群。若都成立,则可以进行解密过程,若任一不成立,则终止解密过程。
解密过程中,解密方可以利用第二生成元、双线性对映射、第一私钥、第一随机数、第一对称密钥向量及第二对称密钥向量,按照如下所示的第三公式生成第三对称密钥向量。
该第三公式可以为:
Figure 144100DEST_PATH_IMAGE002
其中,w可以表示第三对称密钥向量,e可以表示双线性对映射,C1可以表示第一对称密钥向量,C1ˊ可以表示第二对称密钥向量,dB-e可以表示第一私钥,xB-e可以表示第一随机数,P2可以表示第二生成元。
进一步地,获得第三对称密钥向量后,可以将该第三对称密钥向量转换为比特串,以便于计算对称密钥。具体地,解密方可以利用密钥派生函数对上述第一对称密钥向量、第二对称密钥向量、第三对称密钥向量及身份信息,按照如下所示的对称密钥计算公式生成对称密钥。
该对称密钥计算公式可以是:K=KDF(C1‖C1ˊ‖w‖IDB,klen);
其中,K可以表示对称密钥,KDF可以表示密钥派生函数,C1可以表示第一对称密钥向量,C1ˊ可以表示第二对称密钥向量,w可以表示第三对称密钥向量,IDB可以表示解密方的身份信息,klen可以表示该对称密钥的比特长度。
可选地,该密文还可以包括加密的明文,获得对称密钥后,可以利用该对称密钥对加密的明文进行解密,获得待加密消息。其中,利用对称密钥对加密的明文进行解密可以有多种实现方式。作为一种可选的实现方式,若该加密的明文是由加密方采用基于密钥派生函数的序列密码算法加密获得,则可以采用对应的解密算法进行解密。
具体地,解密方可以基于对称密钥,确定序列密码算法的算法密钥;
利用序列密码算法的算法密钥对加密的明文进行解密,获得待加密消息。
其中,对称密钥可以为K=KDF(C1‖C1ˊ‖w‖IDB,klen),对于上述序列密码算法,该对称密钥的比特长度可以为klen=mlen+K2_len;
其中,klen可以表示对称密钥的比特长度,mlen可以表示待加密消息的比特长度,K2_len可以表示消息认证码函数的密钥的比特长度。
此时,可以令序列密码算法的算法密钥为该对称密钥的mlen比特,以及令消息认证码函数的密钥为该对称密钥的K2_len比特。获得序列密码算法的算法密钥后,可以对该序列密码算法的算法密钥是否为0进行判断,若该序列密码算法的算法密钥为0,则终止解密过程。
若该序列密码算法的算法密钥不为0,则可以利用该序列密码算法的算法密钥,按照如下所示的第一解密公式对加密的明文进行解密,获得待加密消息。
该第一解密公式可以为:M=C2
Figure 427314DEST_PATH_IMAGE001
K1
其中,M可以表示待加密消息,C2可以表示加密的明文,K1可以表示序列密码算法的 算法密钥,
Figure 718618DEST_PATH_IMAGE001
可以表示异或运算。
可选地,密文还可以包括消息认证码,该消息认证码可以用于表明待加密消息的来源以及确保待加密消息的完整性。
该方法还可以包括:
利用消息认证码函数对加密的明文进行计算,获得消息验证码;
将消息验证码与消息认证码进行比较;
若消息验证码与消息认证码一致,输出待加密消息。
具体地,可以利用消息认证码函数,按照如下所示的消息验证码计算公式对该加密的明文进行计算,生成消息验证码。其中,该消息验证码可以用于与消息认证码共同判断待加密消息的来源及完整性。
该消息验证码计算公式可以为:u=MAC(K2,C2);
其中,u可以表示消息验证码,MAC可以表示消息认证码函数,K2可以表示消息认证码函数的密钥,C2可以表示加密的明文。
获得消息验证码之后,可以将该消息验证码与密文中包含的消息认证码进行比较,若消息验证码与消息认证码一致,则可以表明待加密消息来源准确,且完整待加密消息,可以输出待加密消息。若二者不一致,则终止输出待加密消息。
作为另一种可选的解密的实现方式,若该加密的明文是由加密方采用基于密钥派生函数的分组密码算法加密获得,则可以采用对应的解密算法进行解密。
具体地,解密方可以基于对称密钥,确定分组密码算法的算法密钥;
利用分组密码算法的算法密钥对加密的明文进行解密,获得待加密消息。
其中,对称密钥可以为K=KDF(C1‖C1ˊ‖w‖IDB,klen),对于上述分组密码算法,该对称密钥的比特长度可以为klen=K1_len +K2_len;
其中,klen可以表示对称密钥的比特长度,K1_len可以表示分组密码算法的算法密钥的比特长度,K2_len可以表示消息认证码函数的密钥的比特长度。
此时,可以令分组密码算法的算法密钥为该对称密钥的K1_len比特,以及令消息认证码函数的密钥为该对称密钥的K2_len比特。获得分组密码算法的算法密钥后,可以对该分组密码算法的算法密钥是否为0进行判断,若该分组密码算法的算法密钥为0,则终止解密过程。
若该分组密码算法的算法密钥不为0,则可以利用该分组密码算法的算法密钥,按照如下所示的第二解密公式对加密的明文进行解密,获得待加密消息。
该第二解密公式可以为:M=Dec(K1,C2);
其中,M可以表示待加密消息,Dec可以表示分组解密算法,K1可以表示分组密码算法的算法密钥,C2可以表示加密的明文。
可选地,密文还可以包括消息认证码,则利用消息认证码函数,按照如下所示的消息验证码计算公式对该加密的明文进行计算,生成消息验证码。
该消息验证码计算公式可以为:u=MAC(K2,C2);
其中,u可以表示消息验证码,MAC可以表示消息认证码函数,K2可以表示消息认证码函数的密钥,C2可以表示加密的明文。
获得消息验证码之后,可以将该消息验证码与密文中包含的消息认证码进行比较,若消息验证码与消息认证码一致,则可以表明待加密消息来源准确,且该待加密消息完整,可以输出待加密消息。若二者不一致,则终止输出待加密消息。
如图4所示,为本发明实施例提供的一种密钥生成装置的一个实施例的结构示意图,该装置可以包括以下几个模块:
第一接收模块401,解密方用于接收密钥生成中心发送的第一私钥及第一公钥;第一私钥及第一公钥由密钥生成中心基于系统参数及解密方的身份信息生成;系统参数由密钥生成中心生成;
第一生成模块402,用于生成第一随机数;
第二生成模块403,用于结合第一私钥与第一随机数,生成第二私钥;以及结合第一公钥与第一随机数,生成第二公钥;
第一发送模块404,用于将第二公钥发送至加密方,以供加密方利用第二公钥对待加密消息进行加密,获得密文;其中,第二私钥用于对密文进行解密,以获得待加密消息。
图4所示的密钥生成装置可以执行图1所示实施例中的密钥生成方法,其实现原理和技术效果不再赘述。对于上述实施例中的密钥生成装置中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
如图5所示,为本发明实施例提供的一种加密装置的一个实施例的结构示意图,该装置可以包括以下几个模块:
第二接收模块501,用于接收解密方发送的身份信息及第二公钥;第二公钥由解密方结合第一公钥与第一随机数生成;第一公钥由密钥生成中心基于系统参数及解密方的身份信息生成;第一随机数由解密方生成;系统参数由密钥生成中心生成;
加密模块502,用于利用身份信息及第二公钥对待加密消息进行加密,获得密文;
第二发送模块503,用于将密文发送至解密方,以供解密方利用身份信息及第二私钥对密文进行解密,获得待加密消息;第二私钥由解密方结合第一私钥与第一随机数生成;第一私钥由密钥生成中心基于系统参数及解密方的身份信息生成。
图5所示的加密装置可以执行图2所示实施例中的加密方法,其实现原理和技术效果不再赘述。对于上述实施例中的加密装置中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
如图6所示,为本发明实施例提供的一种解密装置的一个实施例的结构示意图,该装置可以包括以下几个模块:
第三发送模块601,用于将身份信息及第二公钥发送至加密方,以供加密方利用身份信息及第二公钥对待加密消息进行加密获得密文;第二公钥由解密方结合第一公钥与第一随机数生成;第一公钥由密钥生成中心基于系统参数及解密方的身份信息生成;第一随机数由解密方生成;系统参数由密钥生成中心生成;
第三接收模块602,用于接收加密方发送的密文;
解密模块603,用于利用身份信息及第二私钥对密文进行解密,获得待加密消息;第二私钥由解密方结合第一私钥与第一随机数生成;第一私钥由密钥生成中心基于系统参数及解密方的身份信息生成。
图6所示的解密装置可以执行图3所示实施例中的解密方法,其实现原理和技术效果不再赘述。对于上述实施例中的解密装置中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对传统方案做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (18)

1.一种密钥生成方法,其特征在于,包括:
解密方接收密钥生成中心发送的第一私钥及第一公钥;所述第一私钥及第一公钥由所述密钥生成中心基于系统参数及所述解密方的身份信息生成;所述系统参数由所述密钥生成中心生成;
生成第一随机数;
结合所述第一私钥与所述第一随机数,生成第二私钥;以及结合所述第一公钥与所述第一随机数,生成第二公钥;
将所述第二公钥发送至加密方,以供所述加密方利用所述第二公钥对待加密消息进行加密,获得密文;其中,所述第二私钥用于对所述密文进行解密,以获得所述待加密消息;
所述系统参数包括第一加法循环群的第一生成元,第二加法循环群的第二生成元,乘法循环群,双线性对映射,主公钥,密钥派生函数;
所述结合所述第一私钥与所述第一随机数,生成第二私钥包括:
将所述第一随机数与所述第一私钥组合构成第二私钥;
所述结合所述第一公钥与所述第一随机数,生成第二公钥包括:
利用所述第一随机数及所述第一生成元生成第三公钥;所述第一公钥与所述第三公钥构成第二公钥;
其中,所述密文由所述加密方利用所述解密方的身份信息及所述第二公钥生成对称密钥,并利用所述对称密钥对所述待加密消息进行加密获得;所述对称密钥由所述加密方利用所述密钥派生函数对第一对称密钥向量、第二对称密钥向量、第三对称密钥向量及所述解密方的身份信息进行计算生成;所述第一对称密钥向量由所述加密方生成第二随机数,并对所述第一公钥及所述第二随机数进行相乘计算生成;所述第二对称密钥向量由所述加密方对所述第一生成元及所述第二随机数进行相乘计算生成;所述第三对称密钥向量由所述加密方利用所述第二生成元、所述双线性对映射、所述主公钥、所述第三公钥及所述第二随机数生成。
2.根据权利要求1所述的方法,其特征在于,所述系统参数包括不包括数值0的剩余类;
所述生成第一随机数包括:
从所述剩余类中选择第一随机数。
3.一种加密方法,其特征在于,包括:
接收解密方发送的所述解密方的身份信息及第二公钥;所述第二公钥由所述解密方结合第一公钥与第一随机数生成;所述第一公钥由密钥生成中心基于系统参数及所述解密方的身份信息生成;所述第一随机数由所述解密方生成;所述系统参数由所述密钥生成中心生成;所述系统参数包括第一加法循环群的第一生成元,所述第二公钥由所述第一公钥与第三公钥构成,所述第三公钥由所述解密方利用所述第一随机数及所述第一生成元生成;
利用所述身份信息及所述第二公钥对待加密消息进行加密,获得密文;
将所述密文发送至所述解密方,以供所述解密方利用所述身份信息及第二私钥对所述密文进行解密,获得所述待加密消息;所述第二私钥由所述解密方结合第一私钥与所述第一随机数生成;所述第一私钥由所述密钥生成中心基于所述系统参数及所述解密方的身份信息生成;所述第二私钥由所述解密方将所述第一随机数与所述第一私钥组合构成;
所述利用所述身份信息及所述第二公钥对待加密消息进行加密,获得密文包括:
利用所述身份信息及所述第二公钥生成对称密钥;
利用所述对称密钥对待加密消息进行加密,获得密文;
所述系统参数包括第二加法循环群的第二生成元,乘法循环群,双线性对映射,主公钥,密钥派生函数;
所述利用所述身份信息及所述第二公钥生成对称密钥包括:
生成第二随机数;
对所述第一公钥及所述第二随机数进行相乘计算,生成第一对称密钥向量;
对所述第一生成元及所述第二随机数进行相乘计算,生成第二对称密钥向量;
利用所述第二生成元、所述双线性对映射、所述主公钥、所述第三公钥及所述第二随机数生成第三对称密钥向量;
利用所述密钥派生函数对所述第一对称密钥向量、所述第二对称密钥向量、所述第三对称密钥向量及所述身份信息进行计算,生成对称密钥。
4.根据权利要求3所述的方法,其特征在于,所述利用所述第二生成元、所述双线性对映射、所述主公钥、所述第三公钥及所述第二随机数生成第三对称密钥向量包括:
所述第二生成元、所述双线性对映射、所述主公钥、所述第三公钥及所述第二随机数按照第一公式及第二公式生成第三对称密钥向量:
所述第一公式为:g=e(Ppub-e+PKB-e,P2);
所述第二公式为:w=gr
其中,w表示第三对称密钥向量,g表示乘法循环群的元素,r表示第二随机数,e表示双线性对映射,Ppub-e表示主公钥,PKB-e表示第三公钥,P2表示第二生成元。
5.根据权利要求3所述的方法,其特征在于,所述利用所述对称密钥对待加密消息进行加密,获得密文包括:
利用所述对称密钥对待加密消息进行加密,获得加密的明文;
利用消息认证码函数对所述加密的明文进行计算,获得消息认证码;
将所述第一对称密钥向量、所述第二对称密钥向量、所述加密的明文及所述消息认证码进行拼接,获得密文。
6.根据权利要求5所述的方法,其特征在于,所述利用所述对称密钥对待加密消息进行加密,获得加密的明文包括:
基于所述对称密钥,确定序列密码算法的算法密钥;
利用所述序列密码算法的算法密钥对待加密消息进行加密,获得加密的明文。
7.根据权利要求5所述的方法,其特征在于,所述利用所述对称密钥对待加密消息进行加密,获得加密的明文包括:
基于所述对称密钥,确定分组密码算法的算法密钥;
利用所述分组密码算法的算法密钥对待加密消息进行加密,获得加密的明文。
8.根据权利要求3所述的方法,其特征在于,所述系统参数还包括哈希函数及加密私钥生成函数识别符;
所述方法还包括:
利用所述哈希函数对所述身份信息及所述加密私钥生成函数识别符进行哈希计算获得计算结果,利用所述计算结果、所述第一生成元及所述主公钥生成验证公钥;
将所述验证公钥与所述第一公钥进行比较;
所述利用所述身份信息及所述第二公钥生成对称密钥包括:
若所述验证公钥与所述第一公钥一致,利用所述身份信息及所述第二公钥生成对称密钥。
9.一种解密方法,其特征在于,包括:
将解密方的身份信息及第二公钥发送至加密方,以供所述加密方利用所述身份信息及所述第二公钥对待加密消息进行加密获得密文;所述第二公钥由所述解密方结合第一公钥与第一随机数生成;所述第一公钥由密钥生成中心基于系统参数及所述解密方的身份信息生成;所述第一随机数由所述解密方生成;所述系统参数由所述密钥生成中心生成;所述系统参数包括第一加法循环群的第一生成元,第二加法循环群的第二生成元,乘法循环群,双线性对映射,主公钥,密钥派生函数,所述第二公钥由所述第一公钥与第三公钥构成,所述第三公钥由所述解密方利用所述第一随机数及所述第一生成元生成;
接收所述加密方发送的密文;
利用所述身份信息及第二私钥对所述密文进行解密,获得所述待加密消息;所述第二私钥由所述解密方结合第一私钥与所述第一随机数生成;所述第一私钥由所述密钥生成中心基于所述系统参数及所述解密方的身份信息生成;所述第二私钥由所述解密方将所述第一随机数与所述第一私钥组合构成;
其中,所述密文由所述加密方利用所述解密方的身份信息及所述第二公钥生成对称密钥,并利用所述对称密钥对所述待加密消息进行加密获得;所述对称密钥由所述加密方利用所述密钥派生函数对第一对称密钥向量、第二对称密钥向量、第三对称密钥向量及所述解密方的身份信息进行计算生成;所述第一对称密钥向量由所述加密方生成第二随机数,并对所述第一公钥及所述第二随机数进行相乘计算生成;所述第二对称密钥向量由所述加密方对所述第一生成元及所述第二随机数进行相乘计算生成;所述第三对称密钥向量由所述加密方利用所述第二生成元、所述双线性对映射、所述主公钥、所述第三公钥及所述第二随机数生成。
10.根据权利要求9所述的方法,其特征在于,所述利用所述身份信息及第二私钥对所述密文进行解密,获得所述待加密消息包括:
利用所述身份信息及第二私钥生成对称密钥;
利用所述对称密钥对所述密文进行解密,获得所述待加密消息。
11.根据权利要求10所述的方法,其特征在于,所述系统参数包括第一加法循环群的第一生成元,第二加法循环群的第二生成元,双线性对映射,密钥派生函数;
所述密文包括第一对称密钥向量及第二对称密钥向量;所述第一对称密钥向量由所述加密方对所述第一公钥及第二随机数进行相乘生成;所述第二对称密钥向量由所述加密方对所述第一生成元及所述第二随机数进行相乘生成;所述第二随机数由所述加密方生成;
所述利用所述身份信息及第二私钥生成对称密钥包括:
利用所述第二生成元、所述双线性对映射、所述第一私钥、所述第一随机数、所述第一对称密钥向量及所述第二对称密钥向量生成第三对称密钥向量;
利用所述密钥派生函数对所述第一对称密钥向量、所述第二对称密钥向量、所述第三对称密钥向量及所述身份信息进行计算,生成对称密钥。
12.根据权利要求11所述的方法,其特征在于,所述利用所述第二生成元、所述双线性对映射、所述第一私钥、所述第一随机数、所述第一对称密钥向量及所述第二对称密钥向量生成第三对称密钥向量包括:
所述第二生成元、所述双线性对映射、所述第一私钥、所述第一随机数、所述第一对称密钥向量及所述第二对称密钥向量按照第三公式生成第三对称密钥向量:
所述第三公式为:
Figure DEST_PATH_IMAGE002
其中,w表示第三对称密钥向量,e表示双线性对映射,C1表示第一对称密钥向量,C1ˊ表示第二对称密钥向量,dB-e表示第一私钥,xB-e表示第一随机数,P2表示第二生成元。
13.根据权利要求10所述的方法,其特征在于,所述密文还包括加密的明文;
所述利用所述对称密钥对所述密文进行解密,获得所述待加密消息包括:
若所述加密的明文由所述加密方利用序列密码算法加密获得,基于所述对称密钥,确定序列密码算法的算法密钥;
利用所述序列密码算法的算法密钥对所述加密的明文进行解密,获得所述待加密消息。
14.根据权利要求10所述的方法,其特征在于,所述密文包括加密的明文;
所述利用所述对称密钥对所述密文进行解密,获得所述待加密消息包括:
若所述加密的明文由所述加密方利用分组密码算法加密获得,基于所述对称密钥,确定分组密码算法的算法密钥;
利用所述分组密码算法的算法密钥对所述加密的明文进行解密,获得所述待加密消息。
15.根据权利要求10所述的方法,其特征在于,所述密文还包括消息认证码;
所述方法还包括:
利用消息认证码函数对所述加密的明文进行计算,获得消息验证码;
将所述消息验证码与所述消息认证码进行比较;
若所述消息验证码与所述消息认证码一致,输出所述待加密消息。
16.一种密钥生成装置,其特征在于,包括:
第一接收模块,用于接收密钥生成中心发送的第一私钥及第一公钥;所述第一私钥及第一公钥由所述密钥生成中心基于系统参数及解密方的身份信息生成;所述系统参数由所述密钥生成中心生成;
第一生成模块,用于生成第一随机数;
第二生成模块,用于结合所述第一私钥与所述第一随机数,生成第二私钥;以及结合所述第一公钥与所述第一随机数,生成第二公钥;
第一发送模块,用于将所述第二公钥发送至加密方,以供所述加密方利用所述第二公钥对待加密消息进行加密,获得密文;其中,所述第二私钥用于对所述密文进行解密,以获得所述待加密消息;
所述系统参数包括第一加法循环群的第一生成元,第二加法循环群的第二生成元,乘法循环群,双线性对映射,主公钥,密钥派生函数;
所述第二生成模块具体用于将所述第一随机数与所述第一私钥组合构成第二私钥;以及利用所述第一随机数及所述第一生成元生成第三公钥;所述第一公钥与所述第三公钥构成第二公钥;
其中,所述密文由所述加密方利用所述解密方的身份信息及所述第二公钥生成对称密钥,并利用所述对称密钥对所述待加密消息进行加密获得;所述对称密钥由所述加密方利用所述密钥派生函数对第一对称密钥向量、第二对称密钥向量、第三对称密钥向量及所述解密方的身份信息进行计算生成;所述第一对称密钥向量由所述加密方生成第二随机数,并对所述第一公钥及所述第二随机数进行相乘计算生成;所述第二对称密钥向量由所述加密方对所述第一生成元及所述第二随机数进行相乘计算生成;所述第三对称密钥向量由所述加密方利用所述第二生成元、所述双线性对映射、所述主公钥、所述第三公钥及所述第二随机数生成。
17.一种加密装置,其特征在于,包括:
第二接收模块,用于接收解密方发送的所述解密方的身份信息及第二公钥;所述第二公钥由所述解密方结合第一公钥与第一随机数生成;所述第一公钥由密钥生成中心基于系统参数及所述解密方的身份信息生成;所述第一随机数由所述解密方生成;所述系统参数由所述密钥生成中心生成;所述系统参数包括第一加法循环群的第一生成元,第二加法循环群的第二生成元,乘法循环群,双线性对映射,主公钥,密钥派生函数,所述第二公钥由所述第一公钥与第三公钥构成,所述第三公钥由所述解密方利用所述第一随机数及所述第一生成元生成;
加密模块,用于利用所述身份信息及所述第二公钥对待加密消息进行加密,获得密文;
第二发送模块,用于将所述密文发送至所述解密方,以供所述解密方利用所述身份信息及第二私钥对所述密文进行解密,获得所述待加密消息;所述第二私钥由所述解密方结合第一私钥与所述第一随机数生成;所述第一私钥由所述密钥生成中心基于所述系统参数及所述解密方的身份信息生成;所述第二私钥由所述解密方将所述第一随机数与所述第一私钥组合构成;
所述加密模块具体用于利用所述身份信息及所述第二公钥生成对称密钥;利用所述对称密钥对待加密消息进行加密,获得密文;
所述加密模块具体用于生成第二随机数;对所述第一公钥及所述第二随机数进行相乘计算,生成第一对称密钥向量;对所述第一生成元及所述第二随机数进行相乘计算,生成第二对称密钥向量;利用所述第二生成元、所述双线性对映射、所述主公钥、所述第三公钥及所述第二随机数生成第三对称密钥向量;利用所述密钥派生函数对所述第一对称密钥向量、所述第二对称密钥向量、所述第三对称密钥向量及所述身份信息进行计算,生成对称密钥。
18.一种解密装置,其特征在于,包括:
第三发送模块,用于将解密方的身份信息及第二公钥发送至加密方,以供所述加密方利用所述身份信息及第二公钥对待加密消息进行加密获得密文;所述第二公钥由所述解密方结合第一公钥与第一随机数生成;所述第一公钥由密钥生成中心基于系统参数及所述解密方的身份信息生成;所述第一随机数由所述解密方生成;所述系统参数由所述密钥生成中心生成;所述系统参数包括第一加法循环群的第一生成元,第二加法循环群的第二生成元,乘法循环群,双线性对映射,主公钥,密钥派生函数,所述第二公钥由所述第一公钥与第三公钥构成,所述第三公钥由所述解密方利用所述第一随机数及所述第一生成元生成;
第三接收模块,用于接收所述加密方发送的密文;
解密模块,用于利用所述身份信息及第二私钥对所述密文进行解密,获得所述待加密消息;所述第二私钥由所述解密方结合第一私钥与所述第一随机数生成;所述第一私钥由所述密钥生成中心基于所述系统参数及所述解密方的身份信息生成;所述第二私钥由所述解密方将所述第一随机数与所述第一私钥组合构成;
其中,所述密文由所述加密方利用所述解密方的身份信息及所述第二公钥生成对称密钥,并利用所述对称密钥对所述待加密消息进行加密获得;所述对称密钥由所述加密方利用所述密钥派生函数对第一对称密钥向量、第二对称密钥向量、第三对称密钥向量及所述解密方的身份信息进行计算生成;所述第一对称密钥向量由所述加密方生成第二随机数,并对所述第一公钥及所述第二随机数进行相乘计算生成;所述第二对称密钥向量由所述加密方对所述第一生成元及所述第二随机数进行相乘计算生成;所述第三对称密钥向量由所述加密方利用所述第二生成元、所述双线性对映射、所述主公钥、所述第三公钥及所述第二随机数生成。
CN202110222493.3A 2021-03-01 2021-03-01 密钥生成方法及装置、加密方法及装置、解密方法及装置 Active CN112564907B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110222493.3A CN112564907B (zh) 2021-03-01 2021-03-01 密钥生成方法及装置、加密方法及装置、解密方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110222493.3A CN112564907B (zh) 2021-03-01 2021-03-01 密钥生成方法及装置、加密方法及装置、解密方法及装置

Publications (2)

Publication Number Publication Date
CN112564907A CN112564907A (zh) 2021-03-26
CN112564907B true CN112564907B (zh) 2021-07-20

Family

ID=75034848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110222493.3A Active CN112564907B (zh) 2021-03-01 2021-03-01 密钥生成方法及装置、加密方法及装置、解密方法及装置

Country Status (1)

Country Link
CN (1) CN112564907B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112822014B (zh) * 2021-04-22 2021-08-31 北京信安世纪科技股份有限公司 数据处理方法、装置、电子设备及存储介质
CN113285956B (zh) * 2021-06-09 2022-07-19 中国第一汽车股份有限公司 一种控制器局域网络总线加密方法、装置、设备及介质
CN114726527B (zh) * 2022-03-30 2022-10-28 慧之安信息技术股份有限公司 基于公钥私钥的对称密钥生成方法和系统
CN114679340B (zh) * 2022-05-27 2022-08-16 苏州浪潮智能科技有限公司 一种文件共享方法、系统、设备及可读存储介质
CN115834163B (zh) * 2022-11-09 2023-07-18 深圳市乐凡信息科技有限公司 加密数据的秘钥生成方法、装置、设备及存储介质
CN116938454B (zh) * 2023-09-15 2024-01-23 浪潮(北京)电子信息产业有限公司 一种密钥处理方法、设备、介质及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101119196A (zh) * 2006-08-03 2008-02-06 西安电子科技大学 一种双向认证方法及系统
CN101697513A (zh) * 2009-10-26 2010-04-21 深圳华为通信技术有限公司 数字签名方法、验证方法、数字签名装置及数字签名系统
CN109068322A (zh) * 2018-08-22 2018-12-21 航天信息股份有限公司 解密方法、系统、移动终端、服务器及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5932040B2 (ja) * 2012-08-08 2016-06-08 株式会社東芝 再暗号化鍵生成装置及びプログラム
KR20170035665A (ko) * 2015-09-23 2017-03-31 삼성에스디에스 주식회사 키 교환 장치 및 방법
CN108599937B (zh) * 2018-04-20 2020-10-09 西安电子科技大学 一种多关键字可搜索的公钥加密方法
CN108777626A (zh) * 2018-08-16 2018-11-09 西南交通大学 一种支持动态属性空间的属性基网络签名方法
CN109447639A (zh) * 2018-10-23 2019-03-08 杭州复杂美科技有限公司 隐私交易余额扫描方法、设备和存储介质
CN111585759B (zh) * 2020-05-12 2023-06-09 北京华大信安科技有限公司 一种高效的基于sm9公钥加密算法的线上线下加密方法
CN111740828B (zh) * 2020-07-29 2021-02-12 北京信安世纪科技股份有限公司 一种密钥生成方法以及装置、设备、加解密方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101119196A (zh) * 2006-08-03 2008-02-06 西安电子科技大学 一种双向认证方法及系统
CN101697513A (zh) * 2009-10-26 2010-04-21 深圳华为通信技术有限公司 数字签名方法、验证方法、数字签名装置及数字签名系统
CN109068322A (zh) * 2018-08-22 2018-12-21 航天信息股份有限公司 解密方法、系统、移动终端、服务器及存储介质

Also Published As

Publication number Publication date
CN112564907A (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
CN112564907B (zh) 密钥生成方法及装置、加密方法及装置、解密方法及装置
CN111740828B (zh) 一种密钥生成方法以及装置、设备、加解密方法
CN111106936B (zh) 一种基于sm9的属性加密方法与系统
CN107948189B (zh) 非对称密码身份鉴别方法、装置、计算机设备及存储介质
CN108418686B (zh) 一种多分布式的sm9解密方法与介质及密钥生成方法与介质
CN108173639B (zh) 一种基于sm9签名算法的两方合作签名方法
CN109309569B (zh) 基于sm2算法的协同签名的方法、装置及存储介质
CN112822014B (zh) 数据处理方法、装置、电子设备及存储介质
US8429408B2 (en) Masking the output of random number generators in key generation protocols
US7814320B2 (en) Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks
CN110120939B (zh) 一种基于异构系统的可否认认证的加密方法和系统
CN112104453B (zh) 一种基于数字证书的抗量子计算数字签名系统及签名方法
CN111010276A (zh) 一种多方联合sm9密钥生成、密文解密方法与介质
CN112087428A (zh) 一种基于数字证书的抗量子计算身份认证系统及方法
CN111030801A (zh) 一种多方分布式的sm9密钥生成、密文解密方法与介质
CN110784314A (zh) 无证书的加密信息处理方法
CN110855425A (zh) 一种轻量级多方协同sm9密钥生成、密文解密方法与介质
CN114268439A (zh) 一种基于格的身份基认证密钥协商方法
CN111355582A (zh) 基于sm2算法的两方联合签名和解密的方法及系统
CN108055134B (zh) 椭圆曲线点数乘及配对运算的协同计算方法及系统
CN113132104A (zh) 一种主动安全的ecdsa数字签名两方生成方法
CN111565108B (zh) 签名处理方法、装置及系统
CN111262709B (zh) 基于陷门哈希函数的无证书签密系统及方法
CN110798313B (zh) 基于秘密动态共享的包含秘密的数的协同生成方法及系统
CA2742530C (en) Masking the output of random number generators in key generation protocols

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