一种基于J-W距离的中文域名相似度量方法转让专利

申请号 : CN201710749659.0

文献号 : CN107609059B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 龙华祁俊辉邵玉斌杜庆治

申请人 : 昆明理工大学

摘要 :

本发明涉及一种基于J‑W距离的中文域名相似度量方法,属于网络安全技术领域。本发明通过Unicode汉字笔画顺序表将汉字编码后映射为一串数字型字符串,同时创新性地引入机器学习领域的Jaro‑Winler Distance算法,与最长公共子串相结合,进而对中文域名进行相似度量。首先获取待检测域名和目标域名,对其初始化生成域名主体;其次根据Unicode汉字笔画顺序表对域名主体进行编码处理,生成数字型字符串,并作为Jaro‑Winler Distance算法的输入生成检测矩阵;然后与数字型字符串最长公共子串相结合,根据相关规则计算数字型字符串的相似度,此数字型字符串的相似度可以有效代表汉字之间的相似度。

权利要求 :

1.一种基于J-W距离的中文域名相似度量方法,其特征在于:

Step1:获取待检测域名X以及目标域名Y;

Step2:对待检测域名X和目标域名Y以点号“.”或句号“。”分割,忽略网络名、域名后缀,保留域名主体,并生成域名主体的中文字符集合x:{x1,x2…xp}和y:{y1,y2…yq};

Step3:根据Unicode汉字笔画顺序表,遍历Step2中得到的域名主体中文字符集合x:{x1,x2…xp}和y:{y1,y2…yq},按照集合字符顺序对每个中文字符xi,i∈[1,p]或yi,i∈[1,q]查找其对应汉字笔画顺序,根据相应编码规则进行转换,生成待检测域名X域名主体的编码字符串strx和目标域名Y域名主体的编码字符串stry,并获取编码字符串strx和stry的长度lenx和leny;

Step4.1:将待检测域名X和目标域名Y的域名主体编码字符串strx和stry作为J-W算法的输入,并生成检测矩阵Step4.2:根据公式(1)计算匹配窗口值MW:

Step4.3:由检测矩阵 及匹配窗口值MW,根据相关规则,计算匹配字符数m和匹配字符换位数n;对于匹配字符数m的计算,若编码字符串strx和stry中相同字符相差距离小于匹配窗口值MW,则视为该字符匹配;在匹配过程中,需排除被匹配过的字符,若找到匹配字符,则需跳出此次匹配,进行下一字符的匹配;

对于匹配字符换位数n的计算,则需看编码字符串strx和stry中对于匹配字符集的顺序是否一致,若不一致,则换位数目的一半即为匹配字符换位数n;匹配字符数m和匹配字符换位数n应满足以下要求:Step4.4:由Step4.3计算所得匹配字符数m和匹配字符换位数n,根据公式(2)计算待检测域名X和目标域名Y的域名主体编码字符串strx和stry的Jaro Distance:Step4.5:获取待检测域名X和目标域名Y的域名主体编码字符串strx和stry的最长公共子串strxy,并得到其长度lenxy;

Step4.6:根据公式(3)进一步计算待检测域名X和目标域名Y的域名主体编码字符串strx和stry的Jaro-Winkler Distance:其中,bt为是否需要进一步计算的阈值,p为缩放因子。

2.根据权利要求1所述的基于J-W距离的中文域名相似度量方法,其特征在于:所述步骤Step1中的待检测域名X以及目标域名Y,可以为一级域名或二级域名。

3.根据权利要求1所述的基于J-W距离的中文域名相似度量方法,其特征在于:所述步骤Step2中如果待检测域名X以及目标域名Y是一级域名,则只需忽略域名后缀。

4.根据权利要求1所述的基于J-W距离的中文域名相似度量方法,其特征在于:所述步骤Step1中待检测域名X以及目标域名Y需是符合常规的域名,即经步骤Step2初始化后,生成域名主体的中文字符集合x:{x1,x2…xp}和y:{y1,y2…yq}需满足以下要求:p,q∈N+

同样,经步骤Step3编码处理后,生成编码字符串strx和stry的长度lenx和leny理应满足以下要求:lenx,leny∈N+。

5.根据权利要求1所述的基于J-W距离的中文域名相似度量方法,其特征在于:所述Step3中的Unicode汉字笔画顺序表为将汉字笔画顺序横、竖、撇、捺、折编码为数字的1、2、

3、4、5,将所有中文汉字按此编码处理。

6.根据权利要求1所述的基于J-W距离的中文域名相似度量方法,其特征在于:所述步骤Step3中编码规则,先生成空字符串,然后对待比较域名X域名主体中文字符集合x:{x1,x2…xp},按照先后顺序遍历每个中文字符xi,i∈[1,p],根据Unicode汉字笔画顺序表查找其对应汉字笔画顺序,加至字符串尾部,集合中所有元素都处理后,字符串便为待检测域名X域名主体的编码字符串strx,同理,以此方法对目标域名Y处理,便可生成目标域名Y域名主体的编码字符串stry。

7.根据权利要求1所述的基于J-W距离的中文域名相似度量方法,其特征在于:所述步骤Step4.6中进一步计算阈值bt,取值为0.7,所述缩放因子p,取值为0.1。

8.根据权利要求1所述的基于J-W距离的中文域名相似度量方法,其特征在于:所述步骤Step4.4和Step4.6中所计算的Disj和Disjw应满足以下要求:若不满足,则说明计算错误,需重新计算;若满足,其值越接近1,则说明待检测域名X与目标域名Y就越相似。

说明书 :

一种基于J-W距离的中文域名相似度量方法

技术领域

[0001] 本发明涉及一种基于J-W距离的中文域名相似度量方法,属于网络安全技术领域。

背景技术

[0002] 随着互联网的发展和普及,中文域名也逐步成为国际化域名的重要组成部分,与此同时,针对中文域名的域名仿冒攻击日渐增多,域名的仿冒形式也日益复杂。由于中文汉字存在很多形近字,再加上人的快速阅读习惯,难免会在一定程度上造成视觉的错误判断。
[0003] 传统的域名相似度量方法,只能适用于英文域名的相似度量,而对于中文域名来讲,效果并不显著。而且,目前国内对中文域名相似度量的相关研究还比较欠缺,研究成果也比较少。
[0004] 目前大多数中文域名相似度量方法,是将中文汉字先按照单字相似,再按照整体相似计算其相似度,那么这类方法不管是从时间复杂度来讲,或是从准确性来讲,都有一定的缺陷,而且对于如何计算其单字相似度或整体相似度也没有具体的实施算法。

发明内容

[0005] 本发明要解决的技术问题是针对现有技术的局限和不足,提供一种基于J-W距离的中文域名相似度量方法,通过Unicode汉字笔画顺序表将汉字编码后映射为一串数字型字符串,同时创新性地引入机器学习领域的Jaro-Winler Distance算法,与最长公共子串相结合,以适应对数字型字符串的相似度量,此数字型字符串的相似度可以有效代表汉字之间的相似度。本发明相对现阶段中文域名相似度量方法而言,主要解决了现有技术准确性不足、效率差等现象,致力于增加目前中文域名相似度量的准确性和时效问题。
[0006] 本发明的技术方案是:一种基于J-W距离的中文域名相似度量方法,具体步骤为:
[0007] Step1:获取待检测域名X以及目标域名Y;
[0008] Step2:对待检测域名X和目标域名Y以点号“.”或句号“。”分割,忽略网络名、域名后缀,保留域名主体,并生成域名主体的中文字符集合x:{x1,x2…xp}和y:{y1,y2…yq};
[0009] Step3:根据Unicode汉字笔画顺序表,遍历Step2中得到的域名主体中文字符集合x:{x1,x2…xp}和y:{y1,y2…yq},按照集合字符顺序对每个中文字符xi,i∈[1,p]或yi,i∈[1,q]查找其对应汉字笔画顺序,根据相应编码规则进行转换,生成待检测域名X域名主体的编码字符串strx和目标域名Y域名主体的编码字符串stry,并获取编码字符串strx和stry的长度lenx和leny;
[0010] Step4.1:将待检测域名X和目标域名Y的域名主体编码字符串strx和stry作为J-W算法的输入,并生成检测矩阵
[0011] Step4.2:根据公式(1)计算匹配窗口值MW:
[0012]
[0013] Step4.3:由检测矩阵 及匹配窗口值MW,根据相关规则,计算匹配字符数m和匹配字符换位数n;
[0014] Step4.4:由Step4.3计算所得匹配字符数m和匹配字符换位数n,根据公式(2)计算待检测域名X和目标域名Y的域名主体编码字符串strx和stry的Jaro Distance:
[0015]
[0016] Step4.5:获取待检测域名X和目标域名Y的域名主体编码字符串strx和stry的最长公共子串strxy,并得到其长度lenxy;
[0017] Step4.6:根据公式(3)进一步计算待检测域名X和目标域名Y的域名主体编码字符串strx和stry的Jaro-Winkler Distance:
[0018]
[0019] 其中,bt为是否需要进一步计算的阈值,p为缩放因子。
[0020] 所述步骤Step1中的待检测域名X以及目标域名Y,可以为一级域名或二级域名。
[0021] 所述步骤Step2中如果待检测域名X以及目标域名Y是一级域名,则只需忽略域名后缀。另外,由于中文域名尚未普及,可能有些域名在注册时无需“www”网络名,此时可对步骤Step2初始化过程作相应调整,总之只需要将域名主体提取出来即可进行下一步工作。
[0022] 所述步骤Step1中待检测域名X以及目标域名Y需是符合常规的域名,即经步骤Step2初始化后,生成域名主体的中文字符集合x:{x1,x2…xp}和y:{y1,y2…yq}需满足以下要求:
[0023] p,q∈N+
[0024] 同样,经步骤Step3编码处理后,生成编码字符串strx和stry的长度lenx和leny理应满足以下要求:
[0025] lenx,leny∈N+。
[0026] 所述Step3中的Unicode汉字笔画顺序表为将汉字笔画顺序横、竖、撇、捺、折编码为数字的1、2、3、4、5,将所有中文汉字按此编码处理
[0027] 所述步骤Step3中编码规则,先生成空字符串,然后对待比较域名X域名主体中文字符集合x:{x1,x2…xp},按照先后顺序遍历每个中文字符xi,i∈[1,p],根据Unicode汉字笔画顺序表查找其对应汉字笔画顺序,加至字符串尾部,集合中所有元素都处理后,字符串便为待检测域名X域名主体的编码字符串strx,同理,以此方法对目标域名Y处理,便可生成目标域名Y域名主体的编码字符串stry。
[0028] 所述步骤Step4.1中匹配字符数m的计算,若编码字符串strx和stry中相同字符相差距离小于匹配窗口值MW,则视为该字符匹配;但应注意,在匹配过程中,需排除被匹配过的字符,若找到匹配字符,则需跳出此次匹配,进行下一字符的匹配;
[0029] 对于匹配字符换位数n的计算,则需看编码字符串strx和stry中对于匹配字符集的顺序是否一致,若不一致,则换位数目的一半即为匹配字符换位数n;另外,匹配字符数m和匹配字符换位数n应满足以下要求:
[0030]
[0031] 所述步骤Step4.6中进一步计算阈值bt,取值为0.7,可根据实际检测结果作小幅度调整,主要是为了提高检测准确性;所述缩放因子p,取值为0.1,可根据实际检测结果做小幅度调整,主要是为了避免最终计算结果大于1的情况发生,但本方法新增编码字符串st r x 和s t ry 中 最长 距 离的 倒 数 改 进此 处 的计 算 公式所以缩放因子p的取值对最终计算结果影响并不大。
[0032] 所述步骤Step4.4和Step4.6中所计算的Disj和Disjw应满足以下要求:
[0033]
[0034] 若不满足,则说明计算错误,需重新计算;若满足,其值越接近1,则说明待检测域名X与目标域名Y就越相似。
[0035] 通常情况下,待检测域名X需要对一组目标域名{Y1,Y2…Yk}进行相似度计算,为提高检测速率,所述目标域名Yi,i∈[1,k]可以提前计算其编码字符串 存入数据库,需要使用时直接调用数据库即可。
[0036] 本发明的有益效果是:通过Unicode汉字笔画顺序表将汉字编码后映射为一串数字型字符串,同时创新性地引入机器学习领域的Jaro-Winler Distance算法,与最长公共子串相结合,进而对中文域名进行相似度量。首先获取待检测域名和目标域名,对其初始化生成域名主体;其次根据Unicode汉字笔画顺序表对域名主体进行编码处理,生成数字型字符串,并作为Jaro-Winler Distance算法的输入生成检测矩阵;然后与数字型字符串最长公共子串相结合,根据相关规则计算数字型字符串的相似度,此数字型字符串的相似度可以有效代表汉字之间的相似度。本发明与现有技术相比,主要解决了现有技术准确性不足、效率差等现象,致力于增加目前中文域名相似度量的准确性和时效问题。

附图说明

[0037] 图1是本发明的流程示意图。

具体实施方式

[0038] 下面结合附图和具体实施方式,对本发明作进一步说明。
[0039] 实施例1:如图1所示,一种基于J-W距离的中文域名相似度量方法,具体步骤为:
[0040] Step1:获取待检测域名X以及目标域名Y;
[0041] Step2:对待检测域名X和目标域名Y以点号“.”或句号“。”分割,忽略网络名、域名后缀,保留域名主体,并生成域名主体的中文字符集合x:{x1,x2…xp}和y:{y1,y2…yq};
[0042] Step3:根据Unicode汉字笔画顺序表,遍历Step2中得到的域名主体中文字符集合x:{x1,x2…xp}和y:{y1,y2…yq},按照集合字符顺序对每个中文字符xi,i∈[1,p]或yi,i∈[1,q]查找其对应汉字笔画顺序,根据相应编码规则进行转换,生成待检测域名X域名主体的编码字符串strx和目标域名Y域名主体的编码字符串stry,并获取编码字符串strx和stry的长度lenx和leny;
[0043] Step4.1:将待检测域名X和目标域名Y的域名主体编码字符串strx和stry作为J-W算法的输入,并生成检测矩阵
[0044] Step4.2:根据公式(1)计算匹配窗口值MW:
[0045]
[0046] Step4.3:由检测矩阵 及匹配窗口值MW,根据相关规则,计算匹配字符数m和匹配字符换位数n;
[0047] Step4.4:由Step4.3计算所得匹配字符数m和匹配字符换位数n,根据公式(2)计算待检测域名X和目标域名Y的域名主体编码字符串strx和stry的Jaro Distance:
[0048]
[0049] Step4.5:获取待检测域名X和目标域名Y的域名主体编码字符串strx和stry的最长公共子串strxy,并得到其长度lenxy;
[0050] Step4.6:根据公式(3)进一步计算待检测域名X和目标域名Y的域名主体编码字符串strx和stry的Jaro-Winkler Distance:
[0051]
[0052] 其中,bt为是否需要进一步计算的阈值,p为缩放因子。
[0053] 所述步骤Step1中的待检测域名X以及目标域名Y,可以为一级域名或二级域名。
[0054] 所述步骤Step2中如果待检测域名X以及目标域名Y是一级域名,则只需忽略域名后缀。另外,由于中文域名尚未普及,可能有些域名在注册时无需“www”网络名,此时可对步骤Step2初始化过程作相应调整,总之只需要将域名主体提取出来即可进行下一步工作。
[0055] 所述步骤Step1中待检测域名X以及目标域名Y需是符合常规的域名,即经步骤Step2初始化后,生成域名主体的中文字符集合x:{x1,x2…xp}和y:{y1,y2…yq}需满足以下要求:
[0056] p,q∈N+
[0057] 同样,经步骤Step3编码处理后,生成编码字符串strx和stry的长度lenx和leny理应满足以下要求:
[0058] lenx,leny∈N+。
[0059] 所述Step3中的Unicode汉字笔画顺序表为将汉字笔画顺序横、竖、撇、捺、折编码为数字的1、2、3、4、5,将所有中文汉字按此编码处理
[0060] 所述步骤Step3中编码规则,先生成空字符串,然后对待比较域名X域名主体中文字符集合x:{x1,x2…xp},按照先后顺序遍历每个中文字符xi,i∈[1,p],根据Unicode汉字笔画顺序表查找其对应汉字笔画顺序,加至字符串尾部,集合中所有元素都处理后,字符串便为待检测域名X域名主体的编码字符串strx,同理,以此方法对目标域名Y处理,便可生成目标域名Y域名主体的编码字符串stry。
[0061] 所述步骤Step4.1中匹配字符数m的计算,若编码字符串strx和stry中相同字符相差距离小于匹配窗口值MW,则视为该字符匹配;但应注意,在匹配过程中,需排除被匹配过的字符,若找到匹配字符,则需跳出此次匹配,进行下一字符的匹配;
[0062] 对于匹配字符换位数n的计算,则需看编码字符串strx和stry中对于匹配字符集的顺序是否一致,若不一致,则换位数目的一半即为匹配字符换位数n;另外,匹配字符数m和匹配字符换位数n应满足以下要求:
[0063]
[0064] 所述步骤Step4.6中进一步计算阈值bt,取值为0.7,可根据实际检测结果作小幅度调整,主要是为了提高检测准确性;所述缩放因子p,取值为0.1,可根据实际检测结果做小幅度调整,主要是为了避免最终计算结果大于1的情况发生,但本方法新增编码字符串st r x 和s tr y中 最 长距 离的 倒 数 改 进 此处 的 计算 公式所以缩放因子p的取值对最终计算结果影响并不大。
[0065] 所述步骤Step4.4和Step4.6中所计算的Disj和Disjw应满足以下要求:
[0066]
[0067] 若不满足,则说明计算错误,需重新计算;若满足,其值越接近1,则说明待检测域名X与目标域名Y就越相似。
[0068] 实施例2:在实施例1的基础上,对计算匹配字符数m和匹配字符换位数n作进一步说明。假设待检测域名X和目标域名Y的域名主体分别为“治病”和“冶病”,通过Unicode汉字笔画顺序表查找相应汉字编码,“治”为“44154251”,“病”为“4134112534”,“冶”为“4154251”,生成的编码字符串strx、stry分别为“441542514134112534”和“41542514134112534”。
[0069] 计算匹配窗口值MW:
[0070]
[0071] 结合检测矩阵I(X,Y)18×17,计算匹配字符数m和匹配字符换位数n:
[0072]
[0073]
[0074] 如上表(矩阵)所示:表格(矩阵)内为“/”表示超出匹配窗口值MW,不予考虑其是否相匹配;“1”表示对应列值与行值匹配;“0”表示对应列值与行值不匹配。
[0075] 综上,匹配字符数m=17,匹配字符集为{4,4,1,5,4,2,5,1,4,1,3,4,1,1,2,5,3},对于编码字符串stry="41542514134112534",换位数目为15,故所得匹配字符换位数n=7。
[0076] 实施例3:在实施例1的基础上,对本发明实际运用作进一步说明。假设待检测域名X和目标域名Y的分别为“今日科技.中国”和“令日科技.中国”,初始化后域名主体分别为“今日科技”和“令日科技”,通过Unicode汉字笔画顺序表查找相应汉字编码,根据规则生成的编码字符串strx、stry分别为“344525113123444121211254”和“3445425113123444121211254”。
[0077] 计算匹配窗口值MW:
[0078]
[0079] 结合检测矩阵I(X,Y)24×25,计算所得匹配字符数m=24,匹配字符换位数n=8。
[0080] 计算编码字符串strx、stry的Jaro Distance:
[0081]
[0082] 最长公共子串strxy的长度lenxy=20,进一步计算编码字符串strx、stry的Jaro-Winkler Distance:
[0083]
[0084] 结果表明,待检测域名X和目标域名Y人眼看上去相似,由本发明计算所得结果也符合人眼检测效果,有效地预防了仿冒网站制作者将一个汉字替换为近似汉字,现有技术判断的准确率低、效率低等缺点,实际应用中也较人性化。
[0085] 实施例4:在实施例3的基础上,假设待检测域名X和目标域名Y的分别为“今日科技.中国”和“今曰科技.中国”,由实施例4所述步骤计算,最终计算结果Jaro-Winkler Distance为:
[0086]
[0087] 结合本例及实施例3,综合表明,用本发明判断中文域名相似性,有很好的实施效果,与人眼所判断的结果几乎一致,有效地预防了仿冒网站制作者将一个汉字替换为近似汉字,现有技术判断的准确率低、效率低等缺点,实际应用中也较人性化。
[0088] 以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。