我致力于网络流量过滤,我需要将输入IP流量分为3组:
压缩数据和加密数据具有许多相似的属性,如内容直方图中的熵和字符离散。所以很难区分它们。
在数据块较大(> 1MB)时,可以采用卡方分布、Pi逼近误差和熵方法对数据进行分类。http://www.devttys0.com/2013/06/differentiate-encryption-from-compression-using-math/
该算法由于数据量小(~1k),算法精度不高。
问题
如何在实时流量(~1k数据块)中区分加密和压缩,准确率超过90 %?
我知道现代深包检测系统已经实现了一些算法来解决这个问题。
你有什么想法吗?
发布于 2018-07-13 14:35:33
唯一的方法是知道有一套有限的压缩数据格式可能。然后,您可以开始使用所有这些格式进行解码。如果一个工作距离是合理的(例如,大约100个字节),那么很有可能是一个未加密的压缩流。
否则,加密良好的数据、压缩的数据和随机数据都是无法区分的。
发布于 2018-07-13 21:08:15
你可以利用香农的熵分析来设计一种启发式的方法。压缩文件在字典大小边界上可能会出现熵下降,而(好的)加密文件则不会。
几乎没有机会区分压缩加密文件和未压缩加密文件。实现良好的加密将泄漏关于明文的零信息,也不会通过熵泄漏。
https://stackoverflow.com/questions/51319755
复制相似问题