正在加载图片...
第6期 滕南君,等:PG-RNN:一种基于递归神经网络的密码猜测模型 ·891· 1 递归神经网络和PG-RNN模型 递归神经网络的训练增加难度。梯度爆炸会带 参数设置 来RNN网络训练的不稳定性,在实际训练中,梯 度爆炸的情况可以通过对梯度进行裁剪(将梯度 1.1递归神经网络 限制在一定数值范围内)来有效地控制。后来出 递归神经网络(RNN)是一种基于时间序列的 现的long short term memory(LSTM),GRU则 网络结构,因而能够对具有时间顺序特性的数据 是解决了RNN梯度衰减问题。通过改变神经元 进行建模。对于字符级别的RNN网络,在每个时 内部的结构方式,并且加入中间信息的存储单 间步上,输入值为one-hot编码的一维向量(其中, 元,使得梯度可以在很长的时间步上传播,输出 向量维度由数据集包含的字符种类数决定),输人 与输入之间依赖的时间跨度变大。对于密码猜测 数据信息传递到隐层,并更新隐层状态,经过非 任务来说,单个密码的长度是有限的(绝大部分 线性函数后最后达到输出层,输出一个预测概率 ≤15)。因此,长时间序列上的可依赖性或许并不 分布,并通过概率分布的值,确定输出字符的种 是我们所需要的,因为对于一个长度有限的密码 类。RNN网络可以具有多层隐含层,并且每一层 来说,当前字符可能仅仅取决于之前的几个字 包含若干个神经元,加上非线性激活函数;因而 符,而不是很多个。出于这样的考虑,本文中的 整个网络具有非常强大的特征表达能力。在连续 PG-RNN模型采用的是之前没有人尝试过的RNN 多个时间步上,RNN网络能够组合、记录大量的 网络结构,从而能够搭建一个轻量化但非常有效 信息,从而能够用来进行准确地预测工作。对于 地密码猜测模型(整个网络模型参数约0.12M)。 某一个特定时间步T的输出,它不仅仅依赖于当 1.2PG-RNN模型参数设置 前的输入值,还与T之前的若干步输入有关。举 本文提出的PG-RNN模型,参数设置如下:出 个例子,一个RNN网络要输出“Beijing”这个字 于对训练数据中绝大部分的密码长度的考虑,时 符串,我们可能会给该网络输入Beijin,而对于接 间序列长度为20:模型采用单层递归神经网络, 下来网络要输出的这个字符,根据输出概率分 隐层神经元数量为256,两个全连接层;学习率初 布,输出字符“g”的概率要显著高于其他候选字 始化为0.0l,采用了Adagrad梯度更新算法。 符。另外,在输出一串字符之后,我们依赖一个 特殊的换行符作为单个密码结束的标志。 2密码数据集分析 RNN网络的整个计算流程如下,给定输入向 本文采用的是从公开互联网上收集到的一些 量序列X=(x1,x2,,),其中,x代表的是时刻的 网站泄露的真实密码数据集合,这些公开的密码 输入向量:通过输入一隐层之间的权重矩阵传入 集合都是以纯文本xt或者sql格式存在。我们仅 网络隐层,加上从上一个时刻隐层传人的状态信 仅使用这些数据集中的密码部分,而滤除掉其他 息,经过非线性函数后计算出隐层向量序列H= 非相关信息(包括用户注册邮箱或者用户名等)。 (h1,h2,…,hr)和输出序列Y=,y2,3,,r)。具体 我们在实验中使用了如下的密码数据集,它们分 迭代过程如下: for i=1 to T: 别是Rockyou、.Yahoo、CSDN、RenRen和Myspace h;=tanh(Wax;Wuh1+b) (1) Rockyou密码集包含了2009年12月由于SQL漏 yi=Whi+b 洞遭到了黑客攻击,导致约3200万用户密码,我 式中:W表示的是权重矩阵,大小与连接的神经元 们收集到大约1400万无重复的密码;2012年, 个数有关;W表示隐层与输入层之间的权重矩 Yahoo公司的Voices泄露了大约40万个账号信 阵;W表示隐层与隐层之间权重矩阵;W则表示 息,CSDN(Chinese software developer network)是目 的是隐层与输出层之间的权重矩阵;b、b,分别表 前国内最大的T开发者社区,它在2011年发生 示的是隐层和输出层的偏置矩阵;tanh是隐层输 的数据库泄露事件,有大约600万用户账号和明 出值必须经过的非线性函数。 文密码被公开。同样是在2011年,国内著名的社 递归神经网络的误差通过反向梯度传播算法 交平台人人网也被曝遭到黑客攻击,将近500 按照时间步从后往前传递。但是,由于梯度在传 万用户账号和密码泄露.此外,还有Myspace网站 递过程中需要经过连续地相乘,因此这样的参数 泄露的部分数据,大约37000个存在于txt的明 关系使得RNN的梯度传播会存在一定的难度。 文密码。 Bengio等I16-1证明了梯度在反向传播中,会随着 我们对这些数据进行了以下清洗工作。1)剔别 时间步的推移呈指数级的衰减或者爆炸问题,给 除掉了除密码之外的其他信息;2)考虑到编码问1 递归神经网络和 PG-RNN 模型 参数设置 1.1 递归神经网络 递归神经网络 (RNN) 是一种基于时间序列的 网络结构,因而能够对具有时间顺序特性的数据 进行建模。对于字符级别的 RNN 网络,在每个时 间步上,输入值为 one-hot 编码的一维向量 (其中, 向量维度由数据集包含的字符种类数决定),输入 数据信息传递到隐层,并更新隐层状态,经过非 线性函数后最后达到输出层,输出一个预测概率 分布,并通过概率分布的值,确定输出字符的种 类。RNN 网络可以具有多层隐含层,并且每一层 包含若干个神经元,加上非线性激活函数;因而 整个网络具有非常强大的特征表达能力。在连续 多个时间步上,RNN 网络能够组合、记录大量的 信息,从而能够用来进行准确地预测工作。对于 某一个特定时间步 T 的输出,它不仅仅依赖于当 前的输入值,还与 T 之前的若干步输入有关。举 个例子,一个 RNN 网络要输出“Beijing”这个字 符串,我们可能会给该网络输入 Beijin,而对于接 下来网络要输出的这个字符,根据输出概率分 布,输出字符“g”的概率要显著高于其他候选字 符。另外,在输出一串字符之后,我们依赖一个 特殊的换行符作为单个密码结束的标志。 X = (x1, x2,···, xT ) xi i (h1, h2,···, hT ) Y = (y1, y2, y3,···, yT ) RNN 网络的整个计算流程如下,给定输入向 量序列 ,其中, 代表的是 时刻的 输入向量;通过输入−隐层之间的权重矩阵传入 网络隐层,加上从上一个时刻隐层传入的状态信 息,经过非线性函数后计算出隐层向量序列 H = 和输出序列 。具体 迭代过程如下: for i = 1 to T : hi = tanh(Whxxi +Whhhi−1 + bh) yi = Wyhhi + by (1) W Whx Whh Wyh bh by 式中: 表示的是权重矩阵,大小与连接的神经元 个数有关; 表示隐层与输入层之间的权重矩 阵; 表示隐层与隐层之间权重矩阵; 则表示 的是隐层与输出层之间的权重矩阵; 、 分别表 示的是隐层和输出层的偏置矩阵;tanh 是隐层输 出值必须经过的非线性函数。 递归神经网络的误差通过反向梯度传播算法 按照时间步从后往前传递。但是,由于梯度在传 递过程中需要经过连续地相乘,因此这样的参数 关系使得 RNN 的梯度传播会存在一定的难度。 Bengio 等 [16-17]证明了梯度在反向传播中,会随着 时间步的推移呈指数级的衰减或者爆炸问题,给 ⩽ 15 递归神经网络的训练增加难度。梯度爆炸会带 来 RNN 网络训练的不稳定性,在实际训练中,梯 度爆炸的情况可以通过对梯度进行裁剪 (将梯度 限制在一定数值范围内) 来有效地控制。后来出 现的 long short term memory (LSTM)[14] ,GRU[15]则 是解决了 RNN 梯度衰减问题。通过改变神经元 内部的结构方式,并且加入中间信息的存储单 元,使得梯度可以在很长的时间步上传播,输出 与输入之间依赖的时间跨度变大。对于密码猜测 任务来说,单个密码的长度是有限的 (绝大部分 )。因此,长时间序列上的可依赖性或许并不 是我们所需要的,因为对于一个长度有限的密码 来说,当前字符可能仅仅取决于之前的几个字 符,而不是很多个。出于这样的考虑,本文中的 PG-RNN 模型采用的是之前没有人尝试过的 RNN 网络结构,从而能够搭建一个轻量化但非常有效 地密码猜测模型 (整个网络模型参数约 0.12 M)。 1.2 PG-RNN 模型参数设置 本文提出的 PG-RNN 模型,参数设置如下:出 于对训练数据中绝大部分的密码长度的考虑,时 间序列长度为 20;模型采用单层递归神经网络, 隐层神经元数量为 256,两个全连接层;学习率初 始化为 0.01,采用了 Adagrad 梯度更新算法。 2 密码数据集分析 本文采用的是从公开互联网上收集到的一些 网站泄露的真实密码数据集合, 这些公开的密码 集合都是以纯文本 txt 或者 sql 格式存在。我们仅 仅使用这些数据集中的密码部分,而滤除掉其他 非相关信息 (包括用户注册邮箱或者用户名等)。 我们在实验中使用了如下的密码数据集,它们分 别是 Rockyou、Yahoo、CSDN、RenRen 和 Myspace[18-20]。 Rockyou 密码集包含了 2009 年 12 月由于 SQL 漏 洞遭到了黑客攻击,导致约 3 200 万用户密码, 我 们收集到大约 1 400 万无重复的密码;2012 年, Yahoo 公司的 Voices 泄露了大约 40 万个账号信 息,CSDN(Chinese software developer network) 是目 前国内最大的 IT 开发者社区,它在 2011 年发生 的数据库泄露事件,有大约 600 万用户账号和明 文密码被公开。同样是在 2011 年,国内著名的社 交平台人人网也被曝遭到黑客攻击,将近 500 万用户账号和密码泄露. 此外,还有 Myspace 网站 泄露的部分数据,大约 37 000 个存在于 txt 的明 文密码。 我们对这些数据进行了以下清洗工作。1) 剔 除掉了除密码之外的其他信息;2) 考虑到编码问 第 6 期 滕南君,等:PG-RNN: 一种基于递归神经网络的密码猜测模型 ·891·
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有