医疗卫生领域是无线传感器网络的一个热点应用领域,如何保障个人隐私信息在无线传感器网络中不被泄漏是系统能否成功应用的关键。我们将Feistel加密算法应用于无线医疗传感器网络传输过程中人体生理参数敏感数据文件的加密和解密,取得较好效果,下面我就给大家介绍一下Feistel加密算法在无线医疗传感器网络中的应用。

一、医疗数据隐私保护需求分析

家庭和社区远程无线医疗监护设备使用环境和服务对象不同于医院,主要是以便携、自动化、智能化、安全可靠又具有远程通信和联网功能的小型设备为主。在关于医疗传感网络安全论述中,特别强调了以下三点:

1)在无线通信网络易泄漏有用信息和易受攻击的情况下,如何保证医疗数据的隐私性和完整性不受侵犯?

2)如何确保医生、护士和病人等授权用户只能存取相应的数据?

3)如何在某些被捕获的传感器节点内部敏感信息(如密钥等)已泄漏情况下,保护其它节点不被攻击?

设计基于WSNs的家庭和社区远程无线医疗卫生健康监护系统时,应考虑数据采集、传输、存储、访问等各个环节中个人敏感信息的隐私保护问题。我们对图1系统数据流程进行详细分析后得出以下结论,若要构建一个安全的基于无线传感器网络的家庭或社区医疗卫生保健监护系统,必须在以下三个阶段对重要数据采取保护措施。

Feistel加密算法在无线医疗传感器网络中的应用

1、采集阶段数据保护

在数据采集阶段,图1中的传感节点MICAz通过多种传感器测量得到人体的若干生理信号如心电信号、血氧含量、血糖、体压和体温等)。考虑采取扩散(Diffusion)和置乱(Confusion)等手段,把原本有序的数据变得混乱无序,使得对手无法知道数据的真实意义,在一定程度上达到保护敏感数据作用。

Stalh—igs在书中列出了简单的4位数据文件加密解密置换方法,见表1所示。通过简单的数据映射,可对每4 bit为单位的数据进行简单加密和解密。如明文字符串‘0123456789’,经过加密映射后变为'6E4D12FB83A’的密文,密文经过表1相应解密变换后又恢复正常字符串‘0123456789’,这种方法在一定程度上达到了对原始数据的保护。但是它没有改变明文的统计规律性,所以很难防止统计分析攻击。如果加大数据映射的位数乃,如从4 bit增加到64 bit,这样做使得加密后的数据文件不易遭受统计分析攻击。但是在实际系统实现过程中,如对称分组加密中用64 bit为一组数据,那么由于加密和解密表格中数据共占用64 bit×264~1021 bit,占用了太多的内存空间,这种加大映射表格方法不适用于资源受限的无线传感器网络。

Feistel加密算法在无线医疗传感器网络中的应用

2、无线传输过程数据保护

图1传感节点采集到相应的人体生理参数后,进行有选择的数据融合(Data Fusion),经过路由节点通过无线信道多跳向网关节点AP传输相关数据,或不经路由节点单跳直接向网关节点AP传输相关数据。传输过程中敏感数据通常采用对称加密或公钥加密算法,防止重要信息泄漏。对称加密算法具有快速和计算复杂度低等优点,但缺点是密钥管理能力弱,使得密钥分配和更新复杂化,较简单的密钥管理方法是采用密钥预分配。而公钥加密算法密钥管理相对简单,但加密算法总体计算复杂度相对较高,需要大量的计算资源。目前已知常用于WSNs的公钥加密算法为RSA算法和椭圆曲线加密算法。椭圆曲线加密算法使用较短的密钥可以达到RSA加密算法使用较长密码时同样的安全性,如160 bit的椭圆曲线加密算法加密效果可和1 024 bit的RSA加密算法相当。所以,WSNs因存储资源及计算速度都有很大限制,其公钥加密常采用椭圆曲线加密算法。

3、数据库存储、查询访问和发布中数据保护

数据到达网关节点AP后,系统可选择通过Internet网络转发至远程医疗中心,也可选择不转发而直接在本地医疗中心处理。本地或远程医疗中心要对数据文件进行解密、存储和查询访问 ,由于在医疗卫生保健监测系统中涉及医生、护士和病人等多种类型用户,必须进行访问权限控制(Access Control)。否则,在数据采集和传输过程中即使对敏感数据文件进行了置乱和文件加密处理,但若在最后环节没有对访问权限进行控制,同样也会造成信息泄漏,而且其危害性更大,攻击者的代价也更小。同时,对于医疗中心数据库中相关数据进行发布前,在不影响数据使用性前提下,对敏感数据记录项采用删除方法,或采用K-匿名方法啕,达到对病人敏感数据的安全使用,最大限度地做到个人信息隐私保护。

二、SF_noSBox和SF_SBox及iam算法介绍

数据加密标准DES的算法基础是Feistel加密结构,其加密算法思想主要是通过对明文进行初始排列,经过16轮函数置乱置换,最后进行初始排列逆变换方法进行数据文件加密,而且DES加密后的数据文件具有很好的雪崩效应。

1、SF_noSBox加密算法介绍

哈尔滨工业大学的Pazynyuk和李建中等人把Feistel加密结构应用于无线传感器网络安全设计。在WSNs应用领域,资源受限的节点要求加密算法简单和占用较少存储空间。我们对Feistel加密算法进行分析后得知四次轮函数就可以达到较好加密效果,首先设计并构造了不带S盒的简化Feistel加密算法Simplified Feistel with no S- Box,简称SF_noSBox算法,用于对安全性要求不高的应用环境。

SF_ noSBox加密算法的设计思路是:根据WSNs的特点要求设计的加密算法占用空间低,某些场合要求算法运行速度快毫秒级),数据要求实时处理。对原DES加密算法中的56 bit密钥进行扩充改造,同时简化了DES加密算法中密钥转换算法;在SF_noSBox中采用128 bit密钥,每轮使用其中32 bit密钥共4轮进行加密算法改造,32位子密钥按照Ki、K2、K3和K4顺序使用。新设计的SF_noSBox加密算法加密过程示意图见图2所示,对应的解密过程示意图见图3所示。图中+为异或操作,F为轮函数。解密过程密钥的使用顺序和加密过程顺序相反,为K、K3、K2和Ki。64 bit明文分为左右各32 bit两部分,图2、图3和下列各式中LE/RE/LD/RD均为32 bit数据,LEo和REo组成初始64 bit明文。SF_noSBox加密算法的轮函数F,可简单构造如下:

Feistel加密算法在无线医疗传感器网络中的应用

32 bit信息REi_1和32 bit子密码K异或操作后再进行P排列,得到32 bit值,即F=Permutation (REi_l XOR Ki),其中1=1,2,3,4。下面详细介绍SF_noS-Box加密算法加密和解密的工作原理。

1)加密过程

Feistel加密算法在无线医疗传感器网络中的应用

2)解密过程

Feistel加密算法在无线医疗传感器网络中的应用

由于加密过程的密文输出等于解密过程的输入,即加密的Output 6iphertext)=解密的Input 6i-phettext),所以在图3中有LDo=RE4和RDo=LE4,由式(3)得:

LD 0=RDL_i=LE4 -i+l;i= 1,2,3,4

把式1)代入上式得到:

Feistel加密算法在无线医疗传感器网络中的应用

同时得到RDi-1=LE4_i+1=RE4-i;由4)有:

Feistel加密算法在无线医疗传感器网络中的应用

既有:

Feistel加密算法在无线医疗传感器网络中的应用

由式5)、式6)得,当i=4时,最后可得RD4=LEo和LD4=REo,所以加密信息能完全恢复出明文。

2、SF_SBox加密算法介绍

在分析及对SF_noSBox加密算法进行实验后我们发现,该算法不具有明显的“雪崩效应”,即明文的微小改变不会造成密文较大变化,对上述SF_noSBox加密算法做进一步改进设计得到另一种新的带S盒简化Feis-tel加密算法Simplified Feistel with S- Box,简称SF_SBox加密算法)。SF_SBox加密算法的设计思路是:为了在原SF_noSBox加密算法基础上增加“雪崩效应”以提高加密算法安全性,在SF_SBox加密算法轮函数F构造过程中,我们首先对32 bit明文和32 bit密钥的异或结果进行48 bit扩展变换,然后参照DES算法进行8个S盒的置乱,最后对置乱后的数据进行P排列,其轮函数F的详细构造见图4中虚线框表示。

Feistel加密算法在无线医疗传感器网络中的应用

由于引进了S盒置乱,这样改造后得到的带S盒置乱新加密算法。由表2实验数据表明,SF_SBox加密算法和DES加密算法具有程度相当的“雪崩效应”,因而其安全性要比SF_noSBox加密算法高。

Feistel加密算法在无线医疗传感器网络中的应用

从表2的实验数据可知,当64 bit明文改变其中1 bit时,DES加密算法经过16轮函数计算后得到了两组‘‘很不相同”密文,两组密文之间改变的位数是34 bit; SF_noSBox加密算法经过4轮函数计算后得到了两组“微小不同”密文,两组密文之间改变的位数是3 bit;SF_SBox加密算法经过4轮函数计算后得到了两组“很不相同”密文,两组密文之间改变的位数是32 bit。所以,SF_noSBox加密算法的“雪崩效应”很差,而4轮SF_SBox加密算法和16轮DES的“雪崩效应”相当。从雪崩效应”角度观察三种加密算法的安全性,SF—noSBox加密算法安全性最低,SF_SBox加密算法和DES加密算法安全性相当,详见表3所示。

Feistel加密算法在无线医疗传感器网络中的应用

SF_SBox和SF_noSBox加密算法两者加密过程和解密过程是一样的见图2和图3所示),但是它们在轮函数F的构造上有很大区别,SF_noSBox加密算法的轮函数构造比较简单,而SF_SBox轮函数F比较复杂。SF_SBox和SF_noSBox两种加密算法加密和解密过程应用各自相同的轮函数F,这样简化了各自加密算法和解密算法实现,所以加密和解密的执行时间基本
相同,其结果在第3节图5的实验数据中得到反映。

Feistel加密算法在无线医疗传感器网络中的应用

三、Feistel加密算法在无线医疗传感器网络中的应用

1、硬件和软件平台

本系统的传感节点和路由节点采用美国Crossbow公司的MICAz传感器节点,由两节5号电池供电,CPU为Atmel公司的ATMega128 L,主频为8MHz的8 bit微处理器,带有128 KB (KB兰kbyte)编码空间,4KB RAM,通信模块工作频率为2.4 GHz,无线传输速率可高达250 kbit/s。网络协议采用IEEE 802. 15.4和XMesh协议实现,XMesh协议是Crossbow公司开发的可靠无线Ad hoc网络协议,支持多跳组网方式。系统工作在TinyOS Versionl.1操作系统下,用NesC语言实现。系统中的人体传感器生理参数采集终端,采用上海贝瑞电子科技有限公司的血氧模块进行开发和数据测试,较好地实现脉搏波数据、心率、血氧含量值SP02等参数的测量。

2、实验数据分析

图5是数据加密标准DES、SF_noSBox加密算法以及SF_SBox加密算法的加密解密运行时间比较图,从图5中我们可以得知,SF_noSBox加密算法运行时间最短,SF_SBox加密算法次之,DES最长。主要原因是因为在DES中需要16轮函数操作,而且要对56 bit密码进行移位操作,造成DES运行效率在这三种加密算法中最低。在实时性要求很高的场合,我们可以考虑采用SF_noSBox加密算法,但其文件加密效果没有其它两种理想。

图6和图7分别是三种算法RAM/ROM占用量,从图5、6、7三个图和表3我们可以得知,SF_SBox加密算法是一种比较好的折中,它和DES的ROM占用量相当而RAM占用量要低,其安全性能也和DES相当,但是它的执行时间要比DES快近4倍,而且加密后数据具有较好的“雪崩效应”。

Feistel加密算法在无线医疗传感器网络中的应用

由于上述三种加密算法均属分组密码,系统的密钥管理能力弱。我们采用密钥预分配方法进行无线医疗传感器网络的初始配置,同时采用椭圆曲线加密方式实现密钥的更新和分发,在我们前期的工作中,采用椭圆曲线加密方式,其加密和解密的时间都是秒级,不适用对实时性要求高的系统。

采用本文新及iam算法可带来加密解密运行效率的极大改进,但是由此也带来了密钥管理的复杂性。我们在无线医疗传感器网络系统实现过程中,对敏感数据文件加密算法和解密算法采用SF_SBox加密算法,而密钥管理则采用基于椭圆曲线的密码交换算法,这种混合方式较好地发挥对称密码和公钥密码系统各自的优点,在实时性要求、成本和资源消耗方面达成一个平衡。

基于无线传感器网络的人体生理参数远程监测系统的设计和实现,其以预防为主的医疗模式无疑将是传统治疗为主模式的一个有益补充,它的实现和推广有许多关键技术需要解决,包括人们医疗理念的转变等。不管医疗模式如何改变,人们对个人敏感信息的担心都是必然的。所以,在新加密技术带来高效便利的同时,如何同时保障人们对隐私需求,是无线医疗传感器网络能否推广和被大众接受的关键。

小知识之雪崩效应

雪崩效应就是一种不稳定的平衡状态也是加密算法的一种特征,它指明文或密钥的少量变化会引起密文的很大变化,就像雪崩前,山上看上去很平静,但是只要有一点问题,就会造成一片大崩溃。 可以用在很多场合对于Hash码,雪崩效应是指少量消息位的变化会引起信息摘要的许多位变化。