Page 338 - 《软件学报》2021年第7期
P. 338

2256                                     Journal of Software  软件学报 Vol.32, No.7,  July 2021

                 够发现更多的相似文件对.为了查看改进后相似哈希方法在不同海明距离下的表现,在不同海明距离阈值上进
                 行实验,实验结果见表 11.改进后的相似哈希算法在海明距离阈值为 8 时已经能够达到 97.51%的精确度,而在阈
                 值为 6 及以下的情况下甚至可以达到 99%以上,其整体的精确度都维持在比较高的水平.

                                            Table 8    Efficiency on large-scale database
                                                  表 8   大规模库上检测效率
                                             总文    有结果     总候选    平均候选     总实际    平均实际     总时间   平均时间
                    工程名     提交号     编程语言
                                             件数    的文件数    文件数     文件数    匹配个数    匹配个数      (s)   (文件/s)
                                     C++,JS,
                   electron  eaa1804          897    537    6 627   12.34   1 827   3.4    193.9   0.36
                                     python
                                     JS,C++,
                    node    2daf883          23 065   7 088   900 612  127.06   689 636  97.3   3 003.6   0.42
                                     python
                                     python,
                    numpy   63ef78b           661    162    7 731   47.72   4 456   27.51   63.85   0.39
                                      C,JS
                                     C++,C
                    bitcoin  8830cb5         1 100   545   134 845  247.42   106 025  194.54   245.61   0.45
                                     python
                                     C,ruby,
                    redis   8ea4bdd           533    392   70 795   180.6  58 929  150.33  211.81  0.54
                                      C++
                                     ruby,C,
                    ruby    287bfb6          8 294   342   15 049   44.00   8 115   23.73   116.68   0.34
                                      C++
                                     python,
                  container-diff aae5709     1 029   723   1 032 341  1 427.86  867 737  1 200.19   454.53   0.63
                                      C,go
                  zoneminder   98f7fb6   PHP,C++,JS   1 365   558   54 041   96.85   38 432   68.87   196.74   0.35
                                     Swift,
                   githawk  18fef6c          1 586   653   26 661   40.83   23 389   35.82   214.04   0.33
                                      JS,C
                                     C,SQL,
                    postgre  b55413d         2 907   1 634   93 091   56.97   42 575   26.06   589.30   0.36
                                      C++
                    共计                       41 437   12 634   2 341 793  185.36   1 841 121  145.73   5 290.06   0.42
                            Table 9    Experimental results of MD 5 and enhanced simhash on large-scale database
                                    表 9   MD 5 和改进后相似哈希方法在大规模库上的检测结果
                                                        相似文件对           交集占总匹配对的比例(%)
                                      MD 5               818 120               99.50
                                  相似哈希-改进后               1 929 097             42.20
                                            Table 10    Experimental results of samples
                                                    表 10   抽样实验结果
                                              相似文件对      与 MD 5 的交集文件对数     错误匹配数      精确度(%)
                                 MD 5           11 184                        0        100
                            相似哈希-无行筛选         107 736 742      11 177        27 598 022   0.075
                             相似哈希-改进前          8 923 644       11 177         49 469     45.3
                             相似哈希-改进后           20 571         11 179          512       97.5
                       Table 11    Experimental results of enhanced simhash under different Hamming distance thresholds
                                        表 11   不同海明距离阈值下改进后方法的实验结果
                            海明距离(≤)               检测文件对               错误数             精确度(%)
                                0                   12 300              55              99.55
                                1                   12 964              89              99.31
                                2                   13 728             107              99.22
                                3                   14 608             107              99.27
                                4                   15 605             107              99.31
                                5                   16 652             129              99.23
                                6                   17 701             147              99.17
                                7                   19 136             327              98.29
                                8                   20 571             512              97.51


                    在本次实验中,改进前的相似哈希精确度达到了 45.3%,比 RQ1 中检测出的结果要高很多,为了解释这一现
                 象,对两次实验的结果作了进一步分析.改进前的相似哈希方法主要产生误报的原因是大量的文件中出现了行
                 覆盖现象,例如“returnfalse;”在一个文件中多次出现,导致最终文件的指纹值直接等于这一行的哈希结果,其他
   333   334   335   336   337   338   339   340   341   342   343