CN114095151A - 一种加解密方法、认证方法、装置、设备和存储介质 - Google Patents

一种加解密方法、认证方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN114095151A
CN114095151A CN202010758492.6A CN202010758492A CN114095151A CN 114095151 A CN114095151 A CN 114095151A CN 202010758492 A CN202010758492 A CN 202010758492A CN 114095151 A CN114095151 A CN 114095151A
Authority
CN
China
Prior art keywords
encryption
decryption
value
key
knapsack
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
CN202010758492.6A
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.)
Mashang Xiaofei Finance Co Ltd
Original Assignee
Mashang Xiaofei Finance 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 Mashang Xiaofei Finance Co Ltd filed Critical Mashang Xiaofei Finance Co Ltd
Priority to CN202010758492.6A priority Critical patent/CN114095151A/zh
Publication of CN114095151A publication Critical patent/CN114095151A/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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

Abstract

本发明公开了一种加解密方法、认证方法、装置、设备和存储介质,涉及信息安全技术领域,以提高信息的安全性。该方法包括:生成加密端和解密端之间的第一共享密钥;根据所述第一共享密钥和与所述解密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第一会话密钥;利用所述解密端的背包公钥向量和所述第一会话密钥将本次数据进行加密,得到第一加密信息。本发明实施例可提高信息的安全性。

Description

一种加解密方法、认证方法、装置、设备和存储介质
技术领域
本发明涉及信息安全技术领域,尤其涉及一种加解密方法、认证方法、装置、设备和存储介质。
背景技术
目前,利用加解密技术做数据保护的模式可分为对称式加密与非对称式的加密技术两大类。对称式加密技术,加解密时双方仅使用一把共同的密钥,优点是具有运算能力快、资源开销低的优点,但缺点在于如果一旦密钥被窃取,则所有传输的数据加解密都会因此被破解。非对称式加密技术,其优点在于利用密码技术产生所谓的公钥(Public Key)及私钥(Private Key)两把密钥。发送者传送数据时会在发送端将数据先以接收者所公开的公钥执行加密。加密的数据传送到接收端时,接收者再用自己的私钥来解密。这种方式虽然比对称式加密更安全,但仍有可能会因为产生接收者或发送者密钥管理不当而遭密钥被盗取的危险。因此,结合对称式和非对称式加密技术的优点,开发混合式公开密码系统,成为密码学领域一个主要方向。
现有的混合式公开密码系统包括背包公钥密码系统、椭圆曲线密码系统(Elliptic Curve Cryptosystem,ECC)等。但是,这些系统的安全性都无法满足用户高安全性的需求。因此,需要提出一种加解密及认证方案,以提高信息的安全性。
发明内容
本发明实施例提供一种加解密方法、认证方法、装置、设备和存储介质,以提高信息的安全性。
第一方面,本发明实施例提供了一种加密方法,应用于加密端,包括:
生成加密端和解密端之间的第一共享密钥;
根据所述第一共享密钥和与所述解密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第一会话密钥;
利用所述解密端的背包公钥向量和所述第一会话密钥将本次数据进行加密,得到第一加密信息。
第二方面,本发明实施例提供了一种解密方法,应用于解密端,包括:
生成解密端和加密端之间的第二共享密钥;
根据所述第二共享密钥和所述加密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第二会话密钥;
获取本次数据的加密信息;
利用所述第二会话密钥和所述解密端的背包私钥向量解密所述加密信息。
第三方面,本发明实施例提供了一种加解密方法,包括:
加密端生成和解密端之间的第一共享密钥,解密端生成和加密端之间的第二共享密钥;
所述加密端根据所述第一共享密钥和所述解密端与本次数据加密交互对应的随机信息,生成用于本次数据加密的第一会话密钥;所述解密端根据所述第二共享密钥和所述加密端与本次数据加密交互对应的随机信息,生成用于本次数据加密的第二会话密钥;
所述加密端利用所述解密端的背包公钥向量和所述第一会话密钥将本次数据进行加密,得到第一加密信息;
所述解密端获取所述第一加密信息;
所述解密端根利用所述第二会话密钥和所述解密端的背包私钥向量解密所述第一加密信息,得到本次数据。
第四方面,本发明实施例提供了一种认证方法,应用于认证中心,包括:
接收客户端的认证请求;
根据所述认证请求,利用背包算法生成背包公钥向量;
向所述客户端发送所述背包公钥向量;
接收所述客户端发送的背包值,其中,所述背包值是所述客户端利用所述背包公钥向量计算得到的;
根据所述背包值,对所述客户端进行认证。
第五方面,本发明实施例提供了一种加密装置,应用于加密端,包括:
第一生成模块,用于生成加密端和解密端之间的第一共享密钥;
第二生成模块,用于根据所述第一共享密钥和与所述解密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第一会话密钥;
第一获取模块,用于利用所述解密端的背包公钥向量和所述第一会话密钥将本次数据进行加密,得到第一加密信息。
第六方面,本发明实施例提供了一种解密装置,应用于解密端,包括:
第一生成模块,用于生成解密端和加密端之间的第二共享密钥;
第二生成模块,用于根据所述第二共享密钥和所述加密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第二会话密钥;
第一获取模块,用于获取本次数据的加密信息;
第一解密模块,用于利用所述第二会话密钥和所述解密端的背包私钥向量解密所述加密信息。
第七方面,本发明实施例提供了一种认证装置,应用于认证中心,包括:
第一接收模块,用于接收客户端的认证请求;
第一生成模块,用于根据所述认证请求,利用背包算法生成背包公钥向量;
第一发送模块,用于向所述客户端发送所述背包公钥向量;
第二接收模块,用于接收所述客户端发送的背包值,其中,所述背包值是所述客户端利用所述背包公钥向量计算得到的;
第一认证模块,用于根据所述背包值,对所述客户端进行认证。
第八方面,本发明实施例还提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如上第一方面至第四方面任一所述的方法中的步骤。
第九方面,本发明实施例还提供一种可读存储介质,所述可读存储介质上存储程序,所述程序被处理器执行时实现如上第一方面至第四方面任一所述的方法中的步骤。
在本发明实施例中,加密端生成第一共享密钥,并根据该第一共享密钥和与所述解密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第一会话密钥,之后,利用所述解密端的背包公钥向量和所述第一会话密钥将本次数据进行加密,得到第一加密信息。由于所述解密端的背包公钥向量是认证中心利用背包算法获得并发送给所述解密端的,所述会话密钥是根据所述第一共享密钥和与所述解密端的本次数据加密交互对应的随机信息得到的,因此,利用本发明实施例获得的会话密钥安全性更高,从而提高了信息传输时的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的加密方法的流程图;
图2是本发明实施例提供的解密方法的流程图;
图3是本发明实施例提供的加解密方法的流程图;
图4是本发明实施例提供的认证方法的流程图;
图5是本发明实施例提供的客户端和认证中心的交互示意图;
图6是本发明实施例提供的客户端A和客户端B的交互示意图之一;
图7是本发明实施例提供的客户端A和客户端B的交互示意图之二;
图8是本发明实施例提供的加密装置的结构图;
图9是本发明实施例提供的解密装置的结构图;
图10是本发明实施例提供的加解密装置的结构图;
图11是本发明实施例提供的认证装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1是本发明实施例提供的加密方法的流程图,应用于加密端,如图1所示,包括以下步骤:
步骤101、生成加密端和解密端之间的第一共享密钥。
在本发明实施例中,加密端可获取所述解密端的公钥,然后,根据所述加密端的私钥和获取的所述解密端的公钥生成所述第一共享密钥。
具体的,KAB=sKA×SB
其中,KAB表示所述第一共享密钥,sKA表示所述加密端的私钥,SB表示所述解密端的公钥。
可选的,为了进一步提高安全性,在生成共享密钥之前,加密端和解密端之间还可进行相互的验证。如果相互的验证通过,执行步骤101。
具体的,加密端根据获取的解密端的背包值、所述解密端的公钥、认证中心的公钥和解密端的验证公钥,对所述解密端进行第一验证。若对所述解密端的第一验证通过,则生成加密端和解密端之间的第一共享密钥。
在验证过程中,加密端根据所述解密端的背包值、所述认证中心的公钥和所述解密端的验证公钥,生成第一密钥。然后,将所述第一密钥和所述解密端的公钥进行比对。若所述第一密钥和所述解密端的公钥一致,则表示对所述解密端的验证通过,否则不通过。
其中,加密端按照以下公式,根据所述解密端的背包值、所述认证中心的公钥和所述解密端的验证公钥,生成第一密钥:
Figure BDA0002612367090000051
其中,S′表示所述第一密钥,PKB表示所述解密端的验证公钥,
Figure BDA0002612367090000052
表示所述解密端的背包值,PKCA表示认证中心的公钥;G表示椭圆曲线基点;qax 1表示解密端的验证公钥的横坐标,h()表示哈希函数。
步骤102、根据所述第一共享密钥和与所述解密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第一会话密钥。
具体的,在此步骤中,加密端根据所述加密端的第一随机数和所述第一共享密钥,生成所述第一会话密钥。所述第一会话密钥用于与解密端进行通信时加密信息使用。通过这种方式可以看出,由于第一会话密钥的生成利用了随机数,因此,利用本发明实施例的方案可进一步提高传输信息的安全性。
其中,加密端根据解密端的中间随机数、所述加密端的时间戳随机数、所述第一共享密钥、所述解密端的时间戳随机数以及与所述解密端的时间戳随机数对应的基点,得到所述加密端的第一随机数。
具体的,按照以下方式得到第一随机数:
WA=tATB
TB=RB-KAB
RB=KAB+TB
TB=tBP′
其中,WA表示第一随机数,tA表示加密端的时间戳随机数,tB表示解密端的时间戳随机数,P′表示与所述解密端的时间戳随机数对应的基点,KAB表示所述第一共享密钥,RB表示解密端的中间随机数。
为提高安全性,在本发明实施例中,在步骤102之前,所述方法还包括:
加密端验证第一哈希运算值与第二哈希运算值是否匹配(如是否相等),其中,所述第一哈希运算值是所述解密端计算之后传输给所述加密端的;所述第二哈希运算值是所述加密端自行计算得到的。若所述第一哈希运算值与第二哈希运算值匹配,则生成用于本次数据加密的第一会话密钥。
其中,所述随机信息包括加密端的第一随机数。在获得了第一随机数之后,根据所述加密端的第一随机数、所述加密端的背包值以及所述解密端的背包值,得到所述第二哈希运算值。例如,可对所述加密端的第一随机数、所述加密端的背包值以及所述解密端的背包值进行哈希运算,得到所述第二哈希运算值。
其中,可按照如下方式计算所述第二哈希运算值:
Figure BDA0002612367090000061
其中,Auth(2)表示第二哈希运算值,
Figure BDA0002612367090000062
为加密端的背包值,
Figure BDA0002612367090000063
表示解密端的背包值,WA表示第一随机数,h()表示哈希函数。
为便于解密端对加密进行验证,在加密端验证第一哈希运算值与第二哈希运算值是否匹配之前,所述方法还可包括:根据加密端的时间戳随机数,与所述加密端的时间戳随机数对应的基点以及所述第一共享密钥,得到所述加密端的中间随机数,然后,将所述中间随机数发送给所述解密端,所述中间随机数用于由所述解密端计算所述第一哈希运算值。
其中,可按照如下方式计算所述中间随机数:
TA=tAP
RA=KAB+TA
其中,RA表示中间随机数,KAB表示所述第一共享密钥,tA表示所述加密端的时间戳随机数,P表示与所述加密端的时间戳随机数对应的基点。
可选的,在生成第一会话密钥之后,所述方法还可包括:根据所述加密端的背包值、所述解密端的背包值以及所述第一会话密钥生成第三哈希运算值,并向所述解密端发送所述第三哈希运算值。例如,可对所述加密端的背包值、所述解密端的背包值以及所述第一会话密钥进行哈希运算,得到所述第三哈希运算值。
其中,可按照如下方式计算所述第三哈希运算值:
Figure BDA0002612367090000071
GAB=WA+KAB
其中,Auth(3)表示第三哈希运算值,
Figure BDA0002612367090000072
为加密端的背包值,
Figure BDA0002612367090000073
表示解密端的背包值,GAB表示第一会话密钥,h()表示哈希函数,KAB表示加密端的第一共享密钥,WA表示第一随机数。
步骤103、利用所述解密端的背包公钥向量和所述第一会话密钥将本次数据进行加密,得到第一加密信息。
其中,所述解密端的背包公钥向量是认证中心利用背包算法获得并发送给所述解密端的。
在加密的过程中,利用所述解密端的背包公钥向量对所述本次数据进行加密,得到信息加密背包值,然后,利用所述第一会话密钥将所述信息加密背包值进行加密,得到所述第一加密信息。
在本发明实施例中,加密端生成第一共享密钥,并根据该第一共享密钥和与所述解密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第一会话密钥,之后,利用所述解密端的背包公钥向量和所述第一会话密钥将本次数据进行加密,得到第一加密信息。由于所述解密端的背包公钥向量是认证中心利用背包算法获得并发送给所述解密端的,所述会话密钥是根据所述第一共享密钥和与所述解密端的本次数据加密交互对应的随机信息得到的,因此,利用本发明实施例获得的会话密钥安全性更高,从而提高了信息传输时的安全性。
此外,在执行本发明实施例之前,加密端还可与认证中心进行认证、注册等。
具体的,加密端从认证中心获得所述认证中心的背包公钥向量和认证中心公钥。之后,利用所述认证中心的背包公钥向量、所述加密端的身份信息和所述加密端的装置标识符,得到所述加密端的背包值。其中,所述身份信息可以包括姓名,身份证号,电话号码等。然后,利用所述加密端的背包值,生成所述加密端的签名文件。最后,向所述认证中心发送所述加密端的背包值和所述签名文件。
在实际应用中,加密端可按照以下公式,利用所述认证中心的背包公钥向量、所述加密端的身份信息和所述加密端的装置标识符,得到所述加密端的背包值,包括:
Figure BDA0002612367090000081
其中,
Figure BDA0002612367090000082
表示所述加密端的背包值,
Figure BDA0002612367090000083
为所述认证中心的背包公钥向量,IDA表示所述加密端的身份信息,IDA={idA‖UIDA},idA表示所述加密端的身份认证信息,UIDA表示所述加密端的装置标识符,(IDA)2=m1,m2…mn,mi∈{0,1},(IDA)2为身份信息IDA的二元n进位形式。
具体的,加密端通过以下公式,利用所述加密端的背包值,生成所述加密端的签名文件,包括:
Figure BDA0002612367090000084
Figure BDA0002612367090000085
其中,VA表示所述加密端的签名文件,ja表示随机数,
Figure BDA0002612367090000086
表示所述加密端的背包值,G表示椭圆曲线基点,h()表示哈希函数。
在本发明实施例中,为进一步提高安全性,所述加密端还可从所述认证中心获取所述加密端的验证公钥和所述加密端的签章。之后,根据所述加密端的签章和所述加密端的背包值,生成所述加密端的私钥。然后,利用所述加密端的私钥对所述加密端的验证公钥进行验证。
具体的,通过以下公式,利用所述加密端的签章和所述加密端的背包值,生成所述加密端的私钥,包括:
Figure BDA0002612367090000091
其中,SKA表示所述加密端的私钥,WA表示所述加密端的签章,ja表示随机数,
Figure BDA0002612367090000092
表示所述加密端的背包值,h()表示哈希函数。
在对认证中心的公钥进行验证的过程中,按照如下方式认证:
(1)利用所述加密端的私钥和从所述认证中心获取的椭圆曲线基点,得到第一值;
其中,所述第一值通过以下公式获得:
Sp=SKA·G
其中,Sp表示所述第一值,SKA表示所述加密端的私钥,G表示所述椭圆曲线基点。
(2)利用所述加密端的验证公钥、所述加密端的背包值、所述加密端的验证公钥的纵坐标、和所述认证中心的公钥,得到第二值。
其中,所述第二值通过以下公式获得:
Figure BDA0002612367090000093
其中,Sq表示所述第二值,PKA表示所述加密端的验证公钥,G表示所述椭圆曲线基点,qay表示所述加密端的认证公钥的纵坐标,
Figure BDA0002612367090000094
表示所述加密端的背包值,h()表示哈希函数,PKCA表示所述认证中心的公钥。
(3)将所述第一值和所述第二值进行匹配。
(4)在所述第一值和所述第二值匹配的情况下,对所述加密端的验证公钥的验证通过。
在本发明实施例中,加密端生成第一共享密钥,并根据该第一共享密钥和与所述解密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第一会话密钥,之后,利用所述解密端的背包公钥向量和所述第一会话密钥将本次数据进行加密,得到第一加密信息。由于所述解密端的背包公钥向量是认证中心利用背包算法获得并发送给所述解密端的,所述会话密钥是根据所述第一共享密钥和与所述解密端的本次数据加密交互对应的随机信息得到的,因此,利用本发明实施例获得的会话密钥安全性更高,从而提高了信息传输时的安全性。
参见图2,图2是本发明实施例提供的解密方法的流程图,应用于解密端,如图2所示,包括以下步骤:
步骤201、生成解密端和加密端之间的第二共享密钥。
在此步骤中,根据获取的所述加密端的公钥和所述解密端的私钥生成所述第二共享密钥。
具体的,利用以下公式计算所述第二共享密钥:
KAB′=sKB×SA
其中,KAB′表示所述第二共享密钥,sKB表示所述解密端的私钥,SA表示所述加密端的公钥。
可选的,为进一步提高安全性,在步骤201之前,加密端和解密端还可进行验证。当相互的验证通过后,生成与所述加密端之间的共享密钥。
具体的,解密端根据获取的所述加密端的背包值、所述加密端的公钥、认证中心的公钥和所述加密端的验证公钥,对所述加密端进行第二验证。若对所述加密端的第二验证通过,则生成解密端和加密端之间的第二共享密钥。
在验证的过程中,解密端根据所述加密端的背包值、认证中心的公钥和所述加密端的验证公钥,生成第二密钥。之后,将所述第二密钥和所述加密端的公钥进行比对。若所述第二密钥和所述加密端的公钥一致,则表示对所述加密端的验证通过。
具体的,解密端可按照以下公式,根据所述加密端的背包值、认证中心的公钥和所述加密端的验证公钥,生成第二密钥:
Figure BDA0002612367090000101
其中,S″表示所述第二密钥,PKA表示所述加密端的验证公钥,
Figure BDA0002612367090000102
表示所述加密端的背包值,PKCA表示认证中心的公钥;G表示椭圆曲线基点;qax表示加密端的验证公钥的横坐标,h()表示哈希函数。
步骤202、根据所述第二共享密钥和所述加密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第二会话密钥。
为进一步提高安全性,在生成第二会话密钥之前,加解密端还可进行相互的验证。具体的,解密端验证第三哈希运算值与第四哈希运算值是否匹配,其中,所述第三哈希运算值是所述加密端计算之后传输给所述解密端的;所述第四哈希运算值是所述解密端自行计算得到的。若所述第三哈希运算值与第四哈希运算值匹配,则生成用于本次数据加密的第二会话密钥。
其中,解密端根据所述加密端的中间随机数、所述解密端的时间戳随机数、所述第二共享密钥、所述加密端的时间戳随机数以及与所述加密端的时间戳随机数对应的基点,得到所述解密端的第二随机数,然后,根据所述解密端的第二随机数、根据所述加密端的背包值以及所述解密端的背包值,得到所述第四哈希运算值。例如,可对所述解密端的第二随机数、根据所述加密端的背包值以及所述解密端的背包值进行哈希运算,得到所述第四哈希运算值。
具体的,按照以下方式得到第二随机数:
Figure BDA0002612367090000111
Figure BDA0002612367090000112
RA=KAB+TA
TA=tAP
其中,WB表示第二随机数,tB表示解密端的时间戳随机数,tA表示加密端的时间戳随机数,P表示与所述加密端的时间戳随机数对应的基点,KAB′表示所述第二共享密钥,KAB表示加密端的第一共享密钥,RA表示所述加密端的中间随机数。
其中,可按照如下方式计算所述第四哈希运算值:
Figure BDA0002612367090000113
其中,Auth(4)表示第四哈希运算值,
Figure BDA0002612367090000114
为加密端的背包值,
Figure BDA0002612367090000115
表示解密端的背包值,WB表示第二随机数,h()表示哈希函数。
为便于解密端对加密进行验证,在所述验证第三哈希运算值与第四哈希运算值是否匹配之前,所述方法还包括:解密端根据所述解密端的时间戳随机数、与所述解密端的时间戳随机数对应的基点以及所述第二共享密钥,得到所述解密端的中间随机数,并将所述中间随机数发送给所述加密端,所述中间随机数用于由所述解密端计算第二哈希运算值。
其中,可按照如下方式计算所述中间随机数:
TB=tBP′
RB=KAB′+TB
其中,RB表示中间随机数,KAB′表示所述第二共享密钥,tB表示所述解密端的时间戳随机数,P′表示与所述解密端的时间戳随机数对应的基点。
在生成所述第二会话密钥的过程中,所述解密端根据所述解密端的第二随机数和所述第二共享密钥,生成所述第二会话密钥。
此外,为便于加密端对解密端进行验证,所述解密端还可根据所述加密端的中间随机数、所述第二会话密钥、所述第二共享密钥、所述解密端的时间戳随机数、所述加密端的时间戳随机数、与所述加密端的时间戳随机数对应的基点、所述加密端的背包值以及所述解密端的背包值,得到第一哈希运算值,并向所述加密端发送所述第一哈希运算值。
其中,可按照如下方式计算得到所述第一哈希运算值:
Figure BDA0002612367090000121
GAB′=WB+KAB
其中,Auth(1)表示第一哈希运算值,
Figure BDA0002612367090000122
为加密端的背包值,
Figure BDA0002612367090000123
表示解密端的背包值,GAB′表示第二会话密钥,KAB′表示解密端的第二共享密钥,WB表示第二随机数,h()表示哈希函数。
步骤203、获取本次数据的加密信息。
其中,所述解密端可从加密端获得加密信息,所述加密信息为本次数据的加密信息。所述本次数据例如可以是数据,文件等。
步骤204、利用所述第二会话密钥和所述解密端的背包私钥向量解密所述加密信息。
其中,所述解密端可利用所述第二会话密钥将所述加密信息解密,得到信息加密背包值,之后,利用所述解密端的背包向量私钥解密所述信息加密背包值,得到所述本次数据。
在本发明实施例中,解密端生成第二共享密钥,并根据该第二共享密钥和与所述加密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第二会话密钥,之后,获取本次数据的加密信息,利用所述第二会话密钥和所述解密端的背包私钥向量解密所述加密信息。由于所述会话密钥是根据所述第二共享密钥和与所述加密端的本次数据加密交互对应的随机信息得到的,因此,利用本发明实施例获得的会话密钥安全性更高,从而提高了信息传输时的安全性。
为进一步保证安全性,所述解密端还可和认证中心进行注册和验证。具体的,解密端从认证中心获得所述认证中心的背包公钥向量和认证中心公钥,然后,利用所述认证中心的背包公钥向量、所述解密端的身份信息和所述解密端的装置标识符,得到所述解密端的背包值。之后,解密端可利用所述解密端的背包值,生成所述解密端的签名文件,并向所述认证中心发送所述解密端的背包值和所述签名文件。
其中,解密端可按照以下公式,利用所述认证中心的背包公钥向量、所述解密端的身份信息和所述解密端的装置标识符,得到所述解密端的背包值:
Figure BDA0002612367090000131
其中,
Figure BDA0002612367090000132
表示所述解密端的背包值,
Figure BDA0002612367090000133
为所述认证中心的背包公钥向量,IDB表示所述解密端的身份信息,IDB={idB‖UIDB},idB表示所述解密端的身份认证信息,UIDB表示所述解密端的装置标识符,(IDB)2=m1,m2…mn,mi∈{0,1},(IDB)2为身份信息IDB的二元n进位形式。
按照以下公式,利用所述解密端的背包值,生成所述解密端的签名文件:
Figure BDA0002612367090000134
其中,VB表示所述加密端的签名文件,jb表示随机数,
Figure BDA0002612367090000135
表示所述解密端的背包值,G表示椭圆曲线基点,h()表示哈希函数。
此外,解密端还可从所述认证中心获取所述解密端的验证公钥和所述解密端的签章,并根据所述解密端的签章和所述解密端的背包值,生成所述解密端的私钥。之后,利用所述解密端的私钥对所述解密端的验证公钥进行验证。
其中,利用所述解密端的签章和所述解密端的背包值,生成所述解密端的私钥,包括:
Figure BDA0002612367090000136
其中,SKB表示所述解密端的私钥,WB表示所述解密端的签章,jb表示随机数,
Figure BDA0002612367090000137
表示所述解密端的背包值,h()表示哈希函数。
在利用所述解密端的私钥对所述解密端的验证公钥进行验证中,解密端可按照如下方式进行验证:
(1)利用所述解密端的私钥和从所述认证中心获取的椭圆曲线基点,得到第三值;
(2)利用所述解密端的验证公钥、所述解密端的背包值、所述解密端的验证公钥的纵坐标、和所述认证中心的公钥,得到第四值;
(3)将所述第三值和所述第四值进行匹配;
(4)若所述第三值等于所述第四值,则表示所述解密端的验证公钥验证通过;
其中,所述第三值通过以下公式获得:
Sp=SKB·G
其中,Sp表示所述第三值,SKB表示所述解密端的私钥,G表示所述椭圆曲线基点;
所述第四值通过以下公式获得:
Figure BDA0002612367090000141
其中,Sq表示所述第四值,PKB表示所述解密端的验证公钥,G表示所述椭圆曲线基点,qay 1表示所述解密端的认证公钥的纵坐标,
Figure BDA0002612367090000142
表示所述解密端的背包值,h()表示哈希函数,PKCA表示所述认证中心的公钥。
参见图3,图3是本发明实施例提供的加解密方法的流程图,如图3所示,包括以下步骤:
步骤301、加密端生成和解密端之间的第一共享密钥,解密端生成和加密端之间的第二共享密钥。
步骤302、所述加密端根据所述第一共享密钥和所述解密端与本次数据加密交互对应的随机信息,生成用于本次数据加密的第一会话密钥;所述解密端根据所述第二共享密钥和所述加密端与本次数据加密交互对应的随机信息,生成用于本次数据加密的第二会话密钥。
步骤303、所述加密端利用所述解密端的背包公钥向量和所述第一会话密钥将本次数据进行加密,得到第一加密信息。
步骤304、所述解密端获取所述第一加密信息。
步骤305、所述解密端根利用所述第二会话密钥和所述解密端的背包私钥向量解密所述第一加密信息,得到本次数据。
其中,生成第一共享密钥和第二共享密钥、第一会话密钥和第二会话密钥的过程可参见前述实施例的描述。
可选的,为了进一步提高安全性,在所述加密端生成和解密端之间的第一共享密钥,解密端生成和加密端之间的第二共享密钥之前,所述加密端和认证中心进行注册和验证,所述解密端和所述认证中心进行注册和验证。
可选的,在所述加密端生成和解密端之间的第一共享密钥,解密端生成和加密端之间的第二共享密钥之前,所述加密端和所述解密端之间进行相互的第一验证。那么,在所述加密端对所述解密端的验证通过以及在所述解密端对所述加密端的验证通过后,生成用于本次数据加密的第一共享密钥
可选的,在所述加密端生成用于本次数据加密的第一会话密钥和在所述解密端生成第二会话密钥之前,所述加密端和所述解密端之间进行相互的第二验证。那么,在所述加密端对所述解密端的验证通过以及在所述解密端对所述加密端的验证通过后,生成用于本次数据加密的第二共享密钥。
由于所述加密端或者解密端的背包公钥向量是认证中心利用背包算法获得并发送给所述加密端或者解密端的,所述第一会话密钥是根据所述第一共享密钥和与所述解密端的本次数据加密交互对应的随机信息得到的,所述第二会话密钥是根据所述第二共享密钥和与所述加密端的本次数据加密交互对应的随机信息得到的,因此,利用本发明实施例获得的会话密钥安全性更高,从而提高了信息传输时的安全性。
参见图4,图4是本发明实施例提供的认证方法的流程图,应用于认证中心,如图4所示,包括以下步骤:
步骤401、接收客户端的认证请求。
步骤402、根据所述认证请求,利用背包算法生成背包公钥向量。
步骤403、向所述客户端发送所述背包公钥向量。
在此步骤中,获取超递增背包向量,第一背包向量和第二背包向量。然后,利用中国余式定理,对所述超递增背包向量、所述第一背包向量、所述第二背包向量、第一常数和第二常数进行运算,生成所述背包公钥向量。
具体的,认证中心随机选取任一超递增背包向量
Figure BDA0002612367090000151
任意选取两个背包向量:第一背包向量
Figure BDA0002612367090000152
第二背包向量
Figure BDA0002612367090000153
Figure BDA0002612367090000161
其中,ui,vi,均为正整数且满足bi=ui+vi,,i=1,…,n。
认证中心任选第一常数M1和第二常数M2,满足
Figure BDA0002612367090000162
Figure BDA0002612367090000163
并满足GCD(M1,M2)=1。认证中心利用中国余式定理计算向量,即背包公钥向量:
Figure BDA0002612367090000164
其中,ai=ui(mod M1),ai=vi(mod M2),i=1,……,n。
步骤404、接收所述客户端发送的背包值,其中,所述背包值是所述客户端利用所述背包公钥向量计算得到的。
步骤405、根据所述背包值,对所述客户端进行认证。
在此步骤中,根据所述背包值,生成验证公钥和签章,向所述客户端发送所述验证公钥和签章。
具体的,以客户端A为例,认证中心利用一随机参数kCA计算客户端A的验证公钥PkA及签章wA,计算方式如下:
Figure BDA0002612367090000165
Figure BDA0002612367090000166
其中,(qax,qay)表示客户端A的验证公钥的坐标,
Figure BDA0002612367090000167
VA表示客户端A的签名文件。
以下,结合具体实施例对本发明实施例的上述方案做详细说明。假设客户端A和客户端B进行数据交互,其中,客户端A或者客户端B均可作为加密端,那么,另一端即为解密端。如果客户端A和客户端B的身份互换,那么实现原理相同。
一、客户端与认证中心进行注册及验证的过程
认证中心选择一个长度为224bits以上大质数q,并在一个有限域Fq上选取一条安全的椭圆曲线E(Fq),在E(Fq)上选取一阶数(order)为n的基点G,使得n·G=o。其中,o为本发明实施例中选用的椭圆曲线系统无穷远点。另外,给定一个单向无碰撞的哈希函数h()。其中,认证中心公钥为PKcA,以及向客户端公开参数:E(Fq)、G、n、PKcA、h()。
具体的,认证中心选取一随机参数SKCA∈zq,且将SKCA设置为认证中心私钥,zq表示整数集。认证中心按照下述公式(1)计算认证中心公钥。
PKcA=SKCA·G (1)
认证中心随机选取任一超递增背包向量
Figure BDA0002612367090000171
任意选取两个背包向量
Figure BDA0002612367090000172
其中,ui,vi,均为正整数且满足bi=ui+vi,,i=1,…,n。
认证中心任选两个整数M1和M2,满足
Figure BDA0002612367090000173
并满足GCD(M1,M2)=1。认证中心利用中国余式定理计算向量
Figure BDA0002612367090000174
Figure BDA0002612367090000175
其中,ai=ui(mod M1),ai=vi(mod M2),i=1,…,n。
之后,认证中心向客户端发送背包公钥向量
Figure BDA0002612367090000176
并将M1和M2设置为认证中心的私钥。认证中心本身设置随机标识符UIDM
访问控制是数据安全防护的第一关,如果保存的资料不需要通过任何身份验证就可以轻易拿到,这些数据即暴露在高风险环境中。因此,加强注册及验证阶段的安全机制十分必要。在进行认证及注册的过程中,结合图5,该过程可具体包括:
首先,客户端及认证中心均设置已选定符合条件的随机背包的模块及安全椭圆曲线模块(内建识别)。当客户端A向认证中心注册时,客户端A向认证中心取得认证中心的公钥以及客户端A的背包公钥向量,并以背包公钥向量加密身份信息idA及装置标识符UIDA,计算得到背包值
Figure BDA00026123670900001715
并产生签名文件,再以认证中心的公钥加密后传送至认证中心。
其中,所述身份信息例如可以包括姓名,身份证号,电话,客户端名称等。获得的身份信息IDA为:IDA={idA‖UIDA}。
接着,客户端A将份信息IDA转换为二元n进位形式:
(IDA)2=m1,m2…mn,mi∈{0,1}
之后,客户端A将(IDA)2=m1,m2…mn利用背包公钥向量
Figure BDA0002612367090000177
Figure BDA0002612367090000178
进行加密,得到客户端A的背包值
Figure BDA0002612367090000179
Figure BDA00026123670900001710
认证中心接收到加密的
Figure BDA00026123670900001711
后,计算IDA,并建立关联参数注册。
Figure BDA00026123670900001712
Figure BDA00026123670900001713
令b=cp+cq,由b和超递增背包向量
Figure BDA00026123670900001714
认证中心便可恢复出身份IDA,m1是二进制表示的最高位,mn是二进制表示的最低位。
在客户端A侧,客户端A利用背包值
Figure BDA0002612367090000181
及随机选取的一个参数ja,通过单向无碰撞哈希函数h()产生签名文件VA。之后,将产生的
Figure BDA0002612367090000182
发送给认证中心,其中,VA的计算方式如公式(2)。
Figure BDA0002612367090000183
认证中心利用一随机参数kCA计算客户端A的验证公钥PkA及签章wA,计算方式如下:
Figure BDA0002612367090000184
Figure BDA0002612367090000185
其中,(qax,qay)表示客户端A的验证公钥的坐标。
之后,认证中心将PKA,WA发送给客户端A。
客户端A在收到上述信息之后,计算客户端A的私钥,具体如公式(3):
Figure BDA0002612367090000186
为了验证加密端的验证公钥,客户端A进行如下处理:
计算Sp,其中,Sp=SKA·G (4)。
再利用下述公式(5)计算SKA·G:
Figure BDA0002612367090000187
将公式(4)和公式(5)的值进行比较,若二者一致,则通过对加密端的验证公钥的认证,完成与认证中心之间的注册与验证。
客户端A计算私钥并验证公钥的合法性,同时完成注册与验证作业。所有客户端都可按照上述过程完成与认证中心之间的注册与验证程序,取得自身的(Wm,PKm)后,在后续通信阶段即可在不依赖认证中心的情形下,直接完成双方的自我认证。
假设客户端A和客户端B之间需要传输加密信息。在按照上述记载完成了和认证中心的注册和验证之后,客户端A和客户端B之间的通信过程如下。
一、计算共同密钥
1、客户端A和客户端B的相互验证。
结合图6,客户端A利用背包值
Figure BDA0002612367090000191
与客户端B进行认证,同样的,客户端B利用自身的背包值
Figure BDA0002612367090000192
和客户端A进行认证。具体的,客户端A将
Figure BDA0002612367090000193
发送给客户端B,客户端B将
Figure BDA0002612367090000194
发送给客户端A。以客户端B为例,客户端B按照下述公式(6)计算
Figure BDA0002612367090000195
之后,确定
Figure BDA0002612367090000196
Figure BDA0002612367090000197
是否成立。若成立,则对客户端A的验证通过。
Figure BDA0002612367090000198
(qax,qay)为客户端A的验证公钥的坐标,PKCA表示认证中心的公钥,G表示椭圆曲线基点,PKA表示所述客户端A的验证公钥,
Figure BDA0002612367090000199
表示客户端A的背包值,SA表示客户端A的公钥。
同样地,客户端A也可按照公式(7)计算
Figure BDA00026123670900001910
并验证
Figure BDA00026123670900001911
是否成立。若成立,则对客户端B的验证通过。
Figure BDA00026123670900001912
(qax 1,qay 1)为客户端B的验证公钥的坐标,PKCA表示认证中心的公钥,G表示椭圆曲线基点,PKB表示所述客户端B的验证公钥,
Figure BDA00026123670900001913
表示客户端B的背包值,SB表示客户端B的公钥。
2、客户端A和客户端B分别生成共享密钥,如公式(8)所示:
KAB=sKA×SB,KAB1=sKB×SA (8)
KAB表示客户端A计算的共享密钥,KAB1表示客户端B计算的共享密钥。其中,sKA,sKB分别表示客户端A和客户端B的私钥。
二、计算会话密钥
当客户端A与客户端B拥有共享密钥后,可使用“挑战-响应”的方式使双方做验证,结合图7,具体如下:
1、客户端A随机选取时间戳随机数,并按照公式(9)和(10)计算后,将信息发送给客户端B。
客户端A随机选取时间戳随机数tA∈ZP(ZP表示整数集),并按照公式(9)和(10)计算:
TA=tAP (10)
RA=KAB+TA (11)
其中,P表示与客户端A的时间戳随机数对应的基点。
之后,客户端A将
Figure BDA0002612367090000201
发送给客户端B,RA表示客户端A的中间随机数。
2、客户端B收到请求后,随机选取时间戳随机数tB,并利用KAB1与收到的RA验证客户端A的身份,并产生会话密钥与验证哈希值。
当客户端B收到请求后,随机选取时间戳随机数tB∈ZP,并按照公式(12)和(13)计算。
TB=tBP′ (12)
RB=KAB1+TB (13)
其中,P′表示与客户端B的时间戳参数对应的基点,RB表示客户端B的中间随机数。
客户端B用KAB1与收到的RA按照(14)计算。
Figure BDA0002612367090000202
如果客户端A的身份正确,那么,由于客户端B拥有正确的KAB1,所以,
Figure BDA0002612367090000203
也就是说,如果
Figure BDA0002612367090000204
那么,对客户端A的身份认证通过。
接着,客户端B计算第二随机数WB
Figure BDA0002612367090000205
之后,客户端B生成第二会话密钥GAB1及认证用途上的哈希运算值Auth(B)、Auth(A)*,计算如公式(15)、(16)、(17)所示:
GAB1=WB+KAB1 (15)
Figure BDA0002612367090000206
Figure BDA0002612367090000207
最后,客户端B将
Figure BDA0002612367090000208
发送给客户端A。
3、客户端A在生成会话密钥之前,验证收到的Auth(A)*是否与自行计算的Auth(B)*相等,其中,Auth(B)*的计算方式如下公式(18)-(20)。
Figure BDA0002612367090000209
Figure BDA0002612367090000211
Figure BDA0002612367090000212
WA表示客户端A的第一随机数。
如不相符,客户端A就立即中止此次通信的联机。如果相符,客户端A计算第一会话密钥GAB与哈希运算值Auth(A),分别如公式(21)和(22)所示:
GAB=WA+KAB (21)
Figure BDA0002612367090000213
此外,客户端A还可将Auth(A)发送给客户端B。
客户端B收到后,验证收到的Auth(A)是否与自行计算的Auth(B)相等,如相等的话,本次通信验证程序完成。
4、信息的加密和解密
当客户端A与客户端B产生双方当前通信的会话密钥后,双方利用此次会话密钥当作传递数据加解密的密钥,便可形成具效率的混合式数据保护机制,也可解决密码系统密钥管理分配及身份认证问题。
具体的,假设客户端B传送信息M给客户端A。首先客户端B先将明文M转成(M)2,并以客户端A公开的背包公钥向量加密后得信息加密背包值CM。客户端B利用自身的会话密钥将CM加密后发送给客户端A。客户端A收到后,利用自身的会话密钥解密得到信息加密背包值CM,将信息加密背包值CM以自己的背包私钥向量解密即可获得明文M。
通过以上描述可以看出,客户端A和B在利用上述方法进行通信时,利用通过背包值获得对双方进行验证,并利用当前通信产生的共同会话密钥将信息数据进行保护,由于第三者无法窜改背包值,因此,利用本发明实施例的上述方案可降低信息被第三者破译的风险,从而提高信息的安全性。
为提供更快速、高效能及轻量化的加密设置,考虑轻量化装置所需信息保护的信息量小且格式固定时,在本发明实施例中,还提供了根据区块加密做数据信息保护的混合式公钥密码系统。
由于每一个明文区块可使用同一把密钥来加密或解密,因此,在本发明实施例中,在按照上述过程产生会话密钥之后,利用哈希函数对该会话密钥按照下述公式(23)进行运算,获得符合PRESENT加密法的固定长度区块密钥K:
K=H(GAB1) (23)
当需要传递信息时,可利用密钥K对信息进行加密。解密时,解密端可按照同样的方式生成区块密钥,对加密信息进行解密。
其中,加密函数可以是C=EPREENT(P),解密函数可以是P=EPREENT(C)。
当轻量化装置所需信息保护的信息量不大时,本发明实施例以PRESENT区块加密做为数据信息保护,此时可以设计实现硬件嵌入,可使所需应用资源更小,而且运算效能更快。
为提供更快速、高效能及轻量化的加密设计,考虑轻量化装置需信息保护的信息需实时传送且不确定信息量大小,或需信息保护的信息可能为实时影音加密信息,当信息量不固定时,本发明实施例以串流加密做数据保护的混合式公钥密码系统。
为使得串流密钥每次联机时产生不同的密钥,以客户端B为例,本发明实施例利用按照上述实施例的方式生成的会话密钥GAB1作为密钥种子。这把密钥种子在客户端B为一区块式密钥,客户端B将会话密钥GAB1传送至线性回馈位移缓存器(Linear Feedback ShiftRegister,LFSR)转换为串流式密钥种子SS,并当作新种子值。假设客户端B需要将数据信息加密,为达到安全机制,串流式密钥种子SS先与自选的随机乱数π(PI)混合,通过取位函数随机取得某小数点位作为起始点后,不断加长密钥长度并将数据信息搅乱,得到串流密钥。之后,运用该密钥进行串流加密及解密,确保每次传输的密钥均不相同。具体过程如下:
1、生成串流式密钥种子。
(1)获取会议密钥GAB1:GAB1:GAB1=SB
(2)选择一反馈多项式,并计算得到数组SS{i},其中,所选择的反馈多项式,如公式(24)所示。
f(x)=1+C1x+C2x2+…CL-1xL-1+CLxl (24)
其中,CL=1,L为反馈多项式的级数,反馈系数Ci(1≤i≤L-1)中不为0的个数称为反馈多项式的项数。
在此,令:L=256、C17、C47、C197、C215、C219、C256=1,其余系数均为0,可得表达式如(25):
f(x)=1+x17+x47+x197+x215+x219+x256 (25)
通过上述过程,可获得多个SS{i}。
最终,得到f(x)=SS{i},并将其发送给客户端A。
获得到f(x)=SS{i}后,因考虑到密码的长度小于信息长度机率极高,因此,选用一自选随机数π(PI)。该自选随机数目前已知算出约5兆位,近似为无限不循环小数。为使串流加解密密钥长度恒大于信息长度,且避免每次运用π均由小数字后第一位起算,使每次运算基准均不相同,因此,以一取位函式π(i)表示取数的起始位置,确保数据信息搅乱。
之后,将密钥种子与取位函数π(i)混合:
i=0:π(L+i)=π(256)=(5)10=(0101)2
i=0:π(L+i)=π(256)=(5)10=(0101)2
i=Len(M)-1:π(L+Len(M)-1)
将SS{i}与π(Len(M)-1)进行XOR运算后,通过LFSR计算可得串流密钥KS2。具体计算公式如(26):
Figure BDA0002612367090000231
为了强化加密速度效能,在本发明实施例中采一次性的XOR运算与密钥加密。串流加密阶段,加密方式如(27)所示:
Figure BDA0002612367090000232
客户端A可按照上述相同的方式生成客户端A的串流密钥。
客户端A接收来自客户端B的密文加密数据,因考虑须加快解密速度,因此,本发明实施例仅运用一次性的XOR运算来进行解密运算,利用客户端A的串流密钥KS1将收到的加密数据进行解密。具体如公式(28)所示:
Figure BDA0002612367090000233
通过该公式,即可解密得到数据M。
需要说明的是,在以上的实施例中,如果客户端A和客户端的B的身份互换,其实现原理和以上描述的相同。
通过以上描述可以看出,本发明实施例的基于多重难度的混合式公钥密码系统,使随机背包密码算法可以在椭圆曲线环境下执行公钥加、解密计算。同时,本发明实施例的算法可以完成自我认证、双方验证与加解密作业,计算步骤少,运算效率高,可达到机密性、完整性、鉴别性及不可否认性的需求。
本发明实施例还提供了一种加密装置,应用于加密端。参见图8,图8是本发明实施例提供的加密装置的结构图。由于加密装置解决问题的原理与本发明实施例中加密方法相似,因此该加密装置的实施可以参见方法的实施,重复之处不再赘述。
如图8所示,加密装置800包括:
第一生成模块801,用于生成加密端和解密端之间的第一共享密钥;第二生成模块802,用于根据所述第一共享密钥和与所述解密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第一会话密钥;第一获取模块803,用于利用所述解密端的背包公钥向量和所述第一会话密钥将本次数据进行加密,得到第一加密信息。
可选的,所述第一生成模块801具体用于,根据所述加密端的私钥和获取的所述解密端的公钥生成所述第一共享密钥。
可选的,所述装置还可包括:第一验证模块,用于根据获取的解密端的背包值、所述解密端的公钥、认证中心的公钥和解密端的验证公钥,对所述解密端进行第一验证。所述第一生成模块801具体用于,若对所述解密端的第一验证通过,则生成加密端和解密端之间的第一共享密钥。
可选的,所述第一验证模块包括:第一生成子模块,用于根据所述解密端的背包值、所述认证中心的公钥和所述解密端的验证公钥,生成第一密钥;第一比较子模块,用于将所述第一密钥和所述解密端的公钥进行比对;第一验证子模块,用于若所述第一密钥和所述解密端的公钥一致,则表示对所述解密端的验证通过。
可选的,生成第一密钥的过程可参照前述实施例的描述。
可选的,所述装置还可包括:第二验证模块,用于验证第一哈希运算值与第二哈希运算值是否匹配,其中,所述第一哈希运算值是所述解密端计算之后传输给所述加密端的;所述第二哈希运算值是所述加密端自行计算得到的;第二生成模块802用于若所述第一哈希运算值与第二哈希运算值匹配,则生成用于本次数据加密的第一会话密钥。
可选的,所述装置还可包括:第一获取模块,用于根据加密端的时间戳随机数,与所述加密端的时间戳随机数对应的基点以及所述第一共享密钥,得到所述加密端的中间随机数;第一发送模块,用于将所述中间随机数发送给所述解密端,所述中间随机数用于由所述解密端计算所述第一哈希运算值。
所述随机信息包括加密端的第一随机数;所述装置还可包括:
第一计算模块,用于根据解密端的中间随机数、所述加密端的时间戳随机数、所述第一共享密钥、所述解密端的时间戳随机数以及与所述解密端的时间戳随机数对应的基点,得到所述加密端的第一随机数;第二计算模块,用于根据所述加密端的第一随机数、根据所述加密端的背包值以及所述解密端的背包值,得到所述第二哈希运算值。
可选的,所述第二生成模块802具体用于,根据所述加密端的第一随机数和所述第一共享密钥,生成所述第一会话密钥。
可选的,所述装置还包括:第三生成模块,用于根据所述加密端的背包值、所述解密端的背包值以及所述第一会话密钥生成第三哈希运算值,并向所述解密端发送所述第三哈希运算值。
可选的,所述第一加密模块,用于利用所述解密端的背包公钥向量对所述本次数据进行加密,得到信息加密背包值;利用所述第一会话密钥将所述信息加密背包值进行加密,得到所述第一加密信息。
可选的,所述装置还包括:
第二获取模块,用于从认证中心获得所述认证中心的背包公钥向量和认证中心公钥;第三获取模块,用于利用所述认证中心的背包公钥向量、所述加密端的身份信息和所述加密端的装置标识符,得到所述加密端的背包值;第四生成模块,用于利用所述加密端的背包值,生成所述加密端的签名文件;第二发送模块,用于向所述认证中心发送所述加密端的背包值和所述签名文件。
可选的,所述第三获取模块,用于按照以下公式,利用所述认证中心的背包公钥向量、所述加密端的身份信息和所述加密端的装置标识符,得到所述加密端的背包值:
Figure BDA0002612367090000251
其中,
Figure BDA0002612367090000261
表示所述加密端的背包值,
Figure BDA0002612367090000262
为所述认证中心的背包公钥向量,IDA表示所述加密端的身份信息,IDA={idA‖UIDA},idA表示所述加密端的身份认证信息,UIDA表示所述加密端的装置标识符,(IDA)2=m1,m2…mn,mi∈{0,1},(IDA)2为身份信息IDA的二元n进位形式。
可选的,第四生成模块,用于通过以下公式,利用所述加密端的背包值,生成所述加密端的签名文件:
Figure BDA0002612367090000263
其中,VA表示所述加密端的签名文件,ja表示随机数,
Figure BDA0002612367090000264
表示所述加密端的背包值,G表示椭圆曲线基点,h()表示哈希函数。
可选的,所述装置还可包括:
第四获取模块,用于从所述认证中心获取所述加密端的验证公钥和所述加密端的签章;第四生成模块,用于根据所述加密端的签章和所述加密端的背包值,生成所述加密端的私钥;第三验证模块,用于利用所述加密端的私钥对所述加密端的验证公钥进行验证。
其中,生成加密端的私钥的方式可参照前述实施例的描述。
所述第三验证模块可包括:
第一获取子模块,用于利用所述加密端的私钥和从所述认证中心获取的椭圆曲线基点,得到第一值;第二子模块,用于利用所述加密端的验证公钥、所述加密端的背包值、所述加密端的验证公钥的纵坐标、和所述认证中心的公钥,得到第二值;第一匹配子模块,用于将所述第一值和所述第二值进行匹配;第一验证子模块,用于若所述第一值等于所述第二值,则表示所述加密端的验证公钥验证通过;
其中,所述第一值通过以下公式获得:
Sp=SKA·G
其中,Sp表示所述第一值,SKA表示所述加密端的私钥,G表示所述椭圆曲线基点;
所述第二值通过以下公式获得:
Figure BDA0002612367090000265
其中,Sq表示所述第二值,PKA表示所述加密端的验证公钥,G表示所述椭圆曲线基点,qay表示所述加密端的认证公钥的纵坐标,
Figure BDA0002612367090000271
表示所述加密端的背包值,h()表示哈希函数,PKCA表示所述认证中心的公钥。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
本发明实施例还提供了一种解密装置,应用于解密端。参见图9,图9是本发明实施例提供的解密装置的结构图。由于加密装置解决问题的原理与本发明实施例中解密方法相似,因此该加密装置的实施可以参见方法的实施,重复之处不再赘述。
如图9所示,解密装置900包括:
第一生成模块901,用于生成解密端和加密端之间的第二共享密钥;第二生成模块902,用于根据所述第二共享密钥和所述加密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第二会话密钥;第一获取模块903,用于获取本次数据的加密信息;第一解密模块904,用于利用所述第二会话密钥和所述解密端的背包私钥向量解密所述加密信息。
可选的,所述第一生成模块901用于,根据获取的所述加密端的公钥和所述解密端的私钥生成所述第二共享密钥。
可选的,所述装置还可包括:第一验证模块,用于根据获取的所述加密端的背包值、所述加密端的公钥、认证中心的公钥和所述加密端的验证公钥,对所述加密端进行第二验证。所述第一生成模块901用于,若对所述加密端的第二验证通过,则生成解密端和加密端之间的第二共享密钥。
可选的,所述第一验证模块可包括:
第一生成子模块,用于根据所述加密端的背包值、认证中心的公钥和所述加密端的验证公钥,生成第二密钥;第一比较子模块,用于将所述第二密钥和所述加密端的公钥进行比对;第一验证子模块,用于若所述第二密钥和所述加密端的公钥一致,则表示对所述加密端的验证通过。
其中,生成所述第二密钥的方式可参照前述实施例的描述。
可选的,所述装置可包括:第二验证模块,用于验证第三哈希运算值与第四哈希运算值是否匹配,其中,所述第三哈希运算值是所述加密端计算之后传输给所述解密端的;所述第四哈希运算值是所述解密端自行计算得到的;所述第二生成模块902用于若所述第三哈希运算值与第四哈希运算值匹配,则生成用于本次数据加密的第二会话密钥。
所述随机信息包括加密端的第二随机数;所述装置还可包括:
第一计算模块,用于根据所述加密端的中间随机数、所述解密端的时间戳随机数、所述第二共享密钥、所述加密端的时间戳随机数以及与所述加密端的时间戳随机数对应的基点,得到所述解密端的第二随机数;第二计算模块,用于根据所述解密端的第二随机数、根据所述加密端的背包值以及所述解密端的背包值,得到所述第四哈希运算值。
可选的,所述第二生成模块可用于:根据所述解密端的第二随机数和所述第二共享密钥,生成所述第二会话密钥。
可选的,所述装置还可包括:第三计算模块,用于根据所述加密端的中间随机数、所述第二会话密钥、所述第二共享密钥、所述解密端的时间戳随机数、所述加密端的时间戳随机数、与所述加密端的时间戳随机数对应的基点、所述加密端的背包值以及所述解密端的背包值,得到第一哈希运算值,并向所述加密端发送所述第一哈希运算值。
可选的,所述装置还可包括:
第四计算模块,用于根据所述解密端的时间戳随机数、与所述解密端的时间戳随机数对应的基点以及所述第二共享密钥,得到所述解密端的中间随机数;第一发送模块,用于将所述中间随机数发送给所述加密端,所述中间随机数用于由所述解密端计算第二哈希运算值。
可选的,所述加密信息为本次数据的加密信息。所述第一解密模块904可包括:第一解密子模块,用于利用所述第二会话密钥将所述加密信息解密,得到信息加密背包值;第二解密子模块,用于利用所述解密端的背包向量私钥解密所述信息加密背包值,得到所述本次数据。
可选的,所述装置还可包括:
第一获取模块,用于从认证中心获得所述认证中心的背包公钥向量和认证中心公钥;第二获取模块,用于利用所述认证中心的背包公钥向量、所述解密端的身份信息和所述解密端的装置标识符,得到所述解密端的背包值;第三生成模块,用于利用所述解密端的背包值,生成所述解密端的签名文件;第二发送模块,用于向所述认证中心发送所述解密端的背包值和所述签名文件。
其中,得到所述解密端的背包值以及生成所述解密端的签名文件的方式可参照前述实施例的描述。
可选的,所述装置还可包括:
第三获取模块,用于从所述认证中心获取所述解密端的验证公钥和所述解密端的签章;第四生成模块,用于根据所述解密端的签章和所述解密端的背包值,生成所述解密端的私钥;第二验证模块,用于利用所述解密端的私钥对所述解密端的验证公钥进行验证。
其中,生成所述解密端的私钥的方式可参照前述实施例的描述。
可选的,所述第二验证模块可包括:
第一获取子模块,用于利用所述解密端的私钥和从所述认证中心获取的椭圆曲线基点,得到第三值;第二获取子模块,用于利用所述解密端的验证公钥、所述解密端的背包值、所述解密端的验证公钥的纵坐标、和所述认证中心的公钥,得到第四值;第一匹配子模块,用于将所述第三值和所述第四值进行匹配;第一验证子模块,用于若所述第三值等于所述第四值,则表示所述解密端的验证公钥验证通过;
其中,所述第三值通过以下公式获得:
Sp=SKB·G
其中,Sp表示所述第三值,SKB表示所述解密端的私钥,G表示所述椭圆曲线基点;
所述第四值通过以下公式获得:
Figure BDA0002612367090000291
其中,Sq表示所述第四值,PKB表示所述解密端的验证公钥,G表示所述椭圆曲线基点,qay 1表示所述解密端的认证公钥的纵坐标,
Figure BDA0002612367090000292
表示所述解密端的背包值,h()表示哈希函数,PKCA表示所述认证中心的公钥。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
本发明实施例还提供了一种加解密装置。参见图10,图10是本发明实施例提供的加解密装置的结构图。由于加密装置解决问题的原理与本发明实施例中解密方法相似,因此该加解密装置的实施可以参见方法的实施,重复之处不再赘述。
如图10所示,加解密装置1000包括:
第一生成模块1001,用于加密端生成和解密端之间的第一共享密钥,解密端生成和加密端之间的第二共享密钥;
第二生成模块1002,用于所述加密端根据所述第一共享密钥和所述解密端与本次数据加密交互对应的随机信息,生成用于本次数据加密的第一会话密钥;所述解密端根据所述第二共享密钥和所述加密端与本次数据加密交互对应的随机信息,生成用于本次数据加密的第二会话密钥;
第一获取模块1003,用于所述加密端利用所述解密端的背包公钥向量和所述第一会话密钥将本次数据进行加密,得到第一加密信息;
第二获取模块1004,用于所述解密端获取所述第一加密信息;
第一解密模块1005,用于所述解密端根利用所述第二会话密钥和所述解密端的背包私钥向量解密所述第一加密信息,得到本次数据。
可选的,所述装置还可包括以下至少一个模块:
第一验证模块,用于在所述加密端生成和解密端之间的第一共享密钥,解密端生成和加密端之间的第二共享密钥之前,所述加密端和认证中心进行注册和验证,所述解密端和所述认证中心进行注册和验证;
第二验证模块,用于在所述加密端生成和解密端之间的第一共享密钥,解密端生成和加密端之间的第二共享密钥之前,所述加密端和所述解密端之间进行相互的第一验证;
第三验证模块,用于在所述加密端生成用于本次数据加密的第一会话密钥和在所述解密端生成第二会话密钥之前,所述加密端和所述解密端之间进行相互的第二验证。
所述第一生成模块1001用于在所述加密端对所述解密端的验证通过以及在所述解密端对所述加密端的验证通过后,生成用于本次数据加密的第一共享密钥,以及在所述加密端对所述解密端的验证通过以及在所述解密端对所述加密端的验证通过后,生成用于本次数据加密的第二共享密钥。
所述第二生成模块1002用于在所述加密端对所述解密端的验证通过以及在所述解密端对所述加密端的验证通过后,生成用于本次数据加密的第一会话密钥;以及,在所述加密端对所述解密端的验证通过以及在所述解密端对所述加密端的验证通过后,生成用于本次数据加密的第二会话密钥。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
本发明实施例还提供了一种认证装置,应用于认证中心。参见图11,图11是本发明实施例提供的认证装置的结构图。由于加密装置解决问题的原理与本发明实施例中认证相似,因此该认证装置的实施可以参见方法的实施,重复之处不再赘述。
如图11所示,认证装置1100包括:
第一接收模块1101,用于接收客户端的认证请求;第一生成模块1102,用于根据所述认证请求,利用背包算法生成背包公钥向量;第一发送模块1103,用于向所述客户端发送所述背包公钥向量;第二接收模块1104,用于接收所述客户端发送的背包值,其中,所述背包值是所述客户端利用所述背包公钥向量计算得到的;认证模块1105,用于根据所述背包值,对所述客户端进行认证。
可选的,所述第一生成模块可包括:第一获取子模块,用于获取超递增背包向量,第一背包向量和第二背包向量;第一生成子模块,用于利用中国余式定理,对所述超递增背包向量,所述第一背包向量,所述第二背包向量,第一常数和第二常数进行运算,生成所述背包公钥向量。
可选的,所述认证模块可包括:第一生成子模块,用于根据所述背包值,生成验证公钥和签章;第一发送子模块,用于向所述客户端发送所述验证公钥和签章。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
此外,本发明实施例还提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序。所述处理器,用于读取存储器中的程序实现上述任一方法实施例的过程。
此外,本发明实施例还提供一种可读存储介质,可读存储介质上存储有程序,该程序被处理器执行时实现上述加密方法或解密方法或或加解密方法或认证方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁盘或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。根据这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁盘、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

Claims (46)

1.一种加密方法,应用于加密端,其特征在于,包括:
生成加密端和解密端之间的第一共享密钥;
根据所述第一共享密钥和与所述解密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第一会话密钥;
利用所述解密端的背包公钥向量和所述第一会话密钥将本次数据进行加密,得到第一加密信息。
2.根据权利要求1所述的方法,其特征在于,所述生成加密端和解密端之间的第一共享密钥,包括:
根据所述加密端的私钥和获取的所述解密端的公钥生成所述第一共享密钥。
3.根据权利要求1所述的方法,其特征在于,在所述生成加密端和解密端之间的第一共享密钥之前,所述方法还包括:
根据获取的解密端的背包值、所述解密端的公钥、认证中心的公钥和解密端的验证公钥,对所述解密端进行第一验证;
所述生成加密端和解密端之间的第一共享密钥,包括:
若对所述解密端的第一验证通过,则生成加密端和解密端之间的第一共享密钥。
4.根据权利要求3所述的方法,其特征在于,所述根据获取的解密端的背包值、所述解密端的公钥、认证中心的公钥和解密端的验证公钥,对所述解密端进行第一验证,包括:
根据所述解密端的背包值、所述认证中心的公钥和所述解密端的验证公钥,生成第一密钥;
将所述第一密钥和所述解密端的公钥进行比对;
若所述第一密钥和所述解密端的公钥一致,则表示对所述解密端的验证通过。
5.根据权利要求4所述的方法,其特征在于,按照以下公式,根据所述解密端的背包值、所述认证中心的公钥和所述解密端的验证公钥,生成第一密钥:
Figure FDA0002612367080000021
其中,S′表示所述第一密钥,PKB表示所述解密端的验证公钥,
Figure FDA0002612367080000022
表示所述解密端的背包值,PKCA表示认证中心的公钥;G表示椭圆曲线基点;qax 1表示解密端的验证公钥的横坐标,h()表示哈希函数。
6.根据权利要求1所述的方法,其特征在于,在所述根据所述第一共享密钥和与所述解密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第一会话密钥的步骤之前,所述方法还包括:
验证第一哈希运算值与第二哈希运算值是否匹配,其中,所述第一哈希运算值是所述解密端计算之后传输给所述加密端的;所述第二哈希运算值是所述加密端自行计算得到的;
所述生成用于本次数据加密的第一会话密钥,包括:
若所述第一哈希运算值与第二哈希运算值匹配,则生成用于本次数据加密的第一会话密钥。
7.根据权利要求6所述的方法,其特征在于,在所述验证第一哈希运算值与第二哈希运算值是否匹配之前,所述方法还包括:
根据加密端的时间戳随机数、与所述加密端的时间戳随机数对应的基点以及所述第一共享密钥,得到所述加密端的中间随机数;
将所述中间随机数发送给所述解密端,所述中间随机数用于由所述解密端计算所述第一哈希运算值。
8.根据权利要求6所述的方法,其特征在于,所述随机信息包括加密端的第一随机数;计算所述第二哈希运算值,包括:
根据解密端的中间随机数、所述加密端的时间戳随机数、所述第一共享密钥、所述解密端的时间戳随机数以及与所述解密端的时间戳随机数对应的基点,得到所述加密端的第一随机数;
根据所述加密端的第一随机数、根据所述加密端的背包值以及所述解密端的背包值,得到所述第二哈希运算值。
9.根据权利要求8所述的方法,其特征在于,所述生成用于本次数据加密的第一会话密钥,包括:
根据所述加密端的第一随机数和所述第一共享密钥,生成所述第一会话密钥。
10.根据权利要求9所述的方法,其特征在于,在所述生成所述第一会话密钥之后,所述方法还包括:
根据所述加密端的背包值、所述解密端的背包值以及所述第一会话密钥生成第三哈希运算值,并向所述解密端发送所述第三哈希运算值。
11.根据权利要求1所述的方法,其特征在于,所述利用所述解密端的背包公钥向量和所述第一会话密钥将本次数据进行加密,得到第一加密信息,包括:
利用所述解密端的背包公钥向量对所述本次数据进行加密,得到信息加密背包值;
利用所述第一会话密钥将所述信息加密背包值进行加密,得到所述第一加密信息。
12.根据权利要求1所述的方法,其特征在于,在所述生成加密端和解密端之间的第一共享密钥之前,所述方法还包括:
从认证中心获得所述认证中心的背包公钥向量和认证中心公钥;
利用所述认证中心的背包公钥向量、所述加密端的身份信息和所述加密端的装置标识符,得到所述加密端的背包值;
利用所述加密端的背包值,生成所述加密端的签名文件;
向所述认证中心发送所述加密端的背包值和所述签名文件。
13.根据权利要求12所述的方法,其特征在于,按照以下公式,利用所述认证中心的背包公钥向量、所述加密端的身份信息和所述加密端的装置标识符,得到所述加密端的背包值,包括:
Figure FDA0002612367080000031
其中,
Figure FDA0002612367080000032
表示所述加密端的背包值,
Figure FDA0002612367080000033
为所述认证中心的背包公钥向量,IDA表示所述加密端的身份信息,IDA={idA‖UIDA},idA表示所述加密端的身份认证信息,UIDA表示所述加密端的装置标识符,(IDA)2=m1,m2…mn,mi∈{0,1},(IDA)2为身份信息IDA的二元n进位形式。
14.根据权利要求12所述的方法,其特征在于,通过以下公式,利用所述加密端的背包值,生成所述加密端的签名文件,包括:
Figure FDA0002612367080000041
其中,VA表示所述加密端的签名文件,ja表示随机数,
Figure FDA0002612367080000042
表示所述加密端的背包值,G表示椭圆曲线基点,h()表示哈希函数。
15.根据权利要求12所述的方法,其特征在于,所述方法还包括:
从所述认证中心获取所述加密端的验证公钥和所述加密端的签章;
根据所述加密端的签章和所述加密端的背包值,生成所述加密端的私钥;
利用所述加密端的私钥对所述加密端的验证公钥进行验证。
16.根据权利要求15所述的方法,其特征在于,通过以下公式,利用所述加密端的签章和所述加密端的背包值,生成所述加密端的私钥,包括:
Figure FDA0002612367080000043
其中,SKA表示所述加密端的私钥,WA表示所述加密端的签章,ja表示随机数,
Figure FDA0002612367080000044
表示所述加密端的背包值,h()表示哈希函数。
17.根据权利要求15所述的方法,其特征在于,所述利用所述加密端的私钥对所述加密端的验证公钥进行验证,包括:
利用所述加密端的私钥和从所述认证中心获取的椭圆曲线基点,得到第一值;
利用所述加密端的验证公钥、所述加密端的背包值、所述加密端的验证公钥的纵坐标、和所述认证中心的公钥,得到第二值;
将所述第一值和所述第二值进行匹配;
若所述第一值等于所述第二值,则表示所述加密端的验证公钥验证通过;
其中,所述第一值通过以下公式获得:
Sp=SKA·G
其中,Sp表示所述第一值,SKA表示所述加密端的私钥,G表示所述椭圆曲线基点;
所述第二值通过以下公式获得:
Figure FDA0002612367080000045
其中,Sq表示所述第二值,PKA表示所述加密端的验证公钥,G表示所述椭圆曲线基点,qay表示所述加密端的认证公钥的纵坐标,
Figure FDA0002612367080000051
表示所述加密端的背包值,h()表示哈希函数,PKCA表示所述认证中心的公钥。
18.一种解密方法,应用于解密端,其特征在于,包括:
生成解密端和加密端之间的第二共享密钥;
根据所述第二共享密钥和所述加密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第二会话密钥;
获取本次数据的加密信息;
利用所述第二会话密钥和所述解密端的背包私钥向量解密所述加密信息。
19.根据权利要求18所述的方法,其特征在于,所述生成解密端和加密端之间的第二共享密钥,包括:
根据获取的所述加密端的公钥和所述解密端的私钥生成所述第二共享密钥。
20.根据权利要求18所述的方法,其特征在于,在所述生成解密端和加密端之间的第二共享密钥之前,所述方法还包括:
根据获取的所述加密端的背包值、所述加密端的公钥、认证中心的公钥和所述加密端的验证公钥,对所述加密端进行第二验证;
所述生成解密端和加密端之间的第二共享密钥,包括:
若对所述加密端的第二验证通过,则生成解密端和加密端之间的第二共享密钥。
21.根据权利要求20所述的方法,其特征在于,所述根据获取的所述加密端的背包值、所述加密端的公钥、认证中心的公钥和所述加密端的验证公钥,对所述加密端进行第二验证,包括:
根据所述加密端的背包值、认证中心的公钥和所述加密端的验证公钥,生成第二密钥;
将所述第二密钥和所述加密端的公钥进行比对;
若所述第二密钥和所述加密端的公钥一致,则表示对所述加密端的验证通过。
22.根据权利要求21所述的方法,其特征在于,按照以下公式,根据所述加密端的背包值、认证中心的公钥和所述加密端的验证公钥,生成第二密钥:
Figure FDA0002612367080000061
其中,S″表示所述第二密钥,PKA表示所述加密端的验证公钥,
Figure FDA0002612367080000062
表示所述加密端的背包值,PKCA表示认证中心的公钥;G表示椭圆曲线基点;qax表示加密端的验证公钥的横坐标,h()表示哈希函数。
23.根据权利要求18所述的方法,其特征在于,在所述根据所述第二共享密钥和所述加密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第二会话密钥之前,所述方法还包括:
验证第三哈希运算值与第四哈希运算值是否匹配,其中,所述第三哈希运算值是所述加密端计算之后传输给所述解密端的;所述第四哈希运算值是所述解密端自行计算得到的;
所述生成用于本次数据加密的第二会话密钥,包括:
若所述第三哈希运算值与第四哈希运算值匹配,则生成用于本次数据加密的第二会话密钥。
24.根据权利要求23所述的方法,其特征在于,所述随机信息包括加密端的第二随机数;计算所述第四哈希运算值包括:
根据加密端的中间随机数、所述解密端的时间戳随机数、所述第二共享密钥、所述加密端的时间戳随机数以及与所述加密端的时间戳随机数对应的基点,得到所述解密端的第二随机数;
根据所述解密端的第二随机数、根据所述加密端的背包值以及所述解密端的背包值,得到所述第四哈希运算值。
25.根据权利要求24所述的方法,其特征在于,所述生成用于本次数据加密的第二会话密钥,包括:
根据所述解密端的第二随机数和所述第二共享密钥,生成所述第二会话密钥。
26.根据权利要求23所述的方法,其特征在于,在所述验证第三哈希运算值与第四哈希运算值是否匹配之前,所述方法还包括:
根据所述加密端的中间随机数、所述第二共享密钥、所述第二会话密钥、所述解密端的时间戳随机数、所述加密端的时间戳随机数、与所述加密端的时间戳随机数对应的基点、所述加密端的背包值以及所述解密端的背包值,得到第一哈希运算值,并向所述加密端发送所述第一哈希运算值。
27.根据权利要求23所述的方法,其特征在于,在所述验证第三哈希运算值与第四哈希运算值是否匹配之前,所述方法还包括:
根据所述解密端的时间戳随机数、与所述解密端的时间戳随机数对应的基点以及所述第二共享密钥,得到所述解密端的中间随机数;
将所述中间随机数发送给所述加密端,所述中间随机数用于由所述解密端计算第二哈希运算值。
28.根据权利要求18所述的方法,其特征在于,所述加密信息为本次数据的加密信息;所述利用所述第二会话密钥和所述解密端的背包私钥向量解密所述加密信息,包括:
利用所述第二会话密钥将所述加密信息解密,得到信息加密背包值;
利用所述解密端的背包向量私钥解密所述信息加密背包值,得到所述本次数据。
29.根据权利要求18所述的方法,其特征在于,在所述生成解密端和加密端之间的第二共享密钥之前,所述方法还包括:
从认证中心获得所述认证中心的背包公钥向量和认证中心公钥;
利用所述认证中心的背包公钥向量、所述解密端的身份信息和所述解密端的装置标识符,得到所述解密端的背包值;
利用所述解密端的背包值,生成所述解密端的签名文件;
向所述认证中心发送所述解密端的背包值和所述签名文件。
30.根据权利要求29所述的方法,其特征在于,按照以下公式,利用所述认证中心的背包公钥向量、所述解密端的身份信息和所述解密端的装置标识符,得到所述解密端的背包值:
Figure FDA0002612367080000071
其中,
Figure FDA0002612367080000072
表示所述解密端的背包值,
Figure FDA0002612367080000073
为所述认证中心的背包公钥向量,IDB表示所述解密端的身份信息,IDB={idB‖UIDB},idB表示所述解密端的身份认证信息,UIDB表示所述解密端的装置标识符,(IDB)2=m1,m2…mn,mi∈{0,1},(IDB)2为身份信息IDB的二元n进位形式。
31.根据权利要求29所述的方法,其特征在于,按照以下公式,利用所述解密端的背包值,生成所述解密端的签名文件:
Figure FDA0002612367080000081
其中,VB表示所述加密端的签名文件,jb表示随机数,
Figure FDA0002612367080000082
表示所述解密端的背包值,G表示椭圆曲线基点,h()表示哈希函数。
32.根据权利要求29所述的方法,其特征在于,所述方法还包括:
从所述认证中心获取所述解密端的验证公钥和所述解密端的签章;
根据所述解密端的签章和所述解密端的背包值,生成所述解密端的私钥;
利用所述解密端的私钥对所述解密端的验证公钥进行验证。
33.根据权利要求32所述的方法,其特征在于,通过以下公式,利用所述解密端的签章和所述解密端的背包值,生成所述解密端的私钥,包括:
Figure FDA0002612367080000083
其中,SKB表示所述解密端的私钥,WB表示所述解密端的签章,jb表示随机数,
Figure FDA0002612367080000084
表示所述解密端的背包值,h()表示哈希函数。
34.根据权利要求32所述的方法,其特征在于,所述利用所述解密端的私钥对所述解密端的验证公钥进行验证,包括:
利用所述解密端的私钥和从所述认证中心获取的椭圆曲线基点,得到第三值;
利用所述解密端的验证公钥、所述解密端的背包值、所述解密端的验证公钥的纵坐标、和所述认证中心的公钥,得到第四值;
将所述第三值和所述第四值进行匹配;
若所述第三值等于所述第四值,则表示所述解密端的验证公钥验证通过;
其中,所述第三值通过以下公式获得:
Sp=SKB·G
其中,Sp表示所述第三值,SKB表示所述解密端的私钥,G表示所述椭圆曲线基点;
所述第四值通过以下公式获得:
Figure FDA0002612367080000085
其中,Sq表示所述第四值,PKB表示所述解密端的验证公钥,G表示所述椭圆曲线基点,qay 1表示所述解密端的认证公钥的纵坐标,
Figure FDA0002612367080000091
表示所述解密端的背包值,h()表示哈希函数,PKCA表示所述认证中心的公钥。
35.一种加解密方法,其特征在于,包括:
加密端生成和解密端之间的第一共享密钥,解密端生成和加密端之间的第二共享密钥;
所述加密端根据所述第一共享密钥和所述解密端与本次数据加密交互对应的随机信息,生成用于本次数据加密的第一会话密钥;所述解密端根据所述第二共享密钥和所述加密端与本次数据加密交互对应的随机信息,生成用于本次数据加密的第二会话密钥;
所述加密端利用所述解密端的背包公钥向量和所述第一会话密钥将本次数据进行加密,得到第一加密信息;
所述解密端获取所述第一加密信息;
所述解密端根利用所述第二会话密钥和所述解密端的背包私钥向量解密所述第一加密信息,得到本次数据。
36.根据权利要求35所述的方法,其特征在于,所述方法还包括以下至少一个步骤:
在所述加密端生成和解密端之间的第一共享密钥,解密端生成和加密端之间的第二共享密钥之前,所述加密端和认证中心进行注册和验证,所述解密端和所述认证中心进行注册和验证;
在所述加密端生成和解密端之间的第一共享密钥,解密端生成和加密端之间的第二共享密钥之前,所述加密端和所述解密端之间进行相互的第一验证;
在所述加密端生成用于本次数据加密的第一会话密钥和在所述解密端生成第二会话密钥之前,所述加密端和所述解密端之间进行相互的第二验证。
37.根据权利要求36所述的方法,其特征在于,所述生成用于本次数据加密的第一共享密钥,包括:
在所述加密端对所述解密端的验证通过以及在所述解密端对所述加密端的验证通过后,生成用于本次数据加密的第一共享密钥;
所述生成用于本次数据加密的第二共享密钥,包括:
在所述加密端对所述解密端的验证通过以及在所述解密端对所述加密端的验证通过后,生成用于本次数据加密的第二共享密钥。
38.根据权利要求36所述的方法,其特征在于,所述生成用于本次数据加密的第一会话密钥,包括:
在所述加密端对所述解密端的验证通过以及在所述解密端对所述加密端的验证通过后,生成用于本次数据加密的第一会话密钥;
所述生成用于本次数据加密的第二会话密钥,包括:
在所述加密端对所述解密端的验证通过以及在所述解密端对所述加密端的验证通过后,生成用于本次数据加密的第二会话密钥。
39.一种认证方法,应用于认证中心,其特征在于,包括:
接收客户端的认证请求;
根据所述认证请求,利用背包算法生成背包公钥向量;
向所述客户端发送所述背包公钥向量;
接收所述客户端发送的背包值,其中,所述背包值是所述客户端利用所述背包公钥向量计算得到的;
根据所述背包值,对所述客户端进行认证。
40.根据权利要求39所述的方法,其特征在于,所述根据所述认证请求,利用背包算法生成背包公钥向量,包括:
获取超递增背包向量,第一背包向量和第二背包向量;
利用中国余式定理,对所述超递增背包向量、所述第一背包向量、所述第二背包向量、第一常数和第二常数进行运算,生成所述背包公钥向量。
41.根据权利要求39所述的方法,其特征在于,所述根据所述背包值,对所述客户端进行认证,包括:
根据所述背包值,生成验证公钥和签章;
向所述客户端发送所述验证公钥和签章。
42.一种加密装置,应用于加密端,其特征在于,包括:
第一生成模块,用于生成加密端和解密端之间的第一共享密钥;
第二生成模块,用于根据所述第一共享密钥和与所述解密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第一会话密钥;
第一获取模块,用于利用所述解密端的背包公钥向量和所述第一会话密钥将本次数据进行加密,得到第一加密信息。
43.一种解密装置,应用于解密端,其特征在于,包括:
第一生成模块,用于生成解密端和加密端之间的第二共享密钥;
第二生成模块,用于根据所述第二共享密钥和所述加密端的本次数据加密交互对应的随机信息,生成用于本次数据加密的第二会话密钥;
第一获取模块,用于获取本次数据的加密信息;
第一解密模块,用于利用所述第二会话密钥和所述解密端的背包私钥向量解密所述加密信息。
44.一种认证装置,应用于认证中心,其特征在于,包括:
第一接收模块,用于接收客户端的认证请求;
第一生成模块,用于根据所述认证请求,利用背包算法生成背包公钥向量;
第一发送模块,用于向所述客户端发送所述背包公钥向量;
第二接收模块,用于接收所述客户端发送的背包值,其中,所述背包值是所述客户端利用所述背包公钥向量计算得到的;
第一认证模块,用于根据所述背包值,对所述客户端进行认证。
45.一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;其特征在于,所述处理器,用于读取存储器中的程序实现包括如权利要求1至17中任一项所述的加密方法中的步骤;或者实现包括如权利要求18至34中任一项所述的解密方法中的步骤;或者实现包括如权利要求35至38中任一项所述的加解密方法中的步骤;或者实现包括如权利要求39至41中任一项所述的认证方法中的步骤。
46.一种可读存储介质,用于存储程序,其特征在于,所述程序被处理器执行时实现包括如权利要求1至17中任一项所述的加密方法中的步骤;或者实现包括如权利要求18至34中任一项所述的解密方法中的步骤;或者实现包括如权利要求35至39中任一项所述的加解密方法中的步骤;或者实现包括如权利要求39至41中任一项所述的认证方法中的步骤。
CN202010758492.6A 2020-07-31 2020-07-31 一种加解密方法、认证方法、装置、设备和存储介质 Pending CN114095151A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010758492.6A CN114095151A (zh) 2020-07-31 2020-07-31 一种加解密方法、认证方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010758492.6A CN114095151A (zh) 2020-07-31 2020-07-31 一种加解密方法、认证方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN114095151A true CN114095151A (zh) 2022-02-25

Family

ID=80295127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010758492.6A Pending CN114095151A (zh) 2020-07-31 2020-07-31 一种加解密方法、认证方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN114095151A (zh)

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002139995A (ja) * 2000-11-02 2002-05-17 Kanazawa Inst Of Technology 公開鍵生成装置、暗号化装置および復号装置
US20040165726A1 (en) * 2002-12-03 2004-08-26 Masato Yamamichi Key agreement system, shared-key generation apparatus, and shared-key recovery apparatus
CN1877633A (zh) * 2006-07-07 2006-12-13 上海交通大学 一种加密/解密和签名方法及系统
JP2007171412A (ja) * 2005-12-20 2007-07-05 Nippon Telegr & Teleph Corp <Ntt> 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム
JP2011128281A (ja) * 2009-12-16 2011-06-30 Chuo Univ 複数のナップザックを用いる公開鍵暗号方式による暗号システム、鍵生成装置、暗号化装置、復号装置、データ交換方法およびプログラム
WO2013021360A1 (en) * 2011-08-10 2013-02-14 Pes Carlo Encryption and decryption method
CN107302541A (zh) * 2017-07-31 2017-10-27 成都蓝码科技发展有限公司 一种基于http协议的数据加密传输方法
WO2017202161A1 (zh) * 2016-05-26 2017-11-30 中兴通讯股份有限公司 基于无证书两方认证密钥协商方法、装置和存储介质
JP2018092010A (ja) * 2016-12-05 2018-06-14 恭通 村上 暗号化装置と暗号化方法、暗号化プログラム及び鍵生成装置と鍵生成方法、鍵生成プログラム
CN108400867A (zh) * 2017-02-07 2018-08-14 中国科学院沈阳计算技术研究所有限公司 一种基于公钥加密体制的认证方法
US20190058600A1 (en) * 2016-02-23 2019-02-21 nChain Holdings Limited Personal device security using elliptic curve cryptography for secret sharing
CN109639412A (zh) * 2018-12-05 2019-04-16 成都卫士通信息产业股份有限公司 一种通信方法、系统及电子设备和存储介质
CN110971401A (zh) * 2019-11-19 2020-04-07 武汉大学 一种基于交叉互锁机制的认证密钥协商方法及其实施装置
US10673827B1 (en) * 2014-11-04 2020-06-02 Amazon Technologies, Inc. Secure access to user data
CN111314076A (zh) * 2020-03-31 2020-06-19 四川九强通信科技有限公司 一种支持双向认证的无证书密钥协商方法

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002139995A (ja) * 2000-11-02 2002-05-17 Kanazawa Inst Of Technology 公開鍵生成装置、暗号化装置および復号装置
US20040165726A1 (en) * 2002-12-03 2004-08-26 Masato Yamamichi Key agreement system, shared-key generation apparatus, and shared-key recovery apparatus
JP2007171412A (ja) * 2005-12-20 2007-07-05 Nippon Telegr & Teleph Corp <Ntt> 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム
CN1877633A (zh) * 2006-07-07 2006-12-13 上海交通大学 一种加密/解密和签名方法及系统
JP2011128281A (ja) * 2009-12-16 2011-06-30 Chuo Univ 複数のナップザックを用いる公開鍵暗号方式による暗号システム、鍵生成装置、暗号化装置、復号装置、データ交換方法およびプログラム
WO2013021360A1 (en) * 2011-08-10 2013-02-14 Pes Carlo Encryption and decryption method
US10673827B1 (en) * 2014-11-04 2020-06-02 Amazon Technologies, Inc. Secure access to user data
US20190058600A1 (en) * 2016-02-23 2019-02-21 nChain Holdings Limited Personal device security using elliptic curve cryptography for secret sharing
CN107437993A (zh) * 2016-05-26 2017-12-05 中兴通讯股份有限公司 一种基于无证书两方认证密钥协商方法和装置
WO2017202161A1 (zh) * 2016-05-26 2017-11-30 中兴通讯股份有限公司 基于无证书两方认证密钥协商方法、装置和存储介质
JP2018092010A (ja) * 2016-12-05 2018-06-14 恭通 村上 暗号化装置と暗号化方法、暗号化プログラム及び鍵生成装置と鍵生成方法、鍵生成プログラム
CN108400867A (zh) * 2017-02-07 2018-08-14 中国科学院沈阳计算技术研究所有限公司 一种基于公钥加密体制的认证方法
CN107302541A (zh) * 2017-07-31 2017-10-27 成都蓝码科技发展有限公司 一种基于http协议的数据加密传输方法
CN109639412A (zh) * 2018-12-05 2019-04-16 成都卫士通信息产业股份有限公司 一种通信方法、系统及电子设备和存储介质
CN110971401A (zh) * 2019-11-19 2020-04-07 武汉大学 一种基于交叉互锁机制的认证密钥协商方法及其实施装置
CN111314076A (zh) * 2020-03-31 2020-06-19 四川九强通信科技有限公司 一种支持双向认证的无证书密钥协商方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马民生: "基于零知识证明和M-H背包问题的身份识别技术研究", 软件导刊, vol. 9, no. 4, pages 18 - 20 *

Similar Documents

Publication Publication Date Title
CN111740828B (zh) 一种密钥生成方法以及装置、设备、加解密方法
CN108989053B (zh) 一种基于椭圆曲线的无证书公钥密码体制实现方法
CN107947913B (zh) 一种基于身份的匿名认证方法与系统
CN107659395B (zh) 一种多服务器环境下基于身份的分布式认证方法及系统
CN101442522B (zh) 一种基于组合公钥的通信实体标识认证方法
CN110120939B (zh) 一种基于异构系统的可否认认证的加密方法和系统
CN110113150B (zh) 基于无证书环境的可否认认证的加密方法和系统
CN112564907B (zh) 密钥生成方法及装置、加密方法及装置、解密方法及装置
CN112104453B (zh) 一种基于数字证书的抗量子计算数字签名系统及签名方法
CN114268439B (zh) 一种基于格的身份基认证密钥协商方法
CN112087428B (zh) 一种基于数字证书的抗量子计算身份认证系统及方法
CN110535626B (zh) 基于身份的量子通信服务站保密通信方法和系统
CN107682152B (zh) 一种基于对称密码的群组密钥协商方法
CN106713349B (zh) 一种能抵抗选择密文攻击的群组间代理重加密方法
CN111049647B (zh) 一种基于属性门限的非对称群组密钥协商方法
CN114726546B (zh) 数字身份认证方法、装置、设备和存储介质
CN111277412A (zh) 基于区块链密钥分发的数据安全共享系统及方法
CN110784314A (zh) 无证书的加密信息处理方法
CN111565108B (zh) 签名处理方法、装置及系统
CN111262709B (zh) 基于陷门哈希函数的无证书签密系统及方法
CN114070549A (zh) 一种密钥生成方法、装置、设备和存储介质
CN111934887B (zh) 基于插值多项式的多接受者签密方法
CN114826611A (zh) 一种基于国密SM9的IND-sID-CCA2安全标识广播加密方法
CN109412815B (zh) 一种实现跨域安全通信的方法和系统
CN114070570A (zh) 一种电力物联网的安全通信方法

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