TW201901407A - 資料儲存裝置之韌體更新之方法 - Google Patents
資料儲存裝置之韌體更新之方法 Download PDFInfo
- Publication number
- TW201901407A TW201901407A TW107120355A TW107120355A TW201901407A TW 201901407 A TW201901407 A TW 201901407A TW 107120355 A TW107120355 A TW 107120355A TW 107120355 A TW107120355 A TW 107120355A TW 201901407 A TW201901407 A TW 201901407A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- firmware
- hash
- storage device
- sorting
- Prior art date
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000007246 mechanism Effects 0.000 claims abstract description 103
- 238000004364 calculation method Methods 0.000 claims abstract description 8
- 230000011218 segmentation Effects 0.000 claims description 11
- 239000000463 material Substances 0.000 description 20
- 238000010586 diagram Methods 0.000 description 17
- 238000007906 compression Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
一種資料儲存裝置之韌體更新之方法,包括:從一電子熔絲中取得一預定排序機制,其中,該電子熔絲置於該資料儲存裝置的一控制器內部;取得一韌體封包;從該韌體封包取得一第一排序雜湊資料;對該韌體封包中的一韌體資料進行一雜湊計算以取得一第二雜湊資料;對該第二雜湊資料執行該預定排序機制以產生一第二排序雜湊資料;以及如果該第一排序雜湊資料相同於該第二排序雜湊資料,以該韌體資料進行該資料儲存裝置的韌體更新。
Description
本發明係關於一種資料儲存裝置與資料儲存方法,特別係關於一種能夠有效認證韌體資料之資料儲存裝置與資料儲存方法。
快閃記憶體為一種普遍的非揮發性資料儲存裝置,係以電性方式抹除與程式化。以非及閘型的快閃記憶體(NAND FLASH)為例,常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)、嵌入式快閃記憶體模組(eMMC)、通用快閃記憶體(UFS)…等使用。
一般而言,資料儲存裝置可以透過對韌體的升級提升其效能及可靠性。韌體的更新可以確保資料儲存裝置保持在最新的狀態以及確保其相容性。然而,如果資料儲存裝置更新了錯誤或不合法的韌體,可能會導致資料儲存裝置無法正常的進行讀取或寫入等操作,甚至造成資料儲存裝置的損毀。因此,需要一種能夠有效並且方便認證韌體資料之資料儲存裝置與資料儲存方法,以確保將更新的韌體資料是合法以及正確的。
為了解決上述問題,本發明提出一種能夠有效並 且方便認證韌體資料之資料儲存裝置與資料儲存方法,以確保所更新的是正確的韌體資料。
詳細而言,本發明提供了安全雜湊機制以及預定排序機制,用以準確的偵測所欲安裝之韌體資料是否為合法與正確。首先,安全雜湊機制將韌體資料進行加密與壓縮以產生雜湊資料。然後,預定排序機制將上述雜湊資料重新排序,並且儲存於資料儲存裝置之特定位置。上述預定排序機制係由資料儲存裝置之製造商所設定。藉由判斷所欲安裝之韌體資料及其相關之雜湊資料是否相同於排序雜湊資料,就能夠偵測出所欲安裝之韌體資料,是否為資料儲存裝置之製造商所認證之正確合法的韌體資料。依據本發明之資料儲存裝置以及資料儲存方法,能夠判斷上述韌體資料是否正確與合法,以防止資料儲存裝置受到惡意的破壞。
本發明之一實施例提供了一種資料儲存裝置之韌體更新之方法,包括:從一電子熔絲中取得一預定排序機制,其中,該電子熔絲置於該資料儲存裝置的一控制器內部;取得一韌體封包;從該韌體封包取得一第一排序雜湊資料;對該韌體封包中的一韌體資料進行一雜湊計算以取得一第二雜湊資料;對該第二雜湊資料執行該預定排序機制以產生一第二排序雜湊資料;以及如果該第一排序雜湊資料相同於該第二排序雜湊資料,以該韌體資料進行該資料儲存裝置的韌體更新。
本發明之一實施例提供了一種資料儲存裝置之韌體更新之方法,包括:從一電子熔絲中取得一預定排序機制,其中,該電子熔絲置於該資料儲存裝置的一控制器內部;取得 一韌體封包;從該韌體封包取得複數個第一排序子雜湊資料;依據一預定分割機制將該韌體封包中的一韌體資料分割為複數個子韌體資料;對每一該些子韌體資料執行一雜湊計算以取得複數個子雜湊資料;對每一該些子雜湊資料執行該預定排序機制以產生複數個第二排序子雜湊資料;以及如果該些第一排序子雜湊資料相同於該些第二排序子雜湊資料,以該韌體資料進行該資料儲存裝置的韌體更新。
本發明之一實施例提供了一種資料儲存裝置之韌體更新之方法,包括:從一電子熔絲中取得一預定排序機制,其中,該電子熔絲置於該資料儲存裝置的一控制器內部;取得一韌體封包;從該韌體封包取得複數個第一排序子雜湊資料;依據一預定分割機制將該韌體封包中的一韌體資料分割為複數個子韌體資料;對每一該些子韌體資料執行一資料壓縮計算以及一雜湊計算以取得複數個子雜湊資料;對每一該些子雜湊資料執行該預定排序機制以產生複數個第二排序子雜湊資料;以及如果該些第一排序子雜湊資料相同於該些第二排序子雜湊資料,以該韌體資料進行該資料儲存裝置的韌體更新。
關於本發明其他附加的特徵與優點,此領域之熟習技術人士,在不脫離本發明之精神和範圍內,當可根據本案實施方法中所揭露之資料儲存裝置與資料儲存方法。
10A、10A-1、10A-2、10A-3、10A-4、20A‧‧‧韌體資料
10B、10B-1、10B-2、10B-3、10B-4、10B-5、10B-6、10B-7、20B‧‧‧雜湊資料
10C、10C-1、10C-2、10C-3、10C-4、10C-5、20C‧‧‧排序雜湊資料
10D‧‧‧其他資料
10X‧‧‧韌體封包
100‧‧‧資料儲存裝置
120‧‧‧控制器
122‧‧‧電子熔絲區
122-1至122-8‧‧‧特定區域
140‧‧‧快閃記憶體
160-16N‧‧‧區塊
160A、160Z...16NA、16NZ‧‧‧頁面
180‧‧‧隨機存取記憶體
200‧‧‧主機
300‧‧‧安全雜湊機制
320‧‧‧預定排序機制
340‧‧‧預定分割機制
360‧‧‧預定再壓縮機制
根據以下的詳細說明並配合所附圖式做完整揭露。應注意的是,根據本產業的一般作業,圖示並未必按照比例繪製。事 實上,可能任意的放大或縮小元件的尺寸,以做清楚的說明。
第1圖係顯示根據本發明一實施例所述之資料儲存裝置與主機之示意圖;第2A圖係顯示根據本發明一實施例所述之用於認證韌體資料之資料儲存方法之示意圖;第2B圖係顯示根據本發明另一實施例所述之用於認證韌體資料之資料儲存方法之示意圖;第2C圖係顯示根據本發明一實施例所述之韌體資料之示意圖;第3圖係顯示根據本發明一實施例所述之用於認證韌體資料之資料儲存方法之示意圖;第4圖係顯示根據本發明另一實施例所述之用於認證韌體資料之資料儲存方法之示意圖;第5A圖係顯示根據本發明一實施例所述之用於認證韌體資料之電子熔絲區之示意圖。
第5B圖係顯示根據本發明另一實施例所述之用於認證韌體資料之電子熔絲區之示意圖。
第6圖係顯示根據本發明一實施例所述之用於認證韌體資料之資料儲存方法之流程圖。
第7圖係顯示根據本發明另一實施例所述之用於認證韌體資料之資料儲存方法之流程圖。
第8圖係顯示根據本發明另一實施例所述之用於認證韌體 資料之資料儲存方法之流程圖。
第9圖係顯示根據本發明另一實施例所述之用於認證韌體資料之資料儲存方法之示意圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明一實施例所述之資料儲存裝置100與主機200之示意圖。在一實施例中,資料儲存裝置100包括控制器120、非揮發式記憶體以及隨機存取記憶體(RAM)180。控制器120包括電子熔絲(efuse)區122。資料儲存裝置100耦接主機200以傳送資料與指令、或是接收資料與指令。非揮發式記憶體可以為反集閘快閃記憶體(NAND Flash)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等,使資料可於長時間保存。在下述說明中將以快閃記憶體140為例進行說明,但不以此為限。資料儲存裝置100係符合嵌入式快閃記憶體模組(eMMC)規範、通用快閃記憶體(UFS)、串行ATA(SATA)或非揮發性快速記憶體(NVMe)等通信標準的規範。主機200可以為手機、平板電腦、筆記型電腦、導航機或車載系統等各種電子產品。
如第1圖所示,控制器120耦接快閃記憶體140以及隨機存取記憶體180。隨機存取記憶體180用以暫存以及預取控制器120所需之資料,或是用以暫存主機200要寫入快閃記憶體140之資料,以加快資料儲存裝置100之存取時間。控制器120藉由控制快閃記憶體140以叢集(cluster)為單位執行讀取運作的方式來對快閃記憶體140執行讀取運作。此外,控制器120耦接快閃記憶體140,以相互傳送資料與指令或接收資料與指令。
電子熔絲區122主要係儲存關於資料儲存裝置100之安全性與存取操作的重要資料,例如,用以解碼第一金鑰的第二金鑰。在一般運作模式下,只有控制器120才能讀取電子熔絲區122所儲存之資料。在除錯模式下,電子熔絲區122會被關閉/屏閉以防止讀取。要注意的是,韌體資料係一次性寫入電子熔絲區122。
快閃記憶體140包括複數個區塊160~16N,N為正整數,例如2048。詳細而言,區塊160~16N中的每一者更包括複數個實體頁面160A~16NZ,A與Z為正整數,例如A=0而Z=256。區塊160包括實體頁面160A~160Z,區塊16N包括實體頁面16NA~16NZ。控制器120在對快閃記憶體140執行資料寫入或儲存動作時,是藉由控制快閃記憶體140以實體頁面為單位來執行資料寫入或程式化的運作。
對於快閃記憶體140而言,其實體頁面160A~16NZ的每一者皆具有不同的實體位址。換言之,實體頁面160A~16NZ的每一者都具有一個實體位址,而實體頁面 160A~16NZ的每一者的實體位址都是不同的。當資料儲存裝置100執行一寫入運作時,控制器120決定快閃記憶體140的一實體位址以寫入或儲存資料。此外,控制器120更會記錄資料的實體位址與邏輯位址的映射關係,此記錄乃儲存於映射表H2F中。因此,對於主機200而言,主機200係藉由邏輯位址,來讀取或寫入資料儲存裝置100所儲存於某個邏輯位址的資料。
第2A圖係顯示根據本發明一實施例所述之用於認證韌體資料之資料儲存方法之示意圖。韌體資料10A係由一編譯器(compiler)所產生。接著,如第2A圖所示,韌體資料10A藉由安全雜湊機制(Secure Hash Algorithm,SHA)300以產生一雜湊資料10B。舉例而言,韌體資料10A係藉由SHA-256之運算以產生256bits長度的雜湊資料10B。要注意的是上述SHA僅是用於例示,而非用以限制本發明。
在一實施例中,控制器120接收韌體資料10A,並且對韌體資料10A進行安全雜湊機制300,而產生並接收雜湊資料10B。在另一實施例中,係由其他裝置(例如主機200)對韌體資料10A進行安全雜湊機制300以產生雜湊資料10B,並且控制器120接收該雜湊資料10B。
在一實施例中,控制器120將雜湊資料10B區分為複數個資料群組,以一預定排序機制320對上述資料群組進行排序而產生排序雜湊資料10C。上述預定排序機制320係儲存於控制器120之電子熔絲區122。舉例而言,雜湊資料10B之大小為8個位元組(bytes),其內容如下所示:
表格1顯示了雜湊資料10B之每一位元組的資料。在一實施例中,控制器120將上述8個位元組資料進行分組,而產生複數個資料群組。舉例而言,每個資料群組的大小為1byte,亦即每1byte的資料皆各自成為一個資料群組。在另一實施例中,每個資料群組的大小為2byte,亦即將2個1byte的資料是為一個資料群組。例如表格1中的0x54和0x47為一資料群組,表格1中的0x28和0x00為一另資料群組。要注意的是上述資料群組之大小僅是用於例示,而非用以限制本發明。本技術領域中具有通常知識者依據本發明之內容而設定其他大小之資料群組,仍不脫離本發明之精神與範疇。
在此實施例中,雜湊資料10B的大小為8bytes,在另一實施例中,雜湊資料10B的大小為32bytes。如果使用較複雜的安全雜湊機制300與預定排序機制320,或是另外使用其他機制(例如預定分割機制或預定再壓縮機制),則電子熔絲區122需要較大儲存容量來儲存上述機制。上述預定分割機制以及預定再壓縮機制將分別在第3圖以及第4圖中詳細說明。
在此實施例中,每1byte的資料皆各自成為一個資料群組。換言之,表格1中的0x54為一資料群組,0x28為另一資料群組。然後,上述雜湊資料10B藉由預定排序機制 320以資料群組為單位進行排序,而產生排序雜湊資料10C。要注意的是,預定排序機制300係以表格化方式儲存於電子熔絲區122。舉例而言,預定排序機制300如表格2所示:
預定排序機制320改變了雜湊資料10B的內容的位址,如第9圖所示,0x54由Byte 6的位置變更到Byte 5的位置,0x28由Byte 4的位置變更到Byte 1的位置,0x47由Byte 2的位置變更到Byte 0的位置,最後產生了排序雜湊資料10C。
詳細而言,本發明之資料儲存方法提供了雙重的保護機制,分別是安全雜湊機制300以及預定排序機制320。安全雜湊機制300所產生之雜湊資料10B(如表格1所示),會藉由預定排序機制320而重新排列成排序雜湊資料10C(如表格3所示)。如果有第三人要將不合法的韌體資料更新至資料儲存裝置100,上述不合法的韌體資料透過其他安全雜湊機制後所產生的雜湊資料將不同於本案之排序雜湊資料10C。因此,控制器120可據以判斷上述雜湊資料是不合法的,並且拒絕將該不合法的韌體資料安裝或更新至資料儲存裝置100。
第2B圖係顯示根據本發明另一實施例所述之用於認證韌體資料之資料儲存方法之示意圖。在此實施例中,排序雜湊資料10C與韌體資料10A形成韌體封包10X。然後,預定排序機制320對上述排序雜湊資料10C進行反向排序以產生雜 湊資料10B。
在一實施例中,上述雜湊資料10B的產生方式或儲存位置係由資料儲存裝置100之製造商所設定。由於第三人並未知悉上述雜湊資料10B的產生方式或儲存位置,因此控制器120能夠檢測另一韌體資料是否合法與正確。因此,本發明之資料儲存方法能夠避免安裝或更新不合法的韌體資料,以確保資料儲存裝置100不會受到惡意的破壞。
在一實施例中,預定排序機制320係由資料儲存裝置100之製造商所設定。舉例而言,第三人從不合法的手段而得知安全雜湊機制300,且知雜湊資料10B的儲存位置,並將另一韌體資料與雜湊資料10B形成韌體封包,意圖將不合法的另一韌體資料更新至資料儲存裝置100。由於第三人並未得知預定排序機制320,所以韌體封包包含的是雜湊資料10B,而非透過預定排序機制320而產生的排序雜湊資料10C。因此,控制器120可輕易地判斷排序雜湊資料10C與雜湊資料10B的不同,進而判斷上述韌體資料是不合法的,並且拒絕將該不合法的韌體資料安裝或更新至資料儲存裝置100,以防止資料儲存裝置100受到惡意的破壞。
第2C圖係顯示根據本發明一實施例所述之韌體資料之示意圖。如第2C圖所示,在一實施例中,排序雜湊資料10C係儲存於韌體資料10A之上。另外,韌體資料10A之下則儲存了與韌體相關之其他資料10D。換言之,韌體封包10X係包括韌體資料10A、排序雜湊資料10C以及其他資料10D。舉例而言,其他資料10D係包括韌體版本、安全雜湊機制300 的版本、以及其他客戶所欲儲存的安全資訊。可想而知地,排序雜湊資料10C亦可儲存於韌體資料10A之下。
當資料儲存裝置100收到韌體封包10X時,控制器120會對韌體封包10X的韌體資料10A執行安全雜湊機制300以得到雜湊資料20B,然後再執行預定排序機制320以得到排序雜湊資料20C。在一實施例中,控制器120會比對排序雜湊資料20C以及韌體封包10X所儲存的排序雜湊資料10C。如果比對結果為兩者相同,則表示韌體資料10A為合法正確的。如果比對結果為兩者不同,則表示韌體資料10A是非法的。
在另一實施例中,儲存裝置100收到韌體封包10X時,控制器120會對韌體封包10X的韌體資料10A執行安全雜湊機制300以得到雜湊資料20B。然後,控制器120會對韌體封包10X所儲存的排序雜湊資料10C執行反向預定排序機制320以得到雜湊資料10B。然後,控制器120比對雜湊資料20B以及韌體封包10X所儲存的雜湊資料10B。如果比對結果為兩者相同,則表示韌體資料10A為合法正確的。如果比對結果為兩者不同,則表示韌體資料10A是非法的。
第3圖係顯示根據本發明一實施例所述之用於認證韌體資料之資料儲存方法之示意圖。在此實施例中,資料儲存方法更包括一預定分割機制340,以促進韌體資料的認證並且提升安全性。如第3圖所示,預定分割機制340將韌體資料10A分割為4個韌體資料10A-1、10A-2、10A-3以及10A-4(亦即子韌體資料)。換言之,4個韌體資料10A-1、10A-2、10A-3以及10A-4之總和就是原本的韌體資料10A。
要注意的是,上述4個韌體資料10A-1~10A-4之分割僅是用於例示,而非用以限制本發明。本技術領域中具有通常知識者依據本發明之內容而分割為其他數量之韌體資料,仍不脫離本發明之範疇。
然後,安全雜湊機制300分別將4個韌體資料10A-1、10A-2、10A-3以及10A-4進行雜湊運算,並且分別產生4個雜湊資料10B-1、10B-2、10B-3以及10B-4(亦即子雜湊資料)。4個雜湊資料10B-1、10B-2、10B-3以及10B-4之總和就是雜湊資料10B。
在一實施例中,預定排序機制320分別將4個雜湊資料10B-1、10B-2、10B-3以及10B-4進行排序,並且分別產生4個排序雜湊資料10C-1、10C-2、10C-3以及10C-4。4個排序雜湊資料10C-1、10C-2、10C-3以及10C-4之總和即為排序雜湊資料10C。在另一實施例中,預定排序機制320係同時對全部的4個雜湊資料10B-1、10B-2、10B-3以及10B-4進行排序,而產生1個排序雜湊資料10C。
第4圖係顯示根據本發明另一實施例所述之用於認證韌體資料之資料儲存方法之示意圖。在此實施例中,資料儲存方法更包括一預定再壓縮機制360,對韌體資料10A進行兩次以上的加密與壓縮,以促進韌體資料10A的認證並且提升安全性。如第4圖所示,預定分割機制340將韌體資料10A分割為4個韌體資料10A-1、10A-2、10A-3以及10A-4。
然後,預定再壓縮機制360對4個韌體資料10A-1、10A-2、10A-3以及10A-4進行多重壓縮(亦即兩次以上的加密 與壓縮)的安排。如第4圖所示,預定再壓縮機制360將韌體資料10A-1與10A-2安排為一組,將韌體資料10A-3與10A-4安排為另一組。然後,兩組韌體資料分別藉由安全雜湊機制300進行加密與壓縮,並且分別產生2個雜湊資料10B-5以及10B-6(第一子雜湊資料)。換言之,雜湊資料10B-5係由韌體資料10A-1與10A-2所產生,雜湊資料10B-6係由韌體資料10A-3與10A-4所產生。
然後,如第4圖所示,2個雜湊資料10B-5以及10B-6再藉由安全雜湊機制300進行第2次的壓縮,而產生雜湊資料10B-7(第二子雜湊資料)。然後,在此實施例中,預定排序機制320對雜湊資料10B-7進行排序,而產生1個排序雜湊資料10C-5。由於此實施例使用了2次以上的安全壓縮機制300,因此能進一步提升辨識韌體資料是否正確的可靠度與準確度。
要注意的是上述4個韌體資料10A-1~10A-4之分割以及2次壓縮僅是用於例示,而非用以限制本發明。本技術領域中具有通常知識者依據本發明之內容而分割為其他數量之韌體資料或是進行其他次數之加密與壓縮,仍不脫離本發明之範疇。
第5A圖係顯示根據本發明一實施例所述之用於認證韌體資料之電子熔絲區122之示意圖。在一實施例中,電子熔絲區122係包括複數個特定區域122-1~122-8,用以分別儲存特定資料。如第5A圖所示,預定排序機制320係儲存於特定區域122-1。換言之,特定區域122-1只能用於儲存預定排 序機制320,不能儲存其他機制或其他資料。此外,上述預定排序機制320係一次性寫入電子熔絲區122,並且只有控制器120才能加以讀取。
第5B圖係顯示根據本發明另一實施例所述之用於認證韌體資料之電子熔絲區之示意圖。在一些實施例中,資料儲存方法除了預定排序機制320之外,更包括預定分割機制340以及預定再壓縮機制360。要注意的是,如果上述機制的一者或是多者較為複雜,則可使用2個以上的特定區域來儲存1個機制。如第5B圖所示,預定排序機制320儲存於特定區域122-1,預定分割機制340儲存於特定區域122-2,以及預定再壓縮機制360儲存於特定區域122-3。
第6圖係顯示根據本發明一實施例所述之用於認證韌體資料之資料儲存方法之流程圖。在步驟S602中,控制器120自電子熔絲區122中讀取預定排序機制320。然後,在步驟S604中,控制器120取得韌體資料及其相關之第一排序雜湊資料,其中,韌體資料及第一排序雜湊資料係取自於韌體封包。在步驟S606中,控制器120對韌體資料執行安全雜湊機制300以產生第二雜湊資料。在步驟S608中,控制器120對第二雜湊資料執行預定排序機制320以產生第二排序雜湊資料。在步驟S610中,控制器120判斷第二排序雜湊資料是否相同於第一排序雜湊資料。如果比對結果為否,則執行步驟S614,中止本發明用於認證韌體資料之資料儲存方法的執行。如果比對結果為是,則執行步驟S612,控制器120以韌體資料對資料儲存裝置100進行韌體的更新。由此可知,在步驟 S610中,藉由判斷第二排序雜湊資料是否相同於步驟S604所取得第一排序雜湊資料,就能夠偵測出所欲安裝之韌體資料,是否為資料儲存裝置100之製造商所認證之正確合法的韌體資料。依據本發明之資料儲存裝置以及資料儲存方法,能夠判斷上述韌體資料是否正確與合法,以保護資料儲存裝置100。
在另一實施例中,步驟S608可變更為控制器120對第一排序雜湊資料執行反向預定排序機制320以產生第一雜湊資料;步驟S610可變更為控制器120判斷第二雜湊資料是否相同於第一雜湊資料。此實施例與上述實施例的主要差異乃在於執行預定排序機制320的標的為何以及執行方式。如果標的是第二雜湊資料,則對第二雜湊資料執行預定排序機制320。如果標的是第一排序雜湊資料,則對第一排序雜湊資料執行反向預定排序機制320。其餘步驟相同。
第7圖係顯示根據本發明另一實施例所述之用於認證韌體資料之資料儲存方法之流程圖。在步驟S702中,控制器120自電子熔絲區122取得預定排序機制320。在步驟S704中,控制器120接收韌體資料及第一排序雜湊資料,其中,韌體資料及第一排序雜湊資料係取自於韌體封包,且第一排序雜湊資料包括複數第一子排序雜湊資料。在步驟S706中,控制器120以一預定分割機制將韌體資料分割為複數個第二子韌體資料。在步驟S708中,控制器120對每一複數個第二子韌體資料執行安全雜湊機制300以產生複數個第二子雜湊資料。在步驟S710中,控制器120對每一個第二子雜湊資料執行預定排序機制320以產生複數個第二排序子雜湊資料。在步驟 S712中,控制器120判斷第二排序子雜湊資料是否相同於第一排序子雜湊資料。如果比對結果為否,則中止本發明用於認證韌體資料之資料儲存方法的執行。如果比對結果為是,則執行步驟S714,控制器120以韌體資料對資料儲存裝置100進行韌體的更新。
第8圖係顯示根據本發明另一實施例所述之用於認證韌體資料之資料儲存方法之流程圖。在此實施例中,步驟S802至S806相同於第7圖之步驟S702至S706,故此處不再贅述。在步驟S808中,控制器120對每一複數個第二子韌體資料執行預定再壓縮機制360與安全雜湊機制300以產生複數個第二子雜湊資料。上述預定再壓縮機制360係儲存於電子熔絲區122的一第三特定區域。
然後,在步驟S810中,控制器120對每一個第二子雜湊資料執行安全雜湊機制300以產生第三子雜湊資料。在步驟S812中,控制器120對第三子雜湊資料執行預定排序機制320以產生第二排序子雜湊資料。在步驟S814中,控制器120判斷判斷第二排序子雜湊資料是否相同於第一排序子雜湊資料。如果比對結果為否,則執行步驟S818,中止本發明用於認證韌體資料之資料儲存方法的執行。如果比對結果為是,則執行步驟S816,控制器120以韌體資料對資料儲存裝置100進行韌體的更新。
在另一實施例中,韌體資料10A亦可藉由加密機制,例如進階加密標準(Advanced Encryption Standard,AES)、或是RSA加密演算法,對韌體資料10A進行加密而產生加密 資料10B。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
在本說明書以及申請專利範圍中的序數,例如「第一」、「第二」、「第三」等等,彼此之間並沒有順序上的先後關係,其僅用於標示區分兩個具有相同名字之不同元件。本發明說明書中「耦接」一詞係泛指各種直接或間接之電性連接方式。本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (11)
- 一種資料儲存裝置之韌體更新之方法,包括:從一電子熔絲中取得一預定排序機制,其中,該電子熔絲置於該資料儲存裝置的一控制器內部;取得一韌體封包;從該韌體封包取得一第一排序雜湊資料;對該韌體封包中的一韌體資料進行一雜湊計算以取得一第二雜湊資料;對該第二雜湊資料執行該預定排序機制以產生一第二排序雜湊資料;以及如果該第一排序雜湊資料相同於該第二排序雜湊資料,以該韌體資料進行該資料儲存裝置的韌體更新。
- 如申請專利範圍第1項所述之韌體更新方法,其中該韌體封包從一記憶體裝置中取得。
- 如申請專利範圍第1項所述之韌體更新方法,其中該預定排序機制調整該第二雜湊資料中複數資料群組的先後順序。
- 如申請專利範圍第1項所述之韌體更新方法,其中該第一排序雜湊資料與該第二排序雜湊資料具有相同的資料長度。
- 如申請專利範圍第1項所述之韌體更新方法,其中,將該韌體資料儲存至該資料儲存裝置的一記憶體裝置以完成該資料儲存裝置的韌體更新。
- 一種資料儲存裝置之韌體更新之方法,包括: 從一電子熔絲中取得一預定排序機制,其中,該電子熔絲置於該資料儲存裝置的一控制器內部;取得一韌體封包;從該韌體封包取得複數個第一排序子雜湊資料;依據一預定分割機制將該韌體封包中的一韌體資料分割為複數個子韌體資料;對每一該些子韌體資料執行一雜湊計算以取得複數個子雜湊資料;對每一該些子雜湊資料執行該預定排序機制以產生複數個第二排序子雜湊資料;以及如果該些第一排序子雜湊資料相同於該些第二排序子雜湊資料,以該韌體資料進行該資料儲存裝置的韌體更新。
- 如申請專利範圍第6項所述之韌體更新方法,其中該韌體封包從一記憶體裝置中取得。
- 如申請專利範圍第6項所述之韌體更新方法,其中該預定排序機制調整每一該些子雜湊資料中複數資料群組的先後順序。
- 如申請專利範圍第6項所述之韌體更新方法,其中每一該第一排序子雜湊資料與每一該第二排序子雜湊資料具有相同的資料長度。
- 如申請專利範圍第6項所述之韌體更新方法,其中,將該韌體資料儲存至該資料儲存裝置的一記憶體裝置以完成該資料儲存裝置的韌體更新。
- 一種資料儲存裝置之韌體更新之方法,包括: 從一電子熔絲中取得一預定排序機制,其中,該電子熔絲置於該資料儲存裝置的一控制器內部;取得一韌體封包;從該韌體封包取得複數個第一排序子雜湊資料;依據一預定分割機制將該韌體封包中的一韌體資料分割為複數個子韌體資料;對每一該些子韌體資料執行一資料壓縮計算以及一雜湊計算以取得複數個子雜湊資料;對每一該些子雜湊資料執行該預定排序機制以產生複數個第二排序子雜湊資料;以及如果該些第一排序子雜湊資料相同於該些第二排序子雜湊資料,以該韌體資料進行該資料儲存裝置的韌體更新。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW107120355A TWI678658B (zh) | 2017-05-23 | 2017-05-23 | 資料儲存裝置之韌體更新之方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW107120355A TWI678658B (zh) | 2017-05-23 | 2017-05-23 | 資料儲存裝置之韌體更新之方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201901407A true TW201901407A (zh) | 2019-01-01 |
| TWI678658B TWI678658B (zh) | 2019-12-01 |
Family
ID=65803153
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW107120355A TWI678658B (zh) | 2017-05-23 | 2017-05-23 | 資料儲存裝置之韌體更新之方法 |
Country Status (1)
| Country | Link |
|---|---|
| TW (1) | TWI678658B (zh) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111695164A (zh) * | 2019-03-12 | 2020-09-22 | 东芝存储器株式会社 | 电子设备及其控制方法 |
| CN113051544A (zh) * | 2019-12-26 | 2021-06-29 | 瑞昱半导体股份有限公司 | 外部设备及其验证更新方法 |
| TWI736074B (zh) * | 2019-12-20 | 2021-08-11 | 瑞昱半導體股份有限公司 | 周邊裝置及其驗證更新方法 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102750478B (zh) * | 2012-06-12 | 2016-03-30 | 福建睿矽微电子科技有限公司 | 一种具备安全授权转移及锁定技术的安全芯片 |
| CN105706099B (zh) * | 2013-11-06 | 2018-11-30 | 三菱电机株式会社 | 软件更新装置 |
-
2017
- 2017-05-23 TW TW107120355A patent/TWI678658B/zh active
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111695164A (zh) * | 2019-03-12 | 2020-09-22 | 东芝存储器株式会社 | 电子设备及其控制方法 |
| TWI738020B (zh) * | 2019-03-12 | 2021-09-01 | 日商東芝記憶體股份有限公司 | 電子機器及其控制方法 |
| US11113399B2 (en) | 2019-03-12 | 2021-09-07 | Toshiba Memory Corporation | Electronic apparatus and control method of electronic apparatus |
| CN111695164B (zh) * | 2019-03-12 | 2023-11-24 | 铠侠股份有限公司 | 电子设备及其控制方法 |
| TWI736074B (zh) * | 2019-12-20 | 2021-08-11 | 瑞昱半導體股份有限公司 | 周邊裝置及其驗證更新方法 |
| CN113051544A (zh) * | 2019-12-26 | 2021-06-29 | 瑞昱半导体股份有限公司 | 外部设备及其验证更新方法 |
| CN113051544B (zh) * | 2019-12-26 | 2024-07-26 | 瑞昱半导体股份有限公司 | 外部设备及其验证更新方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| TWI678658B (zh) | 2019-12-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI647610B (zh) | 認證韌體資料之資料儲存裝置與資料儲存方法 | |
| TWI700627B (zh) | 認證韌體資料之資料儲存裝置與資料儲存方法 | |
| US9760299B2 (en) | Method and system for hijacking writes to a non-volatile memory | |
| CN108985111A (zh) | 数据储存装置以及固件加解密方法 | |
| US20200334028A1 (en) | System and Method for Dynamic Data Deduplication for Firmware Updates | |
| US8898351B2 (en) | Dynamic compression of an I/O data block | |
| US10339318B2 (en) | Semiconductor memory system and operating method thereof | |
| US11829464B2 (en) | Apparatus and method for authentication of software | |
| CN113767387A (zh) | 使用加密散列验证存储在存储器中的数据 | |
| TWI678658B (zh) | 資料儲存裝置之韌體更新之方法 | |
| CN113841129A (zh) | 存储器中的数据证明 | |
| WO2019168878A1 (en) | Method and apparatus for data encryption using standardized data storage and retrieval protocol | |
| CN113632066A (zh) | 所执行代码中的错误识别 | |
| US12120100B2 (en) | Secure communication between an intermediary device and a network | |
| CN113796045A (zh) | 确认车辆的电子控制单元 | |
| CN113826071A (zh) | 空中更新确认 | |
| CN113632413B (zh) | 使用存储器作为区块链中的块 | |
| TWI546667B (zh) | 智慧卡管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
| US12141286B2 (en) | Establishing a chain of ownership of a device | |
| CN112380171B (zh) | 一种yaffs文件系统oob识别方法、终端设备及存储介质 | |
| CN111950675B (zh) | 评估存储器介质的系统和方法 | |
| US12143519B2 (en) | Using memory as a block in a block chain | |
| US20250211448A1 (en) | Storage device, operating method of controller, and system | |
| US20240184454A1 (en) | Storage device and operating method of the same | |
| CN105988935A (zh) | 智能卡管理方法、存储器存储装置及存储器控制电路单元 |