【技术实现步骤摘要】
一种基于零空间的自适应安全网络编码方法
[0001]本专利技术属于网络编码安全
,涉及一种基于零空间的自适应安全网络编码方法。
技术介绍
[0002]网络编码是一种新的传输数据方式,即网络中的中间节点不仅承担路由的功能,而且同时进行编码转发,最终由信宿对收到的数据包进行译码获取信源发送的数据包;网络编码最初被提出的目的是为了提高数据吞吐量,可达到组播网络流量的理论上限;网络编码根据编码系数的选取方式不同可分为确定性网络编码和随机线性网络编码,其中随机线性网络编码不需要提前知晓网络的拓扑结构,参与网络编码的编码系数均从提前设定的有限域中随机选取,在网络拓扑未知的情况下依然能够保证高译码概率;
[0003]正是由于网络编码的特性,只要网络中存在少量的污染数据包,便会对整个网络的性能和安全性造成极大的破坏;因此,在网络编码实际使用当中,保证网络中不存在污染攻击是首要前提;所以大量的安全网络编码方案被提出;根据抗污染思想的不同,大致可以分为两个部分:基于信息论的方案和基于密码学的方案;而基于密码学方案中的基于零空间的抗污染方案因其高效的污染信息过滤和低计算开销,成为安全网络编码技术的主要研究方向之一;
[0004]传统的基于零空间的安全网络编码方案是通过信源节点根据需要传输的数据向量组成的矩阵张成线性空间,通过解线性方程组计算出零空间的一组基,由这组基线性组合生成的向量就是零空间的一个零向量,而由信源节点进行线性组合生成的向量为数据向量,将零向量通过网络传输给中间节点,同时中间节点根据收到数据向量,通过 ...
【技术保护点】
【技术特征摘要】
1.一种基于零空间的自适应安全网络编码方法,其特征在于,采用网络编码系统;所述系统包含信源节点、中间节点、信宿节点;包括:步骤S1:对待传输的数据向量矩阵P利用单位矩阵进行扩展得到扩展数据向量矩阵X,对扩展数据向量矩阵X进行分块处理得到若干组包含有个数据向量的数据向量集合;步骤S2:信源节点S生成编码后的数据包和验证向量:从初始时刻T0,信源节点每过一次个单位时间,便增加一组数据向量集合参与信源的编码转发操作,在时刻时,其中i为过个单位时间的次数,为自然数,信源节点中参与编码传输的数据向量集合其中m为数据向量矩阵P、扩展数据向量矩阵X中数据向量的个数;在时刻信源节点S使用数据向量集合X
p
生成编码后的数据包并转发给第一个中间节点;每间隔次编码转发数据包,生成并发送一次验证向量在时间点时刻,信源节点S使用数据向量集合X
q
生成验证向量并将附带发送时间T
now
的验证向量发送给第一个中间节点;其中所述数据包包括编码生成的数据向量和对应的数据向量的跳数L信息;步骤S3:中间节点接收上游节点转发的数据包,并根据验证向量对接收的数据包进行合法性验证;步骤S4:中间节点对通过验证的数据向量重编码数据包,向下游节点发送;步骤S5:信宿节点接收相邻中间节点发送的数据包并进行对接收的数据包进行合法性验证,对通过合法性验证的数据包进行解码得到数据向量矩阵P。2.根据权利要求1所述的基于零空间的自适应安全网络编码方法,其特征在于,步骤S1中,对待传输的数据向量矩阵P利用单位矩阵进行扩展得到扩展数据向量矩阵X,包括:数据向量矩阵P由同一代的m个线性无关的n维数据向量组成,在数据向量矩阵P之前添加一个用于记录编码系数的n
×
n的单位矩阵,扩展得到扩展数据向量矩阵X;步骤S1中,对扩展数据向量矩阵X进行分块处理得到若干组包含有个数据向量的数据向量集合,包括:分块规则是:为预设的一个正整数,将扩展数据向量矩阵X分为若干组数据向量集合,其中每组数据向量集合包括个数据向量,如有最后数据向量个数不足的分为一组。3.根据权利要求1所述的基于零空间的自适应安全网络编码方法,其特征在于,信源节点使用数据向量集合X
p
生成编码后的数据包,包括:编码生成的数据向量为:其中c
i
为编码系数,从预设的有限域F
q
中随机选取;为数据向量集合X
p
中的数据向
量;为编码生成的每个数据向量设置一个跳数L,跳数L的初始值设置为0,并附带在编码生成的数据向量的尾部组成数据包。4.根据权利要求1所述的基于零空间的自适应安全网络编码方法,其特征在于,信源节点使用数据向量集合X
q
生成验证向量包括:利用随机向量将数据向量集合填充至m个向量的集合C
q
:随机向量的元素从预设的有限域F
q
中随机获取,且随机向量与数据向量集合线性无关;通过高斯消元解方程组求出满足等式的线性无关向量组成的矩阵利用矩阵将C
q
张成线性空间使用线性方程得到零空间任意选取零空间中的一组基进行线性组合,生成验证向量5.根据权利要求1所述的基于零空间的自适应安全网络编码方法,其特征在于,步骤S3、S5中,所述对接收的数据包进行合法性验证,包括:(S31)节点获得携带跳数信息的数据包,将创建的flag
z
和T
receive
参数信息附带在接收到数据包中的数据向量的头部,得到处理后的数据包;其中flag
z
表示数据向量的验证状态,将flag
z
的值设为0,表示还未经过验证;T
recei...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。