恶意节点一旦出现在网络中,将向网络注入伪造或者错误的数据包,这样,网络将不可避免地被污染。纠错是防污染攻击的一种有效手段。在线性网络编码中,纠错主要包括错误纠正和错误检测两种。在基于错误检测的方案中,通常在中间转发节点进行错误检测;而在基于错误纠正的方案中,错误通常是在目的节点进行纠正。上述这些方案通常是基于对网络拓扑结构已知的情况,因此这些方案对于变化的网络缺少灵活性。
Krohn等人[27]提出了同态哈希函数来保证网络的正确性。其主要思想是每个中继节点参与校验消息的正确性。如果数据包没有通过中继节点的检测,那么数据包将被丢弃。这种方法可以减少通信开销并可用于随机网络编码中。然而,该方法的计算复杂性还是很高。当网络规模很大的时候,太多的哈希值的计算将导致很高的时延。为了解决这些缺陷,Khedi和Li[28]提出了一种基于空密钥的简单错误检测方案。其主要思想是将n维线性空间GF(q)划分为两个分别具有维度k和n-k的正交子空间。比起同态哈希函数,这种方案不会有消息延迟。
然而,所有这些方案都有一个缺点:一旦数据包被污染,那么所有的污染数据包都将被丢弃。在网络中,大的数据包被切割成小片段进行传输。只要任一小片段的数据包被污染,那么这个污染的数据包片段将被丢弃。这样,网络传输效率近似于零。(www.xing528.com)
随后,Stallings[29]提出使用错误纠正网络编码技术在目的节点处对错误进行纠正。他们推导出了汉明界限。Charles等人使用密码学的思想对污染的数据包进行丢弃。基于错误纠正的方法在目的节点处提供了错误容忍解码。然而,作为被动防御,错误纠正只有在网络中被污染的数据包数量有限时才有效。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。