心电信号加密算法的仿真与实现
2017-09-07张甜
张甜
摘要:心电信号是评价和判断心脏健康状况的主要依据,测量得到的心电信号数据在传输过程中会被泄露、篡改,使医生对病情产生误判。本文在STM32平台上采用DES(Data Encryption Standard)加密算法对心电信号进行加密仿真与实现,对加密过的心电数据进行测试和分析;对于采集到的10s的心电数据,加密时长为2.5s,破解DES加密算法的穷举法,其破解密钥长度为56bit的时间为10.01小时(搜索106次/us),表明系统加密过程快且不易被攻击,加密效果良好。
关键词:心电信号;DES;密钥;STM32
中图分类号:TN911.7 文献标识码:A 文章编号:1007-9416(2017)05-0145-02
Simulation and implementation of encryption algorithm for ECG signal
ZHANG Tian
(School of Electronic Information Engineering,Xian Technological University,Xian 710021,China)
Abstract:ECG signal is the main basis to evaluate and judge the state of heart health, the measurement of the ECG signal data in the transmission process may be leaked, tampered with, so that doctors have a miscarriage of justice. In this paper, on the STM32 platform encryption algorithm using DES (Data Encryption Standard)encryption algorithm to encrypt the ECG simulation and implementation, to encrypt the ECG data for testing and analysis, it shows that the system is stable, reliable, high security, is not easy to be attacked, the encryption effect is good.
Key Words:ECG signal; DES; Secret key ;STM32
本文针对目前市场上便携式心电监测设备,远程医疗等中的数据传输问题,提出了对.txt格式的心电数据进行加密的研究。采用基于嵌入式ARM内核的STM32处理器,DES加密算法对心电数据进行加密。在MATLAB平台下对心电信号数据进行加密、解密仿真;编写心电信号的加密程序,按键、LED及一般IO口操作程序,USB传输等程序,移植了μC/OS-II实时操作系统,最终在STM32开发板上进行调试,结果表明程序运行可靠,被加密的心电数据能够准确还原。
1 系统整体设计
ECG加密系统以STM32F103RCT6为主控单元,分别将采集到的心电数据以及MIT-BIH数据库中的心电数据在PC机上使用MATLAB进行DES加密仿真验证,完成验证后再通过USB接口将.txt格式的心电数据传到STM32开发板上进行加密、解密测试。
文中采用I导联体系的方式采集心电信号,采集到的心电数据使用.txt格式进行保存,文本中每种导联保存点数为800点;将.txt格式的心电数据在MATLAB平台上使用DES加密算法进行加密仿真验证,通过USB转串口接口将其连接到STM32开发板上实现加密;将加密后的数据通过传输解密,对比初始数据和解密数据是否完全相同,判断解密算法能否准确的还原数据。
2 DES加密算法
DES加密算法技术成熟、执行速度快、加密效率高,常常被用来进行大数据加密[2]。在以往的加密算法中,一般是对.jpg、.png格式的图片进行加密或者对.rm、.rmvb格式的视频进行加密,本文首次采用DES加密算法对.txt格式的心电数据进行加密。
2.1 DES加密算法原理
一组数据(64bit)通过一个初始置换,将明文分组等分成左、右两半部分,然后进行16轮完全相同的运算,在每一轮运算中,对密钥位进行移位,再从56位密钥中选出48位;同时通过一个扩展置换将数据的右半部分扩展成48位,再通过异或操作与计算得到的48位子密钥结合,并通过8个S盒将这48位替代成新的32位数据,再将其置换一次[3-4]。
再通过另一个异或运算,将运算函数f的输出与左半部分结合,其结果成为新的右半部分,旧的右半部分成为新的左半部分。将该操作重复16次,便实现了DES的16轮运算。经过16轮后,左、右半部分合在一起,最后再通过一个逆初始置换(初始置换的逆置换),这样就完成DES加密算法。
2.2 DES加密算法仿真
对采集到的心电信号进行加密仿真驗证结果如图1所示。
取采集到的心电信号的一部分进行MATLAB的加密仿真验证,图1中“D”表示采集到的心电数据, ans代表加密后的心电数据。对加密后的数据进行解密得到的结果如图2所示。
图2中“D”表示加密后的心电数据,ans代表解密后的心电数据。DES加密算法具有对称性,即解密过程是加密的“逆”过程。所以将加密后得到的密文重新作为明文进行加密就可以得到解密后的明文。对比图1、图2可以看出,经解密后的数据与最开始加密的心电数据一模一样。endprint
3 STM32的加密实现
文中采用STM32开发板来实现心电信号的加密,STM32开发板有极低的开发成本,优异的实时性能,杰出的功能控制[5]。主控芯片使用STM公司的STM32F103RCT6控制器,STM32F103RCT6具有2个USART串行通信接口,内置分数波特率发生器,发送与接收共用可编程波特率,最高达4.5Mb/s。设计中运用串口1与芯片CH340G实现USB接口与STM32的串口通信,用于程序烧写和串口调试[6]。
3.1 系统软件设计
加密系统软件在STM32上的实现,结合Realview MDK这一ARM软件编译开发环境,采用模块化的系统软件编程思想实现各个系统功能,系统移植了μC/OS-II实时操作系统实现系统任务的并行,还移植了FATFS文件系统完成心电数据在SD卡中的保存。
设计方案实现的具体步骤为:首先,需要在keil中新建工程。芯片的选择是ALIENTEK MiNiSTM32开发板所使用的STM32型号位STM32F103RCT6;其次添加启动代码和.c文件。
可供选择的启动文件有3个,可以适用于容量大小不同的STM32芯片。3个启动文件分别是:
startup_stm32f10x_ld.s 小容量:FLASH≦32K
startup_stm32f10x_md.s 中容量:64K≦FLASH≦128K
startup_stm32f10x_hd.s 大容量:256K≦FLASH
本文开发板使用的核心芯片是STM32F103RCT6,FLASH容量为256KB,所以选择大容量的启动文件。最后是子文件夹的创建。SYSTEM文件、USER文件、USMART文件、HARDWARE文件、SOFTWARE文件。在各个文件夹下添加对应的.c文件。SYSTEM文件夹是由ALIENTEK提供的,适用于任何的STM32F10X的芯片,用于快速构建自己的工程。USMART组件是STM32非常重要的辅助调试工具,主要功能是通过串口调用单片机包含的函数并执行。硬件实现中用到LED灯DS1,在HARDWARE文件夹下添加led.c文件。USER文件夹下建立text.c文件,并开始编写程序。
在Microsoft Visual C++ 6.0环境中用C语言编写DES加密解密程序,进行语法修改编译、运行无错误后,将其封装命名为destext.c,并保存入SOFTWARE文件夹。destext.c是DES加密算法原理的实现。程序通过编译,零错误零警告后,可以通过mcuisp软件下载程序到STM32开发板上。
3.2 硬件实现及测试分析
经过测试,PC机上运行的加密解密程序与STM32开发板上运行的程序在经过运算后,所产生的密文Myoutputdata与明文Myinputdata完全相同,证明加密解密程序可以很好的运行在STM32 MCU中。程序编译完成后,通过mcuisp软件下载代码烧写在STM32开发板上。在读取器件信息前需要对mcuisp界面进行设置,波特率为460800,DTR的低电平复位,RTS高电平进BootLoader,以保证程序烧写成功。测试结果如图3所示。
图3对心电数据进行加解密测试。图中右侧设置栏中分别设置了串口、波特率(波特率为9600)等,左边的显示栏中依次显示了“系统正常”、程序中定义的主要函数、输入的密钥、输入的明文、解密后的結果。从图3中可以看出,通过对比得到解密后的数据均与原始数据相同,即DES算法成功对心电信号加密且能恢复原始信号。在数据传输过程中,出于安全系数的考虑,加密后的心电信号数据即密文和密钥在发送时,要通过两种不同的传输信道。
4 结语
本文首次提出了对.txt格式的心电数据进行加密的方案,通过仿真实验和测试分析表明,算法具有很强的安全性,加密效果好;能够适应网络环境下数据加密传输的要求;能够很好的抵抗外来攻击能力,并具有很强的抵抗外界干扰能力;可以保证心电数据安全可靠地传送到医生的客户端,对病情进行实时分析诊断;解决了便携式心电监护仪以及远程医疗中数据在传输过程中丢失,被篡改和泄露的问题,试验表明该方案可靠、稳定、安全,实施效果良好。
参考文献
[1]梅翠松.基于蓝牙通讯的便携式心电监测仪的设计与实现[D].西安:西安工业大学,2014.
[2]尚宇雄.基于分数阶Fourier变换的图像加密算法研究及实现[D].西安:西安工业大学,2011.
[3]徐凯平.ECC和图像隐藏技术在保密文档安全传输中的研究与应用[D].南京:南京航空航天大学,2010.endprint