CN112667979A - 密码生成方法及装置、密码识别方法及装置、电子设备 - Google Patents

密码生成方法及装置、密码识别方法及装置、电子设备 Download PDF

Info

Publication number
CN112667979A
CN112667979A CN202011643390.6A CN202011643390A CN112667979A CN 112667979 A CN112667979 A CN 112667979A CN 202011643390 A CN202011643390 A CN 202011643390A CN 112667979 A CN112667979 A CN 112667979A
Authority
CN
China
Prior art keywords
password
real
model
character
generative
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.)
Pending
Application number
CN202011643390.6A
Other languages
English (en)
Inventor
吴萌
王占一
齐向东
吴云坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qianxin Technology Group Co Ltd, Secworld Information Technology Beijing Co Ltd filed Critical Qianxin Technology Group Co Ltd
Priority to CN202011643390.6A priority Critical patent/CN112667979A/zh
Publication of CN112667979A publication Critical patent/CN112667979A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Character Discrimination (AREA)

Abstract

本申请提供一种密码生成方法及装置、密码识别方法及装置、电子设备,该密码生成方法包括:获取真实密码;根据已知的高频字符串,切分真实密码,得到真实密码的切分结果;根据真实密码的切分结果,构建真实密码的特征向量;将真实密码的特征向量作为训练样本,对生成式对抗网络进行训练,得到生成式对抗模型;采用生成式对抗模型中的生成模型生成密码。本申请的密码生成方法使得生成的密码更具有真实用户设定密码的习惯,生成的密码更具有通用性。

Description

密码生成方法及装置、密码识别方法及装置、电子设备
技术领域
本申请涉及人工智能技术领域,特别涉及一种密码生成方法及装置、密码识别方法及装置、电子设备、计算机可读存储介质。
背景技术
在社会的不断发展过程中,密码一直以来都是人们流行的身份验证方法,人们对密码的使用已经有几千年的历史。最主要的原因在于密码本身易于实施,不需要特殊的硬件或软件,使用成本低,并且用户和开发人员都比较熟悉与密码相关的业务。但是,用户倾向于选择易于猜测的密码,这些密码主要由常见的字符串,如password、123456、iloveyou等及其变体组成。
目前密码猜测工具提供了一种鉴别弱密码的有效方法,密码猜测软件的有效性取决于快速检测大量极有可能为弱密码的能力。代替穷举尝试所有可能的字符组合,密码猜测工具使用字典中的单词和先前的泄露密码作为候选密码。如果用户输入的密码直接是字典中的某个单词,或者先前泄露的密码,则认为用户输入的密码是弱密码。
但是实际用户很少直接用一个单词作为密码,或者仍采用泄露过的密码,故密码猜测工具的密码字典命中率低,包含的密码缺乏通用性。
发明内容
本申请实施例提供了密码生成方法,用以生成更具有通用性的密码。
第一方面,本申请实施例提供了一种密码生成方法,包括:
获取真实密码;
根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果;
根据所述真实密码的切分结果,构建所述真实密码的特征向量;
将所述真实密码的特征向量作为训练样本,对生成式对抗网络进行训练,得到生成式对抗模型;
采用所述生成式对抗模型中的生成模型生成密码。
本申请提供的技术方案以“高频字符串”为基础进行真实密码的切分,根据切分结果生成特征向量,从特征层面进行创新优化,之后将真实密码的特征向量作为训练样本,进行生成式对抗网络的训练,进而采用训练得到的生成式对抗模型中的生成模型生成密码,使得生成的密码更具有真实用户设定密码的习惯,生成的密码更具有通用性。
在一实施例中,在所述根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果之前,所述方法还包括:
根据真实密码库中不同字符序列出现的频率,得到所述高频字符串。
基于不同字符序列的出现频率来确定高频字符串,可以使真实密码的切分结果更符合大众设置密码时的组字习惯,进而提高真实密码的特征向量的准确性。
在一实施例中,所述根据真实密码库中不同字符序列出现的频率,得到所述高频字符串,包括:
对所述真实密码库中的真实密码以字符为单位进行切分;
统计任意两个连续字符构成的字符序列的出现频率,选取出现频率最高的字符序列作为词,构建字词表;
在所述出现频率最高的字符序列的基础上,增加下一字符,得到新的字符序列,每次选取出现频率最高的字符序列作为词,更新所述字词表;直到所述子词表中的字词个数大于阈值或者下一最高频率的字符序列的出现次数为设定值;所述字词表中的词作为所述已知的高频字符串。
通过上述方式,可以使高频字符串包含的字符尽可能多且高频字符串出现频率相对较高,更符合大众设置密码时的组字习惯,提高真实密码的特征向量的准确性。
在一实施例中,在所述根据真实密码库中不同字符序列出现的频率,得到所述高频字符串之前,所述方法还包括:
获取初始密码库,
去除所述初始密码库中格式、密码长度或字符不符合预设要求的真实密码,得到所述真实密码库。
通过上述方式,可以对初始密码库进行清洗、筛除,得到更具有价值的真实密码库为后续模型的建立提供数据支撑。
在一实施例中,所述去除所述初始密码库中格式、密码长度或字符不符合预设要求的真实密码,得到所述真实密码库,包括:
所述去除所述初始密码库中格式、密码长度或字符不符合预设要求的真实密码,得到中间密码库;
计算所述中间密码库中任一真实密码的分布量;
将所述分布量小于数量阈值的真实密码划分到第一集合,分布量大于等于所述数量阈值的真实密码划分到第二集合;
从所述第一集合中随机采样形成第一真实密码集,对所述第二集合中的每种真实密码,按所述中间密码库中对应的分布量进行成比例缩减采样,形成第二真实密码集;
将所述第一真实密码集和第二真实密码集汇总,获得所述真实密码库。
通过上述方式,可以解决初始密码库中数据量过多,后续数据处理时间成本过大,以及下采样极大程度改变数据分布的问题,本申请实施例进行分段采样,可以大大降低对真实密码库中的数据分布的影响,且数据量不会过大,提高训练得到的模型的准确性。
在一实施例中,所述根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果,包括:
根据已知的高频字符串,切分所述真实密码,得到单个字符和/或由多个字符构成的字符串。
根据“高频字符串”进行真实密码的切分,基于真实密码的不同,可以得到不同的切分结果,后续可以基于切分结果构建特征向量,可以提高特征向量的准确性。
在一实施例中,所述根据所述真实密码的切分结果,构建所述真实密码的特征向量,包括:
若所述真实密码的切分结果包括单个字符和由多个字符构成的字符串;根据所述单个字符的特征值和所述字符串的特征值,拼接形成所述真实密码的特征向量。
基于单个字符的特征值和字符串的特征值,得到真实密码的特征向量,可以提高特征向量的准确性,进而提高后续训练得到的模型的准确性。
在一实施例中,将所述真实密码的特征向量作为训练样本,对生成式对抗网络进行训练,得到生成式对抗模型,包括:
通过所述生成式对抗网络的生成器生成伪密码的特征向量;所述生成器是所述生成模型的中间模型或初始模型;
将所述伪密码的特征向量和真实密码的特征向量分别作为所述生成式对抗网络的判别器的输入,获得所述判别器输出的密码真实性概率值;
根据所述判别器输出的密码真实性概率值,交替优化所述生成器和判别器的网络参数,直到网络收敛,得到所述生成式对抗模型。
通过上述方式训练得到的生成式对抗模型,其中的生成模型可以生成接近真实密码的密码,提高模型的准确性。
在一实施例中,将所述伪密码的特征向量和真实密码的特征向量分别作为所述生成式对抗网络的判别器的输入,获得所述判别器输出的密码真实性概率值,包括:
将所述伪密码的特征向量与构成所述伪密码的字符类别进行拼接后,作为所述生成式对抗网络的判别器的输入,获得所述判别器输出的所述伪密码的密码真实性概率值;
将所述真实密码的特征向量与构成所述真实密码的字符类别进行拼接后,作为所述生成式对抗网络的判别器的输入,获得所述判别器输出的所述真实密码的密码真实性概率值;
采用所述生成式对抗模型中的生成模型生成密码,包括:
将指定字符类别和随机噪声作为所述生成式对抗模型中生成模型的输入,获得所述生成模型输出的对应所述指定字符类别的密码特征向量;
将所述密码特征向量中每一维的特征值转换成相应的字符或字符串进行输出。
上述实施例中,对网络架构进行创新,引入字符类别,从而可以按需生成指定类别的密码,适应多种不同场景的需求。
在一实施例中,所述通过所述生成式对抗网络的生成器生成伪密码的特征向量,包括:
将任一字符类别和随机噪声作为所述生成式对抗网络的生成器的输入,获得所述生成器输出的伪密码的特征向量。
上述实施例中,在生成器的训练阶段,生成器的输入引入字符类别,从而使后续训练得到的生成模型可以基于类别需求,生成不同类别的密码。
在一实施例中,在所述采用所述生成式对抗模型中的生成模型生成密码之后,所述方法还包括:
将所述生成模型生成的密码加入仿真密码集,并对所述仿真密码集进行去重,得到目标密码集。
上述实施例,可以避免最终生成的目标密码集存在重复的密码。
第二方面,本申请实施例提供了一种密码生成方法,包括:
获取真实密码;
根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果;
根据所述真实密码的切分结果,构建所述真实密码的特征向量;
将所述真实密码的特征向量以及构成所述真实密码的字符类别作为训练样本,对生成式对抗网络进行训练,得到生成式对抗模型;
将指定字符类别作为输入,采用所述生成式对抗模型中的生成模型生成所述指定字符类别对应的密码。
上述实施例中,对生成式对抗网络的架构进行改进,生成式对抗模型的训练引入字符类别,从而使后续训练得到的生成模型可以基于类别需求,生成不同类别的密码。
第三方面,本申请实施例提供了一种密码生成方法,包括:
获取随机噪声;
将所述随机噪声作为输入,通过已训练的生成式对抗模型中的生成模型,生成密码;
其中,所述生成式对抗模型是通过将真实密码的特征向量作为训练样本,训练得到的;所述真实密码的特征向量是根据已知的高频字符串,对所述真实密码进行切分,并根据切分结果生成的。
通过上述方法生成的密码,符合大众用户的密码设定习惯,通用性强,具有更大的利用价值。
在一实施例中,所述将随机噪声作为输入,通过已训练的生成式对抗模型中的生成模型,生成密码,包括:
将所述随机噪声和指定字符类别作为所述生成式对抗模型中生成模型的输入,获得所述生成模型输出的对应所述指定字符类别的密码特征向量;
将所述密码特征向量中每一维的特征值转换成相应的字符或字符串进行输出。
通过上述方式可以按需生成指定类别的密码,符合不同场景的需求。
第四方面,本申请实施例提供了一种密码的识别方法,包括:
获取待识别密码;
判断所述待识别密码是否与仿真密码集中的任一密码相同,根据判断结果得到所述待识别密码的识别结果;
其中,所述仿真密码集中的密码通过已训练的生成式对抗模型中的生成模型生成的;
所述生成式对抗模型是通过将真实密码的特征向量作为训练样本,训练得到的;所述真实密码的特征向量是根据已知的高频字符串,对所述真实密码进行切分,并根据切分结果生成的。
通过上述方式,可以进行弱密码的识别,提高安全性。
第五方面,本申请实施例提供了一种密码的生成装置,包括:
密码获取模块,用于获取真实密码;
密码切分模块,用于根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果;
特征提取模块,用于根据所述真实密码的切分结果,构建所述真实密码的特征向量;
模型训练模块,用于将所述真实密码的特征向量作为训练样本,对生成式对抗网络进行训练,得到生成式对抗模型;
密码生成模块,用于采用所述生成式对抗模型中的生成模型生成密码。
第六方面,本申请实施例提供了一种密码的生成装置,包括:
密码获取模块,用于获取真实密码;
密码切分模块,用于根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果;
特征提取模块,用于根据所述真实密码的切分结果,构建所述真实密码的特征向量;
模型训练模块,用于将所述真实密码的特征向量以及构成所述真实密码的字符类别作为训练样本,对生成式对抗网络进行训练,得到生成式对抗模型;
密码生成模块,用于将指定字符类别作为输入,采用所述生成式对抗模型中的生成模型生成所述指定字符类别对应的密码。
第七方面,本申请实施例提供了一种密码生成装置,包括:
噪声获取模块,用于获取随机噪声;
密码生成模块,用于将所述随机噪声作为输入,通过已训练的生成式对抗模型中的生成模型,生成密码;
其中,所述生成式对抗模型是通过将真实密码的特征向量作为训练样本,训练得到的;所述真实密码的特征向量是根据已知的高频字符串,对所述真实密码进行切分,并根据切分结果生成的。
第八方面,本申请实施例提供了一种密码的识别装置,包括:
密码获取模块,用于获取待识别密码;
密码识别模块,用于判断所述待识别密码是否与仿真密码集中的任一密码相同,根据判断结果得到所述待识别密码的识别结果;
其中,所述仿真密码集中的密码通过已训练的生成式对抗模型中的生成模型生成;
所述生成式对抗模型是通过将真实密码的特征向量作为训练样本,训练得到的;所述真实密码的特征向量是根据已知的高频字符串,对所述真实密码进行切分,并根据切分结果生成的。
第九方面,本申请实施例提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述密码生成方法或者执行上述密码的识别方法。
第十方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述密码生成方法或者执行上述密码的识别方法。
第十一方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行上述密码生成方法或密码识别方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1为本申请一实施例提供的电子设备的结构示意图;
图2是本申请实施例提供的密码生成方法的流程示意图;
图3是本申请实施例提供的特征提取的原理示意图;
图4是本申请实施例提供的生成式对抗网络的架构示意图;
图5是本申请另一实施例提供的密码生成方法的流程示意图;
图6是图5对应实施例中步骤200的细节流程图;
图7是统计的密码长度分布图;
图8是本申请实施例提供的数据采样的流程示意图;
图9是本申请实施例提供的生成式对抗网络的训练过程示意图;
图10是本申请另一实施例提供的生成式对抗网络的架构示意图;
图11是本申请另一实施例提供的密码生成方法的完整流程示意图;
图12是本申请另一实施例提供的密码生成方法的流程示意图;
图13是本申请另一实施例提供的密码生成方法的流程示意图;
图14是本申请实施例提供的一种密码的识别方法的流程示意图;
图15是本申请实施例提供的一种密码生成装置的框图;
图16本申请另一实施例提供的一种密码生成装置的框图;
图17本申请另一实施例提供的一种密码的识别装置的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1为本申请实施例提供的电子设备的结构示意图。该电子设备100可以用于执行下文中本申请实施例提供的密码生成方法或者本申请实施例的密码识别方法。如图1所示,该电子设备100包括:一个或多个处理器102、一个或多个存储处理器可执行指令的存储器104。其中,所述处理器102被配置为执行本申请下述实施例提供的密码生成方法或者密码识别方法。
所述处理器102可以是网关,也可以为智能终端,或者是包含中央处理单元(CPU)、图像处理单元(GPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子设备100中的其它组件的数据进行处理,还可以控制所述电子设备100中的其它组件以执行期望的功能。
所述存储器104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的密码生成方法。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
在一实施例中,图1所示电子设备100还可以包括输入装置106、输出装置108以及数据采集装置110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备100也可以具有其他组件和结构。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。所述数据采集装置110可以采集对象的图像,并且将所采集的图像存储在所述存储器104中以供其它组件使用。示例性地,该数据采集装置110可以为摄像头。
在一实施例中,用于实现本申请实施例的密码生成方法或者密码识别方法的示例电子设备100中的各器件可以集成设置,也可以分散设置,诸如将处理器102、存储器104、输入装置106和输出装置108集成设置于一体,而将数据采集装置110分离设置。
在一实施例中,用于实现本申请实施例的密码生成方法或者密码识别方法的示例电子设备100可以被实现为诸如笔记本电脑、台式电脑、服务器、服务器集群。
本申请实施例提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行下述密码生成方法或密码识别方法。
下面对密码生成方法和密码识别方法详细展开。
图2为本申请实施例提供的密码生成方法的流程示意图。该方法可以由上述电子设备100执行,如图2所示,该方法包括以下步骤S210-步骤S250。
步骤S210:获取真实密码。
其中,真实密码是相对下文的伪密码和仿真密码集中的密码而言的,可以为密码字典、网络中公开的之前被实际用户使用过的密码。为进行区分,现有弱密码库中存在的密码可以认为是真实密码。而下文通过生成式对抗模型生成的密码可以称为密码,或者,在被正式密码使用前,先被添加至仿真密码集(此时可被称为仿真密码),待经过特定处理后,作为密码使用。在生成式对抗模型训练完成之前,通过未训练完成的生成式对抗网络生成的密码可以称为伪密码。
在一实施例中,真实密码可以从现有的弱密码库中获取,弱密码库可以提前存储在本地,也可以从外部设备获取得到。一般,能被猜测到的密码可以称为弱密码,弱密码库可以包括字典中的单词和先前泄露的密码。需要说明的是,本实施例中的弱密码只是真实密码的一种,真实密码并不限于弱密码,也可以包含已经被披露的强密码,原则上凡是被用户实际使用过的密码都可以作为此处的真实密码。基于强密码的获取途径较少,而弱密码获取相对容易,因此,在实际使用中,往往获取大量的弱密码作为真实密码。
步骤S220:根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果。
其中,已知的高频字符串是指已知的出现频率较高的字符序列,例如,出现频率大于阈值的字符序列可以认为是高频字符串。阈值大小可以根据经验设定,在一实施例中可以认为已知哪些字符序列属于高频字符串。,假设在弱密码库中“low”、“est”出现频率较高,则“low”、“est”可以称为高频字符串。
根据真实密码的不同,切分结果不同。例如,切分结果可能包含单个字符和由多个字符构成的字符串。切分结果可能包括由多个字符构成字符串。切分结果可能包括多个字符。
举例来说,假设真实密码为“newest”,由于“est”为已知的高频字符串则可以切分为“n/e/w/est”四个部分;即可以将真实密码切分得到单个字符“n”、“e”、“w”和由多个字符构成的高频字符串“est”。
举例来说,假设真实密码为“low”,已知的高频字符串有“low”,则真实密码“low”可以切分为一个整体,得到的切分结果为字符串“low”。
举例来说,假设真实密码为“lower”,已知的高频字符串有“low”,则真实密码“lower”可以切分为包含多个字符的字符串“low”以及单个字符“e”、“r”。
举例来说,假设真实密码为“lowest”,已知的高频字符串有“low”、“est”则真实密码“lowest”可以切分为包含多个字符的字符串“low”、以及包含多个字符的字符串“est”。
举例来说,真实密码是“abcd”,不包含已知的高频字符串,则可以将真实密码切分为单个字符“a”、“b”、“c”、“d”。
步骤S230:根据所述真实密码的切分结果,构建所述真实密码的特征向量。
其中,特征向量是指用向量形式来表征真实密码的字符特征。真实密码不同,则其特征向量也不同。
在一实施例中,假设切分结果包括单个字符和由多个字符构成的字符串,则真实密码的特征向量可以是单个字符的特征值和字符串的特征值拼接得到。
例如真实密码“lower”可以切分为包含多个字符的字符串“low”以及单个字符“e”、“r”。则可以将字符串“low”的特征值、单个字符“e”的特征值、单个字符“r”的特征值,按照真实密码中字符串和字符的先后顺序,按序拼接得到真实密码“lower”的特征向量。
其中,字符或字符串的特征值可以用于字符或字符串的ID(序号)表示。
同理,假设切分结果仅有字符或字符串,则可以仅根据字符或字符串的特征值,得到真实密码的特征向量。
图3是特征提取的原理示意图。如图3所示,对真实密码按字符进行切分,如图3中存在4个真实密码low、lower、newest、widest,经过步骤①形成l/o/w、l/o/w/e/r、n/e/w/e/s/t、w/i/d/e/s/t(“/”表示切分),被切分成一个个字符;经过步骤②统计不同字符序列的出现频率,可知low和est是寻找的出现频率较高的高频字符串。故最后切分方式为low、low/e/r、n/e/w/est、w/i/d/est,步骤③基于切分结果得到的特征向量可以作为训练样本输入网络模型(即生成式对抗网络)。
提取特征向量的主要作用是作为后续生成式对抗网络的输入,以字符为单位生成特征向量,会造成易生成随机密码的问题,而本申请实施例根据已知的高频字符串去切分真实密码,生成特征向量,可以进一步提升模型生成的密码具有一定的语义信息,使之能更好地满足人们在实际密码使用场景下的倾向或习惯,在特征层面进行了优化创新。
步骤S240:将所述真实密码的特征向量作为训练样本,对生成式对抗网络进行训练,得到生成式对抗模型。
为进行区分,生成式对抗网络是指训练完成之前的网络模型,可以包括未训练完成的生成器和判别器。生成式对抗模型是指由生成式对抗网络训练完成得到的网络模型,可以包括训练完成的生成模型和训练完成的判别模型。为进行区分,生成器训练完成后称为生成模型,判别器训练完成后称为判别模型。
其中,生成式对抗模型可以由生成式对抗网络通过大量训练样本,训练得到。一个真实密码的特征向量可以作为一个训练样本。将训练样本作为生成式对抗网络的判别器的输入,对生成式对抗网络进行训练,自动化的学习大量密码的多维度、高阶性特征,得到最优的生成器以在下一步骤生成密码。使得生成的密码的模式更具多样性,且泛化性和通用性较好,降低整体的开销,易广泛应用于实际的使用场景中。
生成式对抗网络(GAN):是非监督式学习的一种方法,生成器(Generator,以下简称G)从潜在空间(latent space)中随机取样作为输入,其输出结果需要尽量模仿训练集中的真实样本,尽可能地欺骗判别器。判别器(Discriminator,以下简称D)的输入则为训练样本(即真实密码)或生成器的输出,其目的是将生成网络的输出从真实密码中尽可能分辨出来。两个网络相互对抗、不断调整参数,最终目的是使判别器无法判断生成器的输出结果是否真实。
在一实施例中,生成式对抗网络中的生成器G和判别器D可以是全连接神经网络(FCN)、卷积神经网路(CNN)、递归神经网络(RNN)、长短期记忆模型(LSTM)等结构。其中,生成式对抗网络的架构可以是如图4所示的PassGAN网络结构。如图4所示,生成式对抗网络包括生成器G和判别器D两部分,为了学习更深层次的特征,提高模型的能力,结构中使用深层次的卷积网络,即5层Residual Block(残差块),其中每个Residual Block中利用残差结构Shortcut Connection(捷径连接)来有效防止层数加深导致的梯度消失问题。
其中,生成器的输入为随机噪声(即随机数),判别器的输入为训练样本或生成器的输出,判别器的输出用于指示判别器的输入属于训练样本的概率,即属于真实密码的概率。将大量训练样本作为判别器的输入,反复优化迭代生成器和判别器,目标是使判别器可以准确判断出训练样本,即训练样本对应输出的概率尽可能接近1,生成器生成的密码使得判别器无法判别真伪,即生成器的输出作为判别器的输入时,输出的概率尽可能接近0.5,最后得到最优的生成式对抗网络即为训练完成的生成式对抗模型。
步骤S250:采用所述生成式对抗模型中的生成模型生成密码。
生成式对抗模型包括训练完成的生成模型和判别模型。将随机噪声作为生成模型的输入,即可获得生成模型的输出。生成模型的输出可以认为是密码的特征向量,通过将每一维的特征值转换为相应的字符或字符串,即可得到所需的密码。
本申请实施例以“高频字符串”为基础进行真实密码的切分,根据切分结果生成特征向量,从特征层面进行创新优化,将真实密码的特征向量作为训练样本,进行生成式对抗网络的训练,进而采用训练得到的生成式对抗模型中的生成模型生成密码,使得生成的密码更具有真实用户设定密码的习惯,生成的密码更具有实际使用价值,
在一实施例中,如图5所示,在上述步骤S220之前,本申请实施例提供的方法还包括步骤S200:根据真实密码库中不同字符序列出现的频率,得到所述高频字符串。
其中,真实密码库可以是上文提到的弱密码库,真实密码库中的密码可以称为真实密码,步骤S210可以从真实密码库中获取真实密码。字符序列是指多个字符以一定先后顺序进行排列。例如,“low”可以认为是一个字符序列、“lo”可以认为是一个字符序列,“lowe”可以认为是一个字符序列。假设有100个真实密码,字符序列“low”出现次数为50次,则出现的频率可以认为是50%,高频字符串可以认为是出现频率较高的字符序列。根据需要,可以设定一个阈值,如果字符序列出现的频率大于阈值,则可以认为是高频字符串。
基于不同字符序列的出现频率来确定高频字符串,可以使真实密码的切分结果更符合大众设置密码时的组字习惯,进而提高真实密码的特征向量的准确性。
在一实施例中,如图6所示,上述步骤200具体包括以下步骤S201-步骤S203。
步骤S201:对所述真实密码库中的真实密码以字符为单位进行切分。
其中,以字符为单位进行切分是指将真实密码切分为一个个字符。
步骤S202:统计任意两个连续字符构成的字符序列的出现频率,选取出现频率最高的字符序列作为词,构建字词表;
举例来说,假设真实密码库中在4个真实密码low、lower、newest、widest,可以先将任意两个连续字符两两组合,形成多个字符序列,即lo组合,ow组合,we组合,er组合,ne组合,ew组合,we组合、es组合依次类推,形成大量由两个连续字符构成的字符序列。以这四个密码为例,lo出现两次,es出现两次,其他序列均只出现一次,故lo和es可以认为是出现频率最高的字符序列,lo和es可以作为词。基于词,则真实密码的切分方式为lo/w,lo/w/e/r,n/e/w/es/t、w/i/d/es/t。此时可以得到字词表包含字符和词,词有lo和es,字符有w,e,r、n、t、i、d。
步骤S203:在所述出现频率最高的字符序列的基础上,增加下一字符,得到新的字符序列,每次选取出现频率最高的字符序列作为词,更新所述字词表;直到所述子词表中的字词个数大于阈值或者下一最高频率的字符序列的出现次数为设定值;所述字词表中的词作为所述已知的高频字符串。
在真实密码的切分方式为lo/w,lo/w/e/r,n/e/w/es/t、w/i/d/es/t的基础上,可以将lo与w组合得到新的字符序列low,进一步的,we组合,er组合,ne组合,ew组合,wes组合、est组合、wi组合、id组合、des组合、est组合。
很显然,low出现2次,est出现两次,可以认为是出现频率最高的字符序列,故low可以作为词,est可以作为词,此时真实密码的切分方式为low、low/e/r、n/e/w/est、w/i/d/est,此时字词表包含的词有low和est,字符有e、r、n、w、i、d。
之后,发现low与e组合、er,ne、ew、west、wi、id、dest等字符序列均只出现了一次,即此时最高频率的字符系列的出现次数为1,在一实施例中设定值可以为1,故停止增加下一字符,此时字词表中的词low和est可以认为是已知的高频字符串。在其他实施例中,如果字词表中的字词个数大于阈值,即字词表中的字词较多时,也可停止,将此时字词表中的词作为已知的高频字符串。
在一实施例中,在上述步骤S200之前,可以先获取初始密码库,对初始密码库进行预处理,得到真实密码库。初始密码库可以是现有的弱密码库。预处理包括数据过滤:即去除初始密码库中格式、密码长度或字符不符合预设要求的真实密码,得到真实密码库。
其中,去除格式不符合预设要求的真实密码可以通过检测真实密码的数据格式,过滤掉字段中存在缺失或错误的数据,对应的字段信息如下表1所示。
表1密码数据集字段
字段英文名 字段中文名
email 邮箱
password 密码
举例来说,如果字段“email”或“邮箱”相应的数据丢失或错误,则相应的密码去除。
其中,去除字符不符合预设要求的真实密码是指判断真实密码的每个字符是否为95个可打印的ASCII码之一,如果不是,则该真实密码进行去除。
图7是统计的密码长度分布图。从图7中可以看出,常用的密码长度的范围为5个字符到18个字符之间,故去除字符长度不符合预设要求的真实密码可以是去除字符长度小于5或字符长度大于18的真实密码。
在一实施例中,初始密码库去除格式、字符和字符长度不符合要求的真实密码后,得到的密码库可以作为中间密码库。在中间密码库的基础上进行下采样操作。从而解决中间密码库数据量太大,时间开销成本过大的问题,同时也为了降低随机下采样对真实密码库分布和多样性的影响,本申请实施例引入分段采样的方法,数据采样的具体流程图如下图8所示,包括以下步骤S801-步骤S804。
步骤S801:计算所述中间密码库中任一真实密码的分布量。
其中,分布量是指某条真实密码在真实密码库中的出现次数。可以统计中每条真实密码在真实数据库中的出现次数。
步骤S802:将所述分布量小于数量阈值的真实密码划分到第一集合,分布量大于等于所述数量阈值的真实密码划分到第二集合;
分布量小于数量阈值的真实密码,即出现次数少的真实密码,划分到同一个集合中,称为第一集合。分布量大于等于数量阈值的真实密码,即出现次数多的真实密码,划分到另一集合,称为第二集合。即中间密码库被分为第一集合和第二集合。
步骤S803:从所述第一集合中随机采样形成第一真实密码集,对所述第二集合中的每种真实密码,按所述中间密码库中对应的分布量进行成比例缩减采样,形成第二真实密码集。
其中,第一真实密码集是从第一集合中随机获取多个真实密码构成的集合。第二真实密码集是指对第二集合进行缩减采样获得的密码集合。举例来说,假设第二集合中密码“123456”具有2万条,预设比例为0.01,则可以从第二集合中提取200条密码“123456”放入第二真实密码集中,同理,假设第二集合中密码“666888”具有1万条,预设比例为0.01,则可以从第二集合中提取100条密码“666888”放入第二真实密码集中,,以此类推。使得第二真实密码集极大地保持初始密码库中高频密码的分布,从而降低对样本分布的影响。
步骤S804:将所述第一真实密码集和第二真实密码集汇总,获得真实密码库。
真实密码库包括第一真实密码集和第二真实密码集。在一实施例中,上文中高频字符串的统计可以基于采样得到的真实密码库进行。
在一实施例中,如图9所示,生成式对抗网络的训练过程具体包括:以下步骤S910-步骤S930。
步骤S910:通过所述生成式对抗网络的生成器生成伪密码的特征向量。
其中,生成式对抗网络是指未训练完成的网络模型,生成器是指未训练完成的生成式对抗网络中的生成网络,故生成器可以认为是生成模型的中间模型或初始模型;伪密码的特征向量是指由未训练完成的生成器生成的密码的特征向量。与真实密码的特征向量进行区分。
步骤S920:将所述伪密码的特征向量和真实密码的特征向量分别作为所述生成式对抗网络的判别器的输入,获得所述判别器输出的密码真实性概率值。
此处判别器是指未训练完成的生成式对抗网络中的未训练完成的判别网络。密码真实性概率值用于表征输入的特征向量属于训练样本的可能性大小,最大值为1,最小值为0。
步骤S930:根据所述判别器输出的密码真实性概率值,交替优化所述生成器和判别器的网络参数,直到网络收敛,得到所述生成式对抗模型。
其中,交替优化是指先固化生成器的参数,优化判别器的参数,使训练样本对应的密码真实性概率值尽可能大,将生成器生成的结果作为判别器的输入,使判别器对应输出的密码真实性概率值尽可能小。
之后固化判别器的参数,调整生成器的参数,将生成器生成的结果作为判别器的输入,使判别器对应输出的密码真实性概率值尽可能大。
在一实施例中,基于上述要求,可以构建损失函数,通过交替优化生成器和判别器的网络参数,直到损失函数满足预设条件,例如损失函数稳定,可以认为网络收敛。
在另一实施例中,通过交替优化生成器和判别器的网络参数,直到生成式对抗模型输出结果的误差达到设定误差范围,例如误差小于目标值(即可接受的误差程度),可以认为网络收敛。生成式对抗网络在网络收敛后,可以认为训练完成,得到生成式对抗模型。
在一实施例中,为了实现生成指定类型密码的需求,生成式对抗网络的架构可以如图10所示,在生成器和判别器的输入中引入标签信息。其中,标签信息可以是字符类别,例如,纯数字的字符类别用于111表示,纯字母的字符类别用222表示,数字+字母的字符类别用333表示,以此类推。
故上述步骤S910可以是将任一字符类别和随机噪声作为所述生成式对抗网络的生成器的输入,获得所述生成器输出的伪密码的特征向量。上述步骤S920可以是将所述伪密码的特征向量与构成伪密码的字符类别进行拼接后,作为所述生成式对抗网络的判别器的输入,获得所述判别器输出的所述伪密码的密码真实性概率值;将所述真实密码的特征向量与构成真实密码的字符类别进行拼接后,作为所述生成式对抗网络的判别器的输入,获得所述判别器输出的所述真实密码的密码真实性概率值。
将字符类别与特征向量进行拼接后作为生成式对抗网络的输入,可以使得生成式对抗网络挖掘出真实密码和伪密码的深层次特征,学习到字符类别和输入的密码之间的联系,从而使训练完成的生成模型可以按需生成不同类别的密码。
在一实施例中,可以将指定字符类别和随机噪声作为生成式对抗模型中生成模型的输入,获得所述生成模型输出的对应所述指定字符类别的密码特征向量;将所述密码特征向量中每一维的特征值转换成相应的字符或字符串进行输出,得到所需类别的密码。
其中,指定字符类别是指所有字符类别中的任意一个字符类别。通过生成式对抗模型生成的密码可以称为仿真密码。密码特征向量是指指定字符类别的仿真密码的特征向量。例如,假设指定字符类别是“111”,即需要生成纯数字的仿真密码,则可以将“111”与随机噪声(即随机值)作为训练完成的生成式对抗模型中生成模型的输入,获得生成模型输出的密码特征向量。该密码特征向量可以认为是纯数字的仿真密码的特征向量。
其中,密码特征向量中的每一维的特征值可以代表字符或字符串的ID,故根据每一维的特征值,可以找到相应ID的字符或字符串,按照特征值的顺序,将字符和字符串按需排列得到仿真密码。
本申请上述实施例从网络架构层面进行创新优化,引入字符类别,对模型进行改进,使得改进后的模型具有按需生成不同类别密码的能力,相比之前能更好地满足实际使用中特定场景下的需求。
以下表2和表3分别给出了不同的场景下通过生成模型G*生成的仿真密码集样例,其中下表2列出的是为了更好地满足实际使用场景下人们使用密码的习惯或倾向,从特征层面创新优化后模型生成的部分密码样例,从中可见生成的密码基本都是由具有语义信息的单词,如lovely、hello、windows等或具有特殊含义的数字,如1992(年份)进行组成。
表2密码样例表
Figure BDA0002875182640000251
Figure BDA0002875182640000261
下表3列出的是为了满足按需生成指定类别密码的特定场景,从模型结构层面改进模型后生成的五种类别的部分密码样例,从中可见各类生成的密码基本都符合每类密码的特点,如纯数字类生成的密码都是由0-9的数字所组成等。
表3可控密码样例表(部分)
Figure BDA0002875182640000262
图11是本申请另一实施例提供的密码生成方法的完整流程示意图。如图11所示,主要步骤如下:
(1)预处理,包括数据过滤、数据采样、特征提取和数据划分四个子步骤。
其中,数据过滤是指去除初始密码库中格式、密码长度或字符不符合预设要求的真实密码。数据采样过程参见上述步骤S801-步骤S804,即将初始密码库进行数据过滤后得到的中间密码库进行下采样。
特征提取是指提取真实密码的特征向量。具体可以根据已知的出现频率较高的高频字符串,切分真实密码,根据切分结果构建真实密码的特征向量。
数据划分是指将所有真实密码的特征向量的集合划分为训练样本集和测试样本集,训练样本集用于训练得到生成式对抗模型。而测试样本集可以用于评估生成模型生成的密码的通用性。即生成模型输出的密码特征向量是否会出现在测试样本集中,从而确定生成模型的准确性。
(2)训练,即利用数据划分得到的训练样本集对生成式对抗网络进行迭代训练,得到生成式对抗模型。
具体可以通过将训练样本集作为生成式对抗网络中判别器的输入,交替优化生成器和判别器的网络参数,直到模型收敛。
(3)生成,包括仿真密码生成和密码去重两个子步骤。仿真密码生成即利用训练得到的生成式对抗模型中的生成模型生成仿真密码集,并对仿真密码集进行去重,得到目标密码集。
在一实施例中,可以将生成模型生成的密码加入仿真密码集,并对所述仿真密码集进行去重,得到目标密码集。
其中,仿真密码集是指生成模型生成的密码的集合,为进行区分,生成模型生成的密码可称为仿真密码,故仿真密码的集合可以称为仿真密码集。去重是指将仿真密码集中出现多次的仿真密码仅保留一个,为进行区分,去重后的仿真密码集称为目标密码集,从而避免仿真密码重复入库。
为了解决当生成的仿真密码达到上亿量级时,导致去重阶段耗时成本较大的问题,可以引入分布式的处理方法。具体流程如下所示:
a)将生成的仿真密码集上传至HDFS(分布式文件系统)集群,HDFS包括多个计算节点,可以对任务并行处理。
b)利用MapReduce技术对仿真密码集进行简单的去重任务,形成去重后新的密码集S(即目标密码集);具体的,可以将仿真密码集切分成多个数据块分发给多个map节点,多个map节点并行执行去重任务,之后汇总多个map节点去重后的结果,分发给多个reduce节点,多个reduce节点并行执行去重任务,之后汇总多个reduce节点的去重结果,得到目标密码集。
c)将密码集S从集群上拉取下来,输入数据库中进行存储,以作为后续暴力破解、弱密码检测等实际场景的数据来源。
图12是本申请另一实施例提供的密码生成方法的流程示意图。如图12所示,该方法包括以下步骤S1110-步骤S1120。
步骤S1110:获取真实密码;
步骤S1120:根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果;
步骤S1130:根据所述真实密码的切分结果,构建所述真实密码的特征向量;
步骤S1140:将所述真实密码的特征向量以及字符类别作为训练样本,对生成式对抗网络进行训练,得到生成式对抗模型;
步骤S1150:将指定字符类别作为输入,采用所述生成式对抗模型中的生成模型生成所述指定字符类别对应的密码。
其中,上述步骤S1110-步骤S1130可以参见图2对应实施例中步骤S210-步骤S230的描述。上述步骤S1130和步骤S1140的具体细节可以参见图10以及图10对应实施例中关于生成式对抗网络的训练过程。
应理解,上述本申请实施例中描述了先训练得到生成式对抗模型,之后再使用该生成式对抗模型生成密码的方法。可选的,作为一个实施例,也可以不用再训练该得到该生成式对抗模型,即该对抗式网络模型是可以预先获取的,例如可以是预先训练得到的,或者该对抗式网络模型是从第三方获取的,本申请实施例并不限于此。下面结合图13描述本申请实施例在已经预先获取对抗式网络模型后生成密码的方法。
图13是本申请另一实施例提供的密码生成方法的流程示意图。如图13所示,该方法包括以下步骤S1210-步骤S1220。
步骤S1210:获取随机噪声。
其中,随机噪声可以是随机数。
步骤S1220:将所述随机噪声作为输入,通过已训练的生成式对抗模型中的生成模型,生成密码。
其中,所述生成式对抗模型是通过将真实密码的特征向量作为训练样本,训练得到的;所述真实密码的特征向量是根据已知的高频字符串,对所述真实密码进行切分,并根据切分结果生成的。
在一实施例中,上述步骤S1220具体包括:将所述随机噪声和指定字符类别作为所述生成式对抗模型中生成模型的输入,获得所述生成模型输出的对应所述指定字符类别的密码特征向量;将所述密码特征向量中每一维的特征值转换成相应的字符或字符串进行输出,即可得到所需的包含指定字符类别的密码。
生成式对抗模型的训练过程以及密码的生成过程具体可以参见上文。在此不再赘述。
前文结合图2至图13描述了本申请实施例的密码生成方法,下面结合图14描述密码的识别方法,密码的识别方法可以基于上文中生成模型生成的密码,在实际应用中进行弱密码的识别。
图14本申请实施例提供的一种密码的识别方法的流程示意图,如图14所示,该方法包括:步骤S1310-步骤S1320。
步骤S1310:获取待识别密码。
其中,待识别密码可以是用户输入的密码。例如,用户注册账号时输入的密码。
步骤S1320:判断所述待识别密码是否与仿真密码集中的任一密码相同,根据判断结果得到所述待识别密码的识别结果。
其中,所述仿真密码集中的密码是通过已训练的生成式对抗模型中的生成模型生成的。
所述生成式对抗模型是通过将真实密码的特征向量作为训练样本,训练得到的;所述真实密码的特征向量是根据已知的高频字符串,对所述真实密码进行切分,并根据切分结果生成的。
生成式对抗模型的训练过程以及生成模型生成密码的过程具体可以参见上文。在此不再赘述。
下述为本申请装置实施例,可以用于执行本申请上述密码生成方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请密码生成方法实施例。
图15本申请实施例提供的一种密码生成装置的框图。如图15所示,该装置包括密码获取模块1410、密码切分模块1420、特征提取模块1430、模型训练模块1440以及密码生成模块1450。
密码获取模块1410,用于获取真实密码;
密码切分模块1420,用于根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果;
特征提取模块1430,用于根据所述真实密码的切分结果,构建所述真实密码的特征向量;
模型训练模块1440,用于将所述真实密码的特征向量作为训练样本,对生成式对抗网络进行训练,得到生成式对抗模型;
密码生成模块1450,用于采用所述生成式对抗模型中的生成模型生成密码。
上述装置中各个模块的功能和作用的实现过程具体详见上述密码生成方法中对应步骤的实现过程,在此不再赘述。
在一实施例中,上述密码生成装置还包括:
高频字符串统计模块,用于根据真实密码库中不同字符序列出现的频率,得到所述高频字符串。
在一实施例中,上述高频字符串统计模块包括:
字符切分单元,用于对所述真实密码库中的真实密码以字符为单位进行切分;
频率统计单元,用于统计任意两个连续字符构成的字符序列的出现频率,选取出现频率最高的字符序列作为词,构建字词表;
词表更新单元,用于在所述出现频率最高的字符序列的基础上,增加下一字符,得到新的字符序列,每次选取出现频率最高的字符序列作为词,更新所述字词表;直到所述子词表中的字词个数大于阈值或者下一最高频率的字符序列的出现次数为设定值;所述字词表中的词作为所述已知的高频字符串。
在一实施例中,上述密码生成装置还包括:
密码库获取模块,用于获取初始密码库;
密码筛选模块,用于去除所述初始密码库中格式、密码长度或字符不符合预设要求的真实密码,得到所述真实密码库。
在一实施例中,上述密码筛选模块包括:
密码过滤单元,用于去除所述初始密码库中格式、密码长度或字符不符合预设要求的真实密码,得到中间密码库;
分布量计算单元,用于计算所述中间密码库中任一真实密码的分布量;
密码分类单元,用于将所述分布量小于数量阈值的真实密码划分到第一集合,分布量大于等于所述数量阈值的真实密码划分到第二集合;
采样单元,用于从所述第一集合中随机采样形成第一真实密码集,对所述第二集合中的每种真实密码,按所述中间密码库中对应的分布量进行成比例缩减采样,形成第二真实密码集;
汇总单元,用于将所述第一真实密码集和第二真实密码集汇总,获得所述真实密码库。
在一实施例中,密码切分模块1420具体用于根据已知的高频字符串,切分所述真实密码,得到单个字符和/或由多个字符构成的字符串。
在一实施例中,特征提取模块1430具体用于:在所述真实密码的切分结果包括单个字符和由多个字符构成的字符串时,根据所述单个字符的特征值和所述字符串的特征值,拼接形成所述真实密码的特征向量。
在一实施例中,模型训练模块1440包括:
生成单元,用于通过所述生成式对抗网络的生成器生成伪密码的特征向量;所述生成器是所述生成模型的中间模型或初始模型;
判别单元,用于将所述伪密码的特征向量和真实密码的特征向量分别作为所述生成式对抗网络的判别器的输入,获得所述判别器输出的密码真实性概率值;
优化单元,用于根据所述判别器输出的密码真实性概率值,交替优化所述生成器和判别器的网络参数,直到网络收敛,得到所述生成式对抗模型。
在一实施例中,判别单元具体用于:将所述伪密码的特征向量与构成所述伪密码的字符类别进行拼接后,作为所述生成式对抗网络的判别器的输入,获得所述判别器输出的所述伪密码的密码真实性概率值;
将所述真实密码的特征向量与构成所述真实密码的字符类别进行拼接后,作为所述生成式对抗网络的判别器的输入,获得所述判别器输出的所述真实密码的密码真实性概率值;
密码生成模块1450具体用于:将指定字符类别和随机噪声作为所述生成式对抗模型中生成模型的输入,获得所述生成模型输出的对应所述指定字符类别的密码特征向量将所述密码特征向量中每一维的特征值转换成相应的字符或字符串进行输出。
在一实施例中,生成单元具体用于:将任一字符类别和随机噪声作为所述生成式对抗网络的生成器的输入,获得所述生成器输出的伪密码的特征向量。
在一实施例中,本申请实施例提供的密码生成装置还包括:
去重模块,用于将所述生成模型生成的密码加入仿真密码集,并对所述仿真密码集进行去重,得到目标密码集。
图15本申请实施例提供的一种密码生成装置的框图。如图15所示,该装置包括密码获取模块1410、密码切分模块1420、特征提取模块1430、模型训练模块1440以及密码生成模块1450。
密码获取模块1410,用于获取真实密码;
密码切分模块1420,用于根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果;
特征提取模块1430,用于根据所述真实密码的切分结果,构建所述真实密码的特征向量;
模型训练模块1440,用于将所述真实密码的特征向量以及构成所述真实密码的字符类别作为训练样本,对生成式对抗网络进行训练,得到生成式对抗模型;
密码生成模块1450,用于将指定字符类别作为输入,采用所述生成式对抗模型中的生成模型生成所述指定字符类别对应的密码。
图16本申请另一实施例提供的一种密码生成装置的框图。如图16所示,该装置包括噪声获取模块1510以及密码生成模块1520。
噪声获取模块1510,用于获取随机噪声。
密码生成模块1520,用于将所述随机噪声作为输入,通过已训练的生成式对抗模型中的生成模型,生成密码。
其中,所述生成式对抗模型是通过将真实密码的特征向量作为训练样本,训练得到的;所述真实密码的特征向量是根据已知的高频字符串,对所述真实密码进行切分,并根据切分结果生成的。
在一实施例中,上述密码生成模块1520具体用于:将所述随机噪声和指定字符类别作为所述生成式对抗模型中生成模型的输入,获得所述生成模型输出的对应所述指定字符类别的密码特征向量;将所述密码特征向量中每一维的特征值转换成相应的字符或字符串进行输出。
图17本申请另一实施例提供的一种密码的识别装置的框图,如图17所示,该装置包括:密码获取模块1610以及密码识别模块1620。
密码获取模块1610,用于获取待识别密码;
密码识别模块1620,用于判断所述待识别密码是否与仿真密码集中的任一密码相同,根据判断结果得到所述待识别密码的识别结果;
其中,所述仿真密码集中的密码是通过已训练的生成式对抗模型中的生成模型生成的;
所述生成式对抗模型是通过将真实密码的特征向量作为训练样本,训练得到的;所述真实密码的特征向量是根据已知的高频字符串,对所述真实密码进行切分,并根据切分结果生成的。
在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (21)

1.一种密码生成方法,其特征在于,包括:
获取真实密码;
根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果;
根据所述真实密码的切分结果,构建所述真实密码的特征向量;
将所述真实密码的特征向量作为训练样本,对生成式对抗网络进行训练,得到生成式对抗模型;
采用所述生成式对抗模型中的生成模型生成密码。
2.根据权利要求1所述的方法,其特征在于,在所述根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果之前,所述方法还包括:
根据真实密码库中不同字符序列出现的频率,得到所述高频字符串。
3.根据权利要求2所述的方法,其特征在于,所述根据真实密码库中不同字符序列出现的频率,得到所述高频字符串,包括:
对所述真实密码库中的真实密码以字符为单位进行切分;
统计任意两个连续字符构成的字符序列的出现频率,选取出现频率最高的字符序列作为词,构建字词表;
在所述出现频率最高的字符序列的基础上,增加下一字符,得到新的字符序列,每次选取出现频率最高的字符序列作为词,更新所述字词表;直到所述字词表中的字词个数大于阈值或者下一最高频率的字符序列的出现次数为设定值;所述字词表中的词作为所述已知的高频字符串。
4.根据权利要求2所述的方法,其特征在于,在所述根据真实密码库中不同字符序列出现的频率,得到所述高频字符串之前,所述方法还包括:
获取初始密码库;
去除所述初始密码库中格式、密码长度或字符不符合预设要求的真实密码,得到所述真实密码库。
5.根据权利要求4所述的方法,其特征在于,所述去除所述初始密码库中格式、密码长度或字符不符合预设要求的真实密码,得到所述真实密码库,包括:
去除所述初始密码库中格式、密码长度或字符不符合预设要求的真实密码,得到中间密码库;
计算所述中间密码库中任一真实密码的分布量;
将所述分布量小于数量阈值的真实密码划分到第一集合,分布量大于等于所述数量阈值的真实密码划分到第二集合;
从所述第一集合中随机采样形成第一真实密码集,对所述第二集合中的每种真实密码,按所述中间密码库中对应的分布量进行成比例缩减采样,形成第二真实密码集;
将所述第一真实密码集和第二真实密码集汇总,获得所述真实密码库。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果,包括:
根据已知的高频字符串,切分所述真实密码,得到单个字符和/或由多个字符构成的字符串。
7.根据权利要求6所述的方法,其特征在于,所述根据所述真实密码的切分结果,构建所述真实密码的特征向量,包括:
若所述真实密码的切分结果包括单个字符和由多个字符构成的字符串;根据所述单个字符的特征值和所述字符串的特征值,拼接形成所述真实密码的特征向量。
8.根据权利要求1所述的方法,其特征在于,将所述真实密码的特征向量作为训练样本,对生成式对抗网络进行训练,得到生成式对抗模型,包括:
通过所述生成式对抗网络的生成器生成伪密码的特征向量;所述生成器是所述生成模型的中间模型或初始模型;
将所述伪密码的特征向量和真实密码的特征向量分别作为所述生成式对抗网络的判别器的输入,获得所述判别器输出的密码真实性概率值;
根据所述判别器输出的密码真实性概率值,交替优化所述生成器和判别器的网络参数,直到网络收敛,得到所述生成式对抗模型。
9.根据权利要求8所述的方法,其特征在于,将所述伪密码的特征向量和真实密码的特征向量分别作为所述生成式对抗网络的判别器的输入,获得所述判别器输出的密码真实性概率值,包括:
将所述伪密码的特征向量与构成所述伪密码的字符类别进行拼接后,作为所述生成式对抗网络的判别器的输入,获得所述判别器输出的所述伪密码的密码真实性概率值;
将所述真实密码的特征向量与构成所述真实密码的字符类别进行拼接后,作为所述生成式对抗网络的判别器的输入,获得所述判别器输出的所述真实密码的密码真实性概率值;
采用所述生成式对抗模型中的生成模型生成密码,包括:
将指定字符类别和随机噪声作为所述生成式对抗模型中生成模型的输入,获得所述生成模型输出的对应所述指定字符类别的密码特征向量;
将所述密码特征向量中每一维的特征值转换成相应的字符或字符串进行输出。
10.根据权利要求9所述的方法,其特征在于,所述通过所述生成式对抗网络的生成器生成伪密码的特征向量,包括:
将任一字符类别和随机噪声作为所述生成式对抗网络的生成器的输入,获得所述生成器输出的伪密码的特征向量。
11.根据权利要求1所述的方法,其特征在于,在所述采用所述生成式对抗模型中的生成模型生成密码之后,所述方法还包括:
将所述生成模型生成的密码加入仿真密码集,并对所述仿真密码集进行去重,得到目标密码集。
12.一种密码生成方法,其特征在于,包括:
获取真实密码;
根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果;
根据所述真实密码的切分结果,构建所述真实密码的特征向量;
将所述真实密码的特征向量以及构成所述真实密码的字符类别作为训练样本,对生成式对抗网络进行训练,得到生成式对抗模型;
将指定字符类别作为输入,采用所述生成式对抗模型中的生成模型生成所述指定字符类别对应的密码。
13.一种密码生成方法,其特征在于,包括:
获取随机噪声;
将所述随机噪声作为输入,通过已训练的生成式对抗模型中的生成模型,生成密码;
其中,所述生成式对抗模型是通过将真实密码的特征向量作为训练样本,训练得到的;所述真实密码的特征向量是根据已知的高频字符串,对所述真实密码进行切分,并根据切分结果生成的。
14.根据权利要求13所述的方法,其特征在于,所述将所述随机噪声作为输入,通过已训练的生成式对抗模型中的生成模型,生成密码,包括:
将所述随机噪声和指定字符类别作为所述生成式对抗模型中生成模型的输入,获得所述生成模型输出的对应所述指定字符类别的密码特征向量;
将所述密码特征向量中每一维的特征值转换成相应的字符或字符串进行输出。
15.一种密码的识别方法,其特征在于,包括:
获取待识别密码;
判断所述待识别密码是否与仿真密码集中的任一密码相同,根据判断结果得到所述待识别密码的识别结果;
其中,所述仿真密码集中的密码是通过已训练的生成式对抗模型中的生成模型生成的;
所述生成式对抗模型是通过将真实密码的特征向量作为训练样本,训练得到的;所述真实密码的特征向量是根据已知的高频字符串,对所述真实密码进行切分,并根据切分结果生成的。
16.一种密码的生成装置,其特征在于,包括:
密码获取模块,用于获取真实密码;
密码切分模块,用于根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果;
特征提取模块,用于根据所述真实密码的切分结果,构建所述真实密码的特征向量;
模型训练模块,用于将所述真实密码的特征向量作为训练样本,对生成式对抗网络进行训练,得到生成式对抗模型;
密码生成模块,用于采用所述生成式对抗模型中的生成模型生成密码。
17.一种密码生成装置,其特征在于,包括:
密码获取模块,用于获取真实密码;
密码切分模块,用于根据已知的高频字符串,切分所述真实密码,得到所述真实密码的切分结果;
特征提取模块,用于根据所述真实密码的切分结果,构建所述真实密码的特征向量;
模型训练模块,用于将所述真实密码的特征向量以及构成所述真实密码的字符类别作为训练样本,对生成式对抗网络进行训练,得到生成式对抗模型;
密码生成模块,用于将指定字符类别作为输入,采用所述生成式对抗模型中的生成模型生成所述指定字符类别对应的密码。
18.一种密码生成装置,其特征在于,包括:
噪声获取模块,用于获取随机噪声;
密码生成模块,用于将所述随机噪声作为输入,通过已训练的生成式对抗模型中的生成模型,生成密码;
其中,所述生成式对抗模型是通过将真实密码的特征向量作为训练样本,训练得到的;所述真实密码的特征向量是根据已知的高频字符串,对所述真实密码进行切分,并根据切分结果生成的。
19.一种密码的识别装置,其特征在于,包括:
密码获取模块,用于获取待识别密码;
密码识别模块,用于判断所述待识别密码是否与仿真密码集中的任一密码相同,根据判断结果得到所述待识别密码的识别结果;
其中,所述仿真密码集中的密码通过已训练的生成式对抗模型中的生成模型生成的;
所述生成式对抗模型是通过将真实密码的特征向量作为训练样本,训练得到的;所述真实密码的特征向量是根据已知的高频字符串,对所述真实密码进行切分,并根据切分结果生成的。
20.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-14任意一项所述的密码生成方法或者执行权利要求15所述的密码的识别方法。
21.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-14任意一项所述的密码生成方法或者执行权利要求15所述的密码的识别方法。
CN202011643390.6A 2020-12-30 2020-12-30 密码生成方法及装置、密码识别方法及装置、电子设备 Pending CN112667979A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011643390.6A CN112667979A (zh) 2020-12-30 2020-12-30 密码生成方法及装置、密码识别方法及装置、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011643390.6A CN112667979A (zh) 2020-12-30 2020-12-30 密码生成方法及装置、密码识别方法及装置、电子设备

Publications (1)

Publication Number Publication Date
CN112667979A true CN112667979A (zh) 2021-04-16

Family

ID=75412336

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011643390.6A Pending CN112667979A (zh) 2020-12-30 2020-12-30 密码生成方法及装置、密码识别方法及装置、电子设备

Country Status (1)

Country Link
CN (1) CN112667979A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112743993A (zh) * 2020-09-16 2021-05-04 哈尔滨工业大学(深圳) 打印信息的安全输出方法、装置、终端设备及介质
CN113676348A (zh) * 2021-08-04 2021-11-19 南京赋乐科技有限公司 一种网络通道破解方法、装置、服务器及存储介质
CN113852461A (zh) * 2021-09-26 2021-12-28 深圳万兴软件有限公司 一种密码恢复方法、装置、计算机设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558723A (zh) * 2018-12-06 2019-04-02 南京中孚信息技术有限公司 密码字典生成方法、装置以及计算机设备
US20200074073A1 (en) * 2018-08-31 2020-03-05 Briland Hitaj System and process for generating passwords or password guesses
CN111191008A (zh) * 2019-12-31 2020-05-22 华东师范大学 一种基于数字因子逆序的口令猜测方法
CN111966997A (zh) * 2020-07-20 2020-11-20 华南理工大学 基于梯度惩罚的生成式对抗网络的密码破解方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200074073A1 (en) * 2018-08-31 2020-03-05 Briland Hitaj System and process for generating passwords or password guesses
CN109558723A (zh) * 2018-12-06 2019-04-02 南京中孚信息技术有限公司 密码字典生成方法、装置以及计算机设备
CN111191008A (zh) * 2019-12-31 2020-05-22 华东师范大学 一种基于数字因子逆序的口令猜测方法
CN111966997A (zh) * 2020-07-20 2020-11-20 华南理工大学 基于梯度惩罚的生成式对抗网络的密码破解方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
滕南君 等: "PG-RNN:一种基于递归神经网络的密码猜测模型", 智能系统学报, vol. 13, no. 6, 30 April 2018 (2018-04-30), pages 889 - 896 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112743993A (zh) * 2020-09-16 2021-05-04 哈尔滨工业大学(深圳) 打印信息的安全输出方法、装置、终端设备及介质
CN112743993B (zh) * 2020-09-16 2021-10-01 哈尔滨工业大学(深圳) 打印信息的安全输出方法、装置、终端设备及介质
CN113676348A (zh) * 2021-08-04 2021-11-19 南京赋乐科技有限公司 一种网络通道破解方法、装置、服务器及存储介质
CN113676348B (zh) * 2021-08-04 2023-12-29 南京赋乐科技有限公司 一种网络通道破解方法、装置、服务器及存储介质
CN113852461A (zh) * 2021-09-26 2021-12-28 深圳万兴软件有限公司 一种密码恢复方法、装置、计算机设备及存储介质
CN113852461B (zh) * 2021-09-26 2024-02-02 深圳万兴软件有限公司 一种密码恢复方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN112667979A (zh) 密码生成方法及装置、密码识别方法及装置、电子设备
CN111581092B (zh) 仿真测试数据的生成方法、计算机设备及存储介质
US8606779B2 (en) Search method, similarity calculation method, similarity calculation, same document matching system, and program thereof
CN108090216B (zh) 一种标签预测方法、装置及存储介质
CN108959474B (zh) 实体关系提取方法
CN112818690B (zh) 结合知识图谱实体信息的语义识别方法、装置及相关设备
CN111866004B (zh) 安全评估方法、装置、计算机系统和介质
CN109993216B (zh) 一种基于k最近邻knn的文本分类方法及其设备
CN115795030A (zh) 文本分类方法、装置、计算机设备和存储介质
CN112749737A (zh) 图像分类方法及装置、电子设备、存储介质
CN110472659B (zh) 数据处理方法、装置、计算机可读存储介质和计算机设备
CN116467141A (zh) 日志识别模型训练、日志聚类方法和相关系统、设备
CN115130536A (zh) 特征提取模型的训练方法、数据处理方法、装置及设备
CN114707517A (zh) 一种基于开源数据事件抽取的目标跟踪方法
CN111144546A (zh) 评分方法、装置、电子设备及存储介质
CN112613032B (zh) 基于系统调用序列的主机入侵检测方法及装置
CN112364198A (zh) 一种跨模态哈希检索方法、终端设备及存储介质
CN115357720B (zh) 基于bert的多任务新闻分类方法及装置
Lim et al. More powerful selective kernel tests for feature selection
US20220383204A1 (en) Ascertaining and/or mitigating extent of effective reconstruction, of predictions, from model updates transmitted in federated learning
CN115080745A (zh) 基于人工智能的多场景文本分类方法、装置、设备及介质
Le et al. Optimizing genetic algorithm in feature selection for named entity recognition
CN114610576A (zh) 一种日志生成监控方法和装置
CN114676237A (zh) 语句相似度确定方法、装置、计算机设备和存储介质
CN103744830A (zh) 基于语义分析的excel文档中身份信息的识别方法

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100097 2nd floor, building 1, yard 26, Xizhimenwai South Road, Xicheng District, Beijing

Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd.

Applicant after: Qianxin Technology Group Co.,Ltd.

Address before: 100097 2nd floor, building 1, yard 26, Xizhimenwai South Road, Xicheng District, Beijing

Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc.

Applicant before: Qianxin Technology Group Co.,Ltd.