存儲(chǔ)裝置、控制器以及數(shù)據(jù)寫(xiě)入方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲(chǔ)裝置、控制器以及數(shù)據(jù)寫(xiě)入方法。
【背景技術(shù)】
[0002]存在通過(guò)使用AES (Advanced Encrypt1n Standard:高級(jí)加密標(biāo)準(zhǔn))等方式將數(shù)據(jù)加密后進(jìn)行存儲(chǔ)來(lái)防止所存儲(chǔ)的數(shù)據(jù)的丟失、泄漏的存儲(chǔ)裝置(例如硬盤(pán)驅(qū)動(dòng)器)。另夕卜,也存在能夠?qū)υ跀?shù)據(jù)的加密和解密中所使用的密鑰進(jìn)行適當(dāng)更新的存儲(chǔ)裝置。通過(guò)使密鑰可更新,能夠進(jìn)一步提高安全性。例如,通過(guò)在將不要的存儲(chǔ)裝置廢棄時(shí)更新密鑰,能夠防止從廢棄的存儲(chǔ)裝置泄漏信息。
[0003]在能夠更新密鑰的結(jié)構(gòu)的存儲(chǔ)裝置中,存在將在對(duì)數(shù)據(jù)進(jìn)行加密時(shí)所使用的密鑰的信息(以下稱(chēng)為密鑰信息)附加于數(shù)據(jù)(已加密狀態(tài)的數(shù)據(jù))并存儲(chǔ)的存儲(chǔ)裝置。密鑰信息用于判別在讀取數(shù)據(jù)時(shí)的解密中所使用的密鑰是否正確。在密鑰錯(cuò)誤的情況下不能正確進(jìn)行解密,從存儲(chǔ)裝置輸出無(wú)意義的數(shù)據(jù)。此時(shí),有可能發(fā)生在使用所輸出的數(shù)據(jù)的主機(jī)側(cè)無(wú)法判別是否正確進(jìn)行了解密而成為問(wèn)題的情形。例如,有可能存在受理了未被正確解密的數(shù)據(jù)的主機(jī)會(huì)進(jìn)行誤動(dòng)作等主機(jī)的動(dòng)作變得不穩(wěn)定的情況。假設(shè)這樣的情況下,存儲(chǔ)裝置使用密鑰信息來(lái)判斷解密處理中使用的密鑰是否正確。密鑰信息例如是表示隨著密鑰被更新而值增加的密鑰的世代的信息。
[0004]為了避免該密鑰信息這樣的用戶(hù)數(shù)據(jù)以外的數(shù)據(jù)使用存儲(chǔ)裝置的用戶(hù)數(shù)據(jù)的存儲(chǔ)區(qū)域,周知通過(guò)將密鑰信息與用戶(hù)數(shù)據(jù)的錯(cuò)誤信息部等進(jìn)行異或(XOR)來(lái)共用存儲(chǔ)區(qū)域的方法。然而,在將密鑰信息附加(XOR)于數(shù)據(jù)來(lái)存儲(chǔ)的情況下,當(dāng)讀取數(shù)據(jù)時(shí),難以檢測(cè)出附加于數(shù)據(jù)的密鑰信息的錯(cuò)誤。因此,在解密所使用的密鑰的正誤判定中會(huì)產(chǎn)生錯(cuò)誤,有時(shí)會(huì)導(dǎo)致成為盡管使用了正確的密鑰、但卻無(wú)法讀取數(shù)據(jù)等動(dòng)作變得不穩(wěn)定的情況。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于抑制因密鑰信息的錯(cuò)誤引起的誤動(dòng)作,并提高裝置的可靠性。
[0006]根據(jù)本實(shí)施方式,提供一種存儲(chǔ)裝置,具備:緩沖器,其保存作為加密后的數(shù)據(jù)的加密數(shù)據(jù);檢錯(cuò)碼生成部,其生成加密數(shù)據(jù)的檢錯(cuò)碼;密鑰信息生成部,其生成作為在加密數(shù)據(jù)的加密中所使用的密鑰的信息的密鑰信息;保護(hù)碼生成部,其生成作為密鑰信息的檢錯(cuò)碼的保護(hù)碼;密鑰信息添加部,其將密鑰信息及所護(hù)碼添加于檢錯(cuò)碼,并作為冗余數(shù)據(jù)附加于加密數(shù)據(jù);以及介質(zhì),其對(duì)附加有冗余數(shù)據(jù)的加密數(shù)據(jù)進(jìn)行存儲(chǔ)。
【附圖說(shuō)明】
[0007]圖1是表示本實(shí)施方式涉及的存儲(chǔ)裝置的結(jié)構(gòu)例。
[0008]圖2是表示圖1的存儲(chǔ)裝置所具備的加密處理部的結(jié)構(gòu)例的圖。
[0009]圖3是表示圖1的存儲(chǔ)裝置所具備的寫(xiě)入處理部和讀取處理部的結(jié)構(gòu)例的圖。
[0010]圖4是表示本實(shí)施方式涉及的冗余數(shù)據(jù)的生成方法的圖。
[0011]圖5是表示圖1的存儲(chǔ)裝置所具備的寫(xiě)入處理部的動(dòng)作的圖。
[0012]圖6是表示本實(shí)施方式涉及的檢錯(cuò)碼與冗余數(shù)據(jù)的異或的圖。
[0013]圖7是表示圖1的存儲(chǔ)裝置所具備的讀取處理部的動(dòng)作的圖。
【具體實(shí)施方式】
[0014]以下參照附圖對(duì)實(shí)施方式涉及的存儲(chǔ)裝置、控制器以及數(shù)據(jù)寫(xiě)入方法進(jìn)行詳細(xì)說(shuō)明。此外,本發(fā)明并不由該實(shí)施方式所限定。
[0015](實(shí)施方式)
[0016]圖1是表示本實(shí)施方式涉及的存儲(chǔ)裝置I的結(jié)構(gòu)例的圖。存儲(chǔ)裝置I具備:控制器10、將在與外部的主機(jī)裝置2之間授受的數(shù)據(jù)等暫時(shí)保存的作為緩沖器的SDRAM20、存儲(chǔ)數(shù)據(jù)的介質(zhì)(MEDIA) 30、密鑰存儲(chǔ)器40、ROM (Read Only Memory:只讀存儲(chǔ)器)50、以及RAM (Random Access Memory:隨機(jī)讀取存儲(chǔ)器)60。該控制器10包括I/F (接口)控制部11、SDRAM調(diào)停部12、命令控制部13、MEDIA (介質(zhì))調(diào)停部14、加密處理部15、寫(xiě)入處理部16、讀取處理部17以及MPU (Micro Processing Unit:微處理單元)18,對(duì)存儲(chǔ)裝置I內(nèi)的各部進(jìn)行控制。在圖1中,將與存儲(chǔ)裝置I連接的主機(jī)裝置2設(shè)為I臺(tái),但也有可能存在多臺(tái)的情況。例如,也能夠設(shè)為如下方式:存儲(chǔ)裝置I連接于通信網(wǎng)絡(luò),經(jīng)由通信網(wǎng)絡(luò)連接有多個(gè)主機(jī)裝置。
[0017]在控制器10中,I/F控制部11在與主機(jī)裝置2之間進(jìn)行各種命令、數(shù)據(jù)的授受。SDRAM調(diào)停部12對(duì)由控制器10內(nèi)的各部進(jìn)行的向SDRAM20的訪(fǎng)問(wèn)動(dòng)作進(jìn)行調(diào)停,進(jìn)行對(duì)SDRAM20的數(shù)據(jù)的寫(xiě)入、讀取、刪除等。命令控制部13在其與主機(jī)裝置2之間收發(fā)各種命令,并且進(jìn)行按照所接收到的命令的處理。例如,在接收到指示數(shù)據(jù)的寫(xiě)入的命令的情況下,向控制器10內(nèi)的各部發(fā)出指示,以執(zhí)行用于將與命令一起接收到的數(shù)據(jù)寫(xiě)入到介質(zhì)30的處理。MEDIA調(diào)停部14對(duì)由控制器10內(nèi)的各部進(jìn)行的向介質(zhì)30的訪(fǎng)問(wèn)動(dòng)作進(jìn)行調(diào)停,進(jìn)行對(duì)介質(zhì)30的數(shù)據(jù)的寫(xiě)入、讀取、刪除等。加密處理部15對(duì)從主機(jī)裝置2受理的數(shù)據(jù)進(jìn)行加密并存儲(chǔ)到SDRAM20。另外,在向主機(jī)裝置2輸出的數(shù)據(jù)已存儲(chǔ)于SDRAM20的情況下將該數(shù)據(jù)取出并進(jìn)行解密。寫(xiě)入處理部16對(duì)SDRAM20保存的數(shù)據(jù)(以下稱(chēng)為實(shí)際數(shù)據(jù))附加冗余數(shù)據(jù)而寫(xiě)入到介質(zhì)30。冗余數(shù)據(jù)是SDRAM20保存的實(shí)際數(shù)據(jù)的檢錯(cuò)碼等。關(guān)于冗余數(shù)據(jù)的詳細(xì)說(shuō)明將在后面描述。讀取處理部17將寫(xiě)入到介質(zhì)30中的數(shù)據(jù)(附加有冗余數(shù)據(jù)的實(shí)際數(shù)據(jù))讀取并進(jìn)行實(shí)際數(shù)據(jù)的錯(cuò)誤檢查等,如果沒(méi)有問(wèn)題則將實(shí)際數(shù)據(jù)存儲(chǔ)到SDRAM20。MPU18通過(guò)將R0M50所存儲(chǔ)的程序在RAM60中展開(kāi)并執(zhí)行來(lái)控制控制器10內(nèi)的各部。
[0018]此外,在圖1所示的結(jié)構(gòu)例中,加密處理部15存在于控制器10的內(nèi)部,但也可以是加密處理部15存在于控制器10的外部。
[0019]密鑰存儲(chǔ)器40對(duì)在由加密處理部15進(jìn)行的數(shù)據(jù)的加密處理以及解密處理中所使用的密鑰41進(jìn)行保存。例如在從主機(jī)裝置2接收到變更指示的情況下更新密鑰41。對(duì)于密鑰的更新方法(新的密鑰的生成方法)并沒(méi)有限制。在本實(shí)施方式中,將密鑰存儲(chǔ)器40和介質(zhì)30設(shè)為分開(kāi)的結(jié)構(gòu),當(dāng)然也可以將用于存儲(chǔ)密鑰41的區(qū)域設(shè)置在介質(zhì)30內(nèi)。另夕卜,密鑰存儲(chǔ)器40設(shè)于RAM60的一部分也是可以的。R0M50對(duì)用于使存儲(chǔ)裝置I動(dòng)作的程序、各種信息進(jìn)行保存。RAM60作為R0M50所存儲(chǔ)的程序、信息的展開(kāi)用存儲(chǔ)器以及作業(yè)用存儲(chǔ)器而使用。
[0020]接著,對(duì)控制器10具備的加密處理部15、寫(xiě)入處理部16以及讀取處理部17進(jìn)行說(shuō)明。圖2是表示加密處理部15的結(jié)構(gòu)例的圖,圖3是表示寫(xiě)入處理部16以及讀取處理部17的結(jié)構(gòu)例的圖。此外,為了便于說(shuō)明,在圖3中也記載了與寫(xiě)入處理部16以及讀取處理部17的動(dòng)作相關(guān)聯(lián)的構(gòu)成要素。
[0021][加密處理部15]
[0022]如圖2所示,加密處理部15具備加密部151、解密部152以及密鑰更新部153。
[0023]加密部151受理向介質(zhì)30寫(xiě)入的數(shù)據(jù)并進(jìn)行加密。在加密處理中使用密鑰存儲(chǔ)器40保存的密鑰41。當(dāng)加密結(jié)束時(shí),將已加密狀態(tài)的數(shù)據(jù)作為向介質(zhì)30寫(xiě)入的實(shí)際數(shù)據(jù)而存儲(chǔ)到SDRAM20。
[0024]解密部152取出讀取處理部17從介質(zhì)30讀取并存儲(chǔ)到SDRAM20的實(shí)際數(shù)據(jù),使用密鑰41進(jìn)行解密。
[0025]例如,加密部151進(jìn)行加密的數(shù)據(jù)是從主機(jī)裝置2受理的數(shù)據(jù)(寫(xiě)入數(shù)據(jù)),解密部152進(jìn)行解密的實(shí)際數(shù)據(jù)是向主機(jī)裝置2輸出的數(shù)據(jù)(讀取數(shù)據(jù))。
[0026]密鑰更新部153例如在從主機(jī)裝置2接收到變更指示的情況下,對(duì)由密鑰存儲(chǔ)器40保存的密鑰41進(jìn)行更新。對(duì)于密鑰的更新方法(新的密鑰的生成方法)并沒(méi)有限制。
[0027][寫(xiě)入處理部16]
[0028]如圖3所示,寫(xiě)入處理部16具備檢錯(cuò)碼生成部161、密鑰管理信息保存部162、密鑰信息生成部163、保護(hù)碼生成部164以及密鑰信息添加部165。
[0029]檢錯(cuò)碼生成部161經(jīng)由SDRAM調(diào)停部12取出SDRAM20所存儲(chǔ)的實(shí)際數(shù)據(jù),生成所取出的實(shí)際數(shù)據(jù)的檢錯(cuò)碼。例如,生成CRC(Cyclic Redundancy Check:循環(huán)冗余檢查)作為檢錯(cuò)碼。此外,檢錯(cuò)碼生成部161從SDRAM20取出的實(shí)際數(shù)據(jù)通過(guò)圖2所示的加密部151來(lái)加密。所生成的檢錯(cuò)碼與實(shí)際數(shù)據(jù)一起交付給密鑰信息添加部165。
[0030]密鑰管理信息保存部162對(duì)在加密部151的加密處理中所使用的密鑰的管理信息進(jìn)行保存。當(dāng)圖2所示的密鑰41被更新時(shí),密鑰管理信息保存部162保存的管理信息隨之被更新。例如,在更新了密鑰41的情況下,加密處理部15將該意思通知給寫(xiě)入處理部16,寫(xiě)入處理部16對(duì)由密鑰管理信息保存部162保存的管理信息進(jìn)行更新。管理信息例如是表示密鑰的世代的信息(以下稱(chēng)為密鑰世代信息)。例如,密鑰世代信息是