基于BPE分词的长短期记忆神经网络的密码生成方法技术

技术编号:33542047 阅读:16 留言:0更新日期:2022-05-21 09:52
本发明专利技术公开了一种基于BPE分词的长短期记忆神经网络的密码生成方法。本方法先使用BPE分词算法对训练密码集进行分词处理,并且利用dropout技术增加分词的多样性;然后用分词后的密码对长短期记忆网络(LSTM)进行训练;使用训练好的网络预测密码序列中的下一个子词,采取随机采样策略生成密码,并引入temperature参数增加生成密码的创造性。本发明专利技术使用基于统计的分词方法对密码进行分词,充分利用了符合大部分用户习惯的子词,使用本方法可以显著提升生成密码集的猜测攻击能力,从而更加有效地评估密码库的安全性。评估密码库的安全性。评估密码库的安全性。

【技术实现步骤摘要】
基于BPE分词的长短期记忆神经网络的密码生成方法


[0001]本专利技术属于信息安全
,具体涉及一种基于BPE分词的长短期记忆神经网络的密码生成方法。

技术介绍

[0002]为了保护用户信息安全,互联网应用中需要使用身份认证技术确认操作者身份。虽然更加安全的基于生物特征(指纹和人脸等)和智能卡等的身份认证方式已经得到广泛应用,但是具有部署难度低、使用局限性小等特性的文本密码仍然是互联网应用中身份认证的主要方式。然而,为了便于记忆和管理,人们往往会选择一些具有特定规则的密码,并且会在不同的应用中重复使用同一个密码,这都使得文本密码更加容易通过猜测攻击被破解。对密码生成方法的研究不仅可以提升人们对密码安全的认识,还可以用于对密码的安全性进行评估。
[0003]目前用于密码生成的方法有基于统计的PCFG方法、基于概率的Markov方法和基于神经网络的方法,研究表明使用神经网络猜测密码的效率优于传统的基于概率的Markov和PCFG方法。由于人们往往会选择将姓名、生日、手机号码等信息包含到密码中,字符级LSTM模型没有很好的利用这一特征;其次,生成密码时使用集束搜索会产生很多重复、无效密码,从而降低了生成密码在测试集上的匹配率。

技术实现思路

[0004]本专利技术所要解决的技术问题在于,针对
技术介绍
指出的不足,降低生成密码的重复率,使用基于统计的BPE算法对密码进行分词,充分利用了人们倾向于选择具有特定含义的字符创建密码这一特性,提出一种基于BPE分词的长短期记忆神经网络的密码生成方法。/>[0005]本专利技术为解决以上技术问题而采用以下技术方案:
[0006]本专利技术提出一种基于BPE分词的长短期记忆神经网络的密码生成方法,
[0007]步骤1:使用BPE

dropout将原始训练密码集切分成子词粒度;
[0008]步骤2:使用子词粒度密码集训练子词级LSTM模型;
[0009]步骤3:使用训练好的子词级长短期记忆网络LSTM模型生成猜测密码集。生成密码时选择下一个子词的方法为带温度(temperature)的随机采样策略。
[0010]所述步骤1包括以下步骤:
[0011]步骤1.1使用原始训练密码集构建BPE合并表。具体如下:
[0012]步骤1.1.1将所有密码表示为字符序列,并使用所有字符序列初始化符号表T
symbol

[0013]步骤1.1.2统计符号表T
symbol
中所有相邻符号对(symbol
i
,symbol
j
)出现的频次,所述符号为单个字符或者由几个字符组合成的子词;
[0014]步骤1.1.3合并符号表T
symbol
中出现频次最高的相邻符号对,使用合并产生的新符号symbol
k
替换符号表T
symbol
中两个原始符号symbol
i
和symbol
j
,并将合并过程按照符号出
现频次降序的顺序记录到BPE合并表中,合并过程表示为:
[0015](symbol
i
,symbol
j
)

symbol
k

[0016]步骤1.1.4重复合并过程,直到符号表T
symbol
中相邻符号对的最高频次小于最小频次min_f。
[0017]步骤1.2使用BPE合并表对原始训练密码集进行分词,得到子词级密码集,具体如下:
[0018]步骤1.2.1将原始训练密码集中密码的相邻字符间插入空格并复制多次,用于初始化子词级密码集U;
[0019]步骤1.2.2从子词级密码集U取出一个密码,根据BPE合并表中的排名,找到所有可以合并的符号对,记录到操作表T
op
中,然后按照概率p从操作表T
op
中随机移除部分操作;如果操作表T
op
不为空,则对其中的符号对按照排名顺序进行合并;其中,所述的概率p取值为0.1;
[0020]步骤1.2.3子词级密码集U中所有密码重复执行符号对合并的操作,直到操作表T
op
为空;
[0021]步骤1.2.4对分词完成的子词级密码集U进行去重,得到最终的子词级密码集U'。
[0022]所述步骤2包括以下步骤:
[0023]步骤2.1准备用于训练子词级LSTM模型的数据;首先标记密码的起止位置,具体方法为在每个密码第一个子词前添加一个开始符用于标记密码开始,在每个密码最后一个子词后添加一个结束符用于标记密码结束;
[0024]然后构建子词级LSTM模型的输入输出序列,具体构建过程为,取每个密码的前i

1个子词作为输入序列X,第i个子词作为输出序列Y,表示为:
[0025]X=[s1,s2,

,s
i
‑1],
[0026]Y=[s
i
]。
[0027]步骤2.2构建子词级LSTM模型;所述子词级LSTM模型包括1个嵌入层、2个LSTM层和1个全连接层。其中,嵌入层输入维度为3500,输出维度为100,输入序列长度为15;每个LSTM层包含128个神经元;全连接层神经元个数为3500,激活函数为softmax函数;softmax函数定义为:
[0028][0029]其中,x
i
为第i个神经元的输出值,n为输出节点的个数,即词汇表大小;
[0030]所述LSTM神经元包含3个控制门:输入门i
t
、输出门o
t
和遗忘门f
t
,以及一个记忆单元c
t
;c
t
的计算方式为:
[0031][0032]其中,遗忘门f
t
用于控制是否遗忘当前时刻之前的信息c
t
‑1,遗忘门的计算方式为:
[0033]f
t
=σ(W
f
×
[h
t
‑1,x
t
]+b
f
)
[0034]输入门i
t
用于控制是否将当前时刻信息保存到记忆单元中,输入门和当前时刻信息计算方式为:
[0035]i
t
=σ(W
i
×
[h
t
‑1,x
t
]+b
i
)
[0036][0037]输出门o
t
用于控制当前时刻的输出y
t
和隐状态h
t
中是否包含记忆单元c
t
中的信息,输出门的计算方式:
[0038]o
t
=σ(W
o
×
[h...

【技术保护点】

【技术特征摘要】
1.一种基于BPE分词的长短期记忆神经网络的密码生成方法,其特征在于,包括以下步骤:S1、使用BPE

dropout将原始训练密码集切分成子词粒度,包括:使用原始训练密码集构建BPE合并表,使用BPE合并表对原始训练密码集进行分词,得到子词级密码集;S2、使用子词粒度密码集训练子词级长短期记忆网络LSTM模型;S3、使用训练好的子词级长短期记忆网络LSTM模型生成猜测密码集,生成密码时选择下一个子词的方法为带温度temperature的随机采样策略。2.根据权利要求1所述的基于BPE分词的长短期记忆神经网络的密码生成方法,其特征在于,步骤S1中,使用原始训练密码集构建BPE合并表,具体如下:(1)将所有密码表示为字符序列,并使用所有字符序列初始化符号表T
symbol
;(2)统计符号表T
symbol
中所有相邻符号对(symbol
i
,symbol
j
)出现的频次,所述符号为单个字符或者由几个字符组合成的子词;(3)合并符号表T
symbol
中出现频次最高的相邻符号对,使用合并产生的新符号symbol
k
替换符号表T
symbol
中两个原始符号symbol
i
和symbol
j
,并将合并过程按照符号出现频次降序的顺序记录到BPE合并表中,合并过程表示为:(symbol
i
,symbol
j
)

symbol
k
;(4)重复合并过程,直到符号表T
symbol
中相邻符号对的最高频次小于最小频次min_f。3.根据权利要求1所述的基于BPE分词的长短期记忆神经网络的密码生成方法,其特征在于,步骤S1中,使用BPE合并表对原始训练密码集进行分词,得到子词级密码集,具体如下:(1)将原始训练密码集中密码的相邻字符间插入空格并复制多次,用于初始化子词级密码集U;(2)从子词级密码集U取出一个密码,根据BPE合并表中的排名,找到所有可以合并的符号对,记录到操作表T
op
中,然后按照概率p从操作表T
op
中随机移除部分操作;如果操作表T
op
不为空,则对其中的符号对按照排名顺序进行合并;(3)子词级密码集U中所有密码重复执行符号对合并的操作,直到操作表T
op
为空;(4)对分词完成的子词级密码集U进行去重,得到最终的子词级密码集U

。4.根据权利要求1所述的基于BPE分词的长短期记忆神经网络的密码生成方法,其特征在于,所述步骤S2包括以下步骤:S201、准备用于训练子词级LSTM模型的数据;首先标记密码的起止位置,然后构建子词级LSTM模型的输入输出序列;S202、构建子词级LSTM模型;所述子词级LSTM模型包括1个嵌入层、2个LSTM层和1个全连接层,激活函数为softmax函数;softmax函数定义为:其中,x
i
为第i个神经元的输出值,n为输出节点的个数,即词汇表大小;所述LSTM神经元包含3个控制门:输入门i
t
、输出门o
t
和遗忘门f
t
,以及一个记忆单元c
t
;c
t
的计算方式为:
其中,遗忘门f
t
用于控制是否遗忘当前时刻之前的信息c
t
‑1,遗忘门的计算方式为:f
t
=σ(W
f
×
[h
t
‑1,x
t
]+b
f
)输入门i
t
用于控制是否将当前时刻信息保存到记忆单元中,输入门和当前时刻信息计算方式为:i
t
=σ(W
i
×
[h
t
‑1,x
t
]+b
i
)输出门o
t
用于控制当前时刻的输出y
t
和隐状态h
t
中是否包含记忆单元c
t
中的信息,输出门的计算方式:o
t
=σ(W
o
×
[h
...

【专利技术属性】
技术研发人员:万夕里吴亚萍管昕洁
申请(专利权)人:南京工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1