CN112149388B - 一种识别口令中词汇变形并产生猜测规则的方法 - Google Patents

一种识别口令中词汇变形并产生猜测规则的方法 Download PDF

Info

Publication number
CN112149388B
CN112149388B CN202011023884.4A CN202011023884A CN112149388B CN 112149388 B CN112149388 B CN 112149388B CN 202011023884 A CN202011023884 A CN 202011023884A CN 112149388 B CN112149388 B CN 112149388B
Authority
CN
China
Prior art keywords
rule
corpus
deformation
password
character
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.)
Active
Application number
CN202011023884.4A
Other languages
English (en)
Other versions
CN112149388A (zh
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.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
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 South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN202011023884.4A priority Critical patent/CN112149388B/zh
Publication of CN112149388A publication Critical patent/CN112149388A/zh
Application granted granted Critical
Publication of CN112149388B publication Critical patent/CN112149388B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明公开了一种识别口令中词汇变形并产生猜测规则的方法。所述方法包括如下步骤:构建语料库Ω,生成三字符词汇表;基于语料库Ω,生成训练口令集合P中单条口令p对应的变形语料乘积规则r,构成规则集合T={r1,r2,…,rn};统计规则集合T中各个变形语料乘积规则的频度;使用效费比指标对规则集合T中的变形语料乘积规则进行排序,得到猜测规则序列R;根据口令猜测数量要求S,从R中选择规则,形成猜测次数不超过S的口令猜测规则序列RS;快速检测猜测规则序列Rs对测试口令集P'的命中率。本发明具有命中率高、规则描述清楚、能高效描述和猜测带词汇变形的口令、可以检测大规模猜测口令集合命中率等优点。

Description

一种识别口令中词汇变形并产生猜测规则的方法
技术领域
本发明涉及口令猜测规则生成领域,特别涉及一种识别口令中词汇变形并产生猜测规则的方法。
背景技术
口令猜测的基本方法是不断尝试用户可能使用的口令,直至发现正确口令,或者达到预定猜测次数而放弃猜测。因此,要提高猜测的效率需要优先猜测用户使用可能性更高的口令。现有的口令猜测方法主要包括:暴力、碾压、Markov模型、概率上下文无关文法(PCFG)、语义模型等五种类型。
暴力方式是最为传统的口令猜测方法,其主要缺陷是能猜测的口令长度较短。由于总猜测次数的限制,全键盘字符的暴力猜测长度往往不超过9个字符,仅仅包含小写字母和数字的暴力猜测长度往往不超过11个字符。
字典变形方法(Emin Islam Tath,"Cracking more passwords hashes withpatterns",IEEE Trans.on Information Forensics and Security,vol.10,no.8,pp.1656-1665,2015.)是指根据口令变形规则(例如olchashcat中的rockyou-30000规则库)将源口令变形成为待猜测的口令。这种口令猜测方法在实践中非常常用,但是它的有效性依赖于源口令集,对源口令集合中未出现的口令将无法完成有效猜测。
Markov模型方法(Jerry Ma,WeiningYang,Min Luo,Ninghui Li,"A study ofprobabilistic password models",in Proc.IEEE Symposium on Security andPrivacy,pp.689-704,2014.Markus Durmuth,Fabian Angelstorf,Claude Castelluccia,Daniele Perito,Abdelberi Chaabane,"OMEN:Faster password guessing using anordered Markov enumerator",in Proc.the 7th Symposium on ESSoS,pp.119-132,2015.)是建立训练口令集中字母之间的转移概率矩阵,并据此预测某个口令的概率。该方法的最大特点是不依赖于语料集,可以自主发现口令内常见的词汇,而且可以有效处理词汇中常见的变形形式。但是其缺点是需要高阶Markov过程以“记忆”较长的词汇内容,而且语义不甚明确。
PCFG方法(Matt Weir,Sudhir Affarwal,Breno de Medeiros,Bill Glodek,"Password cracking using probabilistic context-free grammars",in Proc.30thIEEE Symposium on Security and Privacy,2009,pp.391-405.)的核心是将口令按照字符类型分段,并产生两级概率:第一级为不同字符类型分段的结构概率,第二级是语料库中每个单词的概率,并由此可以推测出特定结构和语料构成口令的概率。改进的PCFG方法(Shiva Houshmand,SudhirAggarwal,Randy Flood,"Next Gen PCFG passwordcracking",IEEE Trans.on Information Forensics and Security,vol.10,no.8,pp.1776-1791,2015.)进一步加入了键盘串集合,并对语料库的词汇频率进行了Laplace平滑。前者在一定程度上弥补了原有PCFG方法按照字符类型分词的局限性,后者则可以进一步丰富语料库的内容,从而部分解决无法描述训练口令集中未出现词汇的问题。
语义方法(Rafael Veras,Christopher Collins,Julie Thorpe,"On thesemantic patterns ofpasswords and their security impact",in Proc.Network andDistributed System Security Symposium(NDSS),2014,pp.1-16.)将根据语料库中语义明确的词汇对训练口令进行结构划分。在划分方法上,以词汇最大覆盖率作为分词依据,采用不定长的语料和结构描述。与此同时,保持了PCFG方法中对语料库的每个词汇进行频率统计,并由此计算出每条口令概率的方法。
用户为了提高口令的安全性而且便于记忆,往往采用了一些变形方式,例如易于记忆的口令“password”可以通过首字母大写、字符a转换为@、字符o转换为0等变形方法,转换为“P@ssw0rd”,显著增加了口令强度。上述已有的口令猜测方法在猜测这一类口令时,将面临较大的困难。
对于暴力方法而言,变形后的口令往往包含了大写、小写、特殊字符和数字等四种字符类型,使得猜测次数大幅度上升。以此口令为例,原有的“password”可以使用8个小写字母模式,总猜测次数为268=2.09×1011,经过变形后的口令需要采用8个全键盘字符模式,猜测次数提升到958=6.63×1015
字典变形方法虽然可以通过变形规则将原始的口令“password”转换为“P@ssw0rd”,但是这种方法依赖于原始口令库的规模和质量,缺少学习能力和词汇泛化能力,也不能准确描述用户设计口令的原始思路。例如,较为不常用的单词“complicated”如果没有收录在原始口令库中,就无法通过字典变形方式得到经过上述变形后的口令“C0mplic@ted”。
Markov模型方法可以通过大量的口令学习到词汇的简单常见变形方式,但是由于没有外部语料库的支持,缺少词汇的泛化能力。
PCFG方法采用字符类型方式分析训练口令的结构。对于包含了多种变形方式的训练口令,可能会破坏原有完整的词汇结构。例如,“P@ssw0rd”在PCFG中对应的结构为L1S1L3D1L2,即1个字母+1个特殊符号+3个字母+1个数字+2个字母,完全失去了原有口令的内在含义。
语义方法使用的是精确匹配方法根据语料库的内容分析口令中出现的词汇。如果语料库中的词汇经过变形,该方法也依然无法识别。
综上所述,现有的口令猜测方法难以发现和描述口令中的词汇变形,也难以产生有效的猜测方法。
发明内容
为了解决已有的口令猜测方法对词汇变形口令猜测效率不高的问题,本发明首先提出了一种能描述口令词汇变形的猜测规则——变形语料乘积规则,并提出了使用近似匹配方法发现训练口令与语料库词汇之间的变形关系,并由此生成单条训练口令的变形语料乘积规则。基于上述单条口令的规则学习方法,可以通过对大量的训练口令集学习得到相应的口令猜测规则库。由于语料库和训练口令集的规模都很大,而且近似匹配的计算复杂度很高,需要从语料库中预先筛选出与猜测口令相关的词汇集合以及推断它们在口令中的位置,以提升近似匹配的效率。与此同时,由于训练口令可能存在着多种理解方式,需要根据猜测次数和变形开销两个方面选择合适的变形语料乘积猜测规则。
本发明的目的至少通过如下技术方案之一实现。
一种识别口令中词汇变形并产生猜测规则的方法,具体包括以下步骤:
S1、构建语料库Ω,生成三字符词汇表;
S2、基于语料库Ω,对训练口令集合P中所有口令生成对应的变形语料乘积规则,构成规则集合T={r1,r2,…,rn};
S3、训练集中不同口令可能会产生相同的变形语料乘积规则,需要统计规则集合T中各个变形语料乘积规则的频度;
S4、使用效费比指标对规则集合T中的变形语料乘积规则进行排序,得到猜测规则序列R;
S5、根据口令猜测数量要求S,从R中选择规则,形成猜测次数不超过S的口令猜测规则序列RS
S6、快速检测猜测规则序列Rs对测试口令集P'的命中率。
进一步地,步骤S1中,所述语料库Ω的构建规则如下:
规则1、语料库由若干语料集合{W}构成,其中同一个语料集合包含同一类词汇;词汇类型包括但不限于常见姓名、地名、键盘字符序列、日期、年份、汉语拼音、手机号码等;语料库包括小写字母语料集合[az]、大写字母语料集合[AZ]、数字字母语料集合[09]和特殊符号语料集合[SP],分别对应ASCII码中的小写字母、大写字母、数字和不包含上述类型的其他可打印字符;
规则2、单个语料集合的词汇具有相同的属性和长度,数量不超过6000条,且语料集合中的字符类型不受约束;
规则3、任意两个语料集合之间没有相同的词汇;
语料库Ω中的特定语料集合W中词汇的数量为|W|,长度为l(W);语料库Ω的语料集合数为|Ω|。
进一步地,对于可打印的ASCII字符c,定义以下基本操作:
如果c为小写字母,则小写到大写字母变换upper(c)为该字母的大写形式,否则upper(c)=c;
如果c为小写字母,则大小写字母相互变换toggle(c)为该字母的大写形式;如果c为小写字母,则toggle(c)为该字母的大写形式;其余情况,toggle(c)=c;
ctype(c)为该字符的类型,取值范围为小写字母、大写字母、数字和其他特殊字符;
字符替换集合ST的元素为二元组(x,y),描述为x→y其中x≠y;ST对字符c的替换集合定义为ST(c)={y|(c,y)∈ST},ST对字符c的逆替换集合定义为ST-1(c)={x|(x,c)∈ST}∪{c};
对于由可打印ASCII字符构成的字符串w=c0c1…cn-1,其长度l(w)=n;对于0≤l≤k<n-1,其字符串片段w[l:k]=cl…ck-1
进一步地,所述三字符词汇表H3记录了语料库Ω中所有词汇中所有三个字符长度的子串所属的词汇、语料集合、以及该子串在词汇中所处的位置;H3以三个字符长度的子串c0c1c2作为索引,通过索引查找到一个集合,集合的每个元素为一个四元组(w,W,lw,kw),满足以下关系:
(1)w∈W,W∈Ω;
(2)w[lw:lw+2]=c0c1c2
(3)lw+3+kw=l(w);
即对于Ω中的特定语料集合W中的词汇w包括了三个字符片段c0c1c2,且该字符片段在w中距离起始和结束位置的距离lw和kw
进一步地,步骤S2中,变形语料乘积规则是k个语料集合经过对应变形规则变形后字符串集合的组合,记为r=W1<M1>…Wk<Mk>,其中Wi1∈Ω,Mi1为语料集合Wi1对应的变形规则,1≤i1≤k,每个语料集合可以具有独立的变形规则。变形语料乘积规则所对应的猜测口令集合为变形语料乘积规则中所有语料集合{w1||…||wk|wi1∈Mi1(Wi1),Wi1∈Ω,1≤i1≤k},其中i1为临时变量,k为规则r的段数,wi1为语料集合Wi1中的一个词汇经过Mi1变形后的字符串,||为字符串拼接操作;猜测次数变形语料乘积规则所对应的猜测口令集合中的所有猜测口令的长度相同;
所述变形规则是一个或多个变形命令组成的序列,记为M=<m1,m2,…,mt>,其中m1,m2,…,mt表示变形命令;变形规则M对字符串w产生的变形字符串为M(w)=mt(…m2(m1(w)));
特定语料集合W经过变形规则M所产生的变形字符串集合为M(W)={M(w)|w∈W};如果M为空,则M(W)=W。
进一步地,所述变形命令包括字符替换、在特定位置删除字符、在特定位置大小写转换、全部字符大写四种,对于长度为N个字符的输入字符串d0d1…dN-1,四种变形命令如下所示:
Sxy:将输入字符串中的字符x替换成y
输出字符串c0c1…cN-1的值
使用常见的48种字符替换集合,记为ST48={a→4,a→@,b→8,b→6,c→(,c→[,c→<,e→3,g→6,h→4,i→1,i→l,i→!,j→7,l→1,o→0,q→9,s→5,s→$,t→7,t→+,x→%,z→2,z→7,A→4,A→@,B→8,B→6,C→(,C→[,C→<,E→3,G→6,H→4,I→1,I→l,I→!,J→7,L→1,O→0,Q→9,S→5,S→$,T→7,T→+,X→%,Z→2,Z→7};
Du:删除第u个字符,其中0≤u≤N-1
输出字符串c0c1…cN-2的值为
Tv:对第v个字符大小写转换,其中0≤v≤N-1
输出字符串c0c1…cN-1的值为:
大小写转换也可以视为特殊的字符替换,定义大写字母替换集合STU={a→A,b→B,c→C,…,z→Z,1→!,2→@,3→#,4→$,5→%,6→,7→&,8→*,9→(,0→)},小写字母替换集合STL={A→a,B→b,C→c,…,Z→z};一个字符所有的可能替换集合定义为STA=ST48∪STU∪STL,STA的逆替换集合定义为STA -1
U:字符串全部大写,输出字符串c0c1…cN-1,定义为ci=upper(di),1≤i≤N-1;
口令变形难度越高,变形消耗值也越大;由此定义字符大小转换、全部大写的变形消耗分别为c(U)=c(Tv)=1,删除和字符替换的变形消耗分别为c(Du)=c(Sxy)=2,变形规则M=<m1,m2,…,mt>的变形消耗为所有变形命令的变形消耗之和,即变形语料乘积规则r=W1<M1>…Wk<Mk>的变形消耗为所有变形规则的变形消耗之和,即
对于语料库Ω和口令p,如果存在k个词汇w1,…,wk和k个变形规则M1,…,Mk满足:
(1)wi∈Wi,Wi∈Ω;
(2)p=M1(w1)||M2(w2)||…||Mk(wk);
则r=W1<M1>…Wk<Mk>为p的一种可能变形语料乘积规则。
进一步地,步骤S2具体包括以下步骤:
S2.1、基于步骤S1中生成的三字符词汇表H3筛选语料库Ω中与单条口令p潜在关联的词汇集合U,得到词汇集合中各个词汇的内容、所属的语料集合以及在口令中的位置;
集合U的每个元素是一个四元组(w,W,l,k),其中w为与单条口令p相关的词汇,W是w所属的语料集合,l和k表示w与p[l:k]区间的字符可能具有近似匹配关系;
潜在关联的词汇集合U的计算如算法-1所示:遍历p所有三个字符的逆替换集合STA -1中的元素c0c1c2,并使用c0c1c2查找H3以得到粗略的集合U1,如算法-1的第2~7步;从粗略的集合U1中筛选包括了不多于2个p的逆替换字符集STA -1中不存在的字符的w,如算法的9~15步。
【算法-1】获取潜在关联词汇集合:
输入:p=d0…dB-1,语料库集合;H3,三字符词汇表;
输出:U={(w,W,l,r)},潜在关联词汇集合;
S2.2、使用基于Levenshtein算法的字符串近似匹配方法计算潜在关联的词汇集合U中每个词汇与口令p相关字段之间的变形规则,得到变形规则集合Q;
Q的每个元素为一个五元组(w,W,l,k,M),其中w,W,l,k的含义与词汇集合U相同,M为w变换到p[l:k]所需要的变形规则;
具体步骤如算法-2所示,第2步中采用支持S48字符替换集合、删除特定字符和大小写替换三种操作的Levenshtein算法计算w和p[l:k]的编辑距离矩阵CL,编辑距离矩阵CL最后一行的最小值即为对应的最小开销;第3步中,由最小值的位置出发使用回溯方法找到从w变换到p[l:k]的变形消耗costL和变形命令序列,即对应的变形规则ML;第4步和第5步将词汇w都转换为大写构成的字符串upper(w),计算字符串upper(w)转为p[l:k]的变形消耗costU和变形规则MU;在第6步中比较从w变换到p[l:k]的变形消耗costL和字符串upper(w)转为p[l:k]的变形消耗costU与词汇w都转换为大写构成的字符串upper(w)的变形消耗c(U)之和,若costL数值更大则选择使用全部转为大写的变形命令;第11步和第12步检查w所产生的变形消耗,仅仅在Q中保留消耗小于等于5的变形规则;
【算法-2】计算潜在关联词汇集合对应的变形规则集合:
输入:p:口令;
U(p)={(w,W,l,r)}:潜在关联词汇集合;
输出:Q(p)={(w,W,l,r,M)}:关联词汇集合对应的变形命令;
S2.3、若口令p产生多个变形语料乘积规则,使用同时考虑了猜测次数和变形消耗两个因素的规则评估函数f(r)=(c(r)+0.75)4×|G(r)|,选择变形规则集合Q中规则评估函数值最小的规则作为口令p对应的变形语料乘积规则r;
基于B个字符的口令p=d0d1…dB-1和Q建立一个有向图G=(V,E),其中节点集合V={v0,…,vB},边集合E的每个元素为一个四元组(vsrc,vdst,W,M);vsrc和vdst为边的起始节点和结束节点,0≤src<dst≤n,W为此边对应的语料集合,M为变形规则,其中W和M的含义与步骤S2.2中Q的五元组中W和M含义相同;图G包含B+1个节点,其中前B个节点与p的B个字符对应,vB为结束节点;
具体步骤如算法-3所示:第3~4步构造一条从第一个节点到结束节点的路径,对应于该口令的暴力规则;第5~6步根据Q的每个元素构造一条边,每条边表示语料集合W中的一个词汇可以通过变形规则M转换为口令p中从边起点到终点的字符子串;第9步中采用规则评估函数f(r)=(c(r)+0.75)4×|G(r)|综合考虑规则的变形消耗和猜测次数;第7~9步选择规则评价函数最小的规则作为该口令对应的变形语料乘积规则。
【算法-3】选择最优规则
输入:口令p=d0…dB-1,变形规则集合Q(p)={(w,W,l,r,M)};
输出:变形语料乘积规则r;
进一步地,步骤S3中,对于给定的训练口令集合P,可能会有一个或者多个口令产生相同的规则,需要统计每条口令对应的规则出现的频度,最终得到规则集合T={r1,r2,…,rn},以及每条规则出现的频度{s1,…,sn};
步骤S4中,变形语料乘积规则的效费比定义为该规则在规则集合中出现的频度除以该规则的猜测次数,即效费比ei=si/|G(ri)|;将规则按照效费比从高到低进行排序,形成猜测规则序列R=<r1',...,rn'>,其中ri'为规则序列R中的第i条规则。
进一步地,步骤S5中,在真实的口令破解过程中,受猜测时间和计算规模的约束,口令猜测次数S是有限的,对于按照效费比从大到小排序的猜测规则序列R,根据口令猜测数量要求S从序列起始处选取变形语料乘积规则r,直至所选择的变形语料乘积规则r的猜测次数之和不小于口令猜测数量要求S为止,即对于猜测规则序列R=<r1',...,rn'>,如果m满足,且/>则RS=<r1',...,rm'>,所选取的变形语料乘积规则按照选取的顺序构成口令猜测规则序列RS
进一步地,步骤S6中,将测试口令集P'中的口令q转换为变形语料乘积规则rq,并判断该规则rq是否在口令猜测规则序列RS中;如果在口令猜测规则序列RS中,则认为该测试口令q被命中,否则认为没有命中;测试口令集的命中率等于口令猜测规则序列RS中命中的口令数h除以测试口令集P'的口令总数|Q|。
本发明的有益效果包括以下三个方面:
1)变形语料乘积猜测规则能够有效地识别真实口令中的词汇变形情况,并且可以在猜测过程中扩展出训练口令集中没有出现的同类型词汇。
2)本发明在总猜测次数固定的情况下,口令猜测的命中率较已有方法更高。
3)由于本发明可以根据猜测次数约束S,直接产生了口令猜测规则序列RS,避免了PCFG、Markov模型、语义等方法在口令尝试过程中要计算每条口令的出现概率问题,大幅度减少了后续口令猜测过程的附加开销。
附图说明
图1是本发明实施例中一种识别口令中词汇变形并产生猜测规则的方法的总体流程图。
图2是本发明实施例中根据训练口令集产生规则序列集合及其频度的流程图。
图3是本发明实施例中根据口令猜测次数S,从口令猜测规则序列中选择猜测规则序列RS的流程图。
图4是本发明实施例中针对测试口令集Q,检测猜测规则序列RS命中率的流程图。
图5是本发明实施例中字符串“password”和“P4ssw0rd”近似匹配时的编辑距离矩阵示意图。
图6是本发明实施例中口令“myP4ssw0rd”产生变形语料猜测规则的有向无环图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合附图并举实施例,对本发明的具体实施进行详细说明。
一种识别口令中词汇变形并产生猜测规则的方法,如图1所示,具体包括以下步骤:
S1、构建语料库Ω,生成三字符词汇表;
所述语料库Ω的构建规则如下:
规则1、语料库由若干语料集合{W}构成,其中同一个语料集合包含同一类词汇;词汇类型包括但不限于常见姓名、地名、键盘字符序列、日期、年份、汉语拼音、手机号码等;语料库包括小写字母语料集合[az]、大写字母语料集合[AZ]、数字字母语料集合[09]和特殊符号语料集合[SP],分别对应ASCII码中的小写字母、大写字母、数字和不包含上述类型的其他可打印字符;
规则2、单个语料集合的词汇具有相同的属性和长度,数量不超过6000条,且语料集合中的字符类型不受约束;
规则3、任意两个语料集合之间没有相同的词汇;
语料库Ω中的特定语料集合W中词汇的数量为|W|,长度为l(W);语料库Ω的语料集合数为|Ω|。
对于可打印的ASCII字符c,定义以下基本操作:
如果c为小写字母,则小写到大写字母变换upper(c)为该字母的大写形式,否则upper(c)=c;
如果c为小写字母,则大小写字母相互变换toggle(c)为该字母的大写形式;如果c为小写字母,则toggle(c)为该字母的大写形式;其余情况,toggle(c)=c;
ctype(c)为该字符的类型,取值范围为小写字母、大写字母、数字和其他特殊字符;
字符替换集合ST的元素为二元组(x,y),描述为x→y其中x≠y;ST对字符c的替换集合定义为ST(c)={y|(c,y)∈ST},ST对字符c的逆替换集合定义为ST-1(c)={x|(x,c)∈ST}∪{c};
对于由可打印ASCII字符构成的字符串w=c0c1…cn-1,其长度l(w)=n;对于0≤l≤k<n-1,其字符串片段w[l:k]=cl…ck-1
所述三字符词汇表H3记录了语料库Ω中所有词汇中所有三个字符长度的子串所属的词汇、语料集合、以及该子串在词汇中所处的位置;H3以三个字符长度的子串c0c1c2作为索引,通过索引查找到一个集合,集合的每个元素为一个四元组(w,W,lw,kw),满足以下关系:
(1)w∈W,W∈Ω;
(2)w[lw:lw+2]=c0c1c2
(3)lw+3+kw=l(w);
即对于Ω中的特定语料集合W中的词汇w包括了三个字符片段c0c1c2,且该字符片段在w中距离起始和结束位置的距离lw和kw
S2、如图2所示,基于语料库Ω,对训练口令集合P中所有口令生成对应的变形语料乘积规则,构成规则集合T={r1,r2,…,rn};
变形语料乘积规则是k个语料集合经过对应变形规则变形后字符串集合的组合,记为r=W1<M1>…Wk<Mk>,其中Wi1∈Ω,Mi1为语料集合Wi1对应的变形规则,1≤i1≤k,每个语料集合可以具有独立的变形规则。变形语料乘积规则所对应的猜测口令集合为变形语料乘积规则中所有语料集合经过变形规则处理后的字符串集合的笛卡尔乘积,猜测口令集合G(r)={w1||…||wk|wi1∈Mi1(Wi1),Wi1∈Ω,1≤i1≤k},其中i1为临时变量,k为规则r的段数,wi1为语料集合Wi1中的一个词汇经过Mi1变形后的字符串,||为字符串拼接操作;猜测次数变形语料乘积规则所对应的猜测口令集合中的所有猜测口令的长度相同;
所述变形规则是一个或多个变形命令组成的序列,记为M=<m1,m2,…,mk>,其中m1,m2,…,mk表示变形命令;变形规则M对字符串w产生的变形字符串为M(w)=mk(…m2(m1(w)));
对于字符串w=“password”,变形规则的实例为:<sa@,so0,T0>(w)=“P@ssw0rd”。
特定语料集合W经过变形规则M所产生的变形字符串集合为M(W)={M(w)|w∈W};如果M为空,则M(W)=W。
所述变形命令包括字符替换、在特定位置删除字符、在特定位置大小写转换、全部字符大写四种,对于长度为N个字符输入字符串d0d1…dN-1,四种变形命令如下所示:
Sxy:将输入字符串中的字符x替换成y
输出字符串c0c1…cN-1的值
使用常见的48种字符替换集合,记为ST48={a→4,a→@,b→8,b→6,c→(,c→[,c→<,e→3,g→6,h→4,i→1,i→l,i→!,j→7,l→1,o→0,q→9,s→5,s→$,t→7,t→+,x→%,z→2,z→7,A→4,A→@,B→8,B→6,C→(,C→[,C→<,E→3,G→6,H→4,I→1,I→l,I→!,J→7,L→1,O→0,Q→9,S→5,S→$,T→7,T→+,X→%,Z→2,Z→7};
Du:删除第u个字符,其中0≤u≤N-1
输出字符串c0c1…cN-2的值为
Tv:对第v个字符大小写转换,其中0≤v≤N-1
输出字符串c0c1…cN-1的值为:
大小写转换也可以视为特殊的字符替换,定义大写字母替换集合STU={a→A,b→B,c→C,…,z→Z,1→!,2→@,3→#,4→$,5→%,6→,7→&,8→*,9→(,0→)},小写字母替换集合STL={A→a,B→b,C→c,…,Z→z};一个字符所有的可能替换集合定义为STA=ST48∪STU∪STL,STA的逆替换集合定义为STA -1
U:字符串全部大写,输出字符串c0c1…cN-1,定义为cj4=upper(dj4),1≤j4≤N-1;
口令变形难度越高,变形消耗值也越大;由此定义字符大小转换、全部大写的变形消耗分别为c(U)=c(Tv)=1,删除和字符替换的变形消耗分别为c(Du)=c(Sxy)=2,变形规则M=<m1,m2,…,mt>的变形消耗为所有变形命令的变形消耗之和,即变形语料乘积规则r=W1<M1>…Wk<Mk>的变形消耗为所有变形规则的变形消耗之和,即
对于语料库Ω和口令p,如果存在k个词汇w1,…,wk和k个变形规则M1,…,Mk满足:
(1)wi∈Wi,Wi∈Ω;
(2)p=M1(w1)||M2(w2)||…||Mk(wk);
则r=W1<M1>…Wk<Mk>为p的一种可能变形语料乘积规则。
步骤S2具体包括以下步骤:
S2.1、基于步骤S1中生成的三字符词汇表H3筛选语料库Ω中与单条口令p潜在关联的词汇集合U,得到词汇集合中各个词汇的内容、所属的语料集合以及在口令中的位置;
集合U的每个元素是一个四元组(w,W,l,k),其中w为与单条口令p相关的词汇,W是w所属的语料集合,l和k表示w与p[l:k]区间的字符可能具有近似匹配关系;
潜在关联的词汇集合U的计算如算法-1所示:遍历p所有三个字符的逆替换集合STA -1中的元素c0c1c2,并使用c0c1c2查找H3以得到粗略的集合U1,如算法-1的第2~7步;从粗略的集合U1中筛选包括了不多于2个p的逆替换字符集STA -1中不存在的字符的w,如算法的9~15步。
【算法-1】获取潜在关联词汇集合:
输入:p=d0…dB-1,语料库集合;H3,三字符词汇表;
输出:U={(w,W,l,r)},潜在关联词汇集合;
S2.2、使用基于Levenshtein算法的字符串近似匹配方法计算潜在关联的词汇集合U中每个词汇与口令p相关字段之间的变形规则,得到变形规则集合Q;
Q的每个元素为一个五元组(w,W,l,k,M),其中w,W,l,k的含义与词汇集合U相同,M为w变换到p[l:k]所需要的变形规则;
具体步骤如算法-2所示,第2步中采用支持S48字符替换集合、删除特定字符和大小写替换三种操作的Levenshtein算法计算w和p[l:k]的编辑距离矩阵CL,编辑距离矩阵CL最后一行的最小值即为对应的最小开销;第3步中,由最小值的位置出发使用回溯方法找到从w变换到p[l:k]的变形消耗costL和变形命令序列,即对应的变形规则ML;第4步和第5步将词汇w都转换为大写构成的字符串upper(w),计算字符串upper(w)转为p[l:k]的变形消耗costU和变形规则MU;在第6步中比较从w变换到p[l:k]的变形消耗costL和字符串upper(w)转为p[l:k]的变形消耗costU与词汇w都转换为大写构成的字符串upper(w)的变形消耗c(U)之和,若costL数值更大则选择使用全部转为大写的变形命令;第11步和第12步检查w所产生的变形消耗,仅仅在Q中保留消耗小于等于5的变形规则;
【算法-2】计算潜在关联词汇集合对应的变形规则集合:
输入:p:口令;
U(p)={(w,W,l,r)}:潜在关联词汇集合;
输出:Q(p)={(w,W,l,r,M)}:关联词汇集合对应的变形命令;
S2.3、若口令p产生多个变形语料乘积规则,使用同时考虑了猜测次数和变形消耗两个因素的规则评估函数f(r)=(c(r)+0.75)4×|G(r)|,选择变形规则集合Q中规则评估函数值最小的规则作为口令p对应的变形语料乘积规则r;
基于p=d0d1…dB-1和Q建立一个有向图G=(V,E),其中节点集合V={v0,…,vB},边集合E的每个元素为一个四元组(vsrc,vdst,W,M);vi和vj为边的起始节点和结束节点,0≤src<dst≤B,W为此边对应的语料集合,M为变形规则,其中W和M的含义与步骤S2.2中Q的五元组中W和M含义相同;图G包含B+1个节点,其中前B个节点与p的B个字符对应,vB为结束节点;
具体步骤如算法-3所示:第3~4步构造一条从第一个节点到结束节点的路径,对应于该口令的暴力规则;第5~6步根据Q的每个元素构造一条边,每条边表示语料集合W中的一个词汇可以通过变形规则M转换为口令p中从边起点到终点的字符子串;第9步中采用规则评估函数f(r)=(c(r)+0.75)4×|G(r)|综合考虑规则的变形消耗和猜测次数;第7~9步选择规则评价函数最小的规则作为该口令对应的变形语料乘积规则。
【算法-3】选择最优规则
输入:口令p=d0…dB-1,变形规则集合Q(p)={(w,W,l,r,M)};
输出:变形语料乘积规则r;
/>
S3、如图2所示,训练集中不同口令可能会产生相同的变形语料乘积规则,需要统计规则集合T中各个变形语料乘积规则的频度,最终得到规则集合T={r1,r2,…,rn},以及每条规则出现的频度{s1,…,sn};
S4、使用效费比指标对规则集合T中的变形语料乘积规则进行排序,得到猜测规则序列R;
变形语料乘积规则的效费比定义为该规则在规则集合中出现的频度除以该规则的猜测次数,即效费比ei=si/|G(ri)|;将规则按照效费比从高到低进行排序,形成猜测规则序列R=<r1',...,rn'>,其中ri'为规则序列R中的第i条规则。
S5、如图3所示,根据口令猜测数量要求S,从R中选择规则,形成猜测次数不超过S的口令猜测规则序列RS
在真实的口令破解过程中,受猜测时间和计算规模的约束,口令猜测次数S是有限的,对于按照效费比从大到小排序的猜测规则序列R,根据口令猜测数量要求S从序列起始处选取变形语料乘积规则r,直至所选择的变形语料乘积规则r的猜测次数之和不小于口令猜测数量要求S为止,即对于猜测规则序列R=<r1',...,rn'>,如果m满足,则RS=<r1',...,rm'>,所选取的变形语料乘积规则按照选取的顺序构成口令猜测规则序列RS
S6、如图4所示,快速检测猜测规则序列Rs对测试口令集P'的命中率;
将测试口令集P'中的口令q转换为变形语料乘积规则rq,并判断该规则rq是否在口令猜测规则序列RS中;如果在口令猜测规则序列RS中,则认为该测试口令q被命中,否则认为没有命中;测试口令集的命中率等于口令猜测规则序列RS中命中的口令数h除以测试口令集P'的口令总数|Q|。
本发明的实施需要由数据和软件两个部分组成。其中数据包括语料库Ω,训练口令集合P,测试口令集P'。软件包括三字符词汇表生成软件、规则生成和频度统计软件、口令猜测规则生成软件、命中率检测软件等四个部分
实施步骤具体如下:
A1、使用三字符词汇生成软件对语料库Ω生成三字符词汇表H3
A2、对训练口令集合P,规则生成和频度统计软件完成步骤S2和步骤S3,将生成规则集合R={r1,r2,…,rn}以及每条规则对应的频度{s1,…,sn},并存储于文件F中;
A3、输入待口令猜测次数约束S和实施步骤A1中产生的文件F,口令猜测规则生成软件完成步骤S4和S5,生成口令猜测规则子序列RS,并存储于为文件RF中;
A4、将RF和测试口令集P',使用命中率检测软件完成步骤S6,检测P'在猜测次数为S时的命中率。
实施例1:
生成训练口令“myP4ssw0rd”的变形语料乘积规则:
B1、查询词汇表H3,得到口令“myP4ssw0rd”的潜在关联词汇集合U。本实施例中,语料库Ω中词汇数为2406857,潜在关联词汇集合中词汇数|U|=3246,典型词汇如表-1所示:
表-1潜在关联词汇示例
B2、取U中的每个词汇w,计算Q。本实施例中,对于词汇w=“password”,编辑距离矩阵如图5所示,其对应的变形规则M=<T0,sa4,so0>;
B3、根据p和Q建立有向无环图G,如图6所示。本实施例中,图6中每一条从开始节点到终止节点的路径都对应一条规则,如表-2所示:
表-2附图-6中从起点到终点的路径及对应规则示例
选择f(r)最小者为最终规则,所以口令p=“myP4ssw0rd”的变形语料乘积规则r=[EN_VA0@A_2][EN_VA0_8]<T0,sa4,so0>。
实施例2:
训练集Rockyou产生猜测规则对测试集yahoo的效果:
本实施例中,以口令集合Rockyou作为训练集,以口令集合yahoo作为测试集,在猜测次数变化时,对测试集的命中率如表-3所示。
表-3猜测次数与命中率的关系(训练集为Rockyou,测试集为yahoo)
本实施例中,在猜测次数为109,训练集为Rockyou,测试集为Yahoo时,表-4对比了文献(Ji S,Yang S,Hu X,et al.Zero-sum password cracking game:Alarge-scaleempirical study on the crackability,correlation,and security of passwords[J].IEEE transactions on dependable and secure computing,2015,14(5):550-564.)给出的PCFG和Markov模型等两种方法与本发明提出的变形语料乘积方法的命中率。
表-4与PCFG、Markov模型方法的命中率对比
本实施例中,在测试集为yahoo的四种字符类型口令时,变形语料乘积方法与PCFG的命中率对比如表-5所示。
表-5对yahoo中四种字符类型口令的命中率对比
由表-4可以看出,变形语料乘积方法在总体上优于PCFG和Markov模型方法。对于较为复杂的四种字符类型口令,变形语料乘积方法在较小和较大的猜测次数上也明显优于PCFG方法。在猜测次数为1011到1013时,两者相差不大。其主要原因在于:
1)在较小猜测次数时,变形语料乘积方法可以发现典型的带变形词汇的口令,并产生高效的规则集合;
2)在猜测次数较大时,由于变形语料乘积方法使用了语料乘积方式,所以单条规则所需要的猜测次数较大,所以在相同的猜测次数下破解率会略低于PCFG方法;
3)在猜测次数继续增大时,变形语料乘积方法显现出词汇泛化能力,能继续保持较高的破解率增加速度,而PCFG方法的破解率增长则明显放缓。

Claims (7)

1.一种识别口令中词汇变形并产生猜测规则的方法,其特征在于,具体包括以下步骤:
S1、构建语料库Ω,生成三字符词汇表;
S2、基于语料库Ω,对训练口令集合P中所有口令生成对应的变形语料乘积规则,构成由n条规则构成的规则集合T={r1,r2,…,rn};变形语料乘积规则是k个语料集合经过对应变形规则变形后字符串集合的组合,记为r=W1<M1>…Wk<Mk>,其中Wi1∈Ω,Mi1为语料集合Wi1对应的变形规则,1≤i1≤k,每个语料集合可以具有独立的变形规则;变形语料乘积规则所对应的猜测口令集合为变形语料乘积规则中所有语料集合经过变形规则处理后的字符串集合的笛卡尔乘积,猜测口令集合G(r)={w1||…||wk|wi1∈Mi1(Wi1),Wi1∈Ω,1≤i1≤k},其中i1为临时变量,k为规则r的段数,wi1为语料集合Wi1中的一个词汇经过Mi1变形后的字符串,||为字符串拼接操作;猜测次数变形语料乘积规则所对应的猜测口令集合中的所有猜测口令的长度相同;
所述变形规则是一个或多个变形命令组成的序列,记为M=<m1,m2,…,mt>,其中m1,m2,…,mt表示变形命令;变形规则M对字符串w产生的变形字符串为M(w)=mt(…m2(m1(w)));
语料集合W经过变形规则M所产生的变形字符串集合为M(W)={M(w)|w∈W};如果M为空,则M(W)=W;
所述变形命令包括字符替换、在特定位置删除字符、在特定位置大小写转换、全部字符大写四种,对于长度为N个字符的输入字符串d0d1…dN-1,四种变形命令如下所示:
Sxy:将输入字符串中的字符x替换成y
输出字符串c0c1…cN-1的值
Du:删除第u个字符,其中0≤u≤N-1
输出字符串c0c1…cN-2的值为
Tv:对第v个字符大小写转换,其中0≤v≤N-1
输出字符串c0c1…cN-1的值为:
大小写转换也可以视为特殊的字符替换,定义大写字母替换集合STU={a→A,b→B,c→C,…,z→Z,1→!,2→@,3→#,4→$,5→%,6→,7→&,8→*,9→(,0→)},小写字母替换集合STL={A→a,B→b,C→c,…,Z→z};一个字符所有的可能替换集合定义为STA=ST48∪STU∪STL,STA的逆替换集合定义为STA -1
U:字符串全部大写,输出字符串c0c1…cN-1,定义为cj4=upper(dj4),1≤j4≤N-1;
定义字符大小转换、全部大写的变形消耗分别为c(U)=c(Tv)=1,删除和字符替换的变形消耗分别为c(Du)=c(Sxy)=2,变形规则M=<m1,m2,…,mt>的变形消耗为所有变形命令的变形消耗之和,即变形语料乘积规则r=W1<M1>…Wk<Mk>的变形消耗为所有变形规则的变形消耗之和,即/>
对于语料库Ω和口令p,如果存在k个词汇w1,…,wk和k个变形规则M1,…,Mk满足:
(1)wi∈Wi,Wi∈Ω;
(2)p=M1(w1)||M2(w2)||…||Mk(wk);
则r=W1<M1>…Wk<Mk>为p的一种可能变形语料乘积规则;
具体包括以下步骤:
S2.1、基于步骤S1中生成的三字符词汇表H3筛选语料库Ω中与单条口令p潜在关联的词汇集合U,得到词汇集合中各个词汇的内容、所属的语料集合以及在口令中的位置;
集合U的每个元素是一个四元组(w,W,l,k),其中w为与单条口令p相关的词汇,W是w所属的语料集合,l和k表示w与p[l:k]区间的字符可能具有近似匹配关系;
潜在关联的词汇集合U的计算如下:遍历p所有三个字符的逆替换集合STA -1中的元素c0c1c2,并使用c0c1c2查找H3以得到粗略的集合U1;从粗略的集合U1中筛选包括了不多于2个p的逆替换字符集STA -1中不存在的字符的w;
S2.2、使用基于Levenshtein算法的字符串近似匹配方法计算潜在关联的词汇集合U中每个词汇与口令p相关字段之间的变形规则,得到变形规则集合Q;
Q的每个元素为一个五元组(w,W,l,k,M),其中w,W,l,k的含义与词汇集合U相同,M为w变换到p[l:k]所需要的变形规则;
具体步骤如下:采用支持S48字符替换集合、删除特定字符和大小写替换三种操作的Levenshtein算法计算w和p[l:k]的编辑距离矩阵CL,编辑距离矩阵CL最后一行的最小值即为对应的最小开销;由最小值的位置出发使用回溯方法找到从w变换到p[l:k]的变形消耗costL和变形命令序列,即对应的变形规则ML;将词汇w都转换为大写构成的字符串upper(w),计算字符串upper(w)转为p[l:k]的变形消耗costU和变形规则MU;比较从w变换到p[l:k]的变形消耗costL和字符串upper(w)转为p[l:k]的变形消耗costU与词汇w都转换为大写构成的字符串upper(w)的变形消耗c(U)之和,若costL数值更大则选择使用全部转为大写的变形命令;检查w所产生的变形消耗,仅仅在Q中保留消耗小于等于5的变形规则;
S2.3、若口令p产生多个变形语料乘积规则,使用同时考虑了猜测次数和变形消耗两个因素的规则评估函数f(r)=(c(r)+0.75)4×|G(r)|,选择变形规则集合Q中规则评估函数值最小的规则作为口令p对应的变形语料乘积规则r;
基于B个字符的口令p=d0d1…dB-1和Q建立一个有向图G=(V,E),其中节点集合V={v0,…,vn},边集合E的每个元素为一个四元组(vsrc,vdst,W,M);vsrc和vdst为边的起始节点和结束节点,0≤src<dst≤B,W为此边对应的语料集合,M为变形规则,其中W和M的含义与步骤S2.2中Q的五元组中W和M含义相同;图G包含B+1个节点,其中前B个节点与p的B个字符对应,vB为结束节点;
具体步骤如下:构造一条从第一个节点到结束节点的路径,对应于该口令的暴力规则;根据Q的每个元素构造一条边,每条边表示语料集合W中的一个词汇可以通过变形规则M转换为口令p中从边起点到终点的字符子串;采用规则评估函数f(r)=(c(r)+0.75)4×|G(r)|综合考虑规则的变形消耗和猜测次数;选择规则评价函数最小的规则作为该口令对应的变形语料乘积规则;
S3、统计规则集合T中各个变形语料乘积规则的频度;
S4、使用效费比指标对规则集合T中的变形语料乘积规则进行排序,得到猜测规则序列R;
S5、根据口令猜测数量要求S,从R中选择规则,形成猜测次数不超过S的口令猜测规则序列RS
S6、快速检测猜测规则序列Rs对测试口令集P'的命中率。
2.根据权利要求1所述的一种识别口令中词汇变形并产生猜测规则的方法,其特征在于,步骤S1中,所述语料库Ω的构建规则如下:
规则1、语料库由若干语料集合{W}构成,包括小写字母语料集合[az]、大写字母语料集合[AZ]、数字字母语料集合[09]和特殊符号语料集合[SP],分别对应ASCII码中的小写字母、大写字母、数字和不包含上述类型的其他可打印字符;
规则2、单个语料集合的词汇具有相同的属性和长度,数量不超过6000条,且语料集合中的字符类型不受约束;
规则3、任意两个语料集合之间没有相同的词汇;
语料库Ω中的特定语料集合W中词汇的数量为|W|,长度为l(W);语料库Ω的语料集合数为|Ω|。
3.根据权利要求2所述的一种识别口令中词汇变形并产生猜测规则的方法,其特征在于,对于可打印的ASCII字符c,定义以下基本操作:
如果c为小写字母,则小写到大写字母变换upper(c)为该字母的大写形式,否则upper(c)=c;
如果c为小写字母,则大小写字母相互变换toggle(c)为该字母的大写形式;如果c为小写字母,则toggle(c)为该字母的大写形式;其余情况,toggle(c)=c;
ctype(c)为该字符的类型,取值范围为小写字母、大写字母、数字和其他特殊字符;
字符替换集合ST的元素为二元组(x,y),描述为x→y其中x≠y;ST对字符c的替换集合定义为ST(c)={y|(c,y)∈ST},ST对字符c的逆替换集合定义为ST-1(c)={x|(x,c)∈ST}∪{c};
对于由可打印ASCII字符构成的字符串w=c0c1…cn-1,其长度l(w)=n;对于0≤l≤k<n-1,其字符串片段w[l:k]=cl…ck-1
4.根据权利要求1所述的一种识别口令中词汇变形并产生猜测规则的方法,其特征在于,所述三字符词汇表H3记录了语料库Ω中所有词汇中所有三个字符长度的子串所属的词汇、语料集合、以及该子串在词汇中所处的位置;H3以三个字符长度的子串c0c1c2作为索引,通过索引查找到一个集合,集合的每个元素为一个四元组(w,W,lw,kw),满足以下关系:
(1)w∈W,W∈Ω;
(2)w[lw:lw+2]=c0c1c2
(3)lw+3+kw=l(w);
即对于Ω中的特定语料集合W中的词汇w包括了三个字符片段c0c1c2,且该字符片段在w中距离起始和结束位置的距离lw和kw
5.根据权利要求1所述的一种识别口令中词汇变形并产生猜测规则的方法,其特征在于,步骤S3中,对于给定的训练口令集合P,统计每条口令对应的规则出现的频度,最终得到规则集合T={r1,r2,…,rn},以及每条规则出现的频度{s1,…,sn};
步骤S4中,变形语料乘积规则的效费比定义为该规则在规则集合中出现的频度除以该规则的猜测次数,即效费比ei=si/|G(ri)|;将规则按照效费比从高到低进行排序,形成猜测规则序列R=<r1',...,rn'>,其中ri'为规则序列R中的第i条规则。
6.根据权利要求5所述的一种识别口令中词汇变形并产生猜测规则的方法,其特征在于,步骤S5中,对于按照效费比从大到小排序的猜测规则序列R,根据口令猜测数量要求S从序列起始处选取变形语料乘积规则r,直至所选择的变形语料乘积规则r的猜测次数之和不小于口令猜测数量要求S为止,即对于猜测规则序列R=<r1',...,rn'>,如果m满足,且/>则RS=<r1',...,rm'>,所选取的变形语料乘积规则按照选取的顺序构成口令猜测规则序列RS
7.根据权利要求6所述的一种识别口令中词汇变形并产生猜测规则的方法,其特征在于,步骤S6中,将测试口令集P'中的口令q转换为变形语料乘积规则rq,并判断该规则rq是否在口令猜测规则序列RS中;如果在口令猜测规则序列RS中,则认为该测试口令q被命中,否则认为没有命中;测试口令集的命中率等于口令猜测规则序列RS中命中的口令数h除以测试口令集P'的口令总数|Q|。
CN202011023884.4A 2020-09-25 2020-09-25 一种识别口令中词汇变形并产生猜测规则的方法 Active CN112149388B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011023884.4A CN112149388B (zh) 2020-09-25 2020-09-25 一种识别口令中词汇变形并产生猜测规则的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011023884.4A CN112149388B (zh) 2020-09-25 2020-09-25 一种识别口令中词汇变形并产生猜测规则的方法

Publications (2)

Publication Number Publication Date
CN112149388A CN112149388A (zh) 2020-12-29
CN112149388B true CN112149388B (zh) 2024-04-09

Family

ID=73898070

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011023884.4A Active CN112149388B (zh) 2020-09-25 2020-09-25 一种识别口令中词汇变形并产生猜测规则的方法

Country Status (1)

Country Link
CN (1) CN112149388B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112861113B (zh) * 2021-01-08 2022-05-20 复旦大学 一种参数化混合模型的口令猜测方法
CN113886784B (zh) * 2021-12-06 2022-04-22 华南理工大学 基于语料库提升小训练集猜测效率的口令猜测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109145582A (zh) * 2018-06-05 2019-01-04 中国科学院信息工程研究所 一种基于字节对编码的密码猜测集生成方法、密码破解方法及装置
CN110555140A (zh) * 2019-08-29 2019-12-10 华南理工大学 面向口令猜测的语料乘积规则的描述、生成与检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110708169A (zh) * 2019-10-19 2020-01-17 潘安琪 一种基于结构划分的口令攻击方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109145582A (zh) * 2018-06-05 2019-01-04 中国科学院信息工程研究所 一种基于字节对编码的密码猜测集生成方法、密码破解方法及装置
CN110555140A (zh) * 2019-08-29 2019-12-10 华南理工大学 面向口令猜测的语料乘积规则的描述、生成与检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PassGAN: A Deep Learning Approach for Password Guessing;Briland Hitaj et al.;《ACNS 2019, LNCS 11464》;第217-237页 *
针对特定文件结构和关键指令的符号执行 优化方法;陈虎 等;《信息网络安全》;第2018年卷(第9期);第86-94页 *

Also Published As

Publication number Publication date
CN112149388A (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
CN111310443B (zh) 一种文本纠错方法和系统
Creutz Unsupervised segmentation of words using prior distributions of morph length and frequency
Kohonen et al. Self-organizing maps of symbol strings
WO2021114745A1 (zh) 一种基于词缀感知的社交媒体命名实体识别方法
US8559723B2 (en) Letter model and character bigram based language model for handwriting recognition
CN110555140B (zh) 面向口令猜测的语料乘积规则的描述、生成与检测方法
CN112149388B (zh) 一种识别口令中词汇变形并产生猜测规则的方法
WO2011042710A1 (en) System and method for inputting text into electronic devices
CN110807102B (zh) 知识融合方法、装置、计算机设备和存储介质
US20120089620A1 (en) Extracting data
KR102217248B1 (ko) 텍스트 문서 요약을 위한 자질 추출 및 학습 방법
CN111460158B (zh) 一种基于情感分析的微博话题公众情感预测方法
CN115186665B (zh) 一种基于语义的无监督学术关键词提取方法及设备
CN112232055A (zh) 一种基于拼音相似度与语言模型的文本检测与纠正方法
Nguyen et al. OCR error correction for unconstrained Vietnamese handwritten text
Sundaram et al. Bigram language models and reevaluation strategy for improved recognition of online handwritten Tamil words
CN116090441B (zh) 一种融合局部语义特征和全局语义特征的中文拼写纠错方法
Anigbogu et al. Hidden Markov models in text recognition
Premaratne et al. Lexicon and hidden Markov model-based optimisation of the recognised Sinhala script
CN113326833B (zh) 一种基于中心损失的文字识别改进训练方法
CN113282746B (zh) 一种网络媒体平台变体评论对抗文本生成方法
CN111428475B (zh) 分词词库的构建方法、分词方法、装置及存储介质
CN111881678A (zh) 一种基于无监督学习的领域词发现方法
Manohar et al. Spellchecker for Malayalam using finite state transition models
Hegde et al. Nearest neighbour-based feature selection and classification approach for analysing sentiments

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
GR01 Patent grant
GR01 Patent grant