專利名稱:數(shù)據(jù)流傳送分派方法、執(zhí)行此方法的系統(tǒng)及其控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種數(shù)據(jù)流傳送分派方法,且特別是有關(guān)于一種能夠從主 機傳遞數(shù)據(jù)至具有快閃存儲器與智能卡芯片的儲存裝置的數(shù)據(jù)流傳送分派方 法及其控制器。
背景技術(shù):
隨著使用者逐漸接受使用電子錢包及預(yù)付儲值,使得智能卡的使用日益普
及。智能卡(Smart Card)是具有例如微處理器、卡操作系統(tǒng)、安全模組及存 儲器組件的集成電路芯片(IC芯片),以允許持有者執(zhí)行預(yù)定操作。智能卡提 供計算、加密、雙向通信及安全功能,使得這張卡片除了儲存數(shù)據(jù)的功能外還 能達到對其所儲存的數(shù)據(jù)加以保護的功能。使用全球行動通信系統(tǒng)(GSM)機 制的蜂巢式電話中所使用的用戶識別模組(Subscriber Identification Module, SIM)卡為智能卡的其中一個應(yīng)用范例。然而,智能卡本身受限于儲存容量, 因此近年來開始與大量儲存裝置的存儲卡作結(jié)合,以擴增智能卡的儲存容量。
存儲卡是一種數(shù)據(jù)儲存設(shè)備,其一般是以NAND快閃存儲器作為儲存媒 體。NAND快閃存儲器具有可寫入、可抹除、以及斷電后仍可保存數(shù)據(jù)的優(yōu)點, 此外,NAND快閃存儲器為非易失性存儲器(Non-Volatile Memory)的一種, 其具有非易失性存儲器體積小、存取速度快、耗電量低的優(yōu)點,且因其數(shù)據(jù)抹 除(Erasing)時是采用"一塊一塊"(Block by Block)抹除的方式,所以具有操 作速度快的優(yōu)點。
在現(xiàn)有技術(shù)中,結(jié)合快閃存儲器與智能卡的應(yīng)用是通過特殊命令來區(qū)別傳 送給智能卡或快閃存儲器的數(shù)據(jù),此特殊命令可能會造成硬件裝置或驅(qū)動程序 無法支持的問題。此外,在現(xiàn)有技術(shù)中是比對此特殊命令中關(guān)于所傳送數(shù)據(jù)流 的型態(tài)信息來判斷此數(shù)據(jù)流是否為智能卡的命令格式。然而,此方法往往會造 成一般檔案數(shù)據(jù)與屬于智能卡的命令格式碰撞的問題(即將一般檔案數(shù)據(jù)誤判
7為智能卡的數(shù)據(jù)流)。
基此,有需要發(fā)展一套能夠在結(jié)合快閃存儲器與智能卡的應(yīng)用中有效判別 所傳遞的數(shù)據(jù)是否為智能卡指令的方法。
發(fā)明內(nèi)容
本發(fā)明提供一種數(shù)據(jù)流傳送分派系統(tǒng),能夠有效地區(qū)別一般數(shù)據(jù)與智能卡 芯片指令。
本發(fā)明提供一種數(shù)據(jù)流傳送分派方法,能夠有效地區(qū)別一般數(shù)據(jù)與智能卡 芯片指令。
本發(fā)明提供一種控制器,能夠執(zhí)行數(shù)據(jù)流傳送分派程序以有效地區(qū)別一般 數(shù)據(jù)與智能卡芯片指令。
本發(fā)明提出一種數(shù)據(jù)流傳送分派系統(tǒng),其適用于在主機和具有非易失性存 儲器與智能卡芯片的儲存裝置之間的數(shù)據(jù)流傳送,此數(shù)據(jù)流傳送分派系統(tǒng)包括 應(yīng)用程序與控制器。應(yīng)用程序安裝于主機上并且用以操作儲存裝置??刂破髋?置于儲存裝置中并且電性連接至非易失性存儲器與智能卡芯片。其中控制器具 有金鑰,控制器會依據(jù)此金鑰來驗證金鑰驗證寫入指令,并且在金鑰驗證寫入 指令通過驗證下記錄金鑰驗證寫入指令欲寫入的暫時檔的邏輯區(qū)塊地址,以及 控制器會判斷從主機傳送至儲存裝置的數(shù)據(jù)流是否為寫入至邏輯區(qū)塊地址,倘 若此數(shù)據(jù)流為寫入至邏輯區(qū)塊地址時,則會將此數(shù)據(jù)流識別為智能卡的通訊數(shù) 據(jù)單元并且傳遞至智能卡芯片。
在本發(fā)明的數(shù)據(jù)流傳送分派系統(tǒng)中,上述的應(yīng)用程序會于控制器上設(shè)定金 鑰,并且在非易失性存儲器上建立暫時檔,其中邏輯區(qū)塊地址為暫時檔的邏輯 地址。
在本發(fā)明的數(shù)據(jù)流傳送分派系統(tǒng)中,上述的應(yīng)用程序于控制器上設(shè)定金鑰 包括應(yīng)用程序通過安全指令傳送金鑰至控制器;控制器儲存金鑰;以及控制 器傳送金鑰設(shè)定回應(yīng)訊息至應(yīng)用程序以告知金鑰是否設(shè)定成功。
在本發(fā)明的數(shù)據(jù)流傳送分派系統(tǒng)中,上述的控制器依據(jù)金鑰來驗證金鑰驗 證寫入指令包括從應(yīng)用程序中接收金鑰驗證寫入指令,其中金鑰驗證寫入指 令會對暫時檔寫入亂數(shù)值與擾亂值,并且擾亂值是由將亂數(shù)值以金鑰加密所產(chǎn)
8生;以金鑰解密擾亂值以獲得還原亂數(shù)值;以及將還原亂數(shù)值與亂數(shù)值進行比 較,其中當(dāng)還原亂數(shù)值與亂數(shù)值為相同時表示金鑰驗證寫入指令通過驗證。
在本發(fā)明的數(shù)據(jù)流傳送分派系統(tǒng)中,上述的控制器依據(jù)金鑰來驗證金鑰驗 證寫入指令還包括傳送包含還原亂數(shù)值的金鑰驗證回應(yīng)訊息至主機。
在本發(fā)明的數(shù)據(jù)流傳送分派系統(tǒng)中,上述的控制器還包括從智能卡芯片 中接收回應(yīng)數(shù)據(jù)單元;依據(jù)應(yīng)用程序的讀取指令來傳送回應(yīng)數(shù)據(jù)單元至應(yīng)用程 序;以及在傳送回應(yīng)數(shù)據(jù)單元后清除邏輯區(qū)塊地址并告知應(yīng)用程序以關(guān)閉暫時 檔。
在本發(fā)明的數(shù)據(jù)流傳送分派系統(tǒng)中,上述的控制器還包括重復(fù)執(zhí)行判斷 從主機傳送至儲存裝置的數(shù)據(jù)流是否為寫入至邏輯區(qū)塊地址的步驟直到從應(yīng) 用程序中接收到終止指令為止;以及接收到終止指令后清除邏輯區(qū)塊地址并告 知應(yīng)用程序以關(guān)閉暫時檔。
在本發(fā)明的記憶胞中,上述的通訊數(shù)據(jù)單元為指令-應(yīng)用程序數(shù)據(jù)單元 (Command-Application Protocol Data Unit, C-APDU),并且上述的回應(yīng)數(shù)據(jù)單 元為回應(yīng)-應(yīng)用程序數(shù)據(jù)單元(Response-Application Protocol Data Unit, R-APDU)。
本發(fā)明提出一種數(shù)據(jù)流傳送分派方法,其適用于從主機傳遞數(shù)據(jù)流至具有 非易失性存儲器與智能卡芯片的儲存裝置,此數(shù)據(jù)流傳送分派方法包括在主 機與儲存裝置之間設(shè)定金鑰;在儲存裝置的非易失性存儲器中建立暫時檔,并 且執(zhí)行金鑰驗證寫入指令;依據(jù)金鑰來驗證金鑰驗證寫入指令;在金鑰驗證寫 入指令通過驗證時記錄金鑰驗證寫入指令欲寫入的暫時檔的邏輯區(qū)塊地址;以 及判斷從主機中傳送至儲存裝置的數(shù)據(jù)流是否為寫入至邏輯區(qū)塊地址,其中倘 若數(shù)據(jù)流為寫入至邏輯區(qū)塊地址,則將數(shù)據(jù)流識別為智能卡芯片的通訊數(shù)據(jù)單 元并且傳遞至智能卡芯片。
在本發(fā)明的數(shù)據(jù)流傳送分派方法中,上述的在主機與儲存裝置之間設(shè)定金 鑰包括透過安全指令從主機中將金鑰傳送至儲存裝置;儲存金鑰;以及從儲 存裝置中讀取金鑰設(shè)定回應(yīng)訊息以判斷金鑰是否設(shè)定成功。
在本發(fā)明的數(shù)據(jù)流傳送分派方法中,上述的依據(jù)金鑰來驗證金鑰驗證寫入 指令包括對暫時檔寫入亂數(shù)值與擾亂值,其中擾亂值是由將亂數(shù)值以金鑰加密所產(chǎn)生;在儲存裝置中以金鑰解密擾亂值以獲得還原亂數(shù)值;以及將還原亂 數(shù)值與亂數(shù)值進行比較,其中當(dāng)還原亂數(shù)值與亂數(shù)值為相同時表示金鑰驗證寫 入指令通過驗證。
在本發(fā)明的數(shù)據(jù)流傳送分派方法中,上述的依據(jù)金鑰來驗證金鑰驗證寫入 指令還包括從儲存裝置中讀取包含還原亂數(shù)值的金鑰驗證回應(yīng)訊息;以及判 斷還原亂數(shù)值與原先所寫入的亂數(shù)值是否相同,其中當(dāng)還原亂數(shù)值與原先所寫 入的亂數(shù)值為相同時表示金鑰驗證寫入指令通過驗證。
在本發(fā)明的一實施例中,上述的數(shù)據(jù)流傳送分派方法還包括在智能卡芯片 接收到數(shù)據(jù)流之后傳送回應(yīng)數(shù)據(jù)單元。
在本發(fā)明的一實施例中,上述的數(shù)據(jù)流傳送分派方法還包括在主機接收到 回應(yīng)數(shù)據(jù)單元后清除邏輯區(qū)塊地址以及關(guān)閉暫時檔。
在本發(fā)明的一實施例中,上述的數(shù)據(jù)流傳送分派方法還包括重復(fù)判斷從主 機中傳送至儲存裝置的數(shù)據(jù)流是否為寫入至邏輯區(qū)塊地址的步驟直到接收到 終止指令為止。
在本發(fā)明的一實施例中,上述的數(shù)據(jù)流傳送分派方法還包括在接收到終止 指令后清除邏輯區(qū)塊地址以及關(guān)閉暫時檔案。
本發(fā)明提出一種控制器,其適用于具有非易失性存儲器與智能卡芯片的儲 存裝置,此快閃存儲器控制器包括微處理單元、存儲器接口、緩沖存儲器以及 數(shù)據(jù)分派模組。存儲器接口用以存取非易失性存儲器。緩沖存儲器用以暫時地 儲存數(shù)據(jù)。數(shù)據(jù)分派模組具有金鑰并且用以依據(jù)金鑰來驗證來自于主機的金鑰 驗證寫入指令、在金鑰驗證寫入指令通過驗證下記錄金鑰驗證寫入指令欲寫入 的暫時檔的邏輯區(qū)塊地址與判斷從主機中傳送至儲存裝置的數(shù)據(jù)流是否為寫 入至邏輯區(qū)塊地址,其中倘若數(shù)據(jù)流為寫入至邏輯區(qū)塊地址,則將數(shù)據(jù)流識別 為智能卡芯片的通訊數(shù)據(jù)單元并且傳遞至智能卡芯片。
在本發(fā)明的控制器中,上述的金鑰是由主機設(shè)定。
在本發(fā)明的控制器中,上述的數(shù)據(jù)分派模組與主機設(shè)定金鑰包括透過安 全指令從主機中接收金鑰;儲存金鑰;以及傳送金鑰設(shè)定回應(yīng)訊息至主機以告 知金鑰是否設(shè)定成功。
在本發(fā)明的控制器中,上述的數(shù)據(jù)分派模組依據(jù)金鑰來驗證金鑰驗證寫入指令包括從主機中接收金鑰驗證寫入指令,其中金鑰驗證寫入指令會在主機 于非易失性存儲器上所建立的對暫時檔中寫入亂數(shù)值與擾亂值,并且擾亂值是 借由將亂數(shù)值以金鑰加密所產(chǎn)生;以金鑰解密擾亂值以獲得還原亂數(shù)值;以及
將還原亂數(shù)值與亂數(shù)值進行比較,其中當(dāng)還原亂數(shù)值與亂數(shù)值為相同時表示金 鑰驗證寫入指令通過驗證。
在本發(fā)明的控制器中,上述的數(shù)據(jù)分派模組依據(jù)該金鑰來驗證金鑰驗證寫
入指令還包括傳送包含還原亂數(shù)值的金鑰驗證回應(yīng)訊息至主機。
在本發(fā)明的控制器中,上述的數(shù)據(jù)分派模組還包括從智能卡芯片中接收 回應(yīng)數(shù)據(jù)單元;依據(jù)主機的讀取指令來傳送回應(yīng)數(shù)據(jù)單元至主機;以及在傳送 回應(yīng)數(shù)據(jù)單元后清除邏輯區(qū)塊地址并告知主機以關(guān)閉暫時檔案。
在本發(fā)明的控制器中,上述的數(shù)據(jù)分派模組還包括重復(fù)判斷從主機中傳 送至儲存裝置的數(shù)據(jù)流是否為寫入至邏輯區(qū)塊地址的步驟直到從主機中接收 到終止指令為止;以及接收到終止指令后清除邏輯區(qū)塊地址并告知主機以關(guān)閉 暫時檔。
在本發(fā)明的控制器中,上述的儲存裝置為SD接口存儲卡或MMC接口存儲卡。
在本發(fā)明的控制器中,上述的非易失性存儲器為單層存儲單元(Single Level Cell, SLC) NAND快閃存儲器或多層存儲單元(Multi Level Cell, MLC) NAND快閃存儲器。
在本發(fā)明的控制器中,上述的通訊數(shù)據(jù)單元為指令-應(yīng)用程序數(shù)據(jù)單元 (Command-Application Protocol Data Unit, C-APDU),并且該回應(yīng)數(shù)據(jù)單元為 回應(yīng)-應(yīng)用程序數(shù)據(jù)單元(Response-Application Protocol Data Unit, R-APDU)。
本發(fā)明提出一種數(shù)據(jù)流傳送分派方法,其適用于從主機中接收欲傳送至具 有非易失性存儲器與智能卡芯片的儲存裝置的數(shù)據(jù)流,此方法包括依據(jù)金鑰來 驗證來自于主機的金鑰驗證寫入指令,并且在金鑰驗證寫入指令通過驗證下記 錄金鑰驗證寫入指令欲寫入的暫時檔的邏輯區(qū)塊地址。之后,判斷從主機中傳 送至儲存裝置的數(shù)據(jù)流是否為寫入至邏輯區(qū)塊地址,其中倘若數(shù)據(jù)流為寫入至 邏輯區(qū)塊地址,則將數(shù)據(jù)流識別為智能卡芯片的通訊數(shù)據(jù)單元并且傳遞至智能 卡芯片。
11本發(fā)明因采用驗證金鑰與驗證暫時檔LBA的雙重驗證機制來判斷所傳送 的數(shù)據(jù)流是否為智能卡芯片指令,因此可有效地降低數(shù)據(jù)流誤送至智能卡芯片 的機率,由此提升系統(tǒng)的效能。
為讓本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,以下結(jié)合附圖對本發(fā)
明的具體實施方式
作詳細說明,其中
圖1是根據(jù)本發(fā)明第一實施例繪示數(shù)據(jù)流傳送分派系統(tǒng)的概要方塊圖。
圖2是繪示圖1所示主機系統(tǒng)的概要圖。
圖3A-3C是根據(jù)本發(fā)明第一實施例繪示數(shù)據(jù)流傳送分派方法的流程圖。 圖4是根據(jù)圖3A-3C繪示的數(shù)據(jù)流示意圖。
圖5是根據(jù)本發(fā)明實施例繪示金鑰驗證寫入指令的數(shù)據(jù)格式范例。 圖6是根據(jù)本發(fā)明實施例繪示金鑰驗證回應(yīng)訊息的數(shù)據(jù)格式范例。 圖7是根據(jù)本發(fā)明第二實施例繪示數(shù)據(jù)流傳送分派方法的流程圖。 主要元件符號說明 100:儲存裝置 110:控制器
110a:微處理單元
110b:數(shù)據(jù)分派模組
110C:快閃存儲器接口
110d:緩沖存儲器
120:總線連接接口
130:非易失性存儲器
140:智能卡芯片
200:主機系統(tǒng)
202:操作系統(tǒng)
204:檔案系統(tǒng)
206:應(yīng)用程序
208:標(biāo)準(zhǔn)卡驅(qū)動程序210:卡控制器
S301、 S303、 S305、 S307、 S309、 S311、 S313、 S315、 S317、 S319、 S321、 S323、 S325、 S327、 S329、 S331、 S333、 S3100、 S3200、 S3300、 S3300,數(shù)
據(jù)傳送分派程序的步驟 502:數(shù)據(jù)長度欄位 504:驗證型態(tài)欄位 506:擾亂值欄位 508:亂數(shù)值欄位 602:數(shù)據(jù)長度欄位 604:還原亂數(shù)值欄位
具體實施例方式
本發(fā)明提供一種包括應(yīng)用程序與控制器的數(shù)據(jù)流傳送分派系統(tǒng),應(yīng)用程序 與控制器是分別地配置在主機系統(tǒng)與儲存裝置,其能夠透過驗證主機系統(tǒng)與儲 存裝置之間建立的金鑰和特定的邏輯區(qū)塊地址來正確地判斷數(shù)據(jù)流是否為傳 送給智能卡的指令。以下將以數(shù)個范例實施例并配合附圖來詳細說明本發(fā)明。 但必須了解的是,此些范例實施例并非限制本發(fā)明。
第一實施例
圖1是根據(jù)本發(fā)明第一實施例繪示數(shù)據(jù)流傳送分派系統(tǒng)的概要方塊圖。
請參照圖1,數(shù)據(jù)流傳送分派系統(tǒng)包括應(yīng)用程序206與控制器110。應(yīng)用 程序206是安裝在主機系統(tǒng)200上,而控制器IIO是配置在儲存裝置100上。 通常儲存裝置100會與主機系統(tǒng)200 —起使用,以使主機系統(tǒng)200可將數(shù)據(jù)寫 入至儲存裝置IOO或從儲存裝置IOO中讀取數(shù)據(jù)。特別是,儲存裝置100會包 括儲存一般數(shù)據(jù)的非易失性存儲器130以及執(zhí)行安全驗證等功能的智能卡芯片 140,而應(yīng)用程序206與控制器110可執(zhí)行根據(jù)本發(fā)明實施例的數(shù)據(jù)傳送分派 方法以正確地判斷數(shù)據(jù)流是否為傳送給智能卡的通訊數(shù)據(jù)單元(communication dataimit)。以下將詳細說明圖1中各元件的詳細功能。
控制器IIO會控制數(shù)據(jù)流的分派、儲存、讀取與抹除等??刂破?10包括微處理單元110a、數(shù)據(jù)分派模組110b、快閃存儲器接口 110c與緩沖存儲器 110d。
微處理單元110a會協(xié)調(diào)控制器100內(nèi)各個元件的整體運作。 數(shù)據(jù)分派模組110b是電性連接至微處理單元110a。數(shù)據(jù)分派模組110b會 事先與主機系統(tǒng)200協(xié)商設(shè)定金鑰,以及之后依據(jù)金鑰來驗證主機系統(tǒng)200建 立的暫時檔且記錄此暫時檔的邏輯區(qū)塊地址(logical block address, LB A)。由 此,當(dāng)主機系統(tǒng)200傳送數(shù)據(jù)流至儲存裝置100時,數(shù)據(jù)分派模組110b可判 斷從主機系統(tǒng)200所傳送的數(shù)據(jù)流是否為寫入至此邏輯區(qū)塊地址。其中倘若數(shù) 據(jù)流為寫入至此邏輯區(qū)塊地址時,則會將數(shù)據(jù)流識別為給智能卡芯片140的通 訊數(shù)據(jù)單元并且傳遞至智能卡芯片140。在本發(fā)明實施例中,此通訊數(shù)據(jù)單元 是符合ISO 7816標(biāo)準(zhǔn)的指令-應(yīng)用程序協(xié)定數(shù)據(jù)單元(Command-Application Protocol Data Unit, C-APDU)。數(shù)據(jù)傳送分派的方法將于稍后配合圖3A 3C詳 細說明。
快閃存儲器接口 llOc是電性連接至微處理單元110a并且用以存取非易失 性存儲器130。也就是,主機系統(tǒng)200欲寫入至非易失性存儲器no的數(shù)據(jù)會 經(jīng)由快閃存儲器接口 llOc轉(zhuǎn)換為非易失性存儲器130所能接受的格式。
緩沖存儲器110d是電性連接至微處理單元110a并且用以暫時地儲存系統(tǒng) 數(shù)據(jù)(例如邏輯實體對映表)或者主機系統(tǒng)200所讀取或?qū)懭氲臄?shù)據(jù)。在本實 施例中,緩沖存儲器110d為靜態(tài)隨機存取存儲器(static random access memory, SRAM)。然而,必須了解的是,本發(fā)明不限于此,動態(tài)隨機存取存儲器(Dynamic Random Access memory, DRAM)、 磁阻式存儲器(Magnetoresistive Random Access Memory, MRAM)、相變化存儲器(Phase Change Random Access Memory PRAM)、同步動態(tài)隨機存取存儲器(Synchronous DRAM, SDRAM)或其他 適合的存儲器也可應(yīng)用于本發(fā)明。
此外,雖未繪示于本實施例中,但控制器IIO還可包括錯誤校正模組與電 源管理模組等一般快閃存儲器常見的功能模組。
非易失性存儲器130是電性連接控制器IIO并且用以儲存數(shù)據(jù)。在本發(fā)明 實施例中,非易失性存儲器130為單層存儲單元(Single Level Cell, SLC)NAND 快閃存儲器。然而,本發(fā)明不限于此,在本發(fā)明另一實施例中,非易失性存儲器130為還可為多層存儲單元(Multi Level Cell, MLC) NAND快閃存儲器或 其他適合的非易失性存儲器。
智能卡芯片140是電性連接控制器IIO并且用以執(zhí)行計算、加密、雙向通 信及安全認證等功能。在本發(fā)明實施例中,智能卡芯片140為相容于ISO 7816 標(biāo)準(zhǔn)的接觸式智能卡芯片。然而,必須了解的是,本發(fā)明不限于此。例如,智 能卡芯片140還可為相容于ISO 14443的非接觸式智能卡芯片。
儲存裝置100除了控制器110、非易失性存儲器130以及智能卡芯片140 之外還包括總線連接接口 120??偩€連接接口 120是電性連接控制器IIO并且 用以與主機系統(tǒng)200連接。在本實施例中總線連接接口 120為一安全數(shù)字 (secure digital, SD)接口。必須了解的是,總線連接接口 120亦可為其他適合 的接口。例如當(dāng)儲存裝置IOO為MMC存儲卡時,總線連接接口 120為MMC 接口。
在本實施例中,儲存裝置IOO為安全數(shù)字(secure digital, SD)存儲卡。但 必須了解的是,在本發(fā)明另一實施例中儲存裝置IOO也可以是多媒體卡(Multi Media Card, MMC)存儲卡或其他的存儲卡。
應(yīng)用程序206是用以操作儲存裝置100,以完成根據(jù)本發(fā)明實施例的數(shù)據(jù) 傳送分派方法。此外,必須了解的是主機系統(tǒng)200還包含主機系統(tǒng)欲與儲存裝 置IOO連接所需具備的一般功能。例如,主機系統(tǒng)200上包括操作系統(tǒng)202、 檔案系統(tǒng)204、標(biāo)準(zhǔn)卡驅(qū)動程序208與卡控制器210 (如圖2所示),其中主 機系統(tǒng)200可經(jīng)由標(biāo)準(zhǔn)卡驅(qū)動程序208及卡控制器210來與儲存裝置100完成 連接,并且透過操作系統(tǒng)202、檔案系統(tǒng)204與應(yīng)用程序206對儲存裝置100 進行操作。
基于此,在主機200在對上述含有非易失性存儲器130與智能卡芯片140 的架構(gòu)的儲存裝置IOO進行操作時,根據(jù)本發(fā)明實施例的控制器IIO配合應(yīng)用 程序206的操作能夠識別出所接收的數(shù)據(jù)流是否為智能卡芯片140的C-APDU, 以正確地將屬于C-APDU的數(shù)據(jù)流傳送至智能卡芯片140。以下將配合圖 3A 3C與圖4詳細說明控制器110與主機系統(tǒng)200之間所執(zhí)行數(shù)據(jù)傳送分派程 序的流程圖。
圖3A 3C是根據(jù)本發(fā)明第一實施例繪示數(shù)據(jù)流傳送分派方法的流程圖,
15圖4是根據(jù)3A 3C繪示的數(shù)據(jù)流示意圖。
請參照圖3A 3C與圖4,首先在要能對儲存裝置100的智能卡芯片進行操 作之前必需先對儲存裝置IOO進行設(shè)定金鑰(key)程序(步驟S3100)。
例如,在步驟S3100中主機系統(tǒng)200的應(yīng)用程序206會通過安全指令將一 支金鑰傳送至控制器110 (步驟S301),在本發(fā)明實施例中此安全指令是SD 卡標(biāo)準(zhǔn)中的安全指令(secure command)。使用SD卡標(biāo)準(zhǔn)中的安全指令來設(shè) 定金鑰為此領(lǐng)域孰知技藝者可參照SD卡規(guī)格書來輕易實作,在此不詳細描述。
之后,控制器110的數(shù)據(jù)分派模組110b會儲存此支金鑰(步驟S303), 并且會傳送金鑰設(shè)定回應(yīng)訊息至主機系統(tǒng)200 (步驟S305)。主機系統(tǒng)200的 應(yīng)用程序206可透過讀取指令(read command)來讀取金鑰設(shè)定回應(yīng)訊息,并 且依此來確認金鑰是否設(shè)定成功(步驟S307)。
儲存裝置IOO在完成上述金鑰設(shè)定之后,即可于之后欲對智能卡芯片操作 時使用后續(xù)程序來進行數(shù)據(jù)傳送分派。
當(dāng)主機系統(tǒng)200欲操作儲存裝置100的智能卡芯片140時,數(shù)據(jù)分派模組 110b會依據(jù)上述建立的金鑰來驗證主機系統(tǒng)200在儲存裝置IOO上所建立的暫 時檔(步驟S3200)。
具體來說,在步驟S3200中首先主機系統(tǒng)200的應(yīng)用程序206會在儲存裝 置IOO的非易失性存儲器130上建立一暫時檔(步驟S309)。接著,應(yīng)用程序 206會產(chǎn)生一組亂數(shù)值并且利用上述金鑰加密此組亂數(shù)值用以產(chǎn)生一組擾亂值 (步驟S311)。然后,應(yīng)用程序206會對儲存裝置IOO發(fā)布一金鑰驗證寫入指 令而將亂數(shù)值與擾亂值寫入至所建立的暫時檔中(步驟S313)。在步驟S315 中,當(dāng)數(shù)據(jù)分派模組110b接收到金鑰驗證寫入指令時會以所設(shè)定的金鑰解密 此擾亂值以獲得還原亂數(shù)值。并且,數(shù)據(jù)分派模組110b會將此還原亂數(shù)值與 所接收的亂數(shù)值進行比較以判斷兩者是否相同(步驟S317)。倘若還原亂數(shù)值 與所接收的亂數(shù)值為相同(即表示通過驗證)時,則數(shù)據(jù)分派模組110b會儲 存暫時檔的LBA (步驟S319)。
圖5是根據(jù)本發(fā)明實施例繪示金鑰驗證寫入指令的數(shù)據(jù)格式范例。請參照 圖5,金鑰驗證寫入指令的數(shù)據(jù)格式500包括數(shù)據(jù)長度欄位502、驗證金鑰型 態(tài)欄位504、擾亂值欄位506以及亂數(shù)值欄位508。數(shù)據(jù)長度欄位502會記錄
16金鑰驗證寫入指令的有效長度位。驗證金鑰型態(tài)欄位504會記錄在單次金鑰驗 證完成后可否對智能卡芯片140重復(fù)傳送C-APDU。在本實施例中,是設(shè)定為 每次金鑰驗證完成后僅能傳送一次C-APDU,例如驗證金鑰型態(tài)欄位504設(shè)定 為0。然而,在本發(fā)明另一實施例中,可在金鑰驗證完成后傳送多次C-APDU, 例如驗證金鑰型態(tài)欄位504設(shè)定為1。擾亂值欄位506記錄所產(chǎn)生的擾亂值。 亂數(shù)值欄位508記錄所產(chǎn)生的亂數(shù)值。
為了使應(yīng)用程序206也可確認驗證結(jié)果,例如數(shù)據(jù)分派模組110b會回應(yīng) 一金鑰驗證回應(yīng)訊息給應(yīng)用程序206以傳送還原亂數(shù)值(步驟S321),由此應(yīng) 用程序206可由比對還原亂數(shù)值和原先產(chǎn)生的亂數(shù)值來確認金鑰驗證結(jié)果。圖 6是根據(jù)本發(fā)明實施例繪示金鑰驗證回應(yīng)訊息的數(shù)據(jù)格式范例。請參照圖6, 金鑰驗證回應(yīng)訊息的數(shù)據(jù)格式600包括數(shù)據(jù)長度欄位602以及還原亂數(shù)值欄位 604。數(shù)據(jù)長度欄位602會記錄金鑰驗證回應(yīng)訊息的有效長度位。還原亂數(shù)值 欄位604記錄所還原的亂數(shù)值。
當(dāng)通過步驟S3200金鑰驗證程序之后,主機系統(tǒng)200則可透過暫時檔來傳 遞C-APDU給儲存裝置IOO的智能卡芯片140。也就是說,儲存裝置100此時 會處于等待主機系統(tǒng)200下達C-APDU的閑置(Idle)狀態(tài)。當(dāng)儲存裝置100 從主機系統(tǒng)200中接受到數(shù)據(jù)流時,則數(shù)據(jù)分派模組110b會對主機系統(tǒng)200 所傳送的數(shù)據(jù)流進行數(shù)據(jù)分派步驟(步驟S3300)。
具體來說,當(dāng)主機系統(tǒng)200傳遞數(shù)據(jù)流至儲存裝置IOO時,則在步驟S323 中數(shù)據(jù)分派模組110b會判斷所傳遞的數(shù)據(jù)流是否為寫入至所儲存的邏輯區(qū)塊 地址中。倘若在步驟S323中判斷數(shù)據(jù)流是寫入至上述記錄的邏輯區(qū)塊地址中 時,則數(shù)據(jù)分派模組110b會將數(shù)據(jù)流傳遞至智能卡芯片140 (步驟S325)。 換言之,數(shù)據(jù)分派模組110b會依據(jù)數(shù)據(jù)流為寫入至所記錄的邏輯區(qū)塊地址而 判斷此數(shù)據(jù)流為智能卡芯片140的C-APDU,并且將此數(shù)據(jù)流傳送至智能卡芯 片140。反之,倘若在步驟S323中判斷數(shù)據(jù)流不是寫入至上述記錄的邏輯區(qū)塊 地址中時,則數(shù)據(jù)分派模組110b會判斷此數(shù)據(jù)流不是智能卡芯片140的 C-APDU。也就是說,當(dāng)主機系統(tǒng)200的應(yīng)用程序206欲傳送C-APDU給智能 卡芯片時,其必須將含有C-APDU的數(shù)據(jù)流寫入至?xí)簳r檔中,之后控制器IIO 的數(shù)據(jù)分派模組110b會依據(jù)數(shù)據(jù)流是否為寫入至?xí)簳r檔的邏輯區(qū)塊地址來判斷是否為給智能卡芯片140的C-APDU。此時控制器100會處于等候智能卡芯 片140回應(yīng)的處理(In Progress)狀態(tài)。若判斷為是,則控制器110將C-APDU 傳送給智能卡芯片140。
在步驟S327中,智能卡芯片140在接收到C-APDU后,會傳送回應(yīng)數(shù)據(jù) 單元,至控制器110以回應(yīng)所接收到的C-APDU。在本實施例中,回應(yīng)數(shù)據(jù)單 元是符合ISO 7816標(biāo)準(zhǔn)的回應(yīng)-應(yīng)用程序協(xié)定數(shù)據(jù)單元(Response-Application Protocol Data Unit, R-APDU)。此時,控制器IIO會處于數(shù)據(jù)可用(Data Available)狀態(tài)以等待主機系統(tǒng)200讀取R-APDU。接著,主機系統(tǒng)200的應(yīng) 用程序206可透過讀取指令來從控制器110中讀取R-APDU (步驟S329)。具 體來說,控制器100可經(jīng)由判斷應(yīng)用程序206欲讀取的地址為暫時檔時而提供 R-APDU給應(yīng)用程序206。
在完成R-APDU的讀取后,數(shù)據(jù)分派模組206會清除檔案LBA的記錄并 且主機系統(tǒng)200的應(yīng)用程序206會關(guān)閉暫時檔(步驟S331),此時即完成智能 卡芯片的操作并且控制器110會回復(fù)至閑置狀態(tài)。其中關(guān)閉暫時檔表示不再對 此暫時檔進行寫入或讀取,并且暫時檔可于之后的任何時間被抹除。值得一提 的是,由于每次操作智能卡芯片時,則會重新建立新的暫時檔,因此每次操作 時所建立的暫時檔的LBA會不同。透過驗證金鑰與邏輯區(qū)塊地址的雙重認證 可更正確地判斷數(shù)據(jù)流是否為傳送給智能卡芯片的C-APDU。
綜合上述,本發(fā)明實施例的數(shù)據(jù)傳送分派程序可在使用大容量非易失性存 儲器與智能卡芯片的儲存裝置架構(gòu)下有效地辨識一般性數(shù)據(jù)與智能卡芯片的 APDU。例如,手機的用戶身分模組(Subscriber Identity Module, SIM)卡與廣 泛于手機上使用的Micro-SD存儲卡可結(jié)合為單一儲存卡,同時提供SIM卡身 份驗證的功能以及大容量數(shù)據(jù)儲存的功能。
第二實施例
在第一實施例中,當(dāng)完成驗證金鑰后僅能傳送一次C-APDU。然而,如前 所述本發(fā)明也可于完成驗證金鑰后傳送多次C-APDU,以使得在主機系統(tǒng)200 連續(xù)傳送C-APDU的案例中避免因重復(fù)驗證金鑰而影響系統(tǒng)效能。
本發(fā)明第二實施例的硬件架構(gòu)是相同于第一實施例(如圖l與圖2所示)并且設(shè)定金鑰程序與驗證暫時檔的LBA程序也相同于第一實施例(如圖3A、 3B、圖5與圖6所示),在此不再重復(fù)描述。
值得一提的是,在本實施例中允許于單次通過金鑰驗證之后多次傳遞 C-APDU給智能卡芯片140,因此在圖5的驗證金鑰型態(tài)欄位504中會設(shè)定為1, 以使得數(shù)據(jù)分派模組可辨識此次驗證通過后允許多次傳遞C-APDU。
圖7是根據(jù)本發(fā)明第二實施例繪示數(shù)據(jù)流傳送分派方法的數(shù)據(jù)分派步驟 3300'的流程圖。
請參照圖7,儲存裝置100在完成上述金鑰設(shè)定、金鑰驗證與暫時檔的LBA 驗證之后控制器110會處于閑置狀態(tài)。此時,主機系統(tǒng)200可透過暫時檔來傳 遞C-APDU給儲存裝置IOO的智能卡芯片140,其中數(shù)據(jù)分派模組110b會對主 機系統(tǒng)200所傳送的數(shù)據(jù)流進行數(shù)據(jù)分派步驟(步驟S3300')。
具體來說,當(dāng)主機系統(tǒng)200傳遞數(shù)據(jù)流至儲存裝置IOO時,則在步驟S333 中數(shù)據(jù)分派模組110b會判斷所傳遞的數(shù)據(jù)流是否為停止接收C-APDU的終止 指令。具體來說,當(dāng)通過金鑰驗證與暫時檔LBA驗證程序之后儲存裝置100 是處于可多次接收智能卡芯片140的C-APDU的狀態(tài)。因此,必須透過終止指 令來解除儲存裝置100可接收C-APDU的狀態(tài)。在本實施例中是以512字節(jié)的 OXOO表示為終止指令。
倘若在步驟S333中判斷所傳遞的數(shù)據(jù)流不是停止接收C-APDU的終止指 令時,則在步驟S323中數(shù)據(jù)分派模組110b會判斷所傳遞的數(shù)據(jù)流是否為寫入 至上述記錄的邏輯區(qū)塊地址中。
倘若在步驟S323中判斷數(shù)據(jù)流是寫入至上述記錄的邏輯區(qū)塊地址中時, 則數(shù)據(jù)分派模組110b會將數(shù)據(jù)流傳遞至智能卡芯片140 (步驟S325)。換言 之,數(shù)據(jù)分派模組110b會依據(jù)數(shù)據(jù)流為寫入至所記錄的邏輯區(qū)塊地址而判斷 此數(shù)據(jù)流為智能卡芯片140的C-APDU,并且將此數(shù)據(jù)流傳送至智能卡芯片 140。反之,倘若在步驟S323中判斷數(shù)據(jù)流不是寫入至上述記錄的邏輯區(qū)塊地 址中時,則數(shù)據(jù)分派模組110b會判斷此數(shù)據(jù)流不是智能卡芯片140的C-APDU。
在步驟S327中,智能卡芯片140會傳送回應(yīng)-應(yīng)用程序協(xié)定數(shù)據(jù)單元 (Response-Application Protocol Data Unit, R-APDU)至控制器110以回應(yīng)所接 收到的C-APDU。接著,主機系統(tǒng)200的應(yīng)用程序206可透過讀取指令來從控制器110中讀取R-APDU (步驟S329)。具體來說,控制器100可經(jīng)由判斷應(yīng) 用程序206欲讀取的地址為暫時檔時而提供R-APDU給應(yīng)用程序206。
倘若在步驟S333中判斷所傳遞的數(shù)據(jù)流為停止接收C-APDU的終止指令 時,則數(shù)據(jù)分派模組206會清除檔案LBA的記錄并且主機系統(tǒng)200的應(yīng)用程 序206會關(guān)閉暫時檔(步驟S331),此時即結(jié)束智能卡芯片的操作。其中關(guān)閉 暫時檔表示不再對此暫時檔進行寫入或讀取,并且暫時檔可于之后的任何時間 被抹除。
本實施例的數(shù)據(jù)傳送分派程序除了具有如第一實施例所述的優(yōu)點之外,由 于在金鑰驗證完成后多次傳送C-APDU給智能卡芯片,因此可避免多次驗證金 鑰所造成的系統(tǒng)效能降低。
綜上所述,本發(fā)明透過在傳送C-APDU之前驗證金鑰以及檔案LBA,并 且在通過驗證下才將數(shù)據(jù)流傳送至智能卡芯片。因此,可有效地降低數(shù)據(jù)流誤 送至智能卡芯片的機率,由此提升系統(tǒng)的效能。
雖然本發(fā)明已以較佳實施例揭示如上,然其并非用以限定本發(fā)明,任何本 領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的修改和完善, 因此本發(fā)明的保護范圍當(dāng)以權(quán)利要求書所界定的為準(zhǔn)。
20
權(quán)利要求
1.一種數(shù)據(jù)流傳送分派系統(tǒng),其適用于在主機和具有非易失性存儲器與智能卡芯片的儲存裝置之間的數(shù)據(jù)流傳送,該數(shù)據(jù)流傳送分派系統(tǒng)包括應(yīng)用程序,安裝于該主機上并且用以操作該儲存裝置;以及控制器,配置于該儲存裝置中,并且電性連接至該非易失性存儲器與該智能卡芯片,其中該控制器具有一金鑰,該控制器會依據(jù)該金鑰來驗證一金鑰驗證寫入指令,并且在該金鑰驗證寫入指令通過驗證下記錄該金鑰驗證寫入指令欲寫入的一暫時檔的一邏輯區(qū)塊地址,以及該控制器會判斷從該主機傳送至該儲存裝置的數(shù)據(jù)流是否為寫入至該邏輯區(qū)塊地址,倘若該數(shù)據(jù)流為寫入至該邏輯區(qū)塊地址時,則會將該數(shù)據(jù)流識別為該智能卡的一通訊數(shù)據(jù)單元并且傳遞至該智能卡芯片。
2. 如權(quán)利要求1所述的數(shù)據(jù)流傳送分派系統(tǒng),其特征在于,該應(yīng)用程序會 于該控制器上設(shè)定該金鑰,并且在該非易失性存儲器上建立該暫時檔。
3. 如權(quán)利要求2所述的數(shù)據(jù)流傳送分派系統(tǒng),其特征在于,該應(yīng)用程序于 該控制器上設(shè)定該金鑰包括該應(yīng)用程序透過一安全指令傳送該金鑰至該控制器; 該控制器儲存該金鑰;以及該控制器傳送一金鑰設(shè)定回應(yīng)訊息至該應(yīng)用程序以告知該金鑰是否設(shè)定 成功。
4. 如權(quán)利要求2所述的數(shù)據(jù)流傳送分派系統(tǒng),其特征在于,該控制器依據(jù) 該金鑰來驗證該金鑰驗證寫入指令包括從該應(yīng)用程序中接收該金鑰驗證寫入指令,其中該金鑰驗證寫入指令會對 該暫時檔寫入一亂數(shù)值與一擾亂值,并且該擾亂值是由將該亂數(shù)值以該金鑰加 密所產(chǎn)生;以該金鑰解密該擾亂值以獲得一還原亂數(shù)值;以及 將該還原亂數(shù)值與該亂數(shù)值進行比較,其中當(dāng)該還原亂數(shù)值與該亂數(shù)值為相同時表示該金鑰驗證寫入指令通過 驗證。
5. 如權(quán)利要求4所述的數(shù)據(jù)流傳送分派系統(tǒng),其特征在于,該控制器依據(jù) 該金鑰來驗證該金鑰驗證寫入指令還包括傳送包含該還原亂數(shù)值的一金鑰驗證回應(yīng)訊息至該主機。
6. 如權(quán)利要求1所述的數(shù)據(jù)流傳送分派系統(tǒng),其特征在于,該控制器更包括從該智能卡芯片中接收一回應(yīng)數(shù)據(jù)單元;依據(jù)該應(yīng)用程序的一讀取指令來傳送該回應(yīng)數(shù)據(jù)單元至該應(yīng)用程序;以及 在傳送該回應(yīng)數(shù)據(jù)單元后清除該邏輯區(qū)塊地址并告知該應(yīng)用程序以關(guān)閉 該暫時檔。
7. 如權(quán)利要求1所述的數(shù)據(jù)流傳送分派系統(tǒng),其特征在于,該控制器還包括重復(fù)執(zhí)行判斷從該主機傳送至該儲存裝置的數(shù)據(jù)流是否為寫入至該邏輯 區(qū)塊地址的步驟直到從該應(yīng)用程序中接收到終止指令為止;以及接收到該終止指令后清除該邏輯區(qū)塊地址并告知該應(yīng)用程序以關(guān)閉該暫 時檔。
8. 如權(quán)利要求6所述的數(shù)據(jù)流傳送分派系統(tǒng),其特征在于,該通訊數(shù)據(jù)單 元為一指令-應(yīng)用程序數(shù)據(jù)單元,并該回應(yīng)數(shù)據(jù)單元為一回應(yīng)-應(yīng)用程序數(shù)據(jù)單 元。
9. 一種數(shù)據(jù)流傳送分派方法,其適用于從主機傳遞數(shù)據(jù)流至具有非易失性存儲器與智能卡芯片的儲存裝置,該數(shù)據(jù)流傳送分派方法包括 在該主機與該儲存裝置之間設(shè)定金鑰;在該儲存裝置的非易失性存儲器中建立一暫時檔,并且執(zhí)行一金鑰驗證寫 入指令;依據(jù)該金鑰來驗證該金鑰驗證寫入指令;在該金鑰驗證寫入指令通過驗證時記錄該暫時檔的邏輯區(qū)塊地址;以及 判斷從該主機中傳送至該儲存裝置的數(shù)據(jù)流是否為寫入至該邏輯區(qū)塊地址,其中倘若該數(shù)據(jù)流為寫入至該邏輯區(qū)塊地址時,則將該數(shù)據(jù)流識別為該智 能卡芯片的通訊數(shù)據(jù)單元并且傳遞至該智能卡芯片。
10. 如權(quán)利要求9所述的數(shù)據(jù)流傳送分派方法,其特征在于,在該主機與該 儲存裝置之間設(shè)定該金鑰包括-透過一安全指令從該主機中將該金鑰傳送至該儲存裝置; 儲存該金鑰;以及從該儲存裝置中讀取一金鑰設(shè)定回應(yīng)訊息以判斷該金鑰是否設(shè)定成功。
11. 如權(quán)利要求9所述的數(shù)據(jù)流傳送分派方法,其特征在于,依據(jù)該金鑰來 驗證該金鑰驗證寫入指令包括對該暫時檔寫入一亂數(shù)值與一擾亂值,其中該擾亂值是借由將該亂數(shù)值以 該金鑰加密所產(chǎn)生;在該儲存裝置中以該金鑰解密該擾亂值以獲得一還原亂數(shù)值;以及 將該還原亂數(shù)值與該亂數(shù)值進行比較,其中當(dāng)該還原亂數(shù)值與該亂數(shù)值為相同時表示該金鑰驗證寫入指令通過 驗證。
12. 如權(quán)利要求11所述的數(shù)據(jù)流傳送分派方法,其特征在于,依據(jù)該金鑰 來驗證該金鑰驗證寫入指令還包括從該儲存裝置中讀取包含該還原亂數(shù)值的一金鑰驗證回應(yīng)訊息;以及 判斷該還原亂數(shù)值與原先所寫入的該亂數(shù)值是否相同,其中當(dāng)該還原亂數(shù)值與原先所寫入的該亂數(shù)值為相同時表示該金鑰驗證 寫入指令通過驗證。
13. 如權(quán)利要求9所述的數(shù)據(jù)流傳送分派方法,其特征在于,還包括在該智 能卡芯片接收到該數(shù)據(jù)流之后傳送一回應(yīng)數(shù)據(jù)單元。
14. 如權(quán)利要求13所述的數(shù)據(jù)流傳送分派方法,其特征在于,還包括在該 主機接收到該回應(yīng)數(shù)據(jù)單元后執(zhí)行下列步驟清除該邏輯區(qū)塊地址;以及 關(guān)閉該暫時檔。
15. 如權(quán)利要求9所述的數(shù)據(jù)流傳送分派方法,其特征在于,還包括重復(fù)判 斷從該主機中傳送至該儲存裝置的數(shù)據(jù)流是否為寫入至該邏輯區(qū)塊地址的步驟直到接收到終止指令為止。
16. 如權(quán)利要求15所述的數(shù)據(jù)流傳送分派方法,其特征在于,還包括在接收到該終止指令后執(zhí)行下列步驟 清除該邏輯區(qū)塊地址;以及關(guān)閉該暫時檔。
17. —種控制器,其適用于具有非易失性存儲器與智能卡芯片的儲存裝置, 該快閃存儲器控制器包括一微處理單元;一存儲器接口,電性連接該微處理單元,用以存取該非易失性存儲器; 一緩沖存儲器,電性連接該微處理單元,用以暫時地儲存數(shù)據(jù);以及 一數(shù)據(jù)分派模組,電性連接該微處理單元,具有一金鑰并且用以依據(jù)該金 鑰來驗證來自于一主機的一金鑰驗證寫入指令、在該金鑰驗證寫入指令通過驗 證下記錄該金鑰驗證寫入指令欲寫入的一暫時檔的一邏輯區(qū)塊地址與判斷從 該主機中傳送至該儲存裝置的數(shù)據(jù)流是否為寫入至該邏輯區(qū)塊地址,其中倘若該數(shù)據(jù)流為寫入至該邏輯區(qū)塊地址,則將該數(shù)據(jù)流識別為該智能 卡芯片的通訊數(shù)據(jù)單元并且傳遞至該智能卡芯片。
18. 如權(quán)利要求17所述的控制器,其特征在于,該金鑰是由該主機設(shè)定。
19. 如權(quán)利要求17所述的控制器,其特征在于,該數(shù)據(jù)分派模組與該主機 設(shè)定該金鑰包括透過一安全指令從該主機中接收該金鑰; 儲存該金鑰;以及傳送一金鑰設(shè)定回應(yīng)訊息至該主機以告知該金鑰是否設(shè)定成功。
20. 如權(quán)利要求17所述的控制器,其特征在于,該數(shù)據(jù)分派模組依據(jù)該金 鑰來驗證該金鑰驗證寫入指令包括從該主機中接收該金鑰驗證寫入指令,其中該金鑰驗證寫入指令會在該主 機于該非易失性存儲器上所建立的該暫時檔中寫入一亂數(shù)值與一擾亂值,并且 該擾亂值是由將該亂數(shù)值以該金鑰加密所產(chǎn)生;以該金鑰解密該擾亂值以獲得一還原亂數(shù)值;以及將該還原亂數(shù)值與該亂數(shù)值進行比較,其中當(dāng)該還原亂數(shù)值與該亂數(shù)值為相同時表示該金鑰驗證寫入指令通過 驗證。
21. 如權(quán)利要求20所述的控制器,其特征在于,該數(shù)據(jù)分派模組依據(jù)該金 鑰來驗證該金鑰驗證寫入指令還包括傳送包含該還原亂數(shù)值的一金鑰驗證回應(yīng)訊息至該主機。
22. 如權(quán)利要求17所述的控制器,其特征在于,該數(shù)據(jù)分派模組還包括 從該智能卡芯片中接收一回應(yīng)數(shù)據(jù)單元;依據(jù)該主機的一讀取指令來傳送該回應(yīng)數(shù)據(jù)單元至該主機;以及 在傳送該回應(yīng)數(shù)據(jù)單元后清除該邏輯區(qū)塊地址并告知該主機以關(guān)閉該暫 時檔。
23. 如權(quán)利要求17所述的控制器,其特征在于,該數(shù)據(jù)分派模組還包括 重復(fù)判斷從該主機中傳送至該儲存裝置的數(shù)據(jù)流是否為寫入至該邏輯區(qū)塊地址的步驟直到從該主機中接收到終止指令為止;以及接收到該終止指令后清除該邏輯區(qū)塊地址并告知該主機以關(guān)閉該暫時檔。
24. 如權(quán)利要求17所述的控制器,其特征在于,該儲存裝置為SD接口存 儲卡或MMC接口存儲卡。
25. 如權(quán)利要求17所述的控制器,其特征在于,該非易失性存儲器為單層 存儲單元NAND快閃存儲器或多層存儲單元NAND快閃存儲器。
26. 如權(quán)利要求22所述的控制器,其特征在于,該通訊數(shù)據(jù)單元為一指令-應(yīng)用程序數(shù)據(jù)單元,并該回應(yīng)數(shù)據(jù)單元為一回應(yīng)-應(yīng)用程序數(shù)據(jù)單元。
27. —種數(shù)據(jù)流傳送分派方法,其適用于從主機中接收欲傳送至具有非易失 性存儲器與智能卡芯片的儲存裝置的數(shù)據(jù)流,該數(shù)據(jù)流傳送分派方法包括依據(jù)一金鑰來驗證來自于一主機的一金鑰驗證寫入指令; 在該金鑰驗證寫入指令通過驗證下記錄該金鑰驗證寫入指令欲寫入一暫 時檔的一邏輯區(qū)塊地址;以及判斷從該主機中傳送至該儲存裝置的數(shù)據(jù)流是否為寫入至該邏輯區(qū)塊地址,其中倘若該數(shù)據(jù)流為寫入至該邏輯區(qū)塊地址,則將該數(shù)據(jù)流識別為該智能 卡芯片的通訊數(shù)據(jù)單元并且傳遞至該智能卡芯片。
全文摘要
本發(fā)明公開一種數(shù)據(jù)流傳送分派方法,其適用于從主機傳遞數(shù)據(jù)流至具有非易失性存儲器與智能卡芯片的儲存裝置,此數(shù)據(jù)流傳送分派方法包括在主機與儲存裝置之間設(shè)定金鑰;在儲存裝置的非易失性存儲器中建立暫時檔;依據(jù)金鑰來驗證暫時檔;在暫時檔通過驗證時記錄暫時檔的邏輯區(qū)塊地址;以及判斷從主機中傳送至儲存裝置的數(shù)據(jù)流是否為寫入至邏輯區(qū)塊地址,其中倘若數(shù)據(jù)流為寫入至邏輯區(qū)塊地址時,則將數(shù)據(jù)流識別為指令-應(yīng)用程序數(shù)據(jù)單元(Command-Application Protocol Data Unit,C-APDU)并且傳遞至智能卡芯片。因此,能夠有效地區(qū)別一般數(shù)據(jù)與智能卡芯片指令。
文檔編號G06F3/06GK101526883SQ200810083288
公開日2009年9月9日 申請日期2008年3月3日 優(yōu)先權(quán)日2008年3月3日
發(fā)明者劉興昌, 陳孟彰 申請人:群聯(lián)電子股份有限公司