張?zhí)?/p>
摘要:心電信號是評價和判斷心臟健康狀況的主要依據(jù),測量得到的心電信號數(shù)據(jù)在傳輸過程中會被泄露、篡改,使醫(yī)生對病情產(chǎn)生誤判。本文在STM32平臺上采用DES(Data Encryption Standard)加密算法對心電信號進行加密仿真與實現(xiàn),對加密過的心電數(shù)據(jù)進行測試和分析;對于采集到的10s的心電數(shù)據(jù),加密時長為2.5s,破解DES加密算法的窮舉法,其破解密鑰長度為56bit的時間為10.01小時(搜索106次/us),表明系統(tǒng)加密過程快且不易被攻擊,加密效果良好。
關(guān)鍵詞:心電信號;DES;密鑰;STM32
中圖分類號:TN911.7 文獻標(biāo)識碼: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
本文針對目前市場上便攜式心電監(jiān)測設(shè)備,遠程醫(yī)療等中的數(shù)據(jù)傳輸問題,提出了對.txt格式的心電數(shù)據(jù)進行加密的研究。采用基于嵌入式ARM內(nèi)核的STM32處理器,DES加密算法對心電數(shù)據(jù)進行加密。在MATLAB平臺下對心電信號數(shù)據(jù)進行加密、解密仿真;編寫心電信號的加密程序,按鍵、LED及一般IO口操作程序,USB傳輸?shù)瘸绦?,移植了μC/OS-II實時操作系統(tǒng),最終在STM32開發(fā)板上進行調(diào)試,結(jié)果表明程序運行可靠,被加密的心電數(shù)據(jù)能夠準(zhǔn)確還原。
1 系統(tǒng)整體設(shè)計
ECG加密系統(tǒng)以STM32F103RCT6為主控單元,分別將采集到的心電數(shù)據(jù)以及MIT-BIH數(shù)據(jù)庫中的心電數(shù)據(jù)在PC機上使用MATLAB進行DES加密仿真驗證,完成驗證后再通過USB接口將.txt格式的心電數(shù)據(jù)傳到STM32開發(fā)板上進行加密、解密測試。
文中采用I導(dǎo)聯(lián)體系的方式采集心電信號,采集到的心電數(shù)據(jù)使用.txt格式進行保存,文本中每種導(dǎo)聯(lián)保存點數(shù)為800點;將.txt格式的心電數(shù)據(jù)在MATLAB平臺上使用DES加密算法進行加密仿真驗證,通過USB轉(zhuǎn)串口接口將其連接到STM32開發(fā)板上實現(xiàn)加密;將加密后的數(shù)據(jù)通過傳輸解密,對比初始數(shù)據(jù)和解密數(shù)據(jù)是否完全相同,判斷解密算法能否準(zhǔn)確的還原數(shù)據(jù)。
2 DES加密算法
DES加密算法技術(shù)成熟、執(zhí)行速度快、加密效率高,常常被用來進行大數(shù)據(jù)加密[2]。在以往的加密算法中,一般是對.jpg、.png格式的圖片進行加密或者對.rm、.rmvb格式的視頻進行加密,本文首次采用DES加密算法對.txt格式的心電數(shù)據(jù)進行加密。
2.1 DES加密算法原理
一組數(shù)據(jù)(64bit)通過一個初始置換,將明文分組等分成左、右兩半部分,然后進行16輪完全相同的運算,在每一輪運算中,對密鑰位進行移位,再從56位密鑰中選出48位;同時通過一個擴展置換將數(shù)據(jù)的右半部分?jǐn)U展成48位,再通過異或操作與計算得到的48位子密鑰結(jié)合,并通過8個S盒將這48位替代成新的32位數(shù)據(jù),再將其置換一次[3-4]。
再通過另一個異或運算,將運算函數(shù)f的輸出與左半部分結(jié)合,其結(jié)果成為新的右半部分,舊的右半部分成為新的左半部分。將該操作重復(fù)16次,便實現(xiàn)了DES的16輪運算。經(jīng)過16輪后,左、右半部分合在一起,最后再通過一個逆初始置換(初始置換的逆置換),這樣就完成DES加密算法。
2.2 DES加密算法仿真
對采集到的心電信號進行加密仿真驗證結(jié)果如圖1所示。
取采集到的心電信號的一部分進行MATLAB的加密仿真驗證,圖1中“D”表示采集到的心電數(shù)據(jù), ans代表加密后的心電數(shù)據(jù)。對加密后的數(shù)據(jù)進行解密得到的結(jié)果如圖2所示。
圖2中“D”表示加密后的心電數(shù)據(jù),ans代表解密后的心電數(shù)據(jù)。DES加密算法具有對稱性,即解密過程是加密的“逆”過程。所以將加密后得到的密文重新作為明文進行加密就可以得到解密后的明文。對比圖1、圖2可以看出,經(jīng)解密后的數(shù)據(jù)與最開始加密的心電數(shù)據(jù)一模一樣。endprint
3 STM32的加密實現(xiàn)
文中采用STM32開發(fā)板來實現(xiàn)心電信號的加密,STM32開發(fā)板有極低的開發(fā)成本,優(yōu)異的實時性能,杰出的功能控制[5]。主控芯片使用STM公司的STM32F103RCT6控制器,STM32F103RCT6具有2個USART串行通信接口,內(nèi)置分?jǐn)?shù)波特率發(fā)生器,發(fā)送與接收共用可編程波特率,最高達4.5Mb/s。設(shè)計中運用串口1與芯片CH340G實現(xiàn)USB接口與STM32的串口通信,用于程序燒寫和串口調(diào)試[6]。
3.1 系統(tǒng)軟件設(shè)計
加密系統(tǒng)軟件在STM32上的實現(xiàn),結(jié)合Realview MDK這一ARM軟件編譯開發(fā)環(huán)境,采用模塊化的系統(tǒng)軟件編程思想實現(xiàn)各個系統(tǒng)功能,系統(tǒng)移植了μC/OS-II實時操作系統(tǒng)實現(xiàn)系統(tǒng)任務(wù)的并行,還移植了FATFS文件系統(tǒng)完成心電數(shù)據(jù)在SD卡中的保存。
設(shè)計方案實現(xiàn)的具體步驟為:首先,需要在keil中新建工程。芯片的選擇是ALIENTEK MiNiSTM32開發(fā)板所使用的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
本文開發(fā)板使用的核心芯片是STM32F103RCT6,F(xiàn)LASH容量為256KB,所以選擇大容量的啟動文件。最后是子文件夾的創(chuàng)建。SYSTEM文件、USER文件、USMART文件、HARDWARE文件、SOFTWARE文件。在各個文件夾下添加對應(yīng)的.c文件。SYSTEM文件夾是由ALIENTEK提供的,適用于任何的STM32F10X的芯片,用于快速構(gòu)建自己的工程。USMART組件是STM32非常重要的輔助調(diào)試工具,主要功能是通過串口調(diào)用單片機包含的函數(shù)并執(zhí)行。硬件實現(xiàn)中用到LED燈DS1,在HARDWARE文件夾下添加led.c文件。USER文件夾下建立text.c文件,并開始編寫程序。
在Microsoft Visual C++ 6.0環(huán)境中用C語言編寫DES加密解密程序,進行語法修改編譯、運行無錯誤后,將其封裝命名為destext.c,并保存入SOFTWARE文件夾。destext.c是DES加密算法原理的實現(xiàn)。程序通過編譯,零錯誤零警告后,可以通過mcuisp軟件下載程序到STM32開發(fā)板上。
3.2 硬件實現(xiàn)及測試分析
經(jīng)過測試,PC機上運行的加密解密程序與STM32開發(fā)板上運行的程序在經(jīng)過運算后,所產(chǎn)生的密文Myoutputdata與明文Myinputdata完全相同,證明加密解密程序可以很好的運行在STM32 MCU中。程序編譯完成后,通過mcuisp軟件下載代碼燒寫在STM32開發(fā)板上。在讀取器件信息前需要對mcuisp界面進行設(shè)置,波特率為460800,DTR的低電平復(fù)位,RTS高電平進BootLoader,以保證程序燒寫成功。測試結(jié)果如圖3所示。
圖3對心電數(shù)據(jù)進行加解密測試。圖中右側(cè)設(shè)置欄中分別設(shè)置了串口、波特率(波特率為9600)等,左邊的顯示欄中依次顯示了“系統(tǒng)正?!?、程序中定義的主要函數(shù)、輸入的密鑰、輸入的明文、解密后的結(jié)果。從圖3中可以看出,通過對比得到解密后的數(shù)據(jù)均與原始數(shù)據(jù)相同,即DES算法成功對心電信號加密且能恢復(fù)原始信號。在數(shù)據(jù)傳輸過程中,出于安全系數(shù)的考慮,加密后的心電信號數(shù)據(jù)即密文和密鑰在發(fā)送時,要通過兩種不同的傳輸信道。
4 結(jié)語
本文首次提出了對.txt格式的心電數(shù)據(jù)進行加密的方案,通過仿真實驗和測試分析表明,算法具有很強的安全性,加密效果好;能夠適應(yīng)網(wǎng)絡(luò)環(huán)境下數(shù)據(jù)加密傳輸?shù)囊螅荒軌蚝芎玫牡挚雇鈦砉裟芰?,并具有很強的抵抗外界干擾能力;可以保證心電數(shù)據(jù)安全可靠地傳送到醫(yī)生的客戶端,對病情進行實時分析診斷;解決了便攜式心電監(jiān)護儀以及遠程醫(yī)療中數(shù)據(jù)在傳輸過程中丟失,被篡改和泄露的問題,試驗表明該方案可靠、穩(wěn)定、安全,實施效果良好。
參考文獻
[1]梅翠松.基于藍牙通訊的便攜式心電監(jiān)測儀的設(shè)計與實現(xiàn)[D].西安:西安工業(yè)大學(xué),2014.
[2]尚宇雄.基于分?jǐn)?shù)階Fourier變換的圖像加密算法研究及實現(xiàn)[D].西安:西安工業(yè)大學(xué),2011.
[3]徐凱平.ECC和圖像隱藏技術(shù)在保密文檔安全傳輸中的研究與應(yīng)用[D].南京:南京航空航天大學(xué),2010.endprint