专利摘要:
一種金鑰傳送方法,用於將金鑰從緩衝記憶體中傳送至加解密單元。本方法包括將金鑰的多個位元邏輯地分割成多個金鑰區段,其中各金鑰區段具有起始位置與區段長度。本方法亦包括根據各金鑰區段的起始位置與區段長度設定對應各金鑰區段的傳輸長度,並且根據各金鑰區段的起始位置與傳輸長度,從該金鑰的位元中指派屬於各金鑰區段的傳輸位元串。本方法更包括決定各金鑰區段的傳送順序,並且按照此傳送順序,將屬於各金鑰區段的起始位置、區段長度與傳輸位元串傳送至加解密單元。基此,本方法能夠安全地將金鑰從緩衝記憶體傳送至加解密單元。
公开号:TW201308966A
申请号:TW100129095
申请日:2011-08-15
公开日:2013-02-16
发明作者:Ching-Wen Chang
申请人:Phison Electronics Corp;
IPC主号:H04L9-00
专利说明:
金鑰傳送方法、記憶體控制器與記憶體儲存裝置
本發明是有關於一種金鑰傳送方法,且特別是有關於一種將金鑰從緩衝記憶體中經由匯流排傳送至加解密單元的方法,以及使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,促使消費者對儲存媒體的需求也急遽增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、低耗電、體積小、無機械結構且讀寫速度快等特性,最適合用在可攜式電子產品,例如手機、個人數位助理與筆記型電腦等。因此,近年來,快閃記憶體產業成為電子產業中相當熱門的一環。由於可複寫式非揮發性記憶體裝置體積小、容量大且攜帶方便,因而廣泛被運用在個人資料的儲存上。然而,當可複寫式非揮發性記憶體裝置不小心遺失時,其所儲存的大量資料也可能隨之被盜用。為解決此問題,通常會在可複寫式非揮發性記憶體裝置中設置一加解密單元,以防止資料被咨意地讀取或盜用。
一般而言,常用的加解密法則(如AES與DES等)在使用前都必須先輸入1至3把金鑰。傳統上,在實作硬體時,通常會一次將所有金鑰寫入加解密單元的暫存器(register)中。然而,從資料匯流排(data bus)或者副通道(side channel)的觀點來看,這種做法隱含著金鑰被側錄的風險。圖1是根據習知技術所繪示之傳送金鑰的示意圖。請參考圖1,在使用加解密單元1之前,必須先將金鑰252a從緩衝記憶體252中傳送至加解密單元1的金鑰暫存器1a中。通常,習知技術會一次將金鑰252a寫入加解密單元1的金鑰暫存器1a,如此,金鑰252a的內容將連續不間斷地出現在資料匯流排401上。因此,在金鑰252a的傳送期間,第三者便能夠在資料匯流排401上進行探測(probe),或者透過量測能量變異、功率損失等方式,而獲取金鑰的內容。基此,有需要發展一種更為安全可靠的金鑰傳送方法。
本發明提供一種金鑰傳送方法、記憶體控制器與記憶體儲存裝置,其能夠安全地將金鑰從緩衝記憶體傳送至加解密單元。
本發明範例實施例提出一種金鑰傳送方法,用於將金鑰從緩衝記憶體中經由資料匯流排傳送至加解密單元。此金鑰傳送方法包括將金鑰的多個位元邏輯地分割成多個金鑰區段,其中每一金鑰區段具有一起始位置與一區段長度。此金鑰傳送方法也包括根據此些金鑰區段的區段長度,設定對應每一金鑰區段的傳輸長度;並且根據屬於此些金鑰區段的始位置與傳輸長度,從金鑰的位元中指派屬於每一金鑰區段的傳輸位元串。此金鑰傳送方法更包括為此些金鑰區段決定一傳送順序;以及按照此傳送順序,將屬於每一金鑰區段的起始位置、區段長度與傳輸位元串從緩衝記憶體經由資料匯流排傳送至加解密單元。
在本發明之一實施例中,上述之將金鑰的位元邏輯地分割成金鑰區段的步驟包括:將金鑰的位元等分成多個金鑰區段,其中每一金鑰區段的區段長度為相同並且每一金鑰區段的傳輸長度相同於每一金鑰區段的區段長度。
在本發明之一實施例中,上述之將金鑰的位元邏輯地分割成金鑰區段的步驟包括:將金鑰的位元隨機地分割成多個金鑰區段,其中此些金鑰區段之中的至少兩個金鑰區段的區段長度為不同。
在本發明之一實施例中,上述之為這些金鑰區段決定傳送順序的步驟包括以隨機方式決定傳送順序。
在本發明之一實施例中,上述之根據每一金鑰區段的與區段長度,設定對應每一金鑰區段的傳輸長度的步驟包括:根據金鑰的長度與每一金鑰區段的區段長度以隨機方式設定對應每一金鑰區段的傳輸長度。
在本發明之一實施例中,上述之金鑰傳送方法,更包括:在金鑰之後加入至少一虛擬金鑰。此外,上述之根據每一金鑰區段的區段長度,設定對應每一金鑰區段的傳輸長度的步驟包括:根據金鑰的長度、虛擬金鑰的長度與每一金鑰區段的區段長度。
在本發明之一實施例中,金鑰傳送方法,更包括:在加解密單元中重新組合屬於此些金鑰區段的起始位置、區段長度與傳輸位元串以獲得該金鑰。
在本發明之一實施例中,上述之加解密單元包括起始位置暫存器、區段長度暫存器、傳輸位元串暫存器與金鑰暫存器。此外,上述之按照傳送順序,將屬於每一金鑰區段的起始位置、區段長度與該傳輸位元串從緩衝記憶體經由資料匯流排傳送至加解密單元的步驟包括:將屬於此些金鑰區段的起始位置經由匯流排傳送至起始位置暫存器;將屬於此些金鑰區段的傳輸長度經由資料匯流排傳送至區段長度暫存器;以及將屬於此些金鑰區段的傳輸位元串經由資料匯流排傳送至傳輸位元串暫存器。
在本發明之一實施例中,上述之在加解密單元中重新組合屬於此些金鑰區段的起始位置、區段長度與傳輸位元串以獲得該金鑰的步驟包括:從加解密單元上的起始位置暫存器、區段長度暫存器與傳輸位元串暫存器分別讀取屬於此些金鑰區段的起始位置、區段長度與傳輸位元串,根據所讀取的屬於此些金鑰區段的起始位置、區段長度與傳輸位元串來獲得此金鑰,並且將所獲得的金鑰寫入至金鑰暫存器中。
在本發明之一實施例中,上述之根據屬於各個金鑰區段的起始位置、傳輸長度與一傳輸位元串重新組合成金鑰的步驟包括從加解密單元上的起始位置暫存器、區段長度暫存器與傳輸位元串暫存器分別讀取屬於各個金鑰區段的起始位置、傳輸長度與一傳輸位元串,並且重新組合成金鑰。
本發明範例實施例提出一種記憶體控制器,用於控制可複寫式非揮發性記憶體模組,此記憶體控制器包括主機介面,記憶體介面,緩衝記憶體,加解密單元與記憶體管理電路。主機介面耦接至主機系統;記憶體介面耦接至可複寫式非揮發性記憶體模組;緩衝記憶體用以暫存金鑰;加解密單元,用以利用此金鑰來加密與解密資料;以及記憶體管理電路耦接至主機介面與記憶體介面,用以將此金鑰從緩衝記憶體經由資料匯流排傳送至加解密單元。此記憶體管理電路將金鑰的多個位元邏輯地分割成多個金鑰區段,其中每一金鑰區段具有起始位置與區段長度。此外,記憶體管理電路根據每一金鑰區段的區段長度,設定對應每一金鑰區段的傳輸長度,並且根據屬於每一金鑰區段的起始位置與傳輸長度,從金鑰的位元中指派屬於每一金鑰區段的傳輸位元串。再者,記憶體管理電路為此些金鑰區段決定傳送順序,並且按照此傳送順序,將屬於每一金鑰區段的起始位置、區段長度與傳輸位元串從緩衝記憶體經由資料匯流排傳送至加解密單元。
在本發明之一實施例中,上述之記憶體管理電路將金鑰的位元等分成上述金鑰區段,其中每一金鑰區段的區段長度為相同並且每一金鑰區段的傳輸長度相同於每一金鑰區段的區段長度。
在本發明之一實施例中,上述之記憶體管理電路將金鑰的位元隨機地分割成上述金鑰區段,其中至少兩個金鑰區段的區段長度為不同。
在本發明之一實施例中,上述之記憶體管理電路以隨機方式決定此傳送順序。
在本發明之一實施例中,上述之記憶體管理電路根據根據金鑰的長度與每一金鑰區段的區段長度以隨機方式設定對應每一金鑰區段的傳輸長度。
在本發明之一實施例中,上述之記憶體管理電路在金鑰之後加入至少一虛擬金鑰並且根據金鑰的長度、虛擬金鑰的長度與每一金鑰區段的區段長度以隨機方式設定對應每一金鑰區段的傳輸長度。
在本發明之一實施例中,上述之加解密單元重新組合屬於每一金鑰區段的些起始位置、區段長度與傳輸位元串以獲得金鑰。
在本發明之一實施例中,上述之加解密單元具有起始位置暫存器、區段長度暫存器、傳輸位元串暫存器與金鑰暫存器。此外,上述之記憶體管理電路將屬於每一金鑰區段的起始位置經由資料匯流排傳送至起始位置暫存器,將屬於每一金鑰區段的區段長度經由資料匯流排傳送至區段長度暫存器並且將屬於每一金鑰區段的傳輸位元串經由資料匯流排傳送至傳輸位元串暫存器。
在本發明之一實施例中,上述之加解密單元更包括一加解密控制器,其中該加解密控制器從起始位置暫存器、區段長度暫存器與傳輸位元串暫存器分別讀取屬於每一金鑰區段的起始位置、區段長度與傳輸位元串,根據所讀取的屬於每一金鑰區段的起始位置、區段長度與傳輸位元串來獲得金鑰,並且將所獲得的金鑰寫入至金鑰暫存器中。
本發明範例實施例提出一種記憶體儲存裝置,包括連接器,可複寫式非揮發性記憶體模組與上述記憶體控制器。連接器耦接至主機系統;可複寫式非揮發性記憶體模組用以儲存資料;並且記憶體控制器耦接至連接器與可複寫式非揮發性記憶體模組。
基於上述,本發明所提供的金鑰傳送方法、記憶體控制器與記憶體儲存裝置能夠防止金鑰在從緩衝記憶體被傳送至加解密單元的過程中被竊取。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
[第一範例實施例]
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或者從記憶體儲存裝置中讀取資料。
圖2A是根據本發明範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖2A,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖2B的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖2B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作,主機系統1000可將資料寫入至記憶體儲存裝置100或者從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖2B所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000可實質地為任何能夠與記憶體儲存裝置100配合以儲存資料的系統。雖然在本範例實施例中,主機系統1000是以電腦系統來說明,然而,在本發明另一範例實施例中,主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖2C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖3是繪示圖2A所示的記憶體儲存裝置的概要方塊圖。
請參照圖3,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接器102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE) 1394標準、平行先進附件(Parallel Advanced Technology Attachment,PATA)標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、安全數位(Secure Digital,SD)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106包括實體區塊304(0)~304(R)。各實體區塊分別具有複數個實體頁面,其中屬於於同一個實體區塊之實體頁面可被獨立地寫入且被同時地抹除。更詳細來說,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。實體頁面為程式化的最小單元。即,實體頁面為寫入資料的最小單元。在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組、其他快閃記憶體模組或具有相同特性的其他記憶體模組。
圖4是根據本發明範例實施例所繪示之記憶體控制器的概要方塊圖。
請參照圖4,記憶體控制器104包括記憶體管理電路202、主機介面204與記憶體介面206。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,這些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
具體來說,記憶體管理電路202的控制指令是以程式碼的型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,可複寫式非揮發性記憶體模組106中專門用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼段,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉這些控制指令以執行資料的寫入、讀取與抹除等運作。此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明一範例實施例中,記憶體控制器104還包括緩衝記憶體252。緩衝記憶體252是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。特別是,在加解密單元258開始運作之前,記憶體管理電路202會根據本範例實施例的金鑰傳送方法,將金鑰從緩衝記憶體252中傳送至加解密單元258。
在本發明一範例實施例中,記憶體控制器104還包括電源管理電路254。電源管理電路254是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
在本發明一範例實施例中,記憶體控制器104還包括錯誤檢查與校正電路256。錯誤檢查與校正電路256是耦接至記憶體管理電路202並且用以執行錯誤位元的檢查與校正以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路256會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤位元的檢查與校正。
在本發明一範例實施例中,記憶體控制器104還包括加解密單元258,加解密單元258是耦接至記憶體管理電路202,用以依據金鑰來加密寫入至可複寫式非揮發性記憶體模組106的資料,以及解密從可複寫式非揮發性記憶體模組106中讀取的資料。
在本實施例中,加解密單元258中的加解密函數可以高級加密標準(Advanced Encryption Standard,AES)來實作,亦可以資料加密標準(Data Encryption Standard,DES)來實作。
在本範例實施例中,在加解密單元258進行資料的加密之前,記憶體管理電路202會將暫存於緩衝記憶體252中的金鑰進行分割成多個金鑰區段並且將分割後之金鑰區段及其相關資訊經由資料匯流排傳送給加解密單元258。
圖5A是根據本發明第一範例實施例所繪示之金鑰傳送方法的運作示意圖,並且圖5B是根據圖5A所繪示之將金鑰邏輯地分割成多個金鑰區段的相關資訊列表。為簡化及清楚說明金鑰傳送方法的運作情形,在此假設金鑰252a僅包含16個位元,但必須瞭解的是,本發明不限於此。
如圖5A所示,在此範例中,記憶體管理電路202會將金鑰252a依序地分割成金鑰區段(即,金鑰區段501~504),其中每一金鑰區段具有起始位置與區段長度等屬性,以記錄金鑰區段於此金鑰中的起始位置與長度。。
如圖5B所示,在金鑰區段的相關資訊列表中,第一欄表示金鑰區段的編號,第二欄表示金鑰區段的起始位置(各金鑰區段從金鑰中的第幾個位元開始),第三欄表示分別金鑰區段的區段長度(各金鑰區段的位元數),第四欄為各金鑰區段的傳輸長度,第五欄為各金鑰區段的傳輸位元串並且第六欄為各金鑰區段要被傳送到加解密單元258的先後順序。在此,傳輸長度是表示在資料匯流排401中各金鑰區段所傳輸之資料的長度,傳輸位元串是表示在資料匯流排401中各金鑰區段所傳輸之資料的內容。
請參照圖5A,加解密單元258包括金鑰暫存器258a,起始位置暫存器258b,區段長度暫存器258c、傳輸位元串暫存器258d與加解密控制器258e。在此,金鑰暫存器258a用以存放加解密單元258最後所得到的金鑰252a,起始位置暫存器258b用以存放各金鑰區段的起始位置,區段長度暫存器258c用以存放各金鑰區段的區段長度,以及傳輸位元串暫存器258d用以存放各金鑰區段的傳輸位元串。
在金鑰傳送過程中,記憶體管理電路202會對應金鑰區段501~金鑰區段504的起始位置、區段長度與傳輸位元串,分別寫入起始位置暫存器258b,區段長度暫存器258c與傳輸位元串暫存器258d。在完成金鑰傳送之後,加解密單元258會根據儲存於這三個暫存器的內容還原原始的金鑰252a,並且將所還原的金鑰252a它儲存至金鑰暫存器258a中。
請一併參照圖5A與圖5B。具體來說,在被傳送至加解密單元258之前,金鑰252a會先暫存在緩衝記憶體252中。接著,記憶體管理電路202將金鑰252a的16個位元以固定長度(4個位元)的方式邏輯地分割成金鑰區段501~金鑰區段504,並且分別為各金鑰區段計算出對應的起始位置與區段長度。其中,金鑰區段501~金鑰區段504的起始位置P1~P4分別是1,5,9與13,而金鑰區段501~金鑰區段504的長度則全部皆為4(如圖5B中的第三欄所示)。
接著,記憶體管理電路202根據各金鑰區段的區段長度,分別為各金鑰區段設定一傳輸長度。在此,對應一個金鑰區段的傳輸長度不小於此金鑰區段的區段長度。在第一範例實施例中,記憶體管理電路202是以金鑰區段本身的長度作為對應的傳輸長度,換言之,金鑰區段501~金鑰區段504的傳輸長度全部皆為4(如圖5B中的第四欄所示)。
然後,記憶體管理電路202根據各金鑰區段的起始位置與傳輸長度,從緩衝記憶體252中的金鑰252a中指派各金鑰區段的傳輸位元串。具體而言,記憶體管理電路202會從金鑰區段501的起始位置開始讀取4個位元值(即,’1010’)作為金鑰區段501的傳輸位元串,從金鑰區段502的起始位置開始讀取4個位元值(即,’1000’)作為金鑰區段502的傳輸位元串,從金鑰區段503的起始位置開始讀取4個位元值(即,’0101’)作為金鑰區段503的傳輸位元串並且從金鑰區段504的起始位置開始讀取4個位元值(即,’0111’)作為金鑰區段504的傳輸位元串(如圖5B的第五欄所示)。
接著,記憶體管理電路202為各金鑰區段決定一傳送順序,並且按照該傳送順序,將各金鑰區段的起始位置、區段長度與傳輸位元串分別傳送至加解密單元258上的起始位置暫存器258b、區段長度暫存器258c與傳輸位元串暫存器258d中。在本範例實施例中,記憶體管理電路202以各金鑰區段位在金鑰252a中的先後順序作為對應的傳送順序。換言之,各金鑰區段的傳送順序為金鑰區段501、金鑰區段502、金鑰區段503、然後是金鑰區段504。
最後,在完成金鑰的傳送之後,加解密單元258的加解密控制器258e會重新組合各金鑰區段的起始位置、區段長度與傳輸位元串以獲取金鑰。
據此,在金鑰傳送的過程中,各金鑰區段的內容(即,傳輸位元串)會與各金鑰區段的起始位置與區段長度相互穿插,所以金鑰的內容不會連續不間斷地出現在資料匯流排上。基此,可避免第三者直接探測資料匯流排或者透過量測能量變異而輕易地獲取金鑰的內容。
必須瞭解的是,在本範例實施例中,金鑰252a的長度為16位元。然而,本發明並不限於此,在本發明另一範例實施例中,金鑰252a的長度亦可為64,128或256個位元等其他長度。原則上,金鑰長度取決於所運用的加解密標準。
另外,在本範例實施例中,記憶體管理電路202將金鑰252a邏輯地分割成4個金鑰區段。然而,必須瞭解的是,記憶體管理電路202亦可將金鑰252a邏輯地分割成更多或更少金鑰區段。
圖6是根據本發明第一範例實施例所繪示之金鑰傳送方法的流程圖。
請參照圖6,首先,在步驟S601中,記憶體管理電路202將金鑰邏輯地等分成多個金鑰區段(例如,4個長度為4個位元的金鑰區段),並且識別各金鑰區段的起始位置(例如,4個金鑰區段的起始位置分別為1、5、9與13)與區段長度(例如,4個金鑰區段的長度皆為4)。接著,在步驟S603中,記憶體管理電路202根據各金鑰區段的區段長度設定對應各金鑰區段的傳輸長度(例如,4個金鑰區段的傳輸長度皆為4)。
然後,在步驟S605中,記憶體管理電路202根據各金鑰區段的起始位置與傳輸長度,從儲存於緩衝記憶體252中之金鑰的位元中指派各金鑰區段的傳輸位元串。
接著,在步驟S607中,記憶體管理電路202以各金鑰區段位在金鑰中的先後順序決定傳送順序。然後,在步驟S609中,記憶體管理電路202按照在步驟S607中所決定的傳送順序,將各金鑰區段的起始位置、區段長度與傳輸位元串傳送至加解密單元258。特別是,各金鑰區段的起始位置、區段長度與傳輸位元串會分別被寫入起始位置暫存器258b,區段長度暫存器258c與傳輸位元串暫存器258d。
必須瞭解的是,在傳送各金鑰區段的過程中,金鑰區段的起始位置、區段長度與傳輸位元串三者之間的順序並無特定限制。
最後,在步驟S611中,在各金鑰區段的起始位置、區段長度與傳輸位元串全部被傳送至加解密單元258之後,加解密控制器258e重新組合各金鑰區段的起始位置、區段長度與傳輸位元串以獲得的金鑰252a。
[第二範例實施例]
本發明第二範例實施例的記憶體控制器與記憶體儲存裝置本質上相同於第一範例實施例的記憶體控制器與記憶體儲存裝置,其中的差異僅在於第二範例實施例以不同方式邏輯地分割欲傳送的金鑰。更明確地說,第二範例實施例會隨機地將金鑰的多個位元邏輯地分割成具有不同區段長度的多個金鑰區段。由於每個金鑰區段具有非固定區段長度,因而讓第三者更難以直接探測資料匯流排或者透過量測能量變異而獲取金鑰內容。以下將使用圖7A與圖7B來說明第二範例實施例與第一範例實施例的差異之處。
圖7A是根據本發明第二範例實施例所繪示之金鑰傳送方法的運作示意圖並且圖7B是根據圖7A所繪示之將金鑰邏輯地分割成多個金鑰區段的相關資訊列表。在此,假設金鑰252a的長度與內容與第二範例實施例相同。
請一併參照圖7A與圖7B。具體來說,記憶體管理電路202將金鑰252a的16個位元以隨機方式邏輯地分割成不同長度的金鑰區段501~金鑰區段504,並且識別各個金鑰區段的起始位置與區段長度。例如,假設記憶體管理電路202欲將金鑰252a的16個位元分割成金鑰區段701~金鑰區段704,為此,記憶體管理電路202可先將金鑰區段701的起始位置設定為1,並且產生三個1到16之間的隨機亂數(例如,利用隨機亂數產生器),由小到大分別作為金鑰區段702~金鑰區段704的起始位置。
由圖7A與圖7B可知,在本範例實施例中,金鑰區段701~金鑰區段704的起始位置P1~P4分別為1、6、9與15。據此,記憶體管理電路202可識別出金鑰區段701~金鑰區段704的區段長度分別為5、3、6與2(如圖5B中的第三欄所示)。
接著,記憶體管理電路202根據各金鑰區段的區段長度,設定對應各金鑰區段的傳輸長度,其中傳輸長度不小於金鑰區段本身的長度。在本範例實施例中,記憶體管理電路以金鑰區段的區段長度作為對應的傳輸長度,換言之,金鑰區段701~金鑰區段704的傳輸長度分別為5、3、6與2(如圖5B中的第四欄所示)。
然後,記憶體管理電路202根據各金鑰區段的起始位置與傳輸長度,從緩衝記憶體252中的金鑰252a之中指派各金鑰區段的傳輸位元串。具體而言,記憶體管理電路202會從金鑰區段701的起始位置開始讀取5個位元值(即,’10101’)作為金鑰區段701的傳輸位元串,從金鑰區段702的起始位置開始讀取3個位元值(即,’000’)作為金鑰區段702的傳輸位元串,從金鑰區段703的起始位置開始讀取6個位元值(即,’010101’)作為金鑰區段703的傳輸位元串並且從金鑰區段704的起始位置開始讀取2個位元值(即,’11’)作為金鑰區段704的傳輸位元串(如圖7B中的第五欄所示)。
接著,記憶體管理電路202為各金鑰區段決定傳送順序以及按照該傳送順序傳送各金鑰區段的起始位置、區段長度與傳輸位元串。決定傳送順序與傳送各金鑰區段的起始位置、區段長度與傳輸位元串的方式是相同於第一範例實施例,在此不再贅述。
據此,在金鑰傳送的過程中,不僅各金鑰區段的內容會與各金鑰區段之起始位置與對應的區段長度的資訊相互穿插,並且各金鑰區段的長度為隨機值,所以相較於第一範例實施例,各金鑰區段的相關內容會以更不規則的形式出現在資料匯流排上。基此,可避免第三者透過探測資料匯流排或者量測能量變異而輕易獲取金鑰的內容。
圖8是根據本發明第二範例實施例所繪示之金鑰傳送方法的流程圖。
請參照圖8,除了步驟S801之外,其餘步驟已描述於第一範例實施例中,在此不再贅述。以下僅就步驟S801作說明。
在步驟S801中,記憶體管理電路202以隨機方式將金鑰邏輯地分割成具有不同區段長度的金鑰區段,並且識別各金鑰區段的起始位置與區段長度。例如,可先將金鑰區段701的起始位置設定為1,並且產生三個1到16之間的隨機亂數,由小到大分別作為金鑰區段702~金鑰區段704的起始位置,再據以識別出各金鑰區段的區段長度。
然而,必須瞭解的是,本發明並不限於此,在本發明的另一實施例中,亦可先產生隨機亂數作為各金鑰區段的區段長度,接著再據以識別出各金鑰區段的起始位置。具體而言,先產生4個總和為16的隨機亂數,例如,5、3、6與2,接著將金鑰區段701的起始位置設定為1,然後再根據上述4個隨機亂數依次識別出金鑰區段702~金鑰區段704的起始位置,分別為6、9與15。
[第三範例實施例]
本發明第三範例實施例的記憶體控制器與記憶體儲存裝置本質上相同於第二範例實施例的記憶體控制器與記憶體儲存裝置,其中的差異僅在於第三範例實施例以不同方式決定各金鑰區段的傳送順序。更明確地說,第三範例實施例以隨機方式決定各金鑰區段的傳送順序。因此,除了具有不固定的長度外,每個金鑰區段是以不固定的順序出現在資料匯流排上,因而讓第三者更難以直接探測資料匯流排或者透過量測能量變異而獲取金鑰內容。
圖9A是根據本發明第三範例實施例所繪示之金鑰傳送方法的運作示意圖,並且圖9B是根據圖9A所繪示之將金鑰邏輯地分割成多個金鑰區段的相關資訊列表。
請一併參照圖9A與圖9B,如前所述,第三範例實施例以相同於第二範例實施例的方式,將金鑰邏輯地分割成4個金鑰區段並且設定對應的傳輸長度,在此不再贅述。唯一的差異僅在於,第三範例實施例以隨機的方式決定金鑰區段901~金鑰區段904的傳送順序。例如,記憶體管理電路202可分別為金鑰區段901~金鑰區段904產生4個隨機亂數,再依大小順序決定金鑰區段901~金鑰區段904的傳送順序。
由圖9B可知,在本範例實施例中,各金鑰區段的傳送順序為金鑰區段902、金鑰區段904、金鑰區段901、然後是金鑰區段903。接著,記憶體管理電路202按照此傳送順序,將各金鑰區段的起始位置、區段長度與傳輸位元串傳送至加解密單元258。
據此,不僅各金鑰區段的區段長度為隨機值,並且其傳送順序亦與金鑰區段位於金鑰中的先後順序無關,所以相較於第二範例實施例,各金鑰區段的內容會以更不規則的形式出現在資料匯流排上。基此,可避免第三者透過探測資料匯流排或者量測能量變異而輕易獲取金鑰的內容。
圖10是根據本發明第三範例實施例所繪示之金鑰傳送方法的流程圖。
請參照圖10,除了步驟S1007之外,其餘步驟已描述於第二範例實施例及第三範例實施例中,在此不再贅述。以下僅就步驟S1007作說明。
在步驟S1007中,記憶體管理電路202以隨機方式決定金鑰區段的傳送順序。例如,在本範例實施例中,記憶體管理電路202先產生4個分別屬於於金鑰區段901~金鑰區段904的隨機亂數(例如,’3’、’1’、’4’與’2’),再依此順序作為金鑰區段901~金鑰區段904的傳送順序。亦即,記憶體管理電路202先傳送金鑰區段902,接著再傳送金鑰區段904,金鑰區段901,與金鑰區段903。
值得一提的是,儘管在第三範例實施例中,金鑰的多個位元邏輯地會被隨機地分割成具有不同區段長度的多個金鑰區段,但本發明不限於此。例如,在另一範例實施例中,金鑰的多個位元邏輯地亦可被分割成具有相同區段長度的多個金鑰區段,並且之後,金鑰區段的傳輸位元串再以隨機方式決定之傳送順序來被傳送。
[第四範例實施例]
本發明第四範例實施例的記憶體控制器與記憶體儲存裝置本質上相同於第三範例實施例的記憶體控制器與記憶體儲存裝置,其中的差異僅在於第四範例實施例以不同方式設定對應各金鑰區段的傳輸長度。更明確地說,第四範例實施例以隨機的方式設定對應各金鑰區段的傳輸長度,並且各金鑰區段的傳輸長度不小於各金鑰區段本身的長度。基此,除了每個金鑰區段具有不固定的區段長度外,每個金鑰區段的傳輸資料串也會相互重疊。特別是,在第一範例實施例到第三範例實施例中,金鑰的每個位元都只會被輸入一次,然而,在第四範例實施例中,部分的金鑰內容可能被輸入兩次以上。如此,可大大增加副通道攻擊(side channel attack)的困難度,因而讓第三者更難以透過探測資料匯流排或者量測能量變異而獲取金鑰的內容。以下將使用圖11A~圖11C來說明第四範例實施例與第三範例實施例的差異之處。
圖11A是根據本發明第三範例實施例所繪示之金鑰傳送方法的運作示意圖,圖11B是根據圖11A所繪示之為決定各金鑰區段的傳輸長度的示意圖並且圖11C是根據圖11A所繪示之將金鑰邏輯地分割成多個金鑰區段的相關資訊列表。
請一併參照圖11A~圖11C,如前所述,第四範例實施例以相同於第三範例實施例的方式,將金鑰邏輯地分割成4個金鑰區段,並且決定各金鑰區段的傳送順序,在此不再贅述。唯一的差異僅在於第四範例實施例以隨機的方式設定對應金鑰區段1151~金鑰區段1154的傳輸長度。
在本範例實施例中,針對不是最後一個金鑰區段的金鑰區段,記憶體管理電路202會依據公式(1)來設定金鑰區段的傳輸長度:
L(i)=rand(P(i+1)-P(i),N-P(i)) (1)
其中L(i)為第i個金鑰區段的傳輸長度;rand(a,b)為隨機函數,回傳整數a到整數b之間的一個隨機整數;P(i)為第i個金鑰區段的起始位置;P(i+1)為第i+1個金鑰區段的起始位置;並且N為金鑰的位元數。
在本範例實施例中,針對最後一個金鑰區段,記憶體管理電路202會依據公式(2)來計算金鑰區段的傳輸長度:
L(m)=N-P(m)+1 (2)
其中m為金鑰區段的總數;L(m)為第m個金鑰區段(最後一個金鑰區段)的傳輸長度;P(m)為第m個金鑰區段的起始位置;並且N為金鑰的位元數。
也就是說,藉由上述公式(1)與公式(2)以隨機方式設定對應每一金鑰區段的傳輸長度,使任一個金鑰區段的傳輸長度大於或等於此金鑰區段本身的區段長度並且不大於金鑰的長度與此金鑰區段本身的起始位置之間的差值加1(即,(P(i+1)-P(i))<=L(i)<=(N-P(i)+1))。
例如,在本範例實施例中,N為16,m為4,P(1)為1,P(2)為6,P(3)為9,P(4)為15。根據公式(1),L(1)為5~15之間的一個隨機整數(即,L(1)=rand(6-1,16-1)=rand(5,15))。同理,L(2)為3~10之間的一個隨機整數(即,L(2)=rand(9-6,16-6)=rand(3,10))並且L(3)為6~7之間的一個隨機整數(即,L(3)=rand(15-9,16-9)=rand(6,7))。又根據公式(2),L(4)為2(即,L(4)=16-15+1=2)。特別是,從圖11B可知,在本範例實施例中,經公式(1)的隨機函數與公式(2)的計算得到,傳輸長度L1(即L(1))為7,傳輸長度L2(即L(2))為6,傳輸長度L3(即L(3))為7,以及傳輸長度L4(即L(4))為2。然而,值得注意的是,傳輸長度L1到傳輸長度L3是隨機函數所產生的隨機值,而不是固定值。
在設定好各金鑰區段的傳輸長度之後,記憶體管理電路202根據各金鑰區段的起始位置與傳輸長度,從緩衝記憶體252中的金鑰252a之中指派各金鑰區段的傳輸位元串。具體而言,記憶體管理電路202會從金鑰區段1151的起始位置開始讀取7個位元值(即,’1010100’)作為金鑰區段1151的傳輸位元串,從金鑰區段1152的起始位置開始讀取6個位元值(即,’000010’)作為金鑰區段1152的傳輸位元串,從金鑰區段1153的起始位置開始讀取7個位元值(即,’0101011’)作為金鑰區段1153的傳輸位元串並且從金鑰區段1154的起始位置開始讀取2個位元值(即,’11’)作為金鑰區段1154的傳輸位元串(如圖11C的第五欄所示)。
接著,記憶體管理電路202以相同於第三範例實施例的方式,為各金鑰區段決定傳送順序,並據以傳送各金鑰區段的起始位置、區段長度與傳輸位元串相關資訊。
根據第四範例實施例的金鑰傳送方式,不僅各金鑰區段的區段長度為隨機值,各金鑰區段的傳送順序與金鑰區段位於金鑰中的先後順序亦無關。同時,各金鑰區段的傳輸長度也是隨機值並且不小於各金鑰區段的長度,因此,各金鑰區段的內容會有隨機性的重疊現象,由此,金鑰傳送時的能量資訊會更進一步被打亂。所以,相較於第三範例實施例,各金鑰區段的內容會以更不規則且相互重疊的形式出現在資料匯流排上。基此,可避免第三者透過探測資料匯流排或者量測能量變異而輕易獲取金鑰的內容。
必須瞭解的是,本範例實施例以公式(1)與公式(2)來決定各金鑰區段的隨機的傳輸長度。然而,本發明並不限於此,只要每一個金鑰區段產生的傳輸長度不小於金鑰區段本身的長度,並且不超過金鑰的長度,在本發明的另一實施例中,亦可使用其他隨機方式來決定各金鑰區段的隨機的傳輸長度。
圖12是根據本發明第四範例實施例所繪示之金鑰傳送方法的流程圖。
請參照圖12,除了步驟S1203之外,其餘步驟已描述於第一範例實施例到第三範例實施例中,在此不再贅述。以下僅就步驟S1203作說明。
在步驟S1203中,記憶體管理電路202以隨機方式為各金鑰區段設定對應的傳輸長度。例如,記憶體管理電路202會先判斷欲被設定之金鑰區段是否為最後一個金鑰區段。倘若不是最後一個金鑰區段時,記憶體管理電路202會依據上述公式(1)來設定此金鑰區段所對應的傳輸長度。倘若是最後一個金鑰區段時,記憶體管理電路202會依據上述公式(2)來設定此金鑰區段所對應的傳輸長度。
值得一提的是,儘管在第四範例實施例中,金鑰的多個位元邏輯地會被隨機地分割成具有不同區段長度的多個金鑰區段,金鑰區段的傳送順序會以隨機方式來決定,並且金鑰區段的傳輸長度會以隨機方式來決定,但本發明不限於此。
例如,在另一範例實施例中,金鑰的多個位元邏輯地亦可被分割成具有相同區段長度的多個金鑰區段,金鑰區段的傳送順序會以金鑰區段的排列順序來決定,並且金鑰區段的傳輸長度會以隨機方式來決定。
再例如,在另一範例實施例中,金鑰的多個位元邏輯地亦可被分割成具有相同區段長度的多個金鑰區段,金鑰區段的傳送順序會以隨機方式來決定,並且金鑰區段的傳輸長度會以隨機方式來決定。
再例如,在另一範例實施例中,金鑰的多個位元邏輯地亦可被分割成具不相同區段長度的多個金鑰區段,金鑰區段的傳送順序會以金鑰區段的排列順序來決定,並且金鑰區段的傳輸長度會以隨機方式來決定。
[第五範例實施例]
本發明第五範例實施例的記憶體控制器與記憶體儲存裝置本質上相同於第四範例實施例的記憶體控制器與記憶體儲存裝置,並且第五範例實施例以類似第四範例實施例的方式決定各金鑰區段的傳輸長度,其中的差異僅在於第五範例實施例會在真實的金鑰之後接續至少一虛擬金鑰。因此,每個金鑰區段除了會包含相互重疊的金鑰內容外,更會包含額外的虛擬金鑰的內容。如此,可大大增加副通道攻擊(side channel attack)的困難度,因而讓第三者更難以透過探測資料匯流排或者量測能量變異而獲取金鑰的內容。
圖13A是根據本發明第五範例實施例所繪示之金鑰傳送方法的運作示意圖,圖13B是根據圖13A所繪示之為決定各金鑰區段的傳輸長度的示意圖並且圖13C是根據圖13A所繪示之將金鑰邏輯地分割成多個金鑰區段的相關資訊列表。
請一併參照圖13A~圖13C。如前所述,第五範例實施例以相同於第四範例實施例的方式,將金鑰邏輯地分割成4個金鑰區段,並且決定各金鑰區段的傳送順序,在此不再贅述。唯一的差異僅在於,雖然在第五範例實施例中記憶體管理電路202也以隨機方式設定金鑰區段1351~金鑰區段1354所對應的傳輸長度,然而,記憶體管理電路202更在真實的金鑰之後接續至少一虛擬金鑰,並且將至少部分的虛擬金鑰的內容與真實金鑰一起傳送。
為求清楚及簡化說明,在本範例實施例中,假設暫存於緩衝記憶體252中的虛擬金鑰252b僅包含8個位元(其內容如圖13A所示),並且接續於真實的金鑰252a之後。
在本範例實施例中,針對不是最後一個金鑰區段的金鑰區段,記憶體管理電路202會依據公式(3)來設定金鑰區段的傳輸長度:
L(i)=rand(P(i+1)-P(i),N+S-P(i)) (公式3)
其中L(i)為第i個金鑰區段的傳輸長度;rand(a,b)為隨機函數,回傳整數a到整數b之間的一個隨機整數;P(i)為第i個金鑰區段的起始位置;P(i+1)為第i+1個金鑰區段的起始位置;N為金鑰的位元數;並且S為所有虛擬金鑰的長度的總和。
在本範例實施例中,針對最後一個金鑰區段,記憶體管理電路202會依據公式(4)來設定金鑰區段的傳輸長度:
L(m)=N+S-P(m)+1 (公式4)
其中m為金鑰區段的總數;L(m)為第m個金鑰區段(最後一個金鑰區段)的傳輸長度;P(m)為第m個金鑰區段的起始位置;N為金鑰的位元數;並且S為所有虛擬金鑰的長度的總和。
也就是說,藉由上述公式(3)與公式(4)以隨機方式設定對應每一金鑰區段的傳輸長度,使任一個金鑰區段的傳輸長度大於或等於此金鑰區段本身的區段長度,並且任一個金鑰區段的傳輸長度不大於金鑰和虛擬金鑰的長度的總和與此金鑰區段本身的起始位置之間的差值加1(即,(P(i+1)-P(i))<=L(i)<=(N+S-P(i)+1))。
例如,在本範例實施例中,N為16,S為8,m為4,P(1)為1,P(2)為6,P(3)為9,P(4)為15。根據公式(3),L(1)為5~24之間的一個隨機整數(即,L(1)=rand(6-1,16+8-1)=rand(5,24))。同理,L(2)為3~18之間的一個隨機整數(即,L(2)=rand(9-6,16+8-6)=rand(3,18))並且L(3)為6~15之間的一個隨機整數(即,L(3)=rand(15-9,16+8-9)=rand(6,15))。又根據公式4,L(4)為10(即,L(4)=16+8-15+1=10)。特別是,從圖13B可知,在本範例實施例中,經公式(3)之隨機函數與公式(4)的計算得到,傳輸長度L1(即L(1))為9,傳輸長度L2(即L(2))為7,傳輸長度L3(即L(3))為11,以及傳輸長度L4(即L(4))為10。
在設定各金鑰區段的傳輸長度之後,記憶體管理電路202根據各金鑰區段的起始位置與傳輸長度,從緩衝記憶體252中的金鑰252a之中指派各金鑰區段的傳輸位元串。具體而言,記憶體管理電路202會從金鑰區段1351的起始位置開始讀取9個位元值(即,’101010000’)作為金鑰區段1351的傳輸位元串,從金鑰區段1352的起始位置開始讀取7個位元值(即,’0000101’)作為金鑰區段1352的傳輸位元串,從金鑰區段1353的起始位置開始讀取11個位元值(即,’01010111100’)作為金鑰區段1353的傳輸位元串並且從金鑰區段1354的起始位置開始讀取10個位元值(即,’1110010101’)作為金鑰區段1354的傳輸位元串(如圖13C的第五欄所示)。
接著,記憶體管理電路202以相同於第四範例實施例的方式,為各金鑰區段決定傳送順序,並據以傳送各金鑰區段的起始位置、區段長度與傳輸位元串相關資訊。
請參照圖14,除了步驟S1403之外,其餘步驟已描述於第一範例實施例到第三範例實施例中,在此不再贅述。以下僅就步驟S1403作說明。
在步驟S1403中,記憶體管理電路202會在金鑰之後加入至少一虛擬金鑰並且以隨機方式為各金鑰區段設定對應的傳輸長度。
根據本範例實施例的金鑰傳送方式,各金鑰區段的傳輸位元串會隨機地包含虛擬金鑰的內容,由此可進一步將金鑰傳送時的能量資訊給打亂。所以,相較於第四範例實施例,各金鑰區段的內容會以更不規則的形式出現在資料匯流排上。基此,可避免第三者透過探測資料匯流排或者量測能量變異而輕易地獲取金鑰的內容。
必須瞭解的是,本範例實施例以公式(3)與公式(4)來決定各金鑰區段的隨機的傳輸長度。然而,本發明並不限於此,只要每一個金鑰區段生的傳輸長度不小於金鑰區段本身的長度,並且不超過金鑰與虛擬金鑰的長度,在本發明的另一實施例中,亦可使用其他隨機方式來決定各金鑰區段的隨機的傳輸長度。
值得一提的是,儘管在第五範例實施例中,金鑰的多個位元邏輯地會被隨機地分割成具有不同區段長度的多個金鑰區段,金鑰區段的傳送順序會以隨機方式來決定,並且金鑰區段的傳輸長度會以隨機方式來決定,但本發明不限於此。例如,在另一範例實施例中,金鑰的多個位元邏輯地亦可被分割成具有相同區段長度的多個金鑰區段,或者金鑰區段的傳送順序可以金鑰區段的排列順序來決定,再或者金鑰區段的傳輸長度亦可以被設定為固定長度。
綜上所述,本發明範例實施例的金鑰傳送方法、記憶體控制器與記憶體儲存裝置可避免金鑰在傳送過程中以連續不間斷的形式出現在資料匯流排上,讓第三者得以透過探測資料匯流排或者量測能量變異而輕易地獲取金鑰的內容。基此,金鑰傳送的安全性可有效地被提升,記憶體儲存裝置裡的資料亦可獲得更周全的保護。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000...主機系統
1100...電腦
1102...微處理器
1104...隨機存取記憶體
1106...輸入/輸出裝置
1108...系統匯流排
1110...資料傳輸介面
1202...滑鼠
1204...鍵盤
1206...顯示器
1208...印表機
1212...隨身碟
1214...記憶卡
1216...固態硬碟
1310...數位相機
1312...SD卡
1314...MMC卡
1316...記憶棒
1318...CF卡
1320...嵌入式儲存裝置
100...記憶體儲存裝置
102...連接器
104...記憶體控制器
106...可複寫式非揮發性記憶體模組
202...記憶體管理電路
204...主機介面
206...記憶體介面
252...緩衝記憶體
254...電源管理電路
256...錯誤檢查與校正電路
1、258...加解密單元
1a、252a...金鑰
252b...虛擬金鑰
258a...金鑰暫存器
258b...起始位置暫存器
258c...區段長度暫存器
258d...傳輸位元串暫存器
304(0)~304(R)...實體區塊
401...資料匯流排
501~504...金鑰區段
701~704...金鑰區段
901~904...金鑰區段
1151~1154...金鑰區段
1351~1354...金鑰區段
P1~P4...金鑰區段的起始位置
L1~L4...金鑰區段的傳輸長度
S601、S603、S605、S607、S609、S611、S801、S1007、S1203、S1403...傳送金鑰的步驟
圖1是根據習知技術所繪示之傳送金鑰的示意圖。
圖2A是根據本發明範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖2C是根據本發明範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖3是繪示圖2A所示的記憶體儲存裝置的概要方塊圖。
圖4是根據本發明範例實施例所繪示的記憶體控制器的概要方塊圖。
圖5A是根據本發明第一範例實施例所繪示之金鑰傳送方法的運作示意圖
圖5B是根據圖5A所繪示之將金鑰邏輯地分割成多個金鑰區段的相關資訊列表。
圖6是根據本發明第一範例實施例所繪示之金鑰傳送方法的流程圖。
圖7A是根據本發明第二範例實施例所繪示之金鑰傳送方法的運作示意圖。
圖7B是根據圖7A所繪示之將金鑰邏輯地分割成多個金鑰區段的相關資訊列表。
圖8是根據本發明第二範例實施例所繪示之金鑰傳送方法的流程圖。
圖9A是根據本發明第三範例實施例所繪示之金鑰傳送方法的運作示意圖。
圖9B是根據圖9A所繪示之將金鑰邏輯地分割成多個金鑰區段的相關資訊列表。
圖10是根據本發明第三範例實施例所繪示之金鑰傳送方法的流程圖。
圖11A是根據本發明第四範例實施例所繪示之金鑰傳送方法的運作示意圖。
圖11B是根據圖11A所繪示之決定各金鑰區段的傳輸長度的示意圖。
圖11C是根據圖11A所繪示之將金鑰邏輯地分割成多個金鑰區段的相關資訊列表。
圖12是根據本發明第四範例實施例所繪示之金鑰傳送方法的流程圖。
圖13A是根據本發明第四範例實施例所繪示之金鑰傳送方法的運作示意圖。
圖13B是根據圖13A所繪示之決定各金鑰區段的傳輸長度的示意圖。
圖13C是根據圖13A所繪示之將金鑰邏輯地分割成多個金鑰區段的相關資訊列表。
圖14是根據本發明第五範例實施例所繪示之金鑰傳送方法的流程圖。
S601、S603、S605、S607、S609、S611...傳送金鑰的步驟
权利要求:
Claims (25)
[1] 一種金鑰傳送方法,用以將儲存於一緩衝記憶體中的一金鑰經由一資料匯流排傳送至一加解密單元,該金鑰傳送方法包括:將該金鑰的多個位元邏輯地分割成多個金鑰區段,其中每一該些金鑰區段具有一起始位置與一區段長度;根據該些金鑰區段的該些區段長度,設定對應每一該些金鑰區段的一傳輸長度;根據屬於該些金鑰區段的該起始位置與該些傳輸長度,從該金鑰的該些位元中指派屬於每一該些金鑰區段的一傳輸位元串;為該些金鑰區段決定一傳送順序;以及按照該傳送順序,將屬於每一該些金鑰區段的該起始位置、該區段長度與該傳輸位元串從該緩衝記憶體經由該資料匯流排傳送至該加解密單元。
[2] 如申請專利範圍第1項所述之金鑰傳送方法,其中將該金鑰的該些位元邏輯地分割成該些金鑰區段的步驟包括:將該金鑰的該些位元等分成該些金鑰區段,其中該些金鑰區段的該些區段長度為相同並且該些金鑰區段的該些傳輸長度相同於該些金鑰區段的該些區段長度。
[3] 如申請專利範圍第1項所述之金鑰傳送方法,其中將該金鑰的該些位元邏輯地分割成該些金鑰區段的步驟包括:將該金鑰的多個位元隨機地分割成該些金鑰區段,其中該些金鑰區段之中的至少兩個金鑰區段的區段長度為不同。
[4] 如申請專利範圍第1項所述之金鑰傳送方法,其中為該些金鑰區段決定該傳送順序的步驟包括以隨機方式決定該傳送順序。
[5] 如申請專利範圍第1項所述之金鑰傳送方法,其中根據該些金鑰區段的該些區段長度,設定對應每一該些金鑰區段的該傳輸長度的步驟包括:根據該金鑰的一長度與該些金鑰區段的該些區段長度以隨機方式設定對應每一該些金鑰區段的該傳輸長度。
[6] 如申請專利範圍第1項所述之金鑰傳送方法,更包括:在該金鑰之後加入至少一虛擬金鑰,其中根據該些金鑰區段的該些區段長度,設定對應每一該些金鑰區段的該傳輸長度的步驟包括:根據該金鑰的一長度、該至少一虛擬金鑰的一長度與該些金鑰區段的該些區段長度以隨機方式設定對應每一該些金鑰區段的該傳輸長度。
[7] 如申請專利範圍第1項所述之金鑰傳送方法,更包括:在該加解密單元中重新組合屬於該些金鑰區段的該些起始位置、該些區段長度與該些傳輸位元串以獲得該金鑰。
[8] 如申請專利範圍第7項所述之金鑰傳送方法,其中該加解密單元具有一起始位置暫存器、一區段長度暫存器、一傳輸位元串暫存器與一金鑰暫存器,其中按照該傳送順序,將屬於每一該些金鑰區段的該起始位置、該區段長度與該傳輸位元串從該緩衝記憶體經由該資料匯流排傳送至該加解密單元的步驟包括:將屬於該些金鑰區段的該些起始位置經由該資料匯流排傳送至該起始位置暫存器;將屬於該些金鑰區段的該些區段長度經由該資料匯流排傳送至該區段長度暫存器;以及將屬於該些金鑰區段的該些傳輸位元串經由該資料匯流排傳送至該傳輸位元串暫存器。
[9] 如申請專利範圍第8項所述之金鑰傳送方法,其中在該加解密單元中重新組合屬於該些金鑰區段的該些起始位置、該些區段長度與該些傳輸位元串以獲得該金鑰的步驟包括:從該加解密單元上的該起始位置暫存器、該區段長度暫存器與該傳輸位元串暫存器分別讀取屬於該些金鑰區段的該些起始位置、該些傳輸長度與該些傳輸位元串,根據所讀取的屬於該些金鑰區段的該些起始位置、該些傳輸長度與該些傳輸位元串來獲得該金鑰,並且將所獲得的該金鑰寫入至該金鑰暫存器中。
[10] 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,該記憶體控制器包括:一主機介面,耦接至一主機系統;一記憶體介面,耦接至該可複寫式非揮發性記憶體模組;一緩衝記憶體,用以暫存一金鑰;一加解密單元,用以利用該金鑰來加密與解密資料;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,用以將該金鑰從該緩衝記憶體經由一資料匯流排傳送至該加解密單元,其中該記憶體管理電路將該金鑰的多個位元邏輯地分割成多個金鑰區段,其中每一該些金鑰區段具有一起始位置與一區段長度,其中該記憶體管理電路根據該些金鑰區段的該些區段長度,設定對應每一該些金鑰區段的一傳輸長度,其中該記憶體管理電路根據屬於每一該些金鑰區段的該起始位置與該傳輸長度,從該金鑰的該些位元中指派屬於每一金鑰區段段的一傳輸位元串,其中該記憶體管理電路為該些金鑰區段決定一傳送順序,並且按照該傳送順序,將屬於每一該些金鑰區段的該起始位置、該區段長度與該傳輸位元串從該緩衝記憶體經由該資料匯流排傳送至該加解密單元。
[11] 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路將該金鑰的該些位元等分成該些金鑰區段,其中該些金鑰區段的該些區段長度為相同並且該些金鑰區段的該些傳輸長度相同於該些金鑰區段的該些區段長度。
[12] 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路將該金鑰的多個位元隨機地分割成該些金鑰區段,其中該些金鑰區段之中的至少兩個金鑰區段的區段長度為不同。
[13] 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路以隨機方式決定該傳送順序。
[14] 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路根據根據該金鑰的一長度與該些金鑰區段的該些區段長度以隨機方式設定對應每一該些金鑰區段的該傳輸長度。
[15] 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路在該金鑰之後加入至少一虛擬金鑰並且根據該金鑰的一長度、該至少一虛擬金鑰的一長度與該些金鑰區段的該些區段長度以隨機方式設定對應每一該些金鑰區段的該傳輸長度。
[16] 如申請專利範圍第10項所述之記憶體控制器,其中該加解密單元重新組合屬於該些金鑰區段的該些起始位置、該些區段長度與該些傳輸位元串以獲得該金鑰。
[17] 如申請專利範圍第16項所述之記憶體控制器,其中該加解密單元具有一起始位置暫存器、一區段長度暫存器、一傳輸位元串暫存器與一金鑰暫存器,其中該記憶體管理電路將屬於該些金鑰區段的該些起始位置經由該資料匯流排傳送至該起始位置暫存器,將屬於該些金鑰區段的該些區段長度經由該資料匯流排傳送至該區段長度暫存器並且將屬於該些金鑰區段的該些傳輸位元串經由該資料匯流排傳送至該傳輸位元串暫存器。
[18] 如申請專利範圍第17項所述之記憶體控制器,其中該加解密單元更包括一加解密控制器,其中該加解密控制器從該起始位置暫存器、該區段長度暫存器與該傳輸位元串暫存器分別讀取屬於該些金鑰區段的該些起始位置、該些區段長度與該些傳輸位元串,根據所讀取的屬於該些金鑰區段的該些起始位置、該些區段長度與該些傳輸位元串來獲得該金鑰,並且將所獲得的該金鑰寫入至該金鑰暫存器中。
[19] 一種記憶體儲存裝置,包括:一連接器,耦接至一主機系統;一可複寫式非揮發性記憶體模組,用以儲存資料;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,其中該記憶體控制器包括:一主機介面,耦接至該連接器;一記憶體介面,耦接至該可複寫式非揮發性記憶體模組;一緩衝記憶體,用以暫存一金鑰;一加解密單元,用以利用該金鑰來加密與解密資料;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,用以將該金鑰從該緩衝記憶體經由一資料匯流排傳送至該加解密單元,其中該記憶體管理電路將該金鑰的多個位元邏輯地分割成多個金鑰區段,其中每一該些金鑰區段具有一起始位置與一區段長度,其中該記憶體管理電路根據該些金鑰區段的該些區段長度,設定對應每一該些金鑰區段的一傳輸長度,其中該記憶體管理電路根據屬於各該些資料區段金鑰區段的該起始位置與該些該傳輸讀取長度,從該金鑰的該些位元中指派從該緩衝記憶體中讀取屬於每一各該些金鑰區段資料區段的一傳輸位元串,其中該記憶體管理電路為該些金鑰區段決定一傳送順序,並且按照該傳送順序,將屬於每一該些金鑰區段的該起始位置、該區段長度與該傳輸位元串從該緩衝記憶體經由該資料匯流排傳送至該加解密單元。
[20] 如申請專利範圍第19項所述之記憶體儲存裝置,其中該記憶體管理電路將該金鑰的多個位元隨機地分割成該些金鑰區段,其中該些金鑰區段之中的至少兩個金鑰區段的區段長度為不同。
[21] 如申請專利範圍第19項所述之記憶體儲存裝置,其中該記憶體管理電路以隨機方式決定該傳送順序。
[22] 如申請專利範圍第19項所述之記憶體儲存裝置,其中該記憶體管理電路根據該金鑰的一長度與該些金鑰區段的該些區段長度以隨機方式設定對應每一該些金鑰區段的該傳輸長度。
[23] 如申請專利範圍第19項所述之記憶體儲存裝置,其中該記憶體管理電路在該金鑰之後加入至少一虛擬金鑰並且根據該金鑰的一長度、該至少一虛擬金鑰的一長度與該些金鑰區段的該些區段長度以隨機方式設定對應每一該些金鑰區段的該傳輸長度。
[24] 如申請專利範圍第19項所述之記憶體儲存裝置,其中該加解密單元具有一起始位置暫存器、一區段長度暫存器、一傳輸位元串暫存器與一金鑰暫存器,其中該記憶體管理電路將屬於該些金鑰區段的該些起始位置經由該資料匯流排傳送至該起始位置暫存器,將屬於該些金鑰區段的該些區段長度經由該資料匯流排傳送至該區段長度暫存器並且將屬於該些金鑰區段的該些傳輸位元串經由該資料匯流排傳送至該傳輸位元串暫存器。
[25] 如申請專利範圍第24項所述之記憶體儲存裝置,其中該加解密單元更包括一加解密控制器,其中該加解密控制器從該起始位置暫存器、該區段長度暫存器與該傳輸位元串暫存器分別讀取屬於該些金鑰區段的該些起始位置、該些區段長度與該些傳輸位元串,根據所讀取的屬於該些金鑰區段的該些起始位置、該些區段長度與該些傳輸位元串來獲得該金鑰,並且將所獲得的該金鑰寫入至該金鑰暫存器中。
类似技术:
公开号 | 公开日 | 专利标题
TWI432964B|2014-04-01|金鑰傳送方法、記憶體控制器與記憶體儲存裝置
EP2684134B1|2018-07-18|Programmable data storage management
US8976586B2|2015-03-10|Semiconductor memory device for pseudo-random number generation
US9348693B2|2016-05-24|Data accessing method for flash memory module
KR101834969B1|2018-03-06|물리적으로 복제 불가능한 기능에 기초한 안전한 데이터 스토리지
TWI496161B|2015-08-11|記憶體識別碼產生方法、管理方法、控制器與儲存系統
TWI443517B|2014-07-01|記憶體儲存裝置及其記憶體控制器與密碼驗證方法
TWI451249B|2014-09-01|用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
TWI479359B|2015-04-01|指令執行方法、記憶體控制器與記憶體儲存裝置
KR20140027596A|2014-03-07|메모리 시스템 및 메모리 시스템에서의 암호화 방법
KR20130127499A|2013-11-22|인증자, 피인증자 및 인증 방법
US9904807B2|2018-02-27|Memory system and information processing system
KR20130127497A|2013-11-22|인증자, 피인증자 및 인증 방법
CN102955747B|2015-05-20|金钥传送方法、存储器控制器与存储器储存装置
TWI688965B|2020-03-21|資料寫入方法、記憶體控制電路單元及記憶體儲存裝置
TWI732642B|2021-07-01|資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
US20200356669A1|2020-11-12|Storage system with separated rpmb sub-systems and method of operating the same
KR20150017601A|2015-02-17|저장 시스템 및 그 동작 방법
CN112416240A|2021-02-26|数据写入方法、存储器控制电路单元及存储器存储装置
CN113647050A|2021-11-12|基于块链的存储器命令验证
CN113632413A|2021-11-09|使用存储器作为区块链中的块
CN112115076A|2020-12-22|使用者数据的加解密装置及方法
同族专利:
公开号 | 公开日
US8831229B2|2014-09-09|
US20130044881A1|2013-02-21|
TWI432964B|2014-04-01|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
CN111046445A|2018-10-11|2020-04-21|合肥沛睿微电子股份有限公司|加解密金钥产生方法|US6092149A|1997-05-28|2000-07-18|Western Digital Corporation|Disk drive cache system using a dynamic priority sequential stream of data segments continuously adapted according to prefetched sequential random, and repeating types of accesses|KR101977663B1|2012-09-14|2019-05-13|삼성전자주식회사|임베디드 멀티미디어 카드 디바이스 및 그 동작방법|
DE102013205754A1|2013-04-02|2014-10-02|BSH Bosch und Siemens Hausgeräte GmbH|Nachrichtenübertragung in Haushaltsgerät|
US10594687B2|2013-05-14|2020-03-17|Kara Partners Llc|Technologies for enhancing computer security|
US10057250B2|2013-05-14|2018-08-21|Kara Partners Llc|Technologies for enhancing computer security|
US9780949B2|2013-07-24|2017-10-03|Nxp Usa, Inc.|Data processing device and method for protecting a data processing device against tampering|
WO2015075796A1|2013-11-21|2015-05-28|株式会社 東芝|コンテンツ管理システム、ホスト装置及びコンテンツ鍵アクセス方法|
JP6149749B2|2014-02-05|2017-06-21|富士ゼロックス株式会社|情報処理装置、情報処理システム、及びプログラム|
WO2015151444A1|2014-03-31|2015-10-08|Necソリューションイノベータ株式会社|データ構造、情報処理装置、情報処理方法、及びプログラム記録媒体|
法律状态:
优先权:
申请号 | 申请日 | 专利标题
TW100129095A|TWI432964B|2011-08-15|2011-08-15|金鑰傳送方法、記憶體控制器與記憶體儲存裝置|TW100129095A| TWI432964B|2011-08-15|2011-08-15|金鑰傳送方法、記憶體控制器與記憶體儲存裝置|
US13/309,545| US8831229B2|2011-08-15|2011-12-01|Key transport method, memory controller and memory storage apparatus|
[返回顶部]