設備和存儲系統的制作方法
【專利說明】設備和存儲系統
[0001]相關申請交叉引用
[0002]本申請基于在2013年6月20提交的第2013-129832號;以及在2014年2月4日提交的第2014-019731號的先前的日本專利申請并且要求它們的優先權的權益,所有上述日本專利申請的全部內容通過引用并入本文。
技術領域
[0003]本申請中描述的實施例一般涉及設備、主機裝置、主機系統以及存儲系統。
【背景技術】
[0004]作為記錄介質,使用NAND閃速存儲器的存儲設備已經廣泛地流行。
[0005]作為此類存儲設備,存儲卡是已知的。此外,已經知道具有禁止對卡進行訪問的鎖定(lock)功能的存儲卡。然而,根據常規鎖定功能,在鎖定狀態中,根本不能讀取存儲區,以及因此已經存在以下問題:存儲卡不被不支持鎖定功能的主機裝置識別。此外,甚至支持鎖定功能的主機裝置不能訪問存儲卡,直到鎖定狀態被釋放,以及因此不能區分:不能訪問是由于鎖定狀態還是由于錯誤。為了管理鎖定狀態,需要特定實用工具(utility)。因此,在主機裝置中,已經難于管理處于鎖定狀態中的卡的處理。
【附圖說明】
[0006]圖1是根據一個實施例的存儲系統的框圖;
[0007]圖2是根據一個實施例的存儲系統的存儲空間的概念圖;
[0008]圖3和圖4是根據一個實施例的存儲卡的狀態轉移圖;
[0009]圖5是根據一個實施例的存儲系統的框圖;
[0010]圖6是根據一個實施例的示出存儲卡的操作的流程圖;
[0011]圖7是根據一個實施例的示出配置模式的功能的圖;
[0012]圖8是根據一個實施例的示出在“設置用戶密鑰”功能的執行期間主機裝置的操作的流程圖;
[0013]圖9是根據一個實施例的示出在“設置用戶密鑰”功能的執行期間存儲卡的操作的流程圖;
[0014]圖10是根據一個實施例的示出在“設置用戶密鑰”功能的執行期間的操作的流程圖;
[0015]圖11是根據一個實施例的示出在“設置用戶密鑰”功能的執行期間的操作的流程圖;
[0016]圖12是根據一個實施例的示出在“清除/驗證用戶密鑰”功能和“啟用/禁用密鑰加密”的執行期間主機裝置的操作的流程圖;
[0017]圖13是根據一個實施例的示出在“清除/驗證用戶密鑰”功能的執行期間存儲卡的操作的流程圖;
[0018]圖14是根據一個實施例的示出在“清除用戶密鑰”功能的執行期間的操作的流程圖;
[0019]圖15是根據一個實施例的示出在“清除用戶密鑰”功能的執行期間的操作的流程圖;
[0020]圖16是根據一個實施例的示出在“啟用/禁用密鑰加密”的執行期間存儲卡的操作的流程圖;
[0021]圖17是根據一個實施例的示出在“啟用/禁用配置模式”的執行期間存儲卡的操作的流程圖;
[0022]圖18是根據一個實施例的解鎖操作的流程圖;
[0023]圖19是根據一個實施例的在主機裝置中的解鎖操作的流程圖;
[0024]圖20是根據一個實施例的在存儲卡中的解鎖操作的流程圖;
[0025]圖21至圖24是根據一個實施例的解鎖操作的流程圖;
[0026]圖25是根據一個實施例的在主機裝置中的鎖定操作的流程圖;
[0027]圖26是根據一個實施例的在存儲卡中的鎖定操作的流程圖;
[0028]圖27是根據一個實施例的存儲系統的示意圖;
[0029]圖28至圖33是根據一個實施例的存儲系統的示意圖;
[0030]圖34是根據一個實施例的修改的存儲系統的框圖;
[0031]圖35是根據一個實施例的修改的存儲卡的局部區域的框圖;以及
[0032]圖36是根據一個實施例的修改的示出存儲卡的操作的流程圖。
【具體實施方式】
[0033]—般地,根據一個實施例,設備包含半導體存儲器和控制器。半導體存儲器包含:從外部可以訪問的第一區域和第二區域。控制器控制半導體存儲器。該設備包含:解鎖狀態,在解鎖狀態中從第一區域和第二區域的讀取被允許,以及鎖定狀態,在鎖定狀態中從第一區域被允許以及從第二區域的讀取被禁止。第一區域存儲文件系統信息的至少一部分。在鎖定狀態中,能夠從外部讀取文件系統信息的至少一部分。
[0034]將描述根據一個實施例的設備、主機裝置、主機系統和存儲系統。在下文中,將作為示例來描述包含存儲卡和訪問該存儲卡的主機裝置的存儲系統。此外,在該描述中,將作為示例來描述存儲卡是SD存儲卡的實例。
[0035]1.系統結構
[0036]首先,將參照圖1來描述主機裝置和存儲卡的結構。圖1是根據本實施例的示出存儲系統的硬件結構的框圖。
[0037]1.1主機裝置的結構
[0038]首先,將參照圖1來描述主機裝置的結構。如在該圖中示出的,主機裝置1包含:微處理單元(MPU)ll、主機接口(例如,SD?接口)電路12、只讀存儲器(ROM) 14、隨機存取存儲器(RAM) 13等。ROM 14包含:存儲設備,諸如硬盤,其使得能夠一般寫入,以及ROM尤其不受硬件的類型限制。
[0039]MPU 11控制主機裝置1的整體操作。當主機裝置1得到電力供應時,存儲在ROM14中的固件(控制程序(命令))被讀取到RAM 13上。然后,MPU 11根據該固件(命令)執行預定處理。此外,MPU 11執行在RAM 13和ROM 14中保存的程序15,從而實現各種功能。程序15包含各種應用軟件、操作系統、文件系統等。此外,程序15包含:管理實用工具,其用于準備隨后描述的用戶密鑰。
[0040]主機接口電路12管理在這個電路和存儲卡2之間的通信協議。主機接口電路12根據在主機裝置1和存儲卡2之間執行通信所要求的各種協定進行操作,以及包括各種命令集,它們可以與隨后描述的存儲卡2的主機接口 41互相地通信。
[0041]1.2存儲卡的結構
[0042]接著,將參照圖1繼續描述存儲卡2的結構。如在該圖中示出的,存儲卡2包含NAND閃速存儲器31和控制器32。
[0043]NAND閃速存儲器31以非易失性的方式存儲數據。NAND閃速存儲器31在被稱為頁面的單元中寫入或讀取數據,頁面包含多個存儲單元。固有的物理地址被分配給每個頁面。此外,NAND閃速存儲器31擦除在被稱為塊的單元中的數據,塊包含多個頁面。注意的是,物理地址可以被分配給塊單元。
[0044]控制器32響應于來自主機裝置1的請求,指令NAND閃速存儲器31來寫入、讀取和擦除數據。此外,控制器32管理在NAND閃速存儲器31中的數據的存儲狀態。存儲狀態的管理包含:在邏輯地址和物理地址之間的關系的管理,以及特定物理地址頁面(或塊)是否處于擦除狀態(一種狀態,其中什么也沒被寫入或無效數據被保存)中的管理。
[0045]如在圖1中示出的,控制器32包含:主機接口電路41、MPU 42、RAM 44、ROM 43以及NAND接口電路45。
[0046]主機接口電路41控制在存儲卡2和主機裝置1之間的通信。更具體地,主機接口電路41控制在該主機接口電路和主機裝置1的主機接口電路12之間的各種命令或數據的傳輸/接收。此外,主機接口電路41包含寄存器46。寄存器46存儲各種信息,從而可以向主機裝置1通知存儲卡2的狀態。例如由MPU 42來設置這個信息。此外,寄存器46存儲從主機裝置1接收的各種信息。
[0047]MPU 42控制存儲卡2的整體操作。當存儲卡2得到電力供應時,存儲在ROM 43中的固件(控制程序(命令))被讀取到RAM 44上。然后,MPU 42根據該固件(命令)執行預定處理。MPU 42根據控制程序在RAM 44上準備各種表,或根據從主機裝置1接收的命令來執行針對NAND閃速存儲器31的預定處理。
[0048]ROM 43存儲由MPU 42控制的控制程序等。RAM 44用作MPU 42的操作區域,以及暫時存儲控制程序或各種表。這些表包含被分配給數據的邏輯地址和頁面的物理地址(數據被存儲在該物理地址中)的轉換表(邏輯地址/物理地址轉換表)。NAND接口電路45執行在控制器32和NAND閃速存儲器31之間的接口處理。
[0049]1.3存儲系統的存儲空間
[0050]接著,將描述以上結構的存儲系統的存儲空間。圖2是示出存儲空間的存儲器映射,可以從存儲卡2的外部來訪問該存儲空間,以及示出了一個示例,在該示例中,存儲空間被文件分配表(FAT)文件系統管理。
[0051]如在該圖中示出的,存儲空間被大致地分成文件系統管理區50和文件系統數據區51。每個區域被分成被稱為簇的單元,并且在簇單元中被控制。文件系統管理區50和文件系統數據區51的組合被稱為數據區。
[0052]管理區50被設置以管理在NAND閃速存儲器31中記錄的文件(數據),以及它保存文件的管理信息。以這種方式來管理在存儲器中記錄的文件(數據)的系統被稱為文件系統。在文件系統中,已經建立了文件、文件夾或諸如此類的目錄信息的準備方法,文件、文件夾或諸如此類的移動方法或刪除方法,數據的記錄系統,管理區的位置或使用方法,以及諸如此類。
[0053]管理區50包含例如啟動扇區、FATUFAT2以及根目錄條目。啟動扇區是存儲啟動信息的區域。啟動扇區包含例如主啟動記錄(MBR)以及B1S參數塊(BPB)。MBR和BPB中的每個是例如512字節區域。FAT1和FAT2存儲特定簇,在特定簇中,數據被存儲。存儲空間是一組空間,每個空間具有被稱為簇的確定的大小。此外,當將被寫入的數據大于簇的大小時,該數據被分成簇單元,并且被存儲在其中。在這種情況下,在FAT中,準備了指示特定簇的簇鏈,在該特定簇中,數據被分割和寫入,從而該數據被管理。注意的是,FAT1和FAT2兩者保存相同值,其使得甚至在FAT1和FAT2中的一個時能夠FAT的恢復。在下文中,FAT1和FAT2將被統稱為FAT。根目錄條目存儲在根目錄上存在的文件的信息。更具體地,連同文件名或文件夾名、文件大小、屬性、文件的更新日期和時間等,特定簇,其是文件的頂部簇,被存儲。當已知頂部簇時,從FAT鏈可以訪問所有數據。
[0054]文件系統數據區51是不同于管理區50的區域,以及在存儲卡中能夠被存儲的數據容量取決于這個區域的大小。此外,該區域保存凈用戶數據或目錄條目。
[0055]1.4鎖定狀態和解鎖狀態
[0056]接著,將參照圖3來描述根據本實施例的能夠由存儲卡2采用的鎖定狀態和解鎖狀態。圖3是存儲卡2的狀態轉移圖,以及尤其示出了在通電后緊接著的狀態,以及在鎖定狀態和解鎖狀態之間的轉移。
[0057]為了使存儲卡進入鎖定狀態,用戶密鑰需要被注冊,以及被要求以執行在鎖定狀態和解鎖狀態之間的轉移。有一種情況,其中密鑰用作由用戶從主機裝置1直接輸入的“口令”,以及一種情況,其中由主機裝置1的管理實用工具來管理密鑰而不需要由用戶輸入口令,因為也可以處理非常長以至于不適于用戶來輸入的密鑰。
[0058]如在圖3中示出的,當存儲卡2連接到主機裝置1并且從主機裝置1向存儲卡2供應電力時,存儲卡2根據用戶密鑰的設置的存在/缺失而采用鎖定狀態和解鎖狀態其中之一。當沒有設置用戶密鑰時,存儲卡2變成在解鎖狀態中。在解鎖狀態中,對存儲卡2的存儲空間的寫入訪問和讀取訪問可以被執行而沒有限制(附帶條件是,有時寫入受ROM卡的使用應用或諸如此類限制)。根據命令來執行存儲卡的控制,以及存儲器訪問命令的示例包含:寫入命令、讀取命令、以及控制命令以控制本實施的鎖定功能。主機裝置1能夠通過使用控制命令將用戶密鑰注冊在存儲卡2中。控制命令作為可執行命令被控制而不管鎖定狀態或解鎖狀態。
[0059]在另一方面,當用戶密鑰被設置到存儲卡2時,存儲卡2變成在鎖定狀態中。在鎖定狀態中,對存儲卡2的寫入訪問被禁止,以及讀取訪問是受限的。例如,可以讀取參照圖2描述的管理區50,更具體地,在文件系統上的信息(例如,在圖2中的FAT1、FAT2和根目錄條目,在下文中其將被稱為文件系統信息),但是當接收到針對不同于管理區50的區域的讀取命令時,拒絕該命令的執行。當接收到寫入命令時,不管該區域,拒絕該命令的執行。
[0060]即使當存儲卡2在鎖定狀態中時,主機裝置1能夠讀取文件系統信息的至少一部分。因此,當讀取文件系統信息時,主機裝置能夠識別存儲卡2為格式化的存儲設備,以及還可以向存儲卡2分配驅動器號。
[0061]例如,在主機裝置1中,當僅讀取在圖35中示出的并且隨后描述的主啟動記錄(MBR)中存儲的信息時,存儲卡2能夠被掛載。在這種情況下,主機裝置1控制存儲卡,使得當該卡在鎖定狀態中時,該卡被示出為空驅動器,以及當該卡在解鎖狀態中時,能夠讀取在該卡中存儲的目錄或文件名。
[0062]在文件系統管理區50和文件系統數據區51之間的邊界取決于文件系統的格式參數,以及因此存儲卡2不需要嚴格地區分該邊界。可以從存儲容量大致地預測管理區50所要求的大小。因此,在鎖定狀態中,例如,可以讀取MBR或BPB,或可以讀取包含管理區50的略微大些的區域。因此,存儲卡2不是必須識別文件系統的格式。
[0063]—般地,當設備被掛載時,要求設備和分區信息的辨識。因此,當在鎖定狀態中能夠最低限度地讀取MBR時,存儲卡2能夠常常被掛載。在存儲卡2被初始化后,能夠通過讀取MID來辨識設備信息。MID是一種類型的卡辨識信息,其被保存在被包含在存儲卡2中的卡辨識(CID)寄存器中。此外,MBR是獲得存儲卡2的分區信息所要求的信息。然而,當事先確定了指示存儲卡2的僅第一分區是有效的規則時,存儲卡2可以被掛載而不讀取MBR。作為能夠讀取在鎖定狀態中的存儲卡2的主機裝置1的一個示例,以下實例能夠被認為是在圖35的存儲系統的實例中的一個示例。也就是說,針對掛載存儲卡2,主機裝置1:
[0064](a)能夠讀取僅MBR,
[0065](b)能夠讀取僅MBR和PBR,
[0066](c)能夠讀取從MBR到FAT,或
[0067](d)能夠讀取從MBR到根目錄條目。
[0068]當在解鎖狀態中的存儲卡2通過使用控制命令執行鎖定操作時,以及當用戶密鑰被注冊時,存儲卡能夠改變到鎖定狀態。此外,當在鎖定狀態中的存儲卡2通過使用控制命令執行解鎖操作時,以及當指定的密鑰匹配注冊的密鑰時,存儲卡能夠改變到解鎖狀態。解鎖操作的示例包含:隨后描述的,使用用戶密鑰的解鎖操作,以及使用主密鑰的解鎖操作。此外,通過根據控制命令擦除包含用戶密鑰的數據的一部分,鎖定狀態也能夠被改變到解鎖狀態。隨后將描述這些操作的細節。
[0069]另外,在存儲卡2中,通過使用控制命令,關于用戶密鑰的各種設置(配置操作)是可執行的。這個配置操作通常在解鎖狀態中是可執行的,但是存儲卡具有配置模式(配置模式),配置模式(配置模式)甚至在鎖定狀態中能夠允許配置操作。也就是說,存儲卡
2(其中,配置模式在開啟狀態中)甚至在鎖定狀態中能夠執行配置操作。隨后將描述配置操作的細節。
[0070]圖4是更詳細地示出鎖定狀態和解鎖狀態的內部狀態的圖。如上所述,如果當通電時用戶密鑰沒有被注冊,則存儲卡2在解鎖狀態中。在解鎖狀態中(在圖4的右面上),配置模式在默認設置中是開啟狀態。此外,主機裝置1通過使用控制命令來執行配置操作以注冊用戶密鑰。在另一方面,如果當通電時用戶密鑰被注冊,則存儲卡2在鎖定狀態中(在圖4的左面上)。存在兩種狀態,其中配置模式是開啟的和關閉的。當配置模式是關閉狀態時,不能執行解鎖操作。
[0071]例如,當存儲卡2,由某一主機裝置1 (主機裝置1-1)將用戶密鑰注冊在存儲卡2中,連接到另一個主機裝置1(主機裝置1-2)時,存儲卡2變成在鎖定狀態中。然而,當由主機裝置1-1將配置模式設置為開啟狀態時,主機裝置1-2可以將用戶密鑰設置到在鎖定狀態中的存儲卡2。以后,當主機裝置1-2將配置模式設置為關閉狀態時,不能執行配置操作。
[0072]用戶密鑰可以被注冊,以及將被注冊的用戶裝置的用戶密鑰可以被注冊至多最大注冊數。在解鎖操作中,當用戶密鑰中的一個用戶密鑰與輸入密鑰匹配時,能夠釋放鎖定狀
??τ ο
[0073]1.5存儲卡的功能塊
[0074]接著,將參照圖5描述存儲卡2的功能框,其尤其聚焦配置操作。圖5是存儲系統的功能框圖。
[0075]1.5.1符號定義
[0076]在解釋功能框之前,用于在本描述中使用的符號被定義如下。
[0077](i)通常的密鑰符號的定義
[0078]籲Ku (用戶密鑰):由用戶設置的密鑰
[0079].Km(主密鑰):在出廠(shipping)時被設置的并且具有高優先級的密鑰
[0080].Kcp (卡公開密鑰):卡RSA密碼的公開密鑰[0081 ].Kcs (卡秘密密鑰):卡RSA密碼的秘密密鑰
[0082].Ccx(密碼代碼,X = g或h):指示用于使用的密碼系統和算法的代碼
[0083]籲Nr:隨機數
[0084](ii)轉換函數的類型和記號
[0085]#F():用于在閃速存儲器中存儲的密碼函數
[0086]編碼:Kuf= F(Ku,〃Enc")
[0087]解碼:Ku= F (Kuf, "Dec")
[