儲(chǔ)存裝置數(shù)據(jù)加解密方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種儲(chǔ)存裝置數(shù)據(jù)加解密方法。
【背景技術(shù)】
[0002]關(guān)于可卸式儲(chǔ)存裝置(以下稱(chēng)之為硬盤(pán)),數(shù)據(jù)加解密為保護(hù)用戶數(shù)據(jù)安全性的常見(jiàn)方法?,F(xiàn)有的硬盤(pán)加密技術(shù)通常是由軟件(例如微軟公司的Bitlock程序或者開(kāi)源的Truecrypt程序等)在系統(tǒng)存儲(chǔ)器中進(jìn)行,或者是由儲(chǔ)存裝置的控制器在儲(chǔ)存裝置內(nèi)部進(jìn)行。上述硬盤(pán)加密技術(shù)的密鑰會(huì)暴露在系統(tǒng)存儲(chǔ)器中或連接儲(chǔ)存裝置的總線上,造成安全性下降。因此如何避免硬盤(pán)密鑰暴露以及提升加密規(guī)則破解難度等,是本技術(shù)領(lǐng)域亟待解決的重要課題。
【發(fā)明內(nèi)容】
[0003]根據(jù)本發(fā)明一種實(shí)施方式所實(shí)現(xiàn)的一儲(chǔ)存裝置數(shù)據(jù)加解密方法,包括:提供一加解密引擎,所述加解密引擎為硬件;自寫(xiě)入指令解析出寫(xiě)入指令信息,并將寫(xiě)入數(shù)據(jù)與所述寫(xiě)入指令信息傳遞至該加解密引擎;以及經(jīng)由該加解密引擎將一硬盤(pán)密鑰與所述寫(xiě)入指令信息組合,以便加密所述寫(xiě)入數(shù)據(jù),并將加密后的所述寫(xiě)入數(shù)據(jù)透過(guò)一通訊端口寫(xiě)入一儲(chǔ)存裝置。
[0004]在一種實(shí)施方式中,該儲(chǔ)存裝置數(shù)據(jù)加解密方法還包括:自讀取指令解析出讀取指令信息,并將取自該儲(chǔ)存裝置未解密的讀取數(shù)據(jù)與所述讀取指令信息傳遞至該加解密引擎;且經(jīng)由該加解密引擎將所述硬盤(pán)密鑰與所述讀取指令信息組合,以便將未解密的所述讀取數(shù)據(jù)解密,以響應(yīng)所述讀取指令。
[0005]一種實(shí)施方式中,所述寫(xiě)入指令信息包括所述寫(xiě)入指令所指示的邏輯地址以及扇區(qū)的數(shù)量,且所述讀取指令信息包括所述讀取指令所指示的邏輯地址以及扇區(qū)的數(shù)量。該加解密引擎是根據(jù)所述邏輯地址以所述扇區(qū)為單位作數(shù)據(jù)加解密。
[0006]一種實(shí)施方式中,該儲(chǔ)存裝置數(shù)據(jù)加解密方法還包括:提供一可信賴平臺(tái)模塊,該可信賴平臺(tái)模塊包括一硬盤(pán)密鑰供應(yīng)硬件,且所述硬盤(pán)密鑰來(lái)自該硬盤(pán)密鑰供應(yīng)硬件。該加解密引擎可遵循一密鑰交換協(xié)議與該硬盤(pán)密鑰供應(yīng)硬件通訊以取得所述硬盤(pán)密鑰,以維護(hù)硬盤(pán)密鑰安全性。另一種實(shí)施方式中,該加解密引擎是與該硬盤(pán)密鑰供應(yīng)硬件封裝在一起,有效避免硬盤(pán)密鑰曝光于外部。另一種實(shí)施方式中,該加解密引擎是與該硬盤(pán)密鑰供應(yīng)硬件制作在同一芯片上,有效避免硬盤(pán)密鑰曝光于外部。
[0007]在本發(fā)明的上述儲(chǔ)存裝置數(shù)據(jù)加解密方法中的加解密引擎以硬件方式實(shí)現(xiàn),數(shù)據(jù)安全性大大提升。此外,在數(shù)據(jù)加解密時(shí)還考慮寫(xiě)入/讀取指令信息,大大提升被破解的難度。
[0008]下文特舉實(shí)施例,并配合所附圖示,詳細(xì)說(shuō)明本
【發(fā)明內(nèi)容】
。
【附圖說(shuō)明】
[0009]圖1圖解根據(jù)本發(fā)明一種實(shí)施方式所實(shí)現(xiàn)的一芯片組100 ;
[0010]圖2A圖解XTS-AES數(shù)據(jù)加密技術(shù);
[0011 ]圖2B圖解XTS-AES數(shù)據(jù)解密技術(shù);
[0012]圖3圖解一可信賴平臺(tái)模塊300 ;
[0013]圖4為硬盤(pán)密鑰交換協(xié)議的流程圖;
[0014]圖5A為SATA硬盤(pán)寫(xiě)入的流程圖;
[0015]圖5B為SATA硬盤(pán)讀取的流程圖;
[0016]圖6為采用NCQ DMA的SATA硬盤(pán)寫(xiě)入流程圖;
[0017]圖7為USB硬盤(pán)寫(xiě)入的流程圖。
[0018]附圖標(biāo)記:
[0019]100:芯片組;102:儲(chǔ)存裝置主控制器;
[0020]104:加解密引擎;106:通訊端口 ;
[0021]108:儲(chǔ)存裝置;
[0022]202、204:加密運(yùn)算硬件; 206:模乘組件;
[0023]208、210:模加組件;212:加密運(yùn)算硬件;
[0024]214:解密運(yùn)算硬件;216:模乘組件;
[0025]218、220:模加組件;
[0026]300:可信賴平臺(tái)模塊;302:可信賴平臺(tái)模塊軟件;
[0027]304:硬盤(pán)密鑰供應(yīng)硬件;
[0028]aj:常數(shù);
[0029]C:密文;cc:數(shù)據(jù);
[0030]Cmd_Info:寫(xiě)入/讀取指令信息;
[0031]Data:未加密的寫(xiě)入數(shù)據(jù)/解密的讀取數(shù)據(jù);
[0032]Data_Encrypted:加密的寫(xiě)入數(shù)據(jù)/未解密的讀取數(shù)據(jù);
[0033]DEK:硬盤(pán)密鑰;
[0034]DEK_keyUDEK_key2:組成硬盤(pán)密鑰DEK的兩部分密鑰;
[0035]p:明文;PP:數(shù)據(jù);
[0036]S402…S406、S502…S514、S522…S534、S602…S620、S702…S714:步驟;
[0037]T:模乘結(jié)果。
【具體實(shí)施方式】
[0038]以下敘述列舉本發(fā)明的多種實(shí)施例。以下敘述介紹本發(fā)明的基本概念,且并非意圖限制本
【發(fā)明內(nèi)容】
。實(shí)際發(fā)明范圍應(yīng)依照申請(qǐng)專(zhuān)利范圍來(lái)界定。
[0039]圖1圖解根據(jù)本發(fā)明一種實(shí)施方式所實(shí)現(xiàn)的一芯片組100。該芯片組100包括一儲(chǔ)存裝置主控制器102以及一加解密引擎104。該儲(chǔ)存裝置主控制器102控制一通訊端口(communicat1n port) 106與一儲(chǔ)存裝置108之間的通訊。通訊端口 106舉例而言可以是串行高級(jí)技術(shù)附件(SATA)接口,也可以是通用串行總線(USB)接口。該儲(chǔ)存裝置108又稱(chēng)硬盤(pán),可為機(jī)械硬盤(pán)或固態(tài)硬盤(pán)等。該加解密引擎104為硬件,耦接該儲(chǔ)存裝置主控制器102,以實(shí)現(xiàn)對(duì)寫(xiě)入或讀出該儲(chǔ)存裝置108的數(shù)據(jù)進(jìn)行加解密。由于該加解密引擎104以硬件方式封閉于芯片組100中,數(shù)據(jù)安全性大大提升。一種實(shí)施方式中,加解密引擎104所作的數(shù)據(jù)加解密完全不使用芯片組100外部空間作數(shù)據(jù)暫存。一種實(shí)施方式中,由北橋以及南橋組成的芯片組100是將該儲(chǔ)存裝置主控制器102以及該加解密引擎104制作在南橋內(nèi)。在另一種實(shí)施方式中,還可將該加解密引擎104集成在該儲(chǔ)存裝置主控制器102內(nèi)部,進(jìn)一步提升加解密的安全性。至于該儲(chǔ)存裝置主控制器102,其包括自所接收的寫(xiě)入/讀取指令解析出寫(xiě)入/讀取指令信息Cmd_Info。在一種實(shí)施方式中,這里的寫(xiě)入/讀取指令是由主機(jī)(圖中未示出)的直接內(nèi)存存取(DMA)控制器發(fā)送至該芯片組100的DMA請(qǐng)求。
[0040]該加解密引擎104是在數(shù)據(jù)加解密時(shí)還考慮寫(xiě)入/讀取指令信息Cmd_Info,大大提升被破解的難度。
[0041]此段落討論寫(xiě)入指令。該儲(chǔ)存裝置主控制器102會(huì)自所接收的寫(xiě)入指令解析出寫(xiě)入指令信息Cmd_Info,并將寫(xiě)入數(shù)據(jù)Data與所述寫(xiě)入指令信息Cmd_Info傳遞至該加解密引擎104。該加解密引擎104將硬盤(pán)密鑰DEK與所述寫(xiě)入指令信息Cmd_Info組合,以便加密所述寫(xiě)入數(shù)據(jù)Data,并將加密后的所述寫(xiě)入數(shù)據(jù)Data_Encrypted交由該儲(chǔ)存裝置主控制器102透過(guò)該通訊端口 106寫(xiě)入該儲(chǔ)存裝置108。
[0042]此段落討論讀取指令。該儲(chǔ)存裝置主控制器102自所接收的讀取指令解析出讀取指令信息Cmd_Info,并將取自該儲(chǔ)存裝置108的未解密的讀取數(shù)據(jù)Data_Encrypted與所述讀取指令信息Cmd_Info傳遞至該加解密引擎104。該加解密引擎104將所述硬盤(pán)密鑰DEK與所述讀取指令信息Cmd_Info組合,以便將未解密的所述讀取數(shù)據(jù)Data_Encrypted解密,解密后的讀取數(shù)據(jù)Data交由該儲(chǔ)存裝置主控制器102響應(yīng)所述讀取指令。
[0043]DMA請(qǐng)求所存取的數(shù)據(jù)是以格式相對(duì)固定的數(shù)據(jù)塊為單位進(jìn)行傳輸,方便本發(fā)明的加解密引擎104進(jìn)行自動(dòng)的加解密操作,無(wú)需軟件參與。DMA請(qǐng)求的寫(xiě)入/讀取指令中包括其要存取的邏輯地址(例如,LBA)及扇區(qū)(sector)數(shù)量。一種實(shí)施方式中,加解密引擎104是根據(jù)寫(xiě)入/讀取指令所指示的邏輯地址(例如,LBA)中的扇區(qū)號(hào)以扇區(qū)為單位作數(shù)據(jù)加解密;例如,XTS-AES/SM4數(shù)據(jù)加解密技術(shù)。寫(xiě)入/讀取指令信息Cmd_Info包括所述寫(xiě)入/讀取指令所指示的邏輯地址及扇區(qū)數(shù)量。
[0044]圖2A圖解XTS-AES數(shù)據(jù)加密技術(shù)。寫(xiě)入指令信息Cmd_Info包括寫(xiě)入指令所指示的硬盤(pán)扇區(qū)號(hào)i。硬盤(pán)密鑰DEK由密鑰DEK_keyl以及密鑰DEK_key2兩部分組成。硬盤(pán)扇區(qū)號(hào)i經(jīng)過(guò)加密運(yùn)算硬件202與密鑰DEK_key2結(jié)合后,是由模乘組件206與常數(shù)aj結(jié)合,模乘結(jié)果T是經(jīng)模加組件208與未加密的寫(xiě)入數(shù)據(jù)p (即「明文」,圖1以Data標(biāo)號(hào))結(jié)合,模加結(jié)果PP經(jīng)過(guò)加密運(yùn)算硬件204與密鑰DEK_keyl結(jié)合后,產(chǎn)生的數(shù)據(jù)cc將由模加組件210與模乘結(jié)果T結(jié)合,獲得加密的寫(xiě)入數(shù)據(jù)C(即「密文」,圖1以Data_Encrypted標(biāo)號(hào))。圖2A是以XTS-AES加密算法為例說(shuō)明,但本發(fā)明并不限于此,采取其他加密算法也落入本發(fā)明欲保護(hù)的范圍。
[0045]圖2B圖解XTS-AES數(shù)據(jù)解密技術(shù)。讀取指令信息Cmd_Info包括讀取指令所指示的硬盤(pán)扇區(qū)號(hào)i。硬盤(pán)密鑰DEK由密鑰DEK_keyl以及密鑰DEK_key2兩部分組成。硬盤(pán)扇區(qū)號(hào)i經(jīng)過(guò)加密運(yùn)算硬件212與密鑰D