CN108462686B - 动态密钥的获取方法、装置、终端设备及存储介质 - Google Patents
动态密钥的获取方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN108462686B CN108462686B CN201810014135.1A CN201810014135A CN108462686B CN 108462686 B CN108462686 B CN 108462686B CN 201810014135 A CN201810014135 A CN 201810014135A CN 108462686 B CN108462686 B CN 108462686B
- Authority
- CN
- China
- Prior art keywords
- dynamic key
- time
- configuration file
- variable factor
- acquiring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种动态密钥的获取方法、装置、终端设备及存储介质。该动态密钥的获取方法包括服务器执行的如下步骤:获取客户端发送的配置文件,所述配置文件包括基于加密机获取的加密密文和更新时间;调用所述加密机对所述加密密文进行解密,获取解密后的随机种子和基准时间;基于所述更新时间和所述基准时间,获取可变因子;采用动态密钥生成算法对所述随机种子和所述可变因子进行处理,获取动态密钥,并将所述动态密钥发送给所述客户端。该动态密钥的获取方法有效的解决了传统的加密机制存在耗时或安全性低的问题。
Description
技术领域
本发明涉及数据加密领域,尤其涉及一种动态密钥的获取方法、装置、终端设备及存储介质。
背景技术
目前,传统的加密机制一般是采用加密机进行加密或采用软件程序进行加密。采用加密机进行加密时,虽然加密机获取的密钥不易泄露,但是由于计算量大,导致密钥获取时间过长。采用软件程序进行加密时,虽然软件加密的效率高,但是由于获取的密钥是固定的,就会导致密钥一旦泄露,就会存在很大的安全隐患,造成不同程度的损失,极大降低数据的安全性。
发明内容
本发明实施例提供一种动态密钥的获取方法、装置、终端设备及存储介质,以解决传统的加密机制存在耗时或安全性低的问题。
第一方面,本发明实施例提供一种动态密钥的获取方法,包括服务器执行的如下步骤:
获取客户端发送的配置文件,所述配置文件包括基于加密机获取的加密密文和更新时间;
调用所述加密机对所述加密密文进行解密,获取解密后的随机种子和基准时间;
基于所述更新时间和所述基准时间,获取可变因子;
采用动态密钥生成算法对所述随机种子和所述可变因子进行处理,获取动态密钥,并将所述动态密钥发送给所述客户端。
第二方面,本发明实施例提供一种动态密钥的获取装置,包括服务器,服务器包括:
配置文件获取模块,用于获取客户端发送的配置文件,所述配置文件包括基于加密机获取的加密密文和更新时间;
加密机解密模块,用于调用所述加密机对所述加密密文进行解密,获取解密后的随机种子和基准时间;
可变因子获取模块,用于基于所述更新时间和所述基准时间,获取可变因子;
动态密钥获取模块,用于采用动态密钥生成算法对所述随机种子和所述可变因子进行处理,获取动态密钥,并将所述动态密钥发送给所述客户端。
第三方面,本发明实施例提供一种动态密钥的获取方法,包括客户端执行的如下步骤:
采用种子生成工具,获取随机种子和基准时间;
调用加密机对所述随机种子和所述基准时间进行加密,获取加密密文;
基于所述加密密文和更新时间,获取配置文件,并将所述配置文件发送给服务器;
接收所述服务器发送的基于所述配置文件生成的所述动态密钥。
第四方面,本发明实施例提供一种动态密钥的获取装置,包括客户端,客户端包括:
随机种子和基准时间获取模块,用于采用种子生成工具,获取随机种子和基准时间;
加密密文获取模块,用于调用加密机对所述随机种子和所述基准时间进行加密,获取加密密文;
配置文件获取模块,用于基于所述加密密文和更新时间,获取配置文件,并将所述配置文件发送给服务器;
动态密钥接收模块,用于接收所述服务器发送的基于所述配置文件生成的所述动态密钥。
第五方面,本发明实施例提供一种终端设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现动态密钥的获取方法的步骤。
第六方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现动态密钥的获取方法的步骤。
本发明实施例提供的动态密钥的获取方法、装置、终端设备和存储介质中,先在客户端采用种子生成工具,获取随机种子和基准时间,以便客户端调用加密机对随机种子和基准时间进行加密,获取加密密文,增加了动态密钥的安全性。然后,客户端基于加密密文和更新时间,获取配置文件,并将配置文件发送给服务器,以使服务器自动按照配置文件的配置进行操作,操作简单,提高获取动态密钥的效率。之后,服务器获取客户端发送的配置文件,以便服务器调用加密机对配置文件中的加密密文进行解密,获取解密后的随机种子和基准时间,以便服务器基于更新时间和基准时间,获取可变因子,以使服务器采用动态密钥生成算法对随机种子和可变因子进行处理,获取动态密钥,提高了密钥获取效率以及密钥的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1中提供的动态密钥的获取方法的一流程图。
图2是图1中步骤S16的一具体示意图。
图3是图1中步骤S17的一具体示意图。
图4是本发明实施例2中提供的动态密钥的获取装置的一示意图。
图5是本发明实施例4中提供的终端设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明所提供的动态密钥的获取方法包括客户端上生成配置文件和服务器上生成动态密钥的相关步骤,有效解决目前传统的加密机制存在耗时或安全性低的问题。
具体地,客户端执行以下步骤以实现配置文件的生成过程:
采用种子生成工具,获取随机种子和基准时间;
调用加密机对所述随机种子和所述基准时间进行加密,获取加密密文;
基于所述加密密文和更新时间,获取配置文件,并将所述配置文件发送给服务器;
接收所述服务器发送的基于所述配置文件生成的所述动态密钥。
服务器执行以下步骤以实现动态密钥的生成过程:
获取客户端发送的配置文件,所述配置文件包括基于加密机获取的加密密文和更新时间;
调用所述加密机对所述加密密文进行解密,获取解密后的随机种子和基准时间;
基于所述更新时间和所述基准时间,获取可变因子;
采用动态密钥生成算法对所述随机种子和所述可变因子进行处理,获取动态密钥,并将所述动态密钥发送给所述客户端。
图1示出本实施例中动态密钥的获取方法的流程图。如图1所示,该动态密钥的获取方法包括如下步骤:
S11:客户端采用种子生成工具,获取随机种子和基准时间。
其中,种子生成工具是由开发人员预先编写好的一个可执行的程序文档。随机种子是在客户端采用种子生成工具随机生成的一串字符串。由于该随机种子是随机生成的,以使随机种子不易泄露,提高安全性。基准时间是采用种子生成工具生成的***时间。客户端是安装有种子生成工具的终端,包括但不限于电脑、平板和智能手机等。在客户端采用种子生成工具生成的基准时间,具体是将获取的***时间转换为毫秒的值作为基准时间,利于计算。本实施例中,可以采用Long.parseLong(encryptedDate)方法获取***时间,然后,采用System.currentTimeMillis(当前时间)方法获取***时间的的毫秒值。
S12:客户端调用加密机对随机种子和基准时间进行加密,获取加密密文。
其中,加密机是通过国家商用密码主管部门鉴定并批准使用的国内自主开发的主机加密设备,加密机的密钥不易泄露,大多用于金融机构,用于保证金融业务的案例。加密密文是采用加密机进行加密所得到的一串字符串。具体地,客户端调用加密机分别对随机种子和基准时间进行加密,形成对随机种子加密后得到的字符串(以下简称第一字符串)和对基准时间加密后的字符串(以下简称第二字符串),以基于第一字符串和第二字符器获取加密密文。本实施例中,客户端调用与其相连的加密机采用公钥加密算法生成密钥对(公钥和私钥),并采用密钥对中的公钥对随机种子和基准时间进行加密,并将密钥对保存在加密机中的密码管理***中。其中,公钥加密算法是指加密和解密使用不同的密钥(即公钥和私钥),“私钥”就是不能让别人知道的,而“公钥”就可以公开的。这两个必须配对使用,用公钥加密的数据必须使用与其对应的私钥才能解开,技术安全性高,以达到密钥不易泄露的目的。
本实施例中,加密机所采用的公钥加密算法包括但不限于RSA加密算法。其中,RSA加密算法是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,安全性高,一般采用公钥加密,私钥解密的方式。
S13:客户端基于加密密文和更新时间,获取配置文件,并将配置文件发送给服务器。
其中,更新时间表示时间步数,也就是多长时间产生一个新的密钥。该更新时间是预先配置好的并存储在配置文件中,最终保证密钥更新变化的时间。配置文件是客户端基于更新时间和加密密文获取的文件。该配置文件可以采用记事本工具由开发人员基于Java语言进行编写获取。可以理解地,该配置文件包括对随机种子加密后得到的字符串(即第一字符串)、对基准时间加密后得到的字符串(即第二字符串)和更新时间。具体地,客户端基于加密密文和更新时间,获取配置文件,并将配置文件发送给服务器,以使服务器能够根据配置文件生成密钥。本实施例中的更新时间为X天,参数X的具体数值由开发人员视项目情况而定。本实施例中,将加密机传回来的加密密文和客户端预先设置的更新时间写入配置文件,并将配置文件发送给服务器,以使服务器自动按照配置文件的配置进行操作,操作简单,提高获取动态密钥的效率。
S14:服务器获取客户端发送的配置文件,配置文件包括基于加密机获取的加密密文和更新时间。
具体地,服务器获取客户端发送的配置文件,该配置文件包括基于加密机获取的加密密文(包括对种子加密后得到的字符串(即第一字符串)和对基准时间加密后得到的字符串(即第二字符串))和更新时间。本实施例中,服务器通过获取配置文件为后续生成动态密钥提供支持。
S15:服务器调用加密机对加密密文进行解密,获取解密后的随机种子和基准时间。
具体地,服务器调用与服务器相连的加密机对配置文件中的加密密文进行解密,获取解密后的随机中子和基准时间。该加密机是与客户端相连的用于生成加密密文的加密机。可以理解地,加密机采用的加密算法与在客户端调用加密机中存储的采用RSA算法生成的私钥进行解密,以获取解密后的随机种子和基准时间,并将解密后的随机种子和基准时间存储在服务器内存中,为后续生成动态密钥提供支持。本实施例中,由于客户端调用加密机生成的密钥对保存在加密机中的密码管理***中,因此服务器调用加密机时直接调用保存在加密机中的密钥对中的私钥进行解密,以避免无法对加密密文进行解密,以获取随机种子和基准时间的问题出现。
S16:服务器基于更新时间和基准时间,获取可变因子。
其中,可变因子是动态加密算法中的计算参数。具体地,服务器获取当前时间和预先设置的更新时间,调用存储在服务器内存中的基准时间,并采用可变因子计算公式对当前时间、更新时间和基准时间进行计算,以获取可变因子,为后续采用动态密钥生成算法生成动态密钥提供支持。
S17:服务器采用动态密钥生成算法对随机种子和可变因子进行处理,获取动态密钥,并将动态密钥发送给客户端。
其中,动态密钥生成算法是指随着某一事件(密钥被使用或一定的时间流逝等)的发生而重新生成密钥的算法,具有高效简单、安全性高的优点。动态密钥是指采用动态密钥生成算法对随机种子和可变因子进行处理后所得到的密钥。具体地,采用动态密钥生成算法对随机种子和可变因子进行处理,获取动态密钥,并将动态密钥发送给客户端,以使客户端采用生成的动态密钥对某些特定信息进行加密(解密)。本实施例中,采用动态密钥生成算法对随机种子和可变因子进行处理,获取动态密钥,提高了密钥获取效率以及密钥的安全性。
S18:客户端接收服务器发送的基于配置文件生成的动态密钥。
具体地,客户端接收服务器发送的基于配置文件生成的动态密钥,并采用该动态密钥对某些特定信息进行加密(解密),例如当用户动态登录***时,采用该动态密钥进行登录。其中,动态密钥是采用执行步骤S14-S17获取的密钥。
本实施例中,先在客户端采用种子生成工具,获取随机种子和基准时间,以便客户端调用加密机对随机种子和基准时间进行加密,获取加密密文,增加了动态密钥的安全性。然后,客户端基于加密密文和更新时间,获取配置文件,并将配置文件发送给服务器,以使服务器自动按照配置文件的配置进行操作,操作简单,提高获取动态密钥的效率。之后,服务器获取客户端发送的配置文件,以便服务器调用加密机对配置文件中的加密密文进行解密,获取解密后的随机种子和基准时间,以便服务器基于更新时间和基准时间,获取可变因子,以使服务器采用动态密钥生成算法对随机种子和可变因子进行处理,获取动态密钥,提高了密钥获取效率以及密钥的安全性。并将动态密钥发送给客户端,采用TOTP算法对消息摘要进行处理,获取动态密钥,提高了动态密钥获取的效率。
在一具体实施方式中,如图2所示,步骤S16中,即服务器基于更新时间和基准时间,获取可变因子,具体包括如下步骤:
S161:服务器基于当前时间和基准时间确定间隔时间。
其中,间隔时间是当前时间减去基准时间所获取的用于计算可变因子的参数。当前时间是服务器采用当前时间获取方法获取的毫秒值,该当前时间获取方法包括但不限于System.currentTimeMillis(),可方便快速获取当前时间的毫秒值。System.currentTimeMillis()产生一个当前时间的毫秒值,这个毫秒值其实就是自1970年1月1日0时起的毫秒数。可以理解地,服务器基于当前时间和基准时间(毫秒)确定间隔时间。间隔时间的计算公式为t=m-n,其中,t表示间隔时间,m表示当前时间(毫秒),n表示基准时间(毫秒)。
S162:服务器采用可变因子计算公式对间隔时间和更新时间进行计算,获取可变因子,可变因子计算公式为可变因子=[t/T]*T,其中,t为间隔时间, T为更新时间,[]为取整运算。
具体地,采用可变因子计算公式对间隔时间和更新时间进行计算,以获取可变因子。基于该可变因子计算公式计算可变因子时,先计算间隔时间和更新时间的商值,再对该商值进行取整运算,获取取整值,再将取整值与更新时间的乘积作为可变因子。
本实施例中,通过将当前时间转换为毫秒值与基准时间的毫秒值进行计算,以便确定间隔时间,该计算过程简单方便,提高了动态密钥的获取效率,然后采用可变因子计算公式对间隔时间和更新时间进行计算,获取可变因子,为后续采用动态密钥生成算法生成动态密钥提供支持。
在另一具体实施方式中,在客户端获取服务器发送的动态密钥后,服务器会判断间隔时间是否大于更新时间,以实现自动更新动态密钥的目的。具体地,步骤S16之后,该动态密钥的生成方法还包括如下步骤:
S163:若间隔时间大于更新时间,则生成密钥失效信息,并将密钥失效信息发送给客户端。
其中,动态密钥失效信息是用于提醒客户端当前时间对应的动态密钥失效,并需要生成新的动态密钥的提醒信息。具体地,服务器还会获取间隔时间并与预先设置的更新时间进行比较,若间隔时间大于更新时间,则生成密钥失效信息,并将密钥失效信息发送给客户端,以使客户端执行步骤S11-S13,以获取更新后的配置文件,并将更新后的配置文件发送给服务器,以便服务器基于更新后的配置文件,生成新的动态密钥,并发送给客户端,以达到自动更换动态密钥的目的,提高安全性。其中,更新后的配置文件包括更新后的加密密文和预先设置的更新时间。
S164:若间隔时间不大于更新时间,则执行服务器采用可变因子计算公式对间隔时间和更新时间进行计算,获取可变因子的步骤。
具体地,若间隔时间不大于更新时间,则表示无需更换新的密钥,则服务器继续执行采用可变因子计算公式对间隔时间和更新时间进行计算,获取可变因子的步骤,即执行步骤S162。
本实施例中,服务器通过定时获取间隔时间判断间隔时间是否大于更新时间,若间隔时间大于更新时间,则生成密钥失效信息,并将密钥失效信息发送给客户端,以使客户端执行步骤S11-S13,以获取更新后的配置文件,并将更新后的配置文件发送给服务器,以便服务器基于更新后的配置文件,生成新的动态密钥,并发送给客户端,以达到自动更换动态密钥的目的,提高安全性。若间隔时间不大于更新时间,则执行服务器采用可变因子计算公式对间隔时间和更新时间进行计算,获取可变因子的步骤。
在一具体实施方式中,如图3所示,步骤S17中,即服务器采用动态密钥生成算法对随机种子和可变因子进行处理,获取动态密钥,具体包括如下步骤:
S171:服务器采用单向散列函数对随机种子和可变因子进行处理,获取消息摘要。
其中,消息摘要(Message Digest),又称为数字摘要(Digital Digest)。它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向散列函数对消息进行作用而产生。单向散列函数的计算公式为X=(H(K XOR opad,H(K XOR ipad,T)),其中,T为可变因子,K为随机种子,XOR为异或运算,ipad为内部循环参数,opad为外部循环参数。
本实施例中,采用单向散列函数中的HMAC-SHA-1算法对种子和可变因子进行处理。其中,HMAC-SHA-1是从SHA1哈希函数构造的一种键控哈希算法,被用作HMAC(基于哈希的消息验证代码)。此HMAC进程将密钥与消息数据混合,使用哈希函数对混合结果进行哈希计算,将所得哈希值与该密钥混合,然后再次应用哈希函数。输出的哈希值长度为160位。SHA-1(安全哈希算法,也称为SHS、安全哈希标准)是由美国政府发布的一种加密哈希算法。它将从任意长度的字符串生成160位的哈希值。具体地,获取消息摘要的步骤如下:
S1711:随机种子K后面添加0来创建一个子长度为B的第一字符串。由于K(随机种子)是随机生成的,长度不固定,因此,需在随机种子K后面添加0来创建一个子长度为B的第一字符串,以保证后续计算过程的顺利进行。其中,B为处理数据块大小,本实施例中,B的大小为64字节。例如,如果K 的字长是20字节,B(处理数据块大小)=64字节,则K后会加入44个零字节0x00。
S1712:将步骤S1711生成的B字长的字符串与ipad做异或运算,获取第二字符串。其中,ipad为0x36363636...,其长度与B(64字节)相同。其中,异或运算也叫半加运算,异或的运算法则为:0 XOR 0=0,1 XOR 0=1,0 XOR 1=1, 1 XOR 1=0(即相同为0,不同为1)。
S1713:将可变因子T填充至第二字符串中,获取第三字符串。具体可直接将可变因子T填充在第二字符串之后,以获取第三字符串。
S1714:用H作用于第三字符串,获取第四字符串。其中,H为哈希函数,哈希函数是指将任意长度的二进制字符串映射为较短的固定长度的二进制字符串。
S1715:将步骤S1711生成的B字节长度的第一字符串与opad做异或运算,获取第五字符串。其中,opad为0x5c5c5c...,其长度与B相同。
S1716:再将第四字符串填充至第五字符串中。
S1717:将H作用于第四字符串即对第四字符串进行哈希运算,获取消息摘要(20字节(160bite)数组)。
本实施例中,由于随机种子是随机生成的,长度不固定,而HMAC-SHA-1 算法可以接受任何大小的字符串,并产生长度为160位的哈希序列(即消息摘要),因此采用HMAC-SHA-1算法对种子和可变因子进行处理,获取消息摘要,方便计算,为后续生成动态密钥提供便利。
S172:采用TOTP算法对消息摘要进行处理,获取动态密钥。
其中,TOTP算法的公式为TOTP(K,T)=Truncate(X)mod 10^d,其中,T 为可变因子,K为随机种子,mod为取模符运算,d为动态密钥的长度,X为消息摘要。具体地,由于可变因子T经过哈希运算后得到的第五字符串的长度太长,因此需经过Truncate(动态截短函数)处理,得到一个32位(4字节) 的无符号整数,以提高动态密钥的获取效率;然后将该无符号整数与10的d 次方进行取模运算得到d位的一个数字口令即动态密钥。本实施例中,d的取值可以为6或8,不宜过长,以达到在使用动态密钥进行加密(解密)时,方便用户输入的目的。
例如,得到的消息摘要(20字节)如下:
1f|86|98|69|0e|02|ca|16|61|85|50|ef|7f|19|da|8e|94|5b|55|5a (即hmac_result[0]...hmac_result[19],hmac_result为消息摘要)。则动态截短的处理过程为:将消息摘要的最后一个字节与0xf进行按位与运算,获取offset值(动态截断函数的初始值)。其中,按位与运算的运算规则: 0&0=0;0&1=0;1&0=0;1&1=1;即:两位同时为“1”,结果才为“1”,否则为0。其中,最后的字节(第19字节即hmac_result[19])位的16进制值是0x5a(一个字节为8位二进制),则取低4位值是0xa(offset值),offset值是字节10(0xa),则从10字节开始4字节值为0x50ef7f19,TOTP(K,T) =0x50ef7f19mod 10^6(或10^8)。
本实施例中,由于算法本身存在边界问题,还增加了退回尝试机制,用于当前时间点解密失败时,尝试采用上一时间点的密钥进行解密。具体地,退回尝试机制是指采用生成的密钥进行解密时,如果当前时间的解密失败(例如,当前时间点为5时13分10s,而更新时间为30s,那么在5时13分40s时,该动态密钥已经更新,但是第三方验证服务器有可能因为网络延迟而为接收到更新后的密钥,导致解密失败),就采用上一时间点的密钥进行解密,提高算法的容错性。
本实施例中,服务器采用单向散列函数对种子和可变因子进行处理,获取固定长度消息摘要,方便计算,然后采用TOTP算法对消息摘要进行处理,获取动态密钥,提高了动态密钥获取的效率。
本实施例中,先在客户端采用种子生成工具,获取随机种子和基准时间,以便客户端调用加密机对随机种子和基准时间进行加密,获取加密密文,增加了动态密钥的安全性。然后,客户端基于加密密文和更新时间,获取配置文件,并将配置文件发送给服务器,以使服务器自动按照配置文件的配置进行操作,操作简单,提高获取动态密钥的效率。之后,服务器获取客户端发送的配置文件,以便服务器调用加密机对配置文件中的加密密文进行解密,获取解密后的随机种子和基准时间。然后服务器基于当前时间和基准时间确定间隔时间,以便采用可变因子计算公式对间隔时间和更新时间进行计算,获取可变因子,以使服务器采用单向散列函数对随机种子和可变因子进行处理,获取消息摘要,以减少计算量;采用TOTP算法对消息摘要进行处理,获取动态密钥,提高了动态密钥获取的效率。采用TOTP算法对消息摘要进行处理,获取动态密钥,提高了动态密钥获取的效率。并且,由于算法本身存在边界问题,还增加了退回尝试机制,用于当前时间点解密失败时,尝试采用上一时间点的密钥进行解密,以提高容错性。最后,服务器还会通过判断间隔时间是否大于更新时间,以使服务器基于客户端发送的更新后的配置文件并执行S14-S18的步骤,获取更新的动态密钥,以达到自动更换动态密钥的目的。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例2
图4示出与实施例1中动态密钥的获取方法一一对应的动态密钥的获取装置的原理框图。如图4所示,该动态密钥的获取装置包括服务器10和客户端 20。其中,服务器包括配置文件获取模块11、加密机解密模块12、可变因子获取模块13、动态密钥获取模块14。客户端20包括随机种子和基准时间获取模块21、加密密文获取模块22、配置文件获取模块23和动态密钥接收模块 24的实现功能与实施例中动态密钥的获取方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。
服务器10包括配置文件获取模块11、加密机解密模块12、可变因子获取模块13和动态密钥获取模块14。
配置文件获取模块11,用于获取客户端发送的配置文件,配置文件包括基于加密机获取的加密密文和更新时间。
加密机解密模块12,用于调用加密机对加密密文进行解密,获取解密后的随机种子和基准时间。
可变因子获取模块13,用于基于更新时间和基准时间,获取可变因子。
动态密钥获取模块14,用于采用动态密钥生成算法对随机种子和可变因子进行处理,获取动态密钥,并将动态密钥发送给客户端。
优选地,可变因子获取模块13包括间隔时间确定单元131、第一可变因子获取单元132。
间隔时间确定单元131,用于基于当前时间和基准时间确定间隔时间。
第一可变因子获取单元132,用于采用可变因子计算公式对间隔时间和更新时间进行计算,获取可变因子,可变因子计算公式为可变因子=[t/T]*T,其中,t为间隔时间,T为更新时间,[]为取整运算。
优选地,该动态密钥的获取装置还包括密钥失效信息获取单元133和第二可变因子获取单元134。
密钥失效信息获取单元133,用于若间隔时间大于更新时间,则生成密钥失效信息,并将密钥失效信息发送给客户端。
第二可变因子获取单元134,用于若间隔时间不大于更新时间,则执行服务器采用可变因子计算公式对间隔时间和更新时间进行计算,获取可变因子的步骤。
优选地,动态密钥获取模块14包括消息摘要获取单元141和动态密钥获取单元142。
消息摘要获取单元141,采用单向散列函数对随机种子和可变因子进行处理,获取消息摘要。
动态密钥获取单元142,采用TOTP算法对消息摘要进行处理,获取动态密钥。
客户端20包括随机种子和基准时间获取模块21、加密密文获取模块22、配置文件获取模块23和动态密钥接收模块24。
随机种子和基准时间获取模块21,用于采用种子生成工具,获取随机种子和基准时间。
加密密文获取模块22,用于调用加密机对随机种子和基准时间进行加密,获取加密密文。
配置文件获取模块23,用于基于加密密文和更新时间,获取配置文件,并将配置文件发送给服务器。
动态密钥接收模块24,用于接收服务器发送的基于配置文件生成的动态密钥。
实施例3
本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例1中动态密钥的获取方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例2中动态密钥的获取装置中各模块/单元的功能,为避免重复,这里不再赘述。
实施例4
图5是本发明一实施例提供的终端设备的示意图。如图5所示,该实施例的终端设备50包括:处理器51、存储器52以及存储在存储器52中并可在处理器51上运行的计算机程序53。处理器51执行计算机程序53时实现上述实施例1中动态密钥的获取方法的步骤,例如图1所示的步骤S11至S18。或者,处理器51执行计算机程序53时实现实施例2中动态密钥的获取装置各模块/ 单元的功能,例如图4所示的配置文件获取模块11、加密机解密模块12、可变因子获取模块13和动态密钥获取模块14;或者随机种子和基准时间获取模块21、加密密文获取模块22、配置文件获取模块23和动态密钥接收模块24 的功能。
示例性的,计算机程序53可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器52中,并由处理器51执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序53在终端设备50中的执行过程。例如,计算机程序53可以被分割成配置文件获取模块11、加密机解密模块12、可变因子获取模块13和动态密钥获取模块14;或者随机种子和基准时间获取模块21、加密密文获取模块22、配置文件获取模块23和动态密钥接收模块24,各模块具体功能与实施例1中动态密钥的获取方法的步骤一一对应,为避免重复,在此不一一赘述。
终端设备50可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备可包括,但不仅限于,处理器51、存储器52。本领域技术人员可以理解,图5 仅仅是终端设备50的示例,并不构成对终端设备50的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器51可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor, DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器52可以是终端设备50的内部存储单元,例如终端设备50的硬盘或内存。存储器52也可以是终端设备50的外部存储设备,例如终端设备50 上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器52还可以既包括终端设备50的内部存储单元也包括外部存储设备。存储器52用于存储计算机程序以及终端设备所需的其他程序和数据。存储器52还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (9)
1.一种动态密钥的获取方法,其特征在于,包括服务器执行的如下步骤:
获取客户端发送的配置文件,所述配置文件包括基于加密机获取的加密密文和更新时间;
调用所述加密机对所述加密密文进行解密,获取解密后的随机种子和基准时间;所述随机种子和基准时间由所述客户端采用种子生成工具生成;
基于当前时间和所述基准时间确定间隔时间;
采用可变因子计算公式对所述间隔时间和所述更新时间进行计算,获取可变因子,所述可变因子计算公式为可变因子=[t/T]*T,其中,t为所述间隔时间,T为所述更新时间,[]为取整运算;
采用动态密钥生成算法对所述随机种子和所述可变因子进行处理,获取动态密钥,并将所述动态密钥发送给所述客户端。
2.如权利要求1所述的动态密钥的获取方法,其特征在于,在所述基于当前时间和所述基准时间确定间隔时间的步骤之后,所述动态密钥的获取方法还包括:
若所述间隔时间大于所述更新时间,则生成密钥失效信息,并将所述密钥失效信息发送给所述客户端;
若所述间隔时间不大于所述更新时间,则执行所述采用可变因子计算公式对所述间隔时间和所述更新时间进行计算,获取可变因子的步骤。
3.如权利要求1所述的动态密钥的获取方法,其特征在于,所述采用动态密钥生成算法对所述随机种子和所述可变因子进行处理,获取动态密钥,包括:
采用单向散列函数对所述随机种子和可变因子进行处理,获取消息摘要;
采用TOTP算法对所述消息摘要进行处理,获取所述动态密钥。
4.如权利要求3所述的动态密钥的获取方法,其特征在于,所述单向散列函数的公式为X=(H(K XOR opad,H(K XOR ipad,T)),其中,T为所述可变因子,K为所述随机种子,XOR为异或符号,ipad为内部循环参数,opad为外部循环参数;
所述TOTP算法的公式为TOTP(K,T)=Truncate(X)mod 10^d,其中,T为所述可变因子,K为所述随机种子,mod为取模运算,d为自定义动态密钥的长度,X为所述消息摘要。
5.一种动态密钥的获取方法,其特征在于,包括客户端执行的如下步骤:
采用种子生成工具,获取随机种子和基准时间;
调用加密机对所述随机种子和所述基准时间进行加密,获取加密密文;
基于所述加密密文和更新时间,获取配置文件,并将所述配置文件发送给服务器;
接收所述服务器发送的基于所述配置文件生成的所述动态密钥;其中,所述服务器采用如权利要求1-4任一项所述的动态密钥的获取方法获取所述动态密钥。
6.一种动态密钥的获取装置,其特征在于,包括:
配置文件获取模块,用于获取客户端发送的配置文件,所述配置文件包括基于加密机获取的加密密文和更新时间;
加密机解密模块,用于调用所述加密机对所述加密密文进行解密,获取解密后的随机种子和基准时间;所述随机种子和基准时间由所述客户端采用种子生成工具生成;
可变因子获取模块,用于基于所述更新时间和所述基准时间,获取可变因子;
动态密钥获取模块,用于采用动态密钥生成算法对所述随机种子和所述可变因子进行处理,获取动态密钥,并将所述动态密钥发送给所述客户端;
其中,所述可变因子获取模块包括:
间隔时间确定单元,用于基于当前时间和所述基准时间确定间隔时间;
第一可变因子获取单元,用于采用可变因子计算公式对所述间隔时间和所述更新时间进行计算,获取可变因子,所述可变因子计算公式为可变因子=[t/T]*T,其中,t为所述间隔时间,T为所述更新时间,[]为取整运算。
7.一种动态密钥的获取装置,其特征在于,包括:
随机种子和基准时间获取模块,用于采用种子生成工具,获取随机种子和基准时间;
加密密文获取模块,用于调用加密机对所述随机种子和所述基准时间进行加密,获取加密密文;
配置文件获取模块,用于基于所述加密密文和更新时间,获取配置文件,并将所述配置文件发送给服务器;
动态密钥接收模块,用于接收所述服务器发送的基于所述配置文件生成的所述动态密钥;其中,所述服务器采用如权利要求1-4任一项所述的动态密钥的获取方法获取所述动态密钥。
8.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述动态密钥的获取方法的步骤,或者,所述处理器执行所述计算机程序时实现如权利要求5所述动态密钥的获取方法的步骤。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述动态密钥的获取方法的步骤,或者,所述计算机程序被处理器执行时实现如权利要求5所述动态密钥的获取方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810014135.1A CN108462686B (zh) | 2018-01-08 | 2018-01-08 | 动态密钥的获取方法、装置、终端设备及存储介质 |
PCT/CN2018/077474 WO2019134241A1 (zh) | 2018-01-08 | 2018-02-28 | 动态密钥的获取方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810014135.1A CN108462686B (zh) | 2018-01-08 | 2018-01-08 | 动态密钥的获取方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108462686A CN108462686A (zh) | 2018-08-28 |
CN108462686B true CN108462686B (zh) | 2020-09-04 |
Family
ID=63220529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810014135.1A Active CN108462686B (zh) | 2018-01-08 | 2018-01-08 | 动态密钥的获取方法、装置、终端设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108462686B (zh) |
WO (1) | WO2019134241A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110298941A (zh) * | 2019-05-21 | 2019-10-01 | 杭州海兴电力科技股份有限公司 | 一种智能门锁一次性临时密码生成方法 |
CN111064571B (zh) * | 2020-01-09 | 2022-04-22 | 青岛海信移动通信技术股份有限公司 | 一种通信终端、服务器及动态更新预共享密钥的方法 |
CN114095920A (zh) * | 2020-07-29 | 2022-02-25 | 阿里巴巴集团控股有限公司 | 通信方法、***、装置、设备和存储介质 |
CN111988143B (zh) * | 2020-08-28 | 2024-03-01 | 百度时代网络技术(北京)有限公司 | 密钥更新方法、装置、设备以及存储介质 |
CN112287369A (zh) * | 2020-11-02 | 2021-01-29 | 珠海格力电器股份有限公司 | 解密方法、装置、计算机设备及存储介质 |
CN113761551A (zh) * | 2020-11-18 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 密钥的生成方法、加密方法、解密方法和装置 |
CN112564889B (zh) * | 2020-12-04 | 2021-11-09 | 深圳市安室智能有限公司 | 数据加密传输方法及相关产品 |
CN113326518B (zh) * | 2021-06-09 | 2024-02-02 | 深圳前海微众银行股份有限公司 | 一种数据处理方法及装置 |
CN113507363B (zh) * | 2021-07-08 | 2023-08-01 | 中国建设银行股份有限公司 | 数据处理的方法、装置、电子设备和存储介质 |
CN115767503B (zh) * | 2022-11-14 | 2024-06-07 | 杭州可当科技有限公司 | 一种应用于物联网的eSIM芯片 |
CN117040944B (zh) * | 2023-10-10 | 2024-04-26 | 深圳市旗云智能科技有限公司 | 无线物联网远程信号传输装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119565A (zh) * | 2007-09-03 | 2008-02-06 | 华为技术有限公司 | 移动通信终端设备数据保护的方法、***及设备 |
CN101783800A (zh) * | 2010-01-27 | 2010-07-21 | 华为终端有限公司 | 一种嵌入式***安全通信方法、装置及*** |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699820B (zh) * | 2009-10-30 | 2013-02-13 | 飞天诚信科技股份有限公司 | 动态口令的认证方法和装置 |
JP5512045B2 (ja) * | 2011-07-25 | 2014-06-04 | 三菱電機株式会社 | 暗号化装置、暗号化方法及び暗号化プログラム |
CN103905195A (zh) * | 2012-12-28 | 2014-07-02 | 中国电信股份有限公司 | 基于动态口令的用户卡认证方法和*** |
CN103067160B (zh) * | 2013-01-14 | 2018-05-15 | 江苏智联天地科技有限公司 | 一种加密sd卡的动态密钥生成的方法及*** |
CN103051460B (zh) * | 2013-01-29 | 2015-08-19 | 赵忠华 | 基于惯性技术的动态令牌***及其加密方法 |
CN104301109B (zh) * | 2014-09-24 | 2017-06-06 | 飞天诚信科技股份有限公司 | 一种语音动态令牌的工作方法 |
CN104506497B (zh) * | 2014-12-10 | 2018-02-27 | 青岛海信电器股份有限公司 | 一种信息发布方法和*** |
CN107154935B (zh) * | 2017-04-26 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 业务请求方法及装置 |
-
2018
- 2018-01-08 CN CN201810014135.1A patent/CN108462686B/zh active Active
- 2018-02-28 WO PCT/CN2018/077474 patent/WO2019134241A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119565A (zh) * | 2007-09-03 | 2008-02-06 | 华为技术有限公司 | 移动通信终端设备数据保护的方法、***及设备 |
CN101783800A (zh) * | 2010-01-27 | 2010-07-21 | 华为终端有限公司 | 一种嵌入式***安全通信方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN108462686A (zh) | 2018-08-28 |
WO2019134241A1 (zh) | 2019-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108462686B (zh) | 动态密钥的获取方法、装置、终端设备及存储介质 | |
US20230325516A1 (en) | Method for file encryption, terminal, electronic device and computer-readable storage medium | |
US5764766A (en) | System and method for generation of one-time encryption keys for data communications and a computer program product for implementing the same | |
CN112637836A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN112055004A (zh) | 一种基于小程序的数据处理方法和*** | |
US11750403B2 (en) | Robust state synchronization for stateful hash-based signatures | |
WO2021114850A1 (zh) | 消息的加解密、读写方法、装置、计算机设备和存储介质 | |
CN110932868B (zh) | 一种数据签名方法、***及装置 | |
US20220078024A1 (en) | State synchronization for post-quantum signing facilities | |
CN112054896B (zh) | 白盒加密方法、装置、终端及存储介质 | |
CN115150821A (zh) | 离线包的传输、存储方法及装置 | |
US11748521B2 (en) | Privacy-enhanced computation via sequestered encryption | |
US8832450B2 (en) | Methods and apparatus for data hashing based on non-linear operations | |
CN112182518A (zh) | 一种软件部署方法和装置 | |
CN109784072B (zh) | 一种安全文件管理方法和*** | |
CN114785527B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN111859314A (zh) | 一种基于加密软件的sm2加密方法、***、终端及存储介质 | |
CN109995534B (zh) | 一种对应用程序进行安全认证的方法和装置 | |
CN111949996A (zh) | 安全私钥的生成方法、加密方法、***、设备及介质 | |
CN113784342B (zh) | 一种基于物联网终端的加密通讯方法及*** | |
CN115361198A (zh) | 解密方法、加密方法、装置、计算机设备和存储介质 | |
CN110401533B (zh) | 一种私钥加密方法及装置 | |
CN112612499A (zh) | 应用程序升级方法、装置、电子设备及存储介质 | |
CN113347270A (zh) | 一种网络传输文件防水平越权方法和装置 | |
CN114430549A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |