CN107579816B - 基于递归神经网络的密码字典生成方法 - Google Patents
基于递归神经网络的密码字典生成方法 Download PDFInfo
- Publication number
- CN107579816B CN107579816B CN201710793177.5A CN201710793177A CN107579816B CN 107579816 B CN107579816 B CN 107579816B CN 201710793177 A CN201710793177 A CN 201710793177A CN 107579816 B CN107579816 B CN 107579816B
- Authority
- CN
- China
- Prior art keywords
- neural network
- recurrent neural
- password
- output
- training set
- 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
Landscapes
- Document Processing Apparatus (AREA)
- Collating Specific Patterns (AREA)
Abstract
本公开提供了一种基于递归神经网络的密码字典生成方法,包括以下步骤:S1,对收集的密码集中的密码数据进行预处理;S2,搭建递归神经网络模型;S3,设置递归神经网络超参数并训练递归神经网络;S4,对训练后的递归神经网络采样输出新密码,生成密码字典。本公开基于递归神经网络的密码字典生成方法,通过递归神经网络自动提取现有密码的特征,并生成符合提取特征的相似密码,在节省时间和计算成本的基础上,能够显著扩充原有密码字典中的有效密码数量。
Description
技术领域
本公开涉及深度学习技术领域,特别是递归神经网络技术在密码破译领域的应用,具体涉及一种基于递归神经网络的密码字典生成方法。
背景技术
密码破译是当前网络安全与信息安全的一大难题。传统的密码破解如暴力破解,基本上是在没有任何先验知识的情况下进行;这种方法存在以下几个明显的缺陷;(1)对计算力的要求非常高;(2)带有一定的盲目性;(3)耗时长,需要经过大量的计算才能够获得极少数的有效密码。另外,通过人工提取密码特征的方法,则很容易只能提取到局部明显的特征,对于密码不同字符之间的深层次的联系和特征分布,不能做到有效的挖掘;同时,人工筛选还会引入人为主观性,破坏密码自身的规律,从而影响密码破解的效果。
发明内容
(一)要解决的技术问题
鉴于上述技术问题,本公开提供了一种基于递归神经网络的密码字典生成方法,通过递归神经网络自动提取现有密码的特征,并生成符合提取特征的相似密码。本公开基于递归神经网络的密码字典生成方法在节省时间和计算成本的基础上,能够显著扩充原有密码字典中的有效密码数量。
(二)技术方案
根据本公开的一个方面,提供了一种基于递归神经网络的密码字典生成方法,包括以下步骤:S1,对收集的密码集中的密码数据进行预处理;S2,搭建递归神经网络模型;S3,设置递归神经网络超参数并训练递归神经网络;S4,对训练后的递归神经网络采样输出新密码集,生成密码字典。
在本公开的一些实施例中,所述的基于递归神经网络的密码字典生成方法,还包括步骤:S5,测试、验证新密码集的有效性。
在本公开的一些实施例中,所述步骤S1包括:将密码数据所在的txt文档设置为“一个密码+一个换行符”的格式;统计密码集中全部密码数量N,按比例b随机切分成训练集和测试集,从中随机切分出b×N个密码,并将每一行密码末尾的换行符作为输入递归神经网络的字符之一,且默认递归神经网络输出的字符序列中,每两个换行符之间的字符串,作为网络生成的一个密码;采用one-hot编码的方式,将每个字符表示成一维向量形式,得到字符向量,作为递归神经网络的输入。
在本公开的一些实施例中,所述步骤S2包括:S21,设置网络层数:1层输入层、1层隐层、1层输出层;S22,设置隐层、输入层及输出层的节点数量;S23,设置tanh()函数作为隐层输出激活函数,公式如下:其中,x为节点的输入值,tanh(x)为节点的输入经过激活函数之后的输出值;S24,设置softmax()函数作为输出层激活函数,若输出层的节点个数为n,分别为(y1,y2...yn),每一个输出节点的值yi,经过softmax()函数后转换成一个概率值,n个概率值形成一个概率分布对于输出层第i个节点,其概率值为:
在本公开的一些实施例中,设置隐层节点数量为180~250,输入、输出层神经元节点数量n由训练集中的字符数种类C决定,即n=C。
在本公开的一些实施例中,在所述步骤S3中:基于反向传播自适应梯度下降算法更新递归神经网络的权值,采用固定学习率Lr训练递归神经网络;根据训练集密码的长度分布统计特征和递归神经网络的梯度衰减设置递归神经网络的一次正向和反向传播时间序列长度为T。
在本公开的一些实施例中,在所述步骤S3中:按照顺序每次从训练集中读取T个字符,18≤T≤25;在每个时间步里,对递归神经网络输入一个字符向量,T个时间步后,完成一次递归神经网络的前向传播;在每一个时间步上,分步计算每一步的输出的误差,从后往前,将误差依次反向传播至前面时间步的网络层进行权值的更新。
在本公开的一些实施例中,在所述步骤S4中,在神经网络在采样输出密码字符时采用多采样节点,少批量采样的方式以降低输出密码重复率,使其符合训练集密码分布特征。
在本公开的一些实施例中,所述步骤S5包括:按照不同比例将密码集中的密码数据随机切分成训练集和测试集,分别对训练集、测试集完成内部去重后,统计训练集和测试集重合的密码数量m;使用训练集对递归神经网络进行训练,对训练后的神经网络采样生成新密码集,并剔除与训练集重复的密码,得到最终密码集;比较最终密码集和测试集中重合的密码个数β,确定密码破解的有效提升率ξ,
(三)有益效果
从上述技术方案可以看出,本公开基于递归神经网络的密码字典生成方法至少具有以下有益效果其中之一:
(1)利用本公开方法扩充得到的密码,有效性显著高于暴力破解等传统方法。
(2)基于递归神经网络,能够有效学习密码的内部特征,节省了计算时间。
附图说明
通过附图所示,本公开的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本公开的主旨。
图1为依据本公开实施例基于递归神经网络的密码字典生成方法流程图。
图2为依据本公开实施例的基于递归神经网络的密码字典生成方法示意图。
图3为图1所示的测试部分中对密码集合在不同的划分比例下新生成的密码集合所能够达到的有效提升率分布情况。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,需要说明的是:深度神经网络,尤其是递归神经网络,近些年在自然语言处理(NLP),文本处理,甚至是语音识别等领域都取得了非常不错的效果;从本质上来说,密码的设置在很大程度上仍然符合人类的语言表达习惯;可以将密码看成是人类语言表达的延伸;受此启发,将深度递归神经网络应用在密码破解中,这样可以在训练网络的过程中,自主学习密码数据,自主抽取密码数据特征,建立复杂的特征空间,从而实现对密码字典的有效学习,并且能够生成与原始密码字典中包含的密码特征相似的新密码,在降低计算量的同时,增加密码库的有效密码数量。
以下结合具体实施例,并参照附图,对本公开的技术内容作进一步的详细说明;请结合图1所示,本公开提出了一种基于递归神经网络的密码字典生成方法,包括:
步骤S1,为方便读取字符,并将其转化成向量,对收集到的密码集合(简称密码集)中的密码数据作预处理,将密码所在的txt文档都归置成“一个密码+一个换行符”的统一格式;采用one-hot编码的方式,将每个字符表示成一维向量形式,作为递归神经网络的输入;对所收集到的密码字典按照不同比例b随机切分成训练集合(简称训练集)和测试集合(简称测试集),其中比例b的取值如下,
b=1:9,2:8,3:7,4:6,5:5,6:4,7:3,8:2,9:1
这样就得到了9对“训练集—测试集”,如表1所示;需要说明的是,每一次切分都是随机切分,所以每一次集合的密码分布都是不一样的。
表1密码数据集按不同比例切分
步骤S2,搭建递归神经网络模型,具体包括:
步骤S21,设置网络层数:包括1层输入层、1层隐层、1层输出层;
步骤S22,设置隐层节点数量,范围大致是几十到几百,例如180~250,这里优选设为200,输入、输出层神经元节点数量n由训练集中的字符数种类C决定,即n=C;
步骤S24,输出层采用的是softmax()函数,假设输出层的节点个数为n,分别为(y1,y2...yn),每一个输出节点的值yi,经过softmax()函数后变成一个概率值,n个概率值形成一个概率分布对于输出层第i个节点,输出概率为
步骤S3,将训练集数据输入递归网络模型进行训练,具体包括:
基于反向传播自适应梯度下降算法更新递归神经网络的权值w采用固定学习率Lr训练递归神经网络,优选Lr=1×10-2;根据训练集密码的长度分布统计特征和递归神经网络的梯度衰减设置递归神经网络的一次正向和反向传播时间序列长度为T;
在训练过程中,按照顺序每次从训练集合中读取T个字符,T的取值范围为(18≤T≤25),这里优选T=20;在每个时间步里,对递归神经网络输入一个字符(实际上是该字符表示的字符向量(字向量)),T个时间步后,完成一次递归神经网络的前向传播;然后在每一个时间步上,分步计算每一步的输出的误差,从后往前,将误差依次反向传播至前面时间步的网络层进行权值的更新,一次前向传播加一次反向传播为一次迭代过程;其中,网络权值更新算法采用的是反向传播自适应梯度下降算法,其公式如下,其中gt为当前梯度,ε为一常量,为保证分母非零。
步骤S4,对训练后的递归网络模型进行采样输出:按照步骤S3得到的输出概率,对训练后的递归网络模型进行采样,输出概率最大值所对应的字符,得到新密码集合,生成密码字典。
为保证采样得到的新密码集合(简称新密码集)的统计分布符合原训练集合,采用的是“小批量,多采样点”的策略;在网络遍历训练集3~4遍后,设定密码采样起始点,每隔Interval次迭代设置一个采样点,在实际操作中经验取值为(Interval=50 or 25)并设置多个采样点;每个采样点只采样1次,每次采样输出字符数目固定(这里设置的参数是200),将每个采样点得到的新密码保存输出到特定文件下;另外,在实际的操作中,在一个采样点,采样输出大量的字符串,会出现重复率较高的情况。
另外,本公开基于递归神经网络的密码字典生成方法,还可进一步包括:步骤S5,对新生成的密码集合进行比对分析。
将收集到的密码集N(N≈230万),按照一定的比例b进行随机切分为训练集合Train和测试集合Test,统计Train和Test重合的密码数量m,作为比较的基准数;
使用Train对递归神经网络进行训练,并生成密码规模近似的新密码集合A',并剔除掉与训练集合Train一样的密码,得到密码集合A”。特别说明的是,由于生成密码的数量较大,A'与Train中的密码数量并不完全相等,而是近似相等(<5%),实际操作证明,这样的处理对于最后的结果影响很小。
比较在A”和Test中,重合的密码个数β,并计算出有效提升率为需要特别说明的是,为了避免重复计数,两个密码集合在比较的时候,对密码集合Train、Test自身所包含的全部密码是做了内部去重;也就是待比较对象内部没有出现任何两个密码重复的现象。
针对前面提到的数据切分,在9次不同切分比例下,测试所得到的有效提升率的指标,如图2所示。可以看出,该方法能够非常显著地提升现有密码字典的有效密码数量,在训练集较小,而测试集较大时(b=1:9,2:8),有效提升率能够超过60%;这意味着,在现有密码数量的基础上,如果想要获取更多的有效密码,除了传统的枚举,暴力破解等方法之外,还可以使用递归神经网络,通过统计特征的学习,来产生更多有效的、符合已有集合统计特征的密码。
至此,本公开实施例一种基于递归神经网络的密码字典生成方法介绍完毕。依据以上描述,本领域技术人员应当对本公开一种基于递归神经网络的密码字典生成方法有了清楚的认识。
需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换。
还需要说明的是,本公开可提供包含特定值的参数的示范,但这些参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应值。此外,除非特别描述或必须依序发生的步骤,上述步骤的顺序并无限制于以上所列,且可根据所需设计而变化或重新安排。并且上述实施例可基于设计及可靠度的考虑,彼此混合搭配使用或与其他实施例混合搭配使用,即不同实施例中的技术特征可以自由组合形成更多的实施例。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换,例如:
本公开的控制单元并不限定于实施例的具体组成结构,所属技术领域的技术人员熟知的可实现存储单元和运算单元之间数据、指令交互的控制单元,均可用于实现本公开。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (8)
1.一种基于递归神经网络的密码字典生成方法,包括以下步骤:
S1,对收集的密码集中的密码数据进行预处理;
S2,搭建递归神经网络模型;
S3,设置递归神经网络超参数并训练递归神经网络;
S4,对训练后的递归神经网络采样输出新密码集,生成密码字典;
S5,测试、验证新密码集的有效性;
其中,所述步骤S5包括:
按照不同比例将密码集中的密码数据随机切分成训练集和测试集,分别对训练集、测试集完成内部去重后,统计训练集和测试集重合的密码数量m;
使用训练集对递归神经网络进行训练,对训练后的神经网络采样生成新密码集,并剔除与训练集重复的密码,得到最终密码集;
2.根据权利要求1所述的基于递归神经网络的密码字典生成方法,其中,所述步骤S1包括:
将密码数据所在的txt文档设置为“一个密码+一个换行符”的格式;
统计密码集中全部密码数量N,按比例b随机切分成训练集和测试集,从中随机切分出b×N个密码,并将每一行密码末尾的换行符作为输入递归神经网络的字符之一,且默认递归神经网络输出的字符序列中,每两个换行符之间的字符串,作为网络生成的一个密码;
采用one-hot编码的方式,将每个字符表示成一维向量形式,得到字符向量,作为递归神经网络的输入。
4.根据权利要求1所述的基于递归神经网络的密码字典生成方法,其中,设置隐层节点数量为180~250,输入、输出层神经元节点数量n由训练集中的字符数种类C决定,即n=C。
5.根据权利要求1所述的基于递归神经网络的密码字典生成方法,其中,在所述步骤S3中:基于反向传播自适应梯度下降算法更新递归神经网络的权值,采用固定学习率Lr训练递归神经网络;根据训练集密码的长度分布统计特征和递归神经网络的梯度衰减设置递归神经网络的一次正向和反向传播时间序列长度为T。
6.根据权利要求5所述的基于递归神经网络的密码字典生成方法,其中,在所述步骤S3中:按照顺序每次从训练集中读取T个字符,18≤T≤25;在每个时间步里,对递归神经网络输入一个字符向量,T个时间步后,完成一次递归神经网络的前向传播;在每一个时间步上,分步计算每一步的输出的误差,从后往前,将误差依次反向传播至前面时间步的网络层进行权值的更新。
8.根据权利要求1所述的基于递归神经网络的密码字典生成方法,其中,在所述步骤S4中,在神经网络在采样输出密码字符时采用多采样节点,少批量采样的方式以降低输出密码重复率,使其符合训练集密码分布特征。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710793177.5A CN107579816B (zh) | 2017-09-06 | 2017-09-06 | 基于递归神经网络的密码字典生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710793177.5A CN107579816B (zh) | 2017-09-06 | 2017-09-06 | 基于递归神经网络的密码字典生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107579816A CN107579816A (zh) | 2018-01-12 |
CN107579816B true CN107579816B (zh) | 2020-05-19 |
Family
ID=61031271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710793177.5A Active CN107579816B (zh) | 2017-09-06 | 2017-09-06 | 基于递归神经网络的密码字典生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107579816B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110472385B (zh) * | 2018-05-10 | 2021-09-03 | 深圳市格瑞信息科技有限公司 | 一种口令破解方法及装置 |
CN110889530A (zh) * | 2018-09-11 | 2020-03-17 | 上海博泰悦臻网络技术服务有限公司 | 基于递归神经网络的目的地预测方法及服务器 |
CN109558723A (zh) * | 2018-12-06 | 2019-04-02 | 南京中孚信息技术有限公司 | 密码字典生成方法、装置以及计算机设备 |
CN110807476B (zh) * | 2019-10-17 | 2022-11-18 | 新华三信息安全技术有限公司 | 一种密码安全等级分类方法、装置及电子设备 |
CN112613027B (zh) * | 2020-12-16 | 2022-06-17 | 广州岸边网络科技有限公司 | 一种基于机器学习的多密码管理方法、设备及存储介质 |
CN113676348B (zh) * | 2021-08-04 | 2023-12-29 | 南京赋乐科技有限公司 | 一种网络通道破解方法、装置、服务器及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156641A (zh) * | 2011-04-20 | 2011-08-17 | 中国科学院软件研究所 | 一种软件成本置信区间预测方法及系统 |
CN106407649A (zh) * | 2016-08-26 | 2017-02-15 | 中国矿业大学(北京) | 基于时间递归神经网络的微震信号到时自动拾取方法 |
CN106405640A (zh) * | 2016-08-26 | 2017-02-15 | 中国矿业大学(北京) | 基于深度信念神经网络的微震信号到时自动拾取方法 |
CN106570076A (zh) * | 2016-10-11 | 2017-04-19 | 深圳大学 | 一种计算机文本分类系统 |
CN106781489A (zh) * | 2016-12-29 | 2017-05-31 | 北京航空航天大学 | 一种基于递归神经网络的路网状态预测方法 |
CN107122479A (zh) * | 2017-05-03 | 2017-09-01 | 西安交通大学 | 一种基于深度学习的用户密码猜测系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573142A (zh) * | 2013-10-10 | 2015-04-29 | 无锡市思库瑞科技信息有限公司 | 基于神经网络的口令属性分析方法 |
CN105978678A (zh) * | 2016-04-26 | 2016-09-28 | 石峰 | 基于频率分析和字母排查的代替密码破译方法 |
CN106452733A (zh) * | 2016-11-24 | 2017-02-22 | 中国电子科技集团公司第三十研究所 | 一种基于密文分析的分组密码识别方法 |
CN107181600B (zh) * | 2017-07-27 | 2019-12-06 | 锐捷网络股份有限公司 | 一种密码登录认证方法、系统及用户设备和认证服务器 |
-
2017
- 2017-09-06 CN CN201710793177.5A patent/CN107579816B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156641A (zh) * | 2011-04-20 | 2011-08-17 | 中国科学院软件研究所 | 一种软件成本置信区间预测方法及系统 |
CN106407649A (zh) * | 2016-08-26 | 2017-02-15 | 中国矿业大学(北京) | 基于时间递归神经网络的微震信号到时自动拾取方法 |
CN106405640A (zh) * | 2016-08-26 | 2017-02-15 | 中国矿业大学(北京) | 基于深度信念神经网络的微震信号到时自动拾取方法 |
CN106570076A (zh) * | 2016-10-11 | 2017-04-19 | 深圳大学 | 一种计算机文本分类系统 |
CN106781489A (zh) * | 2016-12-29 | 2017-05-31 | 北京航空航天大学 | 一种基于递归神经网络的路网状态预测方法 |
CN107122479A (zh) * | 2017-05-03 | 2017-09-01 | 西安交通大学 | 一种基于深度学习的用户密码猜测系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107579816A (zh) | 2018-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107579816B (zh) | 基于递归神经网络的密码字典生成方法 | |
CN106126507B (zh) | 一种基于字符编码的深度神经翻译方法及系统 | |
CN106502985B (zh) | 一种用于生成标题的神经网络建模方法及装置 | |
US11636341B2 (en) | Processing sequential interaction data | |
WO2022126683A1 (zh) | 面向多任务的预训练语言模型自动压缩方法及平台 | |
CN113628059B (zh) | 一种基于多层图注意力网络的关联用户识别方法及装置 | |
CN111708877B (zh) | 基于关键信息选择和变分潜在变量建模的文本摘要生成法 | |
CN113988449B (zh) | 基于Transformer模型的风电功率预测方法 | |
JP7020547B2 (ja) | 情報処理装置、制御方法、及びプログラム | |
CN111626041B (zh) | 一种基于深度学习的音乐评论生成方法 | |
CN111966998A (zh) | 基于变分自动编码器的口令生成方法、系统、介质和设备 | |
JP7381814B2 (ja) | マルチタスク向けの予めトレーニング言語モデルの自動圧縮方法及びプラットフォーム | |
Wang et al. | Mutual attraction model for both assortative and disassortative weighted networks | |
CN111058840A (zh) | 一种基于高阶神经网络的有机碳含量(toc)评价方法 | |
CN116629324B (zh) | 一种面向模型生成文本重复退化现象的优化生成方法 | |
JP6927409B2 (ja) | 情報処理装置、制御方法、及びプログラム | |
Feng et al. | An expedient DDF-based implementation of perfectly matched monolayer | |
CN113312609A (zh) | 基于策略梯度的生成式对抗网络的口令破解方法及系统 | |
He | Identification and Processing of Network Abnormal Events Based on Network Intrusion Detection Algorithm. | |
CN116306780B (zh) | 一种动态图链接生成方法 | |
CN114330306A (zh) | 一种基于深度学习的密码字典生成技术 | |
CN114139674A (zh) | 行为克隆方法、电子设备、存储介质和程序产品 | |
CN111008271B (zh) | 一种基于神经网络的关键信息提取方法及系统 | |
Daspal | OptiPauli: An algorithm to find a near-optimal Pauli Feature Map for Quantum Support Vector Classifiers | |
Wang et al. | A Model for Dynamic Knowledge Representation and Learning |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180126 Address after: 100083 Beijing Qinghua East Road, Haidian District, No. 35 Applicant after: Semiconductor Inst., Chinese Academy of Sciences Applicant after: University of Chinese Academy of Sciences Address before: 100083 Beijing Qinghua East Road, Haidian District, No. 35 Applicant before: Semiconductor Inst., Chinese Academy of Sciences |
|
GR01 | Patent grant | ||
GR01 | Patent grant |