基于人工智能的数据动态加密方法、装置、设备及介质与流程

文档序号:29854023发布日期:2022-04-30 08:48阅读:338来源:国知局
基于人工智能的数据动态加密方法、装置、设备及介质与流程

1.本技术涉及人工智能技术领域,尤其涉及一种基于人工智能的数据动态加密方法、装置、电子设备及存储介质。


背景技术:

2.初始动态口令作为目前最安全的身份认证技术之一,已经被越来越多的行业所应用。初始动态口令具有使用便捷、平台无关等特性,随着移动互联网的发展,初始动态口令技术被广泛应用于企业、金融、电子商务、物联网等领域。
3.现有技术中的初始动态口令方法都是基于时间同步的初始动态口令,对标准时间用口令生成密钥加密生成初始动态口令,然而在实际应用中,初始动态口令的更换周期都是固定的,且更换周期越长,口令被破解的可能性就越高,因此合理的动态更换初始动态口令的生成周期可以有效提高加密的安全性。


技术实现要素:

4.鉴于以上内容,有必要提出一种基于人工智能的数据动态加密方法及相关设备,以解决如何动态更换初始动态口令的生成周期这一技术问题,其中,相关设备包括基于人工智能的数据动态加密装置、电子设备及存储介质。
5.本技术提供一种基于人工智能的数据动态加密方法,包括:
6.建立共享密钥表以获取共享密钥;
7.基于所述共享密钥和随机生成算法生成初始动态口令;
8.依据服务端信息生成随机时间数据以作为所述初始动态口令的生成周期,所述服务端信息包括当前服务端的内存占用信息和网络流量信息;
9.基于所述随机时间数据构建正态随机数据集;
10.依据预设阈值调整所述正态随机数据集以获取所述初始动态口令的动态生成周期;
11.基于所述动态生成周期获取完整动态口令以对数据进行加密。
12.如此,通过生成初始动态口令和密钥,使数据加密拥有双重保障,且通过构建正态随机数据集合理生成能够动态更改动态口令生成周期的随机数,使动态口令的生成周期能够在合理的动态范围内随机变化,提高动态口令对数据的加密强度。
13.在一些实施例中,所述建立共享密钥表以获取共享密钥包括:
14.依据密钥生成工具生成密钥以建立共享密钥表,所述共享密钥表分别存储于服务端和终端;
15.选取所述共享密钥表中的一个密钥以作为加密算法的共享密钥。
16.如此,通过保持终端和服务端的通信连接并存有相同的共享密钥表,可以保证终端和服务段共享密钥的一致性,防止由于无法解密而造成的数据丢弃,使加密数据的传输更加安全可靠。
17.在一些实施例中,所述基于所述共享密钥和随机生成算法生成初始动态口令包括:
18.终端对所述共享密钥的参数进行签名以获取第一签名参数,所述共享密钥的参数包括终端的终端id和终端类型;
19.终端发送所述第一签名参数和所述共享密钥至所述服务端以请求生成初始动态口令;
20.所述服务端依据随机生成算法将当前服务端时间和所述共享密钥的参数作为种子生成随机数;
21.所述服务端依据哈希算法将所述共享密钥和所述随机数转换为初始动态口令。
22.如此,使获取到的初始动态口令具有足够的随机性,且和共享密钥联系紧密,防止密钥被篡改,使数据加密拥有双重保障。
23.在一些实施例中,所述服务端依据随机生成算法将当前服务端时间和所述共享密钥的参数作为种子生成随机数之前,所述方法还包括:
24.所述服务端提取所述终端发送的所述共享密钥的参数并进行签名以获取第二签名参数;
25.比对所述第一签名参数和所述第二签名参数是否一致,若一致,则继续生成初始动态口令,若不一致,则终止生成初始动态口令。
26.如此,通过数字签名的比对验证,可以防止共享密钥的参数被篡改和防抵赖,进一步提高数据的加密强度。
27.在一些实施例中,所述依据服务端信息生成随机时间数据以作为所述初始动态口令的生成周期包括:
28.依据预设脚本统计当前服务端的内存占用信息和网络流量信息以作为所述服务端信息;
29.依据预设的随机生成函数以所述服务端信息为种子生成随机时间数据以作为所述初始动态口令的生成周期。
30.如此,通过根据实时获取到的服务端信息来生成随机时间数据,可以保证初始动态口令的生成周期完全随机,降低因初始动态口令的生成周期固定所带来的安全风险。
31.在一些实施例中,所述基于所述随机时间数据构建正态随机数据集包括:
32.基于所述服务端信息生成所述随机时间数据以获取随机时间数据集;
33.依据正态随机数生成算法和所述随机时间数据集构建符合正态分布的正态随机数据集。
34.如此,通过将随机时间构建为符合正态分布的数据,使初始动态口令的生成周期在足够随机的基础上拥有一定的分布规律,便于后续过程对生成周期的调整,从而保证初始动态口令的生成周期处于合理可控的范围内。
35.在一些实施例中,所述依据预设阈值调整所述正态随机数据集以获取所述初始动态口令的动态生成周期包括:
36.依据预设阈值截取所述正态随机数据集以获取预设阈值范围,所述预设阈值范围为所述正态随机数据集的横轴区间(μ-σ,μ+σ);
37.若所述随机时间数据位于所述预设阈值范围,则将所述随机时间数据作为所述动
态生成周期;
38.若所述随机时间数据超过所述预设阈值范围且位于所述正态随机数据集的横轴区间(μ-3σ,μ+3σ)范围,则依据归一化算法计算所述随机时间数据以获取归一化时间数据,并将所述归一化时间数据作为所述动态生成周期;
39.若所述随机时间数据不位于所述正态随机数据集的横轴区间(μ-3σ,μ+3σ)范围,则舍弃,并重新生成新的随机时间数据。
40.如此,通过将初始动态口令的生成周期限制在正态随机数据集中包含有绝大多数数据的区间内,能够在减少数据归一化计算量的基础上使生成周期位于合理可控的范围内,防止生成周期过长导致的安全隐患和生成周期过短导致的系统负载不均衡。
41.本技术实施例还提供一种基于人工智能的数据动态加密装置,包括:
42.获取单元,用于建立共享密钥表以获取共享密钥;
43.生成单元,用于基于所述共享密钥和随机生成算法生成初始动态口令;
44.所述生成单元,还用于依据服务端信息生成随机时间数据以作为所述初始动态口令的生成周期,所述服务端信息包括当前服务端的内存占用信息和网络流量信息;
45.构建单元,用于基于所述随机时间构建正态随机数据集;
46.调整单元,用于依据预设阈值调整所述正态随机数据集以获取所述初始动态口令的动态生成周期;
47.加密单元,用于基于所述动态生成周期获取完整动态口令以对数据进行加密。
48.本技术实施例还提供一种电子设备,包括:
49.存储器,存储至少一个指令;
50.处理器,执行所述存储器中存储的指令以实现所述的基于人工智能的数据动态加密方法。
51.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现所述的基于人工智能的数据动态加密方法。
附图说明
52.图1是本技术所涉及的基于人工智能的数据动态加密方法的较佳实施例的流程图。
53.图2是本技术所涉及的基于所述共享密钥和随机生成算法生成初始动态口令的较佳实施例的流程图。
54.图3是本技术所涉及的依据预设阈值调整所述正态随机数据集以获取所述初始动态口令的动态生成周期的较佳实施例的流程图。
55.图4是本技术所涉及的基于人工智能的数据动态加密装置的较佳实施例的功能模块图。
56.图5是本技术所涉及的基于人工智能的数据动态加密方法的较佳实施例的电子设备的结构示意图。
具体实施方式
57.为了能够更清楚地理解本技术的目的、特征和优点,下面结合附图和具体实施例对本技术进行详细描述。需要说明的是,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互结合。在下面的描述中阐述了很多具体细节以便于充分理解本技术,所述描述的实施例仅是本技术一部分实施例,而不是全部的实施例。
58.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
59.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
60.本技术实施例提供一种基于人工智能的数据动态加密方法,可应用于一个或者多个电子设备中,电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(field-programmable gate array,fpga)、数字处理器(digital signal processor,dsp)、嵌入式设备等。
61.电子设备可以是任何一种可与客户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(personal digital assistant,pda)、游戏机、交互式网络电视(internet protocol television,iptv)、智能式穿戴式设备等。
62.电子设备还可以包括网络设备和/或客户设备。其中,所述网络设备包括,但不限于单个网络服务端、多个网络服务端组成的服务端组或基于云计算(cloud computing)的由大量主机或网络服务端构成的云。
63.电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtual private network,vpn)等。
64.如图1所示,是本技术基于人工智能的数据动态加密方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
65.s10,建立共享密钥表以获取共享密钥。
66.在一个可选的实施例中,所述建立共享密钥表以获取共享密钥包括:
67.s101,依据密钥生成工具生成密钥以建立共享密钥表,所述共享密钥表分别存储于服务端和终端。
68.该可选的实施例中,所述密钥生成工具可使用keytool,keytool是一个密钥和证书管理工具,可用于生成加密算法所需要的密钥,所述终端和服务端通过互联网进行通信连接以进行数据传输,同时所述终端和服务端存有相同的所述共享密钥表。
69.该可选的实施例中,所述共享密钥表指的是服务端和终端都要存储这个密钥表,密钥表在服务端生成后以离线的方式分发至终端,如工行网银用的u盾便是基于离线形式分发密钥。
70.该可选的实施例中,所述共享密钥表中的密钥是随机生成的不可逆字符串,也就
是说即使密钥生成算法或者密钥生成工具与密钥同时是泄露也无法反推出任何有用信息。
71.s102,选取所述共享密钥表中的一个密钥以作为加密算法的共享密钥。
72.在一个可选的实施例中,可使用3des加密算法依据从所述共享密钥表中选取的密钥对业务数据进行加密。3des,也称为3desede或tripledes,是三重数据加密算法,相当于对每个数据库应用三次des的对称加密算法。
73.由于des密码长度容易被暴力破解,所以3des算法通过对des算法进行改进,增加des的密钥长度来避免类似的攻击,针对每个数据块进行三次des加密;因此,3des加密算法是des的一个更安全的变形,它以des为基本模块,通过组合分组方法设计出分组加密算法。
74.该可选的实施例中,3des加解密过程分别是对明文/密文数据进行三次des加密或解密,得到相应的密文或明文,具体过程为:
75.假设ek()和dk()分别表示des的加密和解密函数,p表示明文,c表示密文,那么加解密的公式为:
76.加密:c=ek3(dk2(ek1(p))),即对明文数据进行:加密
‑‑
》解密
‑‑
》加密的过程,最后得到密文数据;
77.解密:p=dk1(ek2(dk3(c))),即对密文数据进行:解密
‑‑
》加密
‑‑
》解密的过程,最后得到明文数据。
78.其中,k1表示3des中第一个8字节密钥,k2表示第二个8字节密钥,k3表示第三个8字节密钥。
79.在一个可选的实施例中,若终端要发送业务数据给服务端,则使用3des算法将明文数据转换为密文数据传输给服务端,由于服务端也存储了和终端相同的密钥表,因此服务端可根据终端选择的密钥更换对应的解密方法,本技术将共享密钥表中的密钥作为共享密钥,共享密钥是随机生成的不可逆字符串,因此即使生成算法和共享密钥同时泄露也无法反推出任何有用信息。
80.如此,通过保持终端和服务端的通信连接并存有相同的共享密钥表,可以保证终端和服务段共享密钥的一致性,防止由于无法解密而造成的数据丢弃,使加密数据的传输更加安全可靠。
81.s11,基于所述共享密钥和随机生成算法生成初始动态口令。
82.请参见图2,在一个可选的实施例中,基于所述共享密钥和随机生成算法生成初始动态口令包括:
83.s111,终端对所述共享密钥的参数进行签名以获取第一签名参数,所述共享密钥的参数包括终端的终端id和终端类型。
84.在一个可选的实施例中,共享密钥的参数包括对应终端的终端id和终端类型,终端可使用共享密钥对各参数进行签名并构建初始动态口令生成请求,签名的目的是防止参数被篡改以及防抵赖,签名算法的过程如下:
85.将各参数以key-value的形式进行字典排序,并用&连接,比如xx&client_id=xx&client_type;
86.对上面得到的字符串进行base64编码,即base64encode(“xx&client_id=xx&client_type”);
87.以共享密钥为key,用hmac-sha1算法对上面得到的base64编码字符串进行签名得
到第一签名参数sig1。
88.s112,终端发送所述第一签名参数和所述共享密钥至所述服务端以请求生成初始动态口令。
89.s113,所述服务端依据随机生成算法将当前服务端时间和所述共享密钥的参数作为种子生成随机数。
90.在一个可选的实施例中,所述服务端依据随机生成算法将当前服务端时间和所述共享密钥的参数作为种子生成随机数之前,所述方法还包括:
91.所述服务端提取所述终端发送的所述共享密钥的参数并进行签名以获取第二签名参数;比对所述第一签名参数和所述第二签名参数是否一致,若一致,则继续生成初始动态口令,若不一致,则终止生成初始动态口令。
92.该可选的实施例中,服务端在接到终端发送的请求后,提取终端id和终端类型参数,然后使用共享密钥对各参数进行签名后得到第二签名参数sig2,与传进来的sig1进行比对,若一致,则继续生成初始动态口令,若不一致,则终止生成初始动态口令。
93.该可选的实施例中,随机生成算法可以为uuid算法,uuid是128位的全局唯一标识符,本技术中服务端可使用uuid算法中的uuid1算法,该算法可以生产一个32位无规律的随机数。
94.在一个可选的实施例中,本技术以当前服务端时间和终端id和终端类型参数作为种子,利用uuid1算法生成32位无规律的随机数。
95.s114,所述服务端依据哈希算法将所述共享密钥和所述随机数转换为初始动态口令。
96.该可选的实施例中,可使用hmac-sha1哈希算法将得到的共享密钥和32位无规律数转换为初始动态口令。
97.如此,使获取到的初始动态口令具有足够的随机性,且和共享密钥联系紧密,防止密钥被篡改,使数据加密拥有双重保障。
98.s12,依据服务端信息生成随机时间数据以作为所述初始动态口令的生成周期,所述服务端信息包括当前服务端的内存占用信息和网络流量信息。
99.该可选的实施例中,依据服务端信息生成随机时间数据以作为所述初始动态口令的生成周期包括:
100.s121,依据预设脚本统计当前服务端的内存占用信息和网络流量信息以作为所述服务端信息。
101.该可选的实施例中,获取当前服务端的内存占用信息的代码为free|awk-f”'{print$2}'|sed-n'2p',获取网络流量信息的代码为netstat-na|grep tcp|wc

l。
102.s122,依据预设的随机生成函数以所述服务端信息为种子生成随机时间数据以作为所述初始动态口令的生成周期。
103.在一个可选的实施例中,可以使用srand()函数以当前服务端的内存占用信息和网络流量信息为种子随机产生一个三位的时间数字,范围为[0,999]s,并将此时间数字作为所述初始动态口令的生成周期。
[0104]
如此,通过根据实时获取到的服务端信息来生成随机时间数据,可以保证初始动态口令的生成周期完全随机,降低因初始动态口令的生成周期固定所带来的安全风险。
[0105]
s13,基于所述随机时间数据构建正态随机数据集。
[0106]
在一个可选的实施例中,基于所述随机时间数据构建正态随机数据集包括:
[0107]
s131,基于所述服务端信息生成所述随机时间数据以获取随机时间数据集。
[0108]
该可选的实施例中,使用srand()函数以当前服务端的内存占用信息和网络流量信息为种子持续生成多个随机时间数据,本技术中共随机均匀生成1000个随机时间数据作为所述随机时间数据集。
[0109]
s132,依据正态随机数生成算法和所述随机时间数据集构建符合正态分布的正态随机数据集。
[0110]
在一个可选的实施例中,可采用基于box

muller变换的正态随机数生成方法使所述随机时间数据集中的数据服从正态分布。box-muller变换是通过服从均匀分布的随机变量,来构建服从高斯分布的随机变量的一种方法,该方法可以将均匀分布的随机数生成高斯分布,具体的描述为:选取两个服从[0,1]上均匀分布的随机变量u1、u2,u1、u2满足
[0111][0112][0113]
z0和z1独立且服从标准正态分布,即生成1000个随机时间数据,并调用box-muller方法的程序指令将这1000个数字构建为服从正态分布的正态随机数据集。
[0114]
如此,通过将随机时间构建为符合正态分布的数据,使初始动态口令的生成周期在足够随机的基础上拥有一定的分布规律,便于后续过程对生成周期的调整,从而保证初始动态口令的生成周期处于合理可控的范围内。
[0115]
s14,依据预设阈值调整所述正态随机数据集以获取所述初始动态口令的动态生成周期。
[0116]
请参加图3,在一个可选的实施例中,依据预设阈值调整所述正态随机数据集以获取所述初始动态口令的动态生成周期包括:
[0117]
s141,依据预设阈值截取所述正态随机数据集以获取预设阈值范围,所述预设阈值范围为所述正态随机数据集的横轴区间(μ-σ,μ+σ)。
[0118]
该可选的实施例中,为避免随机生成的初始动态口令周期过长或过短,可以根据预设的阈值调整所述正态随机数据集中的随机时间数据,由于横轴区间(μ-σ,μ+σ)内的面积为68.26%,包含大多数随机时间数据,因此本技术中将横轴区间(μ-σ,μ+σ)内作为预设阈值范围。
[0119]
s142,若所述随机时间数据位于所述预设阈值范围,则将所述随机时间数据作为所述动态生成周期。
[0120]
s143,若所述随机时间数据超过所述预设阈值范围且位于所述正态随机数据集的横轴区间(μ-3σ,μ+3σ)范围,则依据归一化算法计算所述随机时间数据以获取归一化时间数据,并将所述归一化时间数据作为所述动态生成周期。
[0121]
该可选的实施例中,横轴区间(μ-3σ,μ+3σ)范围的面积为99.73%,包含几乎所有的随机时间数据,因此若所述随机时间数据超过所述预设阈值范围且位于所述正态随机数据集的横轴区间(μ-3σ,μ+3σ)范围,则依据归一化算法计算所述随机时间数据以获取归一化时间数据,并将所述归一化时间数据作为所述动态生成周期。
[0122]
s144,若所述随机时间数据不位于所述正态随机数据集的横轴区间(μ-3σ,μ+3σ)范围,则舍弃,并重新生成新的随机时间数据。
[0123]
该可选的实施例中,若所述随机时间数据不位于所述正态随机数据集的横轴区间(μ-3σ,μ+3σ)范围,则舍弃该随机时间数据,并通过srand()函数重新生成新的随机事件数据进行上述判断,从而得到初始动态口令的新的生成周期。
[0124]
示例性的,可将正态分布的均值μ设为400,即每过400s生成一次初始动态口令,同时σ设为20,则生成的随机时间数据有68.26%的概率落在380-420的范围内,有99.73%的概率落在340-460的范围内,设生成的随机时间数据为450,将其归一化到380-420的范围内更新为417,以此保证初始动态口令的动态生成周期不会过大或过小。
[0125]
该可选的实施例中,可根据安全需要指定对应的μ和σ,以使得动态生成周期在合理范围内。
[0126]
如此,通过将初始动态口令的生成周期限制在正态随机数据集中包含有绝大多数数据的区间内,能够在减少数据归一化计算量的基础上使生成周期位于合理可控的范围内,防止生成周期过长导致的安全隐患和生成周期过短导致的系统负载不均衡。
[0127]
s15,基于所述动态生成周期获取完整动态口令以对数据进行加密。
[0128]
在一个可选的实施例中,将动态生成周期能够位于合理范围内的初始动态口令作为所述完整动态口令,此时所述完整动态口令的生成周期完全位于正态随机数据集的横轴区间(μ-3σ,μ+3σ)范围,并以所述完整动态口令对数据进行加密,保证所述完整动态口令的持续时间在合理范围内随机变化,减少因初始动态口令的持续时间过久造成的数据泄密风险。
[0129]
如此,使用完整动态口令以对数据进行加密不仅可以保证动态口令的生成时间随机变化,还可以保证动态口令的生成时间处于合理可控的范围内,从而有效提高数据的加密强度。
[0130]
请参见图4,图4是本技术基于人工智能的数据动态加密装置的较佳实施例的功能模块图。基于人工智能的数据动态加密装置11包括获取单元110、生成单元111、构建单元112、调整单元113、加密单元114。本技术所称的模块/单元是指一种能够被处理器13所执行,并且能够完成固定功能的一系列计算机可读指令段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
[0131]
在一个可选的实施例中,获取单元110用于建立共享密钥表以获取共享密钥。
[0132]
在一个可选的实施例中,建立共享密钥表以获取共享密钥包括:
[0133]
依据密钥生成工具生成密钥以建立共享密钥表,所述共享密钥表分别存储于服务端和终端;
[0134]
选取所述共享密钥表中的一个密钥以作为加密算法的共享密钥。
[0135]
该可选的实施例中,所述密钥生成工具可使用keytool,keytool是一个密钥和证书管理工具,可用于生成加密算法所需要的密钥,所述终端和服务端通过互联网进行通信连接以进行数据传输,同时所述终端和服务端存有相同的所述共享密钥表。
[0136]
该可选的实施例中,所述共享密钥表指的是服务端和终端都要存储这个密钥表,密钥表在服务端生成后以离线的方式分发至终端,如工行网银用的u盾便是基于离线形式分发密钥。
[0137]
该可选的实施例中,所述共享密钥表中的密钥是随机生成的不可逆字符串,也就是说即使密钥生成算法或者密钥生成工具与密钥同时是泄露也无法反推出任何有用信息。
[0138]
在一个可选的实施例中,可使用3des加密算法依据从所述共享密钥表中选取的密钥对业务数据进行加密。3des,也称为3desede或tripledes,是三重数据加密算法,相当于对每个数据库应用三次des的对称加密算法。
[0139]
由于des密码长度容易被暴力破解,所以3des算法通过对des算法进行改进,增加des的密钥长度来避免类似的攻击,针对每个数据块进行三次des加密;因此,3des加密算法是des的一个更安全的变形,它以des为基本模块,通过组合分组方法设计出分组加密算法。
[0140]
该可选的实施例中,3des加解密过程分别是对明文/密文数据进行三次des加密或解密,得到相应的密文或明文,具体过程为:
[0141]
假设ek()和dk()分别表示des的加密和解密函数,p表示明文,c表示密文,那么加解密的公式为:
[0142]
加密:c=ek3(dk2(ek1(p))),即对明文数据进行:加密
‑‑
》解密
‑‑
》加密的过程,最后得到密文数据;
[0143]
解密:p=dk1(ek2(dk3(c))),即对密文数据进行:解密
‑‑
》加密
‑‑
》解密的过程,最后得到明文数据。
[0144]
其中,k1表示3des中第一个8字节密钥,k2表示第二个8字节密钥,k3表示第三个8字节密钥。
[0145]
在一个可选的实施例中,服务端和终端之间进行数据传输,并通过互联网进行通信连接,同时服务端和终端都存储了相同的共享密钥表,若终端要发送数据给服务端,则使用3des算法将明文数据转换为密文数据传输给服务端,由于服务端也存储了和终端相同的密钥表,因此服务端可根据终端选择的密钥更换对应的解密方法,本技术将共享密钥表中的密钥作为共享密钥,共享密钥是随机生成的不可逆字符串,因此即使生成算法和共享密钥同时泄露也无法反推出任何有用信息。
[0146]
在一个可选的实施例中,生成单元111用于基于所述共享密钥和随机生成算法生成初始动态口令。
[0147]
在一个可选的实施例中,基于所述共享密钥和随机生成算法生成初始动态口令包括:
[0148]
终端对所述共享密钥的参数进行签名以获取第一签名参数,所述共享密钥的参数包括终端的终端id和终端类型;
[0149]
终端发送所述第一签名参数和所述共享密钥至所述服务端以请求生成初始动态口令;
[0150]
所述服务端依据随机生成算法将当前服务端时间和所述共享密钥的参数作为种子生成随机数;
[0151]
所述服务端依据哈希算法将所述共享密钥和所述随机数转换为初始动态口令。
[0152]
在一个可选的实施例中,共享密钥的参数包括对应终端的终端id和终端类型,终端可使用共享密钥对各参数进行签名并构建初始动态口令生成请求,签名的目的是防止参数被篡改以及防抵赖,签名算法的过程如下:
[0153]
将各参数以key-value的形式进行字典排序,并用&连接,比如xx&client_id=xx&
client_type;
[0154]
对上面得到的字符串进行base64编码,即base64encode(“xx&client_id=xx&client_type”);
[0155]
以共享密钥为key,用hmac-sha1算法对上面得到的base64编码字符串进行签名得到第一签名参数sig1。
[0156]
在一个可选的实施例中,所述服务端依据随机生成算法将当前服务端时间和所述共享密钥的参数作为种子生成随机数之前,所述方法还包括:
[0157]
所述服务端提取所述终端发送的所述共享密钥的参数并进行签名以获取第二签名参数;比对所述第一签名参数和所述第二签名参数是否一致,若一致,则继续生成初始动态口令,若不一致,则终止生成初始动态口令。
[0158]
该可选的实施例中,服务端在接到终端发送的请求后,提取终端id和终端类型参数,然后使用共享密钥对各参数进行签名后得到第二签名参数sig2,与传进来的sig1进行比对,若一致,则继续生成初始动态口令,若不一致,则终止生成初始动态口令。
[0159]
该可选的实施例中,随机生成算法可以为uuid算法,uuid是128位的全局唯一标识符,本技术中服务端可使用uuid算法中的uuid1算法,该算法可以生产一个32位无规律的随机数。
[0160]
在一个可选的实施例中,本技术以当前服务端时间和终端id和终端类型参数作为种子,利用uuid1算法生成32位无规律的随机数。
[0161]
该可选的实施例中,可使用hmac-sha1哈希算法将得到的共享密钥和32位无规律数转换为初始动态口令。
[0162]
在一个可选的实施例中,所述获取单元110还用于依据服务端信息生成随机时间数据以作为所述初始动态口令的生成周期,所述服务端信息包括当前服务端的内存占用信息和网络流量信息。
[0163]
在一个可选的实施例中,依据服务端信息生成随机时间数据以作为所述初始动态口令的生成周期包括:
[0164]
依据预设脚本统计当前服务端的内存占用信息和网络流量信息以作为所述服务端信息;
[0165]
依据预设的随机生成函数以所述服务端信息为种子生成随机时间数据以作为所述初始动态口令的生成周期。
[0166]
该可选的实施例中,获取当前服务端的内存占用信息的代码为free|awk-f”'{print$2}'|sed-n'2p',获取网络流量信息的代码为netstat-na|grep tcp|wc

l。
[0167]
在一个可选的实施例中,可以使用srand()函数以当前服务端的内存占用信息和网络流量信息为种子随机产生一个三位的时间数字,范围为[0,999]s,并将此时间数字作为所述初始动态口令的生成周期。
[0168]
在一个可选的实施例中,构建单元112用于基于所述随机时间构建正态随机数据集。
[0169]
在一个可选的实施例中,基于所述随机时间构建正态随机数据集包括:
[0170]
基于所述服务端信息生成所述随机时间数据以获取随机时间数据集;
[0171]
依据正态随机数生成算法和所述随机时间数据集构建符合正态分布的正态随机
数据集。
[0172]
该可选的实施例中,使用srand()函数以当前服务端的内存占用信息和网络流量信息为种子持续生成多个随机时间数据,本技术中共随机均匀生成1000个随机时间数据作为所述随机时间数据集。
[0173]
在一个可选的实施例中,可采用基于box

muller变换的正态随机数生成方法使所述随机时间数据集中的数据服从正态分布。box-muller变换是通过服从均匀分布的随机变量,来构建服从高斯分布的随机变量的一种方法,该方法可以将均匀分布的随机数生成高斯分布,具体的描述为:选取两个服从[0,1]上均匀分布的随机变量u1、u2,u1、u2满足
[0174][0175][0176]
z0和z1独立且服从标准正态分布,即生成1000个随机时间数据,并调用box-muller方法的程序指令将这1000个数字构建为服从正态分布的正态随机数据集。
[0177]
在一个可选的实施例中,调整单元113用于依据预设阈值调整所述正态随机数据集以获取所述初始动态口令的动态生成周期。
[0178]
在一个可选的实施例中,依据预设阈值调整所述正态随机数据集以获取所述初始动态口令的动态生成周期包括:
[0179]
依据预设阈值截取所述正态随机数据集以获取预设阈值范围,所述预设阈值范围为所述正态随机数据集的横轴区间(μ-σ,μ+σ);
[0180]
若所述随机时间数据位于所述预设阈值范围,则将所述随机时间数据作为所述动态生成周期;
[0181]
若所述随机时间数据超过所述预设阈值范围且位于所述正态随机数据集的横轴区间(μ-3σ,μ+3σ)范围,则依据归一化算法计算所述随机时间数据以获取归一化时间数据,并将所述归一化时间数据作为所述动态生成周期;
[0182]
若所述随机时间数据不位于所述正态随机数据集的横轴区间(μ-3σ,μ+3σ)范围,则舍弃,并重新生成新的随机时间数据。
[0183]
可选的实施例中,为避免随机生成的初始动态口令周期过长或过短,可以根据预设的阈值调整所述正态随机数据集中的随机时间数据,由于横轴区间(μ-σ,μ+σ)内的面积为68.26%,包含大多数随机时间数据,因此本技术中将横轴区间(μ-σ,μ+σ)内作为预设阈值范围。
[0184]
该可选的实施例中,横轴区间(μ-3σ,μ+3σ)范围的面积为99.73%,包含几乎所有的随机时间数据,因此若所述随机时间数据超过所述预设阈值范围且位于所述正态随机数据集的横轴区间(μ-3σ,μ+3σ)范围,则依据归一化算法计算所述随机时间数据以获取归一化时间数据,并将所述归一化时间数据作为所述动态生成周期。
[0185]
该可选的实施例中,若所述随机时间数据不位于所述正态随机数据集的横轴区间(μ-3σ,μ+3σ)范围,则舍弃该随机时间数据,并通过srand()函数重新生成新的随机事件数据进行上述判断,从而得到初始动态口令的新的生成周期。
[0186]
示例性的,可将正态分布的均值μ设为400,即每过400s生成一次初始动态口令,同时σ设为20,则生成的随机时间数据有68.26%的概率落在380-420的范围内,有99.73%的
概率落在340-460的范围内,设生成的随机时间数据为450,将其归一化到380-420的范围内更新为417,以此保证初始动态口令的动态生成周期不会过大或过小。
[0187]
该可选的实施例中,可根据安全需要指定对应的μ和σ,以使得动态生成周期在合理范围内。
[0188]
在一个可选的实施例中,加密单元114用于基于所述动态生成周期获取完整动态口令以对数据进行加密。
[0189]
在一个可选的实施例中,将动态生成周期能够位于合理范围内的初始动态口令作为所述完整动态口令,此时所述完整动态口令的生成周期完全位于正态随机数据集的横轴区间(μ-3σ,μ+3σ)范围,并以所述完整动态口令对数据进行加密,保证所述完整动态口令的持续时间在合理范围内随机变化,减少因初始动态口令的持续时间过久造成的数据泄密风险。
[0190]
由以上技术方案可以看出,本技术能够通过生成初始动态口令和密钥,使数据加密拥有双重保障,且通过构建正态随机数据集合理生成能够动态更改动态口令生成周期的随机数,使动态口令的生成周期能够在合理的动态范围内随机变化,提高动态口令对数据的加密强度。
[0191]
请参见图5,是本技术实施例提供的一种电子设备的结构示意图。电子设备1包括存储器12和处理器13。存储器12用于存储计算机可读指令,处理器13用执行所述储器中存储的计算机可读指令以实现上述任一实施例所述的基于人工智能的数据动态加密方法。
[0192]
在一个可选的实施例中,电子设备1还包括总线、存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如基于人工智能的数据动态加密程序。
[0193]
图5仅示出了具有存储器12和处理器13的电子设备1,本领域技术人员可以理解的是,图5示出的结构并不构成对电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0194]
结合图1,电子设备1中的所述存储器12存储多个计算机可读指令以实现一种基于人工智能的数据动态加密方法,所述处理器13可执行所述多个指令从而实现:
[0195]
建立共享密钥表以获取共享密钥;
[0196]
基于所述共享密钥和随机生成算法生成初始动态口令;
[0197]
依据服务端信息生成随机时间数据以作为所述初始动态口令的生成周期,所述服务端信息包括当前服务端的内存占用信息和网络流量信息;
[0198]
基于所述随机时间数据构建正态随机数据集;
[0199]
依据预设阈值调整所述正态随机数据集以获取所述初始动态口令的动态生成周期;
[0200]
基于所述动态生成周期获取完整动态口令以对数据进行加密。
[0201]
具体地,所述处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
[0202]
本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,电子设备1可以是总线型结构,也可以是星形结构,电子设备1还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置,例如电子设备1还可以包括输入输出设备、网络接入设备等。
[0203]
需要说明的是,电子设备1仅为举例,其他现有的或今后可能出现的电子产品如可适应于本技术,也应包含在本技术的保护范围以内,并以引用方式包含于此。
[0204]
其中,存储器12至少包括一种类型的可读存储介质,所述可读存储介质可以是非易失性的,也可以是易失性的。所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。存储器12在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡、闪存卡(flash card)等。存储器12不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如基于人工智能的数据动态加密程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
[0205]
处理器13在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(central processing unit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。处理器13是电子设备1的控制核心(control unit),利用各种接口和线路连接整个电子设备1的各个部件,通过运行或执行存储在所述存储器12内的程序或者模块(例如执行基于人工智能的数据动态加密程序等),以及调用存储在所述存储器12内的数据,以执行电子设备1的各种功能和处理数据。
[0206]
所述处理器13执行所述电子设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个基于人工智能的数据动态加密方法实施例中的步骤,例如图1至图3所示的步骤。
[0207]
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机程序在电子设备1中的执行过程。例如,所述计算机程序可以被分割成获取单元110、生成单元111、构建单元112、调整单元113、加密单元114。
[0208]
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、计算机设备,或者网络设备等)或处理器(processor)执行本技术各个实施例所述的基于人工智能的数据动态加密方法的部分。
[0209]
电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指示相关的硬件设备来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
[0210]
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存储器及其他存储器等。
[0211]
进一步地,计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储
程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
[0212]
本技术所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链包括区块链底层平台、平台产品服务层以及应用服务层等。
[0213]
总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,在图5中仅用一根箭头表示,但并不表示仅有一根总线或一种类型的总线。所述总线被设置为实现所述存储器12以及至少一个处理器13等之间的连接通信。
[0214]
本技术实施例还提供一种计算机可读存储介质(图未示),计算机可读存储介质中存储有计算机可读指令,计算机可读指令被电子设备中的处理器执行以实现上述任一实施例所述的基于人工智能的数据动态加密方法。
[0215]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0216]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0217]
另外,在本技术各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0218]
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。说明书陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
[0219]
最后应说明的是,以上实施例仅用以说明本技术的技术方案而非限制,尽管参照较佳实施例对本技术进行了详细说明,本领域的普通技术人员应当理解,可以对本技术的技术方案进行修改或等同替换,而不脱离本技术技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1