康海燕, 鄧婕
(1.北京信息科技大學(xué) 信息管理學(xué)院,北京 100192;2.北京信息科技大學(xué) 計(jì)算機(jī)學(xué)院,北京 100101)
新冠肺炎疫情期間,醫(yī)療機(jī)構(gòu)作為“抗疫”的最前線,在網(wǎng)絡(luò)空間的戰(zhàn)場(chǎng)上同樣面臨著嚴(yán)峻的數(shù)據(jù)隱私安全威脅與考驗(yàn). 亞信安全威脅情報(bào)中心在此期間對(duì)醫(yī)療行業(yè)網(wǎng)絡(luò)安全進(jìn)行了緊密的監(jiān)控. 數(shù)據(jù)顯示,疫情期間的絕大多數(shù)醫(yī)療數(shù)據(jù)泄露事件是惡意用戶利用新型冠狀病毒的熱度,通過(guò)釣魚(yú)軟件、惡意鏈接等方式誘導(dǎo)被攻擊用戶打開(kāi)、下載并啟用惡意文件來(lái)竊取醫(yī)療數(shù)據(jù). 而一旦電腦被感染,病毒會(huì)進(jìn)行橫向移動(dòng),感染更多網(wǎng)絡(luò)中的機(jī)器. 據(jù)盛邦安全監(jiān)測(cè)數(shù)據(jù)顯示,2020年初以來(lái),部分疫情災(zāi)區(qū)的WebShell日攻擊流量達(dá)到104萬(wàn)條,其中有效攻擊量近6 000條,相比較2019年的平均日攻擊流量上升5個(gè)百分點(diǎn),有效攻擊數(shù)量上升15個(gè)百分點(diǎn)[1]. 此外,2020年1月,美國(guó)Verizon電信公司發(fā)布了美國(guó)《2019年全年數(shù)據(jù)泄露事故調(diào)查報(bào)告》,該報(bào)告指出醫(yī)療保健行業(yè)發(fā)生的數(shù)據(jù)泄露事故在所有行業(yè)事故中排第二,約占21%;有人專門做過(guò)統(tǒng)計(jì),僅2019年美國(guó)就發(fā)生40多起嚴(yán)重醫(yī)療數(shù)據(jù)泄露事件[2],大約近千萬(wàn)病人的信息被竊取,同樣的在我國(guó),醫(yī)療信息泄露事件也是層出不窮,例如2019年9月,我國(guó)多家著名醫(yī)療機(jī)構(gòu)的影像歸檔和通信系統(tǒng)服務(wù)器被黑,將近30萬(wàn)病人隱私信息被竊取[3]. 近十年來(lái),我國(guó)醫(yī)療信息泄露事件是屢見(jiàn)不鮮,有統(tǒng)計(jì)表明,我國(guó)在2010—2019期間因醫(yī)療信息泄露事件造成的損失達(dá)近萬(wàn)億,被泄露的公民隱私信息近10億條. 究其根本原因還是醫(yī)療信息系統(tǒng)的防御能力差,存在業(yè)務(wù)邏輯漏洞,無(wú)法安全存儲(chǔ)病人的隱私數(shù)據(jù),使得惡意用戶可以很輕易地進(jìn)行入侵并竊取數(shù)據(jù). 2010—2019年期間我國(guó)醫(yī)療數(shù)據(jù)泄露的來(lái)源趨勢(shì)圖如圖1所示[3],可以看出除了內(nèi)部人員竊取或丟失數(shù)據(jù)等內(nèi)因外,更多的是來(lái)自外部的黑客滲透入侵、未經(jīng)授權(quán)訪問(wèn)或接口暴露等網(wǎng)絡(luò)攻擊威脅.
圖1 2010—2019年我國(guó)醫(yī)療數(shù)據(jù)泄露的來(lái)源趨勢(shì)圖Fig.1 Source trend of medical data leakage in China from 2010 to 2019
數(shù)據(jù)加密技術(shù)被譽(yù)為信息安全的核心技術(shù),其主要分為對(duì)稱加密和非對(duì)稱加密,分別以DES算法(data encryption standard, DES)[4]和RSA算法(Rivest-Shamir-Adleman, RSA)[5]為典型代表. DES算法是分組加密算法,計(jì)算效率高、加密速度快,不過(guò)其安全性依賴于密鑰,而RSA算法是基于大數(shù)分解的算法,采用公鑰和私鑰的雙密鑰體制,其破解難度等同于分解兩個(gè)大質(zhì)數(shù)之積,安全性高,不過(guò)計(jì)算開(kāi)銷大、加密速度慢. 雖說(shuō)目前還沒(méi)有在短時(shí)間內(nèi)破譯它們的有效方法,但是隨著計(jì)算機(jī)軟硬件的不斷發(fā)展使得計(jì)算機(jī)的性能日新月異,一些傳統(tǒng)的數(shù)據(jù)加密算法在實(shí)際應(yīng)用過(guò)程中已被證實(shí)(如DES、RSA和MD5等)容易被破解[6-7],并且由于采用傳統(tǒng)的基于數(shù)論的加密算法對(duì)數(shù)據(jù)完全加密不能滿足大數(shù)據(jù)量和實(shí)時(shí)性(如醫(yī)療數(shù)據(jù)存儲(chǔ))等要求. 因此本文為了更好地解決醫(yī)療信息系統(tǒng)中數(shù)據(jù)安全存儲(chǔ)的問(wèn)題,首先針對(duì)DES存在的優(yōu)點(diǎn)和不足進(jìn)行分析,并結(jié)合三重DES加密算法(triple data encryption algorithm, Tri-TDEA)以及獨(dú)立子密鑰DES加密算法(independent sub key DES algorithm, ISK-DES)的優(yōu)點(diǎn),提出改進(jìn)的雙重DES加密算法(improved Bi-DES encryption algorithm based on Tri-DES and ISK-DES,IBDES);然后對(duì)影響RSA算法模冪運(yùn)算速度的判斷質(zhì)數(shù)方法進(jìn)行詳細(xì)研究,在不影響RSA安全性的基礎(chǔ)上,對(duì)原有的質(zhì)數(shù)判斷方法進(jìn)行了改進(jìn),提出增強(qiáng)質(zhì)數(shù)判斷的RSA算法(RSA algorithm based on enhanced prime number decision,EPNRSA),最后形成基于IBDES和EPNRSA的醫(yī)療數(shù)據(jù)混合加密方法,使其能有效地對(duì)醫(yī)療數(shù)據(jù)進(jìn)行安全的存儲(chǔ).
1.1.1DES算法的概述
DES是由IBM在1972年開(kāi)發(fā)的對(duì)稱加密算法,也稱為數(shù)據(jù)加密標(biāo)準(zhǔn),它在國(guó)際上廣泛使用. DES是一種塊加密算法,它使用64位數(shù)據(jù)塊塊加密機(jī)制處理二進(jìn)制數(shù)據(jù). 數(shù)據(jù)包長(zhǎng)度和密文包長(zhǎng)度均為64位(8字節(jié)),并且沒(méi)有數(shù)據(jù)擴(kuò)展名. 密鑰長(zhǎng)度也是64位,其中56位是有效密鑰長(zhǎng)度. 其余的8位是奇偶校驗(yàn)位. DES的體系都是公開(kāi)的,系統(tǒng)的安全性取決于密鑰的機(jī)密性.
DES的不足之處:(1)存在弱密鑰. DES中有12個(gè)半弱密鑰和4個(gè)弱密鑰. 因?yàn)樵谏勺用荑€的過(guò)程中將密鑰分為兩部分,所以若將這兩部分分為全0或全1,則在每一輪中生成的子密鑰都是一樣的. 當(dāng)密鑰全部為0或全部為1時(shí),或者為1或0各半時(shí),將生成弱密鑰或半弱密鑰,這將降低DES的安全性. (2)密鑰長(zhǎng)度過(guò)短. DES的加密單元僅為64位二進(jìn)制,并且有8位是應(yīng)用于奇偶校驗(yàn)或其他通信開(kāi)銷,所以有效密鑰只有56位. 因此這將不可避免地降低DES的安全性. (3)數(shù)據(jù)傳輸速率小,不適合做長(zhǎng)久數(shù)據(jù)保護(hù),并且容易受到差分密鑰的破解. 由于DES這些明顯的不足,美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院在1997年不再對(duì)DES進(jìn)行研究,而是研究其替代方法,即高級(jí)加密標(biāo)準(zhǔn)[8](advancde encryption standard,AES).
1.1.2DES的最新研究分析
國(guó)內(nèi)外學(xué)者進(jìn)行了許多嘗試來(lái)改善DES算法,相繼提出了更具影響力的三重DES算法[9](Tri-DES)和獨(dú)立子密鑰DES算法[10](ISK-DES).
1) 三重DES算法.由于傳統(tǒng)的DES算法密鑰長(zhǎng)度短且容易被破解,因此,研究人員提出了一種三重DES加密算法(Tri-DES),即讓DES的密鑰長(zhǎng)度增加了3倍,并且3個(gè)不同的密鑰用于三重加密和解密. 加密過(guò)程是:首先用第一重密鑰k1加密,然后用第二重密鑰k2解密,最后用第三重密鑰k3再次加密,即C=Ek3(DK2(Ek1M)). 而解密則是逆序,即M=Dk1(EK2(Dk3C)). Tri-DES的核心就是利用k1、k2、k3對(duì)明文執(zhí)行多次加密,密鑰長(zhǎng)度為DES的3倍. Tri-DES算法具體實(shí)現(xiàn)過(guò)程如圖2所示.
圖2 Tri-DES加解密過(guò)程Fig.2 Tri-DES encryption and decryption process
此方法雖然增加了密鑰的長(zhǎng)度,提高了算法的安全強(qiáng)度,有效避免了暴力破解,但是其計(jì)算時(shí)間卻增加了n-1倍,因此運(yùn)行效率很低. 此外,盡管Tri-DES中的關(guān)鍵位數(shù)為168位,但對(duì)于當(dāng)前的計(jì)算機(jī)算力而言,還是無(wú)法避免暴力破解的威脅.
2) 獨(dú)立子密鑰的DES算法. ISK-DES算法的關(guān)鍵取決于采用不同的隨機(jī)生成的子密鑰進(jìn)行加密,也就是說(shuō),每次迭代中的子密鑰不用相同的56位二進(jìn)制密鑰生成. 由于16個(gè)迭代中的每輪都用48位密鑰,所以ISK-DES修改后的DES密鑰長(zhǎng)度變成了768位. 這種方法可以大大增加窮舉解密的難度,從而提高了DES的加密強(qiáng)度,但是密鑰長(zhǎng)度過(guò)長(zhǎng),開(kāi)銷也變大.
1.1.3改進(jìn)的雙重DES加密算法(IBDES)設(shè)計(jì)與分析
本文在Tri-DES算法和ISK-DES算法的基礎(chǔ)上,提出改進(jìn)的雙重DES加密算法(improved Bi-DES encryption algorithm based on Tri-DES and ISK-DES ,IBDES), 該算法的核心思想為增加密鑰長(zhǎng)度,并根據(jù)隨機(jī)生成的映射隨機(jī)數(shù)(1~128),隨機(jī)生成兩個(gè)子密鑰(雙隨機(jī)性),然后進(jìn)行加密,具體過(guò)程詳見(jiàn):改進(jìn)算法A. 解密過(guò)程:輸入密文,先用key2解密一次后再用key1進(jìn)行第二次解密還原成明文M.
改進(jìn)算法A:
輸入:明文M,隨機(jī)生成的128位key映射表
輸出:密文C
① 密鑰長(zhǎng)度處理:將原DES的64位密鑰進(jìn)行擴(kuò)充,變?yōu)?28位長(zhǎng)度.
② 雙隨機(jī)的子密鑰處理:根據(jù)隨機(jī)生成的映射表(表1)隨機(jī)得到兩個(gè)子密鑰key1和key2,兩個(gè)子密鑰均為64位;進(jìn)一步處理分別得到16個(gè)子密鑰.
③ 加密:輸入明文,進(jìn)行雙重加密. 先用key1加密一次,再用key2進(jìn)行二次加密生成密文C.
④ 輸出:密文C.
IBDES算法分析:該算法的映射表和子密鑰都是隨機(jī)生成的,體現(xiàn)了一種雙隨機(jī)性,在時(shí)間復(fù)雜度不變的情況下增加了破解難度.
1.1.4IBDES算法的實(shí)驗(yàn)與分析
為了證明本文提出的IBDES算法加密效果的有效性,將IBDES算法與三重DES算法(Tri-DES)和獨(dú)立子密鑰DES算法(ISK-DES)進(jìn)行實(shí)驗(yàn)比較.
(1)測(cè)試環(huán)境. 硬件:8G內(nèi)存、Intel i5處理器. 軟件:32位Windows 10操作系統(tǒng)、Microsoft Visual Studio 2010、MySQL5.0,eclipse2018,Tomcat8.0. 測(cè)試時(shí)間工具:eclipse自帶System.currentTimeMillis();//獲取系統(tǒng)時(shí)間函數(shù).
(2)測(cè)試用例. 測(cè)試用例為純文本,單位為kB,具體如圖3所示.
圖3 加密測(cè)試文本Fig.3 Encrypted test text
(3) 測(cè)試方法. 用Tri-DES、ISK-DES和IBDES算法,加密同樣的文本的加密效果和執(zhí)行加密時(shí)CPU消耗時(shí)間來(lái)進(jìn)行比較. 表1給出了3種算法的加密文本的執(zhí)行CPU時(shí)間對(duì)比,實(shí)驗(yàn)共3組,每組運(yùn)行30次,加密時(shí)間取平均值.
表1 3種改進(jìn)的DES算法的加密文本的執(zhí)行時(shí)間對(duì)比
實(shí)驗(yàn)分析:從表1可以看出IBDES相比于Tri-DES在加密效率上有明顯的優(yōu)勢(shì),并且和ISK-DES算法加密效率幾乎持平. 這是因?yàn)镮BDES算法集結(jié)了Tri-DES和ISK-DES兩者的優(yōu)點(diǎn),IBDES首先將原64位密鑰擴(kuò)展至128位,減少了密鑰過(guò)短被窮舉攻擊的風(fēng)險(xiǎn),然后借鑒Tri-DES算法多重加密的優(yōu)點(diǎn),對(duì)加密信息進(jìn)行雙重加密,加強(qiáng)了算法的安全強(qiáng)度,最后參考ISK-DES算法的特點(diǎn)將16位密鑰進(jìn)行映射,實(shí)現(xiàn)了局部獨(dú)立性,避免密鑰被暴力破解的威脅,兩者相輔相成,并且由于只有雙重加密,運(yùn)行效率方面要比Tri-DES算法要高.
以“IBDES算法原理及改進(jìn).txt”文本為例,執(zhí)行DES和IBDES加密后的內(nèi)容如圖4所示.
圖4 DES和IBDES加密文本內(nèi)容的效果對(duì)比Fig.4 Effect comparison of DES and IBDES encrypted text content
續(xù)圖4 DES和IBDES加密文本內(nèi)容的效果對(duì)比Fig.4 Effect comparison of DES and IBDES encrypted text content
從圖4可以看出DES加密本文后內(nèi)容只有數(shù)字
1.2.1RSA的概述
RSA算法由RonRivest、AdiShamir和LeonardAdleman[5]三人在1977年合作提出并于1987年首次公開(kāi),是非對(duì)稱的加密算法. 其中很重要的一點(diǎn)是用來(lái)加密數(shù)據(jù)的密鑰并不需要和數(shù)據(jù)一起傳送,因此這就減少了密鑰泄露的可能性. RSA被認(rèn)為是非常安全的,但它的計(jì)算速度比DES要慢很多. 同DES一樣,PSA算法的安全性從沒(méi)被證明過(guò),但想攻破RSA算法涉及大數(shù)的因式分解(包含至少200位的大數(shù)),而這是一個(gè)極其困難的問(wèn)題(就算有計(jì)算機(jī)幫助也幾乎不可能)[11-13]. 由于缺乏解決大數(shù)的因式分解問(wèn)題的有效方法,因此可以推測(cè)出目前沒(méi)有有效的方法可以破解RSA. 因此,RSA是目前最重要的加密算法之一,它可以抵抗迄今為止已知的大多數(shù)密鑰攻擊,而且ISO將其作為公鑰數(shù)據(jù)加密標(biāo)準(zhǔn).
RSA的不足之處:(1)難實(shí)現(xiàn)一次一密. 由于密鑰產(chǎn)生繁瑣,必須采用兩個(gè)大質(zhì)數(shù)p、q來(lái)產(chǎn)生RSA的密鑰,所以局限于質(zhì)數(shù)生成技術(shù),幾乎很難一次一密. (2)加密速度慢. RSA算法不僅具有DES沒(méi)有的高安全性,而且加密速度慢. 此外,RSA的p、q等大質(zhì)數(shù)都是使用確定性質(zhì)數(shù)判斷算法隨機(jī)產(chǎn)生的,所以RSA與DES的加密時(shí)間幾乎相差百倍.
1.2.2RSA的最新研究分析
RSA算法的安全性是基于大數(shù)分解的算法,由于大數(shù)分解是公認(rèn)的數(shù)學(xué)難題,所以RSA的安全性很高. 盡管現(xiàn)在計(jì)算機(jī)硬件的更新迅速,讓計(jì)算機(jī)的性能不斷突破極限,但是對(duì)大數(shù)分解仍需要大量時(shí)間才能破解. 此外,RSA算法為了應(yīng)付計(jì)算機(jī)算力的高速發(fā)展,逐漸增加密鑰的長(zhǎng)度,但是RSA算法加密速度恰恰是被 密鑰的生成速度所限制. 為了解決RSA算法加密速度問(wèn)題,國(guó)內(nèi)外研究人員普遍采用兩種方法.
第一種方法是尋找替代RSA的新的公鑰加密算法,例如基于橢圓曲線[14](ECC)的公鑰加密算法,ECC的問(wèn)世實(shí)現(xiàn)了效率上的重大突破,不過(guò)因尚未得到廣泛使用,所以目前大量研究仍是基于理論上的. 第二種方法是改進(jìn)密鑰算法的實(shí)現(xiàn)[15-18],并采取某些措施來(lái)加快其運(yùn)算速度,本文也是從這一方面著手,研究如何改進(jìn)RSA密鑰的生成,改善其運(yùn)算速度. 由于RSA的核心算法是運(yùn)算大質(zhì)數(shù)的模冪運(yùn)算,即大數(shù)自乘取模,所以要提高RSA算法的效率,就必須要解決RSA中模冪運(yùn)算的速度問(wèn)題,而模冪運(yùn)算中核心復(fù)雜度取決于取模操作,取模操作又包含除法運(yùn)算,對(duì)于計(jì)算機(jī)而言,進(jìn)行一次除法運(yùn)算需要進(jìn)行數(shù)次加減移位運(yùn)算,這是相當(dāng)耗時(shí)的,所以假設(shè)能讓RSA算法極力降低取模操作甚至避免取模操作,則RSA算法的性能會(huì)得到顯著的提升.
1.2.3增強(qiáng)質(zhì)數(shù)判斷的RS算法(EPNRSA)的設(shè)計(jì)與分析
在以上分析基礎(chǔ)上,提出了增強(qiáng)質(zhì)數(shù)判斷的RSA算法(RSA algorithm based on enhanced prime number decision,EPNRSA). 其核心思想:采用Montgomery快速冪算法[19]對(duì)經(jīng)典的概率性質(zhì)數(shù)判斷算法—Solovay-Strassen算法進(jìn)行優(yōu)化,設(shè)計(jì)了增強(qiáng)質(zhì)數(shù)判斷算法(enhanced prime number judgment algorithm,EPNJA),再將EPNJA應(yīng)用于RSA算法,形成增強(qiáng)質(zhì)數(shù)判斷的RSA算法(EPNRSA). 其核心技術(shù)如下.
(1) 質(zhì)數(shù)的判斷方法. 質(zhì)數(shù)的判斷方法整體上分為兩類:一是確定性質(zhì)數(shù)判斷算法,二是概率性質(zhì)數(shù)判斷算法. 確定性數(shù)判斷算法意如其名,就是通過(guò)它生成的數(shù)就百分百是質(zhì)數(shù),不過(guò)卻帶有一定的限制. 而概率性判斷算法雖然無(wú)法保證百分百生成質(zhì)數(shù),卻沒(méi)有什么大的限制且生成質(zhì)數(shù)的速度也比確定性判斷算法快. 總的來(lái)說(shuō),實(shí)際生活中大多是采用概率性質(zhì)數(shù)判斷算法,雖不能保證百分百生成質(zhì)數(shù),但是生成非質(zhì)數(shù)畢竟是小概率事件,而且概率性質(zhì)數(shù)判斷算法可以快速且不規(guī)則地生成偽素?cái)?shù),滿足大多數(shù)需求.
② 概率性質(zhì)數(shù)判斷算法. 其中較著名的算法有:Miller-Rabin算法[20]、Solovay-Strassen算法[21]、Lehman算法[22]等,由于本文針對(duì)Solovay-Strassen概率性質(zhì)數(shù)判斷算法進(jìn)行改進(jìn)且限于篇幅,所以僅對(duì)Solovay-Strassen算法進(jìn)行詳細(xì)介紹. 令0≤a≤n,隨機(jī)選取a,計(jì)算雅可比函數(shù)J(a,n). 若n為素?cái)?shù),則GCD(n,a)=1,且J(a,n)=2(n-1)/2modx. 若n不為素?cái)?shù),則至多有1/2的概率使上式成立. 若n通過(guò)了t次檢驗(yàn),則n不是素?cái)?shù)的概率將為2-t.
(2) 增強(qiáng)質(zhì)數(shù)判斷算法. 引入可以極大減少模冪運(yùn)算的Montgomery快速冪算法對(duì)Solovay-Srtassen算法進(jìn)行優(yōu)化,提出一種增強(qiáng)質(zhì)數(shù)判斷算法(EPNJA). 該算法的核心步驟為選擇一個(gè)與模數(shù)N互質(zhì)的正整數(shù)R作為基數(shù),同時(shí)要求當(dāng)R為2k時(shí)N需滿足2k-1≤N≤2k并且要求GCD(R,N)=1,然后利用Montgomery冪算法大數(shù)A、B進(jìn)行模乘運(yùn)算,即Montgomery(A,B,N)=ABR-1(modN),最后輸出大數(shù)A、B的模乘結(jié)果.
(3) 增強(qiáng)質(zhì)數(shù)判斷的RSA算法(EPNRSA).
為了提高EPNJA應(yīng)用于RSA算法的判斷效率,本文在質(zhì)數(shù)生成初始階段直接剔除所有偶數(shù)以及被5整除的數(shù),并通過(guò)預(yù)處理算法程序?qū)ふ?億(這里可以根據(jù)需求來(lái)尋找更大范圍內(nèi)的卡邁克爾數(shù)[23])以內(nèi)的255個(gè)卡邁克爾數(shù)形成卡邁克爾特殊合數(shù)表對(duì)特殊的合數(shù)進(jìn)行質(zhì)數(shù)判斷的RSA算法(EPNRSA),具體過(guò)程詳見(jiàn):改進(jìn)算法B. 解密過(guò)程:輸入密文C,用兩個(gè)大質(zhì)數(shù)生成RSA密鑰對(duì)密文進(jìn)行解密生成明文M.
EPNRS算法分析:增強(qiáng)質(zhì)數(shù)判斷算法EPNJA采用Montgomery快速冪算法對(duì)Solovay-Strassen算法進(jìn)行優(yōu)化的主要優(yōu)勢(shì)是將除法化為移位運(yùn)算,提高了大數(shù)冪乘運(yùn)算的效率,應(yīng)用于RSA后可以進(jìn)行質(zhì)數(shù)的快速篩選,簡(jiǎn)化了計(jì)算過(guò)程,可以有效抵抗對(duì)RSA算法的強(qiáng)制破解.
改進(jìn)算法B:
輸入:明文M,卡邁克爾特殊合數(shù)表CN,隨機(jī)大數(shù)組N,Solovay-Strassen算法;
輸出:密文C.
① 隨機(jī)大數(shù)生成:隨機(jī)生成一組除了偶數(shù)以及能被5整除的數(shù)之外的大數(shù)組N.
② 大數(shù)組篩選:通過(guò)卡邁克爾特殊合數(shù)表CN對(duì)大數(shù)組N進(jìn)行篩選.
③ 優(yōu)化Solovay-Strassen算法:利用Montgomery快速冪算法優(yōu)化Solovay-Strassen算法.
④ 大質(zhì)數(shù)p、q生成:結(jié)合步驟1、2、3以及EPNJA來(lái)生成兩個(gè)大質(zhì)數(shù)p、q.
⑤ RSA加密明文:輸入明文M,用兩個(gè)大質(zhì)數(shù)p、q生成RSA密鑰對(duì)明文進(jìn)行加密生成密文C.
⑥ 輸入密文C.
1.2.4EPNRSA算法的實(shí)驗(yàn)與分析
本文將提出的EPNJA判斷算法與Miller-Rabin、Solovay-Strassen和Lehman三種著名的判斷算法進(jìn)行判斷質(zhì)數(shù)比較,實(shí)驗(yàn)數(shù)據(jù)范圍選取[0,1 000],它們判斷的次數(shù)和所用時(shí)間的關(guān)系如表2所示.
表2 各概率性質(zhì)數(shù)判斷算法在不同判斷次數(shù)上所消耗的時(shí)間對(duì)比Tab.2 Comparison of time consumed by esch probabilistic prime number judgment algorithm in different judgment times
從表2可以看出,EPNJA判斷質(zhì)數(shù)的概率不僅比其他3種算法要高,而且生成質(zhì)數(shù)的時(shí)間也大大縮短了. 將改進(jìn)的質(zhì)數(shù)判斷算法應(yīng)用到RSA加密算法中形成增強(qiáng)質(zhì)數(shù)判斷的RSA算法(EPNRSA),并與RSA算法進(jìn)行加密耗時(shí)對(duì)比,運(yùn)行結(jié)果如圖5所示.
圖5 RSA算法和EPNRSA算法的加密時(shí)間對(duì)比Fig.5 Consuming time of encryption between RSA algorithm and EPNRSA algorithm
從圖5中加密消耗時(shí)間可以明顯看出,生產(chǎn)相同位數(shù)的p、q時(shí),EPNRSA花費(fèi)的時(shí)間要比RSA少.
為解決醫(yī)療電子病歷數(shù)據(jù)加密效率低和加密安全性不高問(wèn)題,融合對(duì)稱加密算法(DES→IBDES)和非對(duì)稱加密算法(RSA→EPNRSA)二者的優(yōu)點(diǎn),提出基于IBDES和EPNRSA的醫(yī)療數(shù)據(jù)增強(qiáng)混合加密方法,如圖6所示. 具體流程如下.
圖6 基于IBDES和EPNRSA的醫(yī)療數(shù)據(jù)增強(qiáng)混合加密方法Fig.6 Enhanced hybrid encryption method for medical data based on IBDES and EPNRSA
① 發(fā)送方申請(qǐng)獲取醫(yī)療數(shù)據(jù),授權(quán)通過(guò)后,用IBDES密鑰對(duì)醫(yī)療數(shù)據(jù)明文加密,得到密文.
② 發(fā)送方用EPNRSA的公鑰去加密IBDES密鑰信息,得到加密后的公鑰,并將加密的密文和加密后的公鑰混合信息同步發(fā)送出去.
③ 接收方收到混合信息后,使用EPNRSA的私鑰解密加密后的公鑰,得到IBDES密鑰,再用IBDES密鑰對(duì)加密的密文進(jìn)行解密得到醫(yī)療數(shù)據(jù)明文.
1) 安全性分析.
IBDES算法的映射表和子密鑰都是隨機(jī)生成的,體現(xiàn)了一種雙隨機(jī)性,在時(shí)間復(fù)雜不變的情況下增加了破解難度. EPNJA算法采用Montgomery快速冪算法,將除法化為移位運(yùn)算,提高了大數(shù)冪乘運(yùn)算的效率,應(yīng)用于RSA算法后形成EPNRSA算法可以進(jìn)行質(zhì)數(shù)的快速篩選,簡(jiǎn)化了計(jì)算過(guò)程. 故基于IBDES和EPNRSA的增強(qiáng)混合加密方法不僅提升了加密醫(yī)療數(shù)據(jù)EMR的效率,更是保證了傳輸醫(yī)療數(shù)據(jù)EMR的安全性.
2) 時(shí)間復(fù)雜度分析.
基于IBDES和EPNRSA的醫(yī)療數(shù)據(jù)增強(qiáng)混合加密方法是分步的,其中第①步用IBDES密鑰進(jìn)行數(shù)據(jù)加密,假設(shè)數(shù)據(jù)字符個(gè)數(shù)為n,那么一次DES加密的時(shí)間復(fù)雜度為O(n),IBDES是兩次獨(dú)立加密所以時(shí)間復(fù)雜度為2O(n),第②步中再用EPNRSA的公鑰加密IBDES密鑰信息得到加密密鑰,因?yàn)镋PNRSA是基于RSA算法的,RSA算法時(shí)間復(fù)雜度都基本耗費(fèi)在尋找大素?cái)?shù)生產(chǎn)密鑰過(guò)程,即RSA的生成密鑰時(shí)間復(fù)雜度為O(log(pq))O((log2p+log2q),但是本文的EPNRSA改良了RSA的素?cái)?shù)生成速度,即預(yù)處理和利用Montgomery快速冪算法優(yōu)化Solovay-Strassen算法,省去了大數(shù)乘法O(logp+logq)=O(logpq),所以時(shí)間復(fù)雜度為O(log2p+log2q),第③步中發(fā)送方將加密密文和加密密鑰混合信息發(fā)送出去的時(shí)間是傳輸時(shí)間,不計(jì)入方案的加解密時(shí)間,并且解密是第①步和第②步相反的步驟,因此時(shí)間復(fù)雜度一樣為2O(n)和O((log2p+log2q),最后得出基于IBDES和EPNRSA的醫(yī)療數(shù)據(jù)增強(qiáng)混合加密方法的時(shí)間復(fù)雜度為4O(n)+2O(log2p+log2q).
為了驗(yàn)證本文提出的基于HBDES和IPNRSA的醫(yī)療數(shù)據(jù)增強(qiáng)混合加密方案的有效性,將其與傳統(tǒng)的基于DES和RSA的混合加密方案分別從算法加密時(shí)間效率和算法加解密性能效率兩方面進(jìn)行詳細(xì)的實(shí)驗(yàn)對(duì)比和結(jié)果分析.
1.4.1時(shí)間效率分析
對(duì)基于DES和RSA的混合加密方法和基于IBDES和EPNRSA的醫(yī)療數(shù)據(jù)增強(qiáng)混合加密方法進(jìn)行密鑰長(zhǎng)度和生成速度的比較分析如下:IBDES算法是把DES的56位密鑰進(jìn)行了擴(kuò)展,即從56位變?yōu)?28位,不過(guò)只擴(kuò)展了1倍長(zhǎng)度密鑰,所以對(duì)于擴(kuò)展后密鑰的產(chǎn)生速度幾乎沒(méi)有影響. 此外,這里RSA加密算法選用了1 024 bit的密鑰,而EPNRSA加密算法,因?yàn)椴捎昧嗽鰪?qiáng)質(zhì)數(shù)判斷算法(EPNJA)來(lái)產(chǎn)生密鑰,所以密鑰生成速度明顯快于RSA。表3給出了兩種加密算法在單獨(dú)運(yùn)行時(shí),對(duì)少量醫(yī)療數(shù)據(jù)量信息(200 bit)加密所花費(fèi)時(shí)間對(duì)比,共8組實(shí)驗(yàn),每組運(yùn)行30次,加密時(shí)間取平均值.
表3 兩種加密方法的加密少量數(shù)據(jù)的時(shí)間比較Tab.3 Time comparison of two encryption schemes for encrypting a small amount of data
實(shí)驗(yàn)分析:從表3中可知,在加密一次短消息時(shí),這兩種加密方案之間的時(shí)間差保持在150 ms左右的水平. 人類幾乎無(wú)法感知這種細(xì)微的時(shí)間差距,但是隨著密次數(shù)增大時(shí),則耗時(shí)的差距會(huì)變得相當(dāng)可觀。舉個(gè)例子,某網(wǎng)頁(yè)用戶采用靜態(tài)數(shù)據(jù)加密方式,每次加密后的結(jié)果都是一樣的,即不采用一次一密的方式,即使采用公鑰加密體制的RSA算法其結(jié)果也一樣,所以只要有惡意用戶攔截加密的消息,并以此模擬表單提交信息,就可以騙過(guò)加密系統(tǒng)直接入侵,顯然這樣靜態(tài)加密方式是不可取. 因此,采用一次一密的方式,才能避免這種風(fēng)險(xiǎn). 此外,如果是對(duì)較大數(shù)據(jù)量醫(yī)療信息(超過(guò)2 M)加密時(shí),這兩種加密方法的加密時(shí)間會(huì)將是百倍以上的差距. 所以基于IBDES和EPNRSA的醫(yī)療數(shù)據(jù)增強(qiáng)混合加密方案的加密效率要比傳統(tǒng)的基于DES和RSA的混合加密方案有明顯的優(yōu)勢(shì).
1.4.2性能效率分析
本文采用真實(shí)的醫(yī)療電子病歷數(shù)據(jù)圖片進(jìn)行加解密,實(shí)驗(yàn)結(jié)果如圖7和圖8所示,實(shí)驗(yàn)分析如下.
1)醫(yī)療數(shù)據(jù)圖片明文加密效果明顯. 從圖7(a)可以看出加密前的醫(yī)療數(shù)據(jù)圖片文字部分清晰可見(jiàn),然后執(zhí)行加密操作后得出醫(yī)療數(shù)據(jù)圖片密文(見(jiàn)圖7(b)),從圖7(b)中可以看出,幾乎所有文字部分都無(wú)法識(shí)別,后臺(tái)再執(zhí)行查看源文件操作時(shí)都以亂碼的形式表現(xiàn)出來(lái),這充分表明本文提出的醫(yī)療數(shù)據(jù)增強(qiáng)混合加密方法的加密有效性.
圖7 醫(yī)療電子病歷數(shù)據(jù)的加密前后對(duì)比Fig.7 Comparison of medical electronic medical record data before and after encryption
2)醫(yī)療數(shù)據(jù)圖片密文解密效果明顯. 從圖8(a)可以看出解密前的醫(yī)療數(shù)據(jù)圖片整張模糊不清幾乎不可識(shí)別,然后執(zhí)行解密操作后得出醫(yī)療數(shù)據(jù)圖片密文(見(jiàn)圖8(b)),與圖7(a)原圖進(jìn)行對(duì)比,明顯看出加解密前后圖片幾乎無(wú)損,這充分表明本文提出的混合加密方法的解密有效性.
圖8 醫(yī)療電子病歷數(shù)據(jù)的加密前后對(duì)比Fig.8 Comparison of medical electronic medical record data before and after encryption
目前,醫(yī)療信息、電子病歷和其他醫(yī)療系統(tǒng)已成為現(xiàn)實(shí)生活中必不可少的部分,并且它們的安全性也引起了越來(lái)越多的重視. 特別是在新冠疫情期間,人們無(wú)時(shí)不刻不在關(guān)注自身的健康信息和醫(yī)療數(shù)據(jù)的安全. 為了更好地解決醫(yī)療信息系統(tǒng)中數(shù)據(jù)安全存儲(chǔ)的問(wèn)題,在傳統(tǒng)的DES和RSA算法的基礎(chǔ)上提出了基于IBDES和EPNRSA的醫(yī)療數(shù)據(jù)增強(qiáng)混合加密方法. 通過(guò)對(duì)傳統(tǒng)的基于DES和RSA的混合加密方案在加密時(shí)間效率和算法加解密性能效率兩方面進(jìn)行詳細(xì)的實(shí)驗(yàn)對(duì)比,可以發(fā)現(xiàn)該方案在各個(gè)方面都能很好地保障醫(yī)療數(shù)據(jù)的隱私安全. 本文的主要?jiǎng)?chuàng)新之處包括以下幾個(gè)方面.
① 設(shè)計(jì)了改進(jìn)的雙重DES加密算法(IBDES):該算法借鑒三重DES加密算法(Tri-DES)和獨(dú)立子密鑰DES算法(ISK-DES)的優(yōu)點(diǎn),把DES的密鑰從64位擴(kuò)展為128位,并通過(guò)(雙隨機(jī)性)隨機(jī)生成128位的映射表進(jìn)行映射后將其隨機(jī)分為兩個(gè)子密鑰key1和key2(每個(gè)子密鑰64位),然后利用key1生成的16個(gè)子密鑰對(duì)明文進(jìn)行加密操作生成密文1,緊接著利用key2生成的16個(gè)子密鑰對(duì)密文1進(jìn)行加密操作生成密文2,這樣通過(guò)雙隨機(jī)性雙重加密來(lái)增強(qiáng)安全強(qiáng)度,相比傳統(tǒng)的DES算法的加密安全性有了大大提升且加密效率并沒(méi)有降低.
② 構(gòu)建了增強(qiáng)質(zhì)數(shù)判斷的RSA算法(EPNRSA):該算法針對(duì)影響傳統(tǒng)RSA算法的加解密效率的核心步驟——大質(zhì)數(shù)的模冪運(yùn)算進(jìn)行改進(jìn),摒棄傳統(tǒng)的模冪運(yùn)算,采用Montgomery快速冪算法對(duì)Solovay-Strassen算法進(jìn)行優(yōu)化,取消了RSA計(jì)算過(guò)程中取模操作和降低了RSA的計(jì)算量,不僅大大降低RSA的加密時(shí)間復(fù)雜度,同時(shí)加密安全質(zhì)量并沒(méi)有受到影響.
③ 提出基于IBDES和EPNRSA的醫(yī)療數(shù)據(jù)增強(qiáng)混合加密方法:該方案結(jié)合了DES、RSA以及它們改進(jìn)算法的特點(diǎn),具有加解密效果好、執(zhí)行速度快以及安全性高等優(yōu)點(diǎn). 此外,該方案繼承了公鑰加密體制的特性,所以不需要擔(dān)心密鑰管理相關(guān)問(wèn)題,是面向醫(yī)療數(shù)據(jù)安全存儲(chǔ)的一種理想方案.
未來(lái)將會(huì)從以下幾個(gè)方面入手繼續(xù)研究和完善:①在大量醫(yī)療圖像信息環(huán)境下繼續(xù)改進(jìn)文章的數(shù)據(jù)加密方法使其適用安全、快速壓縮加密;②研究不同醫(yī)療數(shù)據(jù)信息下的新數(shù)據(jù)加密方法;③應(yīng)用基于IBDES和EPNRSA的醫(yī)療數(shù)據(jù)增強(qiáng)混合加密方法解決醫(yī)療數(shù)據(jù)安全領(lǐng)域的實(shí)際問(wèn)題.
北京理工大學(xué)學(xué)報(bào)2021年10期