一种基于深度学习的密码生成方法与流程

文档序号:17161719发布日期:2019-03-20 00:49阅读:558来源:国知局
一种基于深度学习的密码生成方法与流程

本发明涉及人工智能及深度学习技术领域,具体是一种基于深度学习的密码生成方法。



背景技术:

随着互联网的蓬勃发展,用户迅速增加,用户上网所产生信息不断增长,这为大数据的研究发展提供了庞大的数据,数据随着用户的增多而飞速增加,在很多用户连接网络,希望能在因特网上进行一些特定的服务程序的时候,需要申请相应的账号和密码,由于现在的密码破译技术取得不断突破,为了保护用户的账号安全,账号申请的复杂度也不断的提高,这就使得用户原先熟悉的密码失去了作用。如何为用户生成一种符合安全标准,破译难度增加,且容易被用户熟记的密码推荐程序的呼声日益增长。

随着市场上各类互联网应用的蓬勃发展,一些传统的密码保护技术在日益增长的黑客的攻击下显得容易轻易破解,这就造成之前用户能记住的一些密码都不符合网页应用的注册要求,在新的互联网运营条件下,谁能更好的为用户提供更好的服务,即可先占据先机。

目前,现有技术中没有一个完整根据用户特性生成密码的完整性技术,而是随机生成一串难记忆的随机字符串,无法充分的利用好用户数据。本方法通过训练出一个密码生成器来生成密码,原理基于人工智能方向的gan生成网络,有良好的技术支撑和灵活性。



技术实现要素:

本发明的目的在于客服现有技术的不足,而提供一种基于深度学习的密码生成方法,该方法利用生成性对抗网络的生成器和判别器的特征,生成复杂且符合安全标准的密码,生成方式灵活,破译难度大,可以提供不同的密码供用户选择,密码容易被用户记住,是一种较好的密码生成方式。

实现本发明目的的技术方案是:

一种基于深度学习的密码生成方法,包括如下步骤:

1)构建初始密码生成器和初始密码判断器;

2)对用户数据进行数据预处理;

3)将经过预处理后的用户数据,输入初始密码生成器中,生成初始密码;

4)密码生成器接收用户的真实密码,并将步骤3)生成的初始密码输入密码判断器中,密码判断器分辨真实密码和初始密码,将分辨结果反馈至密码生成器,密码生成器根据反馈结果进行学习优化;

5)重复步骤2)、步骤3)和步骤4),直至密码生成器学习达到最优;

6)将最优化的密码生成器生成密码,作为最终的密码;

经过上述步骤,完成密码的生成。

所述的密码生成器,根据用户数据生成初始密码,将初始密码输入密码判断器中反复学习和训练;所述的训练,采用rnn循环神经网络模型进行,rnn循环神经网络模型中加入长短记忆lstm模块,lstm模块的输出端连接全连接层,用于规定数据的输出,完成密码生成结构的构建。

所述的生成器的具体构建为将全连接层作为最底层的数据接收层,用来接收用户数据,在全连接之后铺设上lstm模块,这段参数层的作用是接收全连接层的语义信息,学习前后的参数特征,后续的全连接层是输出层,其每一维输出一位数字,代表着字符串id,将这串字符串id组合起来便是初始生成的密码。

所述的密码判断器,生成结果为一个判断分数,对密码生成器进行监督,首先接收用户的真实密码,对真实密码进行辨明,然后对密码生成器的输入的密码进行判断,将密码生成器的密码生成结果反馈给密码生成器,使生成器不断调整学习优化,且密码判断器自身也不断学习优化,使密码生成器和密码判断器达到最优状态,密码生成器生成最优密码。

步骤2)中,所述的数据预处理,包括清洗数据、半结构化、非结构化的数据结构化和数据归一化;

所述的清洗数据,是将爬虫从用户数据爬取下来的杂乱无章、无用、需要定义一些正则表达式的内容去掉;

所述的半结构化、非结构化的数据结构化,是对经过清洗数据后的用户数据进行标准化;

所述的数据归一化,将半结构化、非结构化的数据结构化后所得到的数据的映射至[0-1]范围当中,经过归一化的数据更好的被神经网络所学习。

步骤3)中,所述的初始密码,初始密码的生成包括如下步骤:

3-1)输入数据入口:将经过步骤2)后的对应着有n维维度的数据,输入密码到生成器的入口,即将用户结构化的数据毫无损失的添加进了生成器当中;

3-1)参数运算:当密码生成器接收到数据之后,内部的rnn以及lstm的内部包含的参数对输入密码生成器中的数据进行运算,生成器中隐藏层的参数权值每次都会随着判断器的反馈达到变化,内部包含的参数与输入进来的数据进行运算;

3-3)密码生成:经过步骤3-2)的参数运算之后,密码生成器在最后的全连接层生成n维的数字向量,该数字向量对应的是字符串的id,每一个数字对应着的是字符串的id,将所有的数字转化成字符串,便生成初始密码。

所述的步骤4),具体包括如下步骤:

4-1)接收真实数据密码:用户的真实密码数据送入到密码判别器中,密码判别器识别真实用户的密码数据,将其特征通过内部神经网络参数记住;

4-2)接收生成器生成密码:将密码生成器生成的密码输入密码判断器中,密码判断器内部的神经网路参数分析密码生成器生成的密码是否符合真实用户数据特征;

4-3)学习优化密码判断器:当密码生成器生成的密码欺骗密码判断器时,将密码判断器进行优化,直到密码判断器收敛;

4-4)将生成结果反馈给生成器:密码判断器通过参数运算,得到密码生成器生成密码的结果,将该结果反馈至密码生成器中。

所述的步骤6),具体是在密码生成器和密码判断器收敛时,此时密码生成器生成的密码最优,将该密码作为最终的密码。

附图说明

图1为密码生成器的结构示意图;

图2为rnn神经网络示意图;

图3为长短记忆模块与rnn结合的示意图。

具体实施方式

下面结合附图和实施例对本发明做进一步阐述,但不是对本发明的限定。

一种基于深度学习的密码生成方法,包括如下步骤:

1)构建初始密码生成器和初始密码判断器;

2)对用户数据进行数据预处理;

3)将经过预处理后的用户数据,输入初始密码生成器中,生成初始密码;

4)密码生成器接收用户的真实密码,并将步骤3)生成的初始密码输入密码判断器中,密码判断器分辨真实密码和初始密码,将分辨结果反馈至密码生成器,密码生成器根据反馈结果进行学习优化;

5)重复步骤2)、步骤3)和步骤4),直至密码生成器学习达到最优;

6)将最优化的密码生成器生成密码,作为最终的密码;

经过上述步骤,完成密码的生成。

所述的密码生成器,是构建一个初始、未经过任何学习的密码生成器,这个生成器初始根据用户数据生成一些粗糙的密码,与用户数据的密码不贴近,根据用户数据生成初始密码,将初始密码输入密码判断器中反复学习和训练;所述的训练,采用如图2所示的rnn循环神经网络模型进行,rnn循环神经网络模型可以很好的处理序列模型,可以完整的学习前后语义,并且将相关联系性保留下来,为了解决rnn的长时间的语义丢失问题,rnn循环神经网络模型中加入长短记忆lstm模块,长短记忆就像人的记忆力一样,记忆力是有限的,有限的记忆力无法记住全部的语义信息,lstm模块的输出端连接全连接层,如图3所示,用于规定数据的输出,完成密码生成结构的构建。

所述的密码生成器的具体构建为将全连接层作为最底层的数据接收层,用来接收用户数据,在全连接之后铺设上lstm模块,这段参数层的作用是接收全连接层的语义信息,学习前后的参数特征,后续的全连接层是输出层,其每一维输出一位数字,代表着字符串id,将这串字符串id组合起来便是初始生成的密码,具体构建图如图1所示。

rnn循环神经网络模型的数学公式表达式为:

所述的密码判断器,生成结果为一个判断分数,对密码生成器进行监督,首先接收用户的真实密码,对真实密码进行辨明,然后对密码生成器的输入的密码进行判断,将密码生成器的密码生成结果反馈给密码生成器,使生成器不断调整学习优化,且密码判断器自身也不断学习优化,使密码生成器和密码判断器达到最优状态,密码生成器生成最优密码。

步骤2)中,所述的数据预处理,包括清洗数据、半结构化、非结构化的数据结构化和数据归一化;

所述的清洗数据,是将爬虫从用户数据爬取下来的杂乱无章、无用、需要定义一些正则表达式的内容去掉;

所述的半结构化、非结构化的数据结构化,是对经过清洗数据后的用户数据进行标准化;例如年龄:9岁和19岁在计算机上的表达就为1位和2位,所以在这里需要将9转化成09;

所述的数据归一化,将半结构化、非结构化的数据结构化后所得到的数据的映射至[0,1]范围当中,经过归一化的数据更好的被神经网络所学习。

本实施例中,选取了四种信息作为实验数据:身高,体重,出生日期,以及姓名。

由于数据的特殊性,身高,体重,出生日期等数据可以以数字整数的形式进行输入,只需要将这些数据归一到[0,1]区间就可以了,此处采用的公式为:

xmin表示身高样本中最小的那一个样本数据,xmax表示身高最高的样本数据,x表示的为当前需要归一化的样本数据,xnorm则是进行归一化之后的样本数据,用户的体重以及出生日期都可以按照此公式进行归一化。

用户的姓名,例如‘李明’的预处理操作如下:

将汉字‘李明’转化成拼音‘liming’。由于每一个字母都有对应的ascii码表,这样子就可以将汉字转化成数字。因此,所有预处理的数据都可以从任何字符转化成[0-1]的数字,这些数字就是送入生成器的原始数据特征。

步骤3)中,所述的初始密码,初始密码的生成包括如下步骤:

3-1)输入数据入口:将经过步骤2)后的对应着有n维维度的数据,输入密码到生成器的入口,即将用户结构化的数据毫无损失的添加进了生成器当中;

3-1)参数运算:当密码生成器接收到数据之后,内部的rnn以及lstm的内部包含的参数对输入密码生成器中的数据进行运算,生成器隐藏层参数权值每次都会随着判断器的反馈达到变化,内部包含的参数与输入进来的数据进行运算;

3-3)密码生成:经过步骤3-2)的参数运算之后,密码生成器在最后的全连接层生成n维的数字向量,该数字向量对应的是字符串的id,每一个数字对应着的是字符串的id,将所有的数字转化成字符串,便生成初始密码。

所述的步骤4),具体包括如下步骤:

4-1)接收真实数据密码:用户的真实密码数据送入到密码判别器中,密码判别器识别真实用户的密码数据,将其特征通过内部神经网络参数记住;

4-2)接收生成器生成密码:将密码生成器生成的密码输入密码判断器中,密码判断器内部的神经网路参数分析密码生成器生成的密码是否符合真实用户数据特征;

4-3)学习优化密码判断器:当密码生成器生成的密码欺骗密码判断器时,将密码判断器进行优化,直到密码判断器收敛;

4-4)将生成结果反馈给生成器:密码判断器通过参数运算,得到密码生成器生成密码的结果,将该结果反馈至密码生成器中。

所述的步骤6),具体是在密码生成器和密码判断器收敛时,此时密码生成器生成的密码最优,将该密码作为最终的密码。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1