(深度学习)密码生成 - 三篇文章的阅读

20200828 -

0. 引言

之前的关注过利用深度学习来进行密码生成的内容,但是没有进行具体记录。今天正好把之前的文章给记录以下。主要是阅读了三篇文章,其中两篇是针对DeepPass那篇论文来进行讲解,大致上传达了论文的思路,没有进行深度的剖析,后续的时候我会深入阅读这篇论文来进行记录(其实已经阅读完了,只不过当时将重心放在了GAN的学习上,没有放在这个功能上),另外一篇是利用LSTM进行密码的猜解)。


文章列表:
(1)PassGAN: A Deep Learning Approach to Password Guessing
(2)Generative Adversarial Networks can crack your password!
(3)Password Cracker - Generating Passwords
后续直接利用(1)(2)来指代相应的文章。

1.前两篇文章的阅读

PassGAN论文解读,主要从使用的网络结构上来进行解释,同时阐释了一些GAN的组成结构。
文章(1)提到,在平时做密码猜解时,因为泄露的密码可能是hash形式,所以需要利用一些手段来遍历密码,然后比较其hash值;现在已经有一些相应的手段,例如hashcat还有john the ripper。现在学术界也提出了利用马尔科夫链加上人工的一些经验来构造密码(这个应该看一看),但人工构造的密码终究不能完全匹配正常密码的分布。所以使用GAN的方式可以解放人工,直接来模拟底层的密码分布。关于GAN的介绍,这里不再进行描述可以查看本博客的另一篇文章《GAN的学习 - 基础知识了解》。其中文章(1)重点提到,生成器将输入一个固定长度的随机向量,然后生成域名,这一点跟之前看的DeepDGA有所不同。而这个向量时随机取自正态分布。下面来看PassGAN的网络结构。

首先PassGAN采用了优化版的GAN,而不是原版的GAN,其采用的模型式IWGAN(这个后面要重点看一看),然后采用了ResNets封装了五个残差块来构造生成器和判别器。最后连接了Conv1D层。
最后描述了PassGAN的性能。
文章(2)的大致内容与文章(1)相同,但对PassGAN的网络结构进行了更细致的描述。采用IWGAN的原因,是因为它更适合评估两个文本的距离。其网络结构如图所示:

在这里插入图片描述
可以看到多个残差网络块。

关于这部分的内容介绍到这里,在后续的文章中,将深入研究PassGAN的论文,包括其源码内容来进行分析。

2. RNN生成密码

而前文中提到的文章(3)并没有使用GAN的模型,而是直接使用了LSTM进行文本预测。但是这篇文章中,没有给出具体的执行方式,只是说明了只用了一个Text Predicter的方式来进行生成。
所以这里的疑惑是,如果通过这种方式的话,那么它的输出是什么呢?如果是按照正常的思路来进行文本预测的话,那就是输出了字符,然后接着给了后续字符。那么这种策略在密码猜解中就不一样了。
但是大致看了看源码,感觉应该也是有一定的随机种子进行输出,不过因为代码是tensorflow的,所以暂时不知道原理,等我把源码弄懂了再来进行记录。


因为文章(3)并没有给出具体的代码执行方式,而且代码直接就说使用了text predictor的,但是是否需要修改不得而知。我具体浏览了text predictor的代码,感觉它的方式好像是这样的:
1)训练过程,这个不用多说
2)在一定的数量之后,进行采样,但是这时的输出呢,是另外一个样本呢,然后输出的时候是使用了文本中的第一个字符。后面才有一定的预测结果。但具体是怎么实现不得而知。因为没有给出具体的实现方案。而且,在issue界面上还有一个问题,18年的也一直没有得到解决。所以感觉这个不是很完整。

个人觉得,应该有一定的随机性,才能即使输入同一个字符输出也是不一样的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值