APP下载

基于数字水印的水下无线传感器网络数据完整性研究∗

2019-12-26梅雁翔

舰船电子工程 2019年12期
关键词:数据包矩阵无线

梅雁翔

(江苏科技大学电子信息学院 镇江 212000)

1 引言

最近,人们越来越关注监测海洋环境的科学探索、商业开发和军事应用。广泛监测的理想方法是分布式水下无线传感器系统,称为水下无线传感器网络(UWSN)。UWSN是一种无线通信系统,由数十或数百个电池供电的水下传感器节点组成。水下环境的特点包括水流、高压、海洋生物等,水下信道的特殊性包括传播延迟、窄带宽和多径效应等,这些因素将导致高错误率和低的运输可靠性。因此,UWSN容易受到各种攻击,其安全性是设计网络系统时需要考虑的一个至关重要的难题[1~2]。

水下无线传感器网络是一种新型的水下网络系统。由于UWSN和水下信道的特点,UWSN容易受到恶意攻击,导致WSN提出的现有数据安全性方案不能直接用于 UWSN。Yamini Kularia[3]等分析了水下无线传感器网络声信道传播延迟、传输损耗和信噪比,构建了精确的水下通信模型。Muhammad R Ahmed[4]等提出了利用支持向量机方法来评估水下无线传感器网络中的攻击,因为向量机花费的时间较少。恶意节点始终保持异常属性,通过使用节点的异常属性来识别恶意节点,从而鉴别数据是否完整。Evaldo Souza[5]等提出了一种基于水下无线传感器端对端的身份认证的数字签名方法,该方法有效地起到了数据认证功能,保证了数据的真实性,但增加了额外的通信开销,且将数据直接加载到数据包中,增加了保持数据完整性的风险。

目前为止,研究人员一直致力于研究如何使用数字水印技术来解决水下无线传感器网络中存在的安全问题。尽管已经取得了一些研究成果,但很少能够实现,距离实际应用还有很长的路要走。本文在充分考虑声学通信信道、带宽限制、高传播延迟以及多径效应等影响的情况下,结合文献[6~7],提出了基于FRFT和SVD的数字水印方案。与现有的基于SVD的水印方案不同,提出的方案将水印嵌入到密钥矩阵的奇异值中。该奇异值是从非重叠块分割,然后通过FRFT和SVD获得的。首先获取的传感器传输数据将转换为FRFT域,然后将其分割成不重叠的块,获得每个块的最高奇异值,并将其堆叠成阵列以形成关键矩阵。水印嵌入在密钥矩阵中,通过水印奇异值修改其奇异值来完成嵌入。通过在Sink节点获取到数据来提取相应的水印信息,并与原始数据进行对比来判断传感器的数据完整性。实验证明,该方法具有较好的安全性和透明性,能够检测数据是否遭受到攻击,确保传感器数据的完整性。

2 基本理论

2.1 分数阶傅里叶变换(FRFT)

FRFT作为傅里叶变换的一种广义形式,可以解释为信号在时频平面内坐标轴绕原点逆时针旋转任意角度后构成的分数阶傅里叶变换域上的表示方法[8]。它提供一个参数α,表示为在时频平面中旋转角度α或者用chirps分解信号。通常,此参数称为与FRFT关联的角度或变换顺序。数学上,一维函数s(t)的FRFT定义为

其中α是变换阶,Kα(t,x)是变换核,并给出:

其中n是给定的整数。信号的FRFT存在于其傅立叶变换存在的相同条件下。该逆FRFT可视为具有变换阶α的FRFT。FRFT的主要特性是:如果变换阶α为0,则得到的信号在纯时域内;如果变换阶α为π/2,则得到的信号在纯频域内。此外,由于变换的可分离性,可以通过沿所有方向连续取一维FRFT来获得高维FRFT。

FRFT在水印中的主要优点是它依赖于变换阶数。这些变换阶数被用作水印提取的关键,因为没有使用正确的变换阶数,任何人都无法获得嵌入水印的正确变换域。因此,没有人能够有效地利用错误的转换命令来提取水印。

2.2 奇异值分解

SVD是线性代数中处理矩阵的一种重要工具,能够获取矩阵数据的奇异值[9]。设 A为m×n的一般实(复)矩阵,A的奇异值分解(SVD)是因式分解:

其中U 和V 是正交矩阵,S=diag(σ1,σ2,…,σr),σi是矩阵 A的奇异值,r=min(m,n)且满足σ1≥σ2≥…≥σr。U 是m×n的正交矩阵,其列是左奇异向量;V是一个n×n的正交矩阵,其列被称为右奇异向量。

在使用奇异值分解时,具有如下的特性:1)来自SVD变换的矩阵大小不固定,它可以是正方形或矩形;2)当原矩阵奇异值发生较小浮动时,通过逆变换至原矩阵后,原矩阵数据变化可以忽略,即将水印信息嵌入奇异值矩阵后,嵌入的水印信息对原始数据无太大影响;3)当原始矩阵数据浮动范围不大时,经过奇异值分解后的奇异值并不会受到很大影响,即当原始数据受到一些因素的影响而发生小范围正常变化时,如信号处理,嵌入在矩阵内的水印信息不会轻易发生变化。

3 数字水印算法

3.1 水印信号的生成

本文利用混沌序列作为水印信号具有易于生成、数量多以及初始值条件敏感等优势。由于水下传感器网络节点较多,该水印生成方法很适合水下传感器网络环境。混沌理论来自非线性动力系统,动态系统描述了随时间变化的过程,过程是确定性的、随机的、非周期性的、收敛的、极其敏感的初始值依赖性。一维Logistic映射是一种来自数学表达式的非常简单的混沌映射:

式中,0≤μ≤4,称为分支参数。当3.569 945 6<μ≤4时,Logistic映射处于混沌状态。根据不同的初始值,映射生成的序列是非周期的、非收敛的、不相关的、不可预测的,且对初始值非常敏感。本文采用μ=4时的Logistic映射。在相同参数下和非常接近的初始值条件下,经过几次迭代,结果完全不同,成为两个不相关的序列。本文选择适当的长度,利用阈值函数设定阈值,生成二进制序列称为水印信号。公式如下:

本文中阈值R取0.5,即当Xk≥0.5时,L(Xk)的值为1;当Xk<0.5时,L(Xk)的值为0。

数据采集过程中,不同数据的采集时间不同。本文利用数据的采集时间与采集节点的编号生成水印序列。一个数据包由数据包头和k个数据(S1,S2,…,Sk)组成[10]。因此,水印信号的生成可以按照以下步骤:利用数据包中某个数据项Si的采集时间与采集节点编号生成一个Logistic序列初始值Xk;利用式(4)和式(5)生成一段混沌二值序列,选取合适的长度作为该数据包的水印信息。本算法中选取长度为m×n的序列作为水印信息,并将其转化为m×n的矩阵。

3.2 水印嵌入算法

本算法是从节点缓存区域中选取前M×N个敏感数据并转化成了M×N的矩阵进行分析。具体水印嵌入算法如下:

1)选取某一簇内节点i,在节点缓冲区域选取前M×N个 感 知 数 据data(1),data(2),…,data(M×N),将其转换为矩阵形式并对其进行FRFT变换,用f表示。

2)将f分段为大小为p1×p2的非重叠块,由fq表示,其中且q=mn是块的总数。

3)对所有的非重叠块fq执行奇异值分解变换:

4)收集所有非重叠块fq的最高奇异值并堆叠成大小为m×n的数组,以形成密钥矩阵K:

5)对K和水印序列W 执行奇异值分解变换:

6)利用水印的奇异值修改K的奇异值:

其中β为给出水印强度。

7)执行逆SVD以构造修改的K:

8)在其原始位置上修改最高奇异值,然后反向SVD以获得修改的非重叠块,后将修改后的块映射到其原始位置,然后逆FRFT以获得带水印的数据F͂,然后将F͂发送至簇头并最终发送到Sink节点。

3.3 水印提取算法

1)在Sink节点受到数据包解压后,选取节点i,选data'(1),data'(2),…,data'(M×N),对带水印的数据F͂进行FRFT变换,用f͂表示。

2)将f͂分段为大小为p1×p2的非重叠块,由f͂q表示,其中且q=mn是块的总数。

3)对所有的非重叠块f͂q执行SVD:

4)收集所有非重叠块f͂q的最高奇异值并堆叠成小为m×n的数组,以形成水印密钥矩阵K͂:

5)在 K͂上执行SVD变换:

6)从含水印数据中提取水印的奇异值:

7)获取提取的水印为

8)在Sink节点将提取的水印Wext与原始水印W做出比较。检验数据包是否安全,否则将丢弃虚假数据包。

4 实现仿真和性能分析

本文实验中采用OMNET++仿真工具,所有实验结果利用Matlab 2014a仿真得到。本文的仿真在如表1所示模拟仿真环境中进行,通过源节点将随机生成的数据作为采集数据,嵌入水印,形成数据包,发送给基站节点。基站节点接收数据后,提取水印,还原数据。

表1 仿真参数

4.1 透明性分析

为了验证算法的水印透明性,随机选取部分节点生成的数据包进行对比实验。表2是原始数据和嵌入水印后的数据均值、标准差以及两者变化率的统计值。从表2统计计算的结果可以得出,原始数据在嵌入水印后,数据均值和标准差的变化值很小,说明该算法引起的误差很小,数据相对稳定,对数据的使用基本没有什么影响。可见,水印具有很好的透明性。

表2 水印嵌入前后数据统计

4.2 安全性验证

分数阶傅里叶变换的变换阶数具有密钥功能,故本算法具有较高的安全性。若不知道正确的FRFT的变换阶数,想要提取正确的水印信息十分困难。同时,如果不知道生成水印序列的密钥和初始值,将很难伪造含有水印的数据包。每个传感器会生成不同的水印,水印信号具有唯一性,所以攻击者伪造水印是不可能的。因此,该算法在理论上有较强的安全性。

表3 数据完整性验证

为了进一步验证算法的安全性,本文随机选择5个节点进行不同类型的攻击,攻击类型为数据延时传输、重放、选择性转发、数据篡改以及伪造数据包,然后分析数据的完整性。每次攻击都重复100次,实验结果如表3所示。

本方案中检测每个数据包,数据传输延时会造成水印的提取时间延时,水印信息并不会改变,但对提取结果没有影响。重放攻击是通过多次重放消息欺骗节点,使得节点不能正确提取水印信息,导致验证其完整性失败。选择性转发攻击致使有些数据包不能到达基站,破坏了数据包的完整性,导致水印信息生成前后的值不一致,算法能够正确判断其完整性。数据篡改攻击改变消息中的数据值,数据的变化导致水印信息的变化。在节点提取的水印信息与变化的水印信息不一致,说明数据被破坏。伪造数据包由于节点没有嵌入水印,导致数据包中不能够检测到水印信息,故可以判断该数据包的完整性。

4.3 能耗分析

水下传感器节点的能耗取决于诸如水印生成和嵌入时间、数据存储、广播和数据传输等因素。由于数据包中冗余空间的固定长度,假设提出的方案的能耗对于数据存储、广播等是固定的。因此,只用考虑水印生成、嵌入和数据传输中消耗的能量。通常情况下,传感器节点消耗的大部分能量是在无线通信模块。实验证明,1 bit信息100 m的距离需要消耗的能量相当于执行3 000条计算指令所消耗的能量[11~12]。可见,数据处理消耗的能量远远小于数据在网络中传输消耗的能量。本文采用的水印生成算法较为简单,没有经过复杂的处理,同时水印信息嵌入到原始数据的最大奇异值上,没有增加数据的传输量,表明在数据传输过程中没有增加能量消耗。比传统的安全方案,所提方案数据消耗较小,总能量消耗更少。

5 结语

本文提出了一种基于分数傅里叶变换和奇异值分解的简单而有效的水印方案。所提方案使用了FRFT,因为变换阶数起着关键的重要作用,在不知道变换阶数的情况下,将无法获得嵌入水印的正确域,进而无法正确地提取水印。同时,采取混沌序列生成水印信息,确保了每个传感器节点生成的水印的安全性和唯一性,再利用阈值函数生成二进制序列作为水印信息。该算法很适合水下无线传感器网络的应用场景,在不知道初始值和密钥的情况下,很难获取正确的水印信息。实验结果表明,本文提取的算法在面对水下复杂环境时具有良好的水印透明性和安全性,并有效验证了水下无线传感器数据的完整性,也不会增加额外的能量消耗。

猜你喜欢

数据包矩阵无线
二维隐蔽时间信道构建的研究*
大师操刀,通勤首选 KEF Mu3真无线降噪耳机
《无线互联科技》征稿词(2021)
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
无线追踪3
C#串口高效可靠的接收方案设计
多项式理论在矩阵求逆中的应用
无线追踪
矩阵
矩阵