x# 第四章:安全网络编码

我们已经知道,线性网络编码是一种非常广泛使用的网络编码方式。由于随机线性网络编码在编码的时候对数据进行了高度的线性混合。通常,只有当接收端获得了足够的数据才能够保证解码成功。这一过程增加了数据的安全性。因此,有很多学者研究了安全网络编码。其目的在于使得网络编码的实际使用的使用,其传输的数据在不引入额外开销的情况下,增加其数据的安全性。给大家推荐一些安全网络编码方面的经典论文,大家有兴趣的话自己研读即可。

下面我们需要明确一个概念,即(-安全),在很多论文中都有描述。先看下面一个例子。如果某个窃听者获得了两个数据分块,其对应的编码向量如下:

这两个编码向量所对应的数据都不是原始数据,而是原始数据的线性组合,当且仅当该窃听者获得了3个线性无关的数据分块才可以解码出所有原始数据,但对于该例子。虽然窃听者无法获得所有数据,但其可以通过线性运算解码出部分原始数据,比方说用第二个数据分块减去第一个数据分块的2被,即可同时消去,从而很容易就获得了的数据,从而导致泄密。

对于上面这样一个例子,等于3,那么当窃听者获得3个线性无关的数据时,其必然能够解出所有原始数据。当其获得任意一个数据分块时,是安全的,其不能获得有意义的数据,满足1-安全。但是当其获得2个数据分块时,安全性不能得到保证。因此不满足2-安全,整个系统的安全性仅为1-安全。

那么显然,一个理想的方案应当使得网络中的窃听者获得任意个线性无关的数据分块时都无法解码出任意一部分有意义的数据。那么安全网络编码研究的目的也在于如何设计方案使得系统满足安全。

讲到到这里,我们不得不介绍一下经典的密钥共享方案。其原理与网络编码非常类似。其原始大致如下,需要让个人共享一个秘密,当这个人中的任意个人打算获得这个密码的时候,都可以获得秘密。同时,任意个人都不可以解码出这个秘密中的任何一部分。该方案已被广泛地应用于实际应用中。构造这样的方案的方法也较为简单,使用Reed-Solomon编码可以很容易达到这样的目的。我们在本章的第二节将设计一个程序,该程序可以很快速地构造出这样的方案。

密钥共享方案与网络编码方案有非常大的相似之处,但网络编码方案比密钥共享方案更要复杂一点。因为安全网络编码方案需要保证网络的中间节点在经过线性混合之后仍然不降低系统的安全性。因为对于一个图网络来说,一个窃听者是有可能获得任意一部分链路。这使得系统要仍然满足任意个链路的失手,仍然能保证系统的安全性。

在安全网络码字的构造方面,我相信构造的目标大家都已经明白了。事实上,经过多年的发展,也有一些研究人员提出了方案,且不同的作者总是会提出不同的方案。对于安全性的研究,总是有攻和守两个方面,本书我们将侧重于攻这一方面。因为无论方案如何,最后总是会构造出一系列网络码字。我们的目的就是对这些构造出来的网络码字进行分析,判断其是否安全,并对其安全等级进行评估。

因此,本章我们将写两个程序,第一个比较简单,用于判断窃听者能否根据获得的信息解码出有意义的数据。另一个程序稍微复杂一些,就是对构造的网络码字进行评估,判断其安全等级。

results matching ""

    No results matching ""