專(zhuān)利名稱(chēng):存儲(chǔ)卡的加密處理器和使用其進(jìn)行數(shù)據(jù)讀寫(xiě)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲(chǔ)卡,并具體地,涉及存儲(chǔ)卡的加密處理器以及利用所述 加密處理器來(lái)讀取和寫(xiě)入數(shù)據(jù)的方法。
背景技術(shù):
存儲(chǔ)卡被使用在數(shù)字設(shè)備中用于讀寫(xiě)信息。數(shù)字設(shè)備的例子如數(shù)字照相 機(jī)、個(gè)人數(shù)字助理(PDA)、便攜式音樂(lè)播放器、移動(dòng)電話、個(gè)人計(jì)算機(jī)等。 存儲(chǔ)卡典型地包括兩個(gè)芯片,如閃存和控制芯片。例如,最近被嵌入到傳統(tǒng) 存儲(chǔ)卡中的閃存具有相對(duì)高的容量存儲(chǔ)能力。典型地,存儲(chǔ)卡將來(lái)自數(shù)字設(shè)備的數(shù)據(jù)存儲(chǔ)在未加密的閃存中。但是, 閃存可以通過(guò)監(jiān)視控制芯片和閃存之間的總線而被轉(zhuǎn)存,并且所述數(shù)據(jù)可被 容易地截取。相應(yīng)地,控制芯片可以包括加密處理器來(lái)加密所述將要存儲(chǔ)到 閃存的預(yù)定數(shù)據(jù)。典型地,加密處理器首先加密預(yù)定數(shù)據(jù),并且在先進(jìn)先出(FIFO)存儲(chǔ) 器的預(yù)定單元中存儲(chǔ)所述預(yù)定的加密數(shù)據(jù)。計(jì)算在所述FIFO存儲(chǔ)器中存儲(chǔ) 的數(shù)據(jù)的糾錯(cuò)碼(ECC)值,并將其存儲(chǔ)到所述閃存。此外,在解碼所述預(yù) 定的已加密數(shù)據(jù)時(shí),閃存接口從所述閃存讀取所述預(yù)定的已加密數(shù)據(jù),并且 將所述預(yù)定的已加密數(shù)據(jù)存儲(chǔ)到FIFO存儲(chǔ)器。中央處理單元(CPU)從所 述FIFO存儲(chǔ)器中讀取所述預(yù)定的已加密數(shù)據(jù)并且將所述預(yù)定的已加密數(shù)據(jù) 遞送到內(nèi)部存儲(chǔ)器,如隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)、電可擦除可編程只讀存儲(chǔ) 器(EEPROM)或者NOR閃存。這里,所述加密處理器解碼存儲(chǔ)在所述內(nèi) 部存儲(chǔ)器中的所述預(yù)定的已加密數(shù)據(jù),從而可以獲取所需的數(shù)據(jù)。不過(guò),典 型地所述加密處理器在加密或解碼所述數(shù)據(jù)時(shí)花費(fèi)相對(duì)長(zhǎng)的時(shí)間。此外,CPU也可以變?yōu)檫^(guò)載。 發(fā)明內(nèi)容本發(fā)明一方面提供了存儲(chǔ)卡的加密處理器,用于在存儲(chǔ)芯片中存儲(chǔ)已加密的數(shù)據(jù)。所述加密處理器包括先進(jìn)先出(FIFO)存儲(chǔ)器,用于響應(yīng)于第 一信號(hào)而順序輸出預(yù)定的數(shù)據(jù);以及加密密鑰生成器,用于響應(yīng)于第二信號(hào) 而生成預(yù)定的已加密密鑰,并用于響應(yīng)于第三信號(hào)順序輸出所述密鑰。邏輯 運(yùn)算器在數(shù)據(jù)寫(xiě)入操作期間對(duì)從所述FIFO存儲(chǔ)器輸出的預(yù)定的數(shù)據(jù)以及從 所述加密密鑰生成器輸出的密鑰執(zhí)行邏輯運(yùn)算,以便順序加密所述預(yù)定的數(shù) 據(jù)。所述預(yù)定的已加密數(shù)據(jù)被發(fā)送到存儲(chǔ)器接口。此外,控制電路在數(shù)據(jù)寫(xiě) 入操作期間響應(yīng)于寫(xiě)入命令和寫(xiě)入地址而生成所述第 一信號(hào)、第二信號(hào)和第 三信號(hào),所述第二信號(hào)和寫(xiě)入命令同時(shí)生成。所述加密處理器可包括錯(cuò)誤檢測(cè)電路,其用于當(dāng)將所述預(yù)定的已加密數(shù) 據(jù)從所述邏輯運(yùn)算器發(fā)送到所述存儲(chǔ)器接口時(shí),檢測(cè)所述預(yù)定的已加密數(shù)據(jù) 中的錯(cuò)誤。所述錯(cuò)誤檢測(cè)電路可使用糾錯(cuò)碼(ECC)。加密密鑰生成器可使 用數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)。此外,邏輯運(yùn)算器可執(zhí)行XOR運(yùn)算,并且所述密 鑰可以為XOR密鑰。加密密鑰生成器還可包括寄存器,用于存儲(chǔ)所述預(yù) 定的已加密的XOR密鑰;以及XOR密鑰FIFO存儲(chǔ)器,用于臨時(shí)存儲(chǔ)從所 述寄存器接收的所述預(yù)定的已加密的XOR密鑰,并用于響應(yīng)于所述第三信 號(hào)順序輸出預(yù)定的已加密的XOR密鑰。所述加密密鑰生成器可響應(yīng)于第二信號(hào)接收至少一個(gè)初始化密鑰,以生 成已加密的XOR密鑰。當(dāng)所述初始化密鑰相同時(shí),所述加密密鑰生成器可 生成相同的已加密的XOR密鑰。此外,用于加密預(yù)定數(shù)據(jù)的所述初始化密 鑰被用于解碼所述預(yù)定的已加密數(shù)據(jù)。所述加密密鑰生成器可響應(yīng)于第二信 號(hào)初始地接收初始化密鑰,以生成第一XOR密鑰,并且可以接收至少一個(gè) 所述預(yù)定的已加密的XOR密鑰以生成隨后的XOR密鑰。用于加密所述預(yù)定 的數(shù)據(jù)的所述初始化密鑰可存儲(chǔ)在存儲(chǔ)器中。本發(fā)明的又 一 方面提供了存儲(chǔ)卡的加密處理器,用于恢復(fù)存儲(chǔ)在存儲(chǔ)芯 片中的已加密數(shù)據(jù),所述加密處理器包括加密密鑰生成器、邏輯運(yùn)算器以及 控制電路。所述加密密鑰生成器響應(yīng)于第一信號(hào)生成密鑰,并響應(yīng)于第二信 號(hào)順序輸出所述密鑰。邏輯運(yùn)算器在數(shù)據(jù)讀取操作期間,利用從所述加密密
鑰生成器輸出的所述密鑰對(duì)從存儲(chǔ)器接口發(fā)送的預(yù)定的已加密數(shù)據(jù)執(zhí)行邏 輯運(yùn)算,以順序解碼所述預(yù)定的已加密數(shù)據(jù)??刂齐娐吩谒鰯?shù)據(jù)讀取操作 期間響應(yīng)于讀取命令和數(shù)據(jù)讀取地址來(lái)生成所述第 一信號(hào)和第二信號(hào),所述 第一信號(hào)和所述讀取命令同時(shí)生成。本發(fā)明的又一方面提供了存儲(chǔ)卡的加密處理器,所迷存儲(chǔ)卡在存儲(chǔ)芯片中存儲(chǔ)已加密的數(shù)據(jù)。所述加密處理器包括FIFO存儲(chǔ)器,用于響應(yīng)于第 一信號(hào)順序輸出預(yù)定的數(shù)據(jù);加密密鑰生成器,用于響應(yīng)于第二信號(hào)生成預(yù) 定的已加密密鑰,以及用于響應(yīng)于第三信號(hào)順序輸出所述密鑰。所述加密處 理器還包括邏輯運(yùn)算器,用于在數(shù)據(jù)寫(xiě)入操作期間,利用從所述加密密鑰生 成器輸出的所述密鑰對(duì)從所述FIFO存儲(chǔ)器輸出的所述預(yù)定的數(shù)據(jù)執(zhí)行邏輯 運(yùn)算,以順序加密所述預(yù)定的數(shù)據(jù)并將其發(fā)送到存儲(chǔ)器接口。所述邏輯運(yùn)算 器還在數(shù)據(jù)讀取操作期間,利用從所述加密密鑰生成器輸出的所述密鑰對(duì)從 所述存儲(chǔ)器接口接收的所述已加密數(shù)據(jù)執(zhí)行邏輯運(yùn)算,以順序解碼所述預(yù)定 的已加密數(shù)據(jù)并將所述已解碼的數(shù)據(jù)發(fā)送到所述FIFO存儲(chǔ)器。控制電路在 數(shù)據(jù)寫(xiě)入操作期間響應(yīng)于寫(xiě)入命令和寫(xiě)入地址而生成所述第一信號(hào)、第二信 號(hào)和第三信號(hào),并且在所述數(shù)據(jù)讀取操作期間響應(yīng)于讀取命令和讀取地址生 成所述第二信號(hào)和第三信號(hào)。所述第二信號(hào)與所述寫(xiě)入命令或者所述讀取命 令之一同時(shí)生成。所述存儲(chǔ)芯片可包括閃存,并且所述存儲(chǔ)卡包括訂戶(hù)身份 模塊(SIM)卡。本發(fā)明的又一方面提供了分別利用加密密鑰向存儲(chǔ)卡的存儲(chǔ)芯片寫(xiě)入 數(shù)據(jù)并從其讀取的方法,所述加密密鑰用于編碼和解碼數(shù)據(jù)。所述方法包括 同時(shí)生成數(shù)據(jù)寫(xiě)入命令以及用于生成XOR密鑰的信號(hào),以及至少響應(yīng)于所 生成的信號(hào)而生成所述預(yù)定的已加密的XOR密鑰;利用所述預(yù)定的已加密 的XOR密鑰順序?qū)?shù)據(jù)執(zhí)行XOR運(yùn)算,以獲得已加密數(shù)據(jù);以及將所述預(yù) 定的已加密數(shù)據(jù)存儲(chǔ)在存儲(chǔ)芯片中。所述方法還包括同時(shí)生成數(shù)據(jù)讀取命 令以及用于生成所述已加密的XOR密鑰的信號(hào),以及至少響應(yīng)于所生成的 信號(hào)而生成所述預(yù)定的已加密的XOR密鑰;從所述存儲(chǔ)芯片讀取所述已存 儲(chǔ)的已加密數(shù)據(jù);利用所述預(yù)定的已加密的XOR密鑰對(duì)所述預(yù)定的已加密 數(shù)據(jù)順序執(zhí)行XOR運(yùn)算,以獲得對(duì)應(yīng)于所述數(shù)據(jù)的已解碼數(shù)據(jù);以及將所 述已解碼的數(shù)據(jù)發(fā)送到存儲(chǔ)卡的內(nèi)部裝置或者發(fā)送到外部裝置。可以在所述存儲(chǔ)卡中生成數(shù)據(jù)寫(xiě)入命令和寫(xiě)入地址,可以在所述存儲(chǔ)卡
中生成數(shù)據(jù)讀取命令和預(yù)定的已加密的XOR密鑰。將所述預(yù)定的已加密數(shù) 據(jù)存儲(chǔ)在所述存儲(chǔ)芯片上的步驟可包括將數(shù)據(jù)寫(xiě)入命令、寫(xiě)入地址和所述預(yù) 定的已加密數(shù)據(jù)發(fā)送到所述存儲(chǔ)卡,以及讀取所述已存儲(chǔ)的已加密數(shù)據(jù)的步 驟可包括將數(shù)據(jù)讀取命令和數(shù)據(jù)讀取地址發(fā)送到所述存儲(chǔ)卡。可以按照數(shù)據(jù) 單元而在存儲(chǔ)芯片上存儲(chǔ)所述預(yù)定的已加密數(shù)據(jù)化密鑰;以及當(dāng)收到所述數(shù)據(jù)寫(xiě)入命令和數(shù)據(jù)讀取命令時(shí),基于所述初始化 密鑰來(lái)生成所述預(yù)定的已加密的XOR密鑰。所述已加密的XOR密鑰是響應(yīng) 于相同的初始化密鑰而生成的,并且用于加密預(yù)定的數(shù)據(jù)的所述相同初始化 密鑰可被用于解碼所述已存儲(chǔ)的已加密數(shù)據(jù)。所述加密密鑰生成器可以在生 成所述預(yù)定的已加密的XOR密鑰的第一XOR密鑰之后不再接收所述初始化 密鑰,但是可以作為輸入而接收所述預(yù)定的已加密的XOR密鑰的其它XOR 密鑰,以連續(xù)地生成已加密的XOR密鑰??梢詫⑺鲱A(yù)定的已加密的XOR 密鑰存儲(chǔ)到所述加密密鑰生成器的XOR密鑰FIFO中。所述向存儲(chǔ)卡的存儲(chǔ)芯片寫(xiě)入數(shù)據(jù)并從其讀取數(shù)據(jù)的方法還可包括響 應(yīng)于接收數(shù)據(jù)寫(xiě)入命令和所述寫(xiě)入地址而生成第一控制信號(hào)和第二控制信 號(hào)。所述執(zhí)行XOR運(yùn)算的步驟然后可包括響應(yīng)于所述第一控制信號(hào)而從 所述FIFO存儲(chǔ)器輸出數(shù)據(jù);以及響應(yīng)于所述第二控制信號(hào)而從所述預(yù)定的 已加密的XOR密鑰FIFO存儲(chǔ)器輸出預(yù)定的已加密的XOR密鑰。所述方法 還可包括當(dāng)將所述預(yù)定的已加密數(shù)據(jù)傳送到所述存儲(chǔ)芯片時(shí),檢測(cè)數(shù)據(jù)錯(cuò) 誤;以及計(jì)算并存儲(chǔ)對(duì)應(yīng)于所述預(yù)定的已加密數(shù)據(jù)的糾錯(cuò)值??梢允褂玫诙?XOR密鑰在第二數(shù)據(jù)上執(zhí)行所述XOR運(yùn)算,以獲得第 二已加密數(shù)據(jù),而使用第一 XOR密鑰加密的第一已加密數(shù)據(jù)被通過(guò)存儲(chǔ)器 接口而存儲(chǔ)在所述存儲(chǔ)芯片上。此外,所述生成預(yù)定的已加密的XOR密鑰 的步驟還包括根據(jù)所述數(shù)據(jù)讀取命令和所述數(shù)據(jù)讀取地址,從所述存儲(chǔ)器 接口中的存儲(chǔ)芯片讀取所述預(yù)定的已加密數(shù)據(jù);并且當(dāng)傳送來(lái)自所述存儲(chǔ)器 接口的所述預(yù)定的已加密數(shù)據(jù)時(shí),根據(jù)所存儲(chǔ)的糾錯(cuò)值來(lái)糾正數(shù)據(jù)傳輸錯(cuò) 誤e從所述存儲(chǔ)芯片讀取預(yù)定的已加密數(shù)據(jù)的步驟還可包括響應(yīng)于接收數(shù) 據(jù)讀取命令和數(shù)據(jù)讀取地址來(lái)生成第三控制信號(hào),使得執(zhí)行所述XOR運(yùn)算的步驟包括響應(yīng)于所述第三控制信號(hào),從所述存儲(chǔ)器接口輸出所述預(yù)定的
已加密數(shù)據(jù);以及響應(yīng)于所述第二控制信號(hào),從所述預(yù)定的已加密的XOR 密鑰FIFO存儲(chǔ)器輸出所述預(yù)定的已加密的XOR密鑰。所述已解碼數(shù)據(jù)可存 儲(chǔ)在所述FIFO存儲(chǔ)器中。
將參考所附的附圖描述本發(fā)明的實(shí)施例,其中圖1是根據(jù)本發(fā)明示范實(shí)施例的具有加密處理器的存儲(chǔ)卡系統(tǒng)的框圖; 圖2是根據(jù)本發(fā)明示范實(shí)施例的加密處理器的框圖; 圖3是根據(jù)本發(fā)明示范實(shí)施例的加密密鑰生成器的框圖; 圖4是圖示根據(jù)本發(fā)明示范實(shí)施例的使用加密處理器寫(xiě)入數(shù)據(jù)的方法的 流程圖;圖5是根據(jù)本發(fā)明示范實(shí)施例、當(dāng)寫(xiě)入數(shù)據(jù)時(shí)的閃存以及加密處理器中 的操作的時(shí)序圖;圖6是說(shuō)明根據(jù)本發(fā)明示范實(shí)施例的使用加密處理器讀取數(shù)據(jù)的方法的 流程圖;以及圖7是根據(jù)本發(fā)明示范實(shí)施例、在讀取數(shù)據(jù)時(shí)的閃存以及加密處理器中 的操作的時(shí)序圖。
具體實(shí)施方式
將參考附圖更加完整地描述本發(fā)明,在附圖中示出了本發(fā)明的示范實(shí)施 例。然而,本發(fā)明可以以多種不同的形式實(shí)施,并不應(yīng)理解為僅僅限于所圖 示的實(shí)施例。更適合地,這些實(shí)施例是作為例子提供的,用以向本領(lǐng)域的技 術(shù)人員傳達(dá)本發(fā)明的構(gòu)思。相應(yīng)地,對(duì)本發(fā)明的一些實(shí)施例沒(méi)有描述公知的 過(guò)程、元件和技術(shù)。在所有附圖以及所撰寫(xiě)的說(shuō)明書(shū)中,相同的附圖標(biāo)記將 始終用于指示相同或相似的元件。圖1是根據(jù)本發(fā)明示范實(shí)施例的、包括加密處理器的存儲(chǔ)卡系統(tǒng)的框圖。 存儲(chǔ)卡系統(tǒng)包括存儲(chǔ)卡10和主機(jī)20。主機(jī)20可以是能夠與存儲(chǔ)卡對(duì)接的各種設(shè)備中的任意一個(gè),例如計(jì)算 機(jī)系統(tǒng)、PDA、數(shù)字照相機(jī)、移動(dòng)電話、讀卡器等。存儲(chǔ)卡10電連接到主 機(jī)20,并且可以是永久連接或者是可拆卸的。存儲(chǔ)卡IO可以是合并了閃存 的任意類(lèi)型的存儲(chǔ)卡,例如,壓縮閃(CF)卡、智能介質(zhì)(SM)卡、存儲(chǔ)
棒、多媒體卡(MMC)、安全數(shù)字(SD)卡、訂戶(hù)身份模塊(SIM)卡以及 類(lèi)似物。主機(jī)20向存儲(chǔ)卡IO提供數(shù)據(jù)寫(xiě)入、讀取和擦除命令,以及根據(jù)這 些命令的數(shù)據(jù)地址和控制信號(hào)。存儲(chǔ)卡10響應(yīng)于來(lái)自主機(jī)20的對(duì)應(yīng)命令進(jìn)行寫(xiě)入數(shù)據(jù)到閃存200或者 從其讀取數(shù)據(jù)。參考圖1,存儲(chǔ)卡10包括控制芯片100和閃存200??刂菩?片100控制在主機(jī)20和閃存200之間的數(shù)據(jù)接收和傳送??刂菩酒?00包 括主機(jī)接口 110、緩沖存儲(chǔ)器120、加密處理器130、閃存接口 140以及中央 處理單元(CPU) 150。主機(jī)接口 110提供主機(jī)20和存儲(chǔ)卡10之間的接口 。主機(jī)接口 110從主 機(jī)20接收命令、地址和控制信號(hào),并將其遞送到CPU 150。所述命令可以 包括寫(xiě)入、讀取和擦除命令。主機(jī)接口 IIO可以根據(jù)多種標(biāo)準(zhǔn)或規(guī)范而合并 具有電連接的接口 ,這樣的接口包括例如個(gè)人計(jì)算機(jī)存儲(chǔ)卡國(guó)際聯(lián)盟 (PCMCIA )、通用串行總線(USB)、游戲平臺(tái)2 (PS2)等。緩沖存儲(chǔ)器120存儲(chǔ)將被寫(xiě)入到閃存200或從閃存200中讀取的數(shù)據(jù)。 在寫(xiě)入數(shù)據(jù)時(shí),緩沖存儲(chǔ)器120從主機(jī)接口 IIO接收寫(xiě)入數(shù)據(jù)。例如,緩沖 存儲(chǔ)器120可以是靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM )。加密處理器130加密存儲(chǔ)在緩沖存儲(chǔ)器120中的數(shù)據(jù),并根據(jù)寫(xiě)操作將 預(yù)定的已加密數(shù)據(jù)遞送到閃存接口 140。加密處理器130還解密(解碼)從 閃存200讀取的數(shù)據(jù),并根據(jù)讀操作將被解密的數(shù)據(jù)遞送到緩沖存儲(chǔ)器 120 。閃存接口 140對(duì)控制芯片100和閃存200之間進(jìn)行對(duì)接。閃存接口 140 在寫(xiě)操作期間將加密處理器130加密的數(shù)據(jù)發(fā)送到閃存200。此外,閃存接 口 140在讀操作期間將從閃存200讀取的加密數(shù)據(jù)發(fā)送到加密處理器130。CPU 150是中央處理單元,并且對(duì)控制芯片IOO的操作進(jìn)行控制。CPU 150根據(jù)從主機(jī)接口 IIO接收的命令、地址和控制信號(hào)來(lái)控制主機(jī)接口 110、 緩沖存儲(chǔ)器120和加密處理器130。圖2是根據(jù)本發(fā)明示范實(shí)施例的加密處理器130的框圖。參考圖2,加 密處理器130包括控制電路131、先進(jìn)先出(FIFO)存儲(chǔ)器132、加密密鑰 生成器133、異或(XOR)運(yùn)算器134以及糾錯(cuò)電路(ECC) 135。控制電路131從CPU 150接收對(duì)應(yīng)于數(shù)據(jù)寫(xiě)入、讀取和擦除操作的命令 和地址,并作為響應(yīng)生成控制信號(hào)DFS、 EES、 XFS和FIS??刂齐娐?31
根據(jù)控制信號(hào)DFS、 EES、 XFS和FIS控制加密處理器130的FIFO存儲(chǔ)器 132、加密密鑰生成器133和糾錯(cuò)電路135,以及閃存接口 140。FIFO存儲(chǔ)器132是存儲(chǔ)設(shè)備,其被配置為以與輸入數(shù)據(jù)相同的順序輸 出數(shù)據(jù)(如,先輸入的數(shù)據(jù)先輸出)。FIFO存儲(chǔ)器132通過(guò)先進(jìn)先出列表進(jìn)行操作。FIFO存儲(chǔ)器132包括多個(gè)m字節(jié)寄存器(未示出)。在寫(xiě)操作期間,F(xiàn)IFO 存儲(chǔ)器132響應(yīng)于來(lái)自控制電路131的控制信號(hào)DFS而從緩沖存儲(chǔ)器120 連續(xù)接收m字節(jié)的數(shù)據(jù)Dl、 D2、...。然后,F(xiàn)IFO存儲(chǔ)器132將所接收的m 字節(jié)的數(shù)據(jù)D1、 D2、...連續(xù)傳送到XOR運(yùn)算器134。在讀操作期間,F(xiàn)IFO 132響應(yīng)于來(lái)自控制電路131的控制信號(hào)DFS從XOR運(yùn)算器134連續(xù)接收 m字節(jié)的數(shù)據(jù)Dl、 D2、...,并且然后將所接收的m字節(jié)數(shù)據(jù)Dl、 D2、... 連續(xù)發(fā)送到緩沖存儲(chǔ)器120。控制電路131從CPU 150接收對(duì)閃存200的數(shù) 據(jù)寫(xiě)入和數(shù)據(jù)讀取命令以生成控制信號(hào)DFS,并且相應(yīng)地將控制信號(hào)DFS 發(fā)送到FIFO存儲(chǔ)器132。加密密鑰生成器133響應(yīng)于控制信號(hào)EES生成m字節(jié)的XOR密鑰,其 可以被加密。更具體地,加密密鑰生成器133從CPU 150接收加密密鑰EK 和主XOR密鑰MK以生成多個(gè)已加密的XOR密鑰XK1、 XK2、...。當(dāng)從 CPU 150接收到相同的加密密鑰EK和相同的主XOR密鑰MK時(shí),加密密 鑰生成器133生成相同的已加密的XOR密鑰XK1、 XK2、…。加密密鑰生 成器133可以包括用于存儲(chǔ)多個(gè)XOR密鑰XK1、 XK2、…的寄存器(未示 出)。加密密鑰EK和主XOR密鑰MK可以通過(guò)CPU 150或者附加的初始化 密鑰(未示出)生成。用于加密預(yù)定數(shù)據(jù)的加密密鑰EK和主XOR密鑰MK 被等同地用于解密預(yù)定的已加密數(shù)據(jù)。為了完成這個(gè),當(dāng)加密所述數(shù)據(jù)時(shí), CPU 150或者初始化密鑰生成器(未示出)存儲(chǔ)被遞送到加密密鑰生成器133 的加密密鑰EK和主XOR密鑰MK。當(dāng)解碼預(yù)定的已加密^:據(jù)時(shí),CPU 150 或者初始化密鑰生成器遞送所存儲(chǔ)的在加密密鑰生成器133中的加密密鑰 EK和主XOR密鑰MK。在一實(shí)施例中,初始化密鑰生成器可以合并到加密 密鑰生成器133中。在數(shù)據(jù)寫(xiě)入操作期間,XOR運(yùn)算器134利用加密密鑰生成器133生成 的預(yù)定的已加密的XOR密鑰XK1、 XK2、...,對(duì)FIFO存儲(chǔ)器132提供的
預(yù)定的數(shù)據(jù)D1、 D2、…連續(xù)執(zhí)行XOR運(yùn)算,以提供已加密的數(shù)據(jù)ED1、 ED2、…。XOR運(yùn)算器134將XOR運(yùn)算結(jié)果發(fā)送到閃存接口 140。由XOR 運(yùn)算引起的預(yù)定的已加密數(shù)據(jù)ED1、 ED2、…滿(mǎn)足下面的等式1,其中"U,, 指明XOR運(yùn)算Dl UXK1=ED1D2 U XK2=ED2DmUXKm-EDm (等式1)在數(shù)據(jù)讀取操作期間,XOR運(yùn)算器134利用由加密密鑰生成器133生 成的預(yù)定的已加密的XOR密鑰XK1、 XK2、…,對(duì)由閃存接口 140提供的 預(yù)定的已加密數(shù)據(jù)ED1、 ED2、…,執(zhí)行XOR運(yùn)算。在數(shù)據(jù)讀取操作期間, 從加密密鑰生成器133生成的預(yù)定的已加密的XOR密鑰XK1、 XK2、…與 先前用于加密數(shù)據(jù)D1、 D2、…的預(yù)定的已加密的X0R密鑰XK1、 XK2、… 相同。原因是CPU 150或初始化密鑰生成器在數(shù)據(jù)寫(xiě)入操作和數(shù)據(jù)讀取操作 期間遞送相同的加密密鑰EK和主XOR密鑰MK。相應(yīng)地,XOR運(yùn)算結(jié)果 是已解碼的數(shù)據(jù)D1、D2、…。根據(jù)XOR運(yùn)算特性,已解碼的數(shù)據(jù)D1、D2、… 滿(mǎn)足下面的等式2:EDI U XK1=(D1 U XK1) U XK1=D1ED2 U XK2=(D2 U XK2) U XK2=D2EDm U XKm = (Dm U XKm) U XKm = Dm (等式2)糾錯(cuò)電路(ECC) 135連接在閃存接口 140和XOR運(yùn)算器134之間以 糾正在傳送預(yù)定的已加密數(shù)據(jù)ED1、 ED2、…時(shí)可能發(fā)生的傳輸錯(cuò)誤。糾錯(cuò) 電路135計(jì)算預(yù)定的已加密數(shù)據(jù)ED1、 ED2、…的糾錯(cuò)碼值,并然后將其存 儲(chǔ)到閃存接口 140中。糾錯(cuò)電路135在數(shù)據(jù)讀取操作期間比較糾錯(cuò)碼值和數(shù) 據(jù),以糾正數(shù)據(jù)傳輸錯(cuò)誤。然而,糾錯(cuò)電路135可以?xún)H僅檢測(cè)當(dāng)預(yù)定的已加密數(shù)據(jù)ED1、 ED2、… 正被傳輸時(shí)的錯(cuò)誤。為了糾正被檢測(cè)的錯(cuò)誤,糾錯(cuò)電路135記憶在預(yù)定的已 加密數(shù)據(jù)ED1、 ED2、…中的錯(cuò)誤位。然后,用預(yù)定的已加密的XOR密鑰 XK1、 XK2、…對(duì)預(yù)定的已加密數(shù)據(jù)ED1、 ED2、…執(zhí)行XOR運(yùn)算,以解 碼讀取數(shù)據(jù)。這里,可以確定已解碼的數(shù)據(jù)Dl'、 D2,、...(對(duì)應(yīng)于初始的
數(shù)據(jù)D1、 D2、…)具有錯(cuò)誤。為了糾正錯(cuò)誤,CPU 150從糾錯(cuò)電路135接 收標(biāo)識(shí)為具有錯(cuò)誤的每個(gè)位,并且然后糾正在已解碼的數(shù)據(jù)Dl'、 D2,、... 中的對(duì)應(yīng)位。對(duì)應(yīng)位根據(jù)XOR運(yùn)算特性從邏輯0到邏輯1或者從邏輯1到 邏輯O進(jìn)行錯(cuò)誤改變。加密處理器130同時(shí)提供寫(xiě)入和讀取命令并當(dāng)向閃存200寫(xiě)入數(shù)據(jù)和從 其讀取數(shù)據(jù)時(shí)生成預(yù)定的已加密的XOR密鑰XK1、 XK2、…。加密處理器 130利用在數(shù)據(jù)寫(xiě)入操作期間生成的預(yù)定的已加密的XOR密鑰XK1、 XK2、…對(duì)預(yù)定的數(shù)據(jù)D1、 D2、…執(zhí)行XOR運(yùn)算,以便遞送預(yù)定的已加密 數(shù)據(jù)ED1、 ED2、…。此外,加密處理器130利用在數(shù)據(jù)寫(xiě)入操作期間使用 的相同的已加密的XOR密鑰XK1、 XK2、…對(duì)預(yù)定的已加密^:據(jù)ED1、 ED2、…執(zhí)行X0R運(yùn)算,以在數(shù)據(jù)讀取操作期間解碼預(yù)定的已加密數(shù)據(jù)ED1、 ED2、…。已解碼的數(shù)據(jù)然后被發(fā)送到緩沖存儲(chǔ)器120。相應(yīng)地,加密預(yù)定 的數(shù)據(jù)D1、 D2、…和/或解碼預(yù)定的已加密數(shù)據(jù)EDl、 ED2、…所需的時(shí)間 相比于傳統(tǒng)的方法減少了 。利用傳統(tǒng)加密處理器的存儲(chǔ)卡將緩沖存儲(chǔ)器作為中間介質(zhì),來(lái)加密數(shù)據(jù) 或者解碼已加密的數(shù)據(jù)。然而,本實(shí)施例的加密處理器130不需要用于加密 數(shù)據(jù)或解碼預(yù)定的已加密數(shù)據(jù)的緩沖存儲(chǔ)器。因此,使用本實(shí)施例的加密處 理器130的存儲(chǔ)卡相比于傳統(tǒng)的存儲(chǔ)卡需要較少的CPU 150的任務(wù)。圖3是根據(jù)本發(fā)明示范實(shí)施例、圖2的加密密鑰生成器133的框圖。參 考圖3,加密密鑰生成器133包括多路復(fù)用器136、加密引擎137、 XOR密 鑰寄存器138以及XOR密鑰FIFO存儲(chǔ)器139。參考圖3,加密密鑰生成器133從CPU 150接收加密密鑰EK和主XOR 密鑰MK以生成多個(gè)XOR密鑰XK1、 XK2、…。多路復(fù)用器136選擇從CPU 150遞送的主XOR密鑰MK和所生成的 X0R密鑰XK1、 XK2、…中的一個(gè)。將所選擇的密鑰提供給加密引擎137。 加密引擎137接收來(lái)自CPU 150的加密密鑰EK和從多路復(fù)用器136遞送的 密鑰,并且連續(xù)生成預(yù)定的已加密的XOR密鑰XK1、 XK2、…。XOR寄存 器138存儲(chǔ)預(yù)定的已加密的XOR密鑰XK1、 XK2、…,其由加密引擎137 生成。在實(shí)施例中,加密引擎137例如可使用數(shù)據(jù)加密標(biāo)準(zhǔn)(DES),以生成 已加密的XOR密鑰XK1、 XK2、…。DES是由IBM開(kāi)發(fā)的加密工具,并且
是1974年被美國(guó)國(guó)家標(biāo)準(zhǔn)局采用的公共加密系統(tǒng)。DES算法包括置換 (permutation)、代替和取模操作。公共加密系統(tǒng)的安全性完全取決于密鑰。 即,如果沒(méi)有密鑰,則已加密的數(shù)據(jù)無(wú)法被解碼為初始數(shù)據(jù),并且即使當(dāng)預(yù) 定的已加密數(shù)據(jù)和初始數(shù)據(jù)存在時(shí),也不能確定密鑰。在加密領(lǐng)域中使用了 單向(one-way)函數(shù),即,漢明(hamming)函數(shù)。在單向函數(shù)中,y=f (x) 中的y可以通過(guò)x容易地獲得,但是x不能通過(guò)y獲得。也就是說(shuō),預(yù)定的 已加密數(shù)據(jù)可以利用密鑰從初始數(shù)據(jù)獲得,但是如果沒(méi)有密鑰,則不能從預(yù) 定的已加密數(shù)據(jù)獲得初始數(shù)據(jù)。預(yù)定的已加密的XOR密鑰FIFO存儲(chǔ)器139對(duì)存儲(chǔ)在XOR寄存器138 中的預(yù)定的已加密的XOR密鑰XK1、 XK2、…進(jìn)行臨時(shí)存儲(chǔ)。預(yù)定的已加 密的XOR密鑰FIFO存儲(chǔ)器139響應(yīng)于控制信號(hào)XFS而將預(yù)定的已加密的 XOR密鑰XKl、 XK2、…連續(xù)傳送到XOR運(yùn)算器134。圖4是圖示根據(jù)本發(fā)明示范實(shí)施例的使用加密處理器130寫(xiě)入數(shù)據(jù)的方 法的流程圖。圖5是在寫(xiě)入數(shù)據(jù)時(shí)閃存200和加密處理器130中的對(duì)應(yīng)操作 的時(shí)序圖。圖5指明了在加密處理器130中與已知管腳上示范信令相關(guān)的操 作,所述信令例如控制管腳命令鎖存使能(CLE)、地址鎖存使能(ALE)、 芯片使能(/CE)、寫(xiě)使能(/WE)和讀使能(/RE),以及數(shù)據(jù)輸入/輸出管腳 (1/Ox)。參考圖4和5,對(duì)閃存寫(xiě)入數(shù)據(jù)的方法如下。在步驟S10,生成數(shù)據(jù)寫(xiě)入命令和XOR密鑰,其可以同時(shí)生成。具體 地,在數(shù)據(jù)寫(xiě)入操作期間,CPU 150向加密處理器130的控制電路131發(fā)送 數(shù)據(jù)寫(xiě)入命令和地址。CPU 150還使得將被寫(xiě)入到閃存200的數(shù)據(jù)從主機(jī)接 口 110中發(fā)送到緩沖存儲(chǔ)器120。存儲(chǔ)在緩沖存儲(chǔ)器120中的數(shù)據(jù)然后被發(fā) 送并存儲(chǔ)到將其存儲(chǔ)在的FIFO存儲(chǔ)器132,如存儲(chǔ)到預(yù)定的單元中。此外, CPU 150將密鑰EK和MK發(fā)送到加密密鑰生成器133,其被用于加密將被 寫(xiě)入到閃存200的預(yù)定的數(shù)據(jù)。CPU 150可以將所發(fā)送的密鑰EK和MK存 儲(chǔ)到寄存器(未示出)。響應(yīng)于發(fā)送自控制電路131的控制信號(hào)EES,利用 密鑰EK和MK來(lái)生成預(yù)定的已加密的XOR密鑰??梢耘c寫(xiě)入命令同時(shí)地 生成和/或發(fā)送控制信號(hào)EES。從CPU 150接收密鑰EK和MK的加密密鑰生成器133生成XOR密鑰 XK1、 XK2、…。參考圖5,預(yù)定的已加密的XOR密鑰XK1、 XK2、…在 每個(gè)步驟中生成,并且可以被預(yù)定。參考圖5,在地址被發(fā)送到閃存200之 前,加密密鑰生成器133生成XOR密鑰XK1、 ...、 XKn。所生成的XOR密鑰XK1.....XKn被存儲(chǔ)在加密密鑰生成器133的預(yù)定的已加密的XOR密鑰FIFO存儲(chǔ)器139中。此時(shí),XOR運(yùn)算器134響應(yīng)于控制信號(hào)DFS從FIFO存儲(chǔ)器132接收先前存儲(chǔ)的數(shù)據(jù)D1.....Dn,并且響應(yīng)于控制信號(hào)XFS從預(yù)定的已加密的XOR密鑰FIFO存儲(chǔ)器139接收先前存儲(chǔ)的XOR密鑰XK1 、 ... 、 XKn。然 后,如圖4的步驟S12所指明的,XOR運(yùn)算器134利用預(yù)定的已加密的XOR密鑰XK1.....XKn對(duì)預(yù)定的數(shù)據(jù)Dl.....Dn執(zhí)4亍XOR運(yùn)算,以生成已加密的數(shù)據(jù)ED1..... EDn。響應(yīng)于控制信號(hào)FIS,在步驟S14中將預(yù)定的已加密數(shù)據(jù)ED1..... EDn存儲(chǔ)到閃存200。參考圖5,在將預(yù)定的已加密數(shù)據(jù)ED1..... EDn存儲(chǔ)到閃存200時(shí),加密處理器130的加密密鑰生成器133生成XOR密鑰XK(n+l)、…、XK(2n), 其被存儲(chǔ)在預(yù)定的已加密的XOR密鑰FIFO存儲(chǔ)器139中。XOR運(yùn)算器134 利用預(yù)定的已加密的XOR密鑰XK(n+l)、…、XK(2n)對(duì)預(yù)定的數(shù)據(jù)D(n+1).....D(2n)執(zhí)行XOR運(yùn)算,以生成預(yù)定的已加密數(shù)據(jù)ED(n+l).....ED(2n)。同樣地,在將所生成的已加密數(shù)據(jù)ED(n+l).....ED(2n)存儲(chǔ)到閃存200中時(shí),加密密鑰生成器133生成XOR密鑰XK(2n+l).....XK(3n),其被存儲(chǔ)在預(yù)定的已加密的XOR密鑰FIFO存儲(chǔ)器139中。XOR運(yùn)算器134然后利用預(yù)定的已加密的XOR密鑰XK(2n+l)..... XK(3n)對(duì)預(yù)定的數(shù)據(jù)D(2n+1)、…、D(3n)執(zhí)行XOR運(yùn)算,以生成被加密數(shù)據(jù)ED(2n+l)、 ... 、ED(3n)。再次參考圖5,當(dāng)數(shù)據(jù)集被加密并被發(fā)送到閃存200中進(jìn)行存儲(chǔ)時(shí)(或 之后),生成連續(xù)多個(gè)XOR密鑰集合。然而,本發(fā)明并不限制于此實(shí)施例。 加密密鑰生成器133可在數(shù)據(jù)寫(xiě)入命令期間生成多個(gè)XOR密鑰集合,并且 然后將它們存儲(chǔ)到預(yù)定的已加密的XOR密鑰FIFO存儲(chǔ)器139。如上,在圖4的步驟S12中,利用預(yù)定的XOR密鑰對(duì)數(shù)據(jù)執(zhí)行XOR 運(yùn)算。更具體地,控制電路131生成控制信號(hào)DFS和XFS,其分別被傳送 到密鑰生成器133的FIFO存儲(chǔ)器132和預(yù)定的已加密的XOR密鑰FIFO存 儲(chǔ)器139。響應(yīng)于控制信號(hào)DFS, FIFO存儲(chǔ)器132將先前存儲(chǔ)的數(shù)據(jù)發(fā)送到 XOR運(yùn)算器134。響應(yīng)于控制信號(hào)XFS,預(yù)定的已加密的XOR密鑰FIFO 存儲(chǔ)器139將先前被存儲(chǔ)的XOR密鑰發(fā)送到XOR運(yùn)算器134。 XOR運(yùn)算 器134利用預(yù)定的已加密的XOR密鑰對(duì)預(yù)定的數(shù)據(jù)執(zhí)行XOR運(yùn)算以生成預(yù) 定的已加密數(shù)據(jù)。在步驟S14中,預(yù)定的已加密數(shù)據(jù)ED1、 ED2、…被存儲(chǔ)在閃存200。 圖1中的閃存200被示出為與控制芯片IOO分離,但是本發(fā)明并不限制于該 配置。例如,存儲(chǔ)卡IO可以在一個(gè)芯片上包括控制芯片100和閃存200,而 不脫離本發(fā)明的精神和范圍。圖6是圖示根據(jù)本發(fā)明示范實(shí)施例的使用加密處理器130讀取數(shù)據(jù)的方 法的流程圖。圖7是在讀取數(shù)據(jù)時(shí)閃存和加密處理器130中對(duì)應(yīng)操作的時(shí)序 圖。參考圖6和7,從閃存200讀取數(shù)據(jù)的方法如下。在步驟S20中,生成數(shù)據(jù)讀取命令和XOR密鑰XK1 、 XK2、...,其可 以同時(shí)生成。在數(shù)據(jù)讀取操作期間,CPU 150將數(shù)據(jù)讀取命令和地址發(fā)送到 控制電路131。 CPU 150將密鑰EK和MK發(fā)送到加密密鑰生成器133,其 用于加密預(yù)定的數(shù)據(jù)。相應(yīng)地,用于加密的密鑰EK和MK被用于解碼已加 密的數(shù)據(jù)。加密密鑰生成器133從CPU 150接收加密密鑰EK和主XOR密 鑰MK,以生成多個(gè)XOR密鑰XK1、 XK2、…??梢皂憫?yīng)于發(fā)送自控制電 路131的控制信號(hào)EES,利用密鑰EK和MK來(lái)生成預(yù)定的已加密的XOR 密鑰??梢耘c數(shù)據(jù)讀取命令同時(shí)地生成和/或發(fā)送控制信號(hào)EES。參考圖7,在輸入數(shù)據(jù)讀取命令之后,具有足夠的時(shí)間用來(lái)生成預(yù)定的 已加密的XOR密鑰XK1、 XK2、…,直到數(shù)據(jù)被讀取。所生成的XOR密 鑰XK1、 XK2、…被存儲(chǔ)在預(yù)定的已加密的XOR密鑰FIFO存儲(chǔ)器139。在步驟S22,利用預(yù)定的XOR密鑰對(duì)預(yù)定的已加密數(shù)據(jù)執(zhí)行XOR運(yùn)算, 以進(jìn)行解碼。控制電路131接收來(lái)自CPU 150的數(shù)據(jù)讀取命令和一地址,以 生成控制信號(hào)FIS和XFS。響應(yīng)于控制信號(hào)FIS,如圖7所示,閃存接口 140 將預(yù)定的已加密數(shù)據(jù)ED1、 ED2、…連續(xù)傳送到XOR運(yùn)算器134。進(jìn)一步地, 響應(yīng)于控制信號(hào)XFS,存儲(chǔ)在預(yù)定的已加密的XOR密鑰FIFO存儲(chǔ)器139 中的預(yù)定的XOR密鑰XK1、 XK2、…被連續(xù)傳送到XOR運(yùn)算器134。 XOR 運(yùn)算器134利用預(yù)定的已加密的XOR密鑰XK1、 XK2、…對(duì)預(yù)定的已加密 數(shù)據(jù)ED1、ED2、…執(zhí)行XOR運(yùn)算,以解碼預(yù)定的已加密數(shù)據(jù)ED1、 ED2、…, 從而獲得已解碼的數(shù)據(jù)Dl、 D2、…。已解碼的數(shù)據(jù)D1、 D2、…被發(fā)送到 FIFO存儲(chǔ)器132。在圖6的步驟S24中,已解碼的數(shù)據(jù)D1、 D2、…被發(fā)送到外部裝置(例
如主機(jī)20)或者控制芯片IOO的內(nèi)部模塊。在步驟S22, CPU 150使得將存 儲(chǔ)在FIFO存儲(chǔ)器132中的數(shù)據(jù)發(fā)送到緩沖存儲(chǔ)器120。被發(fā)送到緩沖存儲(chǔ) 器120的數(shù)據(jù)可能傳輸通過(guò)CPU 150,并接著被發(fā)送到外部裝置。根據(jù)加密處理器以及利用本發(fā)明的加密處理器來(lái)寫(xiě)入和讀取數(shù)據(jù)的方 法,相對(duì)于傳統(tǒng)的方法,在寫(xiě)入和讀取數(shù)據(jù)的時(shí)候生成XOR密鑰,因此數(shù) 據(jù)可以被快速加密或解密。此外,CPU將需執(zhí)行較少的任務(wù)。雖然已經(jīng)參考示范實(shí)施例而描述了本發(fā)明,但對(duì)本領(lǐng)域的技術(shù)人員來(lái)說(shuō) 顯然可以進(jìn)行多種改變和修改,而不游離本發(fā)明的精神和范圍。因此,應(yīng)當(dāng) 理解,上述實(shí)施例不用于限制而僅是說(shuō)明性的。
權(quán)利要求
1、一種存儲(chǔ)卡的加密處理器,該存儲(chǔ)卡用于在存儲(chǔ)芯片中存儲(chǔ)已加密的數(shù)據(jù),所述加密處理器包括先進(jìn)先出(FIFO)存儲(chǔ)器,用于響應(yīng)于第一信號(hào)而順序輸出預(yù)定的數(shù)據(jù);加密密鑰生成器,用于響應(yīng)于第二信號(hào)而生成預(yù)定的已加密密鑰,并用于響應(yīng)于第三信號(hào)順序輸出所述預(yù)定的已加密密鑰;邏輯運(yùn)算器,用于在數(shù)據(jù)寫(xiě)入操作期間對(duì)從所述FIFO存儲(chǔ)器輸出的預(yù)定的數(shù)據(jù)以及從所述加密密鑰生成器輸出的預(yù)定的已加密密鑰執(zhí)行邏輯運(yùn)算,以便順序加密所述預(yù)定的數(shù)據(jù),所述預(yù)定的已加密數(shù)據(jù)被發(fā)送到存儲(chǔ)器接口;以及控制電路,用于在數(shù)據(jù)寫(xiě)入操作期間響應(yīng)于寫(xiě)入命令和寫(xiě)入地址而生成所述第一信號(hào)、第二信號(hào)和第三信號(hào),所述第二信號(hào)和寫(xiě)入命令同時(shí)生成。
2、 如權(quán)利要求1所述的加密處理器,還包括錯(cuò)誤檢測(cè)電路,當(dāng)將所述預(yù)定的已加密數(shù)據(jù)從所述邏輯運(yùn)算器發(fā)送到所 述存儲(chǔ)器接口時(shí),檢測(cè)所述預(yù)定的已加密數(shù)據(jù)中的錯(cuò)誤。
3、 如權(quán)利要求2所述的加密處理器,其中所述錯(cuò)誤檢測(cè)電路使用糾錯(cuò) 碼(ECC)。
4、 如權(quán)利要求1所述的加密處理器,其中所述加密密鑰生成器使用數(shù) 據(jù)加密標(biāo)準(zhǔn)(DES)。
5、 如權(quán)利要求4所述的加密處理器,其中所述邏輯運(yùn)算器執(zhí)行XOR運(yùn) 算,并且所述密鑰包括XOR密鑰。
6、 如權(quán)利要求5所述的加密處理器,其中所述加密密鑰生成器響應(yīng)于 所述第二信號(hào)接收至少一個(gè)初始化密鑰,以生成已加密的X0R密鑰。
7、 如權(quán)利要求6所述的加密處理器,其中當(dāng)所述至少一個(gè)初始化密鑰 相同時(shí),所述加密密鑰生成器生成相同的已加密的XOR密鑰。
8、 如權(quán)利要求7所述的加密處理器,其中用于加密預(yù)定數(shù)據(jù)的所述至 少一個(gè)初始化密鑰被用于解碼所述預(yù)定的已加密數(shù)據(jù)。
9、 如權(quán)利要求8所述的加密處理器,還包括存儲(chǔ)器,用于存儲(chǔ)用于加密所述預(yù)定的數(shù)據(jù)的所述初始化密鑰。
10、 如權(quán)利要求6所述的加密處理器,其中所述加密密鑰生成器響應(yīng)于第二信號(hào)初始地接收至少一個(gè)初始化密鑰,以生成第一預(yù)定的已加密的XOR 密鑰,并且接收至少一個(gè)所述預(yù)定的已加密的XOR密鑰以生成隨后的預(yù)定 的已加密的XOR密鑰。
11、 如權(quán)利要求IO所述的加密處理器,其中所述加密密鑰生成器包括 寄存器,用于存儲(chǔ)所述預(yù)定的已加密的XOR密鑰;以及XOR密鑰FIFO存儲(chǔ)器,用于臨時(shí)存儲(chǔ)從所述寄存器接收的所述預(yù)定的 已加密的XOR密鑰,以及用于響應(yīng)于所述第三信號(hào)順序輸出預(yù)定的已加密 的XOR密鑰。
12、 一種存儲(chǔ)卡的加密處理器,用于恢復(fù)存儲(chǔ)在存儲(chǔ)芯片中的已加密數(shù) 據(jù),所述加密處理器包括加密密鑰生成器,用于響應(yīng)于第一信號(hào)生成預(yù)定的已加密密鑰,以及響 應(yīng)于第二信號(hào)順序輸出所述預(yù)定的已加密密鑰;邏輯運(yùn)算器,用于在數(shù)據(jù)讀取操作期間利用從所述加密密鑰生成器輸出 的所述預(yù)定的已加密密鑰對(duì)從存儲(chǔ)器接口發(fā)送的預(yù)定的已加密數(shù)據(jù)執(zhí)行邏 輯運(yùn)算,以順序解碼所述預(yù)定的已加密數(shù)據(jù);以及控制電路,用于在所述數(shù)據(jù)讀取操作期間響應(yīng)于讀取命令和數(shù)據(jù)讀取地 址來(lái)生成所述第一信號(hào)和第二信號(hào),所述第一信號(hào)和所述讀取命令同時(shí)生 成。
13、 一種存儲(chǔ)卡的加密處理器,所述存儲(chǔ)卡在存儲(chǔ)芯片中存儲(chǔ)已加密的 數(shù)據(jù),所述加密處理器包括FIFO存儲(chǔ)器,用于響應(yīng)于第一信號(hào)順序輸出預(yù)定的lt據(jù); 加密密鑰生成器,用于響應(yīng)于第二信號(hào)生成預(yù)定的已加密密鑰,以及用 于響應(yīng)于第三信號(hào)順序輸出所述預(yù)定的已加密密鑰;邏輯運(yùn)算器,用于在數(shù)據(jù)寫(xiě)入操作期間,利用從所述加密密鑰生成器輸 出的所述預(yù)定的已加密密鑰對(duì)從所述FIFO存儲(chǔ)器輸出的所述預(yù)定的數(shù)據(jù)執(zhí) 行邏輯運(yùn)算,以順序加密所述預(yù)定的數(shù)據(jù)并將其發(fā)送到存儲(chǔ)器接口;以及在 數(shù)據(jù)讀取操作期間,利用從所述加密密鑰生成器輸出的所述預(yù)定的已加密密 鑰對(duì)從所述存儲(chǔ)器接口接收的所述預(yù)定的已加密數(shù)據(jù)執(zhí)行邏輯運(yùn)算,以順序 解碼所述預(yù)定的已加密數(shù)據(jù)并將所述已解碼的數(shù)據(jù)發(fā)送到所述FIFO存儲(chǔ) 器;以及 控制電路,用于在數(shù)據(jù)寫(xiě)入操作期間響應(yīng)于寫(xiě)入命令和寫(xiě)入地址而生成 所述第一信號(hào)、第二信號(hào)和第三信號(hào),并且在所述數(shù)據(jù)讀取操作期間響應(yīng)于 讀取命令和讀取地址生成所述第二信號(hào)和第三信號(hào),所述第二信號(hào)與所述寫(xiě) 入命令或者所述讀取命令之一同時(shí)生成。
14、 如權(quán)利要求1所述的加密處理器,其中所述存儲(chǔ)芯片包括閃存。
15、 如權(quán)利要求1所述的加密處理器,其中所述存儲(chǔ)卡包括訂戶(hù)身份模塊(SIM)卡。
16、 一種分別利用加密密鑰向存儲(chǔ)卡的存儲(chǔ)芯片寫(xiě)入數(shù)據(jù)并從其讀取的 方法,所述加密密鑰用于編碼和解碼數(shù)據(jù),所述方法包括同時(shí)生成數(shù)據(jù)寫(xiě)入命令以及用于生成XOR密鑰的信號(hào),以及至少響應(yīng) 于所生成的信號(hào)而生成所述預(yù)定的已加密的XOR密鑰;-利用所述預(yù)定的已加密的XOR密鑰順序?qū)︻A(yù)定的數(shù)據(jù)執(zhí)行XOR運(yùn)算, 以獲得已加密數(shù)據(jù);將所述預(yù)定的已加密數(shù)據(jù)存儲(chǔ)在存儲(chǔ)芯片中;信號(hào),以及至少響應(yīng)于所生成的信號(hào)而生成所述預(yù)定的已加密的XOR密鑰; 從所述存儲(chǔ)芯片讀取所述預(yù)定的已存儲(chǔ)的已加密數(shù)據(jù); 利用所述預(yù)定的已加密的XOR密鑰對(duì)所述預(yù)定的已加密數(shù)據(jù)順序執(zhí)行XOR運(yùn)算,以獲得對(duì)應(yīng)于所述數(shù)據(jù)的已解碼數(shù)據(jù);以及將所述預(yù)定的已解碼的數(shù)據(jù)發(fā)送到存儲(chǔ)卡的內(nèi)部裝置或者發(fā)送到外部裝置之一。
17、 如權(quán)利要求16所述的方法,其中將所述預(yù)定的已加密數(shù)據(jù)存儲(chǔ)在 存儲(chǔ)芯片上的步驟包括在所述存儲(chǔ)卡中生成數(shù)據(jù)寫(xiě)入命令和寫(xiě)入地址。
18、 如權(quán)利要求16所述的方法,其中生成所述數(shù)據(jù)讀取命令和所述預(yù) 定的已加密的XOR密鑰的步驟包括在所述存儲(chǔ)卡上生成數(shù)據(jù)讀取命令和數(shù) 據(jù)讀取地址。
19、 如權(quán)利要求16所述的方法,其中將所述預(yù)定的已加密數(shù)據(jù)存儲(chǔ)在 所述存儲(chǔ)芯片上的步驟包括將數(shù)據(jù)寫(xiě)入命令、寫(xiě)入地址和所述預(yù)定的已加密 數(shù)據(jù)發(fā)送到所述存儲(chǔ)卡,以及其中讀取所述已存儲(chǔ)的已加密數(shù)據(jù)的步驟包括 將數(shù)據(jù)讀取命令和數(shù)據(jù)讀取地址發(fā)送到所述存儲(chǔ)卡。
20、 如權(quán)利要求19所述的方法,其中在所述存儲(chǔ)芯片上存儲(chǔ)預(yù)定的已加密數(shù)據(jù)的步驟包括按照數(shù)據(jù)單元來(lái)存儲(chǔ)所述預(yù)定的已加密數(shù)據(jù)。
21、 如權(quán)利要求20所述的方法,還包括 將所述預(yù)定的數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)卡的FIFO存儲(chǔ)器中。
22、 如權(quán)利要求21所述的方法,還包括 從所述存儲(chǔ)卡的中央處理單元接收初始化密鑰;以及當(dāng)收到所述數(shù)據(jù)寫(xiě)入命令和數(shù)據(jù)讀取命令時(shí),基于所述初始化密鑰來(lái)生 成所述預(yù)定的XOR密鑰。
23、 如權(quán)利要求22所述的方法,其中所述相同的已加密的XOR密鑰是 響應(yīng)于所述相同的初始化密鑰而生成的。
24、 如權(quán)利要求23所述的方法,其中用于加密預(yù)定的數(shù)據(jù)的所述初始 化密鑰被用于解碼所述預(yù)定的已存儲(chǔ)的已加密數(shù)據(jù)。
25、 如權(quán)利要求24所述的方法,還包括 存儲(chǔ)所述初始化密鑰。
26、 如權(quán)利要求24所述的方法,其中所述加密密鑰生成器在生成所述 預(yù)定的已加密的XOR密鑰的第 一預(yù)定的已加密的XOR密鑰之后不再接收所 述初始化密鑰,以及作為輸入而接收所述預(yù)定的已加密的XOR密鑰的其它 預(yù)定的已加密的XOR密鑰,以連續(xù)地生成預(yù)定的已加密的XOR密鑰。
27、 如權(quán)利要求26所述的方法,還包括將所述預(yù)定的已加密的XOR密鑰存儲(chǔ)到所述加密密鑰生成器的XOR 密鑰FIFO中。
28、 如權(quán)利要求27所述的方法,還包括響應(yīng)于接收到數(shù)據(jù)寫(xiě)入命令和所述寫(xiě)入地址,生成第一控制信號(hào)和第二 控制信號(hào),其中所述執(zhí)行XOR運(yùn)算的步驟包括響應(yīng)于所述第 一控制信號(hào)而從所述FIFO存儲(chǔ)器輸出預(yù)定的數(shù)據(jù);以及響應(yīng)于所述第二控制信號(hào)而從所述預(yù)定的已加密的XOR密鑰 FIFO存儲(chǔ)器輸出預(yù)定的已加密的XOR密鑰。
29、 如權(quán)利要求28所述的方法,還包括當(dāng)將所述預(yù)定的已加密數(shù)據(jù)傳送到所述存儲(chǔ)芯片時(shí),檢測(cè)數(shù)據(jù)錯(cuò)誤;以 及計(jì)算并存儲(chǔ)對(duì)應(yīng)于所述預(yù)定的已加密數(shù)據(jù)的糾錯(cuò)值。
30、 如權(quán)利要求29所述的方法,其中所述XOR運(yùn)算是使用第二預(yù)定的 已加密的XOR密鑰而對(duì)第二預(yù)定的數(shù)據(jù)執(zhí)行的,以獲得第二預(yù)定的已加密 數(shù)據(jù),而使用第一預(yù)定的已加密的XOR密鑰加密的第一預(yù)定的已加密數(shù)據(jù) 被通過(guò)存儲(chǔ)器接口而存儲(chǔ)在所述存儲(chǔ)芯片上。
31、 如權(quán)利要求30所述的方法,其中所述生成預(yù)定的已加密的XOR密 鑰的步驟還包括根據(jù)所述數(shù)據(jù)讀取命令和所述數(shù)據(jù)讀取地址,在所述存儲(chǔ)器接口中從存 儲(chǔ)芯片讀取所述預(yù)定的已加密數(shù)據(jù)。
32、 如權(quán)利要求31所述的方法,其中從所述存儲(chǔ)芯片讀取所述預(yù)定的 已加密數(shù)據(jù)的步驟還包括當(dāng)傳送來(lái)自所述存儲(chǔ)器接口的所述預(yù)定的已加密數(shù)據(jù)時(shí),根據(jù)所存儲(chǔ)的 糾錯(cuò)值來(lái)糾正數(shù)據(jù)傳輸錯(cuò)誤。
33、 如權(quán)利要求32所述的方法,其中從所述存儲(chǔ)芯片讀取所述預(yù)定的 已加密數(shù)據(jù)的步驟還包括響應(yīng)于接收到數(shù)據(jù)讀取命令和數(shù)據(jù)讀取地址來(lái)生成第三控制信號(hào), 其中執(zhí)行所述XOR運(yùn)算的步驟包括響應(yīng)于所述第三控制信號(hào),從所述存儲(chǔ)器接口輸出所述預(yù)定的已加 密數(shù)據(jù);以及響應(yīng)于所述第二控制信號(hào),從所述預(yù)定的已加密的XOR密鑰FIFO 存儲(chǔ)器輸出所述預(yù)定的已加密的XOR密鑰。
34、 如權(quán)利要求33所述的方法,其中所述傳輸已解碼的數(shù)據(jù)的步驟還
全文摘要
用于在存儲(chǔ)卡的存儲(chǔ)芯片中存儲(chǔ)已加密數(shù)據(jù)的加密處理器包括用于響應(yīng)于第一信號(hào)連續(xù)輸出預(yù)定的數(shù)據(jù)的FIFO存儲(chǔ)器,以及用于響應(yīng)于第二信號(hào)生成預(yù)先確定的已加密密鑰并且響應(yīng)于第三信號(hào)連續(xù)輸出密鑰的加密密鑰生成器。為了連續(xù)加密預(yù)定的數(shù)據(jù),在數(shù)據(jù)寫(xiě)入操作期間,邏輯運(yùn)算器利用從所述加密密鑰生成器輸出的所述密鑰對(duì)從所述FIFO存儲(chǔ)器輸出的所述預(yù)定的數(shù)據(jù)執(zhí)行邏輯運(yùn)算。為了連續(xù)解碼所述預(yù)定的已加密數(shù)據(jù),在數(shù)據(jù)讀取操作期間,所述邏輯運(yùn)算器利用從所述加密密鑰生成器輸出的所述密鑰對(duì)從存儲(chǔ)接口接收的已加密數(shù)據(jù)執(zhí)行邏輯運(yùn)算。所述第二信號(hào)與所述寫(xiě)入命令或讀取命令中的一個(gè)同時(shí)生成。
文檔編號(hào)G06F12/14GK101149709SQ200710167670
公開(kāi)日2008年3月26日 申請(qǐng)日期2007年9月11日 優(yōu)先權(quán)日2006年9月11日
發(fā)明者姜相旭, 姜秉潤(rùn), 孫巾漢, 尹重喆, 崔哲準(zhǔn), 崔鐘相, 金圣賢, 金盛鉉, 金相范 申請(qǐng)人:三星電子株式會(huì)社