基于WSN的水产养殖环境监测系统设计

2018-10-18 10:07,,,,
计算机测量与控制 2018年10期
关键词:同态明文加密算法

,,,,

(1.上海大学 机电工程与自动化学院,上海 200000;2.上海大学 微电子研究与开发中心,上海 200000)

0 引言

水质监测是水产养殖的基本工作,水质的好坏直接关系到了水产品的产量及品质[1]。传统水质检测的方法主要是依靠人工操作配合仪表和经验进行检测,不但花费大量精力和时间,而且存在监测周期长,监测范围有限等缺点。采用现场总线技术的水质在线监测系统拥有实时性好、监测范围广等特点,但也存在布线困难、维护拓展不方便、线路易受腐蚀等问题[2]。

近年来,无线传感器网络(Wireless Sensor Network,简称WSN)逐渐受到人们重视,WSN是一种综合了传感器技术、信息处理技术和无线通信等技术的新型信息技术,传感器节点分撒在目标监测区域后,通过自组织方式形成网络[3]。无线传感器网络在军事、医疗、工农业、环境监测等方面有着广泛的应用前景[4]。

随着云端服务步入互联网市场,云端的安全问题逐渐暴露出来[5]。与传统单机存储方式不同,在云端服务中,用户对自己的数据的存储位置和状态一无所知,如果没有对数据进行保护,就有可能被盗窃或者篡改,加密是保证数据安全性的一种有效手段,但是因为数据库自身的特性,传统的加密手段(如AES)会制约数据库的性能,浪费云计算的高性能优势。而同态加密[6]能在保证数据保密性的同时使加密后的数据仍能够进行计算。

本文利用ZigBee通信技术组建无线传感器网络,实现对养殖水域中溶解氧含量、pH值、温度等水质参数的实时采集,无线传输和远程监测功能。并针对云端数据存储中用户数据的安全性问题,利用同态加密算法对用户隐私进行加密,在保障数据安全性的前提下又不破坏云计算的能力。

1 系统整体设计方案

基于无线传感器网络的水质监测系统主要由ZigBee无线传感器网络、主控制器、云端数据库组成,如图1所示。

图1 系统设计框图

无线传感器网络负责水质数据的采集,处理和无线传输等工作,采用混合网拓扑结构,使用ZigBee协议进行数据传输。无线传感器网络主要由终端节点、路由节点和中心节点组成,终端节点负责采集节点附近水域的溶解氧含量、pH值、温度等水质数据,路由节点是即能采集水质数据,又能进行数据中继路由的节点,采集到的水质数据最终汇聚到中心节点。中心节点将传感器网络上传的数据进行融合后发送给主控制器进行实时显示,同时上传云端存储备份。中心节点采用SZ11-03ZigBee+GPRS网关,此网关能同时使用ZigBee和GPRS通信,保证了中心节点能够同时与传感器网络和云端进行数据通信。工作人员可以通过主控制器串口屏幕查看实时的水质监测数据,同时当工作人员的位置发生移动时,也能使用安卓手机从云数据库查看水质数据。

2 传感器节点设计

2.1 传感器节点硬件设计

终端节点硬件结构如图2所示,主要由传感器模块、微处理器(MCU)模块、ZigBee通信模块、电源模块组成。由于无线传感器节点采用电池供电,需要保证较长的工作寿命,因此传感器节点的MCU采用功耗低,稳定性高的PIC18F67K22。在无线传输模块选择上采用顺舟科技生产的SZ05模块,该模块是基于ZigBee技术片上解决方案CC2630芯片所开发的,拥有功耗低、抗干扰能力强、组网灵活、网络容量大等特点,该通信模块与MCU通过UART进行数据传输。传感器模块由水质传感器,信号调理电路和AD转换器组成。水质传感器分别测量节点附近水域中溶解氧含量、pH值和温度等参数。

路由节点即能进行水质参数采集又能进行数据中继路由,因此路由节点的硬件结构设计与终端节点一样。

图2 终端节点硬件结构图

2.2 传感器信号调理电路

2.2.1 溶解氧信号调理电路

溶解氧传感器选用极谱式溶解氧电流传感器[7],传感器由阴阳两极构成,两极之间用电解液填充,顶端覆盖以聚四氟乙烯薄膜。当给阴阳两极之间施加以685 mV的极化电压后,渗透过薄膜的氧分子在电极上产生氧化还原反应,从而产生扩散电流,其信号调理电路如图3所示。

图3 溶解氧信号调理电路

左边电路用以产生-685 mV极化电压,第一级为电压跟随器,2.5 V输入由高精度电源稳压器产生,经第二级反相后得到-685 mV。右边第一级将电流信号I转换为电压信号,第二级放大电压信号,输出电压VOUTO:

(1)

2.2.2 pH信号调理电路

本设计采用电位法测量溶液pH值,玻璃电极做指示电极,甘汞电极或银电极做参比电极[8],其测量原理是当被测溶液的氢离子浓度发生变化时,指示电极和参比电极之间的电动势发生变化。当电位为0 V时,表示溶液为中性,即pH=7,由于溶液中的pH值分布在0~14之间,所以输出信号为双极性模拟信号,电压范围大约在-500~500 mV。pH信号调理电路如图4所示,电压信号分别加到U1、U2的同相端,U1和U2为第一级电路,U3为第二级电路,这两级均为差分式电路。R2,R3,R4为第一级电路引入电压串联负反馈,根据“虚断”和“虚短”特征,流过R2,R3,R4的电流相等,因此有:

(2)

第三级U3构成减法电路:

(3)

第四级最终输出为:

(4)

至此双极性电压被调节到适合A/D转换的范围内。由最终输出公式可知此电路只对输入信号的差进行有效放大,而当输入端出现共模信号时,电压uo3=0。因此,该放大电路具有很高的共模抑制比,能提高信噪比,增强抗干扰能力,使得测量数值更加精确。

2.2.3 温度传感器测量电路

温度传感器选用pt1000铂电阻温度传感器,金属铂的电阻值随温度变化而变化,并且具有很好的重现性和稳定性,因此应用范围非常广泛,常见于医疗、电机、工业、温度计算、阻值计算等高精温度设备的应用。按IEC751国际标准,pt1000在0℃时的标准电阻值为1000 Ω,电阻变化率为0.3851 Ω/℃。为了提高测量精度,pt1000测量电路常采用三线制接法,如图5所示。

图4 PH信号调理电路 图5 pt1000测量电路

该电路测量原理是非平衡电桥[9],铂电阻作为电桥的一个桥臂电阻,将一根导线接到电桥的电源端,其余两根分别接到铂电阻所在的桥臂及与其相邻的桥臂上,要求从铂电阻引出的三根导线截面积和长度相同,设从铂电阻引出的导线电阻为r。假设0℃时铂电阻电阻值为Rt,且桥路平衡,Vin+=Vin-,则:

(5)

当R1=R2时,Rt=R3,此时导线电阻r对测量结果的影响降至最低。Vin+=Vin-接至A/D转换器的模拟量差分输入端,其电压差值为:

(6)

当温度升高,铂电阻阻值Rt→Rt+ΔR时:

(7)

2.3 传感器节点软件设计

传感器节点主要负责水质数据的采集和无线通信功能,其软件流程如图6。节点上电后首先进入初始化程序,完成配置和入网工作后进入低功耗休眠状态,当有唤醒事件时,MCU被唤醒并开始工作。当MCU内部看门狗定时器溢出时,节点退出休眠模式,进行溶解氧含量、PH值和水温参数的采集和发送;当无线模块监听到路由信息时,产生中断唤醒节点进入数据路由转发的流程。

图6 传感器节点流程图

3 主控制器设计

3.1 主控制器硬件设计

主控制器其功能主要是通过与串口屏幕的连接,将中心节点接收到的数据进行显示,并能控制养殖池中增氧机和抛食机的工作状态,由处理器模块、无线通信模块、串口屏模块、电源模块等组成。其硬件结构如图7所示。MCU选用PIC18F67J94,无源晶振为16 MHz,利用MCU内部锁相环电路超频至64 MHz,为系统提供更高的时钟信号,以获得更快的运行速度。MCU的工作电压为3.3 V,设计中采用BA33BC0FP稳压器提供稳定的3.3 V电压输出。配合PIC kit3调试器,可以将程序通过PGD,PGC串口直接烧写到芯片内部。为了尽可能多地存储水质数据,增加了一块FM25CL64B铁电存储器,容量为64K,数据以一个字节为单位存储,它与MCU通过SPI接口进行数据交互。铁电存储器与传统的EEPROM器件相比有更长的擦写寿命和更低的功耗,适合用于本设计中需要长期实时监测

图7 主控制器硬件结构

的水产养殖池。本系统所采用的串口屏显示器为上海久牛科技的JN08OUT-800600RB3I,采用全双工异步串口与外部设备进行通信,接口电平为RS232电平,数据通信时利用SP3232E转换成TTL电平,软件使用直接变量驱动方式,所有的显示和操作都是基于预先配置好的变量配置文件来工作的,简化了软件架构,降低了二次开发难度。

3.2 主控制器软件设计

中心节点完成WSN的组网并将采集到的数据传送给主控制器,同时主控制器也是人机交互的平台,完成水质参数的实时显示、读取云端数据显示历史曲线等功能。其软件设计如图8所示。

图8 主控制器软件框图

3.3 安卓端app软件设计

设计安卓端app的主要目的是当养殖人员不在主控制器附近时,能够通过手机从云端数据库中读取实时水质数据。开发工具eclipse,编程语言JAVA,首先需要完成界面的布局设计,代码编程时利用JTDS/JDBC中的Connection接口创建手机端与远程数据库的连接,再利用Statement接口在已经建立连接的基础上向数据库发送SQL语句完成对数据库的操作,其界面如图9、10所示。

图9 app服务器设置界面 图10 app水质数据读取界面

4 实验结果与分析

系统测试过程中有5个传感器节点,经自组织方式形成通信网络,水质数据汇聚到中心节点,由串口屏显示数据。节点对同一水域测量5次,测量间隔为20分钟,取其平均值,结果如表1所示。实验结果表明系统能够实时测量水质参数,并且稳定性和测量精度都较高。

表1 监测结果

5 同态加密在云存储平台上的应用

水产养殖涉及经济利益,不同水质状况下鱼类的生长速度不同,用户不会希望自己的养殖数据泄露。在本设计中,水质数据都存储在云端数据库中,但在云端中,数据提供者和云服务提供者这两个角色是分离的[10],云服务提供者由商业机构承担,这些商业机构对于水产养殖户来说是不可信的,如果用户把数据以明文形式存储在云端,那么云服务商就能利用这些数据为自己牟利,如果用户用传统加密方式将数据加密后以密文形式存储在云端,那么云端仅仅是提供了传输、存储功能,用户无法利用云计算的高计算性能优势。而同态加密提供了一种对加密数据进行处理的功能,其定义[11]如下:

设E(K,m)表示用加密算法E和密钥K对m进行加密,F表示某种运算,若对于加密算法E和运算F,存在运算G使得:

E(K,F(m1,m2,…,mn)=

G(K,F(E(m1),E(m2),…,E(mn)))

(8)

就称加密E对于运算F具有同态性。若用Dk表示解密算法,加法同态性和乘法同态性可以分别表示为:

由此可见同态加密能保证云端对密文进行计算操作后解密的结果与用户直接对明文进行计算操作的结果是一样的。

本文所使用的整数环上的同态加密过程描述如下:

1)密钥生成:随机选取两个大素数P和Q(长度大于512位),计算N=PQ,并选取一个随机数R;

2)加密:将明文M按固定长度L(L

3)解密:将密文进行分组C=c1,c2,…,cn,对每一组密文使用密钥P计算mi=cimodP,连接明文分组得到完整明文消息M=m1,m2,…,mn。

上述加密算法同时具有加法同态性和乘法同态性,已在文献[12]中证明。现利用大数运算库Tommath完成对同态加密算法的本地编程测试。测试环境为个人PC端;WIN10系统;VisualStudio2013平台;C语言编程,加密和解密程序流程如图11所示,图中(a)为加密流程图,(b)为解密流程图。

图11 加密和解密流程图

首先,用户读取本地明文文件,利用文件指针先得到明文的长度,并根据需要的分组长度L对明文进行分组,再将分组字符串转换为二进制写进mp_int类型的大数,然后使用密钥P、Q、R对其进行加密操作。

当用户从服务器上获得云计算的密文后根据密文之间的分隔标记进行分组,再将字符串转换成二进制,利用密钥P进行解密计算,获得明文的二进制串后再转换成字符串,结果如图12~15所示。

图12 加密算法控制台程序运行时的图像

图13 需要加密的明文

图14 加密后的密文

图15 密文解密后的结果

由结果中可以看出,明文中包含了汉字、数字、符号等字符,解密结果与明文完全一致。加密算法的安全性是基于分解难题的,攻击者想要破解大数N只能通过穷举法,而N的位数为512~1 024 bit,这将花费攻击者大量的时间。因此本文应用的同态加密算法能在不破坏云计算可行性的前提下保护用户的隐私。但是该加密算法容易受到选择明文攻击[13],因此可以采用合适的云端数据访问控制机制[14-15]来避免遭到选择明文攻击。

6 结束语

本文利用ZigBee构建无线传感器网络,完成对水产养殖池的水质监测系统设计。该系统中,传感器节点负责采集溶解氧含量,PH值,水温等水质数据,中心节点收集各节点的监测数据并进行融合,通过RS232串口与主控制器进行数据传输,并通过GPRS将数据上传至云端保存。主控制器配合串口屏幕完成水质数据的实时监测,设计了安卓手机端app,保证用户能随时随地了解水质情况。通过该系统监测养殖池塘的水质能有效减少养殖人员的工作量,提高养殖效率。

本文针对云端的数据安全性进行研究,利用同态加密算法保护用户隐私,减少数据泄露所造成的经济损失,为了能够进一步提高云端安全性,下一步将结合访问控制机制与同态加密算法进行探索。

猜你喜欢
同态明文加密算法
相对于模N的完全不变子模F的N-投射模
加密文档排序中保序加密算法的最优化选取
小R-投射模
D4-δ-盖及其应用
DES加密算法的实现
基于整数矩阵乘法的图像加密算法
奇怪的处罚
奇怪的处罚
奇怪的处罚
偏序半群的n素理想、偏序同态与商序同态