密码学的防窃听方法是通过加密的方法实现安全网络通信,比较传统的方法是采用链路加密方式对编码后的数据进行加密传输。这种方式虽然能很好地实现防窃听,但是,由于网络中的每个节点需要对加密后的编码数据包进行加解密,节点的计算开销非常大,严重影响了整个网络的性能,如网络时延巨大等。现有的基于端到端加密的方法主要分为两类。
2.3.2.1 P-Coding
结合随机线性网络编码自身固有的安全性,采用置换加密的方法,Zhang等人[25]提出了一种基于密码学的安全网络编码方案,该方案适用于随机线性网络编码,它主要通过保证计算的安全性来实现编码安全。P-Coding方案分为三个阶段:源节点编码、中继节点再编码和目的节点解码等三个阶段。
(1)源节点编码。
在源节点s处,假设网络最大的多播速率为ω,那么源节点一次可发送的ω个数据包表示为X=(x1,x2,…,xω)。
①源节点在每个发送的数据包的首部加上该数据包对应的单位向量,从而得到,那么。
②采用随机方式为ω条虚拟信道e1,e2,…,eω选取全局编码向量,并且采用选取的全局编码向量对XT中的数据包进行线性组合,从而得到每条虚拟信道上传输的编码数据,1≤i≤ω。
③对于每个编码消息,源节点s对其进行置换加密从而得到编码消息的密文,并将加密的编码数据发送给目的节点。
(2)中继节点再编码。
中继节点会对收到的编码消息进行随机网络编码。每条虚拟信道e∈E上传输的数据为,其中表示随机选取的局部编码向量。由于源消息对应的全局编码向量被置换加密后重新排列,但中继节点并不知道置换密钥,因此中继节点很难重构出源节点发送的信息。
(3)目的节点解码。
对于从每条入边ei上收到的密文数据包cei,目的节点t首先对其进行置换解码,该过程表述为。目的节点t收到ω个线性无关的数据包后,有表示目的节点t入边上的全局编码向量构成的列矩阵,表示矩阵Yt的转置。
在该方案中,由于线性组合与置换函数的操作是可以交换的,因此,每个中继节点可以对收到的密文编码数据包进行透明的再编码操作。中继节点的这种透明性操作极大地提高了编码效率,这主要是由于中继节点不需要额外的操作。此外,P-Coding方案要求有一个密钥分发中心,该中心负责生成密钥并安全地为目的节点传送随机密钥k。另外,当节点发送的数据量比较大时,节点需要对数据进行分割分批传输。由于该方案在数据传输过程中只使用了一个密钥,为了解决P-Coding方案因单一密钥被破解造成的传输数据泄露,Zhang等人对每次传输数据对应的密钥进行随机变动,也就是对不同批次的传输数据采用不同的密钥进行置换加密。
2.3.2.2 SPOC
对于窃听能力很强的攻击者,现有的信息论方法起不到安全防窃听的效果,这主要是由于基于信息论的方法都是假定攻击者窃听能力是有限的。Vilela等人[26]提出了SPOC安全编码方案,该方案基于密码学,其实现过程如下。(www.xing528.com)
(1)源节点初始化。
①源节点选择密钥管理机制,该机制用于实现源节点和目的节点之间共享密钥k的交换,密钥k用于对源节点初始编码系数进行不变长加密。
②源节点生成ω个数据包,这些数据包可以表示为矩阵形式M=(m1,m2,…,mω),该矩阵M中,每一列对应源节点的一个数据包。
③源节点随机选取ω线性无关的编码向量(f1,f2,…,fω),并使用这些编码向量对源数据包进行线性组合,得到编码数据包mT=Mfi=。每个编码向量fi=(fi,1,…,fi,ω)T,这些编码向量均为ω维列向量,源节点编码后的数据包为。
④源节点使用共享密钥k对每个编码向量进行加密,ci=Ek(fi)(1≤i≤ω),从而得到编码向量的密文C=(c1,c2,…,cω)。
⑤源节点构造新的数据包,每个新的数据包由三个部分组成。其中,第i个位置为1,其他位置为0的向量为单位向量ui。因此,源节点最终发送的数据包为)。
(2)中继节点编码。
对于网络中的每个中继节点,它们按照通用的随机网络编码方法对数据包进行编码和传输,每条信道e∈E上传输的数据包表示为ye=
(3)目的节点解码。
当目的节点t收到ω个线性无关的数据包时,节点t可以通过如下解码过程获得源数据。
①目的节点t采用高斯消元法得到密文编码向量C和编码消息M'。
②节点t使用共享密钥k对密文编码向量C进行解密,从而得到编码向量F。
③目的节点t对矩阵(F,MF)进行高斯消元,得到源节点发送的原始消息数据包M,从而完成整个数据的传输。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。