首页> 中国专利> 基于策略梯度的生成式对抗网络的口令破解方法及系统

基于策略梯度的生成式对抗网络的口令破解方法及系统

摘要

本发明公开了一种基于策略梯度的生成式对抗网络的口令破解方法及系统,该方法的步骤包括:对泄露口令集进行预处理得到训练口令集,将训练口令集转化为由口令字符组成的字符数组;统计字符频数并排序得到字符字典和反向索引字典;对照字符字典将字符数组转化为数字化的口令数组,得到训练数据集;构造神经网络,包括生成器结构类、roll‑out结构类、Highway结构类、判别器结构类和策略梯度算法;生成生成器和判别器实例,初始化生成器和判别器参数、优化器;对生成器和判别器进行预训练;对生成器和判别器进行对抗训练;使用训练好的生成器参数进行前向传播生成爆破口令集。本发明使原始GAN训练更加的稳定,生成较高质量的文本。

著录项

  • 公开/公告号CN113312609B

    专利类型发明专利

  • 公开/公告日2022.12.16

    原文格式PDF

  • 申请/专利权人 华南理工大学;

    申请/专利号CN202110525589.7

  • 发明设计人 吴昊天;李小玲;

    申请日2021.05.14

  • 分类号G06F21/46(2013.01);G06N3/04(2006.01);

  • 代理机构广州市华学知识产权代理有限公司 44245;

  • 代理人郑秋松

  • 地址 510640 广东省广州市天河区五山路381号

  • 入库时间 2023-01-09 21:32:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-12-16

    授权

    发明专利权授予

说明书

技术领域

本发明涉及口令破解技术领域,具体涉及一种基于策略梯度的生成式对抗网络的口令破解方法及系统。

背景技术

互联网的发展催生了各类应用系统,如各种APP和网站,用户使用这些应用系统基本上是明文口令进行用户验证,根据某些网站已泄露的口令集可以发现用户设置的明文口令有一定的规律性,如姓名拼音、生日、电话号码等的组合。现有的明文口令破解方法有暴力破解、字典破解和基于神经网络的破解法。暴力破解需要耗费大量的时间和资源;字典破解是基于明文口令的统计特性,相对于暴力破解而言,它节省了大量的时间和资源,但是,它只是不断的尝试字典的排列组合,没有真正地学习到用户设置密码的模式;基于神经网络的破解法是用神经网络去学习口令的分布特征,现有基于RNNs的破解法和PassGAN破解法,这两类方法只有当完整口令生成后,才能对口令进行判断,不能在口令的生成过程对生成口令的动作进行判断,也就是说,这两种方法不能实现对口令生成的全程指导;实验表明基于神经网络破解法的命中率高于字典破解。字典破解和基于神经网络破解法已经证明同一社区或同一网站的明文口令有一定的规律性和特征,本方法基于这个特征,利用强化学习和生成对抗网络来学习某一社区或某一网站用户的明文口令分布特征,从而能够以更高的效率进行明文口令破解。

发明内容

为了克服现有技术存在的缺陷与不足,本发明提供一种基于策略梯度的生成式对抗网络的口令破解方法及系统,通过生成对抗网络中生成器与判别器的博弈训练,使得生成器学习口令集的特征分布,从而使得生成器生成与训练数据类似度较高的口令集,可以对特定网站或者用户社区的口令进行破解。

为了达到上述目的,本发明采用以下技术方案:

一种基于策略梯度的生成式对抗网络的口令破解方法,包括下述步骤:

数据预处理:确定最长口令的长度和口令中最多允许存在的字符种类数,清除长度超过预设值和出现非允许字符的口令,得到训练口令集,将训练口令集转化为由所包含字符组成的字符数组,对字符数组进行字符频数统计并排序得到字符字典和反向索引字典,对照字符字典将训练口令集转化成数字化的口令数组,得到训练数据集;

神经网络构造:构造Highway结构类、生成器、roll-out结构类和判别器,基于LSTM构造生成器类,并基于Highway结构类和CNN层构造判别器类,构造生成器参数更新所需要的策略梯度类,所述roll-out结构类是生成器类的完全副本,用于模拟生成器生成口令样本;

进行网络预训练:生成相应的生成器和判别器实例,初始化生成器、判别器及对应的优化器,对生成器进行预训练,利用预训练后的生成器和部分真实训练数据对判别器进行预训练;

进行对抗训练:实例化roll-out结构类,采用预训练后的生成器参数更新roll-out网络,基于预训练后的生成器和判别器,结合roll-out网络在训练数据上对生成器和判别器进行对抗训练;

采用训练好的生成器参数生成爆破口令集。

作为优选的技术方案,所述数据预处理步骤中,所述字符字典以字符数组中出现的字符为键,以字符在字符数组中统计频数的排名为值,所述反向索引字典为字符字典中所有键-值对的键与值相互调换得到的字典。

作为优选的技术方案,所述基于LSTM构造生成器类,具体步骤包括:

输入开始标志,触发网络进行前向传播生成口令。

作为优选的技术方案,所述生成器的输入数据维度为[每次训练样本数,1],首先进行词嵌入转化为[每次训练样本数,嵌入向量的维度]的矩阵,传入LSTM网络中,得到[每次训练样本数,隐空间维度]的矩阵,之后输入到全连接网络得到[每次训练样本数,字符种类]的矩阵,最后输入到softmax层并进行随机采样得到[每次训练样本数,1]的矩阵,将最后所得的矩阵再依次经过词嵌入、LSTM网络、全连接网络和softmax层,循环操作并连接每一次的输出结果,得到[每次训练样本数,口令长度]矩阵。

作为优选的技术方案,所述判别器设置多个平行的不同规模的CNN层,用于提取不同粒度的特征;

所述判别器的输出结果为维度[每次训练样本数,2]的矩阵,表示判别器判定每一个训练样本分别为假样本和真样本的概率。

作为优选的技术方案,将强化学习中的奖励机制和蒙特卡罗策略梯度算法引入到GAN网络中;

所述判别器的损失函数包括判别器对真实口令序列数据的奖赏和判别器对虚假口令序列的奖赏;

所述生成器的损失函数包括判别器对虚假的完整口令序列的奖赏和生成器生成口令过程的动作价值函数。

作为优选的技术方案,所述结合roll-out网络在训练数据上对生成器和判别器进行对抗训练,具体步骤包括:

训练判别器,采用等量的真实训练数据和生成器生成的虚假数据训练判别器,并且在反向传播时需要冻结生成器的模型参数,只更新判别器的模型参数;

训练生成器,使用生成器生成虚假口令,roll-out网络将该虚假口令多次从不同位置断开,、roll-out网络根据虚假口令的前部分模拟生成器补全虚假口令,得到多条由生成器和roll-out网络共同生成的口令,将共同生成的口令输入到判别器中,得到每条口令是否来源于真实口令集的概率,将概率值的加权平均值作为虚假口令的期望reward,根据期望reward反向传播更新生成器的模型参数,在反向传播过程中冻结判别器的模型参数,只更新生成器的模型参数;

每更新一次生成器的网络参数,用生成器的参数更新roll-out网络的参数。

作为优选的技术方案,所述采用训练好的生成器参数生成爆破口令集,具体步骤包括:

生成器将开始标志作为输入,然后进行前向传播得到爆破口令集。

作为优选的技术方案,所述爆破口令集表示为[每次训练样本数,口令长度]维度的矩阵,其中口令长度维度上的值为字符字典中字符对应的键值,根据反向索引字典进行转换得到字符化的口令。

本实施例还提供一种基于策略梯度的生成式对抗网络的口令破解系统,包括:数据预处理模块、神经网络构造模块、网络预训练模块、网络对抗训练模块和爆破口令集生成模块;

所述数据预处理模块用于数据集预处理,确定最长口令的长度和口令中最多允许存在的字符种类数,清除长度超过预设值和出现非允许字符的口令,得到训练口令集,将训练口令集转化为一个由所包含字符组成的字符数组,对字符数组进行字符频数统计并排序得到字符字典,对照该字典将字符数组转化成一个数字化的口令数组,得到训练数据集;

所述神经网络构造模块用于构造Highway结构类、生成器、roll-out结构类和判别器,基于LSTM构造生成器类,并基于Highway结构类和CNN层构造判别器类,构造生成器参数更新所需要的策略梯度类,所述roll-out结构类是生成器类的完全副本,用于模拟生成器生成口令样本;

所述网络预训练模块用于生成判别器和生成器实例,初始化生成器和判别器相应的优化器,在部分真实训练数据上对生成器进行预训练,利用预训练后的生成器和部分真实训练数据对判别器进行预训练;

所述网络对抗训练模块用于生成roll-out实例,采用预训练后生成器参数初始化roll-out网络,基于预训练的生成器和判别器,结合roll-out网络在训练数据上对生成器和判别器进行对抗训练;

所述爆破口令集生成模块用于采用训练好的生成器参数生成爆破口令集。

本发明与现有技术相比,具有如下优点和有益效果:

(1)本发明在构造判别器时部分结构采取了Highway网络,在反向传播时,可以让更多的梯度信息直接回流到输入,解决了随着网络深度增加,训练效果不佳的问题,同时缓解了深度神经网络中的梯度消失问题。

(2)本发明在构造判别器时设置了多个平行的不同规模的CNN层,CNN层中的卷积层和池化层用于提取输入口令的分布特征,不同规模的CNN层有利于提取不同粒度的分布特征,如2×2的卷积核提取的特征的粒度小于6×6的卷积核提取的特征的粒度,这样不仅可以尽可能多的提取口令的分布特征,而且有利于判别器的判断,使判别器拥有更加敏锐的判别能力,不断进行对抗训练,从而生成器能够生成更高质量的以假乱真的口令集。

(3)本发明采用了roll-out网络,即生成器的完全副本,在生成器生成完整密码的同时,模拟生成器生成完整口令样本,预判生成器此时生成状态的优劣,达到判别器对生成器生成口令的全程指导,不断训练,进而促进生成器生成更高质量的口令集。

(4)本方法采取了强化学习中的奖励机制和蒙特卡罗策略梯度reinforce算法,将其运用于改进生成对抗网络,这样做的优点在于:一是采取奖励机制实现了判别器对生成器生成口令的全程指导;二是蒙特卡罗策略梯度reinforce算法的引用解决了生成对抗网络在文本生成(如生成口令)中梯度更新难以从判别器传到生成器的问题,使原始GAN训练更加的稳定,进而能够生成较高质量的文本,如口令集。

附图说明

图1为本发明基于策略梯度的生成式对抗网络的口令破解方法的流程示意图;

图2为本发明基于策略梯度的生成式对抗网络的口令破解方法的生成器结构框架示意图;

图3为本发明基于策略梯度的生成式对抗网络的口令破解方法的判别器结构框架示意图;

图4为本发明基于策略梯度的生成式对抗网络的口令破解方法的对抗训练流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例1

如图1所示,本实施例提供一种基于策略梯度的生成式对抗网络的口令破解方法,包括下述步骤:

S1:进行数据预处理,具体步骤包括:

S11:确定最长口令的长度和口令中最多允许存在的字符种类数;

关于字符种类,本实施例设定为2048,可以包含几乎所有能够在口令中出现的字符,长度上选取了长度在10及以下的口令作为实验数据,长度不够10的口令将使用字符“`”进行补齐;

S12:转化原始数据训练数据:将收集到的泄露口令集过滤并转化为一个口令中所包含的字符组成的字符数组,若收集到的泄露口令集中某条口令中的字符不包含于限定的字符种类或口令长度超过10,则该条口令被过滤;再对字符数组中字符频数统计并排序得到字符字典,该字典以字符数组中出现的字符为键,以字符在字符数组中统计频数的排名为值;

S13:提取训练数据:根据字符数组和字符字典得到最终训练数据集;

在本实施例中,数据预处理目的是清除掉长度过长的口令以及限制口令中的字符种类个数,由于读入的口令集中可能包含这些过长的口令以及包含其他不需要的字符类别,需要过滤泄露口令集来得到训练口令集,最后根据字符字典得到最终的训练数据集;

S2:如图2、图3所示,进行神经网络构造,主要包含的是一个生成器结构类、roll-out结构类、一个Highway结构类,以及基于Highway和CNN结构之上判别器,构造生成器类、Highway结构类和判别器类,实现策略梯度算法,其包括:

S21:构造生成器类;

本实施例构造生成器类,需要输入开始标志start_token生成口令;

在本实施例中,生成器的主要作用是通过输入开始标志start_token,触发网络进行前向传播生成口令;

生成器的输入数据维度为[每次训练样本数,1],为了反映各个编号代表的符号之间的语义关系,先进行词嵌入转化为[每次训练样本数,嵌入向量的维度]的矩阵,之后传入LSTM网络中,得到[每次训练样本数,隐空间维度]的矩阵,之后输入到全连接网络得到[每次训练样本数,字符种类]的矩阵,最后输入到softmax层并进行随机采样得到[每次训练样本数,1]的矩阵,将最后所得的矩阵再依次词嵌入、LSTM、全连接网络、softmax层,重复此类操作“口令长度-1”次,连接“口令长度”次的输出结果,得到[每次训练样本数,口令长度]矩阵。对于softmax层的输出概率采用随机策略采样,softmax层使用softmax函数转换成概率,随机采样得到某个字符的下标作为具体值,同时缩减维度,具体是根据softmax输出的概率进行采样,如果预测一个字符的概率是10%,那么它被采样的概率也是10%。

S22:构造roll-out结构类;

roll-out结构类是生成器类的完全副本,主要作用是模拟生成器生成口令样本,用于计算生成器生成口令的期望reward。判别器只能对完整口令序列给出reward,不能指导生成器生成口令序列的过程,本实施例使用roll-out结构类的roll-out网络就是用于辅助判别器对生成器生成口令序列的过程进行指导;

S23:构造Highway结构类;

Highway结构类主要作用是使得网络不会随着深度加大导致训练效果变差,传统的卷积层或全连接层在信息传递时,或多或少会存在信息丢失、损耗等问题,本实施例使用Highway结构类的Highway网络在某种程度上解决了这个问题;

S24:使用Highway结构类和CNN构造出判别器类;

本实施例构造判别器类,最终判别器的输出结果为维度为[每次训练样本数,2]的矩阵,代表着判别器判定输入到判别器的口令分别为假样本和真样本的概率,又称为reward。

在本实施例中,判别器的主要工作是接收口令的词嵌入格式(embedding)数据作为输入,通过多个并行的不同规模的CNN层最大限度的提取输入数据的特征,每一个CNN层由卷积层和池化层组成,卷积层的核心是卷积核,池化层使用的是Max-Pooling方法,CNN对输入数据依次进行卷积核池化的过程本质上就是对输入数据进行加权平均提取特征,不同规模的CNN层可以提取到不同粒度的特征。CNN层之后的Highway网络层和Dropout层则是为了避免模型的退化和过拟合。

判别输入的口令分别属于假样本和真样本的概率;

S25:构造出生成器参数更新所需要的策略梯度类;

传统的GAN网络中,生成器的损失函数一般来说有一下两种:

E

E

其中,Pg表示由生成器产生的样本分布,Pr表示真实样本分布。不管是公式1还是公式2,其中的D(x)代表判别器对生成器生成的完整序列x的判断,这说明判别器只能对生成器生成的完整序列进行判断,无法对生成器的生成完整序列的过程进行指导。另外,生成器在生成序列时通过softmax对离散序列采样输出,这一采样过程不可导,导致梯度更新无法从判别网络传到生成网络。

而将强化学习中的奖励机制和蒙特卡罗策略梯度reinforce算法引入到GAN中,解决了以上两个问题。

以强化学习的思维去看待GAN生成口令的问题,生成器G

策略梯度算法如下:

其中,R是判别器给完整口令序列的奖励,S

要实现判别器对生成器生成口令过程的指导,说明GAN不仅要考虑完整口令序列奖赏,而且考虑中间状态的动作奖赏。但是判别器只能对完整口令序列给出相应的奖赏,因此,使用roll-out策略G

在某一中间状态S

以此计算动作价值函数

生成器G

SeqGAN生成器的损失函数为公式(7),SeqGAN判别器的损失函数:

-E

在本实施例中,判别器的损失函数包括两个方面:

1)判别器对真实口令序列数据的奖赏

2)判别器对虚假口令序列的奖赏

生成器的损失函数包括两个方面:

1)判别器对虚假的完整口令序列的奖赏

2)生成器生成口令过程的动作价值函数

S3:进行网络预训练;

S31:生成相应的生成器和构造器实例;

S32:初始化生成器和构造器相应的优化器,两个网络均使用SGD优化器;

S33:开始进行预训练;

在本实施例中,分别独立对生成器和判别器进行预训练;

预训练生成器,使用部分真实训练数据和极大似然估计法训练生成器;

预训练判别器,利用预训练后的生成器生成与用于预训练生成器的真实训练数据等量的虚假数据,使用等量的虚假数据和真实训练数据训练判别器。

S4:进行网络对抗训练;

在本实施例中,基于预训练后的生成器和判别器,结合roll-out网络,在训练数据集上进行对抗训练,对于判别器和生成器的训练方法是有所区别的,并且在训练其中一个神经网络时,另一个神经网络中的参数不参与梯度更新;

训练判别器,使用真实口令数据以及生成器生成的口令数据来训练判别器,并且在反向传播时需要冻结生成器的模型参数,只更新判别器的模型参数;

训练生成器,如图4所示,使用生成器生成虚假口令,roll-out网络将该虚假口令多次从不同位置断开,之后,roll-out网络根据虚假口令的前部分模拟生成器补全虚假口令,因此,会得到多条由生成器和roll-out网络共同生成的口令,将这些共同生成的口令输入到判别器中,会得到每条口令是否来源于真实口令集的概率(即reward),将reward的加权平均值作为虚假口令的期望reward,根据期望reward反向传播更新生成器的模型参数,在反向传播过程中冻结判别器的模型参数,只更新生成器的模型参数,每更新一次生成器的网络参数,用生成器的参数更新roll-out网络的参数,为了增加长序列强化学习的稳定性,利用学习率控制roll-out的网络参数更新稍滞后于生成器的网络参数更新。

S5:进行口令生成;

S51:使用训练好的生成器参数进行爆破口令集生成,生成器需要将开始标志start_token作为输入,然后进行前向传播即可得到爆破口令集;

在本实施例中,生成的爆破口令集是数字化的口令,还要进行字符化处理。爆破口令集的表现形式是如下维度的矩阵:[每次训练样本数,口令长度],其中口令长度维度上的值为步骤S12中字符字典中字符对应的键。根据反向索引字典进行转换得到生成的具体口令。

实施例2

本实施例提供一种基于策略梯度的生成式对抗网络的口令破解系统,包括:数据预处理模块、神经网络构造模块、网络预训练模块、网络对抗训练模块和爆破口令集生成模块;

在本实施例中,数据预处理模块用于数据集预处理,确定最长口令的长度和口令中最多允许存在的字符种类数,清除长度超过预设值和出现非允许字符的口令,得到训练口令集,将训练口令集转化为一个由所包含字符组成的字符数组,对字符数组进行字符频数统计并排序得到字符字典,对照该字典将字符数组转化成一个数字化的口令数组,得到训练数据集;

在本实施例中,神经网络构造模块用于构造Highway结构类、生成器、roll-out结构类和判别器,基于LSTM构造生成器类,并基于Highway结构类和CNN层构造判别器类,构造生成器参数更新所需要的策略梯度类,roll-out结构类是生成器类的完全副本,用于模拟生成器生成口令样本;

在本实施例中,网络预训练模块用于生成判别器和生成器实例,初始化生成器和判别器相应的优化器,在部分真实训练数据上对生成器进行预训练,利用预训练后的生成器和部分真实训练数据对判别器进行预训练;

在本实施例中,网络对抗训练模块用于生成roll-out实例,采用预训练后生成器参数初始化roll-out网络,基于预训练的生成器和判别器,结合roll-out网络在训练数据上对生成器和判别器进行对抗训练;

在本实施例中,爆破口令集生成模块用于采用训练好的生成器参数生成爆破口令集。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号