TWI385670B - 認證下載至快閃記憶體之程式的裝置及方法 - Google Patents

認證下載至快閃記憶體之程式的裝置及方法 Download PDF

Info

Publication number
TWI385670B
TWI385670B TW097125037A TW97125037A TWI385670B TW I385670 B TWI385670 B TW I385670B TW 097125037 A TW097125037 A TW 097125037A TW 97125037 A TW97125037 A TW 97125037A TW I385670 B TWI385670 B TW I385670B
Authority
TW
Taiwan
Prior art keywords
identification code
user identification
gate
program
code
Prior art date
Application number
TW097125037A
Other languages
English (en)
Other versions
TW200933639A (en
Inventor
Ching Chao Yang
Tzung Shian Yang
Original Assignee
Mediatek Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mediatek Inc filed Critical Mediatek Inc
Publication of TW200933639A publication Critical patent/TW200933639A/zh
Application granted granted Critical
Publication of TWI385670B publication Critical patent/TWI385670B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2117User registration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Description

認證下載至快閃記憶體之程式的裝置及方法
本發明係關於下載至快閃記憶體之程式,特別係關於認證下載至快閃記憶體之程式的裝置及其方法。
安全機制之一種形式為使用載入晶片內之硬體唯一密鑰(hardware unique key)。因此,在各種應用中,硬體唯一密鑰係載入晶片以滿足機密性、完整性與真實性之密碼需求。就這一點而論,對於每一晶片硬體唯一密鑰係唯一。亦即,如果硬體唯一密鑰載入晶片內,該硬體唯一密鑰之值係無法更改。使用硬體唯一密鑰之另一優勢係該硬體唯一密鑰無法從外部讀出。因此,硬體唯一密鑰作為一種安全機制被廣泛應用。通常,傳輸至晶片之初始資訊由硬體唯一密鑰加密,並且輸出之加密資訊無法直接讀出。硬體唯一密鑰可儲存於任意非揮發性記憶體中。
為了解決現有技術中僅利用硬體唯一密鑰來認下載至快閃記憶體之程式而導致安全漏洞的問題,本發明提供一種認證下載至快閃記憶體之程式的裝置及其方法。
依據本發明之一方面,其提供一種認證下載至快閃記憶體之程式的裝置,包含:硬體唯一密鑰;暫存器,儲存用戶標識碼;以及資訊認證碼產生單元,依據硬體 唯一密鑰以及用戶標識碼獲得根密鑰,並利用已獲得之根密鑰產生與程式相對應之第一資訊認證碼,其中,鎖定暫存器之內容,以在下一次裝置重置之前避免儲存之用戶標識碼被修改。
依據本發明另一方面,其提供一種認證下載至快閃記憶體之程式的方法,由電子裝置執行,包含:獲得相對應於電子裝置之硬體唯一密鑰;獲得相對應於用戶之用戶標識碼;獲得相對應於硬體唯一密鑰以及用戶標識碼之根密鑰;以及利用已獲得之根密鑰,產生與程式相對應之第一資訊認證碼。
依據本發明又一方面,其提供一種認證下載至快閃記憶體之程式的方法,由電子裝置執行,包含:獲得第一資訊認證碼;獲得相對應於用戶以及程式之用戶標識碼;判斷第一資訊認證碼是否與用戶標識碼相對應;以及當第一資訊認證碼相對應於用戶標識碼時,啟動具有該程式之該電子裝置。
依據本發明再一方面,其提供一種認證電子設備內之下載至快閃記憶體之程式的裝置,包含:硬體唯一密鑰;暫存器,儲存用戶標識碼;密鑰產生單元,依據硬體唯一密鑰以及用戶標識碼產生根密鑰;以及鎖定電路,用來鎖定該暫存器之內容,在下一次裝置重置之前避免儲存之用戶標識碼被修改。
本發明提供的認證下載至快閃記憶體之程式的裝置及其方法,藉由硬體唯一密鑰與用戶資訊一同來認證下 載至快閃記憶體之程式,能夠減少安全漏洞,增進認證裝置與認證方法的有效性。
在說明書及後續的申請專利範圍當中使用了某些辭彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,製造商可能會用不同的名詞來稱呼同樣的元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的基準。在通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。另外,「耦接」一詞在此係包含任何直接及間接的電氣連接手段。因此,若文中描述第一裝置耦接於第二裝置,則代表第一裝置可直接電氣連接於第二裝置,或透過其他裝置或連接手段間接地電氣連接至第二裝置。
第1圖為加密系統之方框示意圖。純文本(plain text)11係傳輸至加密機(cipher engine)12以加密。加密機12接收純文本11並根據硬體唯一密鑰13產生密碼文本(cipher text)14,亦即加密文本。需注意的是,上述系統並非決定本發明之專利性之習知技術,而為本發明人發現之技術問題。上述系統中,硬體唯一密鑰13僅可以由加密機12存取,並且加密機12可由軟體控制來操作。因此,該系統具有安全漏洞。具體來說,硬體唯 一密鑰13與加密機12通常在晶片出貨(shipping)之前嵌入晶片中,並且硬體唯一密鑰13不能夠以任何方式修改。但是,藉由寫入軟體程式來操作加密機12,駭客能夠在不破環硬體唯一密鑰13的情況下,簡單地發現初始純文本11來解密密碼文本14。
第2圖為依據本發明之認證下載至快閃記憶體之程式的裝置之一實施例之硬體結構之方塊示意圖。認證裝置係嵌入於晶片或電子裝置中。認證裝置包含基頻晶片與外部快閃記憶體(external flash)。當整個裝置重置(reset)時,微處理器(MCU,microcontroller)21最初執行儲存於開機唯獨記憶體(boot ROM)24內之啟動程式(boot program)。該執行之啟動程式檢測是否需要下載程式到快閃記憶體。如果下載程式到快閃記憶體,則下載相對應於該程式之用戶資訊(customer information),其中該用戶資訊由用戶提供並包含用戶標識碼(customer ID),需注意的是,用戶資訊(亦即用戶標識碼)與用戶係一一對應,而不能假造。提供的用戶資訊之用戶標識碼隨後寫入暫存器(register)22b。當用戶資訊已儲存至暫存器22b時,鎖定電路(lock circuit)22a鎖定暫存器22b之內容,在裝置下一次重置之前避免暫存器儲存之用戶標識碼被修改。運算單元(operation unit)25自暫存器22b接收用戶標識碼,並接收硬體唯一密鑰26以產生根密鑰(root key)。在另一實施例中,運算單元25根據用戶資訊與硬體唯一密鑰26來產生根密鑰。資訊認 證碼(MAC message authentication code)產生單元23依據用戶資訊與根密鑰產生資訊認證碼。資訊認證碼與用戶資訊經由外部記憶體介面(EMI,external memory interface)27儲存至外部快閃記憶體29。
當不需要下載程式到快閃記憶體時,為了認證外部快閃記憶體29內之程式與用戶資訊是否沒有被修改而依舊保持相互對應,經由外部記憶體介面27自外部快閃記憶體29獲得相對應於該程式之用戶資訊,其中該用戶資訊包含用戶標識碼並且該程式係儲存於外部快閃記憶體29中。經由外部記憶體介面27自外部快閃記憶體29獲得資訊認證碼。接著,判斷獲得之資訊認證碼是否與獲得之用戶資訊相符合。當判斷資訊認證碼與用戶資訊相符合時,裝置啟動。
第3圖為依據本發明之加密系統之實施例之方塊圖。運算單元34接收硬體唯一密鑰31與用戶標識碼32以產生根密鑰或者資訊認證碼。利用軟體可控制暫存器(軟體用戶身份證明UID)來儲存用戶資訊,例如用戶標識碼32。鎖定電路33鎖定儲存用戶標識碼之暫存器,在下一次裝置重置之前避免所儲存之用戶標識碼被修改。加密機36接收純文本35並依據運算單元34之输出来產生密碼文本37,亦即加密文本。本系統中,在晶片製造時提供硬體唯一密鑰並且由用戶提供用戶標識碼。本系統中,一同利用用戶標識碼與硬體唯一密鑰來進行加密與解密。亦即在硬體唯一密鑰相同的情況下,亦使 得密碼文本對於每一用戶(亦即用戶唯一標識)唯一。通過認證後,暫存器之內容由開機唯獨記憶體程式寫入並鎖定,例如儲存至第2圖所示之開機唯獨記憶體24。
第4圖為依據本發明之鎖定電路之一實施例之簡要示意圖。在裝置重置時,裝置重置訊號(SYSTEM RESET)輸入至D型正反器(D flip-flop)42以清空(clear)鎖存(latch)其中之資料。D型正反器42具有時鐘輸入端來接收訊號REG_WR_1,以及其資料輸入端接收或閘(OR gate)41之輸出。或閘41具有第一輸入端接收控制訊號,以及第二輸入端耦接至D型正反器42之輸出端。反相器(inverter)43接收並反相(invert)D型正反器42之輸出訊號,並且得到之反相訊號隨後傳輸至及閘(AND gate)44。及閘44更接收訊號REG_WR_2。訊號REG_WR_2連續地設置為邏輯值1。D型正反器45之時鐘輸入端接收及閘44之輸出訊號,以及資料輸入端接收用戶標識碼。由於每一D型正反器僅鎖存一位元,D型正反器45之數量係依賴於用戶標識碼之位元之數量。在用戶標識碼寫入D型正反器45的過程中,控制訊號設置為邏輯值0,並且當用戶標識碼完全寫入D型正反器時,控制訊號設置為邏輯值1。在用戶標識碼寫入D型正反器45的過程中,訊號REG_WR_1與訊號REG_WR_2之設置保持不變(assert)。本實施例中,訊號REG_WR_1與訊號REG_WR_2由開機唯讀記憶體程式控制。可以看出,或閘41、D型正反器42、反相器43以及及閘44組 成鎖定電路。一旦訊號SYSTEM RESET輸入至D型正反器42,D型正反器42之輸出為邏輯值0,使得及閘44接收邏輯值為1之反相訊號,隨後,D型正反器45之時鐘輸入上升(high)以允許用戶標識碼寫入D型正反器45。隨後,D型正反器42之輸出保持為邏輯值1直到另一裝置重置訊號輸入D型正反器42,使得用戶標識碼由D型正反器45鎖存。
第5圖為依據本發明之由認證裝置執行之認證方法之實施例之流程圖。在步驟S501中,整個裝置重置。在步驟S502中,認證裝置依據外部控制訊號來檢測是否有程式要下載到快閃記憶體。需注意的是,該程式可自外部電子裝置下載,例如自個人電腦、筆記型電腦(notebook)、個人數位輔助理器(personal digital assist)、移動電話(mobile phone)、智慧手機(smart phone)以及其他類似裝置下載。如果要下載程式到快閃記憶體,認證方法執行步驟S503至步驟S509。如果不需要下載程式到快閃記憶體,認證方法執行步驟S510至S515。在步驟S503中,提供相對應於該程式之用戶資訊以認證,其中該用戶資訊包含用戶標識碼。在步驟S505中,如果用戶資訊通過認證,認證方法執行之程序跳至步驟S506,如果用戶資訊沒有通過認證,認證方法執行之程序跳至錯誤處理狀態。在步驟S506中,認證方法自提供之用戶資訊獲得用戶標識碼,並在步驟S507中將用戶標識碼寫入並鎖定於暫存器(例如第2圖所示之暫存 器22b或者第4圖所示之暫存器45)中。然後,在步驟S508中,認證裝置利用硬體唯一密鑰(例如第2圖所示之硬體唯一密鑰26)與用戶標識碼來產生相對應於提供的用戶資訊之資訊認證碼。在步驟S509中,認證裝置將用戶資訊、產生之資訊認證碼以及下載到快閃記憶體的程式寫入至外部快閃記憶體(例如第2圖所示之外部快閃記憶體29)。在執行步驟S509之後,整個裝置再次重置。
如果不存在等待下載到快閃記憶體之程式,認證方法跳至步驟S510。在步驟S510中,認證裝置自外部快閃記憶體讀取用戶資訊,並且在步驟S511中由讀取之用戶資訊獲得用戶標識碼。在步驟S512中,認證裝置寫入並鎖定用戶標識碼於暫存器(例如第2圖所示之暫存器22b或者第4圖所示之暫存器45)中。在步驟S513中,認證裝置利用硬體唯一密鑰(例如第2圖所示之硬體唯一密鑰26)與儲存於暫存器之用戶標識碼來產生相對應於提供的用戶資訊之資訊認證碼。在步驟S514中,認證裝置判斷產生之資訊認證碼是否與外部快閃記憶體儲存之資訊認證碼相同。如果不同,認證方法執行之步驟跳至錯誤處理狀態(error handling state.)。如果相同,具有外部快閃記憶體儲存之程式之整個裝置啟動。認證裝置可由專用配屬硬體電路或者微處理器(例如第2圖所示之微處理器21)來實現。
第6圖為當下載程式到快閃記憶體時產生資訊認證 碼之簡要示意圖。參考第5圖所示之步驟S503至步驟S509,於下載程式之前,提供相對應於該程式之第一用戶資訊61以認證。當第一用戶資訊61通過認證時,包含第一用戶標識碼61a之用戶資訊61傳輸至資訊認證碼產生單元65,並且第一用戶標識碼61a寫入暫存器62。當整個裝置重置時,上述開機唯讀記憶體程式清空暫存器62之初始內容,並且寫入用戶資訊至暫存器62。當用戶資訊沒有通過認證,資訊認證碼產生程序跳至錯誤處理狀態。運算單元64自暫存器62獲得第一用戶標識碼,並獲得硬體唯一密鑰63來產生根密鑰。資訊認證碼產生單元65依據根密鑰以及第一用戶資訊61來產生第一資訊認證碼67。資訊認證碼產生單元65可藉由利用根密鑰來加密第一用戶資訊61來產生第一資訊認證碼67。亦即本實施例利用第一資訊認證碼67來驗證第一用戶資訊61之有效性與完整性。第一用戶資訊認證碼67與第一用戶資訊61其中之一改變將破壞後續之認證。另一實施例中,資訊認證碼產生單元65由密鑰產生器(key generator)替代,密鑰產生器依據根密鑰以及第一用戶標識碼61a產生另一唯一密鑰。然後,將用戶資訊61與第一資訊認證碼67寫入外部快閃記憶體66。本實施例中,根密鑰可為硬體唯一密鑰63與第一用戶標識碼61a之任意算術結果。例如,根密鑰可藉由將硬體唯一密鑰63與用戶標識碼61a相加、將用戶標識碼61a與硬體唯一密鑰63相減、將硬體唯一密鑰63與用戶標識碼61a相乘、或者將硬體 唯一密鑰63與用戶標識碼61a相除來得到根密鑰。或者,可將用戶標識碼61a與硬體唯一密鑰63逐位元進行及運算(AND)、或運算(OR)或者異或運算(XOR)來得到根密鑰。在另一實施例中,根密鑰可為硬體唯一密鑰63與第一用戶資訊61之任意算術結果。本實施例中,資訊認證碼產生單元65可由硬體電路或者執行特定程式代碼之處理器實現。
第7圖為依據本發明之裝置啟動過程中資訊認證碼產生與驗證(validation)之簡要示意圖。參考第5圖所示之步驟S510至步驟S515,假設第二用戶資訊72包含第二用戶標識碼72a,並且在當前裝置重置之前,已提供第二資訊認證碼73至外部快閃記憶體71。認證裝置自外部快閃記憶體讀71取第二用戶資訊72,並由讀取之用戶資訊獲得第二用戶標識碼72a。當整個裝置重置時,上述開機唯讀記憶體程式清空暫存器76之初始內容,並寫入第二用戶標識碼72a至暫存器76。本實施例中,在下一次裝置重置之前,鎖定暫存器76之內容以避免第二用戶標識碼被修改。與第6圖所示之運算單元64相似,運算單元78自暫存器76獲得第二用戶標識碼,並獲得硬體唯一密鑰77以產生根密鑰。資訊認證碼產生單元74依據根密鑰以及第二用戶標識碼72a來產生第三資訊認證碼75。根密鑰與第三資訊認證碼75之產生方法與第二資訊認證碼73之產生方法相同。資訊認證碼比較器79藉由判斷產生之第三資訊認證碼75與外部快閃記憶體71 儲存之第二資訊認證碼73是否相同,來認證外部快閃記憶體71之程式。如果不同,認證方法執行之程序跳轉至錯誤處理狀態。如果相同,具有外部快閃記憶體71儲存之程式之裝置啟動。可以推導出只有在第一用戶資訊61、用戶標識碼61a以及資訊認證碼67分別與第二用戶資訊72、用戶標識碼72a以及資訊認證碼73相同時,該程式才能夠成功認證,亦即第二資訊認證碼73與第三認證碼75相同。換言之,只有在外部快閃記憶體儲存之用戶資訊與程式皆沒有被修改時,該程式才能夠成功認證。本實施例中,資訊認證碼產生單元74可藉由硬體電路或者執行程式代碼之處理器(例如第2圖所示處理器21)實現。
第8圖為依據本發明之資訊認證碼產生單元之實施例之示意圖。該資訊認證碼產生單元包含散列單元(hash unit)81以及加密單元(encrypt unit)82。散列單元81接收用戶資訊並利用熟知之散列函數來產生用戶資訊之散列值(hash value)。散列函數將可變大小(variable-sized)之用戶資訊轉變為固定大小(fixed-sized)之用戶資訊,並輸出相對小型之散列值作為用戶資訊之數位指紋(digital fingerprint)。加密單元82藉由利用根密鑰來加密以產生資訊認證碼。
第9圖為依據本發明之資訊認證碼產生單元之另一實施例之示意圖。該資訊認證碼產生單元包含資料結合單元(data joint unit)91與散列單元92。資料結合單元 91合併用戶資訊與根密鑰來產生結合值。本實施例中,結合結果可為根密鑰與用戶資訊之算術結果。散列單元92利用熟知散列函數來產生用戶資訊與根密鑰之結合值之散列值,亦即產生資訊認證碼。
第10圖為依據本發明之由認證裝置執行之認證方法之另一實施例之流程圖。在步驟S101中,整個裝置重置。在步驟S102中,認證裝置依據外部控制訊號來檢測是否需要下載程式到快閃記憶體。需注意的是,該程式可自外部電子裝置下載,例如自個人電腦、筆記型電腦、個人數位輔助理器、移動電話、智慧手機以及其他類似裝置下載。如果需要下載程式到快閃記憶體,認證方法執行步驟S103至步驟S109。如果不需要下載程式到快閃記憶體,認證方法執行步驟S110至S115。在步驟S103中,提供相對應於該程式之用戶資訊以認證,其中該用戶資訊包含用戶標識碼。在步驟S105中,如果用戶資訊通過認證,認證方法執行之程序跳至步驟S106,如果用戶資訊沒有通過認證,認證方法執行之程序跳至錯誤處理狀態。在步驟S106中,認證裝置自提供之用戶資訊獲得用戶標識碼,並在步驟S107中將用戶標識碼寫入並鎖定於暫存器(例如第2圖所示之暫存器22b或者第4圖所示之暫存器45)中。然後,在步驟S108中,認證裝置利用硬體唯一密鑰(例如第2圖所示之硬體唯一密鑰26)與儲存於暫存器之用戶標識碼來產生相對應於該提供的用戶資訊之資訊認證碼。在步驟S109中,認證裝置將用 戶資訊、產生之資訊認證碼以及該程式寫入至外部快閃記憶體(例如第2圖所示之外部快閃記憶體29)。在執行步驟S109之後,整個裝置再次重置。
如果不需要下載程式到快閃記憶體,認證方法執行之程序跳至步驟S110。在步驟S110中,認證裝置自外部快閃記憶體讀取資訊認證碼,並且在步驟S111中藉由解密讀取之資訊認證碼來獲得第二散列值。在步驟S112中,認證裝置自外部快閃記憶體獲得用戶資訊,並且在步驟S113中,傳輸用戶資訊至散列值產生器以產生獲得之用戶資訊之第一散列值。在步驟S114中,認證裝置判斷第一散列值與第二散列值是否相同。如果相同,認證方法執行之程序跳轉至步驟S115,並且具有外部快閃記憶體初始儲存之程式之整個裝置啟動。如果不同,認證方法執行之程序跳轉至錯誤處理狀態。認證裝置可由專用配屬硬體電路或者微處理器(例如第2圖所示之微處理器21)來實現。
第11圖為依據本發明之裝置啟動過程中散列值產生與驗證之簡要示意圖。參考第10圖所示之步驟S110至步驟S115,假設第二用戶資訊1001包含第二用戶標識碼1012,並且在當前裝置重置之前,已提供第二資訊認證碼1002至外部快閃記憶體1003。當整個裝置重置時,上述開機唯讀記憶體程式清空暫存器1006之初始內容並寫入用戶標識碼1012至暫存器1006。本實施例中,在下一次裝置重置之前,鎖定暫存器1006之內容以避免暫存 器儲存之用戶標識碼被修改。解密單元(decrypting unit)1008自外部快閃記憶體1003獲得第二資訊認證碼1002。隨後,解密單元1008依據根密鑰產生第二散列值1009。運算單元1010自暫存器1006獲得用戶標識碼,並獲得硬體唯一密鑰1007以產生根密鑰。散列值產生器1004自外部快閃記憶體1003獲得第二用戶資訊1001,並利用熟知之散列函數產生相對應於獲得之用戶資訊1001之第一散列值1005。散列值比較器1011比較第一散列值1005與第二散列值1009。當第一散列值1005與第二散列值1009相同時,散列值比較器1011輸出訊號以指示相對應於第二用戶資訊1001之下載至快閃記憶體之程式通過認證,否則,散列值比較器1011輸出訊號以指示相對應於第二用戶資訊1001之下載至快閃記憶體之程式沒有通過認證。本實施例中,散列值比較器1011可藉由硬體電路或者處理器(例如第2圖所示值處理器21)執行特定軟體代碼實現。
上述實施例僅作為本發明舉例說明之用,任何熟悉此技術者可輕易完成之改變或均等性之安排均屬於本發明所主張之範圍,本發明之權利範圍應以申請專利範圍為准。
11、35‧‧‧純文本
12、36‧‧‧加密機
13、26、31、63、77、1007‧‧‧硬體唯一密鑰
14、37‧‧‧密碼文本
21‧‧‧微處理器
24‧‧‧開機唯獨記憶體
22b、62、76、1006‧‧‧暫存器
22a、33‧‧‧鎖定電路
25、34、64、78、1010‧‧‧運算單元
23、65、74‧‧‧資訊認證碼產生單元
27‧‧‧記憶體介面
29、71、66、1003‧‧‧外部快閃記憶體
32、1012‧‧‧用戶標識碼
42、45‧‧‧D型正反器
41‧‧‧或閘
43‧‧‧反相器
44‧‧‧及閘
61‧‧‧第一用戶資訊
61a‧‧‧第一用戶標識碼
67‧‧‧第一資訊認證碼
72、1001‧‧‧第二用戶資訊
72a、72b、1012‧‧‧第二用戶標識碼
73、1002‧‧‧第二資訊認證碼
75‧‧‧第三資訊認證碼
79‧‧‧資訊認證碼比較器
81、92‧‧‧散列單元
82‧‧‧加密單元
91‧‧‧資料結合單元
1004‧‧‧散列值產生器
1005‧‧‧第一散列值
1009‧‧‧第二散列值
1011‧‧‧散列值比較器
1008‧‧‧解密單元
第1圖為加密系統之方框示意圖。
第2圖為依據本發明之認證下載至快閃記憶體之程 式的裝置之一實施例之硬體結構之方塊示意圖。
第3圖為依據本發明之加密系統之實施例之方塊圖。
第4圖為依據本發明之鎖定電路之一實施例之簡要示意圖。
第5圖為依據本發明之由認證裝置執行之認證方法之實施例之流程圖。
第6圖為當下載程式到快閃記憶體時產生資訊認證碼之簡要示意圖。
第7圖為依據本發明之裝置啟動過程中資訊認證碼產生與驗證(validation)之簡要示意圖。
第8圖為依據本發明之資訊認證碼產生單元之實施例之示意圖。
第9圖為依據本發明之資訊認證碼產生單元之另一實施例之示意圖。
第10圖為依據本發明之由認證裝置執行之認證方法之另一實施例之流程圖。
第11圖為依據本發明之裝置啟動過程中散列值產生與驗證之簡要示意圖。
26‧‧‧硬體唯一密鑰
21‧‧‧微處理器
24‧‧‧開機唯獨記憶體
22b‧‧‧暫存器
22a‧‧‧鎖定電路
25‧‧‧運算單元
23‧‧‧資訊認證碼產生單元
27‧‧‧記憶體介面
29‧‧‧外部快閃記憶體

Claims (15)

  1. 一種認證下載至一快閃記憶體之一程式的裝置,包含:一硬體唯一密鑰;一暫存器,儲存一用戶標識碼;以及一資訊認證碼產生單元,依據該硬體唯一密鑰以及該用戶標識碼獲得一根密鑰,並利用該已獲得之根密鑰產生與該程式相對應之一第一資訊認證碼;一鎖定電路,用來在該用戶標識碼寫入該暫存器之後鎖定該暫存器,其中,該鎖定電路更包含:一第二D型正反器;一或閘;一反相器;以及一及閘,其中該或閘係耦接於該第二D型正反器之一輸出端與一第一輸入端之間,該反相器係耦接於該第二D型正反器之一輸出端與該及閘之一第一輸入端之間,並且該及閘之一輸出端係耦接至該第一D型正反器之一時鐘輸入端,其中該或閘更包含一第二輸入端,該第二D型正反器包含一第二輸入端以及一時鐘輸入端,該及閘包含一邏輯值為1之第二輸入端,當裝置重置時,該或閘之第二輸出端設置為邏輯值0,該第二D型正反器之該第二輸入端接收一裝置重置訊號以清空鎖存其中之資料,並且在完全寫入該用戶標識碼之後,該或閘之第二輸入端設置為邏輯值1。
  2. 如申請專利範圍第1項所述之認證下載至一快閃記憶體之一程式的裝置,更包含一開機唯獨記憶體,儲存一啟動程式以寫入該用戶標識碼至該暫存器。
  3. 如申請專利範圍第2項所述之認證下載至一快閃記憶體之一程式的裝置,其中依照一裝置重置訊號激活該啟動程式,並且依照該裝置重置訊號初始化該暫存器。
  4. 如申請專利範圍第1項所述之認證下載至一快閃記憶體之一程式的裝置,更包含一運算單元,接收該用戶標識碼以及該硬體唯一密鑰以產生該根密鑰。
  5. 如申請專利範圍第1項所述之認證下載至一快閃記憶體之一程式的裝置,其中該資訊認證碼產生單元包含:一散列單元,產生相對應於包含該用戶標識碼之用戶資訊之一散列值;以及一加密單元,藉由利用該已獲得之根密鑰加密該散列值來產生該第一資訊認證碼。
  6. 如申請專利範圍第1項所述之認證下載至一快閃記憶體之一程式的裝置,其中該資訊認證碼產生單元更包含:一資料結合單元,產生相對應於該用戶標識碼以及該硬體唯一密鑰之一第一結果;以及一散列單元,產生該第一結果之散列值作為該第一資訊認證碼。
  7. 如申請專利範圍第1項所述之認證下載至一快閃記憶體之一程式的裝置,其中該裝置係嵌入於一電子設備,並且當該第一資訊認證碼通過認證時,啟動具有該程式之 該電子設備。
  8. 如申請專利範圍第7項所述之認證下載至一快閃記憶體之一程式的裝置,更包含:一外部快閃記憶體,用來儲存一第二資訊認證碼;以及一比較器,用來比較該第一資訊認證碼與該第二資訊認證碼,並且當該第一資訊認證碼與該第二資訊認證碼相同時,判斷該第一資訊認證碼通過認證。
  9. 如申請專利範圍第1項所述之認證下載至一快閃記憶體之一程式的裝置,更包含一鎖定電路,用來在用戶標識碼完全寫入該暫存器之後鎖定該用戶標識碼。
  10. 一種認證下載至一快閃記憶體之一程式的方法,由一電子裝置執行,包含:獲得相對應於該電子裝置之一硬體唯一密鑰;獲得相對應於一用戶之一用戶標識碼;將該用戶標識碼寫入該電子裝置的一暫存器;在下一次裝置重置之前,透過該電子裝置的一鎖定電路鎖定該用戶標識碼,其中該鎖定電路更包括:一第二D型正反器;一或閘;一反相器;以及一及閘,其中該或閘係耦接於該第二D型正反器之一輸出端與一第一輸入端之間,該反相器係耦接於該第二D型正反器 之一輸出端與該及閘之一第一輸入端之間,並且該及閘之一輸出端係耦接至該第一D型正反器之一時鐘輸入端,其中該或閘更包含一第二輸入端,該第二D型正反器包含一第二輸入端以及該暫存器的一時鐘輸入端;獲得相對應於該硬體唯一密鑰以及該用戶標識碼之一根密鑰;以及利用該已獲得之根密鑰,產生與該程式相對應之一第一資訊認證碼。
  11. 如申請專利範圍第10項所述之認證下載至一快閃記憶體之一程式的方法,更包含:下載該程式;寫入並鎖定該用戶標識碼至一暫存器;以及寫入該資訊認證碼與該程式至一外部記憶體,其中,在下一次裝置重置之前該用戶標識碼不能以任何方式修改。
  12. 一種認證下載至一快閃記憶體之一程式的方法,由一電子裝置執行,包含:獲得一第一資訊認證碼;獲得相對應於一用戶以及該程式之一用戶標識碼;將該用戶標識碼寫入該電子裝置的一暫存器;在寫入之後,在下一次裝置重置之前,透過該電子裝置的一鎖定電路鎖定該用戶標識碼,其中該鎖定電路更包括:一第二D型正反器; 一或閘;一反相器;以及一及閘,其中該或閘係耦接於該第二D型正反器之一輸出端與一第一輸入端之間,該反相器係耦接於該第二D型正反器之一輸出端與該及閘之一第一輸入端之間,並且該及閘之一輸出端係耦接至該第一D型正反器之一時鐘輸入端,其中該或閘更包含一第二輸入端,該第二D型正反器包含一第二輸入端以及該暫存器的一時鐘輸入端;判斷該第一資訊認證碼是否與該用戶標識碼相對應;以及當該第一資訊認證碼相對應於該用戶標識碼時,啟動具有該程式之該電子裝置。
  13. 如申請專利範圍第12項所述之認證下載至一快閃記憶體之一程式的方法,其中該判斷該第一資訊認證碼是否與該用戶標識碼相對應之步驟更包含:獲得與該電子裝置相對應之一硬體唯一密鑰;依據該用戶標識碼與該硬體唯一密鑰產生一根密鑰;獲得包含該用戶標識碼之用戶資訊;藉由利用該產生之根密鑰加密該用戶資訊以產生一第二資訊認證碼;以及當該第一資訊認證碼與該第二資訊認證碼相同時,判斷該第一資訊認證碼相對應於該用戶標識碼。
  14. 如申請專利範圍第12項所述之認證下載至一快閃記憶體之一程式的方法,其中該判斷該第一資訊認證碼是 否與該用戶標識碼相對應之步驟更包含:獲得相對應於該電子裝置之一硬體唯一密鑰;依據該用戶標識碼與該硬體唯一密鑰產生一根密鑰;獲得包含該用戶標識碼之用戶資訊;藉由一散列函數獲得該已獲得之用戶資訊之一第一散列值;藉由利用該產生之根密鑰解密該第一資訊認證碼以獲得一第二散列值;以及當該第一散列值與該第二散列值相同時,判斷該第一資訊認證碼相對應於該用戶標識碼。
  15. 一種認證下載至一快閃記憶體之一程式的裝置,包含:一硬體唯一密鑰;一暫存器,儲存一用戶標識碼;一密鑰產生單元,依據該硬體唯一密鑰以及該用戶標識碼產生一根密鑰;以及一鎖定電路,用來鎖定該暫存器之內容,在下一次裝置重置之前避免該儲存之用戶標識碼被修改,該鎖定電路更包含:一D型正反器;一或閘;一反相器;以及一及閘,其中該或閘係耦接於該D型正反器之一輸出端與一第 一輸入端之間,該反相器係耦接於該D型正反器之一輸出端與該及閘之一第一輸入端之間,並且該及閘之一輸出端係耦接至該暫存器之一時鐘輸入端;其中該或閘更包含一第二輸入端,該D型正反器包含一第二輸入端以及一時鐘輸入端,該及閘包含一邏輯值為1之第二輸入端,當裝置重置時,該或閘之第二輸出端設置為邏輯值0,該D型正反器之該第二輸入端接收一裝置重置訊號以清空鎖存其中之資料,並且在完全寫入該用戶標識碼之後,該或閘之第二輸入端設置為邏輯值1。
TW097125037A 2008-01-25 2008-07-03 認證下載至快閃記憶體之程式的裝置及方法 TWI385670B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/019,825 US20090193261A1 (en) 2008-01-25 2008-01-25 Apparatus and method for authenticating a flash program

Publications (2)

Publication Number Publication Date
TW200933639A TW200933639A (en) 2009-08-01
TWI385670B true TWI385670B (zh) 2013-02-11

Family

ID=40794578

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097125037A TWI385670B (zh) 2008-01-25 2008-07-03 認證下載至快閃記憶體之程式的裝置及方法

Country Status (5)

Country Link
US (1) US20090193261A1 (zh)
CN (2) CN101494645B (zh)
BR (1) BRPI0803574A2 (zh)
DE (1) DE102008033895B4 (zh)
TW (1) TWI385670B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101790021A (zh) * 2009-01-26 2010-07-28 株式会社东芝 扫描图像管理装置及扫描图像管理方法
EP2503482A1 (en) 2011-03-23 2012-09-26 ST-Ericsson SA Electronic device with flash memory component
DE102012201164B4 (de) * 2012-01-26 2017-12-07 Infineon Technologies Ag Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes
US8856538B2 (en) * 2012-07-27 2014-10-07 GM Global Technology Operations LLC Secured flash programming of secondary processor
JP2014119897A (ja) * 2012-12-14 2014-06-30 Fujitsu Ltd 情報処理装置、ロック実行方法、及びロック実行プログラム
CN103793644B (zh) * 2014-02-28 2017-09-19 天地融科技股份有限公司 信息安全设备实现多应用的方法、信息安全设备和系统
CN107977568B (zh) * 2017-12-25 2020-05-15 瑞萨集成电路设计(北京)有限公司 Mcu安全保护身份认证装置及方法
US11321466B2 (en) * 2018-03-09 2022-05-03 Qualcomm Incorporated Integrated circuit data protection
CN113139203A (zh) * 2020-01-19 2021-07-20 上海臻客信息技术服务有限公司 一种用户信息防泄露方法
US11799662B2 (en) * 2021-02-15 2023-10-24 Sony Semiconductor Solutions Corporation Efficient data item authentication

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3944976A (en) * 1974-08-09 1976-03-16 Rode France Electronic security apparatus
US5764995A (en) * 1994-03-25 1998-06-09 Packard Bell Nec Write once read only registers
US6000832A (en) * 1997-09-24 1999-12-14 Microsoft Corporation Electronic online commerce card with customer generated transaction proxy number for online transactions
US20020168070A1 (en) * 2001-05-09 2002-11-14 Bernsen Johannes Arnoldus Cornelis Method and apparatus for decrypting encrypted data stored on a record carrier
US6625729B1 (en) * 2000-03-31 2003-09-23 Hewlett-Packard Company, L.P. Computer system having security features for authenticating different components
US20030221114A1 (en) * 2002-03-08 2003-11-27 International Business Machines Corporation Authentication system and method
WO2006001710A1 (en) * 2004-06-25 2006-01-05 Buypass As Method for generating and verifying an electronic signature
US20060039564A1 (en) * 2000-11-17 2006-02-23 Bindu Rama Rao Security for device management and firmware updates in an operator network
EP1659472A1 (en) * 2004-11-22 2006-05-24 Research In Motion Limited Method and Device for Authenticating Software
US20060242518A1 (en) * 2004-04-21 2006-10-26 Infineon Technologies Ag Method for verification of electronic circuit units, and an apparatus for carrying out the method
US20070061597A1 (en) * 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3257259B2 (ja) * 1994-07-01 2002-02-18 ソニー株式会社 データ抽出装置
EP1429224A1 (en) * 2002-12-10 2004-06-16 Texas Instruments Incorporated Firmware run-time authentication
US7457945B2 (en) * 2004-03-23 2008-11-25 Dell Products L.P. System and method for providing a secure firmware update to a device in a computer system
WO2006084183A1 (en) * 2005-02-04 2006-08-10 Qualcomm Incorporated Secure bootstrapping for wireless communications

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3944976A (en) * 1974-08-09 1976-03-16 Rode France Electronic security apparatus
US5764995A (en) * 1994-03-25 1998-06-09 Packard Bell Nec Write once read only registers
US6000832A (en) * 1997-09-24 1999-12-14 Microsoft Corporation Electronic online commerce card with customer generated transaction proxy number for online transactions
US6625729B1 (en) * 2000-03-31 2003-09-23 Hewlett-Packard Company, L.P. Computer system having security features for authenticating different components
US20060039564A1 (en) * 2000-11-17 2006-02-23 Bindu Rama Rao Security for device management and firmware updates in an operator network
US20020168070A1 (en) * 2001-05-09 2002-11-14 Bernsen Johannes Arnoldus Cornelis Method and apparatus for decrypting encrypted data stored on a record carrier
US20030221114A1 (en) * 2002-03-08 2003-11-27 International Business Machines Corporation Authentication system and method
US20060242518A1 (en) * 2004-04-21 2006-10-26 Infineon Technologies Ag Method for verification of electronic circuit units, and an apparatus for carrying out the method
WO2006001710A1 (en) * 2004-06-25 2006-01-05 Buypass As Method for generating and verifying an electronic signature
EP1659472A1 (en) * 2004-11-22 2006-05-24 Research In Motion Limited Method and Device for Authenticating Software
US20070061597A1 (en) * 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory

Also Published As

Publication number Publication date
CN101494645B (zh) 2012-05-30
DE102008033895B4 (de) 2011-05-12
DE102008033895A1 (de) 2009-07-30
BRPI0803574A2 (pt) 2009-09-15
CN102647278A (zh) 2012-08-22
CN102647278B (zh) 2014-09-03
US20090193261A1 (en) 2009-07-30
CN101494645A (zh) 2009-07-29
TW200933639A (en) 2009-08-01

Similar Documents

Publication Publication Date Title
TWI385670B (zh) 認證下載至快閃記憶體之程式的裝置及方法
EP2989741B1 (en) Generation of working security key based on security parameters
EP3458999B1 (en) Self-contained cryptographic boot policy validation
AU2012205457B2 (en) System and method for tamper-resistant booting
US8560820B2 (en) Single security model in booting a computing device
JP4912879B2 (ja) プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法
KR101904303B1 (ko) 보안 소프트웨어 인증 및 검증
JP2007512787A (ja) トラステッド・モバイル・プラットフォーム・アーキテクチャ
KR20110051181A (ko) 데이터 보안 시스템, 방법 및 컴퓨터 판독가능 매체
JP2017504267A (ja) セキュアブート中のキー抽出
CN110046489B (zh) 一种基于国产龙芯处理器的可信访问验证系统,计算机及可读存储介质
JP2019192231A (ja) コンピュータシステム及びコンピュータシステムを初期化する方法
Nyman et al. Citizen electronic identities using TPM 2.0
CN114817931A (zh) 基于星型信任链的终端安全防护方法、装置、设备及介质
CN112241523B (zh) 一种嵌入式计算机开机身份认证方法
WO2021077504A1 (zh) 一种连续性场景下保护设备软件完整性的方法
Singh et al. Lightweight Security Architecture for IoT Edge Devices
Adithya et al. Advanced Encryption Standard Crypto Block Verification Utility

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees