谷麗霞, 谷麗萍
(上海市第六人民醫(yī)院, 上海 201303)
醫(yī)院信息化建設(shè)特別是醫(yī)院財(cái)務(wù)管理是國家信息化建設(shè)中的重點(diǎn)之一。隨著衛(wèi)生事業(yè)的發(fā)展,財(cái)務(wù)數(shù)據(jù)結(jié)構(gòu)及處理日益復(fù)雜[1]。對于醫(yī)院財(cái)務(wù)數(shù)據(jù)而言不僅要求準(zhǔn)確無誤地保留相關(guān)歷史數(shù)據(jù),還要保證數(shù)據(jù)實(shí)時(shí)上傳的安全可靠,并且能夠在第一時(shí)間采集各種數(shù)據(jù)信息進(jìn)行綜合分析和決策[2]。計(jì)算機(jī)所具有的數(shù)字化技術(shù)和交互式的處理能力,使其能對龐大、復(fù)雜的數(shù)據(jù)進(jìn)行綜合處理,從而為醫(yī)院財(cái)務(wù)管理提供決策依據(jù)[3]。
以往醫(yī)院財(cái)務(wù)數(shù)據(jù)實(shí)時(shí)上傳系統(tǒng)中,多數(shù)未應(yīng)用加密算法,另外一小部分應(yīng)用的是基于混合加密算法,混合加密算法是一種在處理數(shù)據(jù)時(shí)經(jīng)常用到的加密算法,不少學(xué)者對其進(jìn)行了研究。比如楊宏宇等[4]針對混合加密算法構(gòu)造方法固定存在的問題,提出了一種基于 RSA和 Hill的多密碼體制混合加密算法模型,從而提高了加密效率;此外董清卿等[5]提出了一種基于混合加密算法的IPMC控制器以改善傳統(tǒng)VPX架構(gòu)體系中由于IPMC在信息保密方面存在的不足。此外還有很多專家對此進(jìn)行了研究,在此不再展開敘述。
通過以往經(jīng)驗(yàn)可發(fā)現(xiàn),在未應(yīng)用加密算法的系統(tǒng)中由于數(shù)據(jù)量龐大,并且存在多種異常數(shù)據(jù),加重了系統(tǒng)的運(yùn)行負(fù)擔(dān),而應(yīng)用混合加密算法的系統(tǒng)由于增加了數(shù)據(jù)處理任務(wù),不僅沒有減輕系統(tǒng)運(yùn)行的負(fù)擔(dān),還進(jìn)一步加重?cái)?shù)據(jù)處理任務(wù),導(dǎo)致系統(tǒng)資源占用比過大,功耗較高,數(shù)據(jù)上傳吞吐量受限,嚴(yán)重影響系統(tǒng)使用壽命。針對這種情況,本文采用AES加密算法設(shè)計(jì)應(yīng)用AES加密算法的醫(yī)院財(cái)務(wù)數(shù)據(jù)實(shí)時(shí)上傳系統(tǒng),解決以往使用系統(tǒng)中存在的問題。
在硬件設(shè)計(jì)上,利用FPGA專用集成電路芯片實(shí)現(xiàn)加密算法,將AES加密算法中的復(fù)雜乘法等數(shù)學(xué)運(yùn)算通過查表操作和組合邏輯電路實(shí)現(xiàn)[6]。
FPGA設(shè)計(jì)質(zhì)量的重要標(biāo)準(zhǔn)是面積和速度,面積是指占用FPGA的邏輯單元的數(shù)量,速度是指系統(tǒng)穩(wěn)定工作時(shí)所能使用的最高時(shí)鐘頻率[7]。在FPGA設(shè)計(jì)時(shí),可根據(jù)系統(tǒng)實(shí)際要求,利用VHDL語言描寫系統(tǒng)的功能及行為,將設(shè)計(jì)構(gòu)想輸入給EDA工具中[8]。在選擇FPGA芯片時(shí),考慮到FPGA器件主要由可編程I/O單元、嵌入式RAM塊、邏輯單元和底層嵌入功能單元等單元構(gòu)成,因此在設(shè)計(jì)中選取Altera公司生產(chǎn)的EP2C70F896CN。該芯片與同等工藝的FPGA相比,性能更高且功耗降低一半,具有較高的性價(jià)比。EP2C70F896CN芯片屬于Cyclone系列,該系列的FPGA性能相關(guān)參數(shù)比較,如表1所示。
表1 FPGA性能參數(shù)表
從表1各個(gè)參數(shù)可知,EP2C70F896CN芯片是醫(yī)院財(cái)務(wù)數(shù)據(jù)實(shí)時(shí)上傳系統(tǒng)的理想選擇。在開發(fā)過程中考慮到系統(tǒng)的實(shí)際要求,因此使不同的應(yīng)用平臺對應(yīng)不同的系統(tǒng)架構(gòu),從而對系統(tǒng)框架進(jìn)行優(yōu)化設(shè)計(jì),實(shí)現(xiàn)AES加密算法高傳輸速率的目標(biāo)。
在設(shè)計(jì)中,通過在FPGA中嵌入微控制處理單元Nios II來實(shí)現(xiàn)對整個(gè)系統(tǒng)的控制,將微控制處理單元中定制的32位軟核連接到Avalon總線上,將其他如SDRAM、PIO等外部設(shè)備一起集成在芯片上,優(yōu)化系統(tǒng)框架,得到一個(gè)安全可靠并且靈活配置的系統(tǒng)。優(yōu)化后的系統(tǒng)框架圖,如圖1所示。
圖1 優(yōu)化后的系統(tǒng)框架圖
圖1顯示,在FPGA中包含了預(yù)處理單元,主要負(fù)責(zé)挑選需要被處理的數(shù)據(jù)分組,在軟核的控制下,連接AES組件,實(shí)現(xiàn)對數(shù)據(jù)分組的加密解密過程。
由于在加密過程中存在多種變換,因此設(shè)計(jì)自定義AES IP Core時(shí)需要考慮AES加密算法的實(shí)際加密過程。依據(jù)其中的輪換步驟確定AES IP Core的自定義設(shè)計(jì)方案。將AES IP Core作為頂層模塊,根據(jù)加密算法過程中的各種變換及密鑰擴(kuò)展等劃分出不同的子模塊。在各種代換中,有限狀態(tài)機(jī)模塊和多路復(fù)用模塊作為輪變換控制模塊,而字節(jié)代換模塊采用FPGA內(nèi)部存儲資源存儲S盒查找表的配置數(shù)據(jù)。根據(jù)以上信息設(shè)計(jì)的IP Core模塊結(jié)構(gòu),如圖2所示。
圖2 IP Core設(shè)計(jì)模塊結(jié)構(gòu)圖
在各個(gè)子模塊設(shè)計(jì)中最重要的部分是有限狀態(tài)機(jī)的設(shè)計(jì),AES加密算法中每一輪的加解密操作均由其控制。設(shè)計(jì)的IP Core模塊在開始加密時(shí),首先進(jìn)行初始化操作,每一輪輪變換需要的密鑰通過密鑰擴(kuò)展模塊產(chǎn)生,產(chǎn)生的密鑰與處理后的數(shù)據(jù)一起被傳輸?shù)接袡C(jī)狀態(tài)機(jī)中,完成加密解密過程。以上過程中的狀態(tài)描述,如圖3所示。
圖3 AES IP Core加解密狀態(tài)機(jī)
圖3顯示,狀態(tài)機(jī)先等待初始化后的密鑰和數(shù)據(jù),如果傳輸至狀態(tài)機(jī)的密鑰有效,并且傳輸?shù)臄?shù)據(jù)穩(wěn)定可靠無異常,則開始第一輪輪變換,狀態(tài)機(jī)的狀態(tài)為輪循環(huán)狀態(tài),等進(jìn)行到最后一輪時(shí)狀態(tài)切換為開始狀態(tài),指示操作完成。AES IP Core中的所有模塊都由頂層模塊控制,各個(gè)模塊經(jīng)過綜合后的AES IP Core網(wǎng)表的頂層模塊,如圖4所示。
圖4 AES IP Core頂層模塊
以上內(nèi)容均是圍繞AES加密算法設(shè)計(jì)系統(tǒng)硬件的各個(gè)部分,在此設(shè)計(jì)的基礎(chǔ)上,設(shè)計(jì)系統(tǒng)的軟件部分。
數(shù)據(jù)庫加密是保證數(shù)據(jù)安全和完整的有效手段之一,加密算法在保證數(shù)據(jù)庫有效抵御各種安全威脅中發(fā)揮著重要作用。依據(jù)密碼學(xué)理論,加密就是對特定數(shù)據(jù)進(jìn)行重新編碼,隱藏真實(shí)數(shù)據(jù),使非法用戶不能獲得真實(shí)內(nèi)容。
將AES加密算法應(yīng)用于數(shù)據(jù)庫安全中,可保證數(shù)據(jù)安全。AES加密算法中的輸入、輸出和密鑰被劃分為字節(jié)矩陣或字節(jié)數(shù)組。將AES加密算法基本單元的二維字節(jié)數(shù)組叫作狀態(tài)矩陣K,矩陣一共4行,每行有Ma個(gè)字節(jié),字節(jié)的行下標(biāo)為i,列下標(biāo)為j,則狀態(tài)矩陣K中的每一個(gè)字節(jié)為kij。在加密開始時(shí),將輸入矩陣{in0,in1,…,in15}傳送到狀態(tài)矩陣中,輸入數(shù)組按照公式1傳遞到狀態(tài)矩陣中,加密運(yùn)算過程在狀態(tài)矩陣中完成,加密完成后得到的數(shù)據(jù)被傳出輸出矩陣{out0,out1,…,out15}中,狀態(tài)矩陣按式(2)傳遞到輸出字節(jié)數(shù)組中,如式(1)、式(2)。
k[i,j]=in[i+4j] 0≤i<4,0≤j<4Ma
(1)
out[i+4j]=k[i,j] 0≤i<4,0≤j<4Ma
(2)
在狀態(tài)矩陣中存在4種不同的變換形式,分別是以字節(jié)為目標(biāo)的字節(jié)替換;以狀態(tài)矩陣各行為目標(biāo)的移位變換;以狀態(tài)矩陣各列為目標(biāo)的列混合變換;以狀態(tài)矩陣和子密鑰為目標(biāo)的數(shù)域相加。AES加密算法中存在一個(gè)初始密鑰,以上過程保證數(shù)據(jù)每一輪變換不同,且每一輪的輪加密所需密鑰都由初始密鑰產(chǎn)生。將128位密鑰矩陣的4列表示為e(0)、e(1)、e(2)、e(3),按照下面的公式產(chǎn)生后面40個(gè)新列,如式(3)、式(4)。
藝術(shù)教育之所以被重視又很好的實(shí)施,我們在實(shí)踐中也漸漸體會到藝術(shù)教育形式的生動性,我們要圍繞藝術(shù)教育學(xué)的目標(biāo),教育者實(shí)現(xiàn)藝術(shù)教育學(xué)的效果,讓學(xué)生去理解美,培養(yǎng)學(xué)生的藝術(shù)理念,作為教育者不僅僅是專業(yè)技能的提高,教育能力方法和指導(dǎo)也要同步提升,同時(shí)我們也深刻的明白不僅要有完備的專業(yè)技能水平,更要有更豐富的學(xué)科知識,才能更好的教孩子們進(jìn)行學(xué)習(xí);在此同時(shí),藝術(shù)教育學(xué)引領(lǐng)我們豐富了上課的內(nèi)容,為學(xué)生提供藝術(shù)創(chuàng)作活動;既能豐富學(xué)生的動手合作能力,又能讓學(xué)生深刻體會到藝術(shù)存在于生活之中,在學(xué)習(xí)藝術(shù)知識的領(lǐng)域下更加理解教育的力量。
e(x)=e(x-4)XORe(x-1)x-4≠0
(3)
e(x)=e(x-4)XORH[e(x-1)]x-4=0
(4)
式中,H[e(x-1)]是e(x-1)的一種擴(kuò)展轉(zhuǎn)化形式,通過字節(jié)循環(huán)移位和替換,計(jì)算出每輪子密鑰的常量,完成轉(zhuǎn)換。以上過程是密鑰擴(kuò)展過程,目的是得到每一輪的密鑰。在已知密鑰的情況下,可利用密鑰解密數(shù)據(jù),獲得安全數(shù)據(jù)。
數(shù)據(jù)實(shí)時(shí)上傳系統(tǒng)的數(shù)據(jù)庫選用oracle數(shù)據(jù)庫,使用原廠提供的Pro*C接口,采用PLSQL編寫所有SQL,數(shù)據(jù)的實(shí)時(shí)上傳主要通過Pro*C接口實(shí)現(xiàn)。
在Pro*C接口中引入運(yùn)行時(shí)連接字,一個(gè)運(yùn)行時(shí)連接字包含與數(shù)據(jù)庫服務(wù)器的連接和當(dāng)前連接上使用的游標(biāo)等。在應(yīng)用程序中調(diào)用Pro*C接口主要通過互相獨(dú)立的運(yùn)行時(shí)連接字的方式完成多線程的開發(fā)。
終端上傳的醫(yī)院財(cái)務(wù)數(shù)據(jù)經(jīng)過歸類處理后按照類別發(fā)送至數(shù)據(jù)緩沖池。在同一數(shù)據(jù)緩沖池類里的運(yùn)行時(shí)連接字需要保證內(nèi)容一致,主要在SQL編寫時(shí)使用變量綁定。在多線程運(yùn)行時(shí)使用獨(dú)立的運(yùn)行時(shí)連接字,建立單個(gè)數(shù)據(jù)緩沖池對數(shù)據(jù)庫的訪問連接。由于運(yùn)行時(shí)連接字里的內(nèi)容相同,數(shù)據(jù)在傳輸過程中不需要反復(fù)操作游標(biāo),數(shù)據(jù)上傳和存儲也可以達(dá)到較高的效率。
對線程量進(jìn)行連接最大值的保護(hù)性設(shè)置就是建立數(shù)據(jù)池與數(shù)據(jù)庫之間的專用交互通道,設(shè)置默認(rèn)每個(gè)數(shù)據(jù)池與數(shù)據(jù)庫之間建立最大數(shù)據(jù)庫,避免數(shù)據(jù)庫壓力過大。線程定義完成后,激活所有線程,分配內(nèi)存,與數(shù)據(jù)庫建立關(guān)聯(lián),待數(shù)據(jù)開始上傳后,數(shù)據(jù)經(jīng)過分類處理后寫入數(shù)據(jù)庫中,完成數(shù)據(jù)的上傳。存儲過程的編寫兼用宿主變量和游標(biāo),利用游標(biāo)處理行數(shù)限制,開發(fā)出SQL運(yùn)行所需的資源區(qū),減少大開發(fā)量對數(shù)據(jù)庫資源的消耗。
醫(yī)院財(cái)務(wù)數(shù)據(jù)實(shí)時(shí)上傳系統(tǒng)正常運(yùn)行時(shí),通信協(xié)議是保證數(shù)據(jù)傳輸可靠的關(guān)鍵問題。網(wǎng)絡(luò)通信多數(shù)基于TCP/IP協(xié)議組合,在網(wǎng)絡(luò)傳輸過程中可能會產(chǎn)生數(shù)據(jù)丟失情況,對于這種問題,可在TCP協(xié)議中增加一個(gè)定時(shí)器,限定連接傳輸時(shí)間,開始時(shí)間為傳輸方和接收方成功連接時(shí)刻,如果到了設(shè)定的時(shí)間,接受方發(fā)出的信息依然沒有傳送至傳輸方,則重新建立連接傳送數(shù)據(jù),在重傳數(shù)據(jù)時(shí)建立新的通信通道。因此,在TCP協(xié)議下可以在數(shù)據(jù)上傳失敗后進(jìn)行補(bǔ)救,保證數(shù)據(jù)的成功上傳。至此,醫(yī)院財(cái)務(wù)數(shù)據(jù)實(shí)時(shí)上傳系統(tǒng)設(shè)計(jì)完成。
醫(yī)院財(cái)務(wù)數(shù)據(jù)實(shí)時(shí)上傳系統(tǒng)性能測試需要在無線網(wǎng)絡(luò)環(huán)境下進(jìn)行,測試在WI-FI下,未應(yīng)用加密算法與應(yīng)用混合算法、應(yīng)用AES加密算法的醫(yī)院財(cái)務(wù)數(shù)據(jù)實(shí)時(shí)上傳系統(tǒng)的實(shí)際性能。
表2 測試環(huán)境參數(shù)配置
在準(zhǔn)備好的測試環(huán)境下,分別測試三個(gè)不同系統(tǒng)在數(shù)據(jù)實(shí)時(shí)上傳過程中獲得資源占用、系統(tǒng)功耗和數(shù)據(jù)吞吐量情況,根據(jù)測試結(jié)果分析3個(gè)系統(tǒng)的實(shí)際性能。
要完成在WI-FI網(wǎng)絡(luò)下的系統(tǒng)測試,關(guān)鍵在于測試系統(tǒng)是否能成功連接WI-FI。測試步驟如下:燒寫zlmage進(jìn)入系統(tǒng),打開WI-FI,自動獲取WI-FI并連接到網(wǎng)絡(luò)。利用USB線連接計(jì)算機(jī)與設(shè)備,打開計(jì)算機(jī)中的命令指示符,將目錄切換到adb調(diào)試工具所在目錄,執(zhí)行“l(fā)ogcat”查看運(yùn)行信息。如果WI-FI連接成功,則在命令指示符窗口顯示出“New network state is CONNECTED”信息,此時(shí)網(wǎng)絡(luò)連接成功。如圖5所示。
圖5 cmd輸出信息
網(wǎng)絡(luò)連接成功后,測試未應(yīng)用加密算法、應(yīng)用混合加密算法和應(yīng)用AES加密算法的醫(yī)院財(cái)務(wù)數(shù)據(jù)實(shí)時(shí)上傳系統(tǒng)。
在醫(yī)院財(cái)務(wù)數(shù)據(jù)實(shí)時(shí)上傳系統(tǒng)中,數(shù)據(jù)需要從數(shù)據(jù)發(fā)送器中發(fā)出,從測試端的數(shù)據(jù)接收器接收數(shù)據(jù),將數(shù)據(jù)上傳至系統(tǒng)中,在此過程中,使用命令指示符cmd獲得資源占用測試結(jié)果。數(shù)據(jù)接收到后,上傳數(shù)據(jù),不同系統(tǒng)的資源占用測試結(jié)果,如圖6所示。
a 未應(yīng)用加密算法的系統(tǒng)測試結(jié)果
b 應(yīng)用混合加密算法的系統(tǒng)測試結(jié)果
c 應(yīng)用AES加密算法的系統(tǒng)測試結(jié)果
觀察圖6結(jié)果,圖6顯示的是在數(shù)據(jù)實(shí)時(shí)上傳時(shí)硬件資源的分配結(jié)果。圖6(a)中顯示邏輯元素總數(shù)占用比為61%,引腳占用比為54%,存儲總占用比為33%;圖6(b)中顯示邏輯元素總數(shù)占用比為91%,引腳占用比為83%,存儲總占用比為61%;圖(c)中顯示邏輯元素總數(shù)占用比為63%,引腳占用比為56%,存儲總占用比為34%。通過上述數(shù)據(jù)可知,應(yīng)用AES加密算法的系統(tǒng)資源占用情況與未應(yīng)用加密算法的系統(tǒng)資源占用情況相近,而應(yīng)用混合加密算法的系統(tǒng)資源占用比遠(yuǎn)遠(yuǎn)超過另外兩組測試結(jié)果,說明應(yīng)用了AES加密算法的醫(yī)院財(cái)務(wù)數(shù)據(jù)實(shí)時(shí)上傳系統(tǒng)中加密算法執(zhí)行占用資源較少。
低功耗是系統(tǒng)設(shè)計(jì)中必須考慮的因素,使用功耗分析工具,估算不同系統(tǒng)在正常運(yùn)行過程中功耗情況。系統(tǒng)功耗主要包括動態(tài)功耗、靜態(tài)功耗和IO引腳功耗。其中靜態(tài)功耗為待機(jī)狀態(tài)下的功耗,動態(tài)功耗指的是系統(tǒng)驅(qū)動狀態(tài)下的功耗,IO引腳功耗指的是來自外部開關(guān)和器件輸出引腳連接的相關(guān)硬件產(chǎn)生的功耗。使用功耗分析軟件PowerPlay Power Analyzer Tool估算各系統(tǒng)功耗,如表3所示。
表3 系統(tǒng)功耗測試結(jié)果
根據(jù)表3數(shù)據(jù)計(jì)算各系統(tǒng)的功耗總和,分別為0.953 65 W、0.977 86 W和0.370 16 W,未應(yīng)用加密算法的系統(tǒng)對于數(shù)據(jù)的處理和分析需要消耗更多的動態(tài)功耗,因此其總功耗較高;與未應(yīng)用加密算法的系統(tǒng)相比應(yīng)用混合加密算法的系統(tǒng)的動態(tài)功耗減輕,但是系統(tǒng)待機(jī)狀態(tài)的功耗增加,系統(tǒng)總功耗沒有減輕;與前兩者相比,應(yīng)用AES加密算法的系統(tǒng)各個(gè)功耗均減少,總功耗大幅度下降。三者相比,應(yīng)用AES加密算法的系統(tǒng)功耗最少。
在醫(yī)院財(cái)務(wù)數(shù)據(jù)上傳系統(tǒng)工作中,為了穩(wěn)定工作,建議主時(shí)鐘周期在10 ns以上,假設(shè)系統(tǒng)中主時(shí)鐘頻率為100 MHz,則完成128 bit的數(shù)據(jù)上傳需要8個(gè)時(shí)鐘周期才能完成,由此得出數(shù)據(jù)實(shí)時(shí)上傳速度可以達(dá)到1.6 Gbit/s。但是實(shí)際上傳過程中受到器件、噪聲等多種因素的影響,系統(tǒng)不能保證在更高時(shí)鐘下穩(wěn)定運(yùn)行。在上述條件下測試各系統(tǒng)的數(shù)據(jù)吞吐量,如圖7所示。
圖7中系統(tǒng)1表示未應(yīng)用加密算法的系統(tǒng),系統(tǒng)2表示應(yīng)用混合加密算法的系統(tǒng),系統(tǒng)3表示應(yīng)用AES加密算法的系統(tǒng)。從圖7中可以看出系統(tǒng)3的吞吐量遠(yuǎn)高于其他兩個(gè)系統(tǒng),并且系統(tǒng)1和系統(tǒng)2的吞吐量與1.6 Gbit/s相差甚遠(yuǎn)。結(jié)合資源占用比和系統(tǒng)功耗測試結(jié)果可知,應(yīng)用AES加密算法的醫(yī)院財(cái)務(wù)數(shù)據(jù)實(shí)時(shí)上傳系統(tǒng)在正常運(yùn)行過程中資源占用少、功耗低且吞吐量高,說明系統(tǒng)應(yīng)用加密算法并沒有給系統(tǒng)帶來較重的負(fù)擔(dān),且延長了系統(tǒng)的使用壽命。
圖7 不同系統(tǒng)的數(shù)據(jù)吞吐量測試結(jié)果
數(shù)據(jù)加密技術(shù)是一種保證數(shù)據(jù)安全的可靠手段,對于醫(yī)院財(cái)務(wù)數(shù)據(jù)實(shí)時(shí)上傳而言,應(yīng)用該技術(shù)能夠滿足系統(tǒng)對數(shù)據(jù)上傳系統(tǒng)安全性的需求。針對系統(tǒng)的安全需求,從實(shí)際出發(fā),設(shè)計(jì)系統(tǒng)的硬件和軟件部分,在FPGA硬件基礎(chǔ)上實(shí)現(xiàn)數(shù)據(jù)庫加密,保證數(shù)據(jù)上傳安全。通過系統(tǒng)測試驗(yàn)證了應(yīng)用AES加密算法的系統(tǒng)性能的優(yōu)越性,但是在研究中,系統(tǒng)距離實(shí)際使用還有一些差距,需要經(jīng)過不斷測試反復(fù)驗(yàn)證,但是其表現(xiàn)的良好安全性能夠滿足系統(tǒng)的安全需求,為以后的深層次研究工作奠定基礎(chǔ)。