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