1.信息熵
加密后的流量呈现均匀分布的特点,因此计算信息上可以很好地判断流量是否被加密。
信息上的定义如下
H
(
X
)
=
−
∑
i
=
1
N
p
(
x
i
)
l
o
g
2
p
(
x
i
)
H(X)=-\sum^N_{i=1}p(x_i)log_2p(x_i)
H(X)=−i=1∑Np(xi)log2p(xi)
当X中所有元素出现次数相同时,及服从均匀分布时,熵的值最大。
为了能更好的比较熵的大小,定义标准熵为
H
N
(
X
)
=
−
∑
i
=
1
N
p
(
x
i
)
l
o
g
2
p
(
x
i
)
l
o
g
2
N
H_N(X)=-\frac{\sum^N_{i=1}p(x_i)log_2p(x_i)}{log_2N}
HN(X)=−log2N∑i=1Np(xi)log2p(xi)
其中
N
N
N为
X
X
X中包含的离散变量个数
设有序列X=ababa
选取步长为1,则 Σ 1 = a , b \Sigma_1={a,b} Σ1=a,b, N 1 = 2 N_1=2 N1=2,则
H 1 ( X ) = − 0.6 l o g 2 0.6 − 0.4 l o g 2 0.4 l o g 2 2 = 0.97 H_1(X)=\frac{-0.6log_20.6-0.4log_20.4}{log_22}=0.97 H1(X)=log22−0.6log20.6−0.4log20.4=0.97
选取步长为2,则 Σ 1 = a b , b a \Sigma_1={ab,ba} Σ1=ab,ba, N 1 = 2 N_1=2 N1=2,则
H 2 ( X ) = − 0.5 l o g 2 0.5 − 0.5 l o g 2 0.5 l o g 2 2 = 1 H_2(X)=\frac{-0.5log_20.5-0.5log_20.5}{log_22}=1 H2(X)=log22−0.5log20.5−0.5log20.5=1
2.随机性测度
NIST随机数测试标准
详见博客
这些方法可以检测01串是否是随机的。
3. 决策树
详见决策树-知乎