• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于AES 加密算法在電子病歷上傳中的應(yīng)用

    2022-05-17 00:40:50凌茂天趙亞輝
    信息記錄材料 2022年3期
    關(guān)鍵詞:明文加密算法解密

    凌茂天,趙亞輝

    (同濟大學(xué)浙江學(xué)院 浙江 嘉興 314051)

    0 引言

    隨著醫(yī)院建設(shè)企業(yè)級的計算機網(wǎng)絡(luò)系統(tǒng)在我國的快速發(fā)展,數(shù)據(jù)安全和信息保密在醫(yī)療系統(tǒng)中逐漸成為重要研究課題。任何用于數(shù)據(jù)庫管理的計算機軟、硬件及網(wǎng)絡(luò)系統(tǒng)都不能確保是絕對安全的,存在系統(tǒng)代碼缺陷和邏輯流程不合理的漏洞,因此往往會被他人利用,進(jìn)而竊取、篡改重要資料。為了防止個人信息被不法分子利用,需要通過對數(shù)據(jù)文件進(jìn)行加密,以達(dá)到數(shù)據(jù)安全存儲的目的[1]。

    但是以往多數(shù)基層醫(yī)院在將電子病歷信息從本地計算機傳送至中央計算機系統(tǒng)上和存儲過程中,未曾對明文文件或數(shù)據(jù)按加密算法進(jìn)行處理。不法分子利用收集到的患者個人信息進(jìn)行詐騙、騷擾等違法行為,或者通過已知信息進(jìn)一步挖掘更多私密信息擾亂社會秩序的安全穩(wěn)定。針對這一問題,基于不少學(xué)者在密碼學(xué)的高級加密標(biāo)準(zhǔn)Rijndael 加密法上做出的研究[2]和基于FPGA 多通道同步事實高速數(shù)據(jù)采集[3]的研究下,本文提出了一種AES 加密算法在電子病歷記錄信息載體加密上的應(yīng)用,能夠較為有效地解決當(dāng)前系統(tǒng)中存在的部分安全隱患。

    1 AES加密技術(shù)與FPGA硬件設(shè)計概述

    1.1 AES 加密技術(shù)在電子病歷上傳中的應(yīng)用

    現(xiàn)代密碼系統(tǒng)存在理論上的安全問題,即使有絕對安全的算法,也沒有絕對安全的系統(tǒng)。目前得到廣泛應(yīng)用的多為非對稱加密、對稱加密和單向加密。AES 加密算法為對稱式加密,加密與解密使用相同的密鑰。不同于前任標(biāo)準(zhǔn)DES,AES 在軟件、硬件上都能快速地進(jìn)行加、解密。根據(jù)現(xiàn)階段常見的攻擊技術(shù)進(jìn)展而言,目前AES 加密算法是一種相對安全且不易破解的加密方式。該算法易實現(xiàn)、效率高、速度較快的特點也是本次應(yīng)用中選取AES 算法實現(xiàn)電子病歷加密上傳的緣由。AES 算法是單鑰密碼算法,采用了混淆、擴散的原理,涉及字節(jié)替換、行位移、列混淆、輪密鑰加。加密方式是一個迭代分組密碼,將明文分塊后映射到4×4 狀態(tài)矩陣中,若明文分組長度更大,狀態(tài)矩陣則會相應(yīng)增加更多的列,迭代次數(shù)的值取決于矩陣列數(shù)和密鑰列數(shù)。標(biāo)準(zhǔn)的AES 算法采用串行結(jié)構(gòu),處理明文分組時使用同步操作的方式。即只有當(dāng)前一個指令執(zhí)行完畢之后,才可以執(zhí)行下一個指令。該密鑰有3 種長度,分別為128 位、192 位、256 位,對應(yīng)迭代次數(shù)分別為10、12、14?,F(xiàn)階段的應(yīng)用中大部分采用的是128 位密鑰。在本文中明文分組固定長度為128bit,密鑰長度為128bit,輪迭代次數(shù)10 次。同時AES 加密過程的逆操作為解密過程,加、解密過程對稱,但是變換過程中所使用的常量矩陣有所不同。AES 算法加、解密工作流程見圖1。

    AES 的S 盒運算是獨立作用于狀態(tài)字節(jié)的一種非線性變換,它包括兩個數(shù)學(xué)操作,且該變換可逆。它將輸入字節(jié)高4 位作為S-box 行值,低4 位作為列值,對應(yīng)元素作為輸出,將輸入的每一字節(jié)映射為其他字節(jié)。最后產(chǎn)生的S 盒為一個16×16 個字節(jié)的矩陣。本文代碼中使用的S盒見圖2。

    加密和解密的過程中,分別需要Nr+1 個由主密鑰擴展的子密鑰,在本文中即需要11 個子密鑰。由于輪密鑰都是基于種子密鑰擴展形成,因此各組密文具有一定的相關(guān)性。將從初始輸入的子密鑰拷貝,并按一維數(shù)組排列成4*Nk 矩陣。對Nk 列進(jìn)行位移變換,將輸入的4 個字節(jié)循環(huán)左移一字節(jié),再進(jìn)行字節(jié)代換。最后與上一密鑰的第1列做異或運算即兩序列按位相加模二,得到新子密鑰的第1 列密鑰。2、3、4 列則直接由前一列和上一子密鑰做模二運算得到。

    1.2 FPAG 硬件概述

    FPGA(Field Programmable Gate Array),即現(xiàn)場可編輯門陣列,是0 種半定制、可編程的邏輯陣列,并可根據(jù)需求來設(shè)計芯片的功能。

    典型的FPGA 包含3 類資源及可編程邏輯功能塊,用戶可編程I/O 塊和布線資源。FPGA 架構(gòu)將基本元素、附加的計算和數(shù)據(jù)存儲塊結(jié)合在了一起,提高了器件的計算密度和效率?,F(xiàn)階段的FPGA 的存儲單元有分布式DRAM 和寫入輸出需要時鐘的內(nèi)嵌的塊BRAM[3]??紤]到加、解密在單位時間內(nèi)的最大通量(bit/s)以及消耗和穩(wěn)定性問題,在本文的應(yīng)用中使用到了Altera 公司的Cyclone IV,采用該系列可以在不影響性能的情況下有效降低系統(tǒng)總成本。

    Cyclone iv GX 系列芯片內(nèi)部資源通常由以下幾部分組成:(1)基本的邏輯單元(LE);(2)嵌入式存儲資源(embedded memory);(3)嵌入式乘法器(embedded multipliers);(4)通用鎖相環(huán)資源(PLL);(5)豐富的用戶IO(user I/O pins) ;(6)全局時鐘網(wǎng)絡(luò);(7)高速收發(fā)器(transceivers,up to 3.125 Gbps);(8)PCIE硬件IP 核(PCIe hard IP block);(9)多用鎖相環(huán)(MPLL);(10)高速外部存儲器接口(external memory interfaces)。

    其特點有6 k 到150 k 的邏輯單元(LE/LC),最高有6.3 Mbit 的嵌入式內(nèi)存,有最高360 個18×18 乘法器。并且決定使用高速電路設(shè)計中的完全展開流水線結(jié)構(gòu),使每個時鐘脈沖都接受下一條處理數(shù)據(jù)的指令[4],在此基礎(chǔ)上完成AES 算法的硬件設(shè)計。

    由于解密部分的密鑰異或模塊中,所使用的密鑰與密鑰擴展運算的順序是相反的。所以采取先將運算得出的10 輪密鑰擴展結(jié)果進(jìn)行存儲,在輪變換時又進(jìn)行讀取再運算的方法。

    AES 算法通量=(分組長度×最大工作頻率)/所需時鐘數(shù)

    加密速率=通量/可編程邏輯單元消耗量

    FPGA 的IP 內(nèi)核模塊是一種預(yù)先設(shè)計好,或者已經(jīng)驗證過具有某種確定功能的集成電路、器件或部件。IP 核分為3 種,既軟核、硬核、固核。一個基于FPGA 的系統(tǒng)設(shè)計,大部分功能模塊均可使用已經(jīng)設(shè)計好的IP 內(nèi)核。在設(shè)計本文項目時,根據(jù)實際情況利用VHDL 語言對系統(tǒng)功能及行為進(jìn)行構(gòu)筑,并優(yōu)化系統(tǒng)框架,不包括具體物理層面信息。使用預(yù)處理單元,通過軟核的控制對數(shù)據(jù)分組進(jìn)行處理,實現(xiàn)數(shù)據(jù)分組的加、解密過程。因為加密解密使用的密鑰拓展模塊是相同的,所以為了降低邏輯資源消耗,可以令加、解密的部分共用一個密鑰拓展模塊。過程狀態(tài)中的邏輯模塊狀態(tài)轉(zhuǎn)換描述見圖3。字節(jié)代換模塊則是采用了FPGA內(nèi)部存儲資源,存儲S盒查找表的配置數(shù)據(jù),進(jìn)行設(shè)計。

    2 基于AES算法的醫(yī)院電子病歷數(shù)據(jù)加密算法

    2.1 加密設(shè)計與密鑰存儲構(gòu)想

    不同醫(yī)院電子病歷的內(nèi)容有所差異,數(shù)據(jù)大小差別較大,但通過實際查看不同醫(yī)院的病歷模板可知,在電子病歷各項信息中,病人的個人敏感信息通常只存在于電子病歷首頁。而病歷首頁雖然不同醫(yī)院的格式模板不相同,但是記錄的信息內(nèi)容大同小異。醫(yī)院在病案室歸檔和上報時著重于首頁信息,故而為了避免進(jìn)行大量無效的數(shù)據(jù)加密,進(jìn)而對加密效率造成影響,本文的加密僅針對電子病案的首頁。

    鑒于Python 語言的優(yōu)點,該算法使用Python 編程實現(xiàn),將算法中每一部分在編程中都將視為一個類,每一部分對應(yīng)的相應(yīng)功能都在類中進(jìn)行實現(xiàn)。

    算法設(shè)計步驟:(1)輸入密鑰、明文數(shù)據(jù)文件,將明文數(shù)據(jù)分組行數(shù)為m,分組個數(shù)為n。(2)將m行數(shù)據(jù)進(jìn)行加密計算,直至n次后讀到文件結(jié)尾。(3)利用get 函數(shù)獲取返回的數(shù)據(jù)文件加密結(jié)果。

    由于條件受限的原因,算法的調(diào)用并沒有在醫(yī)院的管理系統(tǒng)中實際實現(xiàn)。在模擬環(huán)境的測試時受到一些學(xué)者的啟發(fā),將該算法編寫為庫類,把程序的模塊相互劃分開形成獨立的文件[5]。運行時通過動態(tài)鏈接的方法調(diào)用該算法,在項目中引用AES.dll 文件,實現(xiàn)正常調(diào)用。測試環(huán)境參數(shù)見表1。

    表1 測試環(huán)境參數(shù)

    在實現(xiàn)加解密系統(tǒng)的時候,密鑰存儲是繞不過的問題[6]。如果將密鑰信息直接存儲在數(shù)據(jù)庫中,無疑是種不安全的做法。通常的密鑰存儲方式有3 種。本文選擇記錄介質(zhì)存儲法來保存算法密鑰,在文件加密后,將密鑰信息保存在文件外的方法,即加密時將對應(yīng)密鑰存入數(shù)據(jù)庫,再在數(shù)據(jù)庫中增加一個記錄。解密時根據(jù)路徑,在數(shù)據(jù)庫中查詢相應(yīng)密鑰進(jìn)行解密。

    為了方便醫(yī)院人員使用,采用記錄介質(zhì)存儲法將密鑰存儲在數(shù)據(jù)庫中的方式。雖然一定程度上提升效率和操作可行性,又減少了密鑰管理的硬件花費與復(fù)雜程度,但依舊存在著不小的密鑰泄露風(fēng)險。本文在密鑰存儲管理機制的程序設(shè)計及運用中還有很多不足之處。

    2.2 AES 加密技術(shù)測試與結(jié)果分析

    數(shù)據(jù)通過程序加密解密傳入系統(tǒng)或數(shù)據(jù)庫,通過數(shù)據(jù)庫接口來調(diào)用密鑰信息。該程序在連接中起到作用,故而程序運行無需展示到前端界面。選取某醫(yī)院的一份電子病歷首頁模板,對其進(jìn)行加密測試。

    圖4 為加密后密文內(nèi)容,圖5 為明文內(nèi)容,測試密鑰為1235698742569870。數(shù)據(jù)加密的過程中考慮到醫(yī)院數(shù)據(jù)在單位時間內(nèi)成功地傳送數(shù)據(jù)的吞吐量較大,在數(shù)據(jù)上傳時,還需要進(jìn)一步考慮到數(shù)據(jù)加密對醫(yī)院信息系統(tǒng)數(shù)據(jù)效率的影響,以及其占用資源消耗。筆者將未加密情況下的數(shù)據(jù)與加密后數(shù)據(jù)做出對比,對比實驗數(shù)據(jù)采用云南某醫(yī)院處方表:實驗樣本明文數(shù)據(jù)大小為161 MB,加密后大小為161 MB,估算信息總量在3 600 條。隨著實驗數(shù)據(jù)量逐步增多,由于運用了加密算法的系統(tǒng)增加了數(shù)據(jù)處理任務(wù),導(dǎo)致一定程度上功耗較高、吞吐量受限。故而加密數(shù)據(jù)相較于未加密數(shù)據(jù),在上傳時速率有一定的影響,但兩者比較中考慮到后期的穩(wěn)定性和安全性,AES 加密算法仍占有優(yōu)勢,對于AES 算法在速率上提升的進(jìn)一步優(yōu)化方式有待討論研究。

    3 結(jié)語

    在網(wǎng)絡(luò)快速發(fā)展的當(dāng)今社會,保障醫(yī)療數(shù)據(jù)安全、不泄露患者隱私是確保醫(yī)院公信力的重中之重?;鶎俞t(yī)院的數(shù)據(jù)管理中還存在著許多隱患有待解決,本文聚焦于醫(yī)院數(shù)據(jù)管理的其中一點——電子病案的加密實現(xiàn)。關(guān)注到患者的個人信息安全,將密碼學(xué)中AES 加密算法結(jié)合到實際運用中,根據(jù)對比不同密碼學(xué)算法的優(yōu)缺點,可分析出AES 算法在運用中的合適性和可行性特點。本文在針對電子病歷首頁上傳提出的AES 加密算法在實際中的應(yīng)用,是確保數(shù)據(jù)安全的一種手段,極大地防止不法分子對個人私密信息的竊取行為,同時也沒有因為進(jìn)行信息加密而損失效率,綜上所述本次研究具有很高的實用價值。

    但以上僅局限于理論和實驗環(huán)境中,離實際使用還存在一定差距,還需要更多的數(shù)據(jù)和實驗支撐,才能逐步運用和實現(xiàn)。本文僅針對這一方向做出部分研究,密鑰生成和存儲都是基于目前已提出和實現(xiàn)的技術(shù)進(jìn)行的,并未進(jìn)一步改進(jìn),因此在效率和安全性上還有極大的改進(jìn)空間。

    猜你喜歡
    明文加密算法解密
    解密“熱脹冷縮”
    解密“一包三改”
    少先隊活動(2020年9期)2020-12-17 06:17:31
    炫詞解密
    奇怪的處罰
    奇怪的處罰
    基于小波變換和混沌映射的圖像加密算法
    四部委明文反對垃圾焚燒低價競爭
    Hill加密算法的改進(jìn)
    解密“大調(diào)解”
    平邑县| 马山县| 奇台县| 乡宁县| 安康市| 凤城市| 鄱阳县| 平谷区| 绥阳县| 曲水县| 南宁市| 海阳市| 洛川县| 岗巴县| 黑山县| 永和县| 大港区| 鸡西市| 乐至县| 茌平县| 会宁县| 南宁市| 重庆市| 双辽市| 扎囊县| 辉南县| 嘉祥县| 芮城县| 东港市| 平乡县| 河北区| 贡觉县| 德格县| 时尚| 华池县| 垫江县| 望城县| 临邑县| 新乐市| 阿拉善右旗| 海安县|