安全數(shù)據(jù)儲(chǔ)存裝置、系統(tǒng)及其數(shù)據(jù)寫(xiě)入與讀取方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明主要是有關(guān)于一安全數(shù)據(jù)儲(chǔ)存裝置及其方法,特別是有關(guān)于允許讀取和寫(xiě)入操作的一安全數(shù)據(jù)儲(chǔ)存裝置、系統(tǒng)及其數(shù)據(jù)寫(xiě)入與讀取方法。
【背景技術(shù)】
[0002]非揮發(fā)性(non-volatile)存儲(chǔ)器或非揮發(fā)性?xún)?chǔ)存裝置為即使在未被提供電源時(shí),仍保留儲(chǔ)存信息的電腦存儲(chǔ)器。舉例來(lái)說(shuō),非揮發(fā)性存儲(chǔ)器包括:只讀存儲(chǔ)器(Read-onlymemory,ROM)、快閃存儲(chǔ)器(flash memory)、鐵電隨機(jī)存取存儲(chǔ)器(Ferroelectric RandomAccess Memory ,F-RAM),以及不同類(lèi)性的磁性電腦儲(chǔ)存裝置,例如:硬盤(pán)、軟盤(pán)、磁帶(magnetic tape)以及光盤(pán)(optical discs)。非揮發(fā)性存儲(chǔ)器在傳統(tǒng)上是使用在長(zhǎng)期且持續(xù)的儲(chǔ)存。
[0003]快閃存儲(chǔ)器裝置是電子非揮發(fā)性電腦儲(chǔ)存媒體,其允許存取或讀取儲(chǔ)存的數(shù)據(jù)、寫(xiě)入新的數(shù)據(jù)以及抹除儲(chǔ)存的數(shù)據(jù)。在近年來(lái),由于大的存儲(chǔ)器空間以及快速的重寫(xiě)速度的壓倒性的優(yōu)勢(shì),快閃存儲(chǔ)器在非揮發(fā)性存儲(chǔ)器市場(chǎng)中扮演了一個(gè)重要的角色??扉W存儲(chǔ)器被使用在許多不同應(yīng)用中,舉例來(lái)說(shuō),在通用串列匯流排(Universal Serial Bus,USB)中,應(yīng)用于個(gè)人信息的儲(chǔ)存,或嵌入一信用卡中或禮物卡中,以進(jìn)行金融支付或業(yè)務(wù)。
[0004]快閃存儲(chǔ)器技術(shù)允許在儲(chǔ)存裝置中寫(xiě)入“O”至任何實(shí)體位地址,以及當(dāng)要抹除包含多位的區(qū)塊時(shí),將這些值設(shè)定為“I”。儲(chǔ)存的數(shù)據(jù)在各種裝置使用的情況間,可維持完整性。然而,竄改這類(lèi)裝置所儲(chǔ)存的數(shù)據(jù)可能相對(duì)地簡(jiǎn)單,舉例來(lái)說(shuō),通過(guò)紫外光或X光照射裝置的儲(chǔ)存部分。對(duì)于一些快閃存儲(chǔ)器的應(yīng)用上,例如:金融業(yè)務(wù),儲(chǔ)存在安全儲(chǔ)存裝置的數(shù)據(jù)不被輕易地竄改是非常重要的事。這樣的竄改將會(huì)修改儲(chǔ)存的數(shù)據(jù),而使得詐騙容易進(jìn)行,舉例來(lái)說(shuō),若一預(yù)付禮物卡已遭受竄改,可能會(huì)使得在快閃存儲(chǔ)器裝置上會(huì)一直顯示禮物卡還有余額,然而,事實(shí)上禮物卡的余額已經(jīng)歸零。
[0005]因此,提供例如基于快閃存儲(chǔ)器的有效率的數(shù)據(jù)儲(chǔ)存與重寫(xiě)的安全儲(chǔ)存裝置,并改善其數(shù)據(jù)的安全性和完整性,以及防止儲(chǔ)存在裝置的數(shù)據(jù)遭受竄改,將會(huì)是一更理想的情況。
【發(fā)明內(nèi)容】
[0006]有鑒于上述先前技術(shù)的問(wèn)題,本發(fā)明提供了一種安全數(shù)據(jù)儲(chǔ)存裝置、系統(tǒng)及其數(shù)據(jù)寫(xiě)入與讀取方法,可防止所儲(chǔ)存的數(shù)據(jù)遭受竄改。
[0007]根據(jù)本發(fā)明的一實(shí)施例提供了用以防止儲(chǔ)存的數(shù)據(jù)遭受竄改的一安全數(shù)據(jù)儲(chǔ)存裝置。上述安全數(shù)據(jù)儲(chǔ)存裝置包括用以?xún)?chǔ)存數(shù)據(jù)的一二維存儲(chǔ)器陣列、金鑰儲(chǔ)存區(qū)域、地址轉(zhuǎn)換單元與位混和單元。存儲(chǔ)器陣列可為一快閃存儲(chǔ)器,其中上述二維存儲(chǔ)器陣列包括一預(yù)定義數(shù)目的數(shù)據(jù)字符。每一上述數(shù)據(jù)字符包括一位集合,且每一上述數(shù)據(jù)字符分別對(duì)應(yīng)到上述二維存儲(chǔ)器陣列的一單一實(shí)體地址。
[0008]上述安全數(shù)據(jù)儲(chǔ)存裝置的金鑰儲(chǔ)存區(qū)域用以?xún)?chǔ)存上述安全數(shù)據(jù)儲(chǔ)存裝置的一金鑰。在一些實(shí)施例中,上述金鑰儲(chǔ)存區(qū)域是上述二維存儲(chǔ)器陣列的一部分,但在另一些實(shí)施例中,上述金鑰儲(chǔ)存區(qū)域是從上述二維存儲(chǔ)器陣列所分隔出來(lái)的一儲(chǔ)存區(qū)域。儲(chǔ)存在上述金鑰儲(chǔ)存區(qū)域的金鑰是一唯一金鑰,例如:為了特定安全數(shù)據(jù)儲(chǔ)存裝置所制訂的金鑰。
[0009]上述安全數(shù)據(jù)儲(chǔ)存裝置更包括一地址轉(zhuǎn)換單元。上述地址轉(zhuǎn)換單元用以轉(zhuǎn)換一邏輯地址至用以指示上述二維存儲(chǔ)器陣列的一位置的一對(duì)應(yīng)的實(shí)體地址。上述地址轉(zhuǎn)換單元是根據(jù)一轉(zhuǎn)換函數(shù)、儲(chǔ)存在上述金鑰儲(chǔ)存區(qū)域的至少一部分的上述金鑰以及上述邏輯地址來(lái)進(jìn)行轉(zhuǎn)換。在一些實(shí)施例中,上述地址轉(zhuǎn)換單元根據(jù)上述金鑰的一第一部分將上述邏輯地址轉(zhuǎn)換為上述實(shí)體地址。
[0010]上述安全數(shù)據(jù)儲(chǔ)存裝置更包括一位混和單元。上述位混和單元用以混和一輸入數(shù)據(jù)字符的位值以取得一混和字符值。上述混和字符值是上述輸入數(shù)據(jù)字符的上述多個(gè)位值的一重新排列結(jié)果,上述位混和單元是根據(jù)一一對(duì)一映射函數(shù)、至少一部分的上述金鑰以及上述輸入數(shù)據(jù)字符的上述邏輯地址來(lái)進(jìn)行混和。上述安全數(shù)據(jù)儲(chǔ)存裝置可電連接至一主機(jī),以接收上述邏輯地址、一讀取指令或一寫(xiě)入指令。在一些實(shí)施例中,上述位混和單元根據(jù)上述金鑰的一第二部分混和上述多個(gè)位值。
[0011]在一些實(shí)施例中,上述位混和單元包括多個(gè)多工器。每一上述多工器具有一預(yù)定義數(shù)量的輸入線以及輸出線,決定哪一輸入線對(duì)應(yīng)到哪一輸出線。每一上述多工器可根據(jù)基于儲(chǔ)存在上述金鑰儲(chǔ)存區(qū)域的上述金鑰(例如:一唯一金鑰)所產(chǎn)生的控制參數(shù),決定哪一輸入線對(duì)應(yīng)到哪一輸出線。上述控制參數(shù)更是根據(jù)上述邏輯地址或上述對(duì)應(yīng)的實(shí)體地址所產(chǎn)生。
[0012]上述安全數(shù)據(jù)儲(chǔ)存裝置會(huì)電連接至一主機(jī)或一控制單元。在一些實(shí)施例中,安全數(shù)據(jù)儲(chǔ)存裝置和主機(jī)為一單一實(shí)體。
[0013]根據(jù)本發(fā)明的一些實(shí)施例提供了一寫(xiě)入數(shù)據(jù)至一安全數(shù)據(jù)儲(chǔ)存裝置的方法。上述安全數(shù)據(jù)儲(chǔ)存裝置包括一存儲(chǔ)器陣列以及一金鑰,且上述安全數(shù)據(jù)儲(chǔ)存裝置電連接至一主機(jī)。上述方法包括,從電連接至上述安全數(shù)據(jù)儲(chǔ)存裝置的一主機(jī)接收一寫(xiě)入指令,上述寫(xiě)入指令包括一數(shù)據(jù)字符的一邏輯地址以及一輸入數(shù)據(jù)字符;以及根據(jù)上述邏輯地址以及根據(jù)至少一部分的上述金鑰,轉(zhuǎn)換上述邏輯地址至上述存儲(chǔ)器陣列的一對(duì)應(yīng)的實(shí)體地址。上述轉(zhuǎn)換的操作是根據(jù)一預(yù)定義轉(zhuǎn)換函數(shù)來(lái)執(zhí)行。上述方法更包括,根據(jù)上述邏輯地址以及根據(jù)至少一部分的上述金鑰,計(jì)算一混和字符值。上述計(jì)算的操作更包括重新排列上述輸入數(shù)據(jù)字符的多個(gè)位值。上述方法更包括,寫(xiě)入上述混和字符值至上述存儲(chǔ)器陣列中對(duì)應(yīng)上述實(shí)體地址的一位置。
[0014]在一些實(shí)施例中,計(jì)算上述混和數(shù)據(jù)字符是通過(guò)多個(gè)多工器來(lái)執(zhí)行,每一上述多工器具有一預(yù)定義數(shù)量的輸入線以及輸出線,其中上述方法更包括:根據(jù)儲(chǔ)存在上述安全數(shù)據(jù)儲(chǔ)存裝置的一金鑰儲(chǔ)存區(qū)域的上述金鑰所產(chǎn)生的控制參數(shù),決定哪一輸入線對(duì)應(yīng)到哪一輸出線。
[0015]在一些實(shí)施例中,根據(jù)上述邏輯地址或上述對(duì)應(yīng)的實(shí)體地址計(jì)算上述控制參數(shù)。
[0016]在一些實(shí)施例中,上述方法更包括:在每一特定數(shù)據(jù)儲(chǔ)存裝置儲(chǔ)存所制訂的一唯一金鑰。
[0017]根據(jù)本發(fā)明的一些實(shí)施例提供了一從一安全數(shù)據(jù)儲(chǔ)存裝置讀取數(shù)據(jù)的方法。上述安全數(shù)據(jù)儲(chǔ)存裝置包括一存儲(chǔ)器陣列以及一金鑰,且上述安全數(shù)據(jù)儲(chǔ)存裝置電連接至一主機(jī)。上述方法包括:從電連接至上述安全數(shù)據(jù)儲(chǔ)存裝置的一主機(jī)接收一讀取指令,上述讀取指令包括一數(shù)據(jù)字符的一邏輯地址;以及根據(jù)上述邏輯地址以及根據(jù)至少一部分的上述金鑰,轉(zhuǎn)換上述邏輯地址至上述存儲(chǔ)器陣列的一對(duì)應(yīng)的實(shí)體地址。上述轉(zhuǎn)換的操作是根據(jù)一預(yù)定義轉(zhuǎn)換函數(shù)來(lái)執(zhí)行。上述方法更包括,從上述存儲(chǔ)器陣列中對(duì)應(yīng)上述實(shí)體地址的一位置讀取一混和字符值;以及根據(jù)上述邏輯地址以及根據(jù)至少一部分的上述金鑰,產(chǎn)生一輸出字符值。上述產(chǎn)生的操作更包括,重新排列上述混和字符值的多個(gè)位值,以取得還原的數(shù)據(jù)字符值。上述方法更包括,提供上述輸出字符值至上述主機(jī)。
[0018]根據(jù)本發(fā)明的一實(shí)施例提供了一數(shù)據(jù)儲(chǔ)存系統(tǒng)。上述數(shù)據(jù)儲(chǔ)存系統(tǒng)包括一安全數(shù)據(jù)儲(chǔ)存裝置以及一主機(jī),且上述安全數(shù)據(jù)儲(chǔ)存裝置電連接至上述主機(jī),以自上述主機(jī)接收一邏輯地址與一指令。上述主機(jī)傳送一輸入數(shù)據(jù)字符的上述邏輯地址與上述指令,其中上述指令是選自一讀取指令、一寫(xiě)入指令或一抹除指令;上述安全數(shù)據(jù)儲(chǔ)存裝置包括:一二維存儲(chǔ)器陣列,用以?xún)?chǔ)存數(shù)據(jù),其中上述二維存儲(chǔ)器陣列包括一預(yù)定義數(shù)目的數(shù)據(jù)字符,每一上述數(shù)據(jù)字符包括一位集合,每一上述數(shù)據(jù)字符分別對(duì)應(yīng)到上述二維存儲(chǔ)器陣列的一單一實(shí)體地址;一金鑰儲(chǔ)存區(qū)域,用以?xún)?chǔ)存上述安全數(shù)據(jù)儲(chǔ)存裝置的一金鑰;一地址轉(zhuǎn)換單元,用以轉(zhuǎn)換上述邏輯地址至用以指示上述二維存儲(chǔ)器陣列的一位置的一對(duì)應(yīng)的實(shí)體地址,其中上述地址轉(zhuǎn)換單元是根據(jù)一轉(zhuǎn)換函數(shù)、儲(chǔ)存在上述金鑰儲(chǔ)存區(qū)域的至少一部分的上述金鑰以及上述邏輯地址來(lái)進(jìn)行轉(zhuǎn)換;以及一位混和單元,用以混和一輸入數(shù)據(jù)字符的位值以取得一混和字符數(shù)據(jù),其中上述混和字符數(shù)據(jù)是上述輸入數(shù)據(jù)字符的上述位值的一重新排列,上述位混和單元是根據(jù)一一對(duì)一映射函數(shù)、至少一部分的上述金鑰以及上述輸入數(shù)據(jù)字符的上述邏輯地址來(lái)進(jìn)行混和。在一些實(shí)施例中,上述數(shù)據(jù)儲(chǔ)存系統(tǒng)更包括多個(gè)上