張甜



摘要:心電信號是評價和判斷心臟健康狀況的主要依據,測量得到的心電信號數據在傳輸過程中會被泄露、篡改,使醫生對病情產生誤判。本文在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