CN114070549A - 一种密钥生成方法、装置、设备和存储介质 - Google Patents

一种密钥生成方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN114070549A
CN114070549A CN202010760561.7A CN202010760561A CN114070549A CN 114070549 A CN114070549 A CN 114070549A CN 202010760561 A CN202010760561 A CN 202010760561A CN 114070549 A CN114070549 A CN 114070549A
Authority
CN
China
Prior art keywords
communication
terminal
key
value
encryption
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
CN202010760561.7A
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 Consumer Finance Co Ltd
Original Assignee
Mashang Consumer 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 Consumer Finance Co Ltd filed Critical Mashang Consumer Finance Co Ltd
Priority to CN202010760561.7A priority Critical patent/CN114070549A/zh
Publication of CN114070549A publication Critical patent/CN114070549A/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/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
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

一种密钥生成方法、装置、设备和存储介质
技术领域
本发明涉及信息安全技术领域,尤其涉及一种密钥生成方法、装置、设备和存储介质。
背景技术
目前,利用加解密技术做数据保护的模式可分为对称式加密与非对称式的加密技术两大类。对称式加密技术,加解密时双方仅使用一把共同的密钥,优点是具有运算能力快、资源开销低的优点,但缺点在于如果一旦密钥被窃取,则所有传输的数据加解密都会因此被破解。非对称式加密技术,其优点在于利用密码技术产生所谓的公钥(Public Key)及私钥(Private Key)两把密钥。发送者传送数据时会在发送端将数据先以接收者所公开的公钥执行加密。加密的数据传送到接收端时,接收者再用自己的私钥来解密。这种方式虽然比对称式加密更安全,但仍有可能会因为产生接收者或发送者密钥管理不当而遭密钥被盗取的危险。因此,结合对称式和非对称式加密技术的优点,开发混合式公开密码***,成为密码学领域一个主要方向。
现有的混合式公开密码***包括背包公钥密码***、椭圆曲线密码***(Elliptic Curve Cryptosystem,ECC)等。但是,这些***的安全性都无法满足用户高安全性的需求。因此,需要提出一种密钥生成方法,以提高信息的安全性。
发明内容
本发明实施例提供一种密钥生成方法、装置、设备和存储介质,以提高信息的安全性。
第一方面,本发明实施例提供了一种密钥生成方法,包括:
生成通信本端和通信对端之间的共享密钥;
根据所述共享密钥和与所述通信对端的本次数据加密交互对应的随机信息,生成通信本端的会话密钥。
第二方面,本发明实施例提供了一种密钥生成装置,包括:
第一生成模块,用于生成通信本端和通信对端之间的共享密钥;
第二生成模块,用于根据所述共享密钥和与所述通信对端的本次数据加密交互对应的随机信息,生成通信本端的会话密钥。
第三方面,本发明实施例还提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如上第一方面所述的方法中的步骤。
第四方面,本发明实施例还提供一种可读存储介质,所述可读存储介质上存储程序,所述程序被处理器执行时实现如上第一方面所述的方法中的步骤。
在本发明实施例中,生成通信本端和通信对端之间的共享密钥,并根据所述共享密钥和与所述通信对端的本次数据加密交互对应的随机信息,生成通信本端的会话密钥。由于会话密钥是根据通信本端和通信对端之间的共享密钥和与所述通信对端的本次数据加密交互对应的随机信息得到的,因此,利用本发明实施例获得的会话密钥安全性更高,从而提高了信息传输时的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的密钥生成方法的流程图;
图2是本发明实施例提供的客户端和认证中心的交互示意图;
图3是本发明实施例提供的客户端A和客户端B的交互示意图之一;
图4是本发明实施例提供的客户端A和客户端B的交互示意图之二;
图5是本发明实施例提供的密钥生成装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1是本发明实施例提供的密钥生成方法的流程图,如图1所示,包括以下步骤:
步骤101、生成通信本端和通信对端之间的共享密钥。
其中,通信本端和通信对端指的是通信的双方。在本发明实施例中,通信的含义指的是双方进行数据加密交互,包括信息的加密交互,文件的加密交互等等。
例如,通信本端可以指的是加密端,通信对端可以指的是解密端。反之亦可。
具体的,在此步骤中,根据所述通信本端的私钥和获取的所述通信对端的公钥生成通信本端的共享密钥。
其中,利用以下公式计算通信本端的共享密钥:
K=sK2×S1
其中,K表示所述通信本端的共享密钥,sK2表示所述通信对端的私钥,S1表示所述通信本端的公钥。
在步骤101之前,为进一步提高生成的密钥的安全性,所述方法还可包括:
根据获取的所述通信对端的背包值、所述通信对端的公钥、认证中心的公钥和所述通信对端的验证公钥,对所述通信对端进行验证。若对所述通信对端的验证通过,则生成通信本端和通信对端之间的共享密钥。
具体的,在验证的过程中,根据所述通信对端的背包值、所述认证中心的公钥和所述通信对端的验证公钥,生成通信本端的验证密钥。之后,将所述通信本端的验证密钥和所述通信对端的公钥进行比对。若所述通信本端的验证密钥和所述通信对端的公钥一致,则表示对所述通信对端的验证通过。
如果所述通信本端为加密端,通信对端为解密端,按照以下公式生成加密端的验证密钥:
Figure BDA0002612965320000031
其中,S′表示所述加密端的验证密钥,PKB表示所述解密端的验证公钥,
Figure BDA0002612965320000041
表示所述解密端的背包值,PKCA表示认证中心的公钥;G表示椭圆曲线基点;qax 1表示解密端的验证公钥的横坐标,h()表示哈希函数;
如果所述通信本端为解密端,通信对端为加密端,按照以下公式生成解密端的验证密钥:
Figure BDA0002612965320000042
其中,S″表示所述解密端的验证密钥,PKA表示所述加密端的验证公钥,
Figure BDA0002612965320000043
表示所述加密端的背包值,PKCA表示认证中心的公钥;G表示椭圆曲线基点;qax表示加密端的验证公钥的横坐标,h()表示哈希函数。
步骤102、根据所述共享密钥和与所述通信对端的本次数据加密交互对应的随机信息,生成通信本端的会话密钥。
一、通信本端是加密端,通信对端是解密端,所述共享密钥为所述加密端的共享密钥:
所述随机信息包括加密端的第一随机数。在此步骤中,根据所述加密端的第一随机数和所述加密端的共享密钥,生成所述加密端的会话密钥。通过这种方式可以看出,由于加密端的会话密钥的生成利用了随机数,因此,利用本发明实施例的方案可进一步提高传输信息的安全性。
其中,加密端根据解密端的中间随机数、所述加密端的时间戳随机数、所述加密端的共享密钥、所述解密端的时间戳随机数以及与所述解密端的时间戳随机数对应的基点,得到所述加密端的第一随机数。
具体的,按照以下方式得到第一随机数:
WA=tATB
TB=RB-KAB
RB=KAB+TB
TB=tBP′
其中,WA表示第一随机数,tA表示加密端的时间戳随机数,tB表示解密端的时间戳随机数,P′表示与所述解密端的时间戳随机数对应的基点,KAB表示加密端的共享密钥,RB表示解密端的中间随机数。
为提高安全性,在本发明实施例中,在步骤102之前,所述方法还包括:
加密端验证第一哈希运算值与第二哈希运算值是否匹配(如是否相等),其中,所述第一哈希运算值是所述解密端计算之后传输给所述加密端的;所述第二哈希运算值是所述加密端自行计算得到的。若所述第一哈希运算值与第二哈希运算值匹配,则生成加密端的会话密钥。
在获得了第一随机数之后,根据所述加密端的第一随机数、所述加密端的背包值以及所述解密端的背包值,得到所述第二哈希运算值。例如,可对所述加密端的第一随机数、所述加密端的背包值以及所述解密端的背包值进行哈希运算,得到所述第二哈希运算值。
其中,可按照如下方式计算所述第二哈希运算值:
Figure BDA0002612965320000051
其中,Auth(2)表示第二哈希运算值,
Figure BDA0002612965320000052
为加密端的背包值,
Figure BDA0002612965320000053
表示解密端的背包值,WA表示第一随机数,h()表示哈希函数。
为便于解密端对加密端进行验证,在加密端验证第一哈希运算值与第二哈希运算值是否匹配之前,所述方法还可包括:根据所述加密端的时间戳随机数,与所述加密端的时间戳随机数对应的基点以及所述加密端的共享密钥,得到所述加密端的中间随机数,然后,将所述中间随机数发送给所述解密端,所述中间随机数用于由所述解密端计算所述第一哈希运算值。
其中,可按照如下方式计算所述中间随机数:
TA=tA P
RA=KAB+TA
其中,RA表示中间随机数,KAB表示第一所述共享密钥,tA表示所述加密端的时间戳随机数,P表示与所述加密端的时间戳随机数对应的基点。
可选的,在生成加密端的会话密钥之后,所述方法还可包括:根据所述加密端的背包值、所述解密端的背包值以及所述加密端的会话密钥生成第三哈希运算值,并向所述解密端发送所述第三哈希运算值。例如,可对所述加密端的背包值、所述解密端的背包值以及所述加密端的会话密钥进行哈希运算,得到所述第三哈希运算值。
其中,可按照如下方式计算所述第三哈希运算值:
Figure BDA0002612965320000054
GAB=WA+KAB
其中,Auth(3)表示第三哈希运算值,
Figure BDA0002612965320000061
为加密端的背包值,
Figure BDA0002612965320000062
表示解密端的背包值,GAB表示第一会话密钥,h()表示哈希函数,KAB表示加密端的第一共享密钥,WA表示第一随机数。
二、通信本端是解密端,通信对端是加密端,所述共享密钥为所述解密端的共享密钥:
其中,所述随机信息包括解密端的第二随机数。在生成所述解密端的会话密钥的过程中,所述解密端根据所述解密端的第二随机数和所述解密端的共享密钥,生成所述解密端的会话密钥。通过这种方式可以看出,由于解密端的会话密钥的生成利用了随机数,因此,利用本发明实施例的方案可进一步提高传输信息的安全性。
解密端根据所述加密端的中间随机数、所述解密端的时间戳随机数、所述解密端的共享密钥、所述加密端的时间戳随机数以及与所述加密端的时间戳随机数对应的基点,得到所述解密端的第二随机数,然后,根据所述解密端的第二随机数、根据所述加密端的背包值以及所述解密端的背包值,得到所述第四哈希运算值。例如,可对所述解密端的第二随机数、根据所述加密端的背包值以及所述解密端的背包值进行哈希运算,得到所述第四哈希运算值。
具体的,按照以下方式得到第二随机数:
Figure BDA0002612965320000063
Figure BDA0002612965320000064
RA=KAB+TA
TA=tA P
其中,WB表示第二随机数,tB表示解密端的时间戳随机数,tA表示加密端的时间戳随机数,P表示与所述加密端的时间戳随机数对应的基点,KAB′表示解密端的共享密钥,KAB表示加密端的共享密钥,RA表示所述加密端的中间随机数。
其中,可按照如下方式计算所述第四哈希运算值:
Figure BDA0002612965320000065
其中,Auth(4)表示第四哈希运算值,
Figure BDA0002612965320000066
为加密端的背包值,
Figure BDA0002612965320000067
表示解密端的背包值,WB表示第二随机数,h()表示哈希函数。
为进一步提高安全性,在生成解密端的会话密钥之前,加解密端还可进行相互的验证。具体的,解密端验证第三哈希运算值与第四哈希运算值是否匹配,其中,所述第三哈希运算值是所述加密端计算之后传输给所述解密端的;所述第四哈希运算值是所述解密端自行计算得到的。若所述第三哈希运算值与第四哈希运算值匹配,则生成用于本次数据加密的解密端的会话密钥。
为便于解密端对加密进行验证,在所述验证第三哈希运算值与第四哈希运算值是否匹配之前,所述方法还包括:解密端根据所述解密端的时间戳随机数、与所述解密端的时间戳随机数对应的基点以及所述解密端的共享密钥,得到所述解密端的中间随机数,并将所述中间随机数发送给所述加密端,所述中间随机数用于由所述解密端计算第二哈希运算值。
其中,可按照如下方式计算所述中间随机数:
TB=tBP′
RB=KAB′+TB
其中,RB表示中间随机数,KAB′表示解密端的共享密钥,tB表示所述解密端的时间戳随机数,P′表示与所述解密端的时间戳随机数对应的基点。
此外,为便于加密端对解密端进行验证,所述解密端还可根据所述加密端的中间随机数、所述解密端的会话密钥、所述解密端的共享密钥、所述解密端的时间戳随机数、所述加密端的时间戳随机数、与所述加密端的时间戳随机数对应的基点、所述加密端的背包值以及所述解密端的背包值,得到第一哈希运算值,并向所述加密端发送所述第一哈希运算值。
其中,可按照如下方式计算得到所述第一哈希运算值:
Figure BDA0002612965320000071
GAB′=WB+KAB
其中,Auth(1)表示第一哈希运算值,
Figure BDA0002612965320000072
为加密端的背包值,
Figure BDA0002612965320000073
表示解密端的背包值,GAB′表示解密端的会话密钥,KAB′表示解密端的共享密钥,WB表示第二随机数,h()表示哈希函数。
在本发明实施例中,生成通信本端和通信对端之间的共享密钥,并根据所述共享密钥和与所述通信对端的本次数据加密交互对应的随机信息,生成通信本端的会话密钥。由于会话密钥是根据通信本端和通信对端之间的共享密钥和与所述通信对端的本次数据加密交互对应的随机信息得到的,因此,利用本发明实施例获得的会话密钥安全性更高,从而提高了信息传输时的安全性。
此外,在执行本发明实施例之前,通信本端还可与认证中心进行认证、注册等。
具体的,通信本端从认证中心获得所述认证中心的背包公钥向量和认证中心公钥。之后,利用所述认证中心的背包公钥向量、所述通信本端的身份信息和所述通信本端的装置标识符,得到所述通信本端的背包值。其中,所述身份信息可以包括姓名,身份证号,电话号码等。然后,利用所述通信本端的背包值,生成所述通信本端的签名文件。最后,向所述认证中心发送所述通信本端的背包值和所述签名文件。
在实际应用中,通信本端可按照以下公式,利用所述认证中心的背包公钥向量、所述通信本端的身份信息和所述通信本端的装置标识符,得到所述通信本端的背包值,包括:
CID=a1m1+a2m2+…+anmn
其中,CID表示所述通信本端的背包值,
Figure BDA0002612965320000081
为所述认证中心的背包公钥向量,ID表示所述通信本端的身份信息,ID={id||UID},id表示所述通信本端的身份认证信息,UID表示所述通信本端的装置标识符,(ID)2=m1,m2…mn,mi∈{0,1},(ID)2为身份信息ID的二元n进位形式。
具体的,通过以下公式,利用所述通信本端的背包值,生成所述通信本端的签名文件,包括:
V=h(ja||CID)·G
其中,V表示所述通信本端的签名文件,ja表示随机数,CID表示所述通信本端的背包值,G表示椭圆曲线基点,h()表示哈希函数。
在本发明实施例中,为进一步提高安全性,所述通信本端还可从所述认证中心获取所述通信本端的验证公钥和所述通信本端的签章。之后,根据所述通信本端的签章和所述通信本端的背包值,生成所述通信本端的私钥。然后,利用所述通信本端的私钥对所述通信本端的验证公钥进行验证。
具体的,通过以下公式,利用所述通信本端的签章和所述通信本端的背包值,生成所述通信本端的私钥,包括:
SK=[W+h(ja||CID)]
其中,SK表示所述通信本端的私钥,W表示所述通信本端的签章,ja表示随机数,CID表示所述通信本端的背包值,h()表示哈希函数。
在对认证中心的公钥进行验证的过程中,按照如下方式认证:
(1)利用所述通信本端的私钥和从所述认证中心获取的椭圆曲线基点,得到第一值;
其中,所述第一值通过以下公式获得:
Sp=SK·G
其中,Sp表示所述第一值,SK表示所述通信本端的私钥,G表示所述椭圆曲线基点。
(2)利用所述通信本端的验证公钥、所述通信本端的背包值、所述通信本端的验证公钥的纵坐标、和所述认证中心的公钥,得到第二值。
其中,所述第二值通过以下公式获得:
Sq=PK+h(CID)·G+(qay+h(CID))·PKCA
其中,Sq表示所述第二值,PK表示所述通信本端的验证公钥,G表示所述椭圆曲线基点,qay表示所述通信本端的认证公钥的纵坐标,CID表示所述通信本端的背包值,h()表示哈希函数,PKCA表示所述认证中心的公钥。
(3)将所述第一值和所述第二值进行匹配。
(4)若所述第一值等于所述第二值,则表示所述通信本端的验证公钥验证通过。
在本发明实施例中,生成通信本端和通信对端之间的共享密钥,并根据所述共享密钥和与所述通信对端的本次数据加密交互对应的随机信息,生成通信本端的会话密钥。由于会话密钥是根据通信本端和通信对端之间的共享密钥和与所述通信对端的本次数据加密交互对应的随机信息得到的,因此,利用本发明实施例获得的会话密钥安全性更高,从而提高了信息传输时的安全性。
在图1所示的实施例的基础上,本发明实施例的方法还可包括:
利用所述通信本端的会话密钥生成通信本端的区块密钥。具体的,可利用以下公式生成通信本端的区块密钥:
K=H(GAB)
其中,K表示所述通信本端的区块密钥,GAB表示所述通信本端的会话密钥,H()表示哈希函数。
在图1所示的实施例的基础上,本发明实施例的方法还可包括:利用所述通信本端的会话密钥生成通信本端的串流密钥。
具体的,将所述通信本端的会话密钥通过线性反馈移位寄存器生成串流式密钥种子,然后,将所述串流式密钥种子和自选随机函数进行运算,得到运算结果。之后,将所述运算结果通过线性反馈移位寄存器生成所述通信本端的串流密钥。
以下,结合具体实施例对本发明实施例的上述方案做详细说明。
以下,结合具体实施例对本发明实施例的上述方案做详细说明。假设客户端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 BDA0002612965320000101
任意选取两个背包向量
Figure BDA0002612965320000102
其中,ui,vi,均为正整数且满足bi=ui+vi,,i=1,…,n。
认证中心任选两个整数M1和M2,满足
Figure BDA0002612965320000103
满足GCD(M1,M2)=1。认证中心利用中国余式定理计算向量
Figure BDA0002612965320000104
Figure BDA0002612965320000111
其中,ai=ui(mod M1),ai=vi(mod M2),i=1,…,n。
之后,认证中心向客户端发送背包公钥向量
Figure BDA0002612965320000112
并将M1和M2设置为认证中心的私钥。认证中心本身设置随机标识符UIDM
访问控制是数据安全防护的第一关,如果保存的资料不需要通过任何身份验证就可以轻易拿到,这些数据即暴露在高风险环境中。因此,加强注册及验证阶段的安全机制十分必要。在进行认证及注册的过程中,结合图2,该过程可具体包括:
首先,客户端及认证中心均设置已选定符合条件的随机背包的模块及安全椭圆曲线模块(内建识别)。当客户端A向认证中心注册时,客户端A向认证中心取得认证中心的公钥以及客户端A的背包公钥向量,并以背包公钥向量加密身份信息idA及装置标识符UIDA,计算得到背包值
Figure BDA0002612965320000113
并产生签名文件,再以认证中心的公钥加密后传送至认证中心。
其中,所述身份信息例如可以包括姓名,身份证号,电话,客户端名称等。获得的身份信息IDA为:IDA={idA||UIDA}。
接着,客户端A将份信息IDA转换为二元n进位形式:
(IDA)2=m1,m2…mn,mi∈{0,1}
之后,客户端A将(IDA)2=m1,m2…mn利用背包公钥向量
Figure BDA0002612965320000114
Figure BDA0002612965320000115
进行加密,得到客户端A的背包值
Figure BDA0002612965320000116
Figure BDA0002612965320000117
认证中心接收到加密的
Figure BDA0002612965320000118
后,计算IDA,并建立关联参数注册。
Figure BDA0002612965320000119
Figure BDA00026129653200001110
令b=cp+cq,由b和超递增背包向量
Figure BDA00026129653200001111
认证中心便可恢复出身份IDA,m1是二进制表示的最高位,mn是二进制表示的最低位。
在客户端A侧,客户端A利用背包值
Figure BDA00026129653200001112
及随机选取的一个参数ja,通过单向无碰撞哈希函数h()产生签名文件VA。之后,将产生的
Figure BDA00026129653200001113
发送给认证中心,其中,VA的计算方式如公式(2)。
Figure BDA00026129653200001114
认证中心利用一随机参数kCA计算客户端A的验证公钥PkA及签章wA,计算方式如下:
Figure BDA0002612965320000121
Figure BDA0002612965320000122
其中,(qax,qay)表示客户端A的验证公钥的坐标。
之后,认证中心将PKA,WA发送给客户端A。
客户端A在收到上述信息之后,计算客户端A的私钥,具体如公式(3):
Figure BDA0002612965320000123
为了验证加密端的验证公钥,客户端A进行如下处理:
计算Sp,其中,Sp=SKA·G (4)。
再利用下述公式(5)计算SKA·G:
Figure BDA0002612965320000124
将公式(4)和公式(5)的值进行比较,若二者一致,则通过对加密端的验证公钥的认证,完成与认证中心之间的注册与验证。
客户端A计算私钥并验证公钥的合法性,同时完成注册与验证作业。所有客户端都可按照上述过程完成与认证中心之间的注册与验证程序,取得自身的(Wm,PKm)后,在后续通信阶段即可在不依赖认证中心的情形下,直接完成双方的自我认证。
假设客户端A和客户端B之间需要传输加密信息。在按照上述记载完成了和认证中心的注册和验证之后,客户端A和客户端B之间的通信过程如下。
一、计算共同密钥
1、客户端A和客户端B的相互验证。
结合图3,客户端A利用背包值
Figure BDA0002612965320000125
与客户端B进行认证,同样的,客户端B利用自身的背包值
Figure BDA0002612965320000131
和客户端A进行认证。具体的,客户端A将
Figure BDA0002612965320000132
发送给客户端B,客户端B将
Figure BDA0002612965320000133
发送给客户端A。
以客户端B为例,客户端B按照下述公式(6)计算
Figure BDA0002612965320000134
之后,确定
Figure BDA0002612965320000135
是否成立。若成立,则对客户端A的验证通过。
Figure BDA0002612965320000136
(qax,qay)为客户端A的验证公钥的坐标,PKCA表示认证中心的公钥,G表示椭圆曲线基点,PKA表示所述客户端A的验证公钥,
Figure BDA0002612965320000137
表示客户端A的背包值,SA表示客户端A的公钥。
同样地,客户端A也可按照公式(7)计算
Figure BDA0002612965320000138
并验证
Figure BDA0002612965320000139
是否成立。若成立,则对客户端B的验证通过。
Figure BDA00026129653200001310
(qax 1,qay 1)为客户端B的验证公钥的坐标,PKCA表示认证中心的公钥,G表示椭圆曲线基点,PKB表示所述客户端B的验证公钥,
Figure BDA00026129653200001311
表示客户端B的背包值,SB表示客户端B的公钥。
2、客户端A和客户端B分别生成共享密钥,如公式(8)所示:
KAB=sKA×SB,KAB1=sKB×SA (8)
KAB表示客户端A计算的共享密钥,KAB1表示客户端B计算的共享密钥。其中,sKA,sKB分别表示客户端A和客户端B的私钥。
二、计算会话密钥
当客户端A与客户端B拥有共享密钥后,可使用“挑战-响应”的方式使双方做验证,结合图4,具体如下:
1、客户端A随机选取时间戳随机数,并按照公式(9)和(10)计算后,将信息发送给客户端B。
客户端A随机选取时间戳随机数tA∈ZP(ZP表示整数集),并按照公式(9)和(10)计算:
TA=tA P (10)
RA=KAB+TA (11)
其中,P表示与客户端A的时间戳随机数对应的基点。
之后,客户端A将
Figure BDA00026129653200001312
发送给客户端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 BDA0002612965320000141
如果客户端A的身份正确,那么,由于客户端B拥有正确的KAB1,所以,
Figure BDA0002612965320000142
也就是说,如果
Figure BDA0002612965320000143
那么,对客户端A的身份认证通过。
接着,客户端B计算第二随机数WB
Figure BDA0002612965320000144
之后,客户端B生成第二会话密钥GAB1及认证用途上的哈希运算值Auth(B)、Auth(A)*,计算如公式(15)、(16)、(17)所示:
GAB1=WB+KAB1 (15)
Figure BDA0002612965320000145
Figure BDA0002612965320000146
最后,客户端B将(CIDA,CIDB,Auth(A)*)发送给客户端A。
3、客户端A在生成会话密钥之前,验证收到的Auth(A)*是否与自行计算的Auth(B)*相等,其中,Auth(B)*的计算方式如下公式(18)-(20)。
Figure BDA0002612965320000147
Figure BDA0002612965320000148
Figure BDA0002612965320000149
WA表示客户端A的第一随机数。
如不相符,客户端A就立即中止此次通信的联机。如果相符,客户端A计算第一会话密钥GAB与哈希运算值Auth(A),分别如公式(21)和(22)所示:
GAB=WA+KAB (21)
Figure BDA0002612965320000151
此外,客户端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=EPPEENT(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 BDA0002612965320000171
为了强化加密速度效能,在本发明实施例中采一次性的XOR运算与密钥加密。串流加密阶段,加密方式如(27)所示:
Figure BDA0002612965320000172
客户端A可按照上述相同的方式生成客户端A的串流密钥。
客户端A接收来自客户端B的密文加密数据,因考虑须加快解密速度,因此,本发明实施例仅运用一次性的XOR运算来进行解密运算,利用客户端A的串流密钥KS1将收到的加密数据进行解密。具体如公式(28)所示:
Figure BDA0002612965320000173
通过该公式,即可解密得到数据M。
需要说明的是,在以上的实施例中,如果客户端A和客户端的B的身份互换,其实现原理和以上描述的相同。
通过以上描述可以看出,本发明实施例的基于多重难度的混合式公钥密码***,使随机背包密码算法可以在椭圆曲线环境下执行公钥加、解密计算。同时,本发明实施例的算法可以完成自我认证、双方验证与加解密作业,计算步骤少,运算效率高,可达到机密性、完整性、鉴别性及不可否认性的需求。
本发明实施例还提供了一种密钥生成装置。参见图5,图5是本发明实施例提供的密钥生成装置的结构图。由于密钥生成装置解决问题的原理与本发明实施例中密钥生成方法相似,因此该密钥生成装置的实施可以参见方法的实施,重复之处不再赘述。
如图5所示,密钥生成装置500包括:
第一生成模块501,用于生成通信本端和通信对端之间的共享密钥;第二生成模块502,用于根据所述共享密钥和与所述通信对端的本次数据加密交互对应的随机信息,生成通信本端的会话密钥。
可选的,所述第一生成模块501,用于根据所述通信本端的私钥和获取的所述通信对端的公钥生成通信本端的共享密钥。
可选的,所述装置还可包括:
第一验证模块,用于根据获取的所述通信对端的背包值、所述通信对端的公钥、认证中心的公钥和所述通信对端的验证公钥,对所述通信对端进行验证;所述第一生成模块501,用于若对所述通信对端的验证通过,则生成通信本端和通信对端之间的共享密钥。
可选的,所述第一验证模块可包括:第一生成子模块,用于根据所述通信对端的背包值、所述认证中心的公钥和所述通信对端的验证公钥,生成通信本端的验证密钥;第一比较子模块,用于将所述通信本端的验证密钥和所述通信对端的公钥进行比对;第一验证子模块,用于若所述通信本端的验证密钥和所述通信对端的公钥一致,则表示对所述通信对端的验证通过。
其中,生成所述验证密钥的过程可参照前述实施例的描述。
如果所述通信本端为加密端,通信对端为解密端,所述共享密钥为所述加密端的共享密钥。在这种情况下:
所述装置还可包括:第二验证模块,用于验证第一哈希运算值与第二哈希运算值是否匹配,其中,所述第一哈希运算值是所述解密端计算之后传输给所述加密端的;所述第二哈希运算值是所述加密端自行计算得到的;所述第二生成模块用于若所述第一哈希运算值与第二哈希运算值匹配,则生成加密端的会话密钥。
可选的,所述装置还可包括:第一获取模块,用于根据所述加密端的时间戳随机数、与所述加密端的时间戳随机数对应的基点以及所述加密端的共享密钥,得到所述加密端的中间随机数;第一发送模块,用于将所述中间随机数发送给所述解密端,所述中间随机数用于由所述解密端计算所述第一哈希运算值。
可选的,所述随机信息包括加密端的第一随机数;所述装置还可包括:
第一计算模块,用于根据解密端的中间随机数、所述加密端的时间戳随机数、所述加密端的共享密钥、所述解密端的时间戳随机数以及与所述解密端的时间戳随机数对应的基点,得到所述加密端的第一随机数;第二计算模块,用于根据所述加密端的第一随机数、根据所述加密端的背包值以及所述解密端的背包值,得到所述第二哈希运算值。所述第二生成模块,用于根据所述加密端的第一随机数和所述加密端的共享密钥,生成所述加密端的会话密钥。
可选的,所述装置还可包括:第三生成模块,用于根据所述通信本端的背包值、所述通信对端的背包值以及所述会话密钥生成第三哈希运算值,并向所述通信对端发送所述第三哈希运算值。
如果所述通信本端为解密端,通信对端为加密端,所述共享密钥为所述解密端的共享密钥。在这种情况下:
可选的,所述装置还可包括:第三验证模块,用于验证第三哈希运算值与第四哈希运算值是否匹配,其中,所述第三哈希运算值是所述加密端计算之后传输给所述解密端的;所述第四哈希运算值是所述解密端自行计算得到的。所述第二生成模块,用于若所述第三哈希运算值与第四哈希运算值匹配,则生成解密端的会话密钥。
所述随机信息包括解密端的第二随机数;所述装置还可包括:第二获取模块,用于根据加密端的中间随机数、所述解密端的时间戳随机数、所述解密端的共享密钥、所述加密端的时间戳随机数以及与所述加密端的时间戳随机数对应的基点,得到所述解密端的第二随机数;第三获取模块,用于根据所述解密端的第二随机数、根据所述加密端的背包值以及所述解密端的背包值,得到所述第四哈希运算值。
可选的,所述第二生成模块用于根据所述解密端的第二随机数和所述解密端的共享密钥,生成所述解密端的会话密钥。
可选的,所述装置还可包括:第三计算模块,用于根据所述加密端的中间随机数、所述解密端的共享密钥、所述解密端的会话密钥、所述解密端的时间戳随机数、所述加密端的时间戳随机数、与所述加密端的时间戳随机数对应的基点、所述加密端的背包值以及所述解密端的背包值,得到第一哈希运算值,并向所述加密端发送所述第一哈希运算值。
可选的,所述装置还可包括:第四计算模块,用于根据所述解密端的时间戳随机数、与所述解密端的时间戳随机数对应的基点以及所述解密端的共享密钥,得到所述解密端的中间随机数;第五计算模块,用于将所述中间随机数发送给所述加密端,所述中间随机数用于由所述解密端计算第二哈希运算值。
可选的,所述装置还可包括:
第四获取模块,用于从认证中心获得所述认证中心的背包公钥向量和认证中心公钥;第五获取模块,用于利用所述认证中心的背包公钥向量、所述通信本端的身份信息和所述通信本端的装置标识符,得到所述通信本端的背包值;第四生成模块,用于利用所述通信本端的背包值,生成所述通信本端的签名文件;第一发送模块,用于向所述认证中心发送所述通信本端的背包值和所述签名文件。
可选的,所述装置还可包括:
第六获取模块,用于从所述认证中心获取所述通信本端的验证公钥和所述通信本端的签章;第五生成模块,用于根据所述通信本端的签章和所述通信本端的背包值,生成所述通信本端的私钥;第四验证模块,用于利用所述通信本端的私钥对所述通信本端的验证公钥进行验证。
可选的,所述第四验证模块包括:
第一获取子模块,用于利用所述通信本端的私钥和从所述认证中心获取的椭圆曲线基点,得到第一值;第二获取子模块,用于利用所述通信本端的验证公钥、所述通信本端的背包值、所述通信本端的验证公钥的纵坐标、和所述认证中心的公钥,得到第二值;第一匹配子模块,用于将所述第一值和所述第二值进行匹配;第一验证子模块,用于若所述第一值等于所述第二值,则表示所述通信本端的验证公钥验证通过;
其中,所述第一值通过以下公式获得:
Sp=SK·G
其中,Sp表示所述第一值,SK表示所述通信本端的私钥,G表示所述椭圆曲线基点;
所述第二值通过以下公式获得:
Sq=PK+h(CID)·G+(qay+h(CID))·PKCA
其中,Sq表示所述第二值,PK表示所述通信本端的验证公钥,G表示所述椭圆曲线基点,qay表示所述通信本端的认证公钥的纵坐标,CID表示所述通信本端的背包值,h()表示哈希函数,PKCA表示所述认证中心的公钥。
可选的,所述装置还可包括:
第六生成模块,用于利用所述通信本端的会话密钥生成通信本端的区块密钥。生成区块密钥的具体方式可参照前述方法实施例的描述。
可选的,所述装置还可包括:
第七生成模块,用于利用所述通信本端的会话密钥生成通信本端的串流密钥。
可选的,所述第七生成模块包括:
第一生成子模块,用于将所述通信本端的会话密钥通过线性反馈移位寄存器生成串流式密钥种子;第一计算子模块,用于将所述串流式密钥种子和自选随机函数进行运算,得到运算结果;第二生成子模块,用于将所述运算结果通过线性反馈移位寄存器生成所述通信本端的串流密钥。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
此外,本发明实施例还提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序。所述处理器,用于读取存储器中的程序实现上述任一方法实施例的过程。
此外,本发明实施例还提供一种可读存储介质,可读存储介质上存储有程序,该程序被处理器执行时实现上述密钥生成方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的可读存储介质,如只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁盘或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。根据这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁盘、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

Claims (28)

1.一种密钥生成方法,其特征在于,包括:
生成通信本端和通信对端之间的共享密钥;
根据所述共享密钥和与所述通信对端的本次数据加密交互对应的随机信息,生成通信本端的会话密钥。
2.根据权利要求1所述的方法,其特征在于,所述生成通信本端和通信对端之间的共享密钥,包括:
根据通信本端的私钥和获取的通信对端的公钥生成通信本端的共享密钥。
3.根据权利要求1所述的方法,其特征在于,在所述生成通信本端和通信对端之间的共享密钥之前,所述方法还包括:
根据获取的通信对端的背包值、所述通信对端的公钥、认证中心的公钥和通信对端的验证公钥,对所述通信对端进行验证;
所述生成通信本端和通信对端之间的共享密钥,包括:
若对所述通信对端的验证通过,则生成通信本端和通信对端之间的共享密钥。
4.根据权利要求3所述的方法,其特征在于,所述根据获取的通信对端的背包值、所述通信对端的公钥、认证中心的公钥和通信对端的验证公钥,对所述通信对端进行验证,包括:
根据所述通信对端的背包值、所述认证中心的公钥和所述通信对端的验证公钥,生成通信本端的验证密钥;
将所述通信本端的验证密钥和所述通信对端的公钥进行比对;
若所述通信本端的验证密钥和所述通信对端的公钥一致,则表示对所述通信对端的验证通过。
5.根据权利要求4所述的方法,其特征在于,
如果所述通信本端为加密端,通信对端为解密端,所述根据所述通信对端的背包值、所述认证中心的公钥和所述通信对端的验证公钥,生成通信本端的验证密钥,按照以下公式进行计算:
Figure FDA0002612965310000011
其中,S′表示加密端的验证密钥,PKB表示解密端的验证公钥,
Figure FDA0002612965310000021
表示解密端的背包值,PKCA表示认证中心的公钥;G表示椭圆曲线基点;qax 1表示解密端的验证公钥的横坐标,h()表示哈希函数;
如果所述通信本端为解密端,通信对端为加密端,所述根据所述通信对端的背包值、所述认证中心的公钥和所述通信对端的验证公钥,生成通信本端的验证密钥,按照以下公式进行计算:
Figure FDA0002612965310000022
其中,S″表示解密端的验证密钥,PKA表示加密端的验证公钥,
Figure FDA0002612965310000023
表示加密端的背包值,PKCA表示认证中心的公钥;G表示椭圆曲线基点;qax表示加密端的验证公钥的横坐标,h()表示哈希函数。
6.根据权利要求1所述的方法,其特征在于,如果所述通信本端为加密端,通信对端为解密端,所述共享密钥为所述加密端的共享密钥;
在所述根据所述共享密钥和与所述通信对端的本次数据加密交互对应的随机信息,生成通信本端的会话密钥之前,所述方法还包括:
验证第一哈希运算值与第二哈希运算值是否匹配,其中,所述第一哈希运算值是所述解密端计算之后传输给所述加密端的;所述第二哈希运算值是所述加密端自行计算得到的;
所述生成通信本端的会话密钥,包括:
若所述第一哈希运算值与第二哈希运算值匹配,则生成加密端的会话密钥。
7.根据权利要求6所述的方法,其特征在于,在所述验证第一哈希运算值与第二哈希运算值是否匹配之前,所述方法还包括:
根据加密端的时间戳随机数、与所述加密端的时间戳随机数对应的基点以及所述加密端的共享密钥,得到所述加密端的中间随机数;
将所述中间随机数发送给所述解密端,所述中间随机数用于由所述解密端计算所述第一哈希运算值。
8.根据权利要求6所述的方法,其特征在于,所述随机信息包括加密端的第一随机数;计算所述第二哈希运算值,包括:
根据解密端的中间随机数、所述加密端的时间戳随机数、所述加密端的共享密钥、所述解密端的时间戳随机数以及与所述解密端的时间戳随机数对应的基点,得到所述加密端的第一随机数;
根据所述加密端的第一随机数、根据所述加密端的背包值以及所述解密端的背包值,得到所述第二哈希运算值。
9.根据权利要求8所述的方法,其特征在于,所述生成加密端的会话密钥,包括:
根据所述加密端的第一随机数和所述加密端的共享密钥,生成所述加密端的会话密钥。
10.根据权利要求9所述的方法,其特征在于,在所述生成所述加密端的会话密钥之后,所述方法还包括:
根据所述加密本端的背包值、所述解密端的背包值以及所述加密端的会话密钥生成第三哈希运算值,并向所述解密端发送所述第三哈希运算值。
11.根据权利要求1所述的方法,其特征在于,如果所述通信本端为解密端,通信对端为加密端,所述共享密钥为所述解密端的共享密钥;
在根据所述共享密钥和与所述通信对端的本次数据加密交互对应的随机信息,生成通信本端的会话密钥之前,所述方法还包括:
验证第三哈希运算值与第四哈希运算值是否匹配,其中,所述第三哈希运算值是所述加密端计算之后传输给所述解密端的;所述第四哈希运算值是所述解密端自行计算得到的;
所述生成通信本端的会话密钥,包括:
若所述第三哈希运算值与第四哈希运算值匹配,则生成解密端的会话密钥。
12.根据权利要求11所述的方法,其特征在于,所述随机信息包括解密端的第二随机数;计算所述第四哈希运算值包括:
根据加密端的中间随机数、所述解密端的时间戳随机数、所述解密端的共享密钥、所述加密端的时间戳随机数以及与所述加密端的时间戳随机数对应的基点,得到所述解密端的第二随机数;
根据所述解密端的第二随机数、根据所述加密端的背包值以及所述解密端的背包值,得到所述第四哈希运算值。
13.根据权利要求12所述的方法,其特征在于,所述生成解密端的会话密钥,包括:
根据所述解密端的第二随机数和所述解密端的共享密钥,生成所述解密端的会话密钥。
14.根据权利要求11所述的方法,其特征在于,在所述验证第三哈希运算值与第四哈希运算值是否匹配之前,所述方法还包括:
根据所述加密端的中间随机数、所述解密端的共享密钥、所述解密端的会话密钥、所述解密端的时间戳随机数、所述加密端的时间戳随机数、与所述加密端的时间戳随机数对应的基点、所述加密端的背包值以及所述解密端的背包值,得到第一哈希运算值,并向所述加密端发送所述第一哈希运算值。
15.根据权利要求11所述的方法,其特征在于,在所述验证第三哈希运算值与第四哈希运算值是否匹配之前,所述方法还包括:
根据所述解密端的时间戳随机数、与所述解密端的时间戳随机数对应的基点以及所述解密端的共享密钥,得到所述解密端的中间随机数;
将所述中间随机数发送给所述加密端,所述中间随机数用于由所述解密端计算第二哈希运算值。
16.根据权利要求1所述的方法,其特征在于,在所述生成通信本端和通信对端之间的共享密钥之前,所述方法还包括:
从认证中心获得所述认证中心的背包公钥向量和认证中心公钥;
利用所述认证中心的背包公钥向量、所述通信本端的身份信息和所述通信本端的装置标识符,得到所述通信本端的背包值;
利用所述通信本端的背包值,生成所述通信本端的签名文件;
向所述认证中心发送所述通信本端的背包值和所述签名文件。
17.根据权利要求16所述的方法,其特征在于,按照以下公式,利用所述认证中心的背包公钥向量、所述通信本端的身份信息和所述通信本端的装置标识符,得到所述通信本端的背包值,包括:
CID=a1m1+a2m2+…+anmn
其中,CID表示所述通信本端的背包值,
Figure FDA0002612965310000041
为所述认证中心的背包公钥向量,ID表示所述通信本端的身份信息,ID={id||UID},id表示所述通信本端的身份认证信息,UID表示所述通信本端的装置标识符,(ID)2=m1,m2…mn,mi∈{0,1},(ID)2为身份信息ID的二元n进位形式。
18.根据权利要求16所述的方法,其特征在于,通过以下公式,利用所述通信本端的背包值,生成所述通信本端的签名文件,包括:
V=h(ja||CID)·G
其中,V表示所述通信本端的签名文件,ja表示随机数,CID表示所述通信本端的背包值,G表示椭圆曲线基点,h()表示哈希函数。
19.根据权利要求16所述的方法,其特征在于,所述方法还包括:
从所述认证中心获取所述通信本端的验证公钥和所述通信本端的签章;
根据所述通信本端的签章和所述通信本端的背包值,生成所述通信本端的私钥;
利用所述通信本端的私钥对所述通信本端的验证公钥进行验证。
20.根据权利要求19所述的方法,其特征在于,通过以下公式,利用所述通信本端的签章和所述通信本端的背包值,生成所述通信本端的私钥,包括:
SK=[W+h(ja||CID)]
其中,SK表示所述通信本端的私钥,W表示所述通信本端的签章,ja表示随机数,CID表示所述通信本端的背包值,h()表示哈希函数。
21.根据权利要求19所述的方法,其特征在于,所述利用所述通信本端的私钥对所述通信本端的验证公钥进行验证,包括:
利用所述通信本端的私钥和从所述认证中心获取的椭圆曲线基点,得到第一值;
利用所述通信本端的验证公钥、所述通信本端的背包值、所述通信本端的验证公钥的纵坐标、和所述认证中心的公钥,得到第二值;
将所述第一值和所述第二值进行匹配;
若所述第一值等于所述第二值,则表示所述通信本端的验证公钥验证通过;
其中,所述第一值通过以下公式获得:
Sp=SK·G
其中,Sp表示所述第一值,SK表示所述通信本端的私钥,G表示所述椭圆曲线基点;
所述第二值通过以下公式获得:
Sq=PK+h(CID)·G+(qay+h(CID))·PKCA
其中,Sq表示所述第二值,PK表示所述通信本端的验证公钥,G表示所述椭圆曲线基点,qay表示所述通信本端的认证公钥的纵坐标,CID表示所述通信本端的背包值,h()表示哈希函数,PKCA表示所述认证中心的公钥。
22.根据权利要求1所述的方法,其特征在于,所述方法还包括:
利用所述通信本端的会话密钥生成通信本端的区块密钥。
23.根据权利要求22所述的方法,其特征在于,所述利用所述通信本端的会话密钥生成通信本端的区块密钥,包括:
K=H(GAB)
其中,K表示所述通信本端的区块密钥,GAB表示所述通信本端的会话密钥,H()表示哈希函数。
24.根据权利要求1所述的方法,其特征在于,所述方法还包括:
利用所述通信本端的会话密钥生成通信本端的串流密钥。
25.根据权利要求24所述的方法,其特征在于,所述利用所述通信本端的会话密钥生成通信本端的串流密钥,包括:
将所述通信本端的会话密钥通过线性反馈移位寄存器生成串流式密钥种子;
将所述串流式密钥种子和自选随机函数进行运算,得到运算结果;
将所述运算结果通过线性反馈移位寄存器生成所述通信本端的串流密钥。
26.一种密钥生成装置,其特征在于,包括:
第一生成模块,用于生成通信本端和通信对端之间的共享密钥;
第二生成模块,用于根据所述共享密钥和与所述通信对端的本次数据加密交互对应的随机信息,生成通信本端的会话密钥。
27.一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;其特征在于,所述处理器,用于读取存储器中的程序实现包括如权利要求1至25中任一项所述的密钥生成方法中的步骤。
28.一种可读存储介质,用于存储程序,其特征在于,所述程序被处理器执行时实现包括如权利要求1至25中任一项所述的密钥生成方法中的步骤。
CN202010760561.7A 2020-07-31 2020-07-31 一种密钥生成方法、装置、设备和存储介质 Pending CN114070549A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010760561.7A CN114070549A (zh) 2020-07-31 2020-07-31 一种密钥生成方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010760561.7A CN114070549A (zh) 2020-07-31 2020-07-31 一种密钥生成方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN114070549A true CN114070549A (zh) 2022-02-18

Family

ID=80227726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010760561.7A Pending CN114070549A (zh) 2020-07-31 2020-07-31 一种密钥生成方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN114070549A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117254913A (zh) * 2023-11-17 2023-12-19 央视频融媒体发展有限公司 交互数据的识别方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628786B1 (en) * 1997-09-30 2003-09-30 Sun Microsystems, Inc. Distributed state random number generator and method for utilizing same
KR20040009766A (ko) * 2002-07-25 2004-01-31 학교법인 성균관대학 암호 시스템에서 송수신 장치 및 방법
WO2004051920A1 (ja) * 2002-12-03 2004-06-17 Matsushita Electric Industrial Co., Ltd. 鍵共有システム、共有鍵生成装置及び共有鍵復元装置
KR20100024605A (ko) * 2008-08-26 2010-03-08 충남대학교산학협력단 Rsa기반 패스워드 인증을 통한 세션키 분배방법
WO2017202161A1 (zh) * 2016-05-26 2017-11-30 中兴通讯股份有限公司 基于无证书两方认证密钥协商方法、装置和存储介质
CN109639412A (zh) * 2018-12-05 2019-04-16 成都卫士通信息产业股份有限公司 一种通信方法、***及电子设备和存储介质
KR102030049B1 (ko) * 2019-04-30 2019-10-08 (주)그린아이티코리아 경량화된 보안 방식을 지원하는 통합 재난 비상 방송 시스템 및 방법
CN111314076A (zh) * 2020-03-31 2020-06-19 四川九强通信科技有限公司 一种支持双向认证的无证书密钥协商方法
KR102125047B1 (ko) * 2018-12-26 2020-06-19 한전케이디엔 주식회사 배전 지능화 시스템 보안성 향상을 위한 키 관리 및 운용 방법
CN111416715A (zh) * 2020-04-09 2020-07-14 南京如般量子科技有限公司 基于秘密共享的量子保密通信身份认证***及方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628786B1 (en) * 1997-09-30 2003-09-30 Sun Microsystems, Inc. Distributed state random number generator and method for utilizing same
KR20040009766A (ko) * 2002-07-25 2004-01-31 학교법인 성균관대학 암호 시스템에서 송수신 장치 및 방법
WO2004051920A1 (ja) * 2002-12-03 2004-06-17 Matsushita Electric Industrial Co., Ltd. 鍵共有システム、共有鍵生成装置及び共有鍵復元装置
KR20100024605A (ko) * 2008-08-26 2010-03-08 충남대학교산학협력단 Rsa기반 패스워드 인증을 통한 세션키 분배방법
WO2017202161A1 (zh) * 2016-05-26 2017-11-30 中兴通讯股份有限公司 基于无证书两方认证密钥协商方法、装置和存储介质
CN109639412A (zh) * 2018-12-05 2019-04-16 成都卫士通信息产业股份有限公司 一种通信方法、***及电子设备和存储介质
KR102125047B1 (ko) * 2018-12-26 2020-06-19 한전케이디엔 주식회사 배전 지능화 시스템 보안성 향상을 위한 키 관리 및 운용 방법
KR102030049B1 (ko) * 2019-04-30 2019-10-08 (주)그린아이티코리아 경량화된 보안 방식을 지원하는 통합 재난 비상 방송 시스템 및 방법
CN111314076A (zh) * 2020-03-31 2020-06-19 四川九强通信科技有限公司 一种支持双向认证的无证书密钥协商方法
CN111416715A (zh) * 2020-04-09 2020-07-14 南京如般量子科技有限公司 基于秘密共享的量子保密通信身份认证***及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117254913A (zh) * 2023-11-17 2023-12-19 央视频融媒体发展有限公司 交互数据的识别方法及装置
CN117254913B (zh) * 2023-11-17 2024-01-30 央视频融媒体发展有限公司 交互数据的识别方法及装置

Similar Documents

Publication Publication Date Title
CN111740828B (zh) 一种密钥生成方法以及装置、设备、加解密方法
CN107947913B (zh) 一种基于身份的匿名认证方法与***
US6298153B1 (en) Digital signature method and information communication system and apparatus using such method
CN107659395B (zh) 一种多服务器环境下基于身份的分布式认证方法及***
CN111106936A (zh) 一种基于sm9的属性加密方法与***
CN110120939B (zh) 一种基于异构***的可否认认证的加密方法和***
CN101442522B (zh) 一种基于组合公钥的通信实体标识认证方法
CN110113150B (zh) 基于无证书环境的可否认认证的加密方法和***
CN112564907B (zh) 密钥生成方法及装置、加密方法及装置、解密方法及装置
CN112104453B (zh) 一种基于数字证书的抗量子计算数字签名***及签名方法
CN114268439B (zh) 一种基于格的身份基认证密钥协商方法
CN110535626B (zh) 基于身份的量子通信服务站保密通信方法和***
CN106713349B (zh) 一种能抵抗选择密文攻击的群组间代理重加密方法
CN114726546B (zh) 数字身份认证方法、装置、设备和存储介质
CN113285959A (zh) 一种邮件加密方法、解密方法及加解密***
CN110784314A (zh) 无证书的加密信息处理方法
CN111565108B (zh) 签名处理方法、装置及***
CN111262709B (zh) 基于陷门哈希函数的无证书签密***及方法
CN109412815B (zh) 一种实现跨域安全通信的方法和***
CN114070549A (zh) 一种密钥生成方法、装置、设备和存储介质
CN114697001B (zh) 一种基于区块链的信息加密传输方法、设备及介质
CN114826611A (zh) 一种基于国密SM9的IND-sID-CCA2安全标识广播加密方法
CN111934887B (zh) 基于插值多项式的多接受者签密方法
CN112511310B (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