数据安全性检测方法、装置及电子设备与流程

文档序号:29614048发布日期:2022-04-13 10:48阅读:205来源:国知局
数据安全性检测方法、装置及电子设备与流程

1.本公开涉及安全技术领域,尤其涉及一种数据安全性检测方法、装置及电子设备。


背景技术:

2.加解密技术是一种日常生活生产中普遍应用的技术。加解密技术在云数据保护、网上购物、移动加密等领域都有着广泛的应用。
3.在相关技术中,提供有很多的加密技术来保护数据。其中,普遍使用的加密技术通常有对称加密技术。对称加密中加密所需要的密钥和解密所需要的密钥是相同的,数据提供方通过特定且安全的渠道可以把事先商量好的密钥传输给数据接收方。这样数据提供方就可以使用密钥加密原始数据,并将加密数据传输给数据接收方,而数据接收方可以使用相同的密钥解密该加密数据,以还原出原始数据。
4.然而在对称加密技术中,加密的密钥和解密的密钥是相同的,一旦密钥被破译就会导致加密数据也被破译的风险。
5.因此需要提供一种避免密钥被破译的技术方案。


技术实现要素:

6.本公开提供一种数据安全性检测方法、装置及电子设备。本公开的技术方案如下:
7.根据本公开实施例的第一方面,提供一种数据安全性检测方法,包括:
8.获取与第一明文数据对应的密文数据;其中,所述密文数据由所述第一明文数据经过对称加密算法加密得到;
9.将所述密文数据输入到组合卷积神经网络中进行计算,预测所述对称加密算法加密时使用的密钥,并基于所述密钥解密所述密文数据,获取所述组合卷积神经网络输出的解密的第二明文数据;其中,所述组合卷积神经网络包括模拟密钥的第一卷积神经网络、模拟解密器的第二卷积神经网络和模拟加密器的第三卷积神经网络;
10.根据所述第二明文数据与所述第一明文数据的相似度,确定所述密钥的安全等级。
11.可选的,所述组合卷积神经网络的训练过程包括:
12.获取用于训练组合卷积神经网络的训练样本集;其中,所述训练样本集由训练明文和训练密文对构成;
13.构建组合卷积神经网络中的第一卷积神经网络、第二卷积神经网络和第三卷积神经网络;
14.利用以下步骤进行迭代处理,直到训练密文与伪密文的相似程度大于预设阈值:
15.将训练样本集中的训练明文和训练密文对输入所述第一卷积神经网络,获取所述第一卷积神经网络输出的伪密钥;
16.将所述伪密钥和训练密文输入到所述第二卷积神经网络,获取所述第二卷积神经网络输出的伪明文;
17.将所述伪明文和伪密钥输入到所述第三卷积神经网络,获取所述第三卷积神经网络输出的伪密文;
18.计算所述训练密文与伪密文的相似程度,在所述训练密文与伪密文的相似程度小于或等于预设阈值时,根据所述相似程度调整所述第一卷积神经网络、第二卷积神经网络和第三卷积神经网络的模型参数。
19.可选的,所述获取用于训练组合卷积神经网络的训练样本集,包括:
20.对获取到的原始明文进行预处理,得到数据长度相同的训练明文;
21.基于对称加密算法加密所述训练明文,得到与所述训练明文对应的训练密文;
22.将所述训练明文和对应的训练密文确定为训练明密文对。
23.可选的,所述对获取到的原始明文进行预处理,得到数据长度相同的训练明文,包括:
24.在获取到的原始明文的数据长度大于预设长度时,从所述原始明文中截取所述预设长度的数据作为训练明文;
25.在获取到的原始明文的数据长度小于预设长度时,将第一数量的预设内容补充到所述原始明文,并将补充后的原始明文作为训练明文;其中,所述第一数量为所述预设长度与所述原始明文的数据长度的差值。
26.可选的,还包括:
27.对所述训练明文以及所述训练密文进行数字编码;
28.对数字编码后的训练明文和数字编码后的训练密文进行归一化处理,得到归一化的训练明文和归一化的训练密文;
29.所述将所述训练明文和对应的训练密文确定为训练明密文对,包括:
30.将所述归一化的训练明文和所述归一化的训练密文确定为训练明密文对。
31.可选的,还包括:
32.在所述安全等级表示危险时,向所述第一明文数据的提供方推送与所述安全等级相应的密钥修改信息;其中,所述密钥修改信息包括增加密钥长度和/或增加密钥复杂度。
33.可选的,所述对称加密算法包括高级加密标准算法。
34.根据本公开实施例的第二方面,提供一种数据安全性检测装置,包括:
35.获取单元,被配置为执行获取与第一明文数据对应的密文数据;其中,所述密文数据由所述第一明文数据经过对称加密算法加密得到;
36.计算单元,被配置为执行将所述密文数据输入到组合卷积神经网络中进行计算,预测所述对称加密算法加密时使用的密钥,并基于所述密钥解密所述密文数据,获取所述组合卷积神经网络输出的解密的第二明文数据;其中,所述组合卷积神经网络包括模拟密钥的第一卷积神经网络、模拟解密器的第二卷积神经网络和模拟加密器的第三卷积神经网络;
37.检测单元,被配置为执行根据所述第二明文数据与所述第一明文数据的相似度,确定所述密钥的安全等级。
38.可选的,还包括:
39.样本获取子单元,被配置为执行获取用于训练组合卷积神经网络的训练样本集;其中,所述训练样本集由训练明文和训练密文对构成;
40.网络构建子单元,被配置为执行构建组合卷积神经网络中的第一卷积神经网络、第二卷积神经网络和第三卷积神经网络;
41.网络训练子单元,将训练样本集中的训练明文和训练密文对输入所述第一卷积神经网络,获取所述第一卷积神经网络输出的伪密钥;将所述伪密钥和训练密文输入到所述第二卷积神经网络,获取所述第二卷积神经网络输出的伪明文;将所述伪明文和伪密钥输入到所述第三卷积神经网络,获取所述第三卷积神经网络输出的伪密文;计算所述训练密文与伪密文的相似程度,在所述训练密文与伪密文的相似程度小于或等于预设阈值时,根据所述相似程度调整所述第一卷积神经网络、第二卷积神经网络和第三卷积神经网络的模型参数;重复执行所述网络训练子单元,直到所述训练密文与伪密文的相似程度大于预设阈值。
42.可选的,所述样本获取子单元,还被配置为执行对获取到的原始明文进行预处理,得到数据长度相同的训练明文;基于对称加密算法加密所述训练明文,得到与所述训练明文对应的训练密文;将所述训练明文和对应的训练密文确定为训练明密文对。
43.可选的,所述对获取到的原始明文进行预处理,得到数据长度相同的训练明文,包括:
44.在获取到的原始明文的数据长度大于预设长度时,从所述原始明文中截取所述预设长度的数据作为训练明文;
45.在获取到的原始明文的数据长度小于预设长度时,将第一数量的预设内容补充到所述原始明文,并将补充后的原始明文作为训练明文;其中,所述第一数量为所述预设长度与所述原始明文的数据长度的差值。
46.可选的,所述样本获取子单元进一步被配置为执行对所述训练明文以及所述训练密文进行数字编码;对数字编码后的训练明文和数字编码后的训练密文进行归一化处理,得到归一化的训练明文和归一化的训练密文;将所述归一化的训练明文和所述归一化的训练密文确定为训练明密文对。
47.可选的,还包括:
48.推送单元,被配置为执行在所述安全等级表示危险时,向所述第一明文数据的提供方推送与所述安全等级相应的密钥更新信息;其中,所述密钥更新信息包括增加密钥长度和/或增加密钥复杂度。
49.可选的,所述对称加密算法包括高级加密标准算法。
50.根据本公开实施例的第三方面,一种电子设备,包括:
51.处理器;
52.用于存储所述处理器可执行指令的存储器;
53.其中,所述处理器被配置为执行所述可执行指令,以实现前述任一项所述的数据安全性检测方法。
54.根据本公开实施例的第四方面,一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行前述任一项所述的数据安全性检测方法。
55.根据本公开实施例的第五方面,一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现前述任一项所述的数据安全性检测方法。
56.本公开的实施例提供的技术方案至少带来以下有益效果:
57.利用组合卷积神经网络模拟破译经过对称加密算法加密的与第一明文数据对应的密文数据;通过预测所述对称加密算法加密时使用的密钥,并基于所述预测的密钥解密所述密文数据,以获取解密的第二明文数据;根据所述第二明文数据与第一明文数据的相似度,确定密钥的安全等级。如果破译出的第二明文数据与第一明文数据相同或接近,则说明该密钥存在被破译的风险,需要重新设置更为复杂的密钥。如此,可以提高密钥被破译的难度,有效保障密钥的安全。
58.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
59.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
60.图1是根据一示例性实施例示出的适用数据安全性检测的系统架构概念。
61.图2是根据一示例性实施例示出的一种数据安全性检测方法的流程图。
62.图3是根据一示例性实施例示出的组合卷积神经网络的示意图。
63.图4是根据一示例性实施例示出的一种数据安全性检测装置的框图。
64.图5是根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
65.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
66.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
67.以下说明书中将加密前的数据称为第一明文数据或原始数据,加密后的数据称为密文数据,解密后的数据称为第二明文数据。
68.第一明文数据和密文数据是存在复杂映射关系的数据对,所谓的密码破译即在根据给出的密文数据找出对应的第二明文数据。如果该第二明文数据等于第一明文数据则密码破译成功,如果该第二明文数据不等于第一明文数据则密码破译失败。
69.在数据加密通信中对称加密发挥着非常重要的作用。对称加密中加密所需要的密钥和解密所需要的密钥是相同的,数据提供方通过特定且安全的渠道可以把事先商量好的密钥传输给数据接收方。这样数据提供方就可以使用密码加密原始数据,并将加密数据传输给数据接收方,而数据接收方可以使用相同的密钥解密该加密数据,以还原出原始数据。
70.整个加密和解密的过程可以描述为:加密ek(m)=c,解密dk(c)=m,其中m为明文数据,c为密文数据,k为密钥,e为对称加密算法中的加密函数,d为对称加密算法中的解密函
数。
71.在对称加密技术中,加密的密钥和解密的密钥是相同的,一旦密钥被破译就会导致加密数据也被破译的风险。
72.由于密钥是用户人为设置的,而不同用户设置的密钥复杂度不尽相同。那些设置较为简单的密钥,实际上破译成本并不高,这就给恶意用户破译密钥带来了可乘之机。
73.为此,本说明书提供的实施例旨在利用组合卷积神经网络模拟破译经过对称加密算法加密的与第一明文数据对应的密文数据。通过预测所述对称加密算法加密时使用的密钥,并基于所述预测的密钥解密所述密文数据,以获取解密的第二明文数据;根据所述第二明文数据与第一明文数据的相似度,确定密钥的安全等级。如果破译出的第二明文数据与第一明文数据相同或接近,则说明该密钥存在被破译的风险,需要重新设置更为复杂的密钥。如此,可以提高密钥被破译的难度,有效保障密钥以及加密数据的安全。
74.以下参考图1,图1是一示例性实施例示出的适用数据安全性检测的系统架构概念。
75.系统架构概念图中,各种网络节点借助网络可以实现信息的通信,继而完成交互和数据的处理。系统架构概念图可以包括经由网络112与一个或多个客户端106进行数据通信的服务端105,以及可以集成于服务端105或独立于服务端105的数据库115。服务端105可以对应于安全数据传输的服务器,例如社交网络的服务平台,社交用户之间进行的加密数据交互。上述社交网络的服务平台可以例如短视频应用的服务平台,或者网络直播应用的服务平台等等。本实施例并不对其进行限定,只要是涉及加密数据传输的服务端都适用。
76.每个网络112都可以包括有线或无线电信装置,客户端106所基于的网络装置可以通过所述有线或无线电信装置来交换数据。例如,每个网络112都可以包括局域网(“lan”)、广域网(“wan”)、内部网、互联网、移动电话网络、虚拟专用网(vpn)、蜂窝式或其它移动通信网络、蓝牙、nfc或其任何组合。在示例性实施方案的讨论中,应理解,术语“数据”和“信息”可在本文中互换使用来指代可存在于基于计算机的环境中的文字、图像、音频、视频或任何其它形式的信息。
77.每个客户端106所基于的网络装置都可以包括具有能够经由网络112发出并接收数据的通信模块的装置。例如,每个客户端106所基于的网络装置都可以包括服务器、台式计算机、膝上型计算机、平板计算机、智能手机、手持式计算机、个人数字助理(“pda”),或者其它任何的有线或无线处理器驱动装置。在图1所描绘的示例性实施方案中,客户端106所基于的网络装置可以分别由最终用户或消费者、可能的交易对手方用户、社交网络系统的发布者,以及等待支付的操作者进行操作。
78.用户(包括个人或组织)可以使用如网页浏览器应用程序或独立应用程序的应用程序,以便经由网络112查看、下载、上传或以其它方式访问文件或网页。网络包括有线或无线电信系统或装置,网络装置可以通过所述有线或无线电信装置来交换数据。例如,网络112可以包括局域网(“lan”)、广域网(“wan”)、内部网、互联网、存储区域网络(san)、个人区域网络(pan)、城域网(man)、无线局域网(wlan)、虚拟专用网(vpn)、蜂窝式或其它移动通信网络、蓝牙、nfc或其任何组合,或者有助于信号、数据和/或消息的通信的任何其它适当的架构或系统。在示例性实施方案的讨论中,应理解,术语“数据”和“信息”可在本文中互换使用来指代可存在于基于计算机的环境中的文字、图像、音频、视频或任何其它形式的信息。
toolkit)库中的brown english text dataset(简称为布朗英语库)。
96.nltk是python的自然语言处理工具,而布朗英语库包含多个类别的英文句子,如adventure、belles_lettres、editorial等,这些英文句子可以作为原始明文使用。
97.在获取到原始明文后,还需要对所有的原始明文进行预处理。
98.在一示例性的实施例中,上述步骤a11,可以包括:
99.在获取到的原始明文的数据长度大于预设长度时,从所述原始明文中截取所述预设长度的数据作为训练明文;
100.在获取到的原始明文的数据长度小于预设长度时,将第一数量的预设内容补充到所述原始明文,并将补充后的原始明文作为训练明文;其中,所述第一数量为所述预设长度与所述原始明文的数据长度的差值。
101.应用上述示例,通过对获取到的原始明文进行截长补短,使每条原始明文的长度都相等从而便于后续模型训练时使用。其中,上述截长补短是指当原始明文的长度超过预设长度时,将原始明文截取到预设长度;当原始明文的长度小于预设长度时进行补零操作,同样使原始明文补齐到预设长度。
102.截长补短的目的是使训练明文和训练密文的长度与组合神经网络的输入维度保持一致。由于训练明文和训练密文最终是需要输入到组合神经网络中进行计算的,考虑到组合神经网络的输入维度有一定的要求,因此需要对原始明文进行长度的截取或者进行补零(padding)操作。在原始明文长度满足要求后,对应的训练明文和训练密文的长度也可以满足要求。
103.步骤a13,基于对称加密算法加密所述训练明文,得到与所述训练明文对应的训练密文。
104.在前述预处理基础上,可以基于对称加密算法加密所述预设长度的训练明文,得到与所述训练明文对应的训练密文。
105.在业内对称加密算法有很多,例如rsa、aes、des、md5、ecc、idea、diffie-hellman等。
106.本实施例以aes(advanced encryption standard,高级加密标准算法)为例加以说明。
107.aes的参数主要包括,key length(密钥位数或密码长度)、key(密钥)、iv(向量)、mode(加密模式)和padding(填充方式)。
108.其中,key length可以包括aes128,aes192,aes256(128位、192位或256位)。128位对应的是16个字节,所以在有的实施例中会将密钥长度描述为16个字符或者长度为16的字符串。
109.key指的就是密钥。aes128就是128位的密钥,如果位数不够,有的示例中会自动填充到128位。
110.iv称为初始向量,作用是对加密结果进行随机化。
111.aes是一种分组加密算法,每次根据分组长度进行加密。分组加密的mode方式有ecb,cbc,cfb等。
112.aes在进行数据加密之前需要对数据进行分组操作,当要加密的数据块非16的倍数的情况下,就需对数据进行填充操作。padding填充方式有很多种,最常用的方式为
pkcs5。
113.在将本说明书的实施例应用于aes算法的数据加密时,同样可以利用组合卷积神经网络模拟破译经过aes算法加密的与第一明文数据对应的密文数据。通过预测所述aes算法加密时使用的密钥,并基于预测的密钥解密所述密文数据,以获取解密的第二明文数据;根据所述第二明文数据与第一明文数据的相似度,确定aes算法使用的密钥的安全等级。如果破译出的第二明文数据与第一明文数据相同或接近,则说明aes算法使用的密钥存在被破译的风险,需要重新设置更为复杂的密钥。如此,可以提高aes算法中密钥被破译的难度,有效保障密钥以及加密数据的安全。
114.步骤a15,将所述训练明文和对应的训练密文确定为训练明密文对。
115.在前述基于对称加密算法加密训练明文得到训练密文后,可以将训练明文和对应的训练密文确定为训练明密文对。
116.在一示例性的实施例中,在将所述训练明文和对应的训练密文确定为训练明密文对之前,还可以包括:
117.对所述训练明文以及所述训练密文进行数字编码;
118.对数字编码后的训练明文和数字编码后的训练密文进行归一化处理,得到归一化的训练明文和归一化的训练密文;
119.所述将所述训练明文和对应的训练密文确定为训练明密文对,包括:
120.将所述归一化的训练明文和所述归一化的训练密文确定为训练明密文对。
121.应用上述示例,由于训练明文和训练明文一般是字符类型的数据,对于计算机设备来说直接对字符类型的数据进行处理需要的计算量较大效率较低,但是对数字类型的数据进行处理需要的计算量较小效率较高;因此通过数字编码可以将字符类型的训练明文和训练密文转换为数字类型的训练明文和数字类型的训练密文,减少了计算量提高了处理效率。
122.最后为了降低组合卷积神经网络运算的难度,对数字编码后的训练明文和数字编码后的训练密文进行归一化操作。以base64编码方式为例,数字编码后的训练明文和数字编码后的训练密文中每一位的数字范围都在0-85之间,归一化将每一位的数字大小变为[-1,1]区间的小数。如此一方面,可以方便处理数据提升训练的性能。另一方面可以把有量纲表达式变成无量纲表达式,便于不同单位或量级的指标能够进行比较和加权。
[0123]
其中,归一化所用的公式如公式1所示:
[0124][0125]
其中,x表示数字编码后的训练明文(或数字编码后的训练密文),x’表示归一化后的训练明文(或归一化后的训练密文),xmin表示所有的数字编码后的训练明文(或训练密文)中的最小值,xmax表示所有的数字编码后的训练明文(或训练密文)中的最大值。
[0126]
应用上述示例,通过步骤a11至a15对原始明文进行上述处理,从而可以得到符合组合卷积神经网络进行模型训练的训练样本集。
[0127]
步骤a2:构建组合卷积神经网络中的第一卷积神经网络、第二卷积神经网络和第三卷积神经网络。
[0128]
步骤a3:利用以下步骤进行迭代处理,直到训练密文与伪密文的相似程度大于预
设阈值:
[0129]
将训练样本集中的训练明文和训练密文对输入所述第一卷积神经网络,获取所述第一卷积神经网络输出的伪密钥;
[0130]
将所述伪密钥和训练密文输入到所述第二卷积神经网络,获取所述第二卷积神经网络输出的伪明文;
[0131]
将所述伪明文和伪密钥输入到所述第三卷积神经网络,获取所述第三卷积神经网络输出的伪密文;
[0132]
计算所述训练密文与伪密文的相似程度,在所述训练密文与伪密文的相似程度小于或等于预设阈值时,根据所述相似程度调整所述第一卷积神经网络、第二卷积神经网络和第三卷积神经网络的模型参数。
[0133]
应用上述示例,通过机器学习技术训练组合卷积神经网络,使得训练得到的组合卷积神经网络符合对称加密算法的加密过程,从而基于所述组合卷积神经网络解密出的密钥更为准确。
[0134]
上述组合卷积神经网络模型(以下简称为模型)是通过三个卷积神经网络组合嵌套而成。
[0135]
在获取到上述示出的训练样本集后,可以将训练样本集分为训练集和测试集,比例为9:1,即90%作为训练集,而10%作为测试集。
[0136]
在训练过程中可以每10轮可以通过tf.train.saver函数保存模型的结构和模型参数。然后通过测试机进行预测并输出结果。
[0137]
模型结构如图3所示包括a、b、c都是三个卷积神经网络,它们的参数分别是θa,θb,θe。在训练模型之前已知的数据包括训练明文plain、训练密文cipher以及真实密钥key。在向第一卷积神经网络a中输入将训练集中的训练明文plain和训练密文cipher,第一卷积神经网络a的输出为伪密钥fake_key。再将第一卷积神经网络a生成的fake_key和cipher输入到第二卷积神经网络b中,第二卷积神经网络b的输出是伪明文fake_plain。最后将第一卷积神经网络a生成的伪密钥fake_key、第二卷积神经网络b生成的伪明文fake_plain输入到第三卷积神经网络c中,第三卷积神经网络c的输出是伪密文fake_cipher。这三个卷积神经网络a、b、c共同组成了整个组合卷积神经网络模型的结构。
[0138]
上述组合神经网络的细节还包括:
[0139]
1、a、b和c有着相同的网络结构,但是输入input、输出output和模型参数不同。
[0140]
2、在一示例中,plain、cipher和key的长度分别是16、25和8。在实际中长度可以是位于区间(0-84)之间的浮点数,进行归一化后为(-1,1),在最后计算准确率的时候,把浮点数保留一位有效数字进行比较。
[0141]
3、每一个明文对应一个密文;
[0142]
4、损失函数:a、b和c三个卷积神经网络有着相同的计算目标。a的目标是求解出的伪密钥fake_key尽可能的接近真实密钥key;b的目标是求解出的伪明文fake_plain尽可能的接近真实的训练明文plain;c的目标是求解出的伪密文fake_cipher尽可能的接近真实的训练密文cipher;也就是说尽可能缩小求解的计算结果和真实数据之间的误差,因此损失函数可以为如下公式2所示:
[0143]
loss=tf.reduce mean(tf.cast(tf.abs(out-text)<0.01))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式2
[0144]
上述a、b和c神经网络的输入和输出如下表1所示:
[0145]
cnn模型输入输出aplain、cipherfake_keybfake_key、cipherfake_plaincfake_key、fake_plainfake_cipher
[0146]
下面接着介绍卷积神经网络的架构,以第二卷积神经网络b为例。
[0147]
首先一个全连接层,输入的是第一卷积神经网络a求解出的伪密钥fake_key和训练密文cipher。全连接层之后为5个一维卷积层,每个卷积层的窗口大小(window size),输入深度(input depth)和输出深度(output depth)分别是[2,1,4],[4,2,2],[4,1,1]和[1,1,1],步长分别为1、2、1、1,经过卷积层后最后一层向量的个数为plain的长度。前4个卷积层的激活函数都可以为sigmoid函数,而最后一个卷积层的激活函数可以为tanh函数,这样设置激活函数是因为计算损失函数的时候可以和归一化后的值(-1,1)统一起来,从而方便计算。具体处理流程如下所示。
[0148]
(1)输入层采用a网络求解出的fake_key+cipher,a_output的格式为tensor(“a/convlayers/conv_5/conv1d/tanh:0”,shape=(?,8,1),dtype=float32),可以看出网络输出结果是二维,为了匹配b网络结构将输出的密钥编码成一维(如采用reshape函数),即reshape_a_output=tf.reshape(a_output,shape=[-1,keylength]),其中keylength为密钥的长度8,reshape_a_output的维度为tensor(“reshape:0”,shape=(?,8),dtype=float32)。b的输入层为一个全连接层,将reshape_a_output与cipher拼接起来,即b_input=tf.concat([reshape_a_output,cipher],axis=1)。b_input的结构为tensor(“b/concat:0”,shape=(?,33),dtype=float32)。
[0149]
(2)中间的卷积层分为五层,每一层的参数和结构分别为:
[0150]“conv_1”层参数为:fileters=2,stride=1,kernelsize=4,激活函数为sigmoid,padding=“same”;结构为
[0151]
tensor(“b/convlayers/conv_1/conv1d/sigmoid:0”,shape=(?,33,2),dtype=float32);
[0152]“conv_2”层参数为:fileters=4,stride=2,kernelsize=2,激活函数为sigmoid,padding=“valid”,结构为
[0153]
tensor(“b/convlayers/conv_2/conv1d/sigmoid:0”,shape=(?,16,4),dtype=float32);
[0154]“conv_3”层参数为:fileters=4,stride=1,kernelsize=1,激活函数为sigmoid,padding=“same”,结构为
[0155]
tensor(“b/convlayers/conv_3/conv1d/sigmoid:0”,shape=(?,16,4),dtype=float32)。
[0156]
(3)最后一个卷积层“conv_4”层参数为:fileters=1,stride=1,kernelsize=1,因为要使的取值位于(-1,1)之间,所以激活函数为tanh,padding=“valid”,结构为tensor(“b/convlayers/conv_4/conv1d/tanh:0”,shape=(?,16,1),dtype=float32),输出的是便是明文plain。
[0157]
模型的评价指标:
[0158]
上述三个卷积神经网络a、b、c分别用于求解密钥key、明文plain和密文cipher,在实际应用组合卷积神经网络时主要是根据输入的密文求解明文,涉及第二卷积神经网络b和第三卷积神经网络c。因此在训练模型的过程中可以分别设置第二卷积神经网络b求解明文的损失函数b_loss,明文的损失和密文的损失都可以根据均方差公式来求解,即对明文密文每一位进行差值计算,因此,第二卷积神经网络b的损失函数具体可以如下公式3所示:
[0159]
b_loss=tf.reduce(tf.square(b_out-plain))
ꢀꢀꢀꢀ
公式3
[0160]
而第三卷积神经网络c是根据fake_key和fake_plain来求解密文的,第三卷积神经网络c的损失函数c_loss如公式4所示:
[0161]
c_loss=tf.reduce(tf.square(c_out-plain))
ꢀꢀꢀꢀ
公式4
[0162]
为了可以计算出求解明文和求解密文的准确率,可以设置若干评价指标,分别为第二卷积神经网络b的准确率accuracy_b,第二卷积神经网络b错误的位数b_bits_wrong,第三卷积神经网络c的准确率accuracy_c,第三卷积神经网络c错误的位数c_bits_wrong。
[0163]
其中,计算第二卷积神经网络b求解明文的准确率如下公式5所示:
[0164]
accuracy_b=tf.reduce(tf.cast(tf.abs(b_out-plain)<0.1))
ꢀꢀꢀꢀꢀ
公式5
[0165]
计算第三卷积神经网络c求解密文的准确率下如公式6所示:
[0166]
accuracy_c=tf.reduce(tf.cast(tf.abs(c_out-cipher)<0.1))
ꢀꢀꢀꢀꢀ
公式6
[0167]
计算第二卷积神经网络b求解明文的错误位数如公式7所示:
[0168]
b_bits_wrong=plaintextlength-accuracy_b*plaintextlength
ꢀꢀꢀꢀꢀ
公式7
[0169]
计算第三卷积神经网络c求解密文的错误位数如公式8所示:
[0170]
b_bits_wrong=ciphertextlength-accuracy_c*ciphertextlength
ꢀꢀꢀꢀ
公式8
[0171]
上述评价指标可以作为量化解密效果的好坏程度,具体是将明密文的每一位都根据比特位展开,比如明文的长度是16位,根据bit位进行展开后明文的bit位长度是128位,然后对原始明文和解密出的明文进行bit位的一一比对,统计这128位的bit位的命中率,假如随着模型训练的迭代次数的增加,bit位的命中率是提高的,也就反映出该模型的有效性,也可以从侧面反映出模型能够缩小原始明文和解密出的明文之间的空间的距离,对于解密钥、解密文也是同理。
[0172]
基于此,上述步骤a3,利用以下步骤进行迭代处理,可以包括:
[0173]
利用以下步骤进行迭代处理,直至所述组合卷积神经网络的评价指标达到预设要求。
[0174]
即根据前述公式5-8计算出的评价指标达到预设要求(例如所述第二卷积神经网络求解明文的准确率大于第一预设阈值、所述第三卷积神经网络求解密文的准确率大于第二预设阈值、所述第二卷积神经网络求解明文的错误位数小于第一预设位数、所述第三卷积神经网络求解密文的错误位数小于第二预设位数中的至少一种)时,则说明训练出的组合卷积神经网络的解密效果已经满足要求,可以应用到前述步骤220中。
[0175]
在上述步骤230中,根据所述组合卷积神经网络输出的解密的第二明文数据,与所述密文数据对应的第一明文数据的相似度,确定所述原始数据的安全等级。
[0176]
其中,所述相似度可以是对第一明文数据和解密出的第二明文数据进行bit位的一一比对,相同的bit位越多,则对应的相似度越高。而相似度越高,则说明对密文数据解密的结果越准确,进而可以确定第一明文数据的安全等级越低。
[0177]
一般的,可以将统计出的相同的bit位的数量除以总bit位的数量(第一明文数据和第二明文数据的bit位是相同的,取任一数据的bit位的数量即可),计算出的比值可以确定为第一明文数据和第二明文数据的相似度。
[0178]
在该示例中,可以预先设置多个不同的安全等级,每个安全等级可以对应一个相似度范围。
[0179]
假设相似度的整体范围为[0,1],安全等级分为5个等级,那么相似度与安全等级的映射关系可以如下所示:
[0180]
第一安全等级,对应的相似度的范围[0,0.2);
[0181]
第二安全等级,对应的相似度的范围[0.2,0.4);
[0182]
第三安全等级,对应的相似度的范围[0.4,0.6);
[0183]
第四安全等级,对应的相似度的范围[0.6,0.8);
[0184]
第五安全等级,对应的相似度的范围[0.8,1]。
[0185]
例如,当计算出的相似度为0.54时,根据上述映射关系可以确定安全等级为第三安全等级。
[0186]
另外,如前所述相似度与解密效果成反比,因此,对于第一安全等级来说,由于相似度较低,解密效果并不高,即无法有效破译密钥;因此可以认为原始数据是安全的。而第五安全等级,由于相似度较高,解密效果好,即接近甚至可以完全破译密钥,因此认为原始数据是危险的。
[0187]
在实际应用中,可以根据需求将不同安全等级划分为安全或危险;其中,在所述安全等级表示危险时,向所述原始数据的提供方推送与所述安全等级相应的密钥修改建议。
[0188]
如果步骤230最终确定的安全等级表示危险,则说明密钥容易被破译,为了保障原始数据的安全,在所述安全等级表示危险时,向所述第一明文数据的提供方推送与所述安全等级相应的密钥更新信息,从而通知原始数据的提供方及时修改密钥,以增加密钥被破译的难度。
[0189]
通常,向所述原始数据的提供方推送与所述安全等级相应的密钥更新信息可以包括:增加密钥长度和/或增加密钥复杂度。上述密钥更新信息可以是指密钥修改建议。
[0190]
通过上述实施例,首先利用组合卷积神经网络模拟破译经过对称加密算法加密的与第一明文数据对应的密文数据,以确定密钥的安全等级。接着针对安全等级表示危险时,通过推送密钥更新信息以建议所述提供方设置更为复杂的密钥。如此,提高密钥被破译的难度,有效保障密钥以及加密数据的安全。
[0191]
与前述图2所示数据安全性检测方法实施例相对应,本说明书还提供了图4所示数据安全性检测装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。
[0192]
图4是与前述图2对应的一种数据安全性检测装置框图。参照图4,该装置包括获取单元310,计算单元320和检测单元330。
[0193]
其中,获取单元310,被配置为执行获取与第一明文数据对应的密文数据;其中,所述密文数据由所述第一明文数据经过对称加密算法加密得到;
[0194]
计算单元320,被配置为执行将所述密文数据输入到组合卷积神经网络中进行计算,预测所述对称加密算法加密时使用的密钥,并基于所述密钥解密所述密文数据,获取所
述组合卷积神经网络输出的解密的第二明文数据;其中,所述组合卷积神经网络包括模拟密钥的第一卷积神经网络、模拟解密器的第二卷积神经网络和模拟加密器的第三卷积神经网络;
[0195]
检测单元330,被配置为执行根据所述第二明文数据与所述第一明文数据的相似度,确定所述密钥的安全等级。
[0196]
可选的,还包括:
[0197]
样本获取子单元,被配置为执行获取用于训练组合卷积神经网络的训练样本集;其中,所述训练样本集由训练明文和训练密文对构成;
[0198]
网络构建子单元,被配置为执行构建组合卷积神经网络中的第一卷积神经网络、第二卷积神经网络和第三卷积神经网络;
[0199]
网络训练子单元,将训练样本集中的训练明文和训练密文对输入所述第一卷积神经网络,获取所述第一卷积神经网络输出的伪密钥;将所述伪密钥和训练密文输入到所述第二卷积神经网络,获取所述第二卷积神经网络输出的伪明文;将所述伪明文和伪密钥输入到所述第三卷积神经网络,获取所述第三卷积神经网络输出的伪密文;计算所述训练密文与伪密文的相似程度,在所述训练密文与伪密文的相似程度小于或等于预设阈值时,根据所述相似程度调整所述第一卷积神经网络、第二卷积神经网络和第三卷积神经网络的模型参数;重复执行所述网络训练子单元,直到所述训练密文与伪密文的相似程度大于预设阈值。
[0200]
可选的,所述样本获取子单元,还被配置为执行对获取到的原始明文进行预处理,得到数据长度相同的训练明文;基于对称加密算法加密所述训练明文,得到与所述训练明文对应的训练密文;将所述训练明文和对应的训练密文确定为训练明密文对。
[0201]
可选的,所述对获取到的原始明文进行预处理,得到数据长度相同的训练明文,包括:
[0202]
在获取到的原始明文的数据长度大于预设长度时,从所述原始明文中截取所述预设长度的数据作为训练明文;
[0203]
在获取到的原始明文的数据长度小于预设长度时,将第一数量的预设内容补充到所述原始明文,并将补充后的原始明文作为训练明文;其中,所述第一数量为所述预设长度与所述原始明文的数据长度的差值。
[0204]
可选的,所述样本获取子单元进一步被配置为执行对所述训练明文以及所述训练密文进行数字编码;对数字编码后的训练明文和数字编码后的训练密文进行归一化处理,得到归一化的训练明文和归一化的训练密文;将所述归一化的训练明文和所述归一化的训练密文确定为训练明密文对。
[0205]
可选的,还包括:
[0206]
推送单元,被配置为执行在所述安全等级表示危险时,向所述第一明文数据的提供方推送与所述安全等级相应的密钥修改信息;其中,所述密钥修改信息包括增加密钥长度和/或增加密钥复杂度。
[0207]
可选的,所述对称加密算法包括高级加密标准算法。
[0208]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0209]
在示例性实施例中,还提供了一种数据安全性检测电子设备,包括处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以完成上述任一实施例所述的数据安全性检测方法。
[0210]
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,当该计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一实施例所述的数据安全性检测方法。
[0211]
在示例性实施例中,还提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序或指令被处理器执行时完成上述任一实施例所述的数据安全性检测方法。
[0212]
图5是根据本公开的实施例示出的一种电子设备的示意框图。参照图5,电子设备400可以包括以下一个或多个组件:处理组件402,存储器404,电源组件406,多媒体组件408,音频组件410,输入/输出(i/o)的接口412,传感器组件414,以及通信组件418。上述电子设备可以采用类似的硬件架构。
[0213]
处理组件402通常控制电子设备400的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件402可以包括一个或多个处理器420来执行指令,以完成上述三维虚拟形象的生成方法的全部或部分步骤。此外,处理组件402可以包括一个或多个模块,便于处理组件402和其他组件之间的交互。例如,处理组件402可以包括多媒体模块,以方便多媒体组件408和处理组件402之间的交互。
[0214]
存储器404被配置为存储各种类型的数据以支持在电子设备400的操作。这些数据的示例包括用于在电子设备400上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器404可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0215]
电源组件406为电子设备400的各种组件提供电力。电源组件406可以包括电源管理系统,一个或多个电源,及其他与为电子设备400生成、管理和分配电力相关联的组件。
[0216]
多媒体组件408包括在电子设备400和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件408包括一个前置摄像头和/或后置摄像头。当电子设备400处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的或具有焦距和光学变焦能力的光学透镜系统。
[0217]
音频组件410被配置为输出和/或输入音频信号。例如,音频组件410包括一个麦克风(mic),当电子设备400处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器404或经由通信组件418发送。在一些实施例中,音频组件410还包括一个扬声器,用于输出音频信号。
[0218]
i/o接口412为处理组件402和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,选项等。这些选项可包括但不限于:主页选项、音量选项、启动选项和锁
定选项。
[0219]
传感器组件414包括一个或多个传感器,用于为电子设备400提供各个方面的状态评估。例如,传感器组件414可以检测到电子设备400的打开/关闭状态,组件的相对定位,例如所述组件为电子设备400的显示器和小键盘,传感器组件414还可以检测电子设备400或电子设备400一个组件的位置改变,用户与电子设备400接触的存在或不存在,电子设备400方位或加速/减速和电子设备400的温度变化。传感器组件414可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件414还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件414还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
[0220]
通信组件418被配置为便于电子设备400和其他设备之间有线或无线方式的通信。电子设备400可以接入基于通信标准的无线网络,如wifi,运营商网络(如2g、3g、4g或4g),或它们的组合。在一个示例性实施例中,通信组件418经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件418还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
[0221]
在本公开一实施例中,电子设备400可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述任一实施例所述的数据安全性检测方法。
[0222]
在本公开一实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器404,上述指令可由电子设备400的处理器420执行以完成上述任一实施例所述的数据安全性检测方法。例如,所述计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0223]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0224]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1