專利名稱:芯片及其存儲(chǔ)器數(shù)據(jù)保護(hù)裝置與其保護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種芯片及其存儲(chǔ)器數(shù)據(jù)保護(hù)裝置與其保護(hù)方法,且特別是有關(guān) 于一種芯片外部存儲(chǔ)器的數(shù)據(jù)保護(hù)裝置及其方法。
背景技術(shù):
在嵌入式系統(tǒng)(Embedded System)里,系統(tǒng)單芯片(System-on-a-chip)里的中央 處理器負(fù)責(zé)執(zhí)行儲(chǔ)存在內(nèi)建存儲(chǔ)器的程序碼,而為了避免程序碼被竊取的問題,于是當(dāng)鎖 定時(shí),內(nèi)建存儲(chǔ)器的數(shù)據(jù)無法被系統(tǒng)單芯片上的任何接口讀出去,而解除鎖定只有清除內(nèi) 建存儲(chǔ)器的數(shù)據(jù)。然而,隨著電子產(chǎn)品的功能日益強(qiáng)大,相對(duì)的系統(tǒng)單芯片所需要執(zhí)行的程序碼的 檔案也越來越大,因此負(fù)責(zé)儲(chǔ)存程序碼的存儲(chǔ)器近期都會(huì)采用外部存儲(chǔ)器。此時(shí)由于外部 存儲(chǔ)器獨(dú)立于系統(tǒng)單芯片外,也導(dǎo)致儲(chǔ)存在外部存儲(chǔ)器的程序碼很容易被旁人所讀取,并 利用類似逆組譯的方式來破解。這樣一來,設(shè)計(jì)者的辛苦結(jié)晶就被輕易的竊取。而相對(duì)于已知技術(shù)應(yīng)用于系統(tǒng)單芯片的內(nèi)建存儲(chǔ)器的程序碼鎖定的方式顯然是 無法應(yīng)用于系統(tǒng)單芯片的外部存儲(chǔ)器上,也因此,為了提供一個(gè)可以有效保護(hù)系統(tǒng)單芯片 的外部存儲(chǔ)器上的數(shù)據(jù)保護(hù)的機(jī)制,成了設(shè)計(jì)者現(xiàn)今最重要的課題。
發(fā)明內(nèi)容
依照本發(fā)明一實(shí)施例,提出一種存儲(chǔ)器數(shù)據(jù)保護(hù)裝置。此存儲(chǔ)器數(shù)據(jù)保護(hù)裝置包 括儲(chǔ)存裝置、密碼器與驗(yàn)證器。儲(chǔ)存裝置內(nèi)建于與外部存儲(chǔ)器連接的芯片中,用以儲(chǔ)存偏移 值、簽章與密鑰。密碼器耦接儲(chǔ)存裝置與外部存儲(chǔ)器,用以接收密鑰。前述的密碼器包括加 密器與解密器。加密器用以接收原始數(shù)據(jù)與驗(yàn)證數(shù)據(jù),并根據(jù)密鑰將原始數(shù)據(jù)與驗(yàn)證數(shù)據(jù) 進(jìn)行加密,以輸出加密數(shù)據(jù)與加密驗(yàn)證數(shù)據(jù)至外部存儲(chǔ)器。解密器用以讀取儲(chǔ)存于外部存 儲(chǔ)器的加密數(shù)據(jù)與加密驗(yàn)證數(shù)據(jù),并根據(jù)密鑰對(duì)加密數(shù)據(jù)與加密驗(yàn)證數(shù)據(jù)進(jìn)行解密以輸出 解密數(shù)據(jù)。驗(yàn)證器耦接于儲(chǔ)存裝置,接收簽章、偏移值與驗(yàn)證數(shù)據(jù)。驗(yàn)證器依據(jù)驗(yàn)證驗(yàn)證數(shù) 據(jù)與簽章及偏移值來決定外部存儲(chǔ)器的存取權(quán)限。存儲(chǔ)器數(shù)據(jù)保護(hù)裝置依據(jù)存取權(quán)限對(duì)外 部存儲(chǔ)器進(jìn)行原始數(shù)據(jù)的存取。依照本發(fā)明另一實(shí)施例,提出一種芯片。此芯片包括前述實(shí)施例所述的存儲(chǔ)器數(shù) 據(jù)保護(hù)裝置與存儲(chǔ)器。存儲(chǔ)器可用以儲(chǔ)存解密器傳輸?shù)慕饷軘?shù)據(jù)。依照本發(fā)明再一實(shí)施例,提出一種存儲(chǔ)器保護(hù)方法。首先,于儲(chǔ)存裝置中儲(chǔ)存偏移 值、簽章以及密鑰。接著,接收驗(yàn)證數(shù)據(jù),并驗(yàn)證此驗(yàn)證數(shù)據(jù)與前述的簽章與偏移值是否相 符,以決定外部存儲(chǔ)器的存取權(quán)限。之后依據(jù)存取權(quán)限對(duì)外部存儲(chǔ)器進(jìn)行原始數(shù)據(jù)的存取, 并依據(jù)密鑰對(duì)原始數(shù)據(jù)進(jìn)行加密或解密。本發(fā)明上述實(shí)施例所述的存儲(chǔ)器數(shù)據(jù)保護(hù)裝置、芯片以及存儲(chǔ)器數(shù)據(jù)保護(hù)方法, 可使存在于外部存儲(chǔ)器中的數(shù)據(jù)不易被讀取或破解。
圖1是依照本發(fā)明的--實(shí)施例的一種存儲(chǔ)器數(shù)據(jù)保護(hù)裝置的方塊圖。
圖2是依照本發(fā)明的--實(shí)施例的一種存儲(chǔ)器數(shù)據(jù)保護(hù)方法的步驟。
附圖標(biāo)號(hào)
100-H-* LL 心片102 主機(jī)
104外部存儲(chǔ)器106 儲(chǔ)存裝置
108驗(yàn)證器110 密碼器
114偏移值116 簽章
118密鑰120 加密器
122解密器V124 控制器
126啟始程序128 存儲(chǔ)器
130存儲(chǔ)器數(shù)據(jù)保護(hù)裝置 OriData 原始數(shù)據(jù)
EnData 加密數(shù)據(jù)DeData 解密數(shù)據(jù)
S202 S206 本發(fā)明實(shí)施例的存儲(chǔ)器數(shù)據(jù)保護(hù)方法的步驟
具體實(shí)施例方式為讓本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合所附附圖 作詳細(xì)說明如下。請(qǐng)參照?qǐng)D1,是繪示依照本發(fā)明一實(shí)施例所述的一種數(shù)據(jù)保護(hù)系統(tǒng)的方塊圖。此數(shù) 據(jù)保護(hù)系統(tǒng)可包括主機(jī)102、芯片100與外部存儲(chǔ)器104。芯片100可耦接于主機(jī)(Host) 102 與外部存儲(chǔ)器104之間。外部存儲(chǔ)器104例如可為快閃存儲(chǔ)器(flash memory) 0芯片100 可包含存儲(chǔ)器數(shù)據(jù)保護(hù)裝置130與存儲(chǔ)器128,存儲(chǔ)器128例如可為靜態(tài)隨機(jī)存取存儲(chǔ)器 (SRAM)或高速緩沖存儲(chǔ)器(Cache)。存儲(chǔ)器數(shù)據(jù)保護(hù)裝置130可包括儲(chǔ)存裝置106、密碼器(Cipher) 110、驗(yàn)證器 (Validator) 108。儲(chǔ)存裝置106可為非易失性存儲(chǔ)器如一次寫入式(One Time Program, OTP)存儲(chǔ)器、可擦除可編程只讀存儲(chǔ)器(EPR0M)或快閃存儲(chǔ)器(Flash Memory),可用以儲(chǔ) 存簽章(Signature) 116、偏移值(offset) 114、以及密鑰(Key) 118。密碼器110電性耦接儲(chǔ)存裝置106,可用以接收密鑰118與原始數(shù)據(jù)OriData。更 具體而言,密碼器110可包括加密器120與解密器122。加密器120除了可接收原始數(shù)據(jù) OriData外,亦可接收驗(yàn)證數(shù)據(jù)(未繪示),并依據(jù)密鑰118將原始數(shù)據(jù)OriData與驗(yàn)證數(shù) 據(jù)進(jìn)行加密,并輸出加密數(shù)據(jù)EnData與加密驗(yàn)證數(shù)據(jù)至外部存儲(chǔ)器104。前述驗(yàn)證數(shù)據(jù)可 為內(nèi)含簽章的獨(dú)立的數(shù)據(jù)內(nèi)容,亦可與原始數(shù)據(jù)OriData結(jié)合并位于原始數(shù)據(jù)OriData前 段位置(例如原始數(shù)據(jù)OriData前128K的位組(byte))。解密器122可用以讀取儲(chǔ)存于 外部存儲(chǔ)器104的加密數(shù)據(jù)EnData與加密驗(yàn)證數(shù)據(jù),并根據(jù)密鑰118對(duì)加密數(shù)據(jù)EnData 與加密驗(yàn)證數(shù)據(jù)進(jìn)行解密以輸出解密數(shù)據(jù)DeData與驗(yàn)證數(shù)據(jù)。所述的密碼器110可在設(shè)計(jì)時(shí)使的關(guān)閉。例如,當(dāng)芯片100初始設(shè)定或是取消加 密解密功能時(shí),控制器124可設(shè)定密碼器110失能,亦即經(jīng)過密碼器110的數(shù)據(jù)不會(huì)進(jìn)行加 密與解密的處理。若是更進(jìn)一步考量到數(shù)據(jù)保密,在設(shè)計(jì)上密碼器110于關(guān)閉后就無法再 被開啟,除非芯片100進(jìn)行了芯片重置(reset)的動(dòng)作。
驗(yàn)證器108耦接儲(chǔ)存裝置106與密碼器110,可用以接收簽章116與驗(yàn)證數(shù)據(jù)(例 如主機(jī)102或外部存儲(chǔ)器104傳送過來的簽章與偏移值),并依據(jù)驗(yàn)證驗(yàn)證數(shù)據(jù)與簽章 116及偏移值114(例如將簽章116、偏移值114與驗(yàn)證數(shù)據(jù)進(jìn)行比對(duì))來決定外部存儲(chǔ)器 的存取權(quán)限。請(qǐng)?jiān)賲⒖紙D1,存儲(chǔ)器數(shù)據(jù)保護(hù)裝置130可更包括控制器124,控制器124中可包 括啟始程序126。控制器124可執(zhí)行其內(nèi)部的啟始程序126藉以提供各種功能。舉例來說, 主機(jī)102可通過控制器124執(zhí)行啟始程序126,可讓存儲(chǔ)器數(shù)據(jù)保護(hù)裝置130提供不同接 口與主機(jī)102連線,例如通用串行總線(Universal Serial Bus,USB)或通用異步收發(fā)器 (Uni versal Asynchronous Receiver/Transmitter, UART)。此夕卜,執(zhí)對(duì)亍啟女臺(tái)程序 126 亦可 讀取外部存儲(chǔ)器104的數(shù)據(jù),清除儲(chǔ)存裝置106或外部存儲(chǔ)器104的數(shù)據(jù),或?qū)⑵浦?14、 簽章116與密鑰118寫入儲(chǔ)存裝置106。請(qǐng)?jiān)賲⒖紙D1,為加強(qiáng)保密的功效,前述的儲(chǔ)存裝置106可設(shè)計(jì)為不直接被控制器 124讀取,避免儲(chǔ)存裝置106中的偏移值114與簽章116被控制器124讀取。控制器124可 耦接驗(yàn)證器108,在控制器124無法直接讀取儲(chǔ)存裝置106的情形下,驗(yàn)證器108可分別提 供下列三種狀態(tài)給控制器124 1)儲(chǔ)存裝置106是否被寫過。2)儲(chǔ)存裝置106被寫過的情 況下,依據(jù)偏移值114與簽章116驗(yàn)證外部存儲(chǔ)器104的內(nèi)容是否有效。3)儲(chǔ)存裝置106 被寫過的情況下,啟始程序126將數(shù)據(jù)送給驗(yàn)證器108,驗(yàn)證器108依據(jù)簽章116與偏移值 114驗(yàn)證此數(shù)據(jù)是否有效。若儲(chǔ)存裝置106未被寫過(狀態(tài)(1)),控制器124執(zhí)行啟始程 序126并將偏移值114、簽章116與密鑰118寫至儲(chǔ)存裝置106中。為進(jìn)一步說明本發(fā)明實(shí)施例,以下針對(duì)上述存儲(chǔ)器數(shù)據(jù)保護(hù)裝置130應(yīng)用在芯片 100中的數(shù)據(jù)保護(hù)流程舉例說明,流程中所述元件可參考圖1。軟件開發(fā)階段在軟件開發(fā)階段,儲(chǔ)存于外部存儲(chǔ)器104的數(shù)據(jù)如程序碼無須任何保護(hù),儲(chǔ)存裝 置106中亦未被寫入任何數(shù)據(jù)。在此情形下,密碼器104不會(huì)有任何動(dòng)作,數(shù)據(jù)可由主機(jī) 102通過芯片100直接寫到外部存儲(chǔ)器104??刂破?24在執(zhí)行或讀取外部存儲(chǔ)器104的 內(nèi)容時(shí)不會(huì)有解碼的動(dòng)作。測(cè)試或量產(chǎn)階段主機(jī)102先將密鑰118、偏移值114與簽章116送入芯片100。簽章116例如可位 于原始數(shù)據(jù)OriData(待保護(hù)的數(shù)據(jù)如程序碼)的前段位置(例如前128K位組),偏移值 114可為簽章116的位址。接著,啟始程序?qū)⒗抿?yàn)證器108確認(rèn)儲(chǔ)存裝置106沒有被寫入 任何數(shù)據(jù)后,并將密鑰118、偏移值114與簽章116寫入儲(chǔ)存裝置106中。若上述儲(chǔ)存裝置 106已被寫入其他數(shù)據(jù),啟始程序126可回報(bào)錯(cuò)誤信息給主機(jī)。之后,啟始程序126將驗(yàn)證數(shù)據(jù)(例如簽章)與原始數(shù)據(jù)OriData(待保護(hù)數(shù)據(jù) 如程序碼)寫入外部存儲(chǔ)器104中。在儲(chǔ)存裝置106已被寫入數(shù)據(jù)的情形下,密碼器110 中的加密器120依據(jù)密鑰118將寫入外部存儲(chǔ)器104中的數(shù)據(jù)與簽章進(jìn)行加密。之后,啟 始程序126可選擇性的讀取外部存儲(chǔ)器104的數(shù)據(jù)以驗(yàn)證寫入是否成功。更新外部存儲(chǔ)器104的數(shù)據(jù)主機(jī)102可將更新的數(shù)據(jù)中的驗(yàn)證數(shù)據(jù)(例如簽章)送入芯片100中,啟始程序 126將驗(yàn)證數(shù)據(jù)送到驗(yàn)證器108以比對(duì)儲(chǔ)存裝置106中的偏移值118和簽章116。若簽章116與偏移值118的比對(duì)結(jié)果為不符合,則回報(bào)錯(cuò)誤信息予主機(jī)102。若簽章和偏移值相符 就將數(shù)據(jù)寫到外部存儲(chǔ)器104中。接著再把其余數(shù)據(jù)送入芯片100中,啟始程序126持續(xù) 將數(shù)據(jù)寫到外部存儲(chǔ)器104,直到完成為止。最后,啟始程序126可選擇性地讀取外部存儲(chǔ) 器104的數(shù)據(jù)以驗(yàn)證寫入是否成功。執(zhí)行程序啟始程序126可在芯片100供電或重置后被執(zhí)行,在確認(rèn)沒有和主機(jī)102相連后 即準(zhǔn)備檢驗(yàn)外部存儲(chǔ)器104。啟始程序通知驗(yàn)證器108讀取外部存儲(chǔ)器104中的驗(yàn)證數(shù)據(jù) (例如簽章、偏移值),以確認(rèn)外部存儲(chǔ)器104中的簽章與簽章位址(偏移值)與儲(chǔ)存裝置 106的簽章116與偏移值114相符合。驗(yàn)證器108將通知控制器124簽章是否有效,若無效 即中止執(zhí)行。若有效,啟始程序126將控制器124的執(zhí)行權(quán)交給外部存儲(chǔ)器的程序。由上可知,前述的偏移值114和簽章116是為了避免外部存儲(chǔ)器104儲(chǔ)存的數(shù) 據(jù)被篡改并顧及到更新的可行性。若沒有數(shù)據(jù)更新的須求,簽章116可以是檢查總和 (Checksum)或循環(huán)冗余檢測(cè)碼(Cyclic RedundancyCheck,CRC),增加數(shù)據(jù)被篡改的難度。請(qǐng)?jiān)賲⒖紙D1,為了提高執(zhí)行效能,在設(shè)計(jì)上可加入存儲(chǔ)器128于存儲(chǔ)器數(shù)據(jù)保 護(hù)裝置130與控制器124之間,存儲(chǔ)器128可用以儲(chǔ)存解密器122傳輸過來的解密數(shù)據(jù) DeData。如此一來,可將需要高效能的片段程序碼/或其他解密數(shù)據(jù)DeData載入存儲(chǔ)器 128中,控制器124可通過讀取存儲(chǔ)器128提高控制器124執(zhí)行效率。由于存儲(chǔ)器128的 前述片段程序碼已是解密的數(shù)據(jù),因此當(dāng)芯片100重置時(shí),可利用控制器124執(zhí)行啟始程序 126,將存儲(chǔ)器128的數(shù)據(jù)清除,避免此片段程序碼外流。此外,為進(jìn)一步提高芯片的數(shù)據(jù)保護(hù)部份的功效,可另行設(shè)置啟始設(shè)定針腳 (power setting pin)(未繪示),此啟始設(shè)定針腳可提供正常模式(normal type)與內(nèi)電 路仿真器(in-circuit emulator ;ICE)兩種模式。當(dāng)啟始設(shè)定針腳切換到正常模式時(shí),ICE 將無法接上芯片100。當(dāng)啟始設(shè)定針腳切換到內(nèi)電路仿真器模式時(shí),可通過硬件線路如內(nèi)建 式自我測(cè)試(Built-inSelf-Test ;BIST)線路(未繪示)清除存儲(chǔ)器128內(nèi)容,并使儲(chǔ)存裝 置106失能,藉以防止程序碼或其他數(shù)據(jù)的外流。請(qǐng)參照?qǐng)D2,圖2為依照本發(fā)明的一實(shí)施例所述的一種存儲(chǔ)器數(shù)據(jù)保護(hù)方法的步 驟,步驟中的元件可參考圖1。首先于儲(chǔ)存裝置106儲(chǔ)存偏移值114、簽章116與密鑰118 (步 驟S202)。接著接收驗(yàn)證數(shù)據(jù),并驗(yàn)證所接收的驗(yàn)證數(shù)據(jù)與前述偏移值114與簽章116是否 相符,以決定外部存儲(chǔ)器104的存取權(quán)限(步驟S204)。之后,依據(jù)存取權(quán)限對(duì)外部存儲(chǔ)器 104進(jìn)行原始數(shù)據(jù)OriData的存取。此外,更可依據(jù)密鑰118對(duì)原始數(shù)據(jù)OriData進(jìn)行加 密或解密(步驟S206)。除此之外,存儲(chǔ)器數(shù)據(jù)保護(hù)方法的步驟更可包括檢查儲(chǔ)存裝置106 是否已被寫入。更具體而言,前述的驗(yàn)證數(shù)據(jù)可位于原始數(shù)據(jù)OriData的前段位置。原始數(shù)據(jù)可 為程序碼,驗(yàn)證數(shù)據(jù)中所含的內(nèi)容可包括待驗(yàn)證簽章與待簽證簽章的位址(待驗(yàn)證簽章偏 移值)。當(dāng)進(jìn)行原始數(shù)據(jù)OriData的存取時(shí),原始數(shù)據(jù)OriData中的驗(yàn)證數(shù)據(jù)將被傳送至驗(yàn) 證器108中進(jìn)行驗(yàn)證。驗(yàn)證器108將待驗(yàn)證簽章的內(nèi)容與簽章116進(jìn)行比對(duì),將待待驗(yàn)證 簽章偏移值與偏移值114進(jìn)行比對(duì)。此外,當(dāng)原始數(shù)據(jù)OriData依據(jù)密鑰118進(jìn)行加密或 解密時(shí),由于驗(yàn)證數(shù)據(jù)位于原始數(shù)據(jù)OriData的前段位置,驗(yàn)證數(shù)據(jù)亦可獲得加密或解密。當(dāng)欲進(jìn)行外部存儲(chǔ)器104的數(shù)據(jù)讀取時(shí),請(qǐng)參照?qǐng)D2,步驟S204所接收的驗(yàn)證數(shù)據(jù)傳送自外部存儲(chǔ)器104。前述的驗(yàn)證數(shù)據(jù)將通過例如解密器122進(jìn)行解密,并通過驗(yàn)證 器108將驗(yàn)證數(shù)據(jù)內(nèi)的待驗(yàn)證簽章和待驗(yàn)證簽章偏移值與簽章116與偏移值114進(jìn)行比 對(duì)。當(dāng)比對(duì)結(jié)果為相同時(shí),則決定此存取權(quán)限為可讀取。當(dāng)存取權(quán)限為可讀取時(shí),外部存儲(chǔ) 器104所儲(chǔ)存的加密數(shù)據(jù)EnData將被讀取,并依據(jù)密鑰118進(jìn)行解密,藉以獲得原始數(shù)據(jù) 0riDatao當(dāng)欲進(jìn)行外部存儲(chǔ)器104的數(shù)據(jù)寫入時(shí),請(qǐng)?jiān)賲⒄請(qǐng)D2,步驟S204所接收的驗(yàn)證 數(shù)據(jù)傳送自主機(jī)102。驗(yàn)證器108將驗(yàn)證數(shù)據(jù)內(nèi)的待驗(yàn)證簽章和待驗(yàn)證簽章偏移值與簽章 116與偏移值114進(jìn)行比對(duì)。當(dāng)比對(duì)結(jié)果為相同時(shí),則決定此存取權(quán)限為可寫入。當(dāng)存取權(quán) 限為可寫入時(shí),加密器120將依據(jù)密鑰118對(duì)原始數(shù)據(jù)OriData進(jìn)行加密,藉以獲得加密數(shù) 據(jù)EnData,并將加密數(shù)據(jù)EnData寫入外部存儲(chǔ)器104中。綜上所述,本發(fā)明實(shí)施例所提出的芯片及其存儲(chǔ)器數(shù)據(jù)保護(hù)裝置與其保護(hù)方法, 可利用儲(chǔ)存裝置所儲(chǔ)存的偏移值、簽章與密鑰,以及密碼器內(nèi)的加密器與解密器對(duì)外部存 儲(chǔ)器所儲(chǔ)存的數(shù)據(jù)進(jìn)行保護(hù),避免外部存儲(chǔ)器的數(shù)據(jù)外流。雖然本發(fā)明已以實(shí)施例揭露如 上,然其并非用以限定本發(fā)明,任何所屬技術(shù)領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明的精神和范 圍內(nèi),當(dāng)可作些許的更動(dòng)與潤飾,故本發(fā)明的保護(hù)范圍當(dāng)以權(quán)利要求所界定范圍為準(zhǔn)。
權(quán)利要求
一種存儲(chǔ)器數(shù)據(jù)保護(hù)裝置,其特征在于,所述存儲(chǔ)器數(shù)據(jù)保護(hù)裝置包括一儲(chǔ)存裝置,內(nèi)建于與一外部存儲(chǔ)器連接的一芯片中,用以儲(chǔ)存一偏移值、一簽章與一密鑰;一密碼器,耦接所述儲(chǔ)存裝置與所述外部存儲(chǔ)器,用以接收所述密鑰,其中所述密碼器包括一加密器,用以接收一原始數(shù)據(jù)與一驗(yàn)證數(shù)據(jù),并根據(jù)所述密鑰將所述原始數(shù)據(jù)與所述驗(yàn)證數(shù)據(jù)進(jìn)行加密,以輸出一加密數(shù)據(jù)與一加密驗(yàn)證數(shù)據(jù)至所述外部存儲(chǔ)器;以及一解密器,用以讀取儲(chǔ)存于所述外部存儲(chǔ)器的所述加密數(shù)據(jù)與所述加密驗(yàn)證數(shù)據(jù),并根據(jù)所述密鑰對(duì)所述加密數(shù)據(jù)與所述加密驗(yàn)證數(shù)據(jù)進(jìn)行解密以輸出一解密數(shù)據(jù)與所述驗(yàn)證數(shù)據(jù);以及一驗(yàn)證器,耦接于所述儲(chǔ)存裝置,接收所述簽章、所述偏移值與所述驗(yàn)證數(shù)據(jù),所述驗(yàn)證器依據(jù)驗(yàn)證所述驗(yàn)證數(shù)據(jù)與所述簽章及所述偏移值來決定所述外部存儲(chǔ)器的一存取權(quán)限;其中所述存儲(chǔ)器數(shù)據(jù)保護(hù)裝置依據(jù)所述存取權(quán)限對(duì)所述外部存儲(chǔ)器進(jìn)行所述原始數(shù)據(jù)的存取。
2.如權(quán)利要求1所述的存儲(chǔ)器數(shù)據(jù)保護(hù)裝置,其特征在于,所述存儲(chǔ)器數(shù)據(jù)保護(hù)裝置 更包括一控制器,所述控制器包括一啟始程序,所述控制器執(zhí)行所述啟始程序并通過所述 驗(yàn)證器檢查所述儲(chǔ)存裝置是否已被寫入,當(dāng)所述儲(chǔ)存裝置未被寫入時(shí),寫入所述偏移值、所 述簽章與所述密鑰至所述儲(chǔ)存裝置中。
3.如權(quán)利要求1所述的存儲(chǔ)器數(shù)據(jù)保護(hù)裝置,其特征在于,所述驗(yàn)證器將所述驗(yàn)證數(shù) 據(jù)與所述簽章和所述偏移值進(jìn)行比對(duì),所述驗(yàn)證數(shù)據(jù)是傳送自一主機(jī),當(dāng)所述驗(yàn)證數(shù)據(jù)與 所述簽章及所述偏移值相同時(shí),所述驗(yàn)證器則決定所述存取權(quán)限為可寫入。
4.如權(quán)利要求1所述的存儲(chǔ)器數(shù)據(jù)保護(hù)裝置,其特征在于,所述驗(yàn)證器將所述驗(yàn)證數(shù) 據(jù)與所述簽章和所述偏移值進(jìn)行比對(duì),所述驗(yàn)證數(shù)據(jù)是傳送自所述外部存儲(chǔ)器,當(dāng)所述驗(yàn) 證數(shù)據(jù)與所述簽章及所述偏移值相同時(shí),所述驗(yàn)證器則決定所述存取權(quán)限為可讀取。
5.如權(quán)利要求2所述的存儲(chǔ)器數(shù)據(jù)保護(hù)裝置,其特征在于,所述驗(yàn)證器將所述驗(yàn)證數(shù) 據(jù)與所述簽章和所述偏移值進(jìn)行比對(duì),所述驗(yàn)證數(shù)據(jù)是傳送自一主機(jī),當(dāng)所述驗(yàn)證數(shù)據(jù)與 所述簽章及所述偏移值相同時(shí),所述啟始程序?qū)⑺鐾獠看鎯?chǔ)器的內(nèi)容清除,并將所述主 機(jī)所傳送過來的所述驗(yàn)證數(shù)據(jù)與所述原始數(shù)據(jù)儲(chǔ)存至所述外部存儲(chǔ)器。
6.如權(quán)利要求2所述的存儲(chǔ)器數(shù)據(jù)保護(hù)裝置,其特征在于,所述驗(yàn)器將所述驗(yàn)證數(shù)據(jù) 與所述簽章及所述偏移值進(jìn)行比對(duì),所述驗(yàn)證數(shù)據(jù)是傳送自所述外部存儲(chǔ)器,所述原始數(shù) 據(jù)為一程序碼,當(dāng)所述驗(yàn)證數(shù)據(jù)與所述簽章及所述偏移值相同時(shí),所述啟始程序?qū)⑺隹?制器執(zhí)行權(quán)交給所述外部存儲(chǔ)器的所述原始數(shù)據(jù)。
7.如權(quán)利要求1所述的存儲(chǔ)器數(shù)據(jù)保護(hù)裝置,其特征在于,所述儲(chǔ)存裝置為一非易失 性存儲(chǔ)器,所述非易失性存儲(chǔ)器為一次寫入式存儲(chǔ)器、可擦除可編程只讀存儲(chǔ)器或快閃存 儲(chǔ)器。
8.—種芯片,其特征在于,所述芯片包括一存儲(chǔ)器數(shù)據(jù)保護(hù)裝置,包括一儲(chǔ)存裝置,內(nèi)建于與一外部存儲(chǔ)器連接的一芯片中,用以儲(chǔ)存一偏移值、一簽章與一密鑰;一密碼器,耦接所述儲(chǔ)存裝置與所述外部存儲(chǔ)器,用以接收所述密鑰,其中所述密碼器 包括一加密器,用以接收一原始數(shù)據(jù)與一驗(yàn)證數(shù)據(jù),并根據(jù)所述密鑰將所述原始數(shù)據(jù)與所 述驗(yàn)證數(shù)據(jù)進(jìn)行加密,以輸出一加密數(shù)據(jù)與一加密驗(yàn)證數(shù)據(jù)至所述外部存儲(chǔ)器;以及一解密器,用以讀取儲(chǔ)存于所述外部存儲(chǔ)器的所述加密數(shù)據(jù)與所述加密驗(yàn)證數(shù)據(jù),并 根據(jù)所述密鑰對(duì)所述加密數(shù)據(jù)與所述加密驗(yàn)證數(shù)據(jù)進(jìn)行解密以輸出一解密數(shù)據(jù)與所述驗(yàn) 證數(shù)據(jù);一驗(yàn)證器,耦接于所述儲(chǔ)存裝置,接收所述簽章、所述偏移值與所述驗(yàn)證數(shù)據(jù),所述驗(yàn) 證器依據(jù)驗(yàn)證所述驗(yàn)證數(shù)據(jù)與所述簽章及所述偏移值來決定所述外部存儲(chǔ)器的一存取權(quán) 限;以及一存儲(chǔ)器,用以儲(chǔ)存所述解密器傳輸?shù)乃鼋饷軘?shù)據(jù);其中所述存儲(chǔ)器數(shù)據(jù)保護(hù)裝置依據(jù)所述存取權(quán)限對(duì)所述外部存儲(chǔ)器進(jìn)行所述原始數(shù) 據(jù)的存取。
9.如權(quán)利要求8所述的芯片,其特征在于,所述芯片更包括一控制器,當(dāng)所述驗(yàn)證數(shù)據(jù) 傳送自所述外部存儲(chǔ)器,且所述驗(yàn)證器確認(rèn)所述簽章與所述驗(yàn)證數(shù)據(jù)相符合時(shí),所述控制 器讀取所述存儲(chǔ)器的所述解密數(shù)據(jù)。
10.一種芯片外部存儲(chǔ)器的數(shù)據(jù)保護(hù)方法,其特征在于,所述數(shù)據(jù)保護(hù)方法包括于一儲(chǔ)存裝置中儲(chǔ)存一偏移值、一簽章以及一密鑰;接收一驗(yàn)證數(shù)據(jù),驗(yàn)證所述驗(yàn)證數(shù)據(jù)與所述簽章及所述偏移值是否相符,以決定所述 外部存儲(chǔ)器的一存取權(quán)限;以及依據(jù)所述存取權(quán)限對(duì)所述外部存儲(chǔ)器進(jìn)行一原始數(shù)據(jù)的存取,并依據(jù)所述密鑰對(duì)所述 原始數(shù)據(jù)進(jìn)行加密或解密。
11.如權(quán)利要求10所述的外部存儲(chǔ)器的數(shù)據(jù)保護(hù)方法,其特征在于,所述驗(yàn)證數(shù)據(jù)位 于所述原始數(shù)據(jù)的前段位置,當(dāng)進(jìn)行所述原始數(shù)據(jù)的存取時(shí),所述原始數(shù)據(jù)中的所述驗(yàn)證 數(shù)據(jù)將被傳送至一驗(yàn)證器進(jìn)行驗(yàn)證,當(dāng)依據(jù)所述密鑰對(duì)所述原始數(shù)據(jù)進(jìn)行加密或解密時(shí), 亦會(huì)對(duì)所述驗(yàn)證數(shù)據(jù)進(jìn)行加密或解密。
12.如權(quán)利要求10所述的外部存儲(chǔ)器的數(shù)據(jù)保護(hù)方法,其特征在于,接收所述驗(yàn)證數(shù) 據(jù)以決定所述外部存儲(chǔ)器的一存取權(quán)限的步驟包括解密傳送自所述外部存儲(chǔ)器的所述驗(yàn)證數(shù)據(jù);以及比對(duì)所述驗(yàn)證數(shù)據(jù)內(nèi)的一待驗(yàn)證簽章與所述簽章,以及比對(duì)所述驗(yàn)證數(shù)據(jù)內(nèi)的一待簽 證簽章偏移值與所述偏移值,當(dāng)比對(duì)相同時(shí),則決定所述存取權(quán)限為可讀取。
13.如權(quán)利要求10所述的外部存儲(chǔ)器的數(shù)據(jù)保護(hù)方法,其特征在于,接收所述驗(yàn)證數(shù) 據(jù)以決定所述外部存儲(chǔ)器的所述存取權(quán)限的步驟包括接收傳送自一主機(jī)的所述驗(yàn)證數(shù)據(jù);以及比對(duì)所述驗(yàn)證數(shù)據(jù)內(nèi)的一待驗(yàn)證簽章與所述簽章,以及比對(duì)所述驗(yàn)證數(shù)據(jù)內(nèi)的一待簽 證簽章偏移值與所述偏移值,當(dāng)比對(duì)相同時(shí),決定所述存取權(quán)限為可寫入。
全文摘要
一種芯片及其存儲(chǔ)器數(shù)據(jù)保護(hù)裝置與其保護(hù)方法,此裝置包括儲(chǔ)存裝置、密碼器與驗(yàn)證器。儲(chǔ)存裝置內(nèi)建于與外部存儲(chǔ)器連接的芯片中,用以儲(chǔ)存偏移值、簽章與密鑰。密碼器耦接儲(chǔ)存裝置與外部存儲(chǔ)器,用以接收密鑰。密碼器包括加密器與解密器。加密器用以接收原始數(shù)據(jù)與驗(yàn)證數(shù)據(jù),根據(jù)密鑰將原始數(shù)據(jù)與驗(yàn)證數(shù)據(jù)進(jìn)行加密,輸出加密數(shù)據(jù)與加密驗(yàn)證數(shù)據(jù)至外部存儲(chǔ)器。解密器用以讀取加密數(shù)據(jù)與加密驗(yàn)證數(shù)據(jù),根據(jù)密鑰對(duì)加密數(shù)據(jù)與加密驗(yàn)證數(shù)據(jù)進(jìn)行解密以輸出解密數(shù)據(jù)。驗(yàn)證器耦接于儲(chǔ)存裝置,接收簽章、偏移值與驗(yàn)證數(shù)據(jù)。驗(yàn)證器依據(jù)驗(yàn)證驗(yàn)證數(shù)據(jù)與簽章及偏移值決定外部存儲(chǔ)器的存取權(quán)限。保護(hù)裝置依據(jù)存取權(quán)限對(duì)外部存儲(chǔ)器進(jìn)行原始數(shù)據(jù)的存取。
文檔編號(hào)G06F12/14GK101799789SQ200910006179
公開日2010年8月11日 申請(qǐng)日期2009年2月5日 優(yōu)先權(quán)日2009年2月5日
發(fā)明者杜俞輝 申請(qǐng)人:新唐科技股份有限公司